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

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

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

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

Не возрождаются игроки при выборе тимы

, KnifeDM Мод. Не респавнятся игроки после смерти (некоторые)
Статус пользователя FDGod
сообщение 9.2.2016, 18:25
Сообщение #1


Стаж: 12 лет

Сообщений: 186
Благодарностей: 23
Полезность: 17

Здравствуйте.
Суть. Есть мод KnifeDM 1.0, некоторые игроки при подключени остаются убитыми в выбранной ними команде.
Прошу помощи разобраться с этим. dntknw.gif
Cкрытый текст
Код:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>

#define TASK_PLAYER_RESPAWN 865537

new g_iKnifeDM, g_iTime_Respawn, g_iMessage_Mode,
g_iMessage_Time, g_iRadio_Check, g_iLogo_Check,
g_iFonarik_Check, g_iGiveHealth_Enable, g_iGiveHealth,
g_iGiveHealth_Hs, g_iHealth_All, g_iHealth_Max,
g_iSpawn_Protect, g_iSpawn_Protect_Time, g_iStrip_Wpns;

#pragma semicolon 1
public plugin_init()
{
register_plugin("KnifeDM Mod", "1.0", "ShaTalKiN");

RegisterHam(Ham_Killed, "player", "Ham_PlayerKilled", 1);
RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn", 1);

register_clcmd("radio1", "RadioCheck");
register_clcmd("radio2", "RadioCheck");
register_clcmd("radio3", "RadioCheck");

register_impulse(201, "LogoCheck");
register_impulse(100, "FonarikCheck");

RegisterCvars();

new szConfigsDir[64];
get_configsdir(szConfigsDir, 63);
server_cmd("exec %s/knifedm_mod.cfg", szConfigsDir);
register_dictionary("knifedm_mod.txt");
}

public Ham_PlayerSpawn(id)
{
if(!is_user_connected(id)) return;

if(get_pcvar_num(g_iKnifeDM))
{
if(task_exists(id+TASK_PLAYER_RESPAWN)) remove_task(id+TASK_PLAYER_RESPAWN);
if(get_pcvar_num(g_iStrip_Wpns))
{
fm_strip_user_weapons(id, 1);
fm_give_item(id, "weapon_knife");
}
if(get_pcvar_num(g_iSpawn_Protect))
{
fm_set_user_godmode(id, 1);
switch(get_user_team(id))
{
case 1: fm_set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 0);
case 2: fm_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 0);
}
set_task(get_pcvar_float(g_iSpawn_Protect_Time), "DisableProtect", id);
}
}
}

public DisableProtect(id)
{
if(!is_user_connected(id)) return;

fm_set_user_godmode(id, 0);
fm_set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0);
}

public Ham_PlayerKilled(iVictim, iAttacker)
{
if(get_pcvar_num(g_iKnifeDM))
{
set_task(get_pcvar_float(g_iTime_Respawn), "Respawn", iVictim+TASK_PLAYER_RESPAWN, _,_, "b");

if(get_user_team(iAttacker) == 1 && get_user_team(iVictim) == 2 || get_user_team(iAttacker) == 2 && get_user_team(iVictim) == 1)
{
if(get_pcvar_num(g_iGiveHealth_Enable))
{
if(get_pcvar_num(g_iGiveHealth_Enable) == 1)
{
if(get_pdata_int(iVictim, 75, 5) != HIT_HEAD)
{
set_pev(iAttacker, pev_health, pev(iAttacker, pev_health) + get_pcvar_float(g_iGiveHealth));
set_task(0.1, "CheckHealth", iAttacker);
}
if(get_pdata_int(iVictim, 75, 5) == HIT_HEAD)
{
set_pev(iAttacker, pev_health, pev(iAttacker, pev_health) + get_pcvar_float(g_iGiveHealth_Hs));
set_task(0.1, "CheckHealth", iAttacker);
}
}
if(get_pcvar_num(g_iGiveHealth_Enable) == 2)
{
set_pev(iAttacker, pev_health, get_pcvar_float(g_iHealth_All));
}
}
}
}
}

public client_putinserver(id)
{
if(get_pcvar_num(g_iKnifeDM))
{
set_task(get_pcvar_float(g_iTime_Respawn), "Respawn", id+TASK_PLAYER_RESPAWN, _,_, "b");
if(get_pcvar_num(g_iMessage_Mode))
{
set_task(get_pcvar_float(g_iMessage_Time), "MessageModInfo", id);
}
}
}

public client_disconnect(id) if(task_exists(id+TASK_PLAYER_RESPAWN)) remove_task(id+TASK_PLAYER_RESPAWN);

public Respawn(id)
{
id -= TASK_PLAYER_RESPAWN;
if(!is_user_alive(id))
{
switch(get_user_team(id))
{
case 1,2:
{
ExecuteHam(Ham_CS_RoundRespawn, id);
if(task_exists(id+TASK_PLAYER_RESPAWN)) remove_task(id+TASK_PLAYER_RESPAWN);
}
}
}
}

public MessageModInfo(id)
{
ChatColor(id, "%L", id, "KNIFEDM_INFO_1");
ChatColor(id, "%L", id, "KNIFEDM_INFO_2");
}

