PHP- Kodu:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#define PLUGIN "Jailbreak Last Request"
#define VERSION "1.6"
#define AUTHOR "rube"
/*================================================================================
Variables | bools | Cvars
=================================================================================*/
new g_maxPlayers, g_iMsgSayText, beacon_sprite
new cvar_granadas_bpammo, cvar_scout_bpammo, cvar_effect
new bool:touch_weapons[33], bool:once[33], bool:player_challenged[33], bool:duel_active,bool:Variable = true,
bool:knife_duel[33] ,bool:deagle_duel[33], bool:grenade_duel[33], bool:scout_duel[33]
new tag[] = "[www.osmanlijailcs.tk]"
/*================================================================================
Init n' precache
=================================================================================*/
public plugin_precache()
{
beacon_sprite = precache_model("sprites/shockwave.spr")
precache_sound("oslr/of2.wav")
precache_sound("oslr/of3.wav")
precache_sound("oslr/of4.wav")
precache_sound("oslr/of5.wav")
precache_sound("oslr/of5.wav")
precache_sound("oslr/of6.wav")
precache_sound("oslr/of7.wav")
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent("eRoundStart",2,"1=Round_Start")
RegisterHam(Ham_Touch, "weaponbox", "fw_touch_weapon")
RegisterHam(Ham_Touch, "armoury_entity", "fw_touch_weapon")
RegisterHam(Ham_Touch, "weapon_shield", "fw_touch_weapon")
RegisterHam(Ham_Spawn, "player", "fw_player_respawn", 1)
RegisterHam(Ham_Killed, "player", "fw_player_killed")
RegisterHam(Ham_TakeDamage,"player","fw_TakeDamage")
register_forward(FM_CmdStart,"fw_cmdstart",1)
// Comando de jugador - Client commands
register_clcmd("say /lr", "duel_menu")
register_clcmd("say !lr", "duel_menu")
register_clcmd("say_team /lr", "duel_menu")
register_clcmd("say_team !lr", "duel_menu")
// Cvars
cvar_granadas_bpammo = register_cvar("jb_grenade_bpammo","15") // amount bpammo grenade | cantidad de granadas
cvar_scout_bpammo = register_cvar("jb_scout_bpammo", "15") // amount bpammo scout | cantidad de balas pa' la scout
cvar_effect = register_cvar("jb_effect", "0") // 0 = glow , 1 = beacon, 2 = glow n' beacon
g_maxPlayers = get_maxplayers()
g_iMsgSayText = get_user_msgid("SayText")
}
/*================================================================================
Round Start
=================================================================================*/
public eRoundStart() {
duel_active = false
Variable = true
set_cvar_num("bh_enabled",1);
new rand = random_num(0,2)
switch(rand)
{
case 0: client_cmd(0,"spk oslr/of2.wav")
case 1: client_cmd(0,"spk oslr/of5.wav")
case 2: client_cmd(0,"spk oslr/of6.wav")
}
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage)
{
if(get_user_team(victim) == 2 && get_user_team(attacker) == 1 && Variable) {
new rand = random_num(0,1)
switch(rand)
{
case 0: client_cmd(0,"spk oslr/of4.wav")
case 1: client_cmd(0,"spk oslr/of7.wav")
}
Variable = false;
}
}
/*================================================================================
forwards
=================================================================================*/
public fw_player_respawn(id)
{
if(!is_user_alive(id) || !cs_get_user_team(id))
return
set_user_rendering(id)
remove_task(id)
touch_weapons[id] = false
once[id] = false
knife_duel[id] = false
deagle_duel[id] = false
grenade_duel[id] = false
scout_duel[id] = false
player_challenged[id] = false
}
public fw_touch_weapon(weapon, id)
{
if (!is_user_connected(id))
return HAM_IGNORED;
new players[32], pnum, tempid;
get_players(players, pnum, "a");
for( new i; i<pnum; i++ )
{
tempid = players[i];
}
if (touch_weapons[id] || touch_weapons[tempid])
return HAM_SUPERCEDE;
return HAM_IGNORED;
}
public fw_cmdstart(player,uc_handle,random_seed)
{
if(deagle_duel[player])
{
cs_set_user_bpammo(player, CSW_DEAGLE, 1)
}
}
public fw_player_killed(victim, attacker, shouldgib)
{
if(! (1<=victim<=g_maxPlayers && 1<=attacker<=g_maxPlayers)) {
return HAM_IGNORED
}
new name[32]
get_user_name(attacker, name, 31)
if(duel_active)
{
if(cs_get_user_team(victim) == CS_TEAM_CT && player_challenged[victim])
{
knife_duel[attacker] = false
deagle_duel[attacker] = false
grenade_duel[attacker] = false
scout_duel[attacker] = false
once[attacker] = false
strip_user_weapons(attacker)
give_item(attacker, "weapon_knife")
set_user_rendering(attacker)
duel_menu(attacker)
}
else if(cs_get_user_team(victim) == CS_TEAM_CT && !player_challenged[victim])
{
set_task(0.4, "kill_player", attacker)
}
}
remove_task(attacker)
remove_task(victim)
}
public kill_player(id)
{
user_kill(id)
}
/*================================================================================
Main Menu
=================================================================================*/
public duel_menu(id)
{
if(!is_user_alive(id))
return PLUGIN_HANDLED
if (!once[id])
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
new cts[32], ts[32], ctsnum, tsnum
for (new id=1; id <= g_maxPlayers; id++)
{
if (!is_user_connected(id) || !is_user_alive(id))
{
continue
}
if (cs_get_user_team(id) == CS_TEAM_T)
{
ts[tsnum++] = id
}
else if (cs_get_user_team(id) == CS_TEAM_CT)
{
cts[ctsnum++] = id
}
}
if (tsnum == 1 && ctsnum >= 1)
{
new rand = random_num(0,2)
switch(rand)
{
case 0: client_cmd(0,"spk oslr/of2.wav")
case 1: client_cmd(0,"spk oslr/of3.wav")
case 2: client_cmd(0,"spk oslr/of5.wav")
}
static opcion[64]
formatex(opcion, charsmax(opcion),"\yDuello Turunu Sec %s",tag)
new iMenu = menu_create(opcion, "sub_duel_menu")
formatex(opcion, charsmax(opcion),"\wYumruk Yumruga Duello")
menu_additem(iMenu, opcion, "1")
formatex(opcion, charsmax(opcion),"\wDeagle Duellosu")
menu_additem(iMenu, opcion, "2")
formatex(opcion, charsmax(opcion),"\wEl Bombasi Duellosu")
menu_additem(iMenu, opcion, "3")
formatex(opcion, charsmax(opcion),"\wScout Duellosu")
menu_additem(iMenu, opcion, "4")
menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, iMenu, 0)
}
}
}
return PLUGIN_HANDLED
}
public sub_duel_menu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
new Key = str_to_num(Data)
switch (Key)
{
case 1:
{
knife_duel[id] = true
choose_enemy(id)
}
case 2:
{
deagle_duel[id] = true
choose_enemy(id)
}
case 3:
{
grenade_duel[id] = true
choose_enemy(id)
}
case 4:
{
scout_duel[id] = true
choose_enemy(id)
}
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
/*================================================================================
Menu of challenges
=================================================================================*/
public choose_enemy(id)
{
static opcion[64]
formatex(opcion, charsmax(opcion),"\yGARDIYAN SEC")
new iMenu = menu_create(opcion, "sub_choose_enemy")
new players[32], pnum, tempid
new szName[32], szTempid[10]
get_players(players, pnum, "a")
for( new i; i<pnum; i++ )
{
tempid = players[i]
if (cs_get_user_team(tempid) != CS_TEAM_CT)
{
continue
}
get_user_name(tempid, szName, 31)
num_to_str(tempid, szTempid, 9)
menu_additem(iMenu, szName, szTempid, 0)
}
menu_display(id, iMenu)
return PLUGIN_HANDLED
}
public sub_choose_enemy(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new Data[6], Name[64]
new Access, Callback
menu_item_getinfo(menu, item, Access, Data,5, Name, 63, Callback)
new tempid = str_to_num(Data)
if(!is_user_alive(tempid)) {
client_print(id,print_chat,"Kullanici bulunamadi !")
return PLUGIN_HANDLED
}
new mapname[32], challenger[32], challenged[32], ct_origin[3], te_origin[3]
get_mapname(mapname,31)
get_user_name(id, challenger, 31)
get_user_name(tempid, challenged, 31)
// strip weapons
strip_user_weapons(id)
strip_user_weapons(tempid)
// health
set_user_health(id, 100)
set_user_health(tempid, 100)
// effects
switch (get_pcvar_num(cvar_effect))
{
case 0: // glow
{
set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)
set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
}
case 1: // beacon
{
set_task(1.0, "beacon", id)
set_task(1.0, "beacon", tempid)
}
case 2: // glow n' beacon
{
set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20)
set_task(1.0, "beacon", id)
set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20)
set_task(1.0, "beacon", tempid)
}
}
// player challenged
player_challenged[tempid] = true
// lr menu once until he kills the player challenged
once[id] = true
// unable pick up weapon (only the 2 players on duel)
touch_weapons[id] = true
touch_weapons[tempid] = true
server_cmd("amx_show_activity 0");
server_cmd("amx_unammo @all 0");
server_cmd("amx_godmode @all 0");
server_cmd("amx_show_activity 2");
set_cvar_num("bh_enabled",0);
if(knife_duel[id])
{
give_item(id, "weapon_knife")
give_item(tempid, "weapon_knife")
set_user_health(id, 30)
set_user_health(tempid, 30)
if(equali(mapname,"some1s_jailbreak"))
{
ct_origin[0] = -759, ct_origin[1] = 1047, ct_origin[2] = 100
te_origin[0] = -585, te_origin[1] = 867, te_origin[2] = 100
set_user_origin(id,te_origin)
set_user_origin(tempid,ct_origin)
}
ChatColor( 0,"^4%s ^1ile ^4%s ^1YUMRUK duellosu yapiyor.",challenger, challenged);
}
else if(deagle_duel[id])
{
deagle_duel[tempid] = true
cs_set_weapon_ammo(give_item(id, "weapon_deagle"), 1)
cs_set_weapon_ammo(give_item(tempid, "weapon_deagle"), 1)
if(equali(mapname,"some1s_jailbreak"))
{
ct_origin[0] = -1352, ct_origin[1] = 271, ct_origin[2] = 38
te_origin[0] = -1338, te_origin[1] = -782, te_origin[2] = 38
set_user_origin(id,te_origin)
set_user_origin(tempid,ct_origin)
}
ChatColor( 0,"^4%s ^1ile ^4%s ^1DEAGLE duellosu yapiyor.",challenger, challenged);
}
else if(grenade_duel[id])
{
give_item(id, "weapon_hegrenade")
give_item(tempid, "weapon_hegrenade")
cs_set_user_bpammo(id, CSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))
cs_set_user_bpammo(tempid, CSW_HEGRENADE,get_pcvar_num(cvar_granadas_bpammo))
if(equali(mapname,"some1s_jailbreak"))
{
ct_origin[0] = -1756, ct_origin[1] = -2526, ct_origin[2] = 36
te_origin[0] = -3020, te_origin[1] = -2529, te_origin[2] = 36
set_user_origin(id,te_origin)
set_user_origin(tempid,ct_origin)
}
ChatColor( 0,"^4%s ^1ile ^4%s ^1EL BOMBASI duellosu yapiyor.",challenger, challenged);
}
else if(scout_duel[id])
{
give_item(id, "weapon_scout")
give_item(tempid, "weapon_scout")
cs_set_user_bpammo(id, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))
cs_set_user_bpammo(tempid, CSW_SCOUT, get_pcvar_num(cvar_scout_bpammo))
if(equali(mapname,"some1s_jailbreak"))
{
ct_origin[0] = -2898, ct_origin[1] = -2040, ct_origin[2] = 37
te_origin[0] = -2908, te_origin[1] = 905, te_origin[2] = 37
set_user_origin(id,te_origin)
set_user_origin(tempid,ct_origin)
}
ChatColor( 0,"^4%s ^1ile ^4%s ^1SCOUT duellosu yapiyor.",challenger, challenged);
}
duel_active = true
menu_destroy(menu)
return PLUGIN_HANDLED
}
public beacon(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER) // TE id
write_coord(origin[0]) // x
write_coord(origin[1]) // y
write_coord(origin[2]-20) // z
write_coord(origin[0]) // x axis
write_coord(origin[1]) // y axis
write_coord(origin[2]+200) // z axis
write_short(beacon_sprite) // sprite
write_byte(0) // startframe
write_byte(1) // framerate
write_byte(6) // life
write_byte(2) // width
write_byte(1) // noise
write_byte(0) // red
write_byte(0) // green
write_byte(250) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()
}
else
{
static origin[3]
get_user_origin(id, origin)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
write_byte(TE_BEAMCYLINDER) // TE id
write_coord(origin[0]) // x
write_coord(origin[1]) // y
write_coord(origin[2]-20) // z
write_coord(origin[0]) // x axis
write_coord(origin[1]) // y axis
write_coord(origin[2]+200) // z axis
write_short(beacon_sprite) // sprite
write_byte(0) // startframe
write_byte(1) // framerate
write_byte(6) // life
write_byte(2) // width
write_byte(1) // noise
write_byte(250) // red
write_byte(0) // green
write_byte(0) // blue
write_byte(200) // brightness
write_byte(0) // speed
message_end()
}
set_task(1.0, "beacon", id)
}
/*================================================================================
Stocks
=================================================================================*/
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") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!team", "^3") // Team Color
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, g_iMsgSayText, _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}