Member
Join Date: Jan 2012
Location: France
|
02-27-2012
, 09:59
Re: Plugin Last & Plugin Shop.
|
#20
|
Comme dit un peu plus haut, j'ai trouvé la solution à mes problèmes (tout seul comme un grand nenfant ). Il me reste plus qu'un point d'ombre à éclaircir :
_Le Code auquel m'a conduit Devil ne correspond pas à ma demande ... voir ne marche pas .... sauf si j'ai mal fait.
_Je réexplique ce que je cherche pour ceux qui pourrait m'aider :
Le dernier Terroriste ouvre un menu en tapant /last, il a le menu qui s'affiche et il peut choisir le joueur qu'il veut ... jusque là ça va j'ai réussi .... mais après, j'ai eu de nombreux FreeKill (voir par inadvertance) d'un CT qui a tué le Terroriste en Last.
Moi ce que je voudrais, c'est faire en sorte que seul les deux personnes en duel puissent infliger des dégats seulement à leur Adversaire, et les autres pas du tout.. mais ceci que pendant le Duel !! Quand le Duel est terminé, je voudrais que tout le monde puisse se faire des dommages .... puis quand un duel recommence, plus personne ne peut donner des dommages sauf le dernier terro faisant le Last et celui qu'il défie... etc jusqu'à la fin du round où là ça redevient normal pour le round prochain.
Je rappel que ce n'est que pour le dernier terroriste.
Example : Player 1(T) et Player 2(CT) sont en Last. Ils peuvent se faire des dommages mais le Player 1(T) ne peut pas toucher les autres CT (ormis Player 2(CT))
Player X (TOUT LES CTS ORMIS PLAYER 2) ne peuvent infliger aucun dommage à n'importe qui.
Tout cela seulement pendant le déroulement d'un duel.
Merci encore et je donne un gros Bisous à tout le monde ........
Surtout à celui qui m'aidera
CODE LAST :
PHP Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fakemeta> #include <hamsandwich> #include <fun>
#define PLUGIN "JaiL_Last" #define VERSION "2.3" #define AUTHOR "rube"
new g_maxPlayers, g_msgSayText, beacon_sprite
new cvar_grenades_bpammo, cvar_scout_bpammo, cvar_awp_bpammo, cvar_m4a1_bpammo, cvar_ak47_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], bool:awp_duel[33], bool:m4a1_duel[33], bool:ak47_duel[33]
new tag[] = "[ JaiL Mod ]"
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) register_clcmd("say /last", "duel_menu") register_clcmd("say_team /last", "duel_menu") register_clcmd("say !last", "duel_menu") register_clcmd("say_team !last", "duel_menu") register_clcmd("say last", "duel_menu") register_clcmd("say_team last", "duel_menu") cvar_grenades_bpammo = register_cvar("jail_grenade_bpammo","50") cvar_scout_bpammo = register_cvar("jail_scout_bpammo", "20") cvar_awp_bpammo = register_cvar("jail_awp_bpammo","10") cvar_m4a1_bpammo = register_cvar("jail_m4a1_bpammo","70") cvar_ak47_bpammo = register_cvar("jail_ak47_bpammo","70") cvar_effect = register_cvar("jail_effect", "2") g_maxPlayers = get_maxplayers() g_msgSayText = get_user_msgid("SayText") register_dictionary("JaiL_Last.txt") }
public event_round_start() { duel_active = false }
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 awp_duel[id] = false m4a1_duel[id] = false ak47_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 awp_duel[attacker] = false m4a1_duel[attacker] = false ak47_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) }
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") formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_5") menu_additem(iMenu, opcion, "5") formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_6") menu_additem(iMenu, opcion, "6") formatex(opcion, charsmax(opcion),"\w%L", id, "DUEL_7") menu_additem(iMenu, opcion, "7") 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) } case 5: { awp_duel[id] = true choose_enemy(id) } case 6: { m4a1_duel[id] = true choose_enemy(id) } case 7: { ak47_duel[id] = true choose_enemy(id) } } menu_destroy(menu) return PLUGIN_HANDLED }
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]
get_mapname(mapname,31) get_user_name(id, challenger, 31) get_user_name(tempid, challenged, 31) strip_user_weapons(id) strip_user_weapons(tempid) set_user_health(id, 100) set_user_health(tempid, 100) switch (get_pcvar_num(cvar_effect)) { case 0: { set_user_rendering(id, kRenderFxGlowShell, 250, 0, 0, kRenderNormal, 20) set_user_rendering(tempid, kRenderFxGlowShell, 0, 0, 250, kRenderNormal, 20) } case 1: { set_task(1.0, "beacon", id) set_task(1.0, "beacon", tempid) } case 2: { 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[tempid] = true once[id] = true touch_weapons[id] = true touch_weapons[tempid] = true if(knife_duel[id]) { give_item(id, "weapon_knife") give_item(tempid, "weapon_knife")
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)
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_grenades_bpammo)) cs_set_user_bpammo(tempid, CSW_HEGRENADE, get_pcvar_num(cvar_grenades_bpammo)) 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)) 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) } else if(awp_duel[id]) { give_item(id, "weapon_awp") give_item(tempid, "weapon_awp") cs_set_user_bpammo(id, CSW_AWP, get_pcvar_num(cvar_awp_bpammo)) cs_set_user_bpammo(tempid, CSW_AWP, get_pcvar_num(cvar_awp_bpammo))
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,"AWP_DUEL", challenger, challenged) } else if(m4a1_duel[id]) { give_item(id, "weapon_m4a1") give_item(tempid, "weapon_m4a1") cs_set_user_bpammo(id, CSW_M4A1, get_pcvar_num(cvar_m4a1_bpammo)) cs_set_user_bpammo(tempid, CSW_M4A1, get_pcvar_num(cvar_m4a1_bpammo))
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,"M4A1_DUEL", challenger, challenged) } else if(ak47_duel[id]) { give_item(id, "weapon_ak47") give_item(tempid, "weapon_ak47") cs_set_user_bpammo(id, CSW_AK47, get_pcvar_num(cvar_ak47_bpammo)) cs_set_user_bpammo(tempid, CSW_AK47, get_pcvar_num(cvar_ak47_bpammo))
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,"AK47_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) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]-20) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]+200) write_short(beacon_sprite) write_byte(0) write_byte(1) write_byte(6) write_byte(2) write_byte(1) write_byte(0) write_byte(0) write_byte(250) write_byte(200) write_byte(0) message_end() } else { static origin[3] get_user_origin(id, origin) message_begin(MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BEAMCYLINDER) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]-20) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]+200) write_short(beacon_sprite) write_byte(0) write_byte(1) write_byte(6) write_byte(2) write_byte(1) write_byte(250) write_byte(0) write_byte(0) write_byte(200) write_byte(0) message_end() } set_task(1.0, "beacon", id) } 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") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!team", "^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, g_msgSayText, _, players[i]) write_byte(players[i]) write_string(msg) message_end() } } }
Last edited by Monster Truck; 02-27-2012 at 13:31.
|
|