Hi all. I have hosting server running on linux. I made plugin and it should work cause I have tested it on my LAN server and it worked great. The main problem is that when I run server, it shows this in console and server stop:
Your server needs to be restarted in order to receive the latest update.
Server is updated. I wrote to support and they told me that it is caused by my plugin. Without plugin server works. Please help me. Thx
P.S: Pleae do not write sentences like "Oh it is bad coded etc.". I have not done optimalizations yet.
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <engine>
#include <playermodel>
#define PLUGIN "Umbrella Swarm RELOADED"
#define VERSION "1.0"
#define AUTHOR "P.72 Dragon"
#define HIDE_FLASH (1<<1) //flashlight, +
#define HIDE_HP_HUD (1<<3) //Health, armour and radar
#define HIDE_MONEY (1<<5) //money, +
#define TASKID_HUD 2931
new const g_hunterleap[] = "umbrella/hunter_leap.wav"
new const ZOMBIE_MODEL [] = "models/player/hunter/hunter.mdl";
new const g_ZombieClaws[] = "models/v_hunter_knife.mdl";
new const g_sound_zombiewin[] = "umbrella/zombiewin.wav";
new const g_sound_humanwin[] = "umbrella/humanwin.wav";
new bool: g_bFreezeTime;
new const g_sound_miss[][]=
{
"Left4Dead/Hunter_miss1.wav",
"Left4Dead/Hunter_miss2.wav",
"Left4Dead/Hunter_miss3.wav"
};
new const g_sound_hit[][]=
{
"Left4Dead/Hunter_strike1.wav",
"Left4Dead/Hunter_strike2.wav",
"Left4Dead/Hunter_strike3.wav"
};
new const g_sound_pain[][]=
{
"Left4Dead/Hunter_pain1.wav",
"Left4Dead/Hunter_pain2.wav",
"Left4Dead/Hunter_pain3.wav"
};
new const g_sound_die[][]=
{
"Left4Dead/Hunter_die1.wav",
"Left4Dead/Hunter_die2.wav"
};
new g_Zombie[33]
new g_SpawnOn[33]
new msg_hideweapon
new g_hudsync
new bool: g_hasLeap[33]
new Float: g_LastLeap[33]
new cvar_health, cvar_armor, cvar_gravity, cvar_speed, cvar_respawn, cvar_switch, cvar_semiclip,
cvar_semiclip_t, cvar_semiclip_ct, cvar_Leap, cvar_LeapCooldown, cvar_LeapForce, cvar_LeapHeight;
public plugin_precache()
{
precache_model(ZOMBIE_MODEL)
/*for(new i = 0; i < sizeof ZOMBIE_MODEL; i++)
{
new modelpath[256];
formatex( modelpath, 255, "models/player/%s/%s.mdl", ZOMBIE_MODEL[i], ZOMBIE_MODEL[i] );
precache_model(modelpath);
}*/
new i;
for(i = 0; i < sizeof g_sound_die; i++)
engfunc(EngFunc_PrecacheSound, g_sound_die[i]);
for(i = 0; i < sizeof g_sound_hit; i++)
engfunc(EngFunc_PrecacheSound, g_sound_hit[i]);
for(i = 0; i < sizeof g_sound_miss; i++)
engfunc(EngFunc_PrecacheSound, g_sound_miss[i]);
for(i = 0; i < sizeof g_sound_pain; i++)
engfunc(EngFunc_PrecacheSound, g_sound_pain[i]);
precache_model(g_ZombieClaws);
precache_sound(g_sound_zombiewin);
precache_sound(g_sound_humanwin);
precache_sound(g_hunterleap);
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR);
cvar_Leap = register_cvar("zswarm_leap", "1");
cvar_LeapCooldown = register_cvar("zswarm_cooldown","5.0");
cvar_LeapForce = register_cvar("zswarm_lforce", "525");
cvar_LeapHeight = register_cvar("zswarm_lheight", "260");
cvar_health = register_cvar ("us_health", "600");
cvar_armor = register_cvar ("us_armor", "200");
cvar_gravity = register_cvar ("us_gravity", "0.75");
cvar_speed = register_cvar ("us_speed", "300.0");
cvar_respawn = register_cvar("us_respawn", "3");
cvar_switch = register_cvar("us_switch", "3");
cvar_semiclip = register_cvar("us_noclip", "1");
cvar_semiclip_t = register_cvar("us_noclip_t", "0");
cvar_semiclip_ct = register_cvar("us_noclip_ct", "1");
g_hudsync = CreateHudSyncObj()
RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1);
RegisterHam(Ham_Item_PreFrame, "player", "ResetMaxSpeed", 1)
register_forward(FM_EmitSound, "EmitSound");
register_forward(FM_Touch, "EnityTouch");
register_forward(FM_CmdStart, "Forward_CmdStart");
register_event("CurWeapon", "CurrentWeapon", "be", "1=1");
register_event("DeathMsg", "Event_DeathMessage", "b");
register_logevent("RoundEnd", 2, "1=Round_End");
msg_hideweapon = get_user_msgid("HideWeapon")
register_message(get_user_msgid("SendAudio"), "Message_SendAudio");
}
public client_connect(id)
{
g_hasLeap[id] = false
}
public PlayerSpawn(id)
{
if(!is_user_alive(id))
return;
if(cs_get_user_team(id) == CS_TEAM_T)
{
new Health, Armor, Float: Gravity
Health = get_pcvar_num(cvar_health);
Armor = get_pcvar_num(cvar_armor);
Gravity = get_pcvar_float(cvar_gravity);
g_Zombie[id] = true
set_pev(id, pev_health, float(Health));
cs_set_user_armor(id, Armor, CS_ARMOR_VESTHELM);
set_pev(id, pev_gravity, Gravity);
g_hasLeap[id] = true;
fm_set_user_model(id, ZOMBIE_MODEL, true)
if(!cs_get_user_nvg(id))
cs_set_user_nvg(id);
set_task(0.2, "Task_HUD", TASKID_HUD + id)
}
if(cs_get_user_team(id) == CS_TEAM_CT)
{
g_Zombie[id] = false
set_pev(id, pev_health, 100.0);
}
}
public ResetMaxSpeed(id)
{
if(is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T)
{
new Float: Speed
Speed = get_pcvar_float(cvar_speed)
entity_set_float(id, EV_FL_maxspeed, Speed)
}
}
public Forward_CmdStart(id, uc_handle, seed)
{
if(!is_user_alive(id))
return FMRES_IGNORED;
static Float: flTime ; flTime = get_gametime();
static iButton ; iButton = get_uc(uc_handle, UC_Buttons );
static fViewAngles[3] ; get_uc(uc_handle, UC_ViewAngles, fViewAngles);
static iFlag ; iFlag = entity_get_int(id, EV_INT_flags);
static aim, body, szAimingEnt[32];
get_user_aiming(id, aim, body, 60);
entity_get_string(aim, EV_SZ_classname, szAimingEnt, charsmax(szAimingEnt));
if (g_Zombie[id])
{
if (!g_bFreezeTime && (iButton & IN_ATTACK) && (iButton & IN_DUCK) && (iFlag & FL_ONGROUND))
{
if (get_pcvar_num(cvar_Leap))
{
static Float: fl_CoolDown ; fl_CoolDown = get_pcvar_float(cvar_LeapCooldown);
{
if(flTime - fl_CoolDown > g_LastLeap[id])
{
clcmd_leap(id);
g_LastLeap[id] = flTime;
}
}
}
}
}
return FMRES_IGNORED
}
public clcmd_leap(id)
{
new Float: velocity[3];
new Float: lheight, lforce;
lforce = get_pcvar_num(cvar_LeapForce);
lheight = get_pcvar_float(cvar_LeapHeight);
velocity_by_aim(id, lforce, velocity);
velocity[2] = lheight;
entity_set_vector(id, EV_VEC_velocity, velocity);
emit_sound(id, CHAN_VOICE, g_hunterleap, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
}
public EntityTouch(toucher, touched)
{
if(!get_pcvar_num(cvar_semiclip))
return PLUGIN_HANDLED;
else if (get_pcvar_num(cvar_semiclip))
entity_set_int(toucher,EV_INT_solid,SOLID_NOT);
if(!get_pcvar_num(cvar_semiclip_ct))
return PLUGIN_HANDLED;
else if (get_pcvar_num(cvar_semiclip_ct) && cs_get_user_team(toucher) == CS_TEAM_CT )
entity_set_int(toucher,EV_INT_solid,SOLID_NOT);
if(!get_pcvar_num(cvar_semiclip_t))
return PLUGIN_HANDLED;
else if (get_pcvar_num(cvar_semiclip_t) && cs_get_user_team(toucher) == CS_TEAM_T )
entity_set_int(toucher,EV_INT_solid,SOLID_NOT);
return PLUGIN_HANDLED;
}
public RoundEnd()
{
static RoundCounter = 0;
RoundCounter ++;
new CvarRound = get_pcvar_num(cvar_switch);
new players[32], iNum, id;
get_players(players, iNum);
if(RoundCounter >= CvarRound && 1 < iNum)
{
set_hudmessage(255, 0, 0, -1.0, -1.0, 1, 6.0, 12.0);
show_hudmessage(0, "Switching Teams!");
for(new i = 0; i < iNum; i++)
{
id = players[i];
g_SpawnOn[id] = false
switch((cs_get_user_team(id)))
{
case CS_TEAM_CT:
{
cs_set_user_team(id, CS_TEAM_T);
}
case CS_TEAM_T:
{
cs_set_user_team(id, CS_TEAM_CT);
}
}
}
RoundCounter = 0;
}
else if (1 < iNum)
{
set_hudmessage(255, 0, 0, -1.0, -1.0, 1, 6.0, 12.0);
show_hudmessage(0, "Rounds left until switching: %d", (CvarRound - RoundCounter));
}
}
public EmitSound(id, channel, sample[], Float:volume, Float:attn, flag, pitch)
{
if(!is_user_connected(id))
return FMRES_IGNORED;
if(g_Zombie[id])
{
//KNIFE
if (sample[0] == 'w' && sample[1] == 'e' && sample[8] == 'k' && sample[9] == 'n')
{
switch(sample[17])
{
case 'l':
return FMRES_SUPERCEDE;
case 's', 'w':
{
emit_sound(id, CHAN_WEAPON, g_sound_miss[random(sizeof g_sound_miss)], volume, attn, flag, pitch);
return FMRES_SUPERCEDE;
}
case 'b', '1', '2', '3', '4':
{
emit_sound(id, CHAN_WEAPON, g_sound_hit[random(sizeof g_sound_hit)], volume, attn, flag, pitch);
return FMRES_SUPERCEDE;
}
}
}
//PAIN
else if (sample[1] == 'l' && sample[2] == 'a' && sample[3] == 'y')
{
emit_sound(id, CHAN_VOICE, g_sound_pain[random(sizeof g_sound_pain)], volume, attn, flag, pitch);
return FMRES_SUPERCEDE;
}
//DEATH
else if (sample[7] == 'd' && (sample[8] == 'i' && sample[9] == 'e' || sample[12] == '6'))
{
emit_sound(id, CHAN_VOICE, g_sound_die[random(sizeof g_sound_die)], volume, attn, flag, pitch);
return FMRES_SUPERCEDE;
}
else if (sample[6] == 'n' && sample[7] == 'v' && sample[8] == 'g')
return FMRES_SUPERCEDE;
}
return FMRES_IGNORED;
}
public CurrentWeapon(id)
{
if(!is_user_alive(id) || cs_get_user_team(id) != CS_TEAM_T)
return;
if(read_data(2) != CSW_KNIFE )
{
engclient_cmd(id, "weapon_knife");
UTIL_SetModel(id, g_ZombieClaws, "");
message_begin(MSG_ONE, msg_hideweapon, _ , id)
write_byte(HIDE_FLASH | HIDE_HP_HUD | HIDE_MONEY)
message_end()
}
}
public Event_DeathMessage()
{
new victim = read_data(2);
set_task(get_pcvar_float(cvar_respawn), "FM_Respawn", victim);
}
public Message_SendAudio(msg_id, msg_dest, id)
{
static AudioCode[22];
get_msg_arg_string(2, AudioCode, charsmax(AudioCode));
if(equal(AudioCode, "%!MRAD_terwin"))
set_msg_arg_string(2, g_sound_zombiewin);
if(equal(AudioCode, "%!MRAD_ctwin"))
set_msg_arg_string(2, g_sound_humanwin);
if(equal(AudioCode, "!%MRAD_rounddraw"))
set_msg_arg_string(2, g_sound_humanwin);
return PLUGIN_CONTINUE;
}
public FM_Respawn(id)
{
if(is_user_connected(id) && !is_user_alive(id) && cs_get_user_team(id) == CS_TEAM_T && g_SpawnOn[id])
{
set_pev(id,pev_deadflag,DEAD_RESPAWNABLE)
dllfunc(DLLFunc_Think, id);
}
return PLUGIN_CONTINUE;
}
public Task_HUD(task)
{
new id = task - TASKID_HUD
if(!is_user_alive(id))
return PLUGIN_HANDLED
if(cs_get_user_team(id) == CS_TEAM_T)
{
static health
health = get_user_health(id)
set_hudmessage(255, 0, 0, 0.02, 0.97, 0, 0.0, 0.3, 0.0, 0.0)
ShowSyncHudMsg(id, g_hudsync , "Health: %d || Destroy All Survivor|| Visit our website www.gamestreets.eu", health)
set_task(0.1, "Task_HUD", TASKID_HUD + id)
}
return PLUGIN_CONTINUE
}
/*=========================Stocks=============================*/
stock UTIL_SetModel ( const PlayerId, const viewModel[], weaponModel[] )
{
entity_set_string( PlayerId, EV_SZ_viewmodel, viewModel);
entity_set_string( PlayerId, EV_SZ_weaponmodel, weaponModel);
}