Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Human Classes[ZP]

Статус пользователя Butterfly
сообщение 27.3.2016, 16:29
Сообщение #1


Стаж: 11 лет

Сообщений: 49
Благодарностей: 1
Полезность: 18

Сделал свои простенькие классы людей.
Хотелось бы сделать так, чтоб в информер ZP выводилось название класса...
Как это можно сделать?
Покажите, где я ошибся пожалуйста :-)
Вот, пытался сам сделать

Исходник

#include <amxmodx>
#include <amxmisc>
#include <zombieplague>
#include <fakemeta>

#define PLUGIN "Human Class"
#define VERSION "1.0"
#define AUTHOR "Untouch"

new Array:g_HumanClassName

#define HUMANS_DEFAULT_NAME "Human"

const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /hc" , "HumanClassMenu")
register_menu("Class Menu", KEYSMENU, "menu_classes")
register_dictionary("zp_hc.txt")
// Add your code here...
}

public plugin_precache()
{
precache_model("models/player/hcfemale/hcfemale.mdl")
precache_model("models/player/hcmale/hcmale.mdl" )
}

public plugin_cfg()
{
ArrayPushString(g_HumanClassName, HUMANS_DEFAULT_NAME)
}

public plugin_natives()
{
register_native("zp_class_human_get" , "native_class_human_get_name" , 1)
g_HumanClassName = ArrayCreate(32, 1)
}

public HumanClassMenu(id)
{
static menu[512], len , name[32]
len = 0
new index

ArrayGetString(g_HumanClassName, index, name, charsmax(name))

if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r1.\w %L^n", id, "HUMAN_CLASS1")
else
len += formatex(menu[len], charsmax(menu) - len, "\d1. %L^n", id, "HUMAN_CLASS1")

if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r2.\w %L^n", id, "HUMAN_CLASS2")
else
len += formatex(menu[len], charsmax(menu) - len, "\d2. %L^n", id, "HUMAN_CLASS2")

if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r3.\w %L^n", id,"HUMAN_CLASS3")
else
len += formatex(menu[len], charsmax(menu) - len, "\d3. %L^n", id,"HUMAN_CLASS3")

if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r4.\w %L^n", id, "HUMAN_CLASS4")
else
len += formatex(menu[len], charsmax(menu) - len, "\d4. %L^n", id, "HUMAN_CLASS4")

if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r5.\w %L^n", id, "HUMAN_CLASS5")
else
len += formatex(menu[len], charsmax(menu) - len, "\d5. %L^n", id, "HUMAN_CLASS5")

if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r6.\w %L^n", id, "HUMAN_CLASS6")
else
len += formatex(menu[len], charsmax(menu) - len, "\d6. %L^n^n", id, "HUMAN_CLASS6")

if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r7.\w %L^n", id, "HUMAN_CLASS7")
else
len += formatex(menu[len], charsmax(menu) - len, "\d7. %L^n", id, "HUMAN_CLASS7")

if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r8.\w %L", id, "HUMAN_CLASS8")
else
len += formatex(menu[len], charsmax(menu) - len, "\d8. %L", id, "HUMAN_CLASS8")

len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\w %L", id, "MENU_EXIT")

show_menu(id, KEYSMENU, menu, -1, "Class Menu")
}

public menu_classes(id, key)
{
switch (key)
{
case 0:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcfemale")
set_pev(id, pev_body , 1);
PrintChatColor(id, "!g[%L] !y%L !g%L", id , "ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS1")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id , "ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 1:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcfemale")
set_pev(id, pev_body , 2);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS2")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 2:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcfemale")
set_pev(id, pev_body , 3);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS3")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 3:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 1);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS4")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 4:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 2);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS5")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 5:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 3);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS6")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 6:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 4);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS7")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 7:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 4);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS8")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
}
}

stock PrintChatColor( const id , const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4" ) // Green Color
replace_all(msg, 190, "!y", "^1" ) // Default Color
replace_all(msg, 190, "!team", "^3" ) // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText" ), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}

public native_class_human_get_name(plugin_id, num_params)
{
new classid = get_param(1)

new name[32]
ArrayGetString(g_HumanClassName, classid, name, charsmax(name))

new len = get_param(3)
set_string(2, name, len)
return true;
}


Отредактировал: Butterfly, - 27.3.2016, 16:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Butterfly
сообщение 28.3.2016, 15:50
Сообщение #2


Стаж: 11 лет

Сообщений: 49
Благодарностей: 1
Полезность: 18

Посоветовали заюзать булловую переменную.
Но как?
Покажите пример пожалуйста.

P.S. Смотрел, как в 5.0 реализовано - нихрена не понял
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: