romegames 1
romegames
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Bvural41 1
Bvural41
NovaLst 1
NovaLst
bikral 1
bikral
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com
Kaynak ikonu

## TR TİPİ ZAR ATMA SİSTEMİ ## GERİ DÖNÜŞ ŞEREFİNE ## 1

indirmek için izniniz yok
Merhaba 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.

[CODE lang="cpp" title="common\CommonDefines.h"]//müsait bir yere ekle;

#define ENABLE_DICE_SYSTEM[/CODE]

[CODE lang="cpp" title="common\length.h"]//arat;

CHAT_TYPE_MONARCH_NOTICE,

//altına ekle;

#ifdef ENABLE_DICE_SYSTEM
CHAT_TYPE_DICE_INFO,
#endif[/CODE]

[CODE lang="cpp" title="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
}[/CODE]

[CODE lang="cpp" title="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[/CODE]

[CODE lang="cpp" title="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[/CODE]

[CODE lang="cpp" title="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[/CODE]

[CODE lang="cpp" title="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[/CODE]

[CODE lang="cpp" title="UserInterface\Locale_inc.h"]//müsait bir yere ekle;

#define ENABLE_DICE_SYSTEM[/CODE]

[CODE lang="cpp" title="UserInterface\Packet.h"]//arat;

CHAT_TYPE_MONARCH_NOTICE,

//altına ekle;

#ifdef ENABLE_DICE_SYSTEM
CHAT_TYPE_DICE_INFO,
#endif[/CODE]

[CODE lang="cpp" title="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[/CODE]

[CODE lang="cpp" title="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[/CODE]

[CODE lang="cpp" title="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[/CODE]

[CODE lang="cpp" title="UserInterface\PythonNetworkStreamPhaseGame.cpp"]//arat;

case CHAT_TYPE_BIG_NOTICE:

//altına ekle;

#ifdef ENABLE_DICE_SYSTEM
case CHAT_TYPE_DICE_INFO:
#endif[/CODE]

[CODE lang="python" title="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)[/CODE]

[CODE lang="c" title="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[/CODE]

Ekte verdiğim dosyanın içindekileri locale_string.txt'nize geçirmeyi unutmayın.
İyi forumlar.

Virüs Taraması
Yazar
cegk
Kaynak İndirilme
27
Görüntüleme
356
İlk yayınlama
Son Güncelleme

Ratings

0.00 yıldız(lar) 0 rating

cegk - Kaynakları

Geri
Üst