Envanter Görüntüleme Aç/Kapat Oyun Seçeneklerine [C++, PYTHON ve LUA]

Whistle

Luntar
Kurucu
Kurumsal Üye
Geliştirici
Yardımsever Üye
Mesaj
11.815
Çözümler
560
Beğeni
12.876
Puan
5.915
Ticaret Puanı
2
Server/game/src/char.cpp açılır ve aratılır;
C++:
Genişlet Daralt Kopyala
void CHARACTER::SetBlockMode(BYTE bFlag)
Kod blogunu { ..code.. }; şu kodlarla değiştir:
C++:
Genişlet Daralt Kopyala
void CHARACTER::SetBlockMode(BYTE bFlag)
{
    m_pointsInstant.bBlockMode = bFlag;

    ChatPacket(CHAT_TYPE_COMMAND, "setblockmode %d", m_pointsInstant.bBlockMode);

    SetQuestFlag("game_option.block_exchange", bFlag & BLOCK_EXCHANGE ? 1 : 0);
    SetQuestFlag("game_option.block_party_invite", bFlag & BLOCK_PARTY_INVITE ? 1 : 0);
    SetQuestFlag("game_option.block_guild_invite", bFlag & BLOCK_GUILD_INVITE ? 1 : 0);
    SetQuestFlag("game_option.block_whisper", bFlag & BLOCK_WHISPER ? 1 : 0);
    SetQuestFlag("game_option.block_messenger_invite", bFlag & BLOCK_MESSENGER_INVITE ? 1 : 0);
    SetQuestFlag("game_option.block_party_request", bFlag & BLOCK_PARTY_REQUEST ? 1 : 0);
    SetQuestFlag("game_option.block_view_equipment", bFlag & BLOCK_VIEW_EQUIPMENT ? 1 : 0);
}

Server/game/src/char.h açılır ve aratılır;
C:
Genişlet Daralt Kopyala
enum EBlockAction
Hepsini şu kodlarla değiştir:
C:
Genişlet Daralt Kopyala
enum EBlockAction
{
    BLOCK_EXCHANGE        = (1 << 0),
    BLOCK_PARTY_INVITE        = (1 << 1),
    BLOCK_GUILD_INVITE        = (1 << 2),
    BLOCK_WHISPER        = (1 << 3),
    BLOCK_MESSENGER_INVITE    = (1 << 4),
    BLOCK_PARTY_REQUEST        = (1 << 5),
    BLOCK_VIEW_EQUIPMENT    = (1 << 6),

};

Server/game/src/cmd_general.cpp açılır ve aratılır;
C++:
Genişlet Daralt Kopyala
ACMD(do_view_equip)
Altında biryerlerde şu kod olacak;
C++:
Genişlet Daralt Kopyala
if (!tch->IsPC())
            return;
Altına şu kod eklenir:
C++:
Genişlet Daralt Kopyala
if (tch->IsBlockMode(BLOCK_VIEW_EQUIPMENT))  
{
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ekipman konusmasi"));
       return;
}
Ayrıca orada;
C++:
Genişlet Daralt Kopyala
if (ch->GetGMLevel() <= GM_PLAYER)
       return;
böyle bir kod varsa silin çünkü sadece gm oyuncuların ekipmanlarına bakması için yapılmış bir engelleme
Burayı görüntülemek için üye girişi yapmalı veya kayıt olmalısınız.


Sıra Clientsrc'ye geldi.
Client/UserInterface/packet.h açılır ve aratılır;
C:
Genişlet Daralt Kopyala
enum EBlockAction
Hepsini şu kodlarla değiştir:
C:
Genişlet Daralt Kopyala
enum EBlockAction
{
   BLOCK_EXCHANGE              = (1 << 0),
   BLOCK_PARTY_INVITE          = (1 << 1),
   BLOCK_GUILD_INVITE          = (1 << 2),
   BLOCK_WHISPER               = (1 << 3),
   BLOCK_MESSENGER_INVITE      = (1 << 4),
   BLOCK_PARTY_REQUEST         = (1 << 5),
   BLOCK_VIEW_EQUIPMENT        = (1 << 6),
};

Client/UserInterface/PythonPlayerModule.cpp açılır ve aratılır;
C++:
Genişlet Daralt Kopyala
// Block Mode
Kodları şu kodlarla değiştir:
C++:
Genişlet Daralt Kopyala
   PyModule_AddIntConstant(poModule, "BLOCK_EXCHANGE",                BLOCK_EXCHANGE);
   PyModule_AddIntConstant(poModule, "BLOCK_PARTY",                BLOCK_PARTY_INVITE);
   PyModule_AddIntConstant(poModule, "BLOCK_GUILD",                BLOCK_GUILD_INVITE);
   PyModule_AddIntConstant(poModule, "BLOCK_WHISPER",                BLOCK_WHISPER);
   PyModule_AddIntConstant(poModule, "BLOCK_FRIEND",                BLOCK_MESSENGER_INVITE);
   PyModule_AddIntConstant(poModule, "BLOCK_PARTY_REQUEST",        BLOCK_PARTY_REQUEST);
   PyModule_AddIntConstant(poModule, "BLOCK_VIEW_EQUIPMENT",        BLOCK_VIEW_EQUIPMENT);
Client src bitti.

Sıra pythona geldi.
root/uitarget.py açılır ve aratılır;
Python:
Genişlet Daralt Kopyala
self.buttonDict[localeInfo.TARGET_BUTTON_EXIT_OBSERVER].SAFE_SetEvent(self.__OnExitObserver)
Altına şu kod eklenir:
Python:
Genişlet Daralt Kopyala
self.buttonDict[localeInfo.TARGET_BUTTON_VIEW_EQUIPMENT].SAFE_SetEvent(self.__OnViewEquipment)

root/uitarget.py ilk başındaki;
Python:
Genişlet Daralt Kopyala
BUTTON_NAME_LIST = (
Şu kodu aralarına ekleyin:
Python:
Genişlet Daralt Kopyala
localeInfo.TARGET_BUTTON_VIEW_EQUIPMENT,

Aratın;
Python:
Genişlet Daralt Kopyala
def __OnExitObserver(self):
       net.SendChatPacket("/observer_exit")
Altına şu kod eklenir:
Python:
Genişlet Daralt Kopyala
def __OnViewEquipment(self):
       net.SendChatPacket("/view_equip " + str(self.vid))

Aratın;
Python:
Genişlet Daralt Kopyala
def ShowDefaultButton(self):
Hepsini şu kodlarla değiştir:
Python:
Genişlet Daralt Kopyala
def ShowDefaultButton(self):

       self.isShowButton = TRUE
       self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_WHISPER])
       self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_EXCHANGE])
       self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_FIGHT])
       self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_VIEW_EQUIPMENT])
       self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_EMOTION_ALLOW])
       for button in self.showingButtonList:
           button.Show()

root/uioption.py açılır ve aratılır;
Python:
Genişlet Daralt Kopyala
self.blockButtonList[4].SetToggleUpEvent(self.__OnClickBlockFriendButton)
Altına şu kodlar eklenir;
Python:
Genişlet Daralt Kopyala
self.blockButtonList[5].SetToggleDownEvent(self.__OnClickBlockViewEquipmentButton)
Python:
Genişlet Daralt Kopyala
self.blockButtonList[4].SetToggleDownEvent(self.__OnClickBlockFriendButton)
Python:
Genişlet Daralt Kopyala
self.blockButtonList[5].SetToggleDownEvent(self.__OnClickBlockViewEquipmentButton)
Python:
Genişlet Daralt Kopyala
self.blockButtonList.append(GetObject("block_friend_button"))
Altına şu kod eklenir;
Kod:
Genişlet Daralt Kopyala
self.blockButtonList.append(GetObject("block_view_equipment_button"))

root/uigameoption.py açılır ve aratılır;
Python:
Genişlet Daralt Kopyala
def __OnClickBlockPartyButton(self):
       self.RefreshBlock()
       global blockMode
       net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_PARTY))
Altına şu kod eklenir:
Python:
Genişlet Daralt Kopyala
def __OnClickBlockViewEquipmentButton(self):
       self.RefreshBlock()
       global blockMode
       net.SendChatPacket("/setblockmode " + str(blockMode ^ player.BLOCK_VIEW_EQUIPMENT))

Aratın;
Python:
Genişlet Daralt Kopyala
self.blockButtonList[5].SetToggleUpEvent(self.__OnClickBlockPartyRequest)
Altına şu kod eklenir:
Python:
Genişlet Daralt Kopyala
self.blockButtonList[6].SetToggleUpEvent(self.__OnClickBlockViewEquipmentButton)

Tekrar Aratın;
Python:
Genişlet Daralt Kopyala
self.blockButtonList[5].SetToggleDownEvent(self.__OnClickBlockPartyRequest)
Altına şu kod eklenir:
Python:
Genişlet Daralt Kopyala
self.blockButtonList[6].SetToggleDownEvent(self.__OnClickBlockViewEquipmentButton)

Aratın;
Python:
Genişlet Daralt Kopyala
self.blockButtonList.append(GetObject("block_party_request_button"))
Altına şu kod eklenir:
Python:
Genişlet Daralt Kopyala
self.blockButtonList.append(GetObject("block_view_equipment_button"))
ve root bölümüde bitti

sıra uiscript'e geldi
uiscript/gameoptiondialog.py açılır ve aratılır;
Python:
Genişlet Daralt Kopyala
"name" : "block_party_request_button",
Altına şu kod eklenir:
Not: Kodların aralarını x y ayarıyla düzenlemeniz gerek. Çünkü iç içe girerler her butonun mesefasi 25'dir;
Python:
Genişlet Daralt Kopyala
{                    "name" : "block_view_equipment_button",
                    "type" : "toggle_button",


                    "x" : LINE_DATA_X+MIDDLE_BUTTON_WIDTH*0,
                    "y" : 165,


                    "text" : "Profil",


                    "default_image" : ROOT_PATH + "middle_button_01.sub",
                    "over_image" : ROOT_PATH + "middle_button_02.sub",
                    "down_image" : ROOT_PATH + "middle_button_03.sub",
                },
c++ ve python bölümü bitti

sıra questlere (lua) geldi
game_option.quest açılır;
Aralarına biryerine ekleyin:
Lua (Quest):
Genişlet Daralt Kopyala
if pc.getqf("block_view_equipment") == 1 then
            msg = msg.."Profil "
            val = val + 64
            end

Locale_stringe ekleyin;
Kod:
Genişlet Daralt Kopyala
"ekipman konusmasi";
"|cffFFC125Karşınızdaki oyuncu profil görüntülemeyi blokladı.";

Sistemin çalıştığına dair kanıtlar;
Envanter Görüntüleme Aç-Kapat Oyun Seçeneklerine[C++, PYTHON ve LUA]-1.jpg


Envanter Görüntüleme Aç-Kapat Oyun Seçeneklerine[C++, PYTHON ve LUA]-2.jpg
 
Son düzenleme:
Güncelleme;
Arkadaşlar bu akşam Casro2 için yeni bir engelleme seçeneği ekliyordum. Bu sistemde olan bir hata gözüme çarptı. Şimdi size bu sorunu çözmeyi anlatacağım.

Filesinide bulunan game_option.quest dosyasındaki;
Lua (Quest):
Genişlet Daralt Kopyala
if pc.getqf("block_view_equipment") == 1 then
            msg = msg.."Profil "
            val = val + 6
            end

kodu şu şekilde değiştirin.
Lua (Quest):
Genişlet Daralt Kopyala
if pc.getqf("block_view_equipment") == 1 then
            msg = msg.."Profil "
            val = val + 64
            end
 
Son düzenleme:
Güncelleme;
Arkadaşlar bu akşam Casro2 için yeni bir engelleme seçeneği ekliyordum. Bu sistemde olan bir hata gözüme çarptı. Şimdi size bu sorunu çözmeyi anlatacağım.

Filesinide bulunan game_option.quest dosyasındaki;
Kod:
Genişlet Daralt Kopyala
if pc.getqf("block_view_equipment") == 1 then
            msg = msg.."Profil "
            val = val + 6
            end

kodu şu şekilde değiştirin.
Kod:
Genişlet Daralt Kopyala
if pc.getqf("block_view_equipment") == 1 then
            msg = msg.."Profil "
            val = val + 64
            end

hocam bu game_option.quest nedir tam anlayamadım bende böyle bişey yok.
 
O zaman geri ekle. ;) Packetlerle ilgili sorun var.
 
çalışmıyor herneyse sildim ekleyecekler boşa vakit kaybetmeyin benim gibi iyi geceler.
 
çalışmıyor herneyse sildim ekleyecekler boşa vakit kaybetmeyin benim gibi iyi geceler.
Genelde bir şeyi paylaşmadan önce kendim kullanıp test ederim. Ondan sonra paylaşırım.
Bizzat çalışıyor. Ekleyemiyorsanız forumda propaganda yapma hakkına sahip değilsiniz. Bundan sonra bu konu altından size yardımda bulunmayacağım..
 
Son düzenleme:
Konu içeriği yeni kod editörüne uygun bir şekilde güncellenmiştir. Artık kodları daha rahat okuyabileceksiniz. ;)
 
Üst