Dangerous | Дата: Вторник, 18.12.2012, 15:15 | Сообщение # 1 |
- Сообщения: 92
- Награды: 0
- Замечания:
|
Добрый день! Помогите пожалуйста разобраться с админ-меню.... Я нажимаю дать 30 лвл а мне пишет в консоле не достаточно прав... Вот сам код :
#include <amxmisc> #include <fun> #include <cstrike> #include <hamsandwich> #include <nvault> #include <colorchat>
new g_already_money[33] new Rounds[33] new g_has_respawned[33] new g_nvault new g_used_lvl[33]
public plugin_init() { register_plugin("[VIP] Menu","0.1","RaFA") register_clcmd("adminmenu","vipmenu") register_event( "HLTV", "newround" , "a" , "1=0" , "2=0" ); register_menucmd(register_menuid("Vip Menu"), 1023, "Action_VipMenu") g_nvault = nvault_open("player_levels") }
public plugin_end() { nvault_close(g_nvault) }
public set_lvl_delay(id) { new key[64], data[256] new name[33]; get_user_name(id,name,32)
format(key, 63, "%s", name) //name format(data, 255, "%i#", g_used_lvl[id]) //сколько
nvault_set(g_nvault, key, data) }
public client_putinserver(id) { Rounds[id] = 2 g_has_respawned[id] = false load_lvl_used(id) }
public load_lvl_used(id) { new key[64], data[256] new name[33]; get_user_name(id,name,32)
format(key, 63, "%s", name) format(data, 255, "%i#", g_used_lvl[id])
nvault_get(g_nvault, key, data, 255) replace_all(data, 255, "#", " ")
new lvl_us[32] parse(data, lvl_us, 31) g_used_lvl[id] = str_to_num(lvl_us) }
public newround() { for(new id = 1; id <=get_maxplayers();id++) { g_already_money[id] = false Rounds[id]-- if(is_user_connected(id))
if(Rounds[id] < 1) { Rounds[id] = 2 g_has_respawned[id] = false }
} }
public vipmenu(id) { if(!(get_user_flags(id) & ADMIN_BAN)) return; new body[512], keys, len len = format(body, charsmax(body), "\yАдмин-Меню^n^n")
keys |= (1 << 0) len += format(body[len], charsmax(body) - len, "\r1. \wM4a1 + Deagle^n")
keys |= (1 << 1) len += format(body[len], charsmax(body) - len, "\r2. \wAk47 + Deagle^n")
keys |= (1 << 2) len += format(body[len], charsmax(body) - len, "\r3. \wAwp + Deagle^n")
keys |= (1 << 3) len += format(body[len], charsmax(body) - len, "\r4. \wБроня и Жизни^n")
keys |= (1 << 4) len += format(body[len], charsmax(body) - len, "\r5. \w$ 6000 (1 раз в раунд)^n")
keys |= (1 << 5) len += format(body[len], charsmax(body) - len, "\r6. \wГранаты^n")
keys |= (1 << 6) len += format(body[len], charsmax(body) - len, "\r7. \wВоскреснуть (1 раз в 2 раунда)^n")
keys |= (1 << 7) len += format(body[len], charsmax(body) - len, "\r8. \wПолучить 30 lvl (\rнеработает\w)^n")
len += format(body[len], charsmax(body) - len, "\r0. \yВыход^n") keys |= MENU_KEY_0
show_menu(id, keys, body, -1, "Vip Menu") }
public Action_VipMenu(id, key) { switch(key) { case 0: { strip_user_weapons(id) // No more weapons
give_item(id, "weapon_m4a1") ExecuteHamB ( Ham_GiveAmmo, id, 90, "556nato", 90 ) give_item(id, "weapon_deagle") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") }
case 1: { strip_user_weapons(id) // No more weapons
give_item(id, "weapon_ak47") ExecuteHamB ( Ham_GiveAmmo, id, 90, "762nato", 90 ) give_item(id, "weapon_deagle") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") } case 2: { strip_user_weapons(id) // No more weapons
give_item(id, "weapon_awp") ExecuteHamB ( Ham_GiveAmmo, id, 30, "338magnum", 30 ) give_item(id, "weapon_deagle") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "ammo_50ae") give_item(id, "weapon_knife") } case 3: { set_user_armor(id, 250) set_user_health(id, 200) } case 4: { if(g_already_money[id]) { ColorChat(0,GREEN,"^x04[AD-MENU] ^x03Разрешено выдавать только раз за раунд") return PLUGIN_HANDLED } cs_set_user_money(id, cs_get_user_money(id) + 6000) g_already_money[id] = true } case 5: { give_item(id, "weapon_hegrenade") give_item(id, "weapon_flashbang") give_item(id, "weapon_flashbang") give_item(id, "weapon_smokegrenade") } case 6: { if(is_user_alive(id)) { ColorChat(0,GREEN,"^x04[AD-MENU] ^x03Запрещено живым") return PLUGIN_HANDLED } if(Rounds[id] == 2 && !g_has_respawned[id]) { g_has_respawned[id] = true ExecuteHamB(Ham_CS_RoundRespawn, id) } else { ColorChat(0,GREEN,"^x04[AD-MENU] ^x03Разрешено возрождаться раз в ^x04(2) ^x03раунда") return PLUGIN_HANDLED } } case 7: { new User[32]; get_user_name(id, User, 31) if(g_used_lvl[id] >= 4) { client_print(id, print_chat, "Эта команда больше вам недоступна") return PLUGIN_HANDLED } g_used_lvl[id]++ set_lvl_delay(id) server_cmd("amx_givexp ^"%s^" %d", User, 1100000) } } return PLUGIN_HANDLED }
Сообщение отредактировал Dangerous - Вторник, 18.12.2012, 15:32 |
|
| |
ROCCI | Дата: Вторник, 18.12.2012, 17:40 | Сообщение # 2 |
- Сообщения: 262
- Награды: 3
- Замечания:
|
если я не ошибаюсь это вип меню. и 7 пункт у тебя написано неработает видать отключен что бы випы немогли опыт раздавать.
Сообщение отредактировал ROCCI - Вторник, 18.12.2012, 18:09 |
|
| |
Contra63 | Дата: Среда, 19.12.2012, 18:25 | Сообщение # 3 |
- Сообщения: 830
- Награды: 7
- Замечания:
|
значит не выполнено условие.
Code if(g_used_lvl[id] >= 4) а не 30?
Code #define USE 5
new UseVipWar3FT
register_event("HLTV", "round_start_war3ft", "a", "1=0", "2=0");
public round_start_war3ft() { if(UseVipWar3FT > 0) { UseVipWar3FT -= 1 } }
case 3: { new war3ft = get_cvar_num("wc3_save_xp"); if(war3ft == 1) { if(UseVipWar3FT > 0) { ColorChat(id, GREEN, "%s %L",g_Client, LANG_PLAYER,"WAR3FT_USE_NO_VIP", UseVipWar3FT); } else if(UseVipWar3FT == 0) { new User[32]; get_user_name(id,User,32); server_cmd("wc3_givexp ^"%s^" %d", User, 9000000 ); ColorChat(id, GREEN, "%s %L",g_Client, LANG_PLAYER,"WAR3FT_USE_VIP"); UseVipWar3FT = USE return PLUGIN_HANDLED; }else{ ColorChat(id, GREEN, "%s %L",g_Client, LANG_PLAYER,"WAR3FT_NO_VIP"); client_cmd(id, "say /vipmenu") return PLUGIN_HANDLED; } } }
Сообщение отредактировал Contra63 - Среда, 19.12.2012, 18:29 |
|
| |
Dangerous | Дата: Пятница, 21.12.2012, 00:35 | Сообщение # 4 |
- Сообщения: 92
- Награды: 0
- Замечания:
|
ROCCI, да я знаю что не работает ) это я сам написал я только не пойму почему не выдаёт опыт и Contra63, объясни пожалуйста откуда ты взял 30 и куда этоДобавлено (21.12.2012, 00:33) --------------------------------------------- а да ещё тут функции сделаны с ограничением поэтому я и решил использовать этот код к тому же он попроще чем adminmenu Добавлено (21.12.2012, 00:35) --------------------------------------------- Contra63, да кстати насчёт 1 if(g_used_lvl[id] >= 4) это и есть ограничение там выходит что 4 раза можно будет дать себе опыт и всё
|
|
| |
Contra63 | Дата: Пятница, 21.12.2012, 23:37 | Сообщение # 5 |
- Сообщения: 830
- Награды: 7
- Замечания:
|
Dangerous, расположен условий с функцией проверь либо используй мой метод(1 раз в 5 раундов + проверки)
p.s: нету жеДобавлено (21.12.2012, 23:37) ---------------------------------------------
Код { new User[32]; get_user_name(id, User, 31) if(g_used_lvl[id] >= 4) { client_print(id, print_chat, "Эта команда больше вам недоступна") return PLUGIN_HANDLED } else { g_used_lvl[id]++ set_lvl_delay(id) server_cmd("amx_givexp ^"%s^" %d", User, 1100000) return PLUGIN_HANDLED } }
возможно .уйня
|
|
| |