Fethi Polat 1
Fethi Polat
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Best Studio 1
Best Studio
Agora Metin2 1
Agora Metin2
raderde 1
raderde
Cannn6161 1
Cannn6161
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Mt2Hizmet 1
Mt2Hizmet
melankolıa18 1
melankolıa18
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

GameMaster Yetki Kısıtlaması

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Teşekkürler.
 
Konu için teşekkürler :)
 
GM'lerin oyuncu ile ticaret yapmasını engeller.
Test server'da herkes gm olduğu için ticareti engellememesi için test server'da devre dışı olur.

C++:
// Service.h AÇILIR

// Eklenir.


#define ENABLE_GAMEMASTER_RESTRICTION

----------------------------------------------------------------------------------------

// exchange.cpp AÇILIR

// Aratılır:

if (victim->IsBlockMode(BLOCK_EXCHANGE))


// Eklenir:

#ifdef ENABLE_GAMEMASTER_RESTRICTION
    if (!IsGM())
    {
        if (!test_server && victim->GetGMLevel() != GM_PLAYER)
            {
                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Game Master ile ticaret yapamazsınız."));
                return false;
            }
    }

    if (!test_server && IsGM())
    {
        std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT * FROM gamemaster_restriction"));
        SQLResult * pRes = pMsg->Get();
        if (pRes->uiNumRows)
        {
            MYSQL_ROW row;
            while ((row = mysql_fetch_row(pRes->pSQLResult)))
            {
                DWORD datos = 0;
                str_to_number(datos, row[0]);
                if (GetPlayerID()==datos)
                {
                    ChatPacket(CHAT_TYPE_INFO, "Bunu yapmak için izniniz yok.");
                    return false;
                }
            }
        }
    }

#endif


----------------------------------------------------------------------------------------


// char_item.cpp AÇILIR

// Aratılır:


bool CHARACTER::DropItem(TItemPos Cell, BYTE bCount)


// Eklenir:



#ifdef ENABLE_GAMEMASTER_RESTRICTION
    if (!test_server && IsGM())
    {
        std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT * FROM gamemaster_restriction"));
        SQLResult * pRes = pMsg->Get();
        if (pRes->uiNumRows)
        {
            MYSQL_ROW row;
            while ((row = mysql_fetch_row(pRes->pSQLResult)))
            {
                DWORD datos = 0;
                str_to_number(datos, row[0]);
                if (GetPlayerID()==datos)
                {
                    ChatPacket(CHAT_TYPE_INFO, "Bunu yapmak için izniniz yok");
                    return false;
                }
            }
        }
    }
#endif




----------------------------------------------------------------------------------------


// cmd_general.cpp AÇILIR

// Aratılır


ACMD(do_click_safebox)


// Eklenir:



#ifdef ENABLE_GAMEMASTER_RESTRICTION
    if (!test_server && ch->IsGM())
    {
        std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT * FROM gamemaster_restriction"));
        SQLResult * pRes = pMsg->Get();
        if (pRes->uiNumRows)
        {
            MYSQL_ROW row;
            while ((row = mysql_fetch_row(pRes->pSQLResult)))
            {
                DWORD datos = 0;
                str_to_number(datos, row[0]);
                if (ch->GetPlayerID()==datos)
                {
                    ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapmak için izniniz yok");
                    return;
                }
            }
        }
    }
#endif


----------------------------------------------------------------------------------------


// Player.sql'e eklenir:


SET NAMES utf8mb4;

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------

-- Table structure for gamemaster_restriction

-- ----------------------------

DROP TABLE IF EXISTS `gamemaster_restriction`;

CREATE TABLE `gamemaster_restriction` (

`gamemaster` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',

PRIMARY KEY (`gamemaster`) USING BTREE

) ENGINE = MyISAM CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;
süpersin
 
Bunun için sql'dan kayıt yaptırmayı saçma buldum confige bağlı bir şekilde yapabilirsiniz.
Paylaşım için teşekkürler.
Sql de kayit tutmuyor ki gm yetkisi verir gibi benim dedigimdede gm ye yetki veriyorsub
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst