Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 09/25/17 em todas áreas

  1. Olá eu venho trazer ao Xtibia á função OnMove, bom sem mais delongas vamos ao código. Vá em creatureevent.h e procure por: CREATURE_EVENT_DIRECTION , Embaixo do texto acima cole: CREATURE_EVENT_MOVE , Depois procure por: uint32_t executeDirection(Creature* creature, Direction old, Direction current); Embaixo do texto acima cole: uint32_t executeMove(Creature* creature, const Position& fromPosition, const Position& toPosition); Vá em creatureevent.cpp e procure por: else if(tmpStr == "direction") m_type = CREATURE_EVENT_DIRECTION; Embaixo do texto acima cole: else if(tmpStr == "move") m_type = CREATURE_EVENT_MOVE; Depois procure por: case CREATURE_EVENT_DIRECTION: return "onDirection"; Embaixo do texto acima cole: case CREATURE_EVENT_MOVE: return "onMove"; Depois procure por: case CREATURE_EVENT_OUTFIT: return "cid, old, current"; Embaixo do texto acima cole: case CREATURE_EVENT_MOVE: return "cid, fromPosition, toPosition"; Agora encima da função: uint32_t CreatureEvent::executeDirection(Creature* creature, Direction old, Direction current) Coloque: 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; }} Agora em game.cpp procure por: 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++; } } Embaixo do ultimo " } " cole isso: bool deny = false; CreatureEventList moveEvents = creature->getCreatureEvents(CREATURE_EVENT_MOVE); for(CreatureEventList::iterator it = moveEvents.begin(); it != moveEvents.end(); ++it) if(!(*it)->executeMove(creature, currentPos, destPos)) deny = true; if(deny) return RET_NOTPOSSIBLE; Pronto, Basta compilar e utilizar. Créditos Darkhaos (Por postar em outro fórum)Error404 (Por trazer ao Xtibia)
    1 ponto
  2. panda12milo

    Npc Vendedor De Bebidas

    Oi gente. Vim aqui trazer meu NPC Vendedor de Bebidas Eu instalei um Server e veio com ele, só que fiz umas modificações. Eu recomendo fazer um barzinho no seu OT Server, é bem legal para os Players se encontrarem e gastarem em Bebidas, lá no bar eles irão conversar com certeza, será um ponto de encontro. Primeiro: Copie um arquivo XML na sua pasta de NPC's e cole na mesma renomeie para Dude, abra o arquivo e delete tudo, depois Copie e Cole isso dentro do arquivo: Bom, ele ta com roupa de Dwarf colorida, se quiserem mudar, mudem a vontade. Agora vamos ao Script: Copie um arquivo LUA na sua pasta de Scripts dos NPC's e cole na mesma renomeie para drinks , abra o arquivo e delete tudo, depois Copie e Cole isso dentro do arquivo: Obrigado, se comentarem estarei agradecido. Observação, eu porcurei no Xtibia um vendedor de bebidas, mas não achei, se um moderador achar outro, sinta-se a vontade de apagar este, mas caso me de BAN estará errado, pois como já disse, eu não achei outro igual.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...