public RadioCheck(id)
{
if(get_pcvar_num(g_iKnifeDM))
{
if(!get_pcvar_num(g_iRadio_Check))
{
ChatColor(id, "%L", id, "KNIFEDM_MESSAGE_RADIO");
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}

public LogoCheck(id)
{
if(get_pcvar_num(g_iKnifeDM))
{
if(!get_pcvar_num(g_iLogo_Check))
{
ChatColor(id, "%L", id, "KNIFEDM_MESSAGE_LOGO");
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}

public FonarikCheck(id)
{
if(get_pcvar_num(g_iKnifeDM))
{
if(!get_pcvar_num(g_iFonarik_Check))
{
ChatColor(id, "%L", id, "KNIFEDM_MESSAGE_FONARIK");
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE;
}

public CheckHealth(id)
{
new const szDisableMapTypes[][] = {"35hp_", "35h", "35"};
new szMapname[32];
get_mapname(szMapname, charsmax(szMapname));
for(new i; i < sizeof szDisableMapTypes; i++)
if(equali(szMapname, szDisableMapTypes[i], strlen(szDisableMapTypes[i])))
{
if(get_user_health(id) > get_pcvar_float(g_iHealth_Max))
{
set_pev(id, pev_health, get_pcvar_float(g_iHealth_Max));
}
}
}

public RegisterCvars()
{
g_iKnifeDM = register_cvar("knfdm_enable", "1");
g_iTime_Respawn = register_cvar("knfdm_time_respawn", "1.0");
g_iMessage_Mode = register_cvar("knfdm_message_mode", "1");
g_iMessage_Time = register_cvar("knfdm_message_time", "20.0");
g_iRadio_Check = register_cvar("knfdm_radio_enable", "0");
g_iLogo_Check = register_cvar("knfdm_logo_enable", "0");
g_iFonarik_Check = register_cvar("knfdm_fonarik_enable", "0");
g_iGiveHealth_Enable = register_cvar("knfdm_give_hp_enable", "1");
g_iGiveHealth = register_cvar("knfdm_give_hp", "5.0");
g_iGiveHealth_Hs = register_cvar("knfdm_give_hp_hs", "10.0");
g_iHealth_All = register_cvar("knfdm_hp_all", "35.0");
g_iHealth_Max = register_cvar("knfdm_max_hp", "35.0");
g_iSpawn_Protect = register_cvar("knfdm_spawn_protect", "1");
g_iSpawn_Protect_Time = register_cvar("knfdm_spawn_protect_time", "2.0");
g_iStrip_Wpns = register_cvar("knfdm_strip_user_wpn", "1");
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32];
static msg[191];
vformat(msg, 190, input, 3);
replace_all(msg, 190, "!g", "^4");
replace_all(msg, 190, "!y", "^1");
replace_all(msg, 190, "!t", "^3");
if(id)players[0] = id; else get_players(players, count, "ch");
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}

public fm_set_user_rendering(pPlayer, iRenderFx, iRed, iGreen, iBlue, iRenderMode, iRenderAmt)
{
new Float:flRenderColor[3];
flRenderColor[0] = float(iRed);
flRenderColor[1] = float(iGreen);
flRenderColor[2] = float(iBlue);
set_pev(pPlayer, pev_renderfx, iRenderFx);
set_pev(pPlayer, pev_rendercolor, flRenderColor);
set_pev(pPlayer, pev_rendermode, iRenderMode);
set_pev(pPlayer, pev_renderamt, float(iRenderAmt));
}

stock fm_strip_user_weapons(pPlayer, iType = 0)
{
static iEntity, iszWeaponStrip = 0;
if(iszWeaponStrip || (iszWeaponStrip = engfunc(EngFunc_AllocString, "player_weaponstrip"))) iEntity = engfunc(EngFunc_CreateNamedEntity, iszWeaponStrip);
if(!pev_valid(iEntity)) return 0;
if(iType && get_user_weapon(pPlayer) != CSW_KNIFE) engclient_cmd(pPlayer, "weapon_knife");
dllfunc(DLLFunc_Spawn, iEntity);
dllfunc(DLLFunc_Use, iEntity, pPlayer);
engfunc(EngFunc_RemoveEntity, iEntity);
return 1;
}

stock fm_give_item(id, const szItem[])
{
new iEntity = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szItem));
if(!pev_valid(iEntity)) return 0;
new Float:vecOrigin[3];
pev(id, pev_origin, vecOrigin);
set_pev(iEntity, pev_origin, vecOrigin);
set_pev(iEntity, pev_spawnflags, pev(iEntity, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, iEntity);
new iSolid = pev(iEntity, pev_solid);
dllfunc(DLLFunc_Touch, iEntity, id);
if(pev(iEntity, pev_solid) == iSolid)
{
engfunc(EngFunc_RemoveEntity, iEntity);
return -1;
}
return iEntity;
}

stock fm_set_user_godmode(index, godmode = 0)
{
set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM);
return 1;
}

Буду очень благодарен.
p.s. видал на форуме уже были темы с решением такой же проблеммы как и у меня НО ... не имели конфиг настройки плагина как в этом коде
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя FDGod
сообщение 2.3.2016, 18:43
Сообщение #2


Стаж: 12 лет

Сообщений: 186
Благодарностей: 23
Полезность: 17

Данную тему можно закрыть т.к. использую другую версию мода (хоть и та версия тоже корявая, но получше этой).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Timajkee
сообщение 18.3.2016, 16:16
Сообщение #3
Стаж: 10 лет
Город: Узбекистан

Сообщений: 96
Благодарностей: 12
Полезность: 18

FDGod, Лутше CSDM_MAIN Постав все будет шикарно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: