ittvan:
Kód: new giPointer=0;
new gEnt[MAX_BUTTONS]; new gUsed[MAX_BUTTONS]; new gOnStart[MAX_BUTTONS];
new Float:gDelay[MAX_BUTTONS]; new Float:gDefaultDelay[MAX_BUTTONS];
new bool:gbFreeRun=false;
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("ResetHUD","resethud","be") register_logevent("end",2,"1=Round_End") if( engfunc(EngFunc_FindEntityByString,-1 ,"classname", "func_button")) RegisterHam(Ham_Use, "func_button", "fwButtonUsed");
if(engfunc(EngFunc_FindEntityByString,-1 ,"classname","func_rot_button")) RegisterHam(Ham_Use, "func_rot_button", "fwButtonUsed"); if(engfunc(EngFunc_FindEntityByString,-1 ,"classname", "button_target")) RegisterHam(Ham_Use, "button_target", "fwButtonUsed"); register_logevent( "ResetButtons", 2, "0=World triggered", "1=Round_Start"); fillButtons("func_button"); fillButtons("func_rot_button"); fillButtons("button_target"); register_event( "CurWeapon", "fegyvervaltas", "be", "1=1", "2!29" ); }
public fegyvervaltas(id) if(gbFreeRun) freeweapon(id); freeweapon(id) engclient_cmd( id, "weapon_knife" );
public plugin_cfg() { alapgombok(); }
public resethud(id) { new menu = menu_create("\rValassz:", "drmenuhandler"); menu_additem(menu, "\w200 HP", "1", 0); menu_additem(menu, "\wPajzs", "2", 0); menu_additem(menu, "\w10000$", "3", 0); menu_additem(menu, "\wTobbszoros gomb", "4", 0); menu_additem(menu, "\wSzabad kor - Freerun", "5", 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); new CsTeams:userTeam = cs_get_user_team(id); if(userTeam == CS_TEAM_T) { menu_display(id, menu, 0); } }
public drmenuhandler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; }
new data[6], szName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);
switch(key) { case 1: { set_user_health(id, 200) client_print(id, print_chat, "Kaptal 200HP-t!") } case 2: { set_user_armor(id, 100) client_print(id, print_chat, "Kaptal pajzsot!"); } case 3: { new jelenlegipiiz = cs_get_user_money(id) cs_set_user_money(id, jelenlegipiiz+10000) client_print(id, print_chat, "Kaptal 10000$-t!"); } case 4: { tobbgomb(); client_print(id, print_chat, "Otszor nyomhatsz gombokat!"); } case 5: { nincsgomb(); client_print(id, print_chat, "Szabad kor! Freerun+Kes!"); } }
menu_destroy(menu); return PLUGIN_HANDLED; }
public end() { alapgombok(); }
public fwButtonUsed(this, idcaller, idactivator, use_type, Float:value){ if(idcaller!=idactivator) return HAM_IGNORED; if(pev(this, pev_frame) > 0.0) return HAM_IGNORED; new index=get_ent_index(this); if(index==-1) return HAM_IGNORED; if(get_user_team(idcaller)&1){ if(gbFreeRun){ ColorChat(idcaller,GREEN, "[FreeRun]^x01 Freerun van - Nem nyomhatsz gombokat!",idcaller, "BUTTON_FREERUN"); return HAM_SUPERCEDE; } else if(gUsed[index]<=0 && gOnStart[index]!=-1){ ColorChat(idcaller,GREEN, "[Info]^x01 Nem hasznalhatod ezt a csapdat!",idcaller,"BUTTON_NOMORE"); return HAM_SUPERCEDE; } else{ if(gUsed[index]>0) if(--gUsed[index]){ ColorChat(idcaller, GREEN, "[Info]^x01 Ezt a csapdat meg hasznalhatod!", idcaller, "BUTTON_LEFT"); }else ColorChat(idcaller, GREEN, "[Info]^x01 Ezt a csapdat mar nem hasznalhatod tobbszor!", idcaller, "BUTTON_ENDOFLIMIT"); } } set_task(0.1,"setDelay",this); return HAM_IGNORED; } public setDelay(this){ new index=get_ent_index(this); set_pev(this, pev_nextthink, pev(this, pev_ltime)+gDelay[index]+0.01); }
public ResetButtons(){ gbFreeRun=false; for(new i=0;i<MAX_BUTTONS;i++){ gUsed[i]=gOnStart[i]; restoreButton(gEnt[i]); } }
tobbgomb(){ new iDef= 5 for(new i=0;i<giPointer;i++){ gUsed[i]=iDef; gOnStart[i]=iDef; gDelay[i]=get_pdata_float(gEnt[i],m_flWait); gDefaultDelay[i]=gDelay[i]; } }
alapgombok(){ new iDef= 1 for(new i=0;i<giPointer;i++){ gUsed[i]=iDef; gOnStart[i]=iDef; gDelay[i]=get_pdata_float(gEnt[i],m_flWait); gDefaultDelay[i]=gDelay[i]; } }
nincsgomb(bool:bFR=true){ gbFreeRun=bFR;
if(gbFreeRun){ set_hudmessage(0, 255, 255, 0.02, -1.0); show_hudmessage(0, "FreeRun!"); } }
fillButtons(const szClass[]){ new ent = -1; while((ent = engfunc(EngFunc_FindEntityByString,ent ,"classname", szClass)) != 0){ gEnt[giPointer++]=ent; set_pev(ent, pev_iuser4, giPointer); } }
restoreButton(ent){ if(pev(ent, pev_frame) > 0.0){ new Float:Life; pev(ent, pev_nextthink, Life); set_pev(ent, pev_ltime, Life-0.01); } }
get_ent_index(ent){ return pev(ent, pev_iuser4)-1; }
|