Ir para conteúdo

Posts Recomendados

Créditos: Doggynub(Otland)

Testado em tfs 0.4


creatureEvent.h:

 

procure por:

uint32_t executePrepareDeath(Creature* creature, DeathList deathList);

 

em baixo coloque:

uint32_t executeOnSpawn(Creature* creature);

 

procure por:

CREATURE_EVENT_DEATH,

 

substitua a linha debaixo por:

CREATURE_EVENT_PREPAREDEATH,
CREATURE_EVENT_SPAWN


creatureevent.cpp

 

procure por:

else if(tmpStr == "preparedeath")
m_type = CREATURE_EVENT_PREPAREDEATH;

 

em baixo coloque:

else if(tmpStr == "spawn")
m_type = CREATURE_EVENT_SPAWN;

 

procure por:

case CREATURE_EVENT_PREPAREDEATH:
return "onPrepareDeath";

 

em baixo coloque

case CREATURE_EVENT_SPAWN:
return "onSpawn";

 

procure por:

case CREATURE_EVENT_PREPAREDEATH:
return "cid, deathList";

 

embaixo coloque:

case CREATURE_EVENT_SPAWN:
return "onSpawn";

 

procure por:

case CREATURE_EVENT_PREPAREDEATH:
 return "cid, deathList";

 

embaixo coloque:

case CREATURE_EVENT_SPAWN:
return "cid";

 

Va até o final do arquivo e coloque

uint32_t CreatureEvent::executeOnSpawn(Creature* creature)
{

//onSpawn(cid)
if(m_interface->reserveEnv())
{
ScriptEnviroment* env = m_interface->getEnv();
if(m_scripted == EVENT_SCRIPT_BUFFER)
{
env->setRealPos(creature->getPosition());
std::stringstream scriptstream;


scriptstream << "local cid = " << env->addThing(creature) << std::endl;



if(m_scriptData)
scriptstream << *m_scriptData;


bool result = true;
if(m_interface->loadBuffer(scriptstream.str()))
{
lua_State* L = m_interface->getState();
result = m_interface->getGlobalBool(L, "_result", true);
}


m_interface->releaseEnv();
return result;
}
else
{
#ifdef __DEBUG_LUASCRIPTS__
std::stringstream desc;
desc << creature->getName();
env->setEvent(desc.str());
#endif


env->setScriptId(m_scriptId, m_interface);
env->setRealPos(creature->getPosition());


lua_State* L = m_interface->getState();
m_interface->pushFunction(m_scriptId);


lua_pushnumber(L, env->addThing(creature));


bool result = m_interface->callFunction(1);
m_interface->releaseEnv();
return result;
}
}
else
{
std::clog << "[Error - CreatureEvent::executeCast] Call stack overflow." << std::endl;
return 0;
}
}


monster.cpp

 

procure por:

void Monster::onCreatureAppear(const Creature* creature)
{
Creature::onCreatureAppear(creature);
if(creature == this)
{
//We just spawned lets look around to see who is there.
if(isSummon())
isMasterInRange = canSee(master->getPosition());

 

embaixo de uns 2 Enters e coloque:

CreatureEventList spawn = getCreatureEvents(CREATURE_EVENT_SPAWN);
for(CreatureEventList::iterator it = spawn.begin(); it != spawn.end(); ++it)
(*it)->executeOnSpawn(this);


Editado por PostadorHunter
Link para o comentário
https://xtibia.com/forum/topic/208547-creaturescriptsfunction-onspawncid/
Compartilhar em outros sites

é um creature event que executa quando o monstro da respawn

Isso eu sei mais quero saber oq faz ele?

Tipo monstro da mais exp, fica mais forte, o tempo fica mais rapido do spawn, sei lá....

Link para o comentário
https://xtibia.com/forum/topic/208547-creaturescriptsfunction-onspawncid/#findComment-1476465
Compartilhar em outros sites

é um creature event que executa quando o monstro da respawn

Isso eu sei mais quero saber oq faz ele?

Tipo monstro da mais exp, fica mais forte, o tempo fica mais rapido do spawn, sei lá....

depende do seu script

aqui um exemplo do criador do código

function onSpawn(cid)
doBroadcastMessage("Monster ".. getCreatureName(cid).." was created.")
return true
end

Link para o comentário
https://xtibia.com/forum/topic/208547-creaturescriptsfunction-onspawncid/#findComment-1476472
Compartilhar em outros sites

é uma função que faz o script executar quando ouver um spawn.

 

Exemplo :

function onCastSpell.

function onUse.

function onSay.

Todo script precisa de uma para ser executado.

Link para o comentário
https://xtibia.com/forum/topic/208547-creaturescriptsfunction-onspawncid/#findComment-1476586
Compartilhar em outros sites

Bem isso dava pra ter sido feito em lua, mas parabens gostei ^^.

não dava não

 

Olha não quero discordar mais fiz o evento Spawn funcionar tranquilamente em LUA '-'

Link para o comentário
https://xtibia.com/forum/topic/208547-creaturescriptsfunction-onspawncid/#findComment-1479013
Compartilhar em outros sites

  • 1 month later...

Acabei de perceber quando tava tentando instalar esse código nas minhas source que ele tem um erro, Vá aonde você pegou ele e confira o tutorial de instalação.

Link para o comentário
https://xtibia.com/forum/topic/208547-creaturescriptsfunction-onspawncid/#findComment-1513940
Compartilhar em outros sites

×
×
  • Criar Novo...