-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
- 0 respostas
- 1133 visualizações
-
[8.6] AdinOTS | Karmia Map | Autoloot, Daily Rewards, Task System, Raid System, Anti-Bot
Por brungran,
- 0 respostas
- 1181 visualizações
-
otserv 8.x [Original]Global Compacto Completo 8.60 [I'm Back](Links Atualizados) 1 2 3 4 10
Por soldoran,
- 137 respostas
- 79015 visualizações
-
- 0 respostas
- 1789 visualizações
-
- 2 respostas
- 1532 visualizações
-

Pergunta
Foxkbt 21
bom galera xtibiana
venho aqui pedir ajuda de quem tiver conhecimento na area
para conserta uma função de creatureScripts q com certeza é muito cobiçada pela galera
q é a função onMove
ela funciona perfeitamente, porem faz com q todas as outras funções creatureScripts parem de funcionar!
=(
segue abaixo o tutorial de como adicionalas
creatureevent.h:
depois de:
coloque:
depois de
coloque:
creatureevent.cpp:
depois de:
coloque:
depois de:
coloque:
depois de:
coloque:
e agora no final desse função (ou seja depois do "}" )
coloque esta:
uint32_t CreatureEvent::executeMove(Creature* creature, const Position& fromPosition, const Position& toPosition) { //onMove(cid, old, current) 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; env->streamPosition(scriptstream, "fromPosition", fromPosition, 0); env->streamPosition(scriptstream, "toPosition", toPosition, 0); 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__ char desc[30]; sprintf(desc, "%s", creature->getName().c_str()); env->setEventDesc(desc); #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)); LuaScriptInterface::pushPosition(L, fromPosition); LuaScriptInterface::pushPosition(L, toPosition); bool result = m_interface->callFunction(3); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeMove] Call stack overflow." << std::endl; return 0; } }game.cpp:
depois de:
else if(currentPos.z != 7 && (!(tmpTile = map->getTile(destPos)) || (!tmpTile->ground && !tmpTile->hasProperty(BLOCKSOLID))) && (tmpTile = map->getTile(Position( destPos.x, destPos.y, destPos.z + 1))) && tmpTile->hasHeight(3)) //try go down { flags = flags | FLAG_IGNOREBLOCKITEM | FLAG_IGNOREBLOCKCREATURE; destPos.z++; } }coloque:
PS:se tiver uma boa alma que me explique como funciona cada parte dessa função vai me fazer progredir bastante c++
e vou ser muito grato!
^^
Link para o comentário
https://xtibia.com/forum/topic/212808-ajuda-c-code/Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Arquivado
Este tópico foi arquivado e está fechado para novas respostas.