Cześć.
Mam problem z pluginem FBPunish.
Chodzi o to, że plugin zlicza ilość rzuconych flashy swoim z drużyny - przy np. 5 flashu kickuje. Problem jest w tym, że po zmianie mapy licznik się nie zeruje i ilość ostrzeżeń z poprzedniej mapy przechodzi na kolejną.
proszę o pomoc w "dorobieniu" zdarzenia, które będzie resetować licznik ostrzeżeń po zmianie mapy.
/* PLUGIN: TeamFlash Punisher AUTOR: DAWEDOV WERSJA: 1.0 CVARY: * fb_FlashTypeCount: 0 - nie naliczaj, daje tylko info o oslepieniu 1 - naliczaj tylko flashe ktore calkowicie oslepily 2 - naliczaj wszystkie flashe * fb_PunishType: 0 - brak kary 1 - zablokuj kupowanie flashbangów 2 - kick * fb_CountToPunish: x - ilosc oslepionych przyjaciol po ktorej ma wymierzyc kare * fb_ShowInfo 0 - nie pokazuj informacji o flashu 1 - pokazuj info tylko zfleszowanemu 2 - pokazuj info zfleszowanemu i fleszujacemu * fb_MakeTeamImmune 0 - fb oslepia kolegow z druzyny 1 - fb nie oslepia kolegow z druzyny */ #include <amxmodx> #include <fakemeta> #include <colorchat> #define PLUGIN "TeamFlash Punisher" #define VERSION "1.0" #define AUTHOR "Dawedov" #define FB_OWNERCHECK_TASK 542 #define FB_EXPLODE_TIME 1.52 new const tag[] = "[Only-DD2.pl]" new gFlashBangOwner; new gTeamFlashCounter[33]; new gCvarFlashType; new gCvarPunishType; new gCvarCountToPunish; new gCvarShowInfo; new gCvarImmune; new gSyncHudObj; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) // CVARS gCvarFlashType = register_cvar("fb_FlashTypeCount","2"); gCvarPunishType = register_cvar("fb_PunishType","1"); gCvarCountToPunish = register_cvar("fb_CountToPunish","10"); gCvarShowInfo = register_cvar("fb_ShowInfo","1"); gCvarImmune = register_cvar("fb_MakeTeamImmune","0"); // Forwards register_forward(FM_SetModel, "fmSetModel") register_event("ScreenFade","event_ScreenFade","be","4=255","5=255","6=255","7>199") // HUD gSyncHudObj = CreateHudSyncObj(); // Buy cmds register_clcmd("flash","BuyCheck"); register_clcmd("autobuy","BuyCheck"); register_clcmd("fullupdate","BuyCheck"); register_clcmd("cl_rebuy","BuyCheck"); register_clcmd("cl_autobuy","BuyCheck"); } public fmSetModel(ent, model[]) { if(equal(model, "models/w_flashbang.mdl")) { new iEntOwner; iEntOwner = pev(ent, pev_owner) if(pev_valid(iEntOwner)) set_task(FB_EXPLODE_TIME,"task_OwnerCheck", FB_OWNERCHECK_TASK+iEntOwner); } } public task_OwnerCheck(taskid) { gFlashBangOwner = taskid - FB_OWNERCHECK_TASK; } public event_ScreenFade(id) { if(is_user_alive(id)) { if(id != gFlashBangOwner && get_user_team(id) == get_user_team(gFlashBangOwner)) { if(get_pcvar_num(gCvarFlashType)) { new flashalpha = read_data(7) if((get_pcvar_num(gCvarFlashType) == 2 && flashalpha > 0) || flashalpha == 255) { gTeamFlashCounter[gFlashBangOwner]++; ShowHud(gFlashBangOwner); } } if(get_pcvar_num(gCvarShowInfo)) { new name[64]; get_user_name(gFlashBangOwner,name,63); ColorChat(id,GREEN,"%s^x04 Zostales oslepiony przez:^x03 %s",tag,name) if(get_pcvar_num(gCvarShowInfo) > 1) { new victimname[64]; get_user_name(gFlashBangOwner,victimname,63); ColorChat(id,GREEN,"%s^x04 Wlasnie oslepiles^x03 %s^x04! Uwazaj jak rzucasz flashe!",tag,victimname) } } if(get_pcvar_num(gCvarImmune)) { message_begin(MSG_ONE, get_user_msgid("ScreenFade"),{0,0,0},id); write_short(1<<12); write_short(1<<12); write_short(1<<12); write_byte (0); write_byte (0); write_byte (0); write_byte (0); message_end(); } } } } public ShowHud(id) { set_hudmessage(255, 0, 0, 0.02, 0.55, 0, 6.0, 5.0) ShowSyncHudMsg(id,gSyncHudObj,"Ostrzezenia za FB %i/%i.",gTeamFlashCounter[id],get_pcvar_num(gCvarCountToPunish)) PunishPlayer(id); } public PunishPlayer(id) { if(!is_user_connected(id) || gTeamFlashCounter[id] < get_pcvar_num(gCvarCountToPunish) || get_pcvar_num(gCvarPunishType) != 2) return; server_cmd("kick #%d ^"Zostales wyrzucony za 5-krotne oslepianie kolegow z druzyny!^"",get_user_userid(id)) } public BuyCheck(id) { if(gTeamFlashCounter[id] >= get_pcvar_num(gCvarCountToPunish) && get_pcvar_num(gCvarPunishType) == 1) { ColorChat(id,GREEN,"%s^x01 Nie mozesz kupowac flashbangow, oslepiles za duzo kolegow z druzyny!",tag); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public client_connect(id) { gTeamFlashCounter[id] = 0; }
Z góry dzięki za pomoc.
Załączone pliki
Użytkownik Tymo edytował ten post 02.11.2016 15:20