Русское сообщество по скриптингу

Ошибка в переводе mainmenu z.p 5.0.8a  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Ошибка в переводе mainmenu z.p 5.0.8a

Сообщение Reznov » 31 мар 2017, 20:52

Всем привет :-) При загрузке ланг файла для mainmenu z.p 5.0.8a у меня появился "баг", слово "Выход" отображается некорректно, а также пункт "Choose team", когда переводишь на русский, то получается аналогичная проблема......
Скриншот:Вы должны зарегистрироваться, чтобы видеть ссылки.
Исходник:
zp50_main_menu.sma

Ланг файл:
zombie_plague.txt

Исходник(код):
Код: Выделить всё
/*================================================================================
    
    ----------------------
    -*- [ZP] Main Menu -*-
    ----------------------
    
    This plugin is part of Zombie Plague Mod and is distributed under the
    terms of the GNU General Public License. Check ZP_ReadMe.txt for details.
    
================================================================================*/

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#define LIBRARY_BUYMENUS "zp50_buy_menus"
#include <zp50_buy_menus>                          
#define LIBRARY_ZOMBIECLASSES "zp50_class_zombie"
#include <zp50_class_zombie>
#define LIBRARY_HUMANCLASSES "zp50_class_human"
#include <zp50_class_human>
#define LIBRARY_ITEMS "zp50_items"
#include <zp50_items>
#define LIBRARY_ADMIN_MENU "zp50_admin_menu"
#include <zp50_admin_menu>
#define LIBRARY_RANDOMSPAWN "zp50_random_spawn"
#include <zp50_random_spawn>
#include <zp50_colorchat>
                                                   
#define TASK_WELCOMEMSG 100

// CS Player PData Offsets (win32)
const OFFSET_CSMENUCODE = 205

// Menu keys
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0

#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false)
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_ChooseTeamOverrideActive
                                                              
new cvar_buy_custom_primary
, cvar_buy_custom_secondary, cvar_buy_custom_grenades
new cvar_random_spawning

public plugin_init
()                     
{
    register_plugin("[SG] Main Menu", ZP_VERSION_STRING, "Reznov")
    
    register_event
("HLTV", "event_round_start", "a", "1=0", "2=0")
                              
    register_clcmd
("chooseteam", "clcmd_chooseteam")
                         
    register_clcmd
("say /zpmenu", "clcmd_zpmenu")
    register_clcmd("say zpmenu", "clcmd_zpmenu")
    
    
// Menus
    register_menu("Main Menu", KEYSMENU, "menu_main")
}

public plugin_natives()
{
    set_module_filter("module_filter")
    set_native_filter("native_filter")
}
public module_filter(const module[])
{
    if (equal(module, LIBRARY_BUYMENUS) || equal(module, LIBRARY_ZOMBIECLASSES) || equal(module, LIBRARY_HUMANCLASSES) || equal(module, LIBRARY_ITEMS) || equal(module, LIBRARY_ADMIN_MENU) || equal(module, LIBRARY_RANDOMSPAWN))
        return PLUGIN_HANDLED;
    
    return PLUGIN_CONTINUE
;
}
public native_filter(const name[], index, trap)
{
    if (!trap)
        return PLUGIN_HANDLED;
    
    return PLUGIN_CONTINUE
;
}

public plugin_cfg()
{
    cvar_buy_custom_primary = get_cvar_pointer("zp_buy_custom_primary")
    cvar_buy_custom_secondary = get_cvar_pointer("zp_buy_custom_secondary")
    cvar_buy_custom_grenades = get_cvar_pointer("zp_buy_custom_grenades")
    cvar_random_spawning = get_cvar_pointer("zp_random_spawning_csdm")
}

// Event Round Start
public event_round_start()
{
    // Show main menu message
    remove_task(TASK_WELCOMEMSG)
    set_task(2.0, "task_welcome_msg", TASK_WELCOMEMSG)
}

// Welcome Message Task
public task_welcome_msg()
{
    zp_colored_print(0, "==== ^x04SG ^x04Zombie %s^x01 ====", ZP_VERSION_STR_LONG)
    zp_colored_print(0, "%L", LANG_PLAYER, "NOTICE_INFO1")
}

public clcmd_chooseteam(id)
{
    if (flag_get(g_ChooseTeamOverrideActive, id))
    {
        show_menu_main(id)
        return PLUGIN_HANDLED;
    }
    
    flag_set
(g_ChooseTeamOverrideActive, id)
    return PLUGIN_CONTINUE;
}

public clcmd_zpmenu(id)
{
    show_menu_main(id)
}

public client_putinserver(id)
{
    flag_set(g_ChooseTeamOverrideActive, id)
}

// Main Menu
show_menu_main(id)
{
    static menu[250]
    new len
    
    
// Title
    len += formatex(menu[len], charsmax(menu) - len, "\ySG Zombie %s^n^n", ZP_VERSION_STR_LONG)
    
    
// 1. Buy menu
    if (LibraryExists(LIBRARY_BUYMENUS, LibType_Library) && (get_pcvar_num(cvar_buy_custom_primary)
    || get_pcvar_num(cvar_buy_custom_secondary) || get_pcvar_num(cvar_buy_custom_grenades)) && is_user_alive(id))
        len += formatex(menu[len], charsmax(menu) - len, "\r1.\w %L^n", id, "MENU_BUY")
    else
        len 
+= formatex(menu[len], charsmax(menu) - len, "\d1. %L^n", id, "MENU_BUY")
    
    
// 2. Extra Items
    if (LibraryExists(LIBRARY_ITEMS, LibType_Library) && is_user_alive(id))
        len += formatex(menu[len], charsmax(menu) - len, "\r2.\w %L^n", id, "MENU_EXTRABUY")
    else
        len 
+= formatex(menu[len], charsmax(menu) - len, "\d2. %L^n", id, "MENU_EXTRABUY")
                                                               
    
// 3. Zombie class
    if (LibraryExists(LIBRARY_ZOMBIECLASSES, LibType_Library) && zp_class_zombie_get_count() > 1)
        len += formatex(menu[len], charsmax(menu) - len, "\r3.\w %L^n", id, "MENU_ZCLASS")
    else
        len 
+= formatex(menu[len], charsmax(menu) - len, "\d3. %L^n", id, "MENU_ZCLASS")
    
    
// 4. Human class
    if (LibraryExists(LIBRARY_HUMANCLASSES, LibType_Library) && zp_class_human_get_count() > 1)
        len += formatex(menu[len], charsmax(menu) - len, "\r4.\w %L^n", id, "MENU_HCLASS")
    else
        len 
+= formatex(menu[len], charsmax(menu) - len, "\d4. %L^n", id, "MENU_HCLASS")
    
    
// 5. Unstuck
    if (LibraryExists(LIBRARY_RANDOMSPAWN, LibType_Library) && is_user_alive(id))
        len += formatex(menu[len], charsmax(menu) - len, "\r5.\w %L^n", id, "MENU_UNSTUCK")
    else
        len 
+= formatex(menu[len], charsmax(menu) - len, "\d5. %L^n", id, "MENU_UNSTUCK")
    
    
// 6. Help
    len += formatex(menu[len], charsmax(menu) - len, "\r6.\w %L^n^n", id, "MENU_INFO")
    
    
// 7. Choose Team 
    len += formatex(menu[len], charsmax(menu) - len, "\r7.\w %L^n^n", id, "MENU_CHOOSE_TEAM")
    
    
// 9. Admin menu                                                
    if (LibraryExists(LIBRARY_ADMIN_MENU, LibType_Library) && is_user_admin(id))
        len += formatex(menu[len], charsmax(menu) - len, "\r9.\w %L", id, "MENU_ADMIN")
    else
        len 
+= formatex(menu[len], charsmax(menu) - len, "\d9. %L", id, "MENU_ADMIN")
    
    
// 0. Exit
len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\w %L", id, "MENU_EXIT")
                                                                 
                                                     
    
// Fix for AMXX custom menus
set_pdata_int(id, OFFSET_CSMENUCODE, 0)
    show_menu(id, KEYSMENU, menu, -1, "Main Menu")               
}                                                                      

// Main Menu
public menu_main(id, key)
{
    // Player disconnected?
    if (!is_user_connected(id))
        return PLUGIN_HANDLED;
    
    switch 
(key)
    {
        case 0: // Buy Menu
        {
            // Custom buy menus enabled?
            if (LibraryExists(LIBRARY_BUYMENUS, LibType_Library) && (get_pcvar_num(cvar_buy_custom_primary)
            || get_pcvar_num(cvar_buy_custom_secondary) || get_pcvar_num(cvar_buy_custom_grenades)))
            {
                // Check whether the player is able to buy anything
                if (is_user_alive(id))
                    zp_buy_menus_show(id)
                else
                    zp_colored_print
(id, "%L", id, "CANT_BUY_WEAPONS_DEAD")
            }
            else
                zp_colored_print
(id, "%L", id, "CUSTOM_BUY_DISABLED")
        }
        case 1: // Extra Items
        {
            // Items enabled?
            if (LibraryExists(LIBRARY_ITEMS, LibType_Library))
            {
                // Check whether the player is able to buy anything
                if (is_user_alive(id))
                    zp_items_show_menu(id)
                else
                    zp_colored_print
(id, "%L", id, "CANT_BUY_ITEMS_DEAD")
            }
            else
                zp_colored_print
(id, "%L", id, "CMD_NOT_EXTRAS")
        }
        case 2: // Zombie Classes
        {
            if (LibraryExists(LIBRARY_ZOMBIECLASSES, LibType_Library) && zp_class_zombie_get_count() > 1)
                zp_class_zombie_show_menu(id)
            else
                zp_colored_print
(id, "%L", id, "CMD_NOT_ZCLASSES")
        }
        case 3: // Human Classes
        {
            if (LibraryExists(LIBRARY_HUMANCLASSES, LibType_Library) && zp_class_human_get_count() > 1)
                zp_class_human_show_menu(id)
            else
                zp_colored_print
(id, "%L", id, "CMD_NOT_HCLASSES")
        }
        case 4:
        {
            // Check if player is stuck
            if (LibraryExists(LIBRARY_RANDOMSPAWN, LibType_Library) && is_user_alive(id))
            {
                if (is_player_stuck(id))
                {
                    // Move to an initial spawn
                    if (get_pcvar_num(cvar_random_spawning))
                        zp_random_spawn_do(id, true) // random spawn (including CSDM)
                    else
                        zp_random_spawn_do
(id, false) // regular spawn
                }
                else
                    zp_colored_print
(id, "%L", id, "CMD_NOT_STUCK")
            }
            else
                zp_colored_print
(id, "%L", id, "CMD_NOT")
        }
        case 5: // Help Menu
        {
            show_help(id)
        }
        case 6: // Menu override
        {
            flag_unset(g_ChooseTeamOverrideActive, id)
            client_cmd(id, "chooseteam")
        }
        case 8: // Admin Menu
        {
            if (LibraryExists(LIBRARY_ADMIN_MENU, LibType_Library) && is_user_admin(id))
                zp_admin_menu_show(id)
            else
                zp_colored_print
(id, "%L", id, "NO_ADMIN_MENU")
        }
    }
    
    return PLUGIN_HANDLED
;
}

// Help MOTD
show_help(id)
{
    static motd[1024]
    new len
    
    len 
+= formatex(motd[len], charsmax(motd) - len, "%L", id, "MOTD_INFO11", "SG Zombie Mod", ZP_VERSION_STR_LONG, "Reznov") 
    len 
+= formatex(motd[len], charsmax(motd) - len, "%L", id, "MOTD_INFO12")
    
    show_motd
(id, motd)
}

// Check if a player is stuck (credits to VEN)
stock is_player_stuck(id)
{
    static Float:originF[3]
    pev(id, pev_origin, originF)
    
    engfunc
(EngFunc_TraceHull, originF, originF, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0)
    
    if 
(get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
        return true;
    
    return false
;
}
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Связь со мной
Skype [email protected](reznovmy)
Vk: id tut_reznov
Аватара пользователя
Reznov
 
Сообщения: 5
Зарегистрирован: 31 мар 2017, 20:10
Откуда: Volgograd
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели

Re: Ошибка в переводе mainmenu z.p 5.0.8a

Сообщение NEoMASTERR » 31 мар 2017, 20:59

Код: Выделить всё
static menu[250

Размер массива увеличьте
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Ошибка в переводе mainmenu z.p 5.0.8a  [Решено]

Сообщение Reznov » 31 мар 2017, 21:00

NEoMASTERR писал(а):
Код: Выделить всё
static menu[250]

Размер массива увеличьте


А на сколько увеличивать? :zzz:

P.s Увеличил массив на 500, заработало :yahoo:
Связь со мной
Skype [email protected](reznovmy)
Vk: id tut_reznov
Аватара пользователя
Reznov
 
Сообщения: 5
Зарегистрирован: 31 мар 2017, 20:10
Откуда: Volgograd
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели

Re: Ошибка в переводе mainmenu z.p 5.0.8a

Сообщение nemec21 » 31 мар 2017, 21:10

Reznov, на 10 хотябы

Добавлено спустя 1 минуту 57 секунд:
вся кодировка ланг файла нарушена, у меня так отображается при открытии
MENU_EXIT = Выход

попробуй скачай оригинал и вставь
Аватара пользователя
nemec21
 
Сообщения: 799
Зарегистрирован: 07 фев 2016, 17:08
Откуда: Беларусь
Благодарил (а): 212 раз.
Поблагодарили: 44 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter-Strike 1.6

Re: Ошибка в переводе mainmenu z.p 5.0.8a

Сообщение Reznov » 31 мар 2017, 21:36

Всем спасибо за помощь, помогло увеличение массива :-)
Связь со мной
Skype [email protected](reznovmy)
Vk: id tut_reznov
Аватара пользователя
Reznov
 
Сообщения: 5
Зарегистрирован: 31 мар 2017, 20:10
Откуда: Volgograd
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 11