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;
}