- | Afiseaza codul
#include <amxmodx> #include <fakemeta> #include <hamsandwich> #include <cstrike> #include <fun> #include <colorchat> new free, invis, pcvar_Display, rounds = 1, last_round_invis , msgSayText, cvar_rounds_invis, cvar_invis, cvar_invis_health, cvar_hudmsgs, msgSync /*Thanks to PomanoB for the help with weaponbox and armoury_entity*/ public plugin_init() { register_plugin("Meniu DeathRun", "1.2", "Vicious Vixen") register_clcmd("say", "cmd_say") register_clcmd("say_team", "cmd_say") RegisterHam(Ham_Touch, "weapon_shield", "fd_TouchWeapon") RegisterHam(Ham_Use, "func_button", "fd_UseButton") RegisterHam(Ham_Spawn, "player", "fd_PlayerSpawn_Post", 1) RegisterHam(Ham_Killed, "player", "fd_PlayerKilled") register_event("DeathMsg", "event_deathmsg", "a") cvar_rounds_invis = register_cvar("dr_invis_rounds", "0") cvar_invis = register_cvar("dr_invis", "1") cvar_invis_health = register_cvar("dr_invis_health", "200") cvar_hudmsgs = register_cvar("dr_fi_hudmsgs", "1") register_dictionary("dr_free_invis.txt") msgSayText = get_user_msgid("SayText") register_clcmd("say","hook_say"); msgSync = CreateHudSyncObj() //Sniper register_clcmd("mouse", "nice") register_clcmd("dmouse", "dnice") // Flash Bang register_clcmd("alba", "alba") register_clcmd("dalba", "dalba") // HP (10000) register_clcmd("victim", "victim") register_clcmd("dvictim", "dvictim") // BombarMan register_clcmd("BombarMan", "bombarman") register_clcmd("dBombarMan", "dbombarman") // Arata sau nu arata mesajele HUD si say pcvar_Display = register_cvar("amx_display", "1") register_event("ResetHUD","ResetHUD","abe") } public cmd_say(id) { static arg1[128] read_argv(1, arg1, 127) remove_quotes(arg1) static rounds_need if(equal(arg1, "/eerf3") || equal(arg1, "eerf3")) { static i for(i=1; i<=32; i++) if(is_user_alive(i)) if(get_user_team(i) == 2) { static ent ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip")) if (pev_valid(ent)) { dllfunc(DLLFunc_Spawn, ent) dllfunc(DLLFunc_Use, ent, i) engfunc(EngFunc_RemoveEntity, ent) ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "weapon_knife")) if (pev_valid(ent)) { static Float:originF[3] pev(i, pev_origin, originF) set_pev(ent, pev_origin, originF) set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN) dllfunc(DLLFunc_Spawn, ent) static save save = pev(ent, pev_solid) dllfunc(DLLFunc_Touch, ent, i) if (pev(ent, pev_solid) == save) engfunc(EngFunc_RemoveEntity, ent) } } } if(get_pcvar_num(cvar_hudmsgs)) { set_hudmessage(20, 255, 20, -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, msgSync, "%L", -1, "DR_FREE_START") } else client_print(0, print_center, "%L", -1, "DR_FREE_START") } else if(equal(arg1, "/sivni") || equal(arg1, "sivni")) { rounds_need = last_round_invis + get_pcvar_num(cvar_rounds_invis) + 1 if(!get_pcvar_num(cvar_invis)) return else if(get_user_team(id) != 1) return else if(!is_user_alive(id)) { formatex(arg1, 127, "^x04[DR]^x01 %L", id, "DR_INVIS_ALIVE") message_begin(MSG_ONE_UNRELIABLE, msgSayText, _, id) write_byte(id) write_string(arg1) message_end() return } else if(free) { formatex(arg1, 127, "^x04[DR]^x01 %L", id, "DR_INVIS_FREE") message_begin(MSG_ONE_UNRELIABLE, msgSayText, _, id) write_byte(id) write_string(arg1) message_end() return } else if(invis) { formatex(arg1, 127, "^x04[DR]^x01 %L", id, "DR_INVIS_TOUCHED") message_begin(MSG_ONE_UNRELIABLE, msgSayText, _, id) write_byte(id) write_string(arg1) message_end() return } else if(last_round_invis && (rounds_need > rounds)) { formatex(arg1, 127, "^x04[DR]^x01 %L", id, "DR_INVIS_ROUNDS", rounds_need-rounds) message_begin(MSG_ONE_UNRELIABLE, msgSayText, _, id) write_byte(id) write_string(arg1) message_end() return } set_pev(id, pev_health, get_pcvar_float(cvar_invis_health)) set_pev(id, pev_renderfx, 19) set_pev(id, pev_rendercolor, {0.0, 0.0, 0.0}) set_pev(id, pev_rendermode, 4) set_pev(id, pev_renderamt, 0.0) if(get_pcvar_num(cvar_hudmsgs)) { set_hudmessage(20, 255, 20, -1.0, 0.17, 1, 0.0, 5.0, 1.0, 1.0, -1) ShowSyncHudMsg(0, msgSync, "%L", -1, "DR_INVIS_START") } else client_print(0, print_center, "%L", -1, "DR_INVIS_START") last_round_invis = rounds invis = 1 } } public fd_TouchWeapon(ent, id) { if(!is_user_alive(id) || (!free && !invis)) return HAM_IGNORED static classname[16]; pev(ent, pev_classname, classname, 15) if(equal(classname, "weaponbox")) /*Thanks to PomanoB for the help with weaponbox and armoury_entity*/ { static model[32]; pev(ent, pev_model, model, 31) if(get_user_team(id) == 2 && equal(model, "models/w_usp.mdl") && !free) return HAM_IGNORED } return HAM_SUPERCEDE } public fd_UseButton(ent, caller, id) { if(!is_user_alive(id)) return HAM_IGNORED if(get_user_team(id) == 1) { if(free) client_print(id, print_center, "%L", id, "DR_FREE_BUTTON") else if(invis) client_print(id, print_center, "%L", id, "DR_INVIS_BUTTON") return HAM_SUPERCEDE } return HAM_IGNORED } public fd_PlayerSpawn_Post(id) { if(!is_user_alive(id)) return set_pev(id, pev_renderfx, 0) set_pev(id, pev_rendercolor, {255.0, 255.0, 255.0}) set_pev(id, pev_rendermode, 0) set_pev(id, pev_renderamt, 16.0) if(free) set_task(2.0, "task_removewpn", 1024 + id) } public fd_PlayerKilled(id) { set_pev(id, pev_renderfx, 0) set_pev(id, pev_rendercolor, {255.0, 255.0, 255.0}) set_pev(id, pev_rendermode, 0) set_pev(id, pev_renderamt, 16.0) } public client_disconnect(id) remove_task(1024 + id) public event_deathmsg(id) { static attacker, victim attacker = read_data(1) victim = read_data(2) remove_task(1024 + victim) if(victim == attacker || !is_user_alive(attacker)) return if(get_user_team(attacker) != 1) return set_pev(attacker, pev_health, 100.0) } public task_removewpn(taskid) { static id; id = taskid - 1024 static ent ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "player_weaponstrip")) if (pev_valid(ent)) { dllfunc(DLLFunc_Spawn, ent) dllfunc(DLLFunc_Use, ent, id) engfunc(EngFunc_RemoveEntity, ent) ent = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "weapon_knife")) if (pev_valid(ent)) { static Float:originF[3] pev(id, pev_origin, originF) set_pev(ent, pev_origin, originF) set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN) dllfunc(DLLFunc_Spawn, ent) static save save = pev(ent, pev_solid) dllfunc(DLLFunc_Touch, ent, id) if (pev(ent, pev_solid) == save) engfunc(EngFunc_RemoveEntity, ent) } } } // Sniper public nice(id) { { nice_funcT() nice_funcCT() } } public nice_funcT() { new Maxplayers = get_maxplayers() for(new i = 0; i <= Maxplayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) { continue } if(get_pcvar_num(pcvar_Display) == 1) { ColorChat(i, RED, "^x01[^x04 I.G.^x01 ]^x03 Teroristul^x01 a ales modul^x04 Sniper!"); } if(cs_get_user_team(i) == CS_TEAM_T) { give_item(i, "weapon_awp") give_item(i, "item_assaultsuit") set_user_health(i, 250) cs_set_user_bpammo(i, CSW_AWP, 30) } } } public nice_funcCT() { new Maxplayers = get_maxplayers() for(new i = 0; i <= Maxplayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) { continue } if(get_pcvar_num(pcvar_Display) == 1) { set_hudmessage(0, 255, 255, 0.02, -1.0); show_hudmessage(0, "Acum jucam modul -=Sniper=-") } if(cs_get_user_team(i) == CS_TEAM_CT) { give_item(i, "weapon_deagle") give_item(i, "item_assaultsuit") cs_set_user_bpammo(i , CSW_DEAGLE, 35) } } } public dnice(id) { { nice_funcD() } } public nice_funcD() { new Maxplayers = get_maxplayers() for(new i = 0; i <= Maxplayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) { continue } client_cmd(i, "drop;drop") } } // FlashBang public alba(id) { { alba_funcT() alba_funcCT() } } public alba_funcT() { new Maxplayers = get_maxplayers() for(new id = 0; id <= Maxplayers; id++) { if(!is_user_connected(id) || !is_user_alive(id)) { continue } if(get_pcvar_num(pcvar_Display) == 1) { ColorChat(id, RED, "^x01[^x04 I.G.^x01 ]^x03 Teroristul^x01 a ales modul^x04 Alba ca zapada!"); } if(cs_get_user_team(id) == CS_TEAM_T) { give_item(id, "weapon_flashbang") cs_set_user_bpammo(id , CSW_FLASHBANG, 100) } } } public alba_funcCT() { new Maxplayers = get_maxplayers() for(new id = 0; id <= Maxplayers; id++) { if(get_pcvar_num(pcvar_Display) == 1) { set_hudmessage(0, 255, 255, 0.02, -1.0); show_hudmessage(0, "Acum jucam modul -=Alba ca zapada=-") } if(!is_user_connected(id) || !is_user_alive(id)) { continue } if(cs_get_user_team(id) == CS_TEAM_CT) { give_item(id, "weapon_flashbang") cs_set_user_bpammo(id , CSW_FLASHBANG, 1) } } } public dalba(id) { { alba_funcD() } } public alba_funcD() { new Maxplayers = get_maxplayers() for(new id = 0; id <= Maxplayers; id++) { if(!is_user_connected(id) || !is_user_alive(id)) { continue } client_cmd(id, "drop;drop") } } //Hp public victim(id) { { victim_funcT() victim_funcCT() } } public victim_funcT() { new Maxplayers = get_maxplayers() for(new i = 0; i <= Maxplayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) { continue } if(get_pcvar_num(pcvar_Display) == 1) { new name[33] get_user_name(i, name, 32) ColorChat(i, RED, "^x03 [^x04 I.G^x03 ]^x03 Teroristul^x01 a ales modul^x04 Victima"); } if(cs_get_user_team(i) == CS_TEAM_T) { set_user_health(i, 10000) } } } public victim_funcCT() { new Maxplayers = get_maxplayers() for(new i = 0; i <= Maxplayers; i++) { if(get_pcvar_num(pcvar_Display) == 1) { set_hudmessage(0, 255, 255, 0.02, -1.0); show_hudmessage(0, "Acum jucam modul -=Victima=-") } if(!is_user_connected(i) || !is_user_alive(i)) { continue } if(cs_get_user_team(i) == CS_TEAM_CT) { give_item(i, "weapon_awp") cs_set_user_bpammo(i , CSW_AWP, 35) set_user_health(i, 100) } } } public dvictim(id) { { victim_funcD() } } public victim_funcD() { new Maxplayers = get_maxplayers() for(new i = 0; i <= Maxplayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) { continue } client_cmd(i, "drop;drop") } } //BombarMan public bombarman(id) { { bombarman_funcT() bombarman_funcCT() } } public bombarman_funcT() { new Maxplayers = get_maxplayers() for(new i = 0; i <= Maxplayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) { continue } if(get_pcvar_num(pcvar_Display) == 1) { ColorChat(i, RED, "^x03 [^x04 I.G^x03 ]^x03 Teroristul^x01 a ales modul^x04 -=BombarMan=-"); } if(cs_get_user_team(i) == CS_TEAM_T) { give_item(i, "weapon_hegrenade") cs_set_user_bpammo(i , CSW_HEGRENADE, 30) } } } public bombarman_funcCT() { new Maxplayers = get_maxplayers() for(new i = 0; i <= Maxplayers; i++) { if(get_pcvar_num(pcvar_Display) == 1) { set_hudmessage(0, 255, 255, 0.02, -1.0); show_hudmessage(0, "Acum jucam modul -=BombarMan=-") } if(!is_user_connected(i) || !is_user_alive(i)) { continue } if(cs_get_user_team(i) == CS_TEAM_CT) { give_item(i, "weapon_hegrenade") cs_set_user_bpammo(i , CSW_HEGRENADE, 1) set_user_health(i, 150) } } } public dbombarman(id) { { bombarman_funcD() } } public bombarman_funcD() { new Maxplayers = get_maxplayers() for(new i = 0; i <= Maxplayers; i++) { if(!is_user_connected(i) || !is_user_alive(i)) { continue } client_cmd(i, "drop;drop") } } //Meniu public ResetHUD(id){ if(cs_get_user_team(id) & CS_TEAM_T) ebatkopat(id); } public ebatkopat(id){ new menu = menu_create( "Alege o optiune^nMeniu pentru tero", "run_menu" ); menu_additem( menu, "FreeRun", "1", 0 ); menu_additem( menu, "Invizibilitate", "2", 0 ); menu_additem( menu, "Victima!", "3", 0 ); menu_additem( menu, "Alba ca zapada", "4", 0 ); menu_additem( menu, "Sniper", "5", 0 ); menu_additem( menu, "BombarMan", "6", 0 ); menu_setprop( menu, MPROP_EXIT, MEXIT_ALL ); menu_display( id, menu, 0 ); return PLUGIN_HANDLED; } public run_menu(id, menu, item){ if( item == MENU_EXIT ){ menu_destroy( menu ); return PLUGIN_HANDLED; } new data[ 9 ], iName[ 64 ], access, callback; menu_item_getinfo( menu, item, access, data, charsmax( data ), iName, charsmax( iName ), callback ); new key = str_to_num( data ); switch(key){ case 1: client_cmd(id,"say /free"); case 2: client_cmd(id,"say /sivni"); case 3: client_cmd(id,"victim"); case 4: client_cmd(id,"alba"); case 5: client_cmd(id,"mouse"); case 6: client_cmd(id,"bombarman"); } switch(key){ case 2: server_cmd("deathrun_mode ^"INVIS^""); case 3: server_cmd("deathrun_mode ^"VIATA^""); case 4: server_cmd("deathrun_mode ^"FLASH^""); case 5: server_cmd("deathrun_mode ^"SNIP^""); case 6: server_cmd("deathrun_mode ^"BOMB^""); } menu_destroy( menu ); return PLUGIN_HANDLED; } public hook_say(id) { static s_Args[192]; read_argv(1, s_Args, sizeof(s_Args) - 1); if(equal(s_Args, "/", 1)) { return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; }
Am un server hostat linux (Deathrun) am bagat pluginul.. a mers vreo 10 minute (cel putin cat am testat) apoi brusc.. ce sa vezi nu pot scrie pe chat (cel putin nu vedeam) dar imi aparea in consola :-? ce scria.
Si mai e ceva cu parteneru de teste am vazut ca nici el nu poate vorbii doar pe u@ mergea sa vorbesti.
Daca dadeam /restart mergea sa vb daca dadeam iar /restart nu mai mergea.
Acuma e 'mai bine' deoarece nu mai merge deloc sa vorbesc si el are aceeasi problema.
Daca puteti sa-mi modificati pluginul de mai sus.. sa putem vorbii.. multumesc frumos.
Merge sa vad in chat doar cand dau "hud_saytext 1"
Dar nu pot sa dau numai mie mereu si mereu.. restu playerilor ce fac :-? ...
Daca nu exista rezolvare imi poate face si mie un plugin cineva care sa ruleze mereu comanda "hud_saytext 1" adica fara sa se opreasca..?