Offline |
|
|
Csatlakozott: 2017.08.21. 15:51 Hozzászólások: 1109
Megköszönt másnak: 36 alkalommal Megköszönték neki: 195 alkalommal
|
I3WhitE írta: Pika írta: I3WhitE írta: Sziasztok valaki megtudná nekem csinálni azt ha megnyomjuk a t betüt akkor előzhoz egy menüt amiben 2 pont van: USP, Kés választás (mind a 2-t elküldöm) és azt kérném hogy van egy főmenü és ha belemegyünk akkor megnyissa azt az adott menüt. (usp) /* Plugin generated by AMXX-Studio */ /*Usp menu fixelt verzio*/ #include <amxmodx> #include <amxmisc> #include <colorchat> #include <fakemeta> #define PLUGIN "USPMenu" #define VERSION "0.1" #define AUTHOR "xy" new pont[33] new usp[33] new prefix[] = "USP" new filename[128]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /usp", "uspmenu") register_clcmd("201", "uspmenu") register_clcmd("say /pont", "pontokchat") register_event("CurWeapon", "fegyvervaltas", "be", "1=1") register_event("DeathMsg", "halal", "a") get_localinfo("amxx_configsdir", filename, charsmax(filename)) format(filename, charsmax(filename), "%s/uspmentes.ini", filename) } public halal(){ new killer = read_data(1) new victim = read_data(2) if(killer == victim) { return PLUGIN_HANDLED } pont[killer]++ return PLUGIN_HANDLED } public pontokchat(id) { ColorChat(id, GREEN, "USP^3»^1 Pontjaid száma:^3 %i", pont[id]) } public uspmenu(id) { new cim[121] new szCim[512] formatex(cim, charsmax(cim), "\rUSP\w menü^n\rPontok:\w%i^n\rOldal:\w", pont[id]) new menu = menu_create(cim, "usp_handler"); menu_additem(menu, "\rUSP 1\d [1]\w [Megszerezve]", "1", 0); if(pont[id] < 25) { formatex(szCim, charsmax(szCim), "\dUSP 2 [2] [%i/25 pont]", pont[id]) menu_additem(menu, szCim, "2",0) } else menu_additem(menu, "\rUSP 2\d [2]\w [Megszerezve]", "2",0) if(pont[id] < 50) { formatex(szCim, charsmax(szCim), "\dUSP 3 [3] [%i/50 pont]", pont[id]) menu_additem(menu, szCim, "3",0) } else menu_additem(menu, "\rUSP 3\d [3]\w [Megszerezve]", "3", 0); if(pont[id] < 75) { formatex(szCim, charsmax(szCim), "\dUSP 4 [4] [%i/75 pont]", pont[id]) menu_additem(menu, szCim, "4",0) } else menu_additem(menu, "\rUSP 4\d [4]\w [Megszerezve]", "4",0) if(pont[id] < 100) { formatex(szCim, charsmax(szCim), "\dUSP 5 [5] [%i/100 pont]", pont[id]) menu_additem(menu, szCim, "4",0) } else menu_additem(menu, "\rUSP 5\d [5]\w [Megszerezve]", "5", 0); if(pont[id] < 150) { formatex(szCim, charsmax(szCim), "\dUSP 6 [6] [%i/150 pont]", pont[id]) menu_additem(menu, szCim, "6",0) } else menu_additem(menu, "\rUSP 6\d [6]\w [Megszerezve]", "6",0) if(pont[id] < 200) { formatex(szCim, charsmax(szCim), "\dUSP 7 [7] [%i/200 pont]", pont[id]) menu_additem(menu, szCim, "7",0) } else menu_additem(menu, "\rUSP 7\d [7]\w [Megszerezve]", "7", 0); if(pont[id] < 300) { formatex(szCim, charsmax(szCim), "\dUSP 8 [8] [%i/300 pont]", pont[id]) menu_additem(menu, szCim, "8",0) } else menu_additem(menu, "\rUSP 8\d [8]\w [Megszerezve]", "8", 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_setprop(menu, MPROP_BACKNAME, "Előző"); menu_setprop(menu, MPROP_NEXTNAME, "Következő"); menu_setprop(menu, MPROP_EXITNAME, "Kilépés"); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public usp_handler(id, menu, item) { if(item == MENU_EXIT) { menu_cancel(id); return PLUGIN_HANDLED; } new command[6], name[64], access, callback; menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback); switch(item) { case 0:{ if(pont[id] >= 0) { usp[id] = 1 ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 1^1-et!", prefix) } else { ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 2^1-ig hátravan még^3 %i^1 pont!", prefix, 0-pont[id]) } } case 1:{ if(pont[id] >= 25) { usp[id] = 2 ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 2^1-őt!", prefix) } else { ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 2^1-ig hátravan még^3 %i^1 pont!", prefix, 25-pont[id]) } } case 2:{ if(pont[id] >= 50) { usp[id] = 3 ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 3^1-mat!", prefix) } else { ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 3^1-ig hátravan még^3 %i^1 pont!", prefix, 50-pont[id]) } } case 3:{ if(pont[id] >= 75) { usp[id] = 4 ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 4^1-et!", prefix) } else { ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 4^1-ig hátravan még^3 %i^1 pont!", prefix, 75-pont[id]) } } case 4:{ if(pont[id] >= 100) { usp[id] = 5 ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 5^1-öt!", prefix) } else { ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 5^1-ig hátravan még^3 %i^1 pont!", prefix, 100-pont[id]) } } case 5:{ if(pont[id] >= 150) { usp[id] = 6 ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 6^1-ot!", prefix) } else { ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 6^1-ig hátravan még^3 %i^1 pont!", prefix, 150-pont[id]) } } case 6:{ if(pont[id] >= 200) { usp[id] = 7 ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 7^1-et!", prefix) } else { ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 7^1-ig hátravan még^3 %i^1 pont!", prefix, 200-pont[id]) } } case 7:{ if(pont[id] >= 300) { usp[id] = 8 ColorChat(id, GREEN, "%s^3»^1 Sikeresen kiválasztottad a(z)^3 USP 8^1-at!", prefix) } else { ColorChat(id, GREEN, "%s^3»^1 A(z)^3 USP 8^1-ig hátravan még %i pont!", prefix, 300-pont[id]) } } } menu_destroy(menu); return PLUGIN_HANDLED; } public plugin_precache() { precache_model("models/uspmenu/v_usp_1.mdl") precache_model("models/uspmenu/v_usp_2.mdl") precache_model("models/uspmenu/v_usp_3.mdl") precache_model("models/uspmenu/v_usp_4.mdl") precache_model("models/uspmenu/v_usp_5.mdl") precache_model("models/uspmenu/v_usp_6.mdl") precache_model("models/uspmenu/v_usp_7.mdl") precache_model("models/uspmenu/v_usp_8.mdl") } public fegyvervaltas(id) { new weapon = get_user_weapon(id) if(usp[id] == 1 && weapon == CSW_USP) { set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_1.mdl") } if(usp[id] == 2 && weapon == CSW_USP) { set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_2.mdl") } if(usp[id] == 3 && weapon == CSW_USP) { set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_3.mdl") } if(usp[id] == 4 && weapon == CSW_USP) { set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_4.mdl") } if(usp[id] == 5 && weapon == CSW_USP) { set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_5.mdl") } if(usp[id] == 6 && weapon == CSW_USP) { set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_6.mdl") } if(usp[id] == 7 && weapon == CSW_USP) { set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_7.mdl") } if(usp[id] == 8 && weapon == CSW_USP) { set_pev(id, pev_viewmodel2, "models/uspmenu/v_usp_8.mdl") } } stock get_data(const key[], data[], len) { new vault = fopen(filename, "rt"); new _data[512], _key[64]; while( !feof(vault) ) { fgets(vault, _data, charsmax(_data)); parse(_data, _key, charsmax(_key), data, len); if( equal(_key, key) ) { fclose(vault); return 1; } } fclose(vault); copy(data, len, ""); return 0; } stock set_data(const key[], const data[]) { static const temp_vault_name[] = "set_data.txt"; new file = fopen(temp_vault_name, "wt"); new vault = fopen(filename, "rt"); new _data[512], _key[64], _other[32]; new bool:replaced = false; while( !feof(vault) ) { fgets(vault, _data, charsmax(_data)); parse(_data, _key, charsmax(_key), _other, charsmax(_other)); if( equal(_key, key) && !replaced ) { fprintf(file, "^"%s^" ^"%s^"^n", key, data); replaced = true; } else { fputs(file, _data); } } if( !replaced ) { fprintf(file, "^"%s^" ^"%s^"^n", key, data); } fclose(file); fclose(vault); delete_file(filename); while( !rename_file(temp_vault_name, filename, 1) ) { } //delete_file(temp_vault_name); } public client_disconnect(id) { if(!is_user_bot(id) && !is_user_hltv(id)) { save(id); } } public save(id) { new szData[128]; new steamid[32]; get_user_authid(id, steamid, charsmax(steamid)); if(contain(steamid, "_ID_LAN") != -1) get_user_ip(id, steamid, charsmax(steamid), 1); formatex(szData, charsmax(szData), "%i %i", usp[id], pont[id]); set_data(steamid, szData) } public client_authorized(id) { if(!is_user_bot(id) && !is_user_hltv(id)) { load(id); } } public load(id) { new szData[128]; new steamid[32]; get_user_authid(id, steamid, charsmax(steamid)); if(contain(steamid, "_ID_LAN") != -1) get_user_ip(id, steamid, charsmax(steamid), 1); if(get_data(steamid, szData, charsmax(szData))) { new valami[32], valami2[32]; parse(szData, valami, charsmax(valami), valami2, charsmax(valami2)); usp[id] = str_to_num(valami) pont[id] = str_to_num(valami2) } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par } */
És a kés sma: #include <amxmodx> #include <amxmisc> #include <engine> #include <vault> #include <fun> #define PLUGIN "Knife Mod" #define VERSION "1.0" #define AUTHOR "spunko" #define TASK_INTERVAL 4.0 #define MAX_HEALTH 255 new knife_model[33] new g_Menu new CVAR_HIGHSPEED new CVAR_LOWSPEED new CVAR_LOWGRAV new CVAR_NORMGRAV new CVAR_HEALTH_ADD new CVAR_HEALTH_MAX new CVAR_DAMAGE public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event( "Damage", "event_damage", "be" ) register_event("CurWeapon","CurWeapon","be","1=1") g_Menu = register_menuid("Kes Mod") register_menucmd(g_Menu, 1023, "knifemenu") register_clcmd("say /knife", "display_knife") CVAR_HIGHSPEED = register_cvar("km_highspeed","340") CVAR_LOWSPEED = register_cvar("km_lowspeed","170") CVAR_HEALTH_ADD = register_cvar("km_addhealth", "3") CVAR_HEALTH_MAX = register_cvar("km_maxhealth", "75") CVAR_DAMAGE = register_cvar("km_damage", "2") CVAR_LOWGRAV = register_cvar("km_lowgravity" , "400") CVAR_NORMGRAV = get_cvar_pointer("sv_gravity") set_task(480.0, "kmodmsg", 0, _, _, "b") } public plugin_precache() { precache_model("models/knife-mod/v_butcher.mdl") precache_model("models/knife-mod/p_butcher.mdl") precache_model("models/knife-mod/v_machete.mdl") precache_model("models/knife-mod/p_machete.mdl") precache_model("models/knife-mod/v_bak.mdl") precache_model("models/knife-mod/p_bak.mdl") precache_model("models/knife-mod/v_pocket.mdl") precache_model("models/knife-mod/p_pocket.mdl") precache_model("models/v_knife.mdl") precache_model("models/p_knife.mdl") } public display_knife(id) { new menuBody[512] add(menuBody, 511, "\rKes Modok\w^n^n") add(menuBody, 511, "1. Machete \y(Tobb sebzes/Kis sebesseg)\w^n") add(menuBody, 511, "2. Bak Kes \y(Nincs trappolas)\w^n") add(menuBody, 511, "3. Zsebkes \y(Gyorsasag)\w^n") add(menuBody, 511, "4. Hentes Bard \y(Nagyobb ugras)\w^n") add(menuBody, 511, "5. Alap Kes \y(Elet ujratoltodes)\w^n^n") add(menuBody, 511, "0. Kilepes^n") new keys = ( 1<<0 | 1<<1 | 1<<2 | 1<<3 | 1<<4 | 1<<9 ) show_menu(id, keys, menuBody, -1, "Kes Modok") } public knifemenu(id, key) { switch(key) { case 0: SetKnife(id , 4) case 1: SetKnife(id , 2) case 2: SetKnife(id , 3) case 3: SetKnife(id , 1) case 4: SetKnife(id , 0) default: return PLUGIN_HANDLED } SaveData(id) return PLUGIN_HANDLED } public SetKnife(id , Knife) { knife_model[id] = Knife new Clip, Ammo, Weapon = get_user_weapon(id, Clip, Ammo) if ( Weapon != CSW_KNIFE ) return PLUGIN_HANDLED new vModel[56],pModel[56] switch(Knife) { case 0: { format(vModel,55,"models/v_knife.mdl") format(pModel,55,"models/p_knife.mdl") } case 1: { format(vModel,55,"models/knife-mod/v_butcher.mdl") format(pModel,55,"models/knife-mod/p_butcher.mdl") } case 2: { format(vModel,55,"models/knife-mod/v_bak.mdl") format(pModel,55,"models/knife-mod/p_bak.mdl") } case 3: { format(vModel,55,"models/knife-mod/v_pocket.mdl") format(pModel,55,"models/knife-mod/p_pocket.mdl") } case 4: { format(vModel,55,"models/knife-mod/v_machete.mdl") format(pModel,55,"models/knife-mod/p_machete.mdl") } } entity_set_string(id, EV_SZ_viewmodel, vModel) entity_set_string(id, EV_SZ_weaponmodel, pModel) return PLUGIN_HANDLED; } public event_damage( id ) { new victim_id = id; if( !is_user_connected( victim_id ) ) return PLUGIN_CONTINUE new dmg_take = read_data( 2 ); new dmgtype = read_data( 3 ); new Float:multiplier = get_pcvar_float(CVAR_DAMAGE); new Float:damage = dmg_take * multiplier; new health = get_user_health( victim_id ); new iWeapID, attacker_id = get_user_attacker( victim_id, iWeapID ); if( !is_user_connected( attacker_id ) || !is_user_alive( victim_id ) ) { return PLUGIN_HANDLED } if( iWeapID == CSW_KNIFE && knife_model[attacker_id] == 4 ) { if( floatround(damage) >= health ) { if( victim_id == attacker_id ) { return PLUGIN_CONTINUE }else{ log_kill( attacker_id, victim_id, "knife", 0 ); } return PLUGIN_CONTINUE }else { if( victim_id == attacker_id ) return PLUGIN_CONTINUE fakedamage( victim_id, "weapon_knife", damage, dmgtype ); } } return PLUGIN_CONTINUE } public CurWeapon(id) { new Weapon = read_data(2) // Set Knife Model SetKnife(id, knife_model[id]) // Task Options if(knife_model[id] == 0 && !task_exists(id) && Weapon == CSW_KNIFE) set_task(TASK_INTERVAL , "task_healing",id,_,_,"b") else if(task_exists(id)) remove_task(id) // Abilities set_user_footsteps(id , ( (knife_model[id] == 2 && Weapon == CSW_KNIFE) ? 1 : 0) ) new Float:Gravity = ((knife_model[id] == 1 && Weapon == CSW_KNIFE)? get_pcvar_float(CVAR_LOWGRAV) : get_pcvar_float(CVAR_NORMGRAV)) / 800.0 set_user_gravity(id , Gravity) // Speed new Float:Speed if(Weapon != CSW_KNIFE || knife_model[id] < 3) return PLUGIN_CONTINUE else if(knife_model[id] == 3) Speed = get_pcvar_float(CVAR_HIGHSPEED) else if(knife_model[id] == 4) Speed = get_pcvar_float(CVAR_LOWSPEED) set_user_maxspeed(id, Speed) return PLUGIN_HANDLED } stock log_kill(killer, victim, weapon[],headshot) { user_silentkill( victim ); message_begin( MSG_ALL, get_user_msgid( "DeathMsg" ), {0,0,0}, 0 ); write_byte( killer ); write_byte( victim ); write_byte( headshot ); write_string( weapon ); message_end(); new kfrags = get_user_frags( killer ); set_user_frags( killer, kfrags++ ); new vfrags = get_user_frags( victim ); set_user_frags( victim, vfrags++ ); return PLUGIN_CONTINUE } public task_healing(id) { new addhealth = get_pcvar_num(CVAR_HEALTH_ADD) if (!addhealth) return new maxhealth = get_pcvar_num(CVAR_HEALTH_MAX) if (maxhealth > MAX_HEALTH) { set_pcvar_num(CVAR_HEALTH_MAX, MAX_HEALTH) maxhealth = MAX_HEALTH } new health = get_user_health(id) if (is_user_alive(id) && (health < maxhealth)) { set_user_health(id, health + addhealth) set_hudmessage(0, 255, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.1, 4) show_hudmessage(id,"<< !!ELET TOLTODES!! >>") message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id) write_short(1<<10) write_short(1<<10) write_short(0x0000) write_byte(0) write_byte(200) write_byte(0) write_byte(75) message_end() } else { if (is_user_alive(id) && (health > maxhealth)) remove_task(id) } } public client_disconnect(id) { if(task_exists(id)) remove_task(id) } public kmodmsg() { client_print(0,print_chat,"[AMXX] Ird be /knife, hogy valaszthass a kesek kozul.") } public client_authorized(id) { LoadData(id) } SaveData(id) { new authid[32] get_user_authid(id, authid, 31) new vaultkey[64] new vaultdata[64] format(vaultkey, 63, "KMOD_%s", authid) format(vaultdata, 63, "%d", knife_model[id]) set_vaultdata(vaultkey, vaultdata) } LoadData(id) { new authid[32] get_user_authid(id,authid,31) new vaultkey[64], vaultdata[64] format(vaultkey, 63, "KMOD_%s", authid) get_vaultdata(vaultkey, vaultdata, 63) knife_model[id] = str_to_num(vaultdata) } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par } */
tehát: 1 főmenübe legyen 2 almenü az 1-ikbe legyen az uspk a másikba pedig a kések:) én sajnos ezt nem értem... de ha valaki megcsinálná azt nagyon megköszönném Menü készítés!Próbálkozz vele, ha nagyon nem megy nyiss egy témát a Plugin kérése/keresése topicban. 4x olvastam el de nem értem hogy a többit hogyan kéne hozzá írni Menüpont case-nél a menü függvény szerepeljen ennyi. Ennyi a logikája. A handlerben a menüpont a következő függvényt nyitja meg, amit a menünek adtál nevet. Remélem érthető. Kód: menu_1(id) { //menu } menu_1_handler { //handler case 1:{ menu_2(id) }
menu_2(id) { //menu } menu_2_handler { //handler case 1:{ menu_3(id) } menu_3(id) { //menu .......
|
|