Как да сложа public функция в case на меню ?
Как да сложа public функция в case на меню ?
Как мога да направя например като регистрирам евент за 2х Damage на някво оражие или нещо друго но имам и меню да кажем че в менюто имам няколко избора и един е да направи това с 2x Damage то и как ще стане този евент да го сложа в case ??
Дано да сте ме разбрали
Дано да сте ме разбрали
-
User12
Извън линия - Потребител
- Мнения: 321
- Регистриран на: 25 Яну 2018, 22:39
- Местоположение: Сливен
- Се отблагодари: 40 пъти
- Получена благодарност: 17 пъти
- Обратна връзка:
Как да сложа public функция в case на меню ?
Знам един от от един сайт дето гледах и ми е помагал няколко пъти виж го може да ти помогне и на теб мисля , че има това което търсиш :
Код за потвърждение: Избери целия код
#include <amxmodx>
public plugin_init()
{
// Ще регистрираме командата /menu, която ще създава ново меню.
register_clcmd( "say /menu","AwesomeMenu");
register_clcmd( "say_team /menu","AwesomeMenu");
}
// Това е функцията за менюто.
public AwesomeMenu(id)
{
new menu = menu_create("\rZaglavie na moeto menu!:", "menu_handler")
// Това долу са възможностите.
menu_additem(menu, "\wOtovri mi MOTD ", "1", 0);
menu_additem(menu, "\wOtvori mi drugo Menu", "2", 0);
// Нужни неща за показването на менюто.
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
// Функцията, изпълнявана при избиране на опция.
public menu_handler(id, menu, item)
{
// Ако има Exit>>
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:
{
// Ще отворим MOTD екрана, който ще зарежда HTML информация от файла motd.txt, който трябва да бъде в configs.
show_motd(id,"addons/amxmodx/configs/motd.txt")
}
case 2:
{
// Ще отворим друго меню, ако изберем 2-рия случай.
SubMenu(id);
}
}
// Унищожаваме менюто.
menu_destroy(menu);
return PLUGIN_HANDLED;
}
// Новото меню, което ще се отвори при избирането на втори случай.
SubMenu(id)
{
//Ще използваме друг handler!!!
new menu = menu_create("\rDrugoto mi menu!:", "submenu_handler")
menu_additem(menu, "\w1-vi sluchai", "1", 0);
menu_additem(menu, "\w2-ri sluchai", "2", 0);
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
// Функцията за случаите.
public submenu_handler(id, menu, item)
{
// Ако натиснат Exit да ги върнем към първото меню.
if( item == MENU_EXIT )
{
menu_destroy(menu);
// Проверка дали са живи
if( is_user_connected(id) )
// Изпращаме ги обратно
AwesomeMenu(id);
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:
{
// Нека сложим нормални чат съобщения.
client_print(id, print_chat, "Ti izbra 1-vata opciq na drugoto menu.");
}
case 2:
{
client_print(id, print_chat, "Ne, ti izbra vtorata opciq na tova menu!!!");
}
}
// Унищожаваме менюто.
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Как да сложа public функция в case на меню ?
Ами не не ми тря това но мерси мисълта ми беше друга ( Дай линк на лс на форума )
То даже например имаме едно меню
и като регна евента CurWeapon
нали тря да е
public CurWeapon()
и мисълта ми е как да сложа в case че точно него си модел да се сменя ?
То даже например имаме едно меню
Код за потвърждение: Избери целия код
menu_additem(menu, "Model 1")
menu_additem(menu, "Model 2")
нали тря да е
public CurWeapon()
и мисълта ми е как да сложа в case че точно него си модел да се сменя ?
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Как да сложа public функция в case на меню ?
Демек искаш да извикаш функцията ръчно? Изказвай се правилно... Просто напиши името на функцията, примерно OnChangeWeapon(id).
Как да сложа public функция в case на меню ?
Не те разбрах :Д
Може да дадеш един пример с регването на евента с менюто и смяната на моделите щото аз както съм го направил сменям ги моделите но като сменя на нош например и върна пак другото оражие и модела се маха !
Може да дадеш един пример с регването на евента с менюто и смяната на моделите щото аз както съм го направил сменям ги моделите но като сменя на нош например и върна пак другото оражие и модела се маха !
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Как да сложа public функция в case на меню ?
Ти мен не ме разбра, а пък аз теб изобщо. По-скоро дай кода и обясни какво искаш да направиш.
Как да сложа public функция в case на меню ?
Ами да скъся тази част с #define където съм ги сложил и да направя моделите
Ето кода :
Да тези #define да ги сложа в string и после как да направя да регна eventa за оражията да направя всеки модел да си отговаря на менюто !
Тука сега се уча и моля без хейт
Ето кода :
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <fun>
#include <stripweapons>
#include <fakemeta>
#include <cromchat>
#include <cstrike>
new const PLUGIN[] = ""
new const VERSION[] = ""
new const AUTHOR[] = ""
new pMenuEnable, pAwpSkin1Cr, pAwpSkin2Cr, pAwpSkin3Cr, pAwpSkin4Cr, pAwpSkin5Cr
#define AWP_SKIN_1_V "models/awp_skin1_v.mdl"
#define AWP_SKIN_1_P "models/awp_skin1_p.mdl"
#define AWP_SKIN_2_V "models/awp_skin2_v.mdl"
#define AWP_SKIN_2_P "models/awp_skin2_p.mdl"
#define AWP_SKIN_3_V "models/awp_skin3_v.mdl"
#define AWP_SKIN_3_P "models/awp_skin3_p.mdl"
#define AWP_SKIN_4_V "models/awp_skin4_v.mdl"
#define AWP_SKIN_4_P "models/awp_skin4_p.mdl"
#define AWP_SKIN_5_V "models/awp_skin5_v.mdl"
#define AWP_SKIN_5_P "models/awp_skin5_p.mdl"
#define MSG_NO_CR "Imash %i trybvat ti %i !"
public plugin_precache()
{
precache_model(AWP_SKIN_1_V)
precache_model(AWP_SKIN_1_P)
precache_model(AWP_SKIN_2_V)
precache_model(AWP_SKIN_2_P)
precache_model(AWP_SKIN_3_V)
precache_model(AWP_SKIN_3_P)
precache_model(AWP_SKIN_4_V)
precache_model(AWP_SKIN_4_P)
precache_model(AWP_SKIN_5_V)
precache_model(AWP_SKIN_5_P)
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /awp", "Awp_Models_Menu")
register_clcmd("say_team /awp", "Awp_Models_Menu")
// pCvars
pMenuEnable = register_cvar("amx_menu_skin", "1")
pAwpSkin1Cr = register_cvar("amx_awp_skin1_cr", "10000")
pAwpSkin2Cr = register_cvar("amx_awp_skin2_cr", "200")
pAwpSkin3Cr = register_cvar("amx_awp_skin3_cr", "300")
pAwpSkin4Cr = register_cvar("amx_awp_skin4_cr", "400")
pAwpSkin5Cr = register_cvar("amx_awp_skin5_cr", "500")
}
public Awp_Models_Menu(id)
{
if(get_user_weapon(id) == CSW_AWP)
{
if(get_pcvar_num(pMenuEnable) == 1 || is_user_alive(id))
{
static buffer[64]
new menu = menu_create("Shop you Awp Model", "Menu_Container")
formatex(buffer, charsmax(buffer), "Imeto na Skin 1 \r| %i |", get_pcvar_num(pAwpSkin1Cr))
menu_additem(menu, buffer)
formatex(buffer, charsmax(buffer), "Imeto na Skin 2 \r| %i |", get_pcvar_num(pAwpSkin2Cr))
menu_additem(menu, buffer)
formatex(buffer, charsmax(buffer), "Imeto na Skin 3 \r| %i |", get_pcvar_num(pAwpSkin3Cr))
menu_additem(menu, buffer)
formatex(buffer, charsmax(buffer), "Imeto na Skin 4 \r| %i |", get_pcvar_num(pAwpSkin4Cr))
menu_additem(menu, buffer)
formatex(buffer, charsmax(buffer), "Imeto na Skin 5 \r| %i |", get_pcvar_num(pAwpSkin5Cr))
menu_additem(menu, buffer)
menu_display(id, menu)
}
}
else
{
CC_SendMessage(id, "Za da vidite menuto trqbva da ste zakupili AWP !")
}
}
public Menu_Container(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
switch(item)
{
case(0):
{
if(cs_get_user_money(id) < get_pcvar_num(pAwpSkin1Cr))
{
CC_SendMessage(id, MSG_NO_CR, cs_get_user_money(id), get_pcvar_num(pAwpSkin1Cr))
}
else
{
set_pev(id, pev_viewmodel2, AWP_SKIN_1_V)
set_pev(id, pev_weaponmodel2, AWP_SKIN_1_P)
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(pAwpSkin1Cr), 1)
}
}
case(1):
{
if(cs_get_user_money(id) < get_pcvar_num(pAwpSkin2Cr))
{
CC_SendMessage(id, MSG_NO_CR, cs_get_user_money(id), get_pcvar_num(pAwpSkin2Cr))
}
else
{
set_pev(id, pev_viewmodel2, AWP_SKIN_2_V)
set_pev(id, pev_weaponmodel2, AWP_SKIN_2_P)
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(pAwpSkin2Cr), 1)
}
}
case(2):
{
if(cs_get_user_money(id) < get_pcvar_num(pAwpSkin3Cr))
{
CC_SendMessage(id, MSG_NO_CR, cs_get_user_money(id), get_pcvar_num(pAwpSkin3Cr))
}
else
{
set_pev(id, pev_viewmodel2, AWP_SKIN_3_V)
set_pev(id, pev_weaponmodel2, AWP_SKIN_3_P)
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(pAwpSkin3Cr), 1)
}
}
case(3):
{
if(cs_get_user_money(id) < get_pcvar_num(pAwpSkin4Cr))
{
CC_SendMessage(id, MSG_NO_CR, cs_get_user_money(id), get_pcvar_num(pAwpSkin4Cr))
}
else
{
set_pev(id, pev_viewmodel2, AWP_SKIN_4_V)
set_pev(id, pev_weaponmodel2, AWP_SKIN_4_P)
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(pAwpSkin4Cr), 1)
}
}
case(4):
{
if(cs_get_user_money(id) < get_pcvar_num(pAwpSkin5Cr))
{
CC_SendMessage(id, MSG_NO_CR, cs_get_user_money(id), get_pcvar_num(pAwpSkin5Cr))
}
else
{
set_pev(id, pev_viewmodel2, AWP_SKIN_5_V)
set_pev(id, pev_weaponmodel2, AWP_SKIN_5_P)
cs_set_user_money(id, cs_get_user_money(id) - get_pcvar_num(pAwpSkin5Cr), 1)
}
}
}
return PLUGIN_HANDLED
}
Тука сега се уча и моля без хейт
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Как да сложа public функция в case на меню ?
Не виждам какво общо има това с нещата които си обяснил в първото мнение. Не ми се занимава да обяснявам как да стане това, тъй като и аз не мога да ти го обясня. Просто виж кода на някой от плъгините ми означени с CRXSimpleShop.
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 0 Отговори
- 1137 Преглеждания
-
Последно мнение от s1lata
-
- 2 Отговори
- 1452 Преглеждания
-
Последно мнение от antonstoqnovv
-
- 2 Отговори
- 2917 Преглеждания
-
Последно мнение от SmirnoffBG
-
- 12 Отговори
- 3884 Преглеждания
-
Последно мнение от gadinkata
-
- 3 Отговори
- 1503 Преглеждания
-
Последно мнение от iv69
-
- 8 Отговори
- 845 Преглеждания
-
Последно мнение от DarkGameR
-
- 10 Отговори
- 5098 Преглеждания
-
Последно мнение от Scorpions95
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 6 госта