- Katılım
- 3 Tem 2019
- Konular
- 8
- Mesajlar
- 101
- Online süresi
- 44318s
- Reaksiyon Skoru
- 20
- Altın Konu
- 0
- Başarım Puanı
- 60
- Yaş
- 23
- TM Yaşı
- 6 Yıl 9 Ay 22 Gün
- MmoLira
- 172
- DevLira
- 0
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Paylaşım için teşekkürler.
- Katılım
- 27 Nis 2017
- Konular
- 91
- Mesajlar
- 2,386
- Online süresi
- 17g 11973s
- Reaksiyon Skoru
- 1,571
- Altın Konu
- 2
- Başarım Puanı
- 248
- TM Yaşı
- 8 Yıl 12 Ay
- MmoLira
- 439
- DevLira
- 13
Rica ederim.Paylaşım için teşekkürler.
- Katılım
- 15 Ocak 2016
- Konular
- 108
- Mesajlar
- 1,264
- Online süresi
- 27g 79082s
- Reaksiyon Skoru
- 296
- Altın Konu
- 25
- Başarım Puanı
- 189
- TM Yaşı
- 10 Yıl 3 Ay 7 Gün
- MmoLira
- 3,134
- DevLira
- 9
Teşekkürler.
- Katılım
- 27 Nis 2017
- Konular
- 91
- Mesajlar
- 2,386
- Online süresi
- 17g 11973s
- Reaksiyon Skoru
- 1,571
- Altın Konu
- 2
- Başarım Puanı
- 248
- TM Yaşı
- 8 Yıl 12 Ay
- MmoLira
- 439
- DevLira
- 13
Rica ederim.Teşekkürler.
- Katılım
- 1 May 2016
- Konular
- 64
- Mesajlar
- 327
- Online süresi
- 1ay 16g
- Reaksiyon Skoru
- 173
- Altın Konu
- 1
- Başarım Puanı
- 126
- TM Yaşı
- 9 Yıl 11 Ay 25 Gün
- MmoLira
- 6,140
- DevLira
- 21
Te
TeşekkürlerMerhaba arkadaşlar.
Dün paylaşılan filesten söktüğüm bu sistemi sizlerle paylaşmak istedim.
Bir teşekkürü çok görmeyip forumda paylaşım yapan kişileri daha fazla paylaşıma teşvik edebilirsiniz.
common\CommonDefines.h://müsait bir yere ekle; #define ENABLE_DICE_SYSTEM
common\length.h://arat; CHAT_TYPE_MONARCH_NOTICE, //altına ekle; #ifdef ENABLE_DICE_SYSTEM CHAT_TYPE_DICE_INFO, #endif
game\src\char_battle.cpp://arat; if (CBattleArena::instance().IsBattleArenaMap(pkAttacker->GetMapIndex()) == false) { item->SetOwnership(pkAttacker); } //değiştir; if (CBattleArena::instance().IsBattleArenaMap(pkAttacker->GetMapIndex()) == false) { #ifdef ENABLE_DICE_SYSTEM if (pkAttacker->GetParty()) { FPartyDropDiceRoll f(item, pkAttacker); f.Process(this); } else item->SetOwnership(pkAttacker); #else item->SetOwnership(pkAttacker); #endif } //tekrar arat; if (CBattleArena::instance().IsBattleArenaMap(ch->GetMapIndex()) == false) { item->SetOwnership(ch); } //değiştir; if (CBattleArena::instance().IsBattleArenaMap(ch->GetMapIndex()) == false) { #ifdef ENABLE_DICE_SYSTEM if (ch->GetParty()) { FPartyDropDiceRoll f(item, ch); f.Process(this); } else item->SetOwnership(ch); #else item->SetOwnership(ch); #endif }
game\src\cmd_general.cpp://arat; if (ch->GetParty()) ch->GetParty()->ChatPacketToAllMember(CHAT_TYPE_INFO, LC_TEXT("%s님이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), ch->GetName(), n, start, end); else ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("당신이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), n, start, end); //değiştir; #ifdef ENABLE_DICE_SYSTEM if (ch->GetParty()) ch->GetParty()->ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, LC_TEXT("%s님이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), ch->GetName(), n, start, end); else ch->ChatPacket(CHAT_TYPE_DICE_INFO, LC_TEXT("당신이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), n, start, end); #else if (ch->GetParty()) ch->GetParty()->ChatPacketToAllMember(CHAT_TYPE_INFO, LC_TEXT("%s님이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), ch->GetName(), n, start, end); else ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("당신이 주사위를 굴려 %d가 나왔습니다. (%d-%d)"), n, start, end); #endif
game\src\party.h://arat; inline int CParty::ComputePartyBonusDefenseGrade() //fonksiyonun altına ekle; #ifdef ENABLE_DICE_SYSTEM #include "item.h" struct FPartyDropDiceRoll { const LPITEM m_itemDrop; LPCHARACTER m_itemOwner; int m_lastNumber; FPartyDropDiceRoll(const LPITEM itemDrop, LPCHARACTER itemOwner) : m_itemDrop(itemDrop), m_itemOwner(itemOwner), m_lastNumber(0) { }; void Process(const LPCHARACTER mobVictim) { if ((!mobVictim || (mobVictim->GetMobRank() >= MOB_RANK_BOSS && mobVictim->GetMobRank() <= MOB_RANK_KING)) && m_itemOwner->GetParty() && m_itemOwner->GetParty()->GetNearMemberCount() > 1) { LPPARTY pParty = m_itemOwner->GetParty(); pParty->ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, LC_TEXT("*** Rolling for the following item: %16s ***"), m_itemDrop->GetName()); pParty->ForEachNearMember(*this); if (m_itemOwner) { m_itemDrop->SetOwnership(m_itemOwner); pParty->ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, LC_TEXT("*** Rolling of %s: %16s ***"), m_itemDrop->GetName(), m_itemOwner->GetName()); } } else m_itemDrop->SetOwnership(m_itemOwner); } LPCHARACTER GetItemOwner() { return m_itemOwner; } const LPITEM GetItemDrop() { return m_itemDrop; } void operator () (LPCHARACTER ch) { if (!ch) return; LPPARTY pParty = ch->GetParty(); if (!pParty) return; while (true) { int pickedNumber = number(10000, 99999); if (pickedNumber > m_lastNumber) { m_lastNumber = pickedNumber; m_itemOwner = ch; } else if (pickedNumber == m_lastNumber) { continue; } else // if (pickedNumber < m_lastNumber) { } pParty->ChatPacketToAllMember(CHAT_TYPE_DICE_INFO, LC_TEXT("*** -> %16s - Dice score: %05d ***"), ch->GetName(), pickedNumber); break; } } }; #endif
game\src\questlua_game.cpp://include'lerin olduğu bölüme ekle; #ifdef ENABLE_DICE_SYSTEM #include "party.h" #endif //arat; ALUA(game_drop_item_with_ownership) //fonksiyondan sonra ekle; #ifdef ENABLE_DICE_SYSTEM ALUA(game_drop_item_with_ownership_and_dice) { LPITEM item = NULL; switch (lua_gettop(L)) { case 1: item = ITEM_MANAGER::instance().CreateItem((DWORD)lua_tonumber(L, 1)); break; case 2: case 3: item = ITEM_MANAGER::instance().CreateItem((DWORD)lua_tonumber(L, 1), (int)lua_tonumber(L, 2)); break; default: return 0; } if (item == NULL) { return 0; } LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (ch->GetParty()) { FPartyDropDiceRoll f(item, ch); f.Process(NULL); } if (lua_isnumber(L, 3)) { int sec = (int)lua_tonumber(L, 3); if (sec <= 0) { item->SetOwnership(ch); } else { item->SetOwnership(ch, sec); } } else item->SetOwnership(ch); PIXEL_POSITION pos; pos.x = ch->GetX() + number(-200, 200); pos.y = ch->GetY() + number(-200, 200); item->AddToGround(ch->GetMapIndex(), pos); item->StartDestroyEvent(); return 0; } #endif //tekrar arat; { "drop_item_with_ownership", game_drop_item_with_ownership }, //altına ekle; #ifdef ENABLE_DICE_SYSTEM { "drop_item_with_ownership_and_dice", game_drop_item_with_ownership_and_dice }, #endif
game\src\questlua_pc.cpp://include'lerin olduğu bölüme ekle; #ifdef ENABLE_DICE_SYSTEM #include "party.h" #endif //arat; ALUA(pc_give_or_drop_item) //fonksiyondan sonra ekle; #ifdef ENABLE_DICE_SYSTEM ALUA(pc_give_or_drop_item_with_dice) { if (!lua_isstring(L, 1) && !lua_isnumber(L, 1)) { sys_err("QUEST Make item call error : wrong argument"); lua_pushnumber(L, 0); return 1; } DWORD dwVnum; if (lua_isnumber(L, 1)) { dwVnum = (int)lua_tonumber(L, 1); } else if (!ITEM_MANAGER::instance().GetVnum(lua_tostring(L, 1), dwVnum)) { sys_err("QUEST Make item call error : wrong item name : %s", lua_tostring(L, 1)); lua_pushnumber(L, 0); return 1; } int icount = 1; if (lua_isnumber(L, 2) && lua_tonumber(L, 2) > 0) { icount = (int)rint(lua_tonumber(L, 2)); if (icount <= 0) { sys_err("QUEST Make item call error : wrong item count : %g", lua_tonumber(L, 2)); lua_pushnumber(L, 0); return 1; } } LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); LPITEM item = ITEM_MANAGER::instance().CreateItem(dwVnum, icount); if (ch->GetParty()) { FPartyDropDiceRoll f(item, ch); f.Process(NULL); f.GetItemOwner()->AutoGiveItem(item); } else ch->AutoGiveItem(item); sys_log(0, "QUEST [REWARD] item %s to %s", lua_tostring(L, 1), ch->GetName()); LogManager::instance().QuestRewardLog(CQuestManager::instance().GetCurrentPC()->GetCurrentQuestName().c_str(), ch->GetPlayerID(), ch->GetLevel(), dwVnum, icount); lua_pushnumber(L, (item) ? item->GetID() : 0); return 1; } #endif //tekrar arat; { "give_item2", pc_give_or_drop_item }, //altına ekle; #ifdef ENABLE_DICE_SYSTEM { "give_item2_with_dice", pc_give_or_drop_item_with_dice }, #endif
UserInterface\Locale_inc.h://müsait bir yere ekle; #define ENABLE_DICE_SYSTEM
UserInterface\Packet.h://arat; CHAT_TYPE_MONARCH_NOTICE, //altına ekle; #ifdef ENABLE_DICE_SYSTEM CHAT_TYPE_DICE_INFO, #endif
UserInterface\PythonApplicationModule.cpp://arat; #ifdef ENABLE_COSTUME_SYSTEM PyModule_AddIntConstant(poModule, "ENABLE_COSTUME_SYSTEM", 1); #else PyModule_AddIntConstant(poModule, "ENABLE_COSTUME_SYSTEM", 0); #endif //altına ekle; #ifdef ENABLE_DICE_SYSTEM PyModule_AddIntConstant(poModule, "ENABLE_DICE_SYSTEM", 1); #else PyModule_AddIntConstant(poModule, "ENABLE_DICE_SYSTEM", 0); #endif
UserInterface\PythonChat.cpp://arat; m_akD3DXClrChat[CHAT_TYPE_MONARCH_NOTICE] = D3DXCOLOR(1.0f, 0.902f, 0.730f, 1.0f); //altına ekle; #ifdef ENABLE_DICE_SYSTEM m_akD3DXClrChat[CHAT_TYPE_DICE_INFO] = D3DXCOLOR(0xFFcc00cc); #endif
UserInterface\PythonChatModule.cpp://arat; PyModule_AddIntConstant(poModule, "CHAT_TYPE_MONARCH_NOTICE", CHAT_TYPE_MONARCH_NOTICE); //altına ekle; #ifdef ENABLE_DICE_SYSTEM PyModule_AddIntConstant(poModule, "CHAT_TYPE_DICE_INFO", CHAT_TYPE_DICE_INFO); #endif
UserInterface\PythonNetworkStreamPhaseGame.cpp://arat; case CHAT_TYPE_BIG_NOTICE: //altına ekle; #ifdef ENABLE_DICE_SYSTEM case CHAT_TYPE_DICE_INFO: #endif
root\uichat.py:#arat; chat.CHAT_TYPE_WHISPER : colorInfo.CHAT_RGB_WHISPER, } #altına ekle; if app.ENABLE_DICE_SYSTEM: CHAT_COLOR_DICT.update({chat.CHAT_TYPE_DICE_INFO : colorInfo.CHAT_RGB_DICE_INFO,}) #tekrar arat; chat.CHAT_TYPE_NOTICE, ] #altına ekle; if app.ENABLE_DICE_SYSTEM: CHAT_MODE_NAME.append(localeInfo.CHAT_DICE_INFO) CHAT_MODE_INDEX.append(chat.CHAT_TYPE_DICE_INFO)
quest_functions://arat; game.drop_item_with_ownership //altına ekle; game.drop_item_with_ownership_and_dice //tekrar arat; pc.give_item2_select //altına ekle; pc.give_item2_with_dice
Ekte verdiğim dosyanın içindekileri locale_string.txt'nize geçirmeyi unutmayın.
İyi forumlar.
Kanıt;
![]()
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)
Benzer konular
- Cevaplar
- 65
- Görüntüleme
- 12K
Altın Konu
Rüya Ruhu Sistemi
- Cevaplar
- 69
- Görüntüleme
- 12K
- Cevaplar
- 7
- Görüntüleme
- 2K
- Cevaplar
- 22
- Görüntüleme
- 5K
- Cevaplar
- 20
- Görüntüleme
- 5K




