Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. (Resolvido)Mensagem no [OTC]

    Gaant e um outro reagiu a Snowsz por uma resposta no tópico

    2 pontos
    Não, não resta o OTC, simplesmente, NÃO É NO OTC! É algum arquivo do creaturescript, pode procurar que tá lá.
  2. Compilando TFS 1.3 com vídeo-aula

    Capitao wyz reagiu a Bruno Minervino por uma resposta no tópico

    1 ponto
    Compilando TFS 1.3 no Windows 1. Baixe os softwares requeridos Para compilar o The Forgotten Server no Windows, você vai precisar: Visual Studio 2015 (Compilador) TFS SDK v3.2 (libs) Libs do Boost C++ (32-bits, 64-bits) 2. Instale os softwares requeridos Após ter baixado os softwares listados na etapa acima, comece instalando o Visual Studio e Boost C++. Extraia o TFS SDK v3.2 em qualquer pasta do seu computador e execute o arquivo "register_tfssdk_env.bat" para setar a variável de ambiente do local onde está o TFS SDK, assim nosso compilador irá encontrar as libs quando começar a compilar. Mova o arquivo "register_boost_env.bat" da pasta do TFS SDK para a pasta onde você instalou as libs do Boost C++ e execute-o (se você seguiu os passos do instalador, está esta na pasta chamada boost_1_62_0). 3. Baixe as sources Se você possuir o Git Client instalado, você poderá clonar a última cópia com este comando: > git clone https://github.com/otland/forgottenserver.git Se você não possuir o Git Client instalado, você poderá baixar a última cópia do The Forgotten Server através do link: https://github.com/otland/forgottenserver/archive/master.zip 4. Compilando Procure o diretório vc14 na pasta do The Forgotten Server que você baixou, e abra o arquivo "theforgottenserver.sln". Isso deverá iniciar o Visual Studio 2015 e você estará pronto para continuar. Para configurar a compilação, navegue para Build -> Configuration Manager no menu superior. Um popup deverá aparecer onde você poderá escolher entre "Release" ou "Debug" para compilar, escolha também para qual Plataforma você irá compilar: 32-bits (Win32) ou 64-bits (x64). Para iniciar a compilação, abra o menu Build novamente e clique em Build Solution (Ctrl + Shift + B). 5. Vídeo-aula https://www.youtube.com/watch?v=Zfil84FMJsk 6. Créditos Mark - Autor do tutorial e do projeto The Forgotten Server Bruno Minervino - Tradução e gravação do vídeo
  3. [TFS 1.2] Firestorm Event

    Soldoran reagiu a Tricoder por uma resposta no tópico

    1 ponto
    Video de Demonstração ________________________________________________ data/firestorm_event.lua -- firestorm Variables fsJoinedCountGlobalStorage = 18900 --Player joined event count / recuento de players. fsJoinStorage = 18901 --player join storage / storage del jugador a unirse. fsMinPlayers = 2 --min players needed when time runout / minimo de players necesarios para comenzar el evento. fsMaxPlayers = 5 --max players to join / maximo de players. fsTrophy = 7369 --trophy itemid / itemid del premio(que no sea stackable). fsEventCountGlobalStorage = 18902 --firestorm Count (no move/no moverle). fsWaitMinutes = 1 --when event has opened, how long until it starts? / cuantos minutos tarde el evento en empezar. fsWaitingRoomPos = Position(1016, 940, 7) --middle of waiting room / punto medio de el cuarto de espera. fsArena = Position(991, 930, 7) --when even start where should player be teleported in the arena? / punto donde seran transportados los players. fsArenaFromPosition = Position(984, 925, 7) --pos of top left corner / posicion de esquina superior izquierda. fsArenaToPosition = Position(998, 935, 7) --pos of bottom right corner /posicion de esquina inferior derecha. fsMiddleEventArena = Position(991, 930, 7) --Middle pos of the arena / punto medio de la arena fsWaitingRoomRadiusX = 8 --depends how big the waiting room is 20sqm to x / depende de lo grande la sala de espera en x fsWaitingRoomRadiusY = 8 --depends how big the waiting room is 20sqm to y / depende de lo grande la sala de espera en y fsEventArenaRadiusX = 15 --Depends how big the firestorm arena is 50sqm to x / depende de lo grande de la arena en x fsEventArenaRadiusY = 15 --Depends how big the firestorm arena is 50sqm to y / depende de lo grande de la arena en y fsStartedGlobalStorage = 18903 -- Value: 0 == false, 1 == true, 2 == started --State of the event fsCreateTeleportPosition = Position(1000, 1000, 7) --Where should the teleport be created? / posicion donde sera creado el teleport? function startfirestorm() local specs = Game.getSpectators(fsWaitingRoomPos, false, true, 0, fsWaitingRoomRadiusX, 0, fsWaitingRoomRadiusY) if Game.getStorageValue(fsJoinedCountGlobalStorage) <= fsMinPlayers then for i = 1, #specs do specs[i]:teleportTo(specs[i]:getTown():getTemplePosition(), false) specs[i]:setStorageValue(fsJoinStorage, 0) end resetfsVariables() Game.broadcastMessage('firestorm Event failed to start, because of to little players joined the event!', MESSAGE_STATUS_WARNING) return true end for i = 1, #specs do local rX, rY, rZ rX = math.random(fsArenaFromPosition.x, fsArenaToPosition.x) rY = math.random(fsArenaFromPosition.y, fsArenaToPosition.y) rZ = math.random(fsArenaFromPosition.z, fsArenaToPosition.z) specs[i]:teleportTo(Position(rX, rY, rZ)) end Game.broadcastMessage("firestorm Event has started, good luck to all participant.", MESSAGE_STATUS_WARNING) Game.setStorageValue(fsStartedGlobalStorage, 2) doStartfirestorm() end function doStartfirestorm() if Game.getStorageValue(fsJoinedCountGlobalStorage) > fsMaxPlayers then return false end if Game.getStorageValue(fsStartedGlobalStorage) == 2 then local specs = Game.getSpectators(fsArena, false, true, 0, 10, 0, 10) for i = 1, #specs do local randX, randY, randZ randX = math.random(fsArenaFromPosition.x, fsArenaToPosition.x) randY = math.random(fsArenaFromPosition.y, fsArenaToPosition.y) randZ = math.random(fsArenaFromPosition.z, fsArenaToPosition.z) local randfire = Position(randX, randY, randZ) local randX1, randY1, randZ1 randX1 = math.random(fsArenaFromPosition.x, fsArenaToPosition.x) randY1 = math.random(fsArenaFromPosition.y, fsArenaToPosition.y) randZ1 = math.random(fsArenaFromPosition.z, fsArenaToPosition.z) local randfire1 = Position(randX1, randY1, randZ1) local creature, players = nil, Game.getPlayers() for i = 1, #players do creature = players[i] doSendDistanceShoot(fsArenaFromPosition, randfire, 4) doSendDistanceShoot(fsArenaToPosition, randfire, 4) doSendDistanceShoot(Position(998, 925, 7), randfire, 4) doSendDistanceShoot(Position(984, 935, 7), randfire, 4) doAreaCombatHealth(creature.uid, COMBAT_HOLYDAMAGE, randfire,randfire, -9999, -1000000,7) end end addEvent(doStartfirestorm, 500) end end function resetfsVariables() Game.setStorageValue(fsEventCountGlobalStorage, 0) Game.setStorageValue(fsJoinedCountGlobalStorage, 0) Game.setStorageValue(fsStartedGlobalStorage, 0) end creaturescripts/scriptsdofile('data/firestorm_event.lua') function onPrepareDeath(player, killer) local winner = 0 if player:getStorageValue(fsJoinStorage) >= 1 then Game.setStorageValue(fsJoinedCountGlobalStorage, Game.getStorageValue(fsJoinedCountGlobalStorage)-1) player:teleportTo(player:getTown():getTemplePosition()) player:setStorageValue(fsJoinStorage, 0) player:addHealth(player:getMaxHealth()) if Game.getStorageValue(fsJoinedCountGlobalStorage) <= 1 then --Event ended, someone won! local pla, play = nil, Game.getPlayers() for i = 1, #play do pla = play[i] if pla:getStorageValue(fsJoinStorage) == 1 then winner = pla:getId() break end end winner = Player(winner) if winner then winner:teleportTo(winner:getTown():getTemplePosition()) winner:addHealth(winner:getMaxHealth()) local trophy = winner:addItem(fsTrophy, 1) if trophy then trophy:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, '['.. winner:getName() ..'] has won the firestorm Event.') end Game.broadcastMessage(string.format('%s is the winner of firestorm Event', winner:getName()), MESSAGE_STATUS_WARNING) end resetfsVariables() end return false end return true end Creaturescripts/scripts dofile('data/firestorm_event.lua') function onPrepareDeath(player, killer) local winner = 0 if player:getStorageValue(fsJoinStorage) >= 1 then Game.setStorageValue(fsJoinedCountGlobalStorage, Game.getStorageValue(fsJoinedCountGlobalStorage)-1) player:teleportTo(player:getTown():getTemplePosition()) player:setStorageValue(fsJoinStorage, 0) player:addHealth(player:getMaxHealth()) if Game.getStorageValue(fsJoinedCountGlobalStorage) <= 1 then --Event ended, someone won! local pla, play = nil, Game.getPlayers() for i = 1, #play do pla = play if pla:getStorageValue(fsJoinStorage) == 1 then winner = pla:getId() break end end winner = Player(winner) if winner then winner:teleportTo(winner:getTown():getTemplePosition()) winner:addHealth(winner:getMaxHealth()) local trophy = winner:addItem(fsTrophy, 1) if trophy then trophy:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, '['.. winner:getName() ..'] has won the firestorm Event.') end Game.broadcastMessage(string.format('%s is the winner of firestorm Event', winner:getName()), MESSAGE_STATUS_WARNING) end resetfsVariables() end return false end return true end creaturescripts.xml <!-- firestorm --> <event type="prepareDeath" name="fire_event" script="xxxx.lua"/> login player:registerEvent("fire_event") globalevents/scripts dofile('data/firestorm_event.lua') function onThink(interval, lastExecution, thinkInterval) resetfsVariables() if Game.getStorageValue(fsStartedGlobalStorage) < 1 then local teleport = doCreateItem(11796,1,fsCreateTeleportPosition) if teleport then doSetItemActionId(teleport, 5499) doSendMagicEffect(fsCreateTeleportPosition, CONST_ME_TELEPORT) end local r_tp = Tile(fsCreateTeleportPosition):getItemById(11796) addEvent(function() r_tp:remove() getTileItemById(fsCreateTeleportPosition, 11796) end, 60 * 1000) addEvent(function() doSendMagicEffect(fsCreateTeleportPosition, CONST_ME_TELEPORT) end, 60 * 1000) end Game.setStorageValue(fsStartedGlobalStorage,1) print('firestorm Event has started & waiting for players to join! Min: '.. fsMinPlayers ..'/'.. fsMaxPlayers ..'.') Game.broadcastMessage('The firestorm Event has started! You have '.. fsWaitMinutes ..' minutes to join!', MESSAGE_STATUS_WARNING) addEvent(startfirestorm, fsWaitMinutes * 60 * 1000) return true end globalevents.xml <!-- FireStorm--> <globalevent name="firestorm_event" interval="72000000" script="xxxx.lua"/> movements/scripts dofile('data/firestorm_event.lua') function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if Game.getStorageValue(fsStartedGlobalStorage) == 2 then player:sendTextMessage(MESSAGE_INFO_DESCR, 'The Firestorm Event has already started.') player:teleportTo(fromPosition, true) return false end if Game.getStorageValue(fsStartedGlobalStorage) == 0 then player:sendTextMessage(MESSAGE_INFO_DESCR, 'The Firestorm Event has not started yet.') player:teleportTo(fromPosition, true) return false end if Game.getStorageValue(fsJoinedCountGlobalStorage) >= fsMaxPlayers then player:teleportTo(fromPosition, true) player:sendTextMessage(MESSAGE_INFO_DESCR, 'The Firestorm Event is already full! ['.. Game.getStorageValue(fsJoinedCountGlobalStorage) ..'/'.. fsMaxPlayers ..']') return false end player:teleportTo(fsWaitingRoomPos) Game.setStorageValue(fsJoinedCountGlobalStorage, Game.getStorageValue(fsJoinedCountGlobalStorage) + 1) Game.broadcastMessage(string.format('%s has joined the Firestorm Event! [%s/'.. fsMaxPlayers ..'].', player:getName(), Game.getStorageValue(fsJoinedCountGlobalStorage)), MESSAGE_STATUS_WARNING) player:setStorageValue(fsJoinStorage, 1) return true end Movements.xml <!-- firestorm --> <movevent event="StepIn" actionid="5499" script="xxxx.lua"/> ________________________________________________ Créditos: Scrappy Coco
  4. [BETA] Quest Maker

    Adventure reagiu a Caronte por uma resposta no tópico

    1 ponto
    Olá pessoal, criei um quest maker e quero compartilhar com vocês, para opiniões e avaliações. O programa está em versão beta, não fiz para ficar bonitinho, fiz para praticar, e depois, fazer um bonitinho. previsão da versão 1.0: [bETA] Quest Maker - By Caronte Como funciona? Ele pede 3 coisas, que precisam ser respondidas de acordo com suas funções. ao terminar de fazer as 3 perguntas, ele gera um arquivo.lua na pasta onde se encontra, prontinho para colocar como uma quest. Exemplo: Exemplo com storage: function onUse(cid, item, frompos, itemex, topos) if getPlayerStorageValue(cid,1234) == -1 then doPlayerAddItem(cid, 2160, 10) doPlayerSetStorageValue(cid, 1234, 1) else doSendMagicEffect(frompos, CONST_ME_POFF) doPlayerSendCancel(cid, 'The chest is empty.') end return true end Exemplo sem storage: function onUse(cid, item, frompos, itemex, topos) doPlayerAddItem(cid, 2160, 10) return true end Código fonte: Bom pessoal, é um código super simples, mas para mim, já ajuda um pouco...
  5. Pokémon Rubrum (Screenshot Pallet Base)

    Gaant reagiu a Refe por uma resposta no tópico

    1 ponto
    Pokémon Rubrum Acompanhe Updates na nossa Fan Page Algumas Novidades: Vagas: Ficha de inscrição: Imagens: , Update do dia (12/10/2015) Update dos dias 12/10 e 13/20
  6. 1 ponto
    Muito obrigado! Vou fazer todos os possíveis para fornecer o melhor à comunidade!
  7. Tps não funcionam

    pelique reagiu a lordzetros por uma resposta no tópico

    1 ponto
    Veja se o script da recompensa não está configurado na coordenada que você modificou.
  8. 1 ponto
    Video de Demonstração ________________________________________________ Baseado neste evento: http://www.tibiawiki.com.br/wiki/Silencer_Plateau ________________________________________________ data/actions/script/ResonanceChamber.lua --Config local config = { item = 22535, storage = 34380, position = { Position(33637, 32516, 5), -- Top Left Position(33664, 32537, 5), -- botton Right Position(33650, 32527, 5) -- Center }, raid = { [1] = {"silencer", math.random(8,15) }, [2] = {"silencer", math.random(11,18) }, [3] = {"silencer", math.random(8,15) }, [4] = {"Sight of Surrender", math.random(3,8) } }, globalEventTime = 30 * 60 * 1000, -- [30min] waiting time to get started again timeBetweenraid = 1 * 60 * 1000, -- [1min] Waiting time between each raid cleanraid = true -- Clean zone after globalEventTime } local function isWalkable(position) local tile = Tile(position) if not tile then return false end local ground = tile:getGround() if not ground or ground:hasProperty(CONST_PROP_BLOCKSOLID) then return false end local items = tile:getItems() for i = 1, tile:getItemCount() do local item = items[i] local itemType = item:getType() if itemType:getType() ~= ITEM_TYPE_MAGICFIELD and not itemType:isMovable() and item:hasProperty(CONST_PROP_BLOCKSOLID) then return false end end return true end local function raids(monster) local randX,randY,randZ = 0,0,0 randX = math.random(config.position[1].x, config.position[2].x) randY = math.random(config.position[1].y, config.position[2].y) randZ = math.random(config.position[1].z, config.position[2].z) if isWalkable(Position(randX, randY, randZ)) then Game.createMonster(monster, Position(randX, randY, randZ)) else raids(monster) end end local function cleanRaid() local mostersraid= Game.getSpectators(config.position[3], false, false, 13, 13, 11, 11) for i = 1, #mostersraid do if mostersraid[i]:isMonster() then mostersraid[i]:remove() end end end function onUse(cid, item, fromPosition, itemEx, toPosition) local player = Player(cid) local max,time,monster = 0,0,"" if item.itemid ~= config.item then return true end local spectators,hasPlayer,hasMonsters = Game.getSpectators(config.position[3], false, false, 13, 13, 11, 11),false,false for i = 1, #spectators do if spectators[i]:isPlayer() then if spectators[i]:getName() == player:getName() then hasPlayer = true end elseif spectators[i]:isMonster() then hasMonsters = true end end if not hasPlayer then player:sendCancelMessage('Use on Silencer Plateau is located in the south-eastern part of Roshamuul') return true end if hasMonsters then player:sendCancelMessage('You need kill all monsters') return true end if Game.getStorageValue(config.storage) <= 0 then if math.random(0,10000) < 7000 then player:say("PRRRR...*crackle*", TALKTYPE_MONSTER_SAY) item:remove(1) return true else player:say("PRRRROOOOOAAAAAHHHH!!!", TALKTYPE_MONSTER_SAY) end local raid = config.raid for y, x in pairs(raid) do local i = 1 while i <= #x do print(x[i]) print(x[i+1]) time = time + config.timeBetweenraid for j = 1, x[i+1] do Game.setStorageValue(config.storage,x[i+1]) addEvent(raids,time,x[i]) end i = i + 2 end end addEvent(Game.setStorageValue, config.globalEventTime, config.storage, 0) if config.cleanraid then addEvent(cleanRaid, config.globalEventTime) end item:remove(1) else player:sendCancelMessage('You need to wait') end end data/actions/actions.xml <action itemid="22535" script=ResonanceChamber.lua"/> ________________________________________________ Créditos: Omin
  9. [Help] Erro na hora de criar o character

    Tricoder reagiu a Pleke por uma resposta no tópico

    1 ponto
    Obrigado pela ajuda o problema foi que exclui o sample realmente da db.. obrigado msm pela ajuda .
  10. RME bug de sprites

    LukeHotsuin reagiu a Gaant por uma resposta no tópico

    1 ponto
    Vai na pasta data do servidor depois em item, copia tudo dps vai no rme e cola os arquivos, em cada versão ali da pasta do rme, (8,54,8,60...) Depois Baixa o client do tibia, na versão do ot que vc baixou Dai vai no client do seu jogo, e copia a .dat e .spr e coloca na pasta do tibia dps entra no rme vai em preferencias ultima aba e poe lá a pasta do tibia
  11. [Help] Erro na hora de criar o character

    Pleke reagiu a Tricoder por uma resposta no tópico

    1 ponto
    Bom, isso significa que não tem o sample de determinado vocação na sua database. Você precisa criar o sample de cada vocação.
  12. [Help] Erro na hora de criar o character

    Pleke reagiu a Gaant por uma resposta no tópico

    1 ponto
    Provavelmente pq vc inportou a sql errada ou excluiu o Character Sample na database do phpmyadmin
  13. RME bug de sprites

    LukeHotsuin reagiu a Gaant por uma resposta no tópico

    1 ponto
    Já tentou usar um rme extended? Configurou os itens lá na pasta do rme, e o client do tibia, trocou .dat e .spr?
  14. Tibia.dat erro RME

    Tava sem ideia reagiu a Tricoder por uma resposta no tópico

    1 ponto
    Está usando a versão extended? Lembrando que tem que passar o item.xml do seu server para a pasta 8.54 do mapa editor e abri-lo com o client do seu server.
  15. 1 ponto
    Olá a todos , vim atravez deste topico postar a minha possivel ultima contribuição , enfim sobre o conteudo , Pokemon Ex foi feita em cima do Pokemon Dash , entao sim ela é meio antiga , porem contem coisas que ninguem ainda tinha liberado , uma dessas coisas é o Nick system , claro ainda falta alguns ajustes mas é na parte lua , o codigo já está na source e compilado no exe do servidor OBS: Nao modifiquei quase nada nele , como peguei estou postando , sim contem bugs , mas para isso vou deixar as informações logo abaixo , Nao se esqueça de deixar aquele Like que ja ajuda muito ... nao seja um sangue suga ... INFORMAÇÔES BASICAS: - Base Pokemon Dash - Nick System 90% - Ditto System - Novas Pokeballs umas 4 - Novo mapa com a regiao de Johto adicionado (MAPA COM 70 MB UNICO) - Novos Npcs - Falta colocar remakes - Contem um site basico que peguei do xitiba na pasta do servidor - Client está dentro da pasta do servidor - os Criadores deixaram algumas lista ao que tem que se fazer ao servidor - Alguns tutoriais para quem ainda é iniciante dentro da pasta do servidor - BUG CHATO - é que os criadores tentaram criar um sistema de task mas enfim bugaram a xp , eu nao arrumei deixei como está , mas isso se encontra em creaturescripts - Vip system que da +XP ao personagem - Gym system ainda beta nada terminado - ENTRE VARIAS OUTRAS COISAS , Baixe já o servidor e deixe o seu feedback .... OBS: NAO DAREI SUPORTE A ESTE SERVIDOR. IMAGENS: Estou sem tempo para tirar prints , então favor quem baixar postar algumas prints DOWNLOAD (Client + Source + Site está tudo junto): lembrando que nao precisa do site para abrir o servidor https://www.mediafire.com/?kqn3c5tbfyhwnbu SCAN (Como o arquivo é grande tirei print do meu avast buscando por virus no arquivo): executável e dll's site pokemon servidor pasta PokemonEX 020611 - imagens e sprites CREDITOS: Todos que participaram desse servidor (nao sei o nome de ninguem) EU - Por ter compartilhado o conteudo OBS: Se for postar em outro forum favor poste junto com os créditos.. Entao é isso falei tudo que eu tinha que falar , volto a repitir , é antigo e contem bugs , mas é uma otima base , faça bom proveito ...
  16. Primeiro você precisa entender como as coisas são renderizadas no Tibia. Tendo isso em mente, vai perceber que qualquer textura maior que 32x32 vai ficar "em pé" no jogo e o jogador ficará por trás quando estiver a noroeste ou norte do objeto. Os atributos sempre serão aplicados no SQM destacado: Se você precisa criar um objeto grande e sólido, vai ter que fazer algumas gambiarras Para formar esse item, por exemplo, são criados 4 itens sólidos que serão montados depois: Para formar: As criaturas não passarão nos 4 SQMs usados pelo item. É preciso 1 item para cada SQM que você deseja bloquear. Se você adicionar apenas um item com a textura inteira as criaturas passarão por trás: O Tibia foi projetado para texturas de até 64x64 pixels. Desconheço algum item maior que isso no Tibia original que não seja divido em partes! Você também pode adicionar uma textura grande inteira e depois adicionar alguns itens por trás para bloquear a passagem, como algumas pessoas fazem.
  17. 1 ponto
    Não me lembro muito bem mas acho que o VC++ 2010 funciona no XP. Compilado com cast: tfs_x32.rar O sistema de resets no look deve ser no arquivo player.cpp, na função getDescription.
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo