Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 02/11/18 em %

  1. Opa eae galera, blz? deixarei logo a baixo algumas informações, de como compilar o tfs 0.3.6 pelo codeblocks. Veja o vídeo para entender melhor! 1º path para substituir o leaf 2º Download do projeto do CODEBLOCKS: TheForgottenServer.zip 3º Download do codeblocks já configurado 4º Caso sua source for dxp é necessário alterar o arquivo definitiuns.h
    5 pontos
  2. subyth

    PokeProject v0.1

    Este servidor será atualizado sempre que surgir correções e melhorias para o mesmo. O Servidor é um update do famoso DxP(DarkXPoke) e o novo Mythology(recentemente vazado). Estou postando para que toda a comunidade do xTibia ajude com o projeto. Ele é livre para todos, peço apenas que não postem em outro fórum. DATABASE Do servidor está dentro da pasta SERVER. Conta do ADM: admin/admin Servidor testado apenas com Site. O site disponibilizado utiliza ModernAcc atualizado e template v4 do otpokemon com minhas correções. (Shop Retirado do Site - Possível Bug de clonagem, não achei necessário ter shop no site pois existe shop in-game) OBS: Por favor, olhem a citação de BUGs para ajudarem a corrigir. Vou criar um mapa bem melhor para o servidor. Quero parecido com o da PxG (eu mesmo vou fazer). Preciso refazer todos os NPC's pois estão todos bugados. Muitos npcs não dizem Bye ao sair e quando um jogador fala hi, ele se sobrepõe à outros jogadores. Não cite este tópico completo em sua resposta para não poluir o tópico. Ajude o projeto, poste bugs encontrados e correções. Mantenha o tópico organizado. Ao postar uma correção, por favor, utilize o Pastebin e poste apenas as linhas modificadas para que todos possam identificar. Este servidor não possui o BUG do DxP com Dedicados/VPS. O mesmo está liso e rodando perfeitamente. (não testei em linux) Créditos:
    1 ponto
  3. Olá Membros do Xtibia tudo na paz? Creio que sim hoje eu venho postar á função OnWalk eu procurei bastante por ela na época em que eu usava á versão 0.3.6/0.4 e nunca consegui encontrar na época ela era necessária para o TV System do PDA Funcionar e quando eu adaptava uma source sempre faltava á função, bom os problemas acabaram a partir de hoje, la vai á função ae logo abaixo. Vá no arquivo creatureevent.cpp e procure por: else if(tmpStr == "spawn") m_type = CREATURE_EVENT_SPAWN; Logo abaixo coloque: else if(tmpStr == "walk") m_type = CREATURE_EVENT_WALK; Depois procure por: case CREATURE_EVENT_SPAWN: return "onSpawn"; Logo abaixo coloque: case CREATURE_EVENT_WALK: return "onWalk"; Depois procure por: case CREATURE_EVENT_SPAWN: return "cid"; Logo abaixo coloque: case CREATURE_EVENT_WALK: return "cid, fromPosition, toPosition"; Depois procure por: 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; 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; } } Dê uma quebra de linha e logo abaixo coloque: uint32_t CreatureEvent::executeWalk(Creature* creature, const Position& fromPosition, const Position& toPosition) { //onWalk(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); 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 vá no arquivo creatureevent.h procure por: CREATURE_EVENT_SPAWN, Logo abaixo coloque: CREATURE_EVENT_WALK, Depois procure por: uint32_t executeOnSpawn(Creature* creature); Logo abaixo coloque: uint32_t executeWalk(Creature* creature, const Position& fromPosition, const Position& toPosition); Pronto Agora basta compilar e Pronto. Espero ter Ajudado qualquer dúvida estarei respondendo, Abraço. Créditos: Darkhaos (De outro fórum)
    1 ponto
  4. FlamesAdmin

    Level Máximo

    Boa noite, venho aqui postar esse script que achei em um tópico de 2011 que um membro abriu pedindo o script. Vamos lá! Primeiro vá em creaturescripts/scripts/login.lua e adicione isso: registerCreatureEvent(cid, "LevelMax") Depois adicione essa tag em creaturescripts.xml: <event type="advance" name="LevelMax" event="script" value="levelmax.lua"/> Agora crie um arquilo .lua com o nome de levelmax e adicione este código dentro: local LevelMax = 180 function onAdvance(cid, skill, oldLevel, newLevel) if skill == 8 then if newLevel >= LevelMax then doPlayerAddExp(cid, getExperienceForLevel(LevelMax)-getPlayerExperience(cid)) return false end end return true end Para trocar o level máximo basta editar em: local LevelMax = 180 Espero que ajude! Créditos a MatheusMkalo
    1 ponto
  5. Golduck Victreebel Steelix ( Vaporeon / Jolteon ) Venusaur Charmander (SmokeScreen) Charmander (Scratch) Exeggutor Psychic Bulbasaur (Take Down) Venusaur (Take Down)
    1 ponto
  6. zipter98

    House

    Instale esse creatureevent nas suas sources. Depois, crie um arquivo em data/creatureevents/scripts com extensão .lua e coloque o seguinte conteúdo: function onMoveItem(cid, item, fromPosition, toPosition) if getTileInfo(toPosition).house then local house_id, cid_house = getHouseFromPos(toPosition), getHouseByPlayerGUID(getPlayerGUID(cid)) local guest_list = getHouseAccessList(house_id, 0x100):explode("\n") if house_id == cid_house or (#guest_list > 0 and isInArray(guest_list, getCreatureName(cid))) then return true end return false end return true end Tag (não se esqueça de registrar o evento em login.lua): <event type="move" name="throwItemAtHouse" event="script" value="nome_do_arquivo.lua"/>
    1 ponto
  7. Administrador

    Anatomia Humana

    ANATOMIA HUMANA O corpo humano, como no corpo de todos os animais, consiste de sistemas, esses quais nôs humanos, somos constituídos de: 1.Cabeça e pescoço 2.Membro superior: Mão, antebraço, braço, ombro, axila e região peitoral. 3.Abdômen 3.Costas 5.Membro inferior: Coxa, perna e pé. Tendo em mente que o sprite precisa de todas essas partes, vamos lá: Cabeça e pescoço: É preciso definir o rosto, colocando feições humanas. O pescoço pode ser representado com um pequeno espaço abaixo do rosto. Membro superior: Mão, antebraço, braço, ombro, axila e região peitoral: É muito importante que cada parte seja feita e principalmente visível. E sempre em proporções similares (nunca peitoral ou braço mais fortes que outras areas). É representada pelo volume, por isso as bordas e areas mais claras. Obs: Os braços vem de encontro a um centro pré determinado abaixo da cintura dependendo da posição. Abdômen Só precisa representar os musculos da barriga/umbigo com volume. Mas cuidado, devido ao pouco espaço, é preciso muito cuidado aonde vai por os pixels (como qualquer area com pouco espaço). Membro inferior: Coxa, perna e pé. Por ultimo, porem definitivamente não o menos importante e também a parte que o pessoal mais erra...AS PERNAS! Não é nada extremamente dificil, mas o pessoal acha que ambas as pernas são iguais, é aqui que esta o erro, não são. Ao contrario dos braços as pernas seguem uma direção opostas umas das outras. Enfim, também não esqueça o basico: Créditos: Ethebeur
    1 ponto
  8. jhon992

    O Que Sao Conditions E Storages?

    Conditions - Como o nome ja diz são condições que você adiciona aos players. Nas libs do otserv se encontra todos os conditions. Lista de Conditions: CONDITION_NONE = 0 CONDITION_POISON = 1 CONDITION_FIRE = 2 CONDITION_ENERGY = 4 CONDITION_PHYSICAL = 8 CONDITION_HASTE = 16 CONDITION_PARALYZE = 32 CONDITION_OUTFIT = 64 CONDITION_INVISIBLE = 128 CONDITION_LIGHT = 256 CONDITION_MANASHIELD = 512 CONDITION_INFIGHT = 1024 CONDITION_DRUNK = 2048 CONDITION_EXHAUST = 4096 CONDITION_FOOD = 8192 CONDITION_REGENERATION = 8192 CONDITION_SOUL = 16384 CONDITION_DROWN = 32768 CONDITION_MUTED = 65536 CONDITION_ATTRIBUTES = 131072 CONDITION_FREEZING = 262144 CONDITION_DAZZLED = 524288 CONDITION_CURSED = 1048576 CONDITION_PACIFIED = 2097152 CONDITION_GAMEMASTER = 4194304 CONDITION_HUNTING = 8388608 Como adicionar em players: local condition = createConditionObject(CONDITION_NONE) -- nome do condition setConditionParam(condition, CONDITION_PARAM_TICKS, 10000) -- aqui vai o tempo de duração, 1000 = 1 segundo setConditionFormula(condition, 0, 0, 0, 0) -- o dano ao adicionar a condition Storages - Como você ja disse, storage são numeros adicionados ao player para após usar em alguma verificação, os storages ajudam a desenvolver milhares de scripts. Um exemplo de onde é usado os storages é os Sistemas Vips, dae se usa a verificação se o player possuir esse storage == 1, ele podera ter acessos a outros comandos como enetrar em portas ou em areas vips. Como adicionar em player: setPlayerStorageValue(cid, 102050, 1) -- esse comando seta o storage 102050 == 1 getPlayerStorageValue(cid, 102050) ~= 1 -- nesse ele vai verificar se o storafe 102050 esta diferente de 1 Registrar Scripts - Quase todos os scripts são registrados no login.lua, os únicos que não precisam ser registrados são os arquivos que ja são do tipo onLogin. Os outros são necessarios para que funcionem corretamente. Não tenho certeza pra que serve registrar, mais acho que tem algo que ao logar os creaturesscripts ja são adicionados ao character e ficam só esperando ativar, algo desse tipo.
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...