PYTHON EFFECT SYSTEM

Indította horvatadrian1, 2017-08-10, 04:37:02

Python effect system, ez annyit jelent, hogy van egy fájl, amiben vértek vnumjához tudsz effectet adni!
10116 : ["d:/ymir work/effect/character/blue.mse"],

Szükséges hozzá kliens forrás is!

Userinterface!

InstanceBase.cpp

Ezt az include-ok alá illeszd be:
#include "boost/algorithm/string.hpp"

std::map<int, char*> shiningdata;
std::map<int, char*>::iterator shiningit;


Keress rá erre:
if (12010 <= vnum && vnum <= 12049)
{
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL);
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2);
}

Add alá ezt:
if(!shiningdata.empty())
{
for (shiningit=shiningdata.begin(); shiningit!=shiningdata.end(); shiningit++)
if (shiningit->first == vnum)
{
std::string substr(shiningit->second);
std::vector<string> chars;
boost::split(chars, substr, boost::is_any_of("#"));
for(std::vector<string>::size_type i = 0; i != chars.size(); i++)
{
__AttachEffectToArmours(chars[i]);
}
}
}



InstanceBase.h
Keress rá erre:
protected:
DWORD __AttachEffect(UINT eEftType);
DWORD __AttachEffectToArmours(string effectfilename);
void __DetachEffect(DWORD dwEID);

Cseréld le erre:
protected:
DWORD __AttachEffect(UINT eEftType);
DWORD __AttachEffectToArmours(string effectfilename);
DWORD __AttachEffect(char filename[128]);
void __DetachEffect(DWORD dwEID);



InstanceBaseEffect.cpp
Keress rá erre:
DWORD CInstanceBase::__EffectContainer_AttachEffect(DWORD dwEftKey)
{
SEffectContainer::Dict& rkDctEftID=__EffectContainer_GetDict();
SEffectContainer::Dict::iterator f=rkDctEftID.find(dwEftKey);
if (rkDctEftID.end()!=f)
return 0;

DWORD dwEftID=__AttachEffect(dwEftKey);
rkDctEftID.insert(SEffectContainer::Dict::value_type(dwEftKey, dwEftID));
return dwEftID;
}


Add alá ezt:
DWORD CInstanceBase::__AttachEffectToArmours(string effectfilename)
{
const char * effectpath = effectfilename.c_str();
CEffectManager::Instance().RegisterEffect(effectpath, false, false);
return m_GraphicThingInstance.AttachEffectByName(0, "Bip01", effectpath);
}



StdAfx.h
Keress rá erre:
void initMessenger();
Add alá ezt:
void initShining();


UserInterface.cpp
Keress rá erre:
initServerStateChecker();
Add alá ezt:
initShining();

Userinterface-hoz add hozzá a két új fájlt, csatolva!


Kliens/root:
game.py

Ird az importok alá:
import effecttable

Keress rá erre:
player.SetGameWindow(self)
Add alá ezt:
effecttable.LoadEffectTable()

root-ba rakd bele az effecttable.py-t, csatolva!