Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

не всех игроков респавнит плагин

staff2517
сообщение 31.8.2014, 16:36
Сообщение #1
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Добрый день друзья.
Использую плагин авто-рестарта на ножах + он дает гравитацию и респавнит после смерти на время разминки.
Так вот вся беда в том что он не всех респавнит, помогите кто-нибудь буду очень благодарен.
исходник
Код:
#include <amxmodx>
#include <colorchat>
#include <hamsandwich>
#include <fakemeta_util>

#define PLUGIN "DeathRun Warm-up"
#define VERSION "1.0"
#define AUTHOR "Suis"

#define SPRAWDZ 3431
#define prefix "[РАЗМИНКА]"

new Odliczanie[33]
new rr_czas
new bool:noze = false

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("TextMsg","nozowka","a","2&#Game_C")
rr_czas = register_cvar("rr_czas","120")
register_event("CurWeapon","switchweapon","be","1=1","2!29")
register_event("DeathMsg","death_msg","a")

}
public nozowka(id)
{
set_task(1.0, "Start")

}
public Start(id)
{
server_cmd("amx_pausecfg pause vampire.amxx")
server_cmd("amx_cvar sv_gravity 500")
switchweapon(id)

noze = true

Odliczanie[id] = get_pcvar_num(rr_czas);

if(task_exists(id + SPRAWDZ))
{
remove_task( id + SPRAWDZ )
}
set_task( 1.0, "Koniec", id + SPRAWDZ, _, _, "b" )

return PLUGIN_CONTINUE
}

public Koniec(task_id)
{
new id = task_id - SPRAWDZ

set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 10.0)
show_hudmessage( id, "%s ^n Рестарт через: %d секунд", prefix, Odliczanie[id] )


Odliczanie[id] -= 1

if(Odliczanie[id] <= 0)
{
if( task_exists(task_id) )
{
remove_task( task_id )
}
set_cvar_num("sv_restart", 2);
server_cmd("amx_pausecfg enable vampire.amxx")
server_cmd("amx_cvar sv_gravity 800")
ColorChat(id, RED, "%s^x04 Ожидание завершено!^nПриятной игры!", prefix);
noze = false
}
}
public switchweapon(id)
{
if (!noze)
return PLUGIN_CONTINUE

engclient_cmd(id,"weapon_knife")
return PLUGIN_CONTINUE
}
public death_msg()
{
if(!noze)
return

new id = read_data(2)
set_task(1.0,"respawn_player",id)
}
public respawn_player(id)
{
if(is_user_connected(id))
ExecuteHamB(Ham_CS_RoundRespawn, id)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 31.8.2014, 19:19
Сообщение #2
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

staff2517,
респавн стоит только на тех, кто умер...
если перенести игрока в другую команду, убить вручную или сделать убийство игрока не стандартным методом - он не воскреснет, т.к. это не относится к DeathMsg.... вот поэтому и нет спавна.
я сам сталкивался с такой проблемой.... просто добавьте команду /respawn и пусть пишут в чат....
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fintok
сообщение 31.8.2014, 21:20
Сообщение #3


Стаж: 16 лет

Сообщений: 756
Благодарностей: 294
Полезность: 638

staff2517,
Код:
 register_event("DeathMsg","death_msg","a")
--->
Код:
 RegisterHam(Ham_Killed, "player", "fwd_player_killed", 1)


Код:
public death_msg()
{
if(!noze)
return

new id = read_data(2)
set_task(1.0,"respawn_player",id)
}
--->
Код:
public fwd_player_killed(victim, attacker, corpse)
{
if(!noze)
return

set_task(1.0, "respawn_player", victim)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 31.8.2014, 21:26
Сообщение #4
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Цитата(Fintok @ 31.8.2014, 21:20) *
staff2517,
Код:
 register_event("DeathMsg","death_msg","a")
--->
Код:
 RegisterHam(Ham_Killed, "player", "fwd_player_killed", 1)


Код:
public death_msg()
{
if(!noze)
return

new id = read_data(2)
set_task(1.0,"respawn_player",id)
}
--->
Код:
public fwd_player_killed(victim, attacker, corpse)
{
if(!noze)
return

set_task(1.0, "respawn_player", victim)
}

Можете подсказать после какой строки прописывать этот код ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 31.8.2014, 21:28
Сообщение #5


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

staff2517, находите исходный код, заменяете на предложенный вариант и так два раза)
Если и так не поняли
Цитата(Fintok @ 31.8.2014, 21:20) *
staff2517,
Найти строку:
Код:
 register_event("DeathMsg","death_msg","a")
и заменить ее на:
Код:
 RegisterHam(Ham_Killed, "player", "fwd_player_killed", 1)

Найти часть кода:
Код:
public death_msg()
{
if(!noze)
return

new id = read_data(2)
set_task(1.0,"respawn_player",id)
}
И заменить его на:
Код:
public fwd_player_killed(victim, attacker, corpse)
{
if(!noze)
return

set_task(1.0, "respawn_player", victim)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 31.8.2014, 21:44
Сообщение #6
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Спасибо. Можете еще помочь вставить код который будет делать 35hp всем игрокам во время разминки.
Код у меня есть на другом форуме дали. я его заменяю в плагине и при компиляции ошибка.
код
public Start(id){
server_cmd("amx_pausecfg pause vampire.amxx")
server_cmd("amx_cvar sv_gravity 500")
switchweapon(id)

new health[32]
health[id] = get_user_health(id)
set_user_health(id, health[id] - 75)

noze = true

Odliczanie[id] = get_pcvar_num(rr_czas);

if(task_exists(id + SPRAWDZ)) {
remove_task( id + SPRAWDZ )
}
set_task( 1.0, "Koniec", id + SPRAWDZ, _, _, "b" )

return PLUGIN_CONTINUE
}
public respawn_player(id) {
if(is_user_connected(id) && !is_user_alive(id))
ExecuteHamB(Ham_CS_RoundRespawn, id)
}


Отредактировал: staff2517, - 31.8.2014, 21:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 31.8.2014, 21:49
Сообщение #7


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Код:
new health[32]
health[id] = get_user_health(id)
set_user_health(id, health[id] - 75)

больше ни когда не ходи на форум, где такое пишут....
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
staff2517
сообщение 31.8.2014, 21:52
Сообщение #8
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Цитата(Legenda @ 31.8.2014, 21:49) *
Код:
new health[32]
health[id] = get_user_health(id)
set_user_health(id, health[id] - 75)

больше ни когда не ходи на форум, где такое пишут....

Вместо каких строчек прописать ?
Сори за такие вопросы напряжные))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя qvadro
сообщение 31.8.2014, 21:52
Сообщение #9


Стаж: 16 лет

Сообщений: 358
Благодарностей: 147
Полезность: 579

100-75=25 smile.gif


Достойно парировать, к сожалению, умеют далеко не многие. Нельзя наказывать людей за критику.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fred Perry
сообщение 31.8.2014, 21:54
Сообщение #10


Иконка группы

Стаж: 16 лет

Сообщений: 6594
Благодарностей: 2370
Полезность: 813

Цитата(Legenda @ 31.8.2014, 21:49) *
Код:
new health[32]
health[id] = get_user_health(id)
set_user_health(id, health[id] - 75)

больше ни когда не ходи на форум, где такое пишут....

А так норм?
Код
set_pev(id,pev_health,35.0)


You become responsible, forever, for what you have tamed
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 31.8.2014, 21:56
Сообщение #11


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(Fred Perry @ 31.8.2014, 23:54) *
А так норм?
Код
set_pev(id,pev_health,35.0)

норм всё, если код логически верен..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 31.8.2014, 22:30
Сообщение #12
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Цитата(Legenda @ 31.8.2014, 21:56) *
норм всё, если код логически верен..

Помогите пожалуйста мне это сделать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 1.9.2014, 17:49
Сообщение #13
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

staff2517,
Вот, переделал.... тестируйте...

Скрытый текст
Код
#include <amxmodx>
#include <colorchat>
#include <hamsandwich>
#include <fakemeta_util>

#define SPRAWDZ 3431
#define prefix "[РАЗМИНКА]"

new Odliczanie[33]
new rr_czas
new bool:noze = false

public plugin_init()
{
    register_plugin("DeathRun Warm-up", "1.2", "Sutar")
    
    rr_czas = register_cvar("rr_czas","120")
    
    register_event("TextMsg", "nozowka", "a", "2&#Game_C")
    register_event("CurWeapon", "switchweapon", "be", "1=1", "2!29")        
    RegisterHam(Ham_Killed, "player", "player_dead", 1)
    RegisterHam(Ham_Spawn, "player", "player_hp", 1)
}

public nozowka(id)
    set_task(1.0, "Start")

public Start(id)
{
    server_cmd("amx_pausecfg pause vampire.amxx")
    server_cmd("amx_cvar sv_gravity 500")
    switchweapon(id)
    
    noze = true
    
    Odliczanie[id] = get_pcvar_num(rr_czas);
    
    if(task_exists(id + SPRAWDZ))
        remove_task(id + SPRAWDZ)

    set_task(1.0, "Koniec", id + SPRAWDZ, _, _, "b")
    return PLUGIN_CONTINUE
}
  
public Koniec(task_id)
{
    new id = task_id - SPRAWDZ
    
    set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 10.0)
    show_hudmessage( id, "%s ^n Рестарт через: %d секунд", prefix, Odliczanie[id] )
    
    Odliczanie[id] -= 1
    
    if(Odliczanie[id] <= 0)
    {
        if(task_exists(task_id))
            remove_task(task_id)
        set_cvar_num("sv_restart", 2);
        server_cmd("amx_pausecfg enable vampire.amxx")
        server_cmd("amx_cvar sv_gravity 800")
        ColorChat(id, RED, "%s^x04 Ожидание завершено!^nПриятной игры!", prefix);
        noze = false
    }
}

public switchweapon(id)
{
    if(noze)
        engclient_cmd(id,"weapon_knife")
    return PLUGIN_CONTINUE
}

public player_dead(victim, attacker, corpse)
{
    if(noze)
        set_task(1.0, "respawn_player", victim)
}

public player_hp(id)
{
    if(is_user_connected(id))
    {
        new health[32]
        health[id] = get_user_health(id)
        set_user_health(id, health[id] - 75)
    }
}

public respawn_player(id)
{  
    if(is_user_connected(id))
        ExecuteHamB(Ham_CS_RoundRespawn, id)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 1.9.2014, 18:03
Сообщение #14


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

new health[32]
health[id] = get_user_health(id)
set_user_health(id, health[id] - 75)

так делать нельзя...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Orty_Hart
сообщение 1.9.2014, 21:17
Сообщение #15
Стаж: 14 лет

Сообщений: 1399
Благодарностей: 408
Полезность: 725

Legenda,
согласен, лучше всего:
Код
set_user_health(id, 25)


так будет установленно 25хп не зависимо от того, сколько хп у игрока до спавна...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
staff2517
сообщение 13.12.2014, 0:40
Сообщение #16
Стаж: 12 лет

Сообщений: 275
Благодарностей: 5
Полезность: 0

Снова мне понадобился это плагин, нашел его тут, но все-равно не всех респавнит.
Помогите исправить.
Код:
#include <amxmodx>
#include <colorchat>
#include <hamsandwich>
#include <fakemeta_util>

#define PLUGIN "DeathRun Warm-up"
#define VERSION "1.0"
#define AUTHOR "Suis"

#define SPRAWDZ 3431
#define prefix "[РАЗМИНКА]"

new Odliczanie[33]
new rr_czas
new bool:noze = false

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("TextMsg","nozowka","a","2&#Game_C")
rr_czas = register_cvar("rr_czas","60")
register_event("CurWeapon","switchweapon","be","1=1","2!29")
RegisterHam(Ham_Killed, "player", "fwd_player_killed", 1)

}
public nozowka(id)
{
set_task(1.0, "Start")

}
public Start(id)
{
server_cmd("amxx pause vampire.amxx")
switchweapon(id)

noze = true

Odliczanie[id] = get_pcvar_num(rr_czas);

if(task_exists(id + SPRAWDZ))
{
remove_task( id + SPRAWDZ )
}
set_task( 1.0, "Koniec", id + SPRAWDZ, _, _, "b" )

return PLUGIN_CONTINUE
}

public Koniec(task_id)
{
new id = task_id - SPRAWDZ

set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 6.0, 10.0)
show_hudmessage( id, "%s ^n Рестарт через: %d секунд", prefix, Odliczanie[id] )


Odliczanie[id] -= 1

if(Odliczanie[id] <= 0)
{
if( task_exists(task_id) )
{
remove_task( task_id )
}
set_cvar_num("sv_restart", 2);
server_cmd("amxx unpause vampire.amxx")
server_cmd("amxx pause snow.amxx")
ColorChat(id, RED, "%s^x04 Ожидание завершено!^nПриятной игры!", prefix);
noze = false
}
}
public switchweapon(id)
{
if (!noze)
return PLUGIN_CONTINUE

engclient_cmd(id,"weapon_knife")
return PLUGIN_CONTINUE
}
public fwd_player_killed(victim, attacker, corpse)
{
if(!noze)
return

set_task(1.0, "respawn_player", victim)
}
public respawn_player(id)
{
if(is_user_connected(id))
ExecuteHamB(Ham_CS_RoundRespawn, id)
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: