onur akbaş 1
onur akbaş
IronTalonX 1
IronTalonX
D 1
delimuratt
berzahx 1
berzahx
PrimeAC 1
PrimeAC
DEVLOPER 1
DEVLOPER
ShadowFon 1
ShadowFon
mavzermete 1
mavzermete
romegames 1
romegames
InfernoShade 1
InfernoShade
Fethi Polat 1
Fethi Polat
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

GameMaster Yetki Kısıtlaması

bList

The One and Only
Telefon Numarası Onaylanmış Üye
Fahri Üye
TM Üye
Katılım
18 Ara 2011
Konular
338
Mesajlar
2,687
Çözüm
176
Online süresi
2mo 26d
Reaksiyon Skoru
1,051
Altın Konu
1
TM Yaşı
14 Yıl 6 Ay 1 Gün
Başarım Puanı
302
MmoLira
4,927
DevLira
30
Ticaret - 100%
1   0   0

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

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;
 

En Çok Reaksiyon Alan Mesajlar

m2globalin sourcede gmallow diye bişey yapmisler ona bakin

C++:
enum EGMAllowFlags
{
    GM_ALLOW_EXCHANGE_TO_GM = 1 << 0,
    GM_ALLOW_EXCHANGE_TO_PLAYER = 1 << 1,
    GM_ALLOW_EXCHANGE_ANTIGIVE = 1 << 2,
    GM_ALLOW_BUY_PRIVATE_ITEM = 1 << 3,
    GM_ALLOW_CREATE_PRIVATE_SHOP = 1 << 4,
    GM_ALLOW_USE_SAFEBOX = 1 << 5,
    GM_ALLOW_CREATE_PLAYER = 1 << 6,
    GM_ALLOW_DELETE_PLAYER = 1 << 7,
    GM_ALLOW_MODIFY_OTHERS = 1 << 8
};
m2globalin sourcede gmallow diye bişey yapmisler ona bakin

C++:
enum EGMAllowFlags
{
    GM_ALLOW_EXCHANGE_TO_GM = 1 << 0,
    GM_ALLOW_EXCHANGE_TO_PLAYER = 1 << 1,
    GM_ALLOW_EXCHANGE_ANTIGIVE = 1 << 2,
    GM_ALLOW_BUY_PRIVATE_ITEM = 1 << 3,
    GM_ALLOW_CREATE_PRIVATE_SHOP = 1 << 4,
    GM_ALLOW_USE_SAFEBOX = 1 << 5,
    GM_ALLOW_CREATE_PLAYER = 1 << 6,
    GM_ALLOW_DELETE_PLAYER = 1 << 7,
    GM_ALLOW_MODIFY_OTHERS = 1 << 8
};
 
Paylaşım için teşekkürler
 
Paylaşım için teşekkürler :)
 
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.
 

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

Geri
Üst