Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 06/03/20 em todas áreas

  1. Função DoSetCreatureLight C++ TFS 0.4

    Doria Louro e 2 outros reagiu a L3K0T por uma resposta no tópico

    3 pontos
    L3K0Ttfs 0.4 Bom galera hoje vim trazer para aqueles que não tem em seu tfs a função DoSetCreatureLight, é uma função de LUZ, alguns tfs tem e outros não tem então resolvi compartilhar. abra seu luascript.cpp e procure por: lua_register(m_luaState, "getCreatureHealth", LuaInterface::luaGetCreatureHealth); em baixo add //doSetCreatureLight(cid, lightLevel, lightColor, time) lua_register(m_luaState, "doSetCreatureLight", LuaInterface::luaDoSetCreatureLight); Procure;; int32_t LuaInterface::luaGetThingFromPos(lua_State* L) { //getThingFromPos(pos[, displayError = true]) //Note: // stackpos = 255- top thing (movable item or creature) // stackpos = 254- magic field // stackpos = 253- top creature bool displayError = true; if(lua_gettop(L) > 1) displayError = popNumber(L); PositionEx pos; popPosition(L, pos); ScriptEnviroment* env = getEnv(); Thing* thing = NULL; if(Tile* tile = g_game.getMap()->getTile(pos)) { if(pos.stackpos == 255) { if(!(thing = tile->getTopCreature())) { Item* item = tile->getTopDownItem(); if(item && item->isMovable()) thing = item; } } else if(pos.stackpos == 254) thing = tile->getFieldItem(); else if(pos.stackpos == 253) thing = tile->getTopCreature(); else thing = tile->__getThing(pos.stackpos); if(thing) pushThing(L, thing, env->addThing(thing)); else pushThing(L, NULL, 0); return 1; } if(displayError) errorEx(getError(LUA_ERROR_TILE_NOT_FOUND)); pushThing(L, NULL, 0); return 1; } em baixo add;; int32_t LuaInterface::luaDoSetCreatureLight(lua_State* L) { //doSetCreatureLight(cid, lightLevel, lightColor, time) uint32_t time = popNumber(L); uint8_t color = (uint8_t)popNumber(L); uint8_t level = (uint8_t)popNumber(L); uint32_t cid = popNumber(L); ScriptEnviroment* env = getEnv(); Creature* creature = env->getCreatureByUID(cid); if(creature) { Condition* condition = Condition::createCondition(CONDITIONID_COMBAT, CONDITION_LIGHT, time, level | (color << 8)); creature->addCondition(condition); lua_pushboolean(L, true); } else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } Agora em Luascript.h procure por:;; static int32_t luaCanPlayerWearOutfit(lua_State* L); em baixo add;; static int32_t luaDoSetCreatureLight(lua_State *L); salva tudo em compila no modo rebuild. Usando em Summons;; doSetCreatureLight(getCreatureSummons(cid)[1], 10, 215, 60*1000) Usando em players;; doSetCreatureLight(cid, 9, 65, 10*60*1000) usando em Equipe;; function onEquip(cid, item, slot) doSetCreatureLight(cid, 9, 65, 10*60*1000) end function onDeEquip(cid, item, slot) doSetCreatureLight(cid, 7, 215, 1*1000) end Espero que gostem
  2. 2 pontos
    Em creaturescripts.xml: <event type="kill" name="killingPercht" script="nomedoarquivo.lua"/> Em data/creaturescripts/scripts/others/login.lua, na tabela local events, adicionar: 'killingPercht',
  3. DRAGONSOULS DATAPACK 7.92

    Brum reagiu a Johncore por uma resposta no tópico

    1 ponto
    DRAGONSOULS DATAPACK FULL 7.92 Encontrei essa DATAPACK e resolvi postar, tendo em vista que muita gente gosta e não encontra em lugar nenhum a disposição para iniciar um projeto com mapa menor, é uma excelente base.  Especificações : - Mapa 100% - Npcs 100% - Monstros 100% - Sistemas 100% Imagens : Em breve estarei postando fotos do servidor  Downloads : SERVIDOR + DATABASE : Download // Scann Projeto no GITLAB Grupo no WHATSAPP voltado a esse tema de OTSERV: LINK Créditos : TFScontribuidores Dragonsouls Team Johncore
  4. 1 ponto
    Salve galera recentemente tive alguns problemas com o uso de certas Dlls por conta do cliente é um problema bem especifico que o cliente não abria o spr e dat estendido normalmente sem qualquer uso de dll sendo assim não dava para utilizar a proteção.cab + dll para fazer o cliente abrir estendido caso utilizar as duas gera um conflito e da erro. Para acabar com esse problema e possíveis outros estarei disponibilizando esse cliente a diferença dele é que ele vai abrir o spr e dat estendido sem qualquer uso de dll sendo assim você não terá problemas para injetar qualquer dll de proteção etc... Habilitado em unt16 - sua source precisa estar com a modificação para não ter erros Versão: 8.60 Cliente Extended unt16.exe Scan Obs: Falso positivo por conta das modificações que foram feitas no exe Não darei suporte estou disponibilizando o cliente para quem já sabe como utilizar e tenha feito todas as alterações necessárias para utilizar o mesmo. Créditos Madzix
  5. Animated Outfits 12.31

    cs007 reagiu a Bruxo Ots por uma resposta no tópico

    1 ponto
    Ola Tibianos!!!! Gesior tinha atualizado até a versão 10.92 com addons, monstros e mounts. Mas como ele não atualizou mais, decidi continuar nesse movimento, então sempre que possivel estarei trazendo as novidades do nosso querido e amado tibia. Meta é sempre estar atualizando com os novos looks do global. Adicionei o cache em todos os arquivos, então agora e so baixar e usar, claro que precisa ser configurado no site de vocês. Nessa ultima att ja vem com o incrivel Dragon Slayer e as montarias novas que a cip lançou para ajudar o pessoal com Covid-19. Download Créditos Tutorial Gerando Cache so se não souber mesmo.
  6. Teleporte Summon tfs 0.3.6

    ernaix69 reagiu a L3K0T por uma resposta no tópico

    1 ponto
    TUTORIAL - TELEPORTE SUMMON Introdução: Fala pessoal, hoje vim aqui liberar um código para que futuros criadores de pokemon não usem GLOBALEVENTS ou MOVEMENTS para teleportar seus pokemons a distancia... hoje irei ensinar a você não usar mais esses scripts que aonde da maioria da vezes crash o servidores em WINDOWS em testes. Sobre o Sistema: Esse sistema tem a função de teleportar seu pokemon a certos sqm, tipo assim, você tem um pokemon e a distancia dele é 7 sqm, ao passar os 7 sqm ele teleporta para você, seja em qualquer lugar até de baixo da terra ou lugares super longe (Não se preocupe o problema do pokemon Morrer com source novas será removido e assim ele não vai morrer) Creature.cp Tutorial: Vá em sua source procure por creature.cpp e abra com algum editor de texto e ache: if(!summons.empty()) { std::list<Creature*>::iterator cit; std::list<Creature*> despawnList; for(cit = summons.begin(); cit != summons.end(); ++cit) { const Position pos = (*cit)->getPosition(); if((std::abs(pos.z - newPos.z) > 2) || (std::max(std::abs(( newPos.x) - pos.x), std::abs((newPos.y - 1) - pos.y)) > 30)) despawnList.push_back((*cit)); } for(cit = despawnList.begin(); cit != despawnList.end(); ++cit) g_game.removeCreature((*cit), true); } Mude para: /*if(!summons.empty()) { std::list<Creature*>::iterator cit; std::list<Creature*> despawnList; for(cit = summons.begin(); cit != summons.end(); ++cit) { const Position pos = (*cit)->getPosition(); if((std::abs(pos.z - newPos.z) > 2) || (std::max(std::abs(( newPos.x) - pos.x), std::abs((newPos.y - 1) - pos.y)) > 30)) despawnList.push_back((*cit)); } for(cit = despawnList.begin(); cit != despawnList.end(); ++cit) g_game.removeCreature((*cit), true); }*/ Agora salve ctrl+s e feche. Monster.cpp Tutorial: Agora procure por Monster.cpp e ache: void Monster::onThink(uint32_t interval) abaixo de: if(teleportToMaster && doTeleportToMaster()) teleportToMaster = false; coloque: if(getMaster()){ if(!Position::areInRange<6,6,0>(getPosition(), getMaster()->getPosition())) doTeleportToMaster(); } salve ctrl+s e revompila no modo rebuilde não esqueça de habilitar as opções em config.lua -- Summons maxPlayerSummons = 1 teleportAllSummons = true teleportPlayerSummons = true lembre se de remover qualquer scripts que teleporta seu pokemon a distancia. Créditos: By L3K0T
  7. Função DoSetCreatureLight C++ TFS 0.4

    Luzetti reagiu a L3K0T por uma resposta no tópico

    1 ponto
    isso
  8. (Resolvido)[TFS1.3] Outfit ao matar certo monstro

    Cat reagiu a worthdavi por uma resposta no tópico

    1 ponto
    local config = { addon_name = "Percht Raider", addon_male = 1162, addon_female = 1161 } function onKill(creature, target) local player = creature:getPlayer() if not player then return true end local targetMonster = target:getMonster() if not targetMonster then return true end if targetMonster:getName():lower() == 'the percht queen' then for pid, _ in pairs(targetMonster:getDamageMap()) do local attackerPlayer = Player(pid) if attackerPlayer:hasOutfit(config.addon_male) or attackerPlayer:hasOutfit(config.addon_female) then attackerPlayer:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You already got this oufit.") else attackerPlayer:addOutfitAddon(config.addon_male, 3) attackerPlayer:addOutfitAddon(config.addon_female, 3) attackerPlayer:getPosition():sendMagicEffect(29) attackerPlayer:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Addon " .. config.addon_name .. " adicionado!!") end end end return true end
  9. 1 ponto
    local killQueen = CreatureEvent("Kill Queen") function killQueen.onKill(player, target) if target:isPlayer() or target:getMaster() then return true end local outfit = { name = "Percht Raider", male = 1162, female = 1161, storage = 97184 } if target:getName():lower() == "the percht queen" then if player:getStorageValue(outfit.storage) < 1 then player:setStorageValue(outfit.storage, 1) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Addon " .. outfit.name .. " full adicionado!") player:addOutfitAddon(outfit.male, 3) player:addOutfitAddon(outfit.female, 3) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED) else doPlayerSendTextMessage(cid, 19, "You already got your outfit.") end end return true end killQueen:register()
  10. Widget whatsapp gesior

    Ryaan reagiu a Tio Rusher por uma resposta no tópico

    1 ponto
    @Ryaan Adiciona na Home do seu site:
  11. Widget whatsapp gesior

    Ryaan reagiu a Aksz por uma resposta no tópico

    1 ponto
    Segue o código. <a href="https://api.whatsapp.com/send?phone=seunumerodetelefone&text=sua%20mensagem"><img src="https://media.discordapp.net/attachments/683077613316866113/712084641846263848/unknown.png"></a> Para fazer as alterações, aonde está escrito seunumerodetelefone, você vai por o código do PAIS, o DDD e o numero, exemplo 5522999999999, para alterar a mensagem, aonde está escrito, sua%20mensagem, altere para a mensagem desejada, lembrando que, não é possivel adicionar espaços no link, então, quando tiver espaço tem que por o %20, exemplo. Olá%20Boa%20Tarde%20Tudo%20Bem?%20 E caso precise alterar alterar a imagem, é só colocar o link da imagem em src=""
  12. Summon em PZ - Pokemon

    Ackerzin reagiu a L3K0T por uma resposta no tópico

    1 ponto
    Introdução: Fala galera mais uma vez eu aqui postando mais um código editado por mim, pra pokemon ou pra tibia use como você achar melhor, o que ele faz ? simples ele vai deixar seu Summon ou Pokemon entrar no PZ (menos hause) eu estava descifrando o código e n precisei implementar nada é apenas uma editada pra fazer com que o PZ não verificasse os Summon Benignos. Tile.cpp Tutorial: Procure por;; if(const Monster* monster = creature->getMonster()) { if(hasFlag(TILESTATE_PROTECTIONZONE)) return RET_NOTPOSSIBLE; if(floorChange() || positionChange()) return RET_NOTPOSSIBLE; altere para if(const Monster* monster = creature->getMonster()) { if(hasFlag(TILESTATE_PROTECTIONZONE) && !monster->isPlayerSummon()) { if(creature->isPlayerSummon()) { if(hasFlag(TILESTATE_BLOCKSOLID)) return RET_NOTPOSSIBLE; } return RET_NOTPOSSIBLE; } if(floorChange() || positionChange()) return RET_NOTPOSSIBLE; Pronto agora os summon vai entrar no PZ! simples porem útil! ajudei?? REP+
  13. TFS 0.4 ERRO Call stack overflow.

    ITALOx reagiu a Yamborghini por uma resposta no tópico

    -1 pontos
    Up
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo