#include #include #include #include #include #include #include #include #define PLUGIN "Jail Zyczenia" #define VERSION "v1.1" #define AUTHOR "Cypis" /////////// Pojedynek /////////// new bronie_pojedynek, pojedynek[2]; new HamHook:fHamKill, HamHook:fHamDamage, HamHook:fHamTrace, HamHook:fHamWeapon[31]; /////////// Pojedynek /////////// new const maxAmmo[31] = {0,52,0,90,1,31,1,100,90,1,120,100,100,90,90,90,100,120,30,120,200,31,90,120,90,2,35,90,90,0,100}; new id_bezruch, id_freeday, id_duszek, id_rambomod, id_scouty, id_deagle, id_awp, id_m3, id_mp5, id_knife, id_m4a1; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) id_bezruch = jail_register_wish("Bezruch"); id_freeday = jail_register_wish("FreeDay"); id_duszek = jail_register_wish("Duszek"); id_rambomod = jail_register_wish("RamboMod"); id_scouty = jail_register_wish("Pojedynek na Scouty"); id_deagle = jail_register_wish("Pojedynek na Deagle"); id_awp = jail_register_wish("Pojedynek na AWP"); id_m3 = jail_register_wish("Pojedynek na m3"); id_mp5 = jail_register_wish("Pojedynek na mp5"); id_knife = jail_register_wish("Pojedynek na knife"); id_m4a1 = jail_register_wish("Pojedynek na M4A1"); } public plugin_precache() { precache_sound("jb_cypis/rambomode.wav"); precache_sound("jb_cypis/pojedynek.wav"); } public OnRemoveData() { /////////// Pojedynek /////////// if(pojedynek[0] || pojedynek[1]) { pojedynek[0] = 0; pojedynek[1] = 0; RegisterHams(false); } bronie_pojedynek = 0; /////////// Pojedynek /////////// } public OnLastPrisonerTakeWish(id, zyczenie) { if(zyczenie == id_bezruch) { strip_user_weapons(id); give_item(id, "weapon_knife"); give_item(id, "weapon_deagle") cs_set_user_bpammo(id, CSW_DEAGLE, maxAmmo[CSW_DEAGLE]); jail_set_ct_hit_tt(true); for(new i=1; i<=32; i++) { if(!is_user_alive(i) || !is_user_connected(i) || cs_get_user_team(i) != CS_TEAM_CT) continue; give_item(i, "weapon_deagle"); jail_set_user_speed(i, 0.1); } } else if(zyczenie == id_freeday) { if(jail_get_days() == CZWARTEK || jail_get_days() == SOBOTA) //w tych dniach nie mozna wziac fd return JAIL_HANDLED; user_kill(id); jail_set_prisoner_free(id); } else if(zyczenie == id_duszek) { if(jail_get_days() == CZWARTEK || jail_get_days() == SOBOTA) //w tych dniach nie mozna wziac duszka return JAIL_HANDLED; user_kill(id); jail_set_prisoner_ghost(id); } else if(zyczenie == id_rambomod) { client_cmd(0, "spk jb_cypis/rambomode.wav"); set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 4.0); show_hudmessage(0, "RamboMod aktywny!"); set_user_health(id, 500); strip_user_weapons(id); give_item(id, "weapon_awp"); give_item(id, "weapon_m249"); cs_set_user_bpammo(id, CSW_M249, maxAmmo[CSW_M249]); cs_set_user_bpammo(id, CSW_AWP, maxAmmo[CSW_AWP]); } else if(zyczenie == id_scouty) { pojedynek[0] = id; bronie_pojedynek = CSW_SCOUT; MenuPojedynek(id); } else if(zyczenie == id_deagle) { pojedynek[0] = id; bronie_pojedynek = CSW_DEAGLE; MenuPojedynek(id); } else if(zyczenie == id_awp) { pojedynek[0] = id; bronie_pojedynek = CSW_AWP; MenuPojedynek(id); } else if(zyczenie == id_m3) { pojedynek[0] = id; bronie_pojedynek = CSW_M3; MenuPojedynek(id); MenuPojedynek(id); } else if(zyczenie == id_knife) { pojedynek[0] = id; bronie_pojedynek = CSW_KNIFE; MenuPojedynek(id); } else if(zyczenie == id_mp5) { pojedynek[0] = id; bronie_pojedynek = CSW_MP5NAVY; MenuPojedynek(id); MenuPojedynek(id); } else if(zyczenie == id_m4a1) { pojedynek[0] = id; bronie_pojedynek = CSW_M4A1; MenuPojedynek(id); } return JAIL_CONTINUE; } /////////// Pojedynek /////////// public MenuPojedynek(id) { new menu = menu_create("Pojedynek Z:", "Handel_Pojedynek"); for(new i=1; i<=32; i++) { if(!is_user_alive(i) || !is_user_connected(i) || cs_get_user_team(i) != CS_TEAM_CT) continue; new name[64]; get_user_name(i, name, 63); menu_additem(menu, name); } menu_setprop(menu, MPROP_EXITNAME, "\dWyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); } public Handel_Pojedynek(id, menu, item) { if(pojedynek[0] != id || pojedynek[1] || !is_user_alive(id)) return; if(item == MENU_EXIT) { menu_display(id, menu); return; } new acces, callback, data[3], szName2[64]; menu_item_getinfo(menu, item, acces, data, 2, szName2, 63, callback); pojedynek[1] = get_user_index(szName2); if(!is_user_alive(pojedynek[1]) || !is_user_connected(pojedynek[1])) { pojedynek[1] = 0; MenuPojedynek(id); return; } new szName[32]; get_user_name(id, szName, 31); ColorChat(0, TEAM_COLOR, "^x04[PrisonBreak]^x03 %s^x01 walczy z^x03 %s", szName, szName2); client_cmd(0, "spk jb_cypis/pojedynek.wav"); RegisterHams(true); set_user_rendering(id, kRenderFxGlowShell, 255, 0, 0, kRenderNormal, 10); set_user_rendering(pojedynek[1], kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 10); jail_set_user_block(pojedynek[0], true) jail_set_user_block(pojedynek[1], true); set_user_health(id, 100); set_user_health(pojedynek[1], 100); strip_user_weapons(id); strip_user_weapons(pojedynek[1]); new weapon_name[24]; get_weaponname(bronie_pojedynek, weapon_name, 23); new ent = give_item(id, weapon_name); new ent2 = give_item(pojedynek[1], weapon_name); cs_set_weapon_ammo(ent, 1); cs_set_weapon_ammo(ent2, 1); } public TakeDamage(id, ent, attacker, Float:damage, damagebits) return vTracerAttack(id, attacker); public TraceAttack(id, attacker, Float:damage, Float:direction[3], tracehandle, damagebits) return vTracerAttack(id, attacker); vTracerAttack(id, attacker) { if(!pojedynek[0] || !is_user_connected(id) || !is_user_connected(attacker) || id == attacker) return HAM_IGNORED; if(pojedynek[0] == id && pojedynek[1] != attacker) return HAM_SUPERCEDE; if(pojedynek[0] == attacker && pojedynek[1] != id) return HAM_SUPERCEDE; return HAM_IGNORED; } public SmiercGraczaPost(id, attacker, shouldgib) { if(!is_user_connected(id) || id != pojedynek[1]) return HAM_IGNORED; jail_set_user_block(id, false); SzukajPrzeciwnika(); return HAM_IGNORED; } public WeaponAttack(ent) { new id = get_pdata_cbase(ent, 41, 4); if(pojedynek[0] == id || pojedynek[1] == id) { cs_set_user_bpammo(id, bronie_pojedynek, 1); } } public client_disconnect(id) { if(pojedynek[1] == id) SzukajPrzeciwnika(); } public SzukajPrzeciwnika() { pojedynek[1] = RandomPlayer(2); if(!pojedynek[1]) return; if(is_user_alive(pojedynek[0])) set_user_health(pojedynek[0], 100); set_user_rendering(pojedynek[1], kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 10); jail_set_user_block(pojedynek[1], true); set_user_health(pojedynek[1], 100); strip_user_weapons(pojedynek[1]); new weapon_name[24] get_weaponname(bronie_pojedynek, weapon_name, 23); new ent = give_item(pojedynek[1], weapon_name); cs_set_weapon_ammo(ent, 1); } public RegisterHams(bool:wartosc) { if(wartosc) { if(fHamKill) EnableHamForward(fHamKill); else fHamKill = RegisterHam(Ham_Killed, "player", "SmiercGraczaPost", 1); if(fHamDamage) EnableHamForward(fHamDamage); else fHamDamage = RegisterHam(Ham_TakeDamage, "player", "TakeDamage"); if(fHamTrace) EnableHamForward(fHamTrace); else fHamTrace = RegisterHam(Ham_TraceAttack, "player", "TraceAttack"); if(fHamWeapon[bronie_pojedynek]) EnableHamForward(fHamWeapon[bronie_pojedynek]); else { new WeaponName[24]; get_weaponname(bronie_pojedynek, WeaponName, 23); fHamWeapon[bronie_pojedynek] = RegisterHam(Ham_Weapon_PrimaryAttack, WeaponName, "WeaponAttack", 1); } } else { if(fHamKill) DisableHamForward(fHamKill); if(fHamDamage) DisableHamForward(fHamDamage); if(fHamTrace) DisableHamForward(fHamTrace); if(fHamWeapon[bronie_pojedynek]) DisableHamForward(fHamWeapon[bronie_pojedynek]); } } /////////// Pojedynek ///////////