Ребята, проблема с этим плагином. Падают из-за него серваки...
- Код: Выделить всё
L 03/17/2010 - 20:00:51: [AMXX] Displaying debug trace (plugin "respawn.amxx")
L 03/17/2010 - 20:00:51: [AMXX] Run time error 10: native error (native "give_item")
L 03/17/2010 - 20:00:51: [AMXX] [0] 240.attach::player_giveitems (line 105)
L 03/17/2010 - 19:17:06: [AMXX] Displaying debug trace (plugin "respawn.amxx")
L 03/17/2010 - 19:17:06: [AMXX] Run time error 10: native error (native "spawn")
L 03/17/2010 - 19:17:06: [AMXX] [0] 240.attach::player_spawn (line 144)
Сам в структуре плагина нуб-нубом. Может Вы своим проф. взглядом посмотреть и исправить эту байду? Буду просто мега-супер благодарен! Ну просто очень достали падения серверов...
- Код: Выделить всё
/* AMXX Mod script.
*
* (c) Copyright 2004, developed by Geesu modified by v3x
* This file is provided as is (no warranties).
*
* Changelog
* 1.0:
* Pistols are now given to players when they respawn
* sv_checkpistols cvar added, if this is set to 0, then players will always spawn with a pistol, otherwise they will only spawn with a pistol when it is not scoutzknivez and not a ka map
* sv_respawn cvar added, set this to 0 to disable the plugin
*/
#include <amxmodx>
#include <fun>
#include <cstrike>
#include <engine>
#define DISABLE_CS 0
// team ids
#define UNASSIGNED 0
#define TS 1
#define CTS 2
#define AUTO_TEAM 5
#define CVAR_CT_TIME "sv_respawn_time_ct"
#define CVAR_TE_TIME "sv_respawn_time_te"
#define CVAR_GOD_TIME "sv_respawn_god_time"
new bool:g_PistolsDisabled = false
public plugin_init(){
register_plugin("Respawn Forever","1.2","Pimp Daddy (OoTOAoO)/v3x")
register_event("DeathMsg","on_Death","a")
register_cvar("sv_checkpistols", "1")
register_cvar("sv_respawn", "1")
register_cvar(CVAR_CT_TIME, "3")
register_cvar(CVAR_TE_TIME, "3")
register_cvar(CVAR_GOD_TIME, "2");
register_clcmd("say /respawn", "ClCmd_Respawn");
//set_task(15.0, "remove_guns", 1982123);
set_task(45.0, "check_dead", 12937);
}
/*public remove_guns()
{
if ( !get_cvar_num("sv_respawn") )
return PLUGIN_CONTINUE
new ent;
while((ent = find_ent_by_class(ent, "weaponbox")) != 0)
{
new model[33];
entity_get_string(ent, EV_SZ_model, model, 32);
if(containi(model, "w_") != -1)
remove_entity(ent);
}
set_task(15.0, "remove_guns", 1982123);
return PLUGIN_CONTINUE;
}*/
// * Credited to twisted
public pfn_touch(ptr, ptd)
{
if(get_cvar_num("sv_respawn") && is_valid_ent(ptr))
{
new classname[32]
if(is_valid_ent(ptr))
entity_get_string(ptr,EV_SZ_classname,classname,31)
if(equali(classname,"weaponbox"))
{
for(new inum=0;inum<=get_global_int(GL_maxEntities);inum++)
{
if(!is_valid_ent(inum)) continue
new class[51]
entity_get_string(inum,EV_SZ_classname,class,50)
if(containi(class,"weapon_") == -1) continue
new owner = entity_get_edict(inum,EV_ENT_owner)
if(ptr == owner)
remove_entity(inum)
}
remove_entity(ptr)
}
else if(containi(classname,"weapon_") != -1)
remove_entity(ptr)
}
return PLUGIN_CONTINUE
}
public check_dead()
{
new players[32], num, id;
get_players(players, num, "b");
for(id = 0; id <= num; id++)
client_print(id, print_chat, "*** Что бы вступить в игру, напишите в чате /respawn");
set_task(45.0, "check_dead", 12937);
}
public ClCmd_Respawn( id )
{
new CsTeams:iTeam = cs_get_user_team(id);
if((iTeam == CS_TEAM_CT || iTeam == CS_TEAM_T) && !is_user_alive(id))
{
new parm[1];
parm[0] = id;
switch(iTeam)
{
case CS_TEAM_CT:
{
set_task(get_cvar_float(CVAR_CT_TIME) + 0.5,"player_spawn",72,parm,1)
set_task(get_cvar_float(CVAR_CT_TIME) + 0.7,"player_spawn",72,parm,1)
set_task(get_cvar_float(CVAR_CT_TIME) + 0.9,"player_giveitems",72,parm,1)
}
case CS_TEAM_T:
{
set_task(get_cvar_float(CVAR_TE_TIME) + 0.5,"player_spawn",72,parm,1)
set_task(get_cvar_float(CVAR_TE_TIME) + 0.7,"player_spawn",72,parm,1)
set_task(get_cvar_float(CVAR_TE_TIME) + 0.9,"player_giveitems",72,parm,1)
}
}
}
return PLUGIN_CONTINUE;
}
public check_pistols()
{
/* Determine if we should give players a pistol or not */
if ( get_cvar_num("sv_checkpistols") )
{
set_task(1.0, "check_pistols")
new mapname[32]
get_mapname(mapname,31)
if ( containi(mapname,"ka_")!=-1 || containi(mapname,"scoutzknivez")!=-1 )
g_PistolsDisabled = true
}
}
public on_Death()
{
if ( !get_cvar_num("sv_respawn") )
return PLUGIN_CONTINUE
new victim_id = read_data(2)
new parm[1]
parm[0]=victim_id
/* Spawn the player twice to avoid the HL engine bug */
switch(get_user_team(victim_id))
{
case CTS:
{
set_task(get_cvar_float(CVAR_CT_TIME) + 0.5,"player_spawn",72,parm,1)
set_task(get_cvar_float(CVAR_CT_TIME) + 0.7,"player_spawn",72,parm,1)
set_task(get_cvar_float(CVAR_CT_TIME) + 0.9,"player_giveitems",72,parm,1)
}
case TS:
{
set_task(get_cvar_float(CVAR_TE_TIME) + 0.5,"player_spawn",72,parm,1)
set_task(get_cvar_float(CVAR_TE_TIME) + 0.7,"player_spawn",72,parm,1)
set_task(get_cvar_float(CVAR_TE_TIME) + 0.9,"player_giveitems",72,parm,1)
}
}
return PLUGIN_CONTINUE
}
public player_giveitems(parm[1])
{
new id = parm[0]
give_item(id, "item_suit")
give_item(id, "weapon_knife")
/* Determines if a players should be given a pistol */
if ( !g_PistolsDisabled )
{
new wpnList[32] = 0, number = 0, bool:foundGlock = false, bool:foundUSP = false
get_user_weapons(id,wpnList,number)
/* Determine if the player already has a pistol */
for (new i = 0;i < number;i++)
{
if (wpnList[i] == CSW_GLOCK18)
foundGlock = true
if (wpnList[i] == CSW_USP)
foundUSP = true
}
/* Give a T his/her pistol */
if ( get_user_team(id)==TS && !foundGlock )
{
give_item(id,"weapon_glock18")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
}
/* Give a CT his/her pistol */
else if ( get_user_team(id)==CTS && !foundUSP )
{
give_item(id,"weapon_usp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
}
}
return PLUGIN_CONTINUE
}
public player_spawn(parm[1])
{
spawn(parm[0])
if (get_cvar_num(CVAR_GOD_TIME) > 0)
{
set_user_godmode(parm[0], 1)
set_task(get_cvar_float(CVAR_GOD_TIME), "no_god", 724, parm, 1)
set_user_rendering(parm[0],kRenderFxGlowShell,0,225,0,kRenderNormal,25)
}
}
public no_god(parm[1])
{
if (get_cvar_num(CVAR_GOD_TIME) > 0)
{
set_user_godmode(parm[0], 0)
set_user_rendering(parm[0],kRenderFxNone,255,255,255,kRenderNormal,255)
}
}
Наверное вкурсе все, что это за плагин и т.д. Но на всякий случай:
Плагин респит игрока сразу на базу после смерти. Так же игрок появляется с пистолетом и ножом. Появление без либо каких задержек и пауз.
Квары в игре:
/respawn - в любом моменте игры. (Кстати, даже когда ты в спектах )
Квары в server.cfg или amxx.cfg:
Нету...
Спасибо заранее!
p.s. буду так же благодарен, если найдется аналог этого плагина...