Megoldva!
Megoldás:
Kód:
#include <amxmodx>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <engine>
#define PLUGIN "Deathrun szabad es ruli kor"
#define VERSION "1.1"
#define AUTHOR "Demon"
#pragma semicolon 1
new const Prefix[ ] = "[Információ]";
new bool:g_ParbajKor;
new bool:g_Nyomott;
new bool:g_Parancs;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /free", "ParbajKor");
register_clcmd("team_say /free", "ParbajKor");
register_clcmd("say /szabad", "ParbajKor");
register_clcmd("team_say /szabad", "ParbajKor");
register_clcmd("say /ruli", "ParbajKor");
register_clcmd("team_say /ruli", "ParbajKor");
register_clcmd("say /parbaj", "ParbajKor");
register_clcmd("team_say /parbaj", "ParbajKor");
register_forward(FM_CmdStart, "fw_CmdStart", 1);
if(engfunc(EngFunc_FindEntityByString,-1 ,"classname", "func_button"))
RegisterHam(Ham_Use, "func_button", "FwdHamUse_Button");
if(engfunc(EngFunc_FindEntityByString,-1 ,"classname","func_rot_button"))
RegisterHam(Ham_Use, "func_rot_button", "FwdHamUse_Button");
if(engfunc(EngFunc_FindEntityByString,-1 ,"classname", "button_target"))
RegisterHam(Ham_Use, "button_target", "FwdHamUse_Button");
if(engfunc(EngFunc_FindEntityByString,-1 ,"classname", "armoury_entity"))
RegisterHam(Ham_Touch, "armoury_entity", "arm_ent_touch", 0);
register_event( "CurWeapon", "EventCurWeapon", "be", "1=1", "2!29" );
register_event( "HLTV", "EventNewRound", "a", "1=0", "2=0" );
register_event( "TextMsg", "EventRestart", "a", "2&#Game_C", "2&#Game_w" );
RegisterHam(Ham_Spawn, "player", "fwSpawn", 1);
}
public fwSpawn(id)
set_task(3.0, "Eled", id);
public Eled(id)
{
if(g_ParbajKor && is_user_connected(id) && is_user_alive(id))
{
strip_user_weapons(id);
give_item(id, "weapon_knife");
new iWpnID = give_item(id, "weapon_usp");
cs_set_weapon_ammo(iWpnID, 1);
cs_set_user_bpammo(id, CSW_USP, 0);
}
}
public arm_ent_touch(ent,id)
{
if((g_ParbajKor) && is_user_connected(id) && is_user_alive(id))
return HAM_SUPERCEDE;
return HAM_IGNORED;
}
public fw_CmdStart(id, handle, seed)
{
if(!is_user_alive(id))
return FMRES_IGNORED;
static iInAttackButton, iInAttackOldButton;
iInAttackButton = (get_uc(handle, UC_Buttons) & IN_ATTACK);
iInAttackOldButton = (get_user_oldbutton(id) & IN_ATTACK);
if(iInAttackButton && !iInAttackOldButton)
{
if(get_user_weapon(id) == CSW_USP && g_ParbajKor)
{
new clip,ammo ;
get_user_ammo(id,CSW_USP,clip,ammo);
if(ammo==0)
cs_set_user_bpammo(id, CSW_USP, 1);
return FMRES_HANDLED;
}
}
return FMRES_IGNORED;
}
public EventNewRound()
{
g_ParbajKor=false;
g_Nyomott=false;
g_Parancs=false;
set_task(5.0, "Parancs");
new p[32], n, id;
get_players(p, n, "ca");
for(new i=0; i < n; i++)
{
id = p[i];
if(get_user_team(id) == 1)
print_color(id, "!g%s !yHa !trulizni !yszeretnĂ©l Ărd be:!t /free", Prefix);
}
}
public Parancs() g_Parancs=true;
public EventRestart()
{
g_ParbajKor=false;
g_Nyomott=false;
}
public EventCurWeapon(id)
{
if(g_ParbajKor)
{
new weapon = get_user_weapon(id);
if(weapon != CSW_KNIFE,CSW_USP && weapon != CSW_USP)
client_cmd(id, "weapon_usp");
new clip,ammo;
get_user_ammo(id,CSW_USP,clip,ammo);
if(ammo==0)
cs_set_user_bpammo(id, CSW_USP, 0);
}
}
public ParbajKor(id)
{
if(cs_get_user_team(id) != CS_TEAM_T)
{
print_color(id, "!g%s !yEzt a parancsot csak !tterroristák !yhasználhatják.", Prefix);
return PLUGIN_CONTINUE;
}
else if(!g_Parancs)
{
print_color(id, "!g%s !yKörkezdés után !t5 !ymásodpercet kell várnod, hogy használhasd ezt a parancsot.", Prefix);
return PLUGIN_CONTINUE;
}
else if(g_ParbajKor)
{
print_color(id, "!g%s !tPárbaj kör !yvan ezért nem használható a parancs.", Prefix);
return PLUGIN_CONTINUE;
}
if(g_Nyomott)
print_color(id, "!g%s !yMár nyomtál gombot ezért nem lehet !tPárbaj kör!y.", Prefix);
else
{
g_ParbajKor=true;
set_hudmessage(0, 255, 0, 0.02, 0.38, 2, 6.0, 10.0, 0.25, 1.5);
show_hudmessage(0, "Párbaj kör");
print_color(0, "!g%s !tTerrorista !yúgy döntött, hogy ez a kör !tPárbaj kör !ylesz.", Prefix);
new p[32], n, pid;
get_players(p, n, "ca");
for(new i=0; i < n; i++)
{
pid = p[i];
strip_user_weapons(pid);
give_item(pid, "weapon_knife");
new iWpnID = give_item(pid, "weapon_usp");
cs_set_weapon_ammo(iWpnID, 1);
cs_set_user_bpammo(id, CSW_USP, 0);
}
}
return PLUGIN_CONTINUE;
}
public FwdHamUse_Button(iEntity, id, iActivator, iUseType, Float:flValue)
{
if((g_ParbajKor) && iUseType == 2 && flValue == 1.0 && is_user_alive( id )
&& get_user_team( id ) == 1 && get_pdata_int( iEntity, 41, 4 ) == 1 )
{
if(g_ParbajKor)
{
set_hudmessage(255, 0, 0, -1.0, 0.25, 0, 2.0, 2.0, 0.2, 0.2, 3);
show_hudmessage(id, "Nem nyomhatsz gombot, Párbaj kör van!");
}
return HAM_SUPERCEDE;
}
if(!g_ParbajKor && !g_Nyomott && get_user_team(id) == 1)
g_Nyomott=true;
return HAM_IGNORED;
}
stock print_color(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();
}
}
}
return PLUGIN_HANDLED;
}