Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Новичкам (http://mangos.ytdb.ru/forumdisplay.php?f=40)
-   -   gmlevel 4 (http://mangos.ytdb.ru/showthread.php?t=4710)

Taumer 16.06.2011 18:55

Как добавить еще 1 gmlevel?
 
Доброго времени суток!

Чтобы добавить еще 1 gmlevel (например Developer) нужно:
1)В Common.h добавить строчку SEC_DEV = 4
PHP код:

enum AccountTypes
{
    
SEC_PLAYER         0,
    
SEC_MODERATOR      1,
    
SEC_GAMEMASTER     2,
    
SEC_ADMINISTRATOR  3,
    
SEC_DEV            4,
    
SEC_CONSOLE        5
}; 

2)В файле WorldSocket.cpp заменить
PHP код:

    if(security SEC_ADMINISTRATOR)                        // prevent invalid security settings in DB
        
security SEC_ADMINISTRATOR

на
PHP код:

    if(security >= SEC_CONSOLE)                        // prevent invalid security settings in DB
        
security SEC_DEV

3)(необязательно)В Level3.cpp заменить
PHP код:

    if ( gm SEC_PLAYER || gm SEC_ADMINISTRATOR )
    {
        
SendSysMessage(LANG_BAD_VALUE);
        
SetSentErrorMessage(true);
        return 
false;
    } 

на
PHP код:

    if ( gm SEC_PLAYER || gm >= SEC_CONSOLE )
    {
        
SendSysMessage(LANG_BAD_VALUE);
        
SetSentErrorMessage(true);
        return 
false;
    } 

Если вы выполните пункт 3, то вы сможете менять gmlevel командой
Цитата:

acc set gmlevel [#accountID|$accountName] 4
в консоли.

Lordronn 16.06.2011 19:22

А зачем? Что от этого изменится???
ГМлвл нужен для доступа к коммандам, т.к кол-во доступных комманд зависит от ГМ лвла. А т.к гм комманд для гмлвл 4 нету, то и сам лвл не нужен

Taumer 16.06.2011 19:35

Цитата:

Сообщение от Lordronn (Сообщение 23440)
А зачем? Что от этого изменится???
ГМлвл нужен для доступа к коммандам, т.к кол-во доступных комманд зависит от ГМ лвла. А т.к гм комманд для гмлвл 4 нету, то и сам лвл не нужен

Я просто хочу научиться, а мозгов понять где и что не всегда хватает.

MaS0n 16.06.2011 20:15

Найди код команды .acc, если уж разобрался с добавлением уровня, здесь тоже разберешься

Намек : ChatHandler.cpp, Level0.cpp

Vladimir 17.06.2011 00:24

Цитата:

if ( gm < SEC_PLAYER || gm > SEC_ADMINISTRATOR )
Конечно в коде лучше было бы >= SEC_CONSOLE наверное...

Taumer 17.06.2011 08:20

Цитата:

Сообщение от MaS0n (Сообщение 23445)
Найди код команды .acc, если уж разобрался с добавлением уровня, здесь тоже разберешься

Намек : ChatHandler.cpp, Level0.cpp

Нашел, но он мне не помог.

Просматривая WorldSocket.cpp, я нашел такие строчки:
Цитата:

if(security > SEC_ADMINISTRATOR) // prevent invalid security settings in DB
security = SEC_ADMINISTRATOR;
и заменил на
PHP код:

    if(security >= SEC_CONSOLE)                        // prevent invalid security settings in DB
        
security SEC_DEV

Всем спасибо! :thank_you:

P.S. Первый пост обновил.


Текущее время: 19:56. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS