Arkadaşlar elimde last request v1.6 plugini var. Bunu biraz daha geliştirmek istiyorum.
1. Knife Duel
2. Deagle Duel
3. Grenades Duel
4. Scout Duel
5. Ak47 Duel
6. Awp Duel
7. Usp Duel
yani 3 tane fazladan ekleyebilirseniz sevinirim.
.txt dosyası bende var diğerleri gibi yapın ben .txt editlerim.
yani
DUEL_1 = Knife Duel
DUEL_2 = Deagle Duel
DUEL_3 = Grenades Duel
DUEL_4 = Scout Duel
DUEL_5 = Ak47 Duel
DUEL_6 = Awp Duel
DUEL_7 = Usp Duel
YAPANA ÇOK TEŞEKKÜR EDERİM
v1.6 plugini
Kod:#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_msgSayText, 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:knife_duel[33] ,bool:deagle_duel[33], bool:grenade_duel[33], bool:scout_duel[33]
new tag[] = "[JailBreak]"
/*================================================================================
Init n' precache
=================================================================================*/
public plugin_precache()
{
beacon_sprite = precache_model("sprites/shockwave.spr")
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
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")
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","10") // amount bpammo grenade | cantidad de granadas
cvar_scout_bpammo = register_cvar("jb_scout_bpammo", "10") // amount bpammo scout | cantidad de balas pa' la scout
cvar_effect = register_cvar("jb_effect", "2") // 0 = glow , 1 = beacon, 2 = glow n' beacon
g_maxPlayers = get_maxplayers()
g_msgSayText = get_user_msgid("SayText")
register_dictionary("jailbreak_last_request.txt")
}
/*================================================================================
Round Start
=================================================================================*/
public event_round_start()
{
duel_active = 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)
{
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)
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"DUEL_DOWN", name)
}
}
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)
{
static opcion[64]
formatex(opcion, charsmax(opcion),"\y%L:", id, "CHOOSE_DUEL")
new iMenu = menu_create(opcion, "sub_duel_menu")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_1")
menu_additem(iMenu, opcion, "1")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_2")
menu_additem(iMenu, opcion, "2")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_3")
menu_additem(iMenu, opcion, "3")
formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_4")
menu_additem(iMenu, opcion, "4")
menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, iMenu, 0)
}
else if (tsnum == 1 && ctsnum < 1)
{
ChatColor(id, "%L", LANG_PLAYER,"NOT_CTS", tag)
}
else if (tsnum > 1)
{
ChatColor(id, "%L", LANG_PLAYER,"ONLY_LAST", tag)
}
}
else
{
ChatColor(id, "%L", LANG_PLAYER,"ONLY_TTS", tag)
}
}
else
{
ChatColor(id, "%L", LANG_PLAYER,"KILL_CHALLENGED", tag)
}
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),"\y%L:", id, "CHOOSE_ENEMY")
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)
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
if(knife_duel[id])
{
give_item(id, "weapon_knife")
give_item(tempid, "weapon_knife")
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)
}
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L",LANG_PLAYER,"KNIFE_DUEL", 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)
}
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"DEAGLE_DUEL", 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)
}
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"GRENADE_DUEL", 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)
}
set_hudmessage( 0, 255, 0, -1.0, 0.40, 2, 5.0, 8.0, 0.0, 0.0, 10)
show_hudmessage(0, "%L", LANG_PLAYER,"SCOUT_DUEL", 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_msgSayText, _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}