Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''SCRIPTING''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • A Cidade OTBR
    • OTServ Brasil
    • Atendimento
    • Taverna
  • Projetos Open Source
    • Canary
    • OTServBR-Global
    • Mehah OTClient
    • MyAAC
  • OpenTibia
    • Notícias e Discussões
    • Suporte - Dúvidas, Bugs, Erros
    • Downloads
    • Tutoriais
    • Show-Off
  • Outros
    • Design

Encontrado 371 registros

  1. Scripting Cooldown server 8.6

    Como adicionar ou modificar cooldown em spells de um server 8.6? É possível?
  2. Scripting Problema com um script

    Estou com um problema em um script não entendo muito sobre. Error: http://prntscr.com/gdmvbe Peguei esse script: Script: data/globalevents/scripts/war/onstartup.lua function onStartup() resetaStorageWarEvent() return true end data/lib/102-war.lua WAR_GLOBAL_STORAGE_STATUS = 88800 WAR_GLOBAL_STORAGE_LIMITE_PARTICIPANTES = 88801 WAR_STORAGE_STATUS_PLAYER = 88800 WAR_STORAGE_TIME_VERMELHO = 88801 WAR_STORAGE_TIME_AZUL = 88802 WAR_TOTAL_PARTICIPANTES = 2 WAR_TEMPO_FORCAR_EVENTO = 1*60*1000 WAR_LEVEL_MINIMO_PARTICIPANTES = 100 WAR_ID_TELEPORTE = 1387 WAR_LOCAL_TELEPORTE = {x=167, y=53, z=8} WAR_LOCAL_SALA_ESPERA = {x=835, y=1328, z=7} WAR_LOCAL_SAIDA = {x=160, y=51, z=7} WAR_LOCAL_TIME_VERMELHO = { {x=806, y=1298, z=7}, {x=803, y=1297, z=7} } WAR_LOCAL_TIME_AZUL = { {x=863, y=1266, z=7}, {x=855, y=1264, z=7} } WAR_LOCAL_ARENA_BATALHA = { {x = 461, y = 426, z = 7}, {x = 544, y = 488, z = 7} } local WAR_PREMIOS = { trofeu = 10127, itens = {2520,2487,2498,2488}, dinheiro = {2160, 10, true} } local outfitJogadorTimeAzul = createConditionObject(CONDITION_OUTFIT) setConditionParam(outfitJogadorTimeAzul, CONDITION_PARAM_TICKS, -1) addOutfitCondition(outfitJogadorTimeAzul, {lookType = 131, lookHead = 114, lookBody = 88, lookLegs = 114, lookFeet = 114, lookTypeEx = 0, lookAddons = 3}) local outfitJogadoraTimeAzul = createConditionObject(CONDITION_OUTFIT) setConditionParam(outfitJogadoraTimeAzul, CONDITION_PARAM_TICKS, -1) addOutfitCondition(outfitJogadoraTimeAzul, {lookType = 139, lookHead = 114, lookBody = 88, lookLegs = 114, lookFeet = 114, lookTypeEx = 0, lookAddons = 3}) local outfitJogadorTimeVermelho = createConditionObject(CONDITION_OUTFIT) setConditionParam(outfitJogadorTimeVermelho, CONDITION_PARAM_TICKS, -1) addOutfitCondition(outfitJogadorTimeVermelho, {lookType = 134, lookHead = 0, lookBody = 94, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}) local outfitJogadoraTimeVermelho = createConditionObject(CONDITION_OUTFIT) setConditionParam(outfitJogadoraTimeVermelho, CONDITION_PARAM_TICKS, -1) addOutfitCondition(outfitJogadoraTimeVermelho, {lookType = 142,lookHead = 0, lookBody = 94, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}) WAR_IGNORAR_ACESSO = 3 function resetaStorageJogadorWarEvent(cid) setStatusJogadorWarEvent(cid, 0) setTimeVermelho(cid, 0) setTimeAzul(cid, 0) end function resetaStorageWarEvent() db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = " .. WAR_STORAGE_STATUS_PLAYER .. ";") db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = " .. WAR_STORAGE_TIME_VERMELHO .. ";") db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = " .. WAR_STORAGE_TIME_AZUL .. ";") setStatusWarEvent(0) setLimiteParticipantesWarEvent(WAR_TOTAL_PARTICIPANTES) end function setStatusWarEvent(estagio) setGlobalStorageValue(WAR_GLOBAL_STORAGE_STATUS, estagio) end function getStatusWarEvent() return getGlobalStorageValue(WAR_GLOBAL_STORAGE_STATUS) end function setLimiteParticipantesWarEvent(total) setGlobalStorageValue(WAR_GLOBAL_STORAGE_LIMITE_PARTICIPANTES, total) end function getLimiteParticipantesWarEvent() return getGlobalStorageValue(WAR_GLOBAL_STORAGE_LIMITE_PARTICIPANTES) end function getStatusJogadorWarEvent(cid) return getCreatureStorage(cid, WAR_STORAGE_STATUS_PLAYER) end function setStatusJogadorWarEvent(cid, status) doCreatureSetStorage(cid, WAR_STORAGE_STATUS_PLAYER, status) end function getTimeJogador(cid) if isTimeAzul(cid)then return "Time Azul" elseif isTimeVermelho(cid)then return "Time Vermelho" else return "Nao Definido" end end function getJogadoresSalaEsperaWarEvent() local jogadoresSalaEspera = {} for i, cid in pairs(getPlayersOnline()) do if(getStatusJogadorWarEvent(cid) == 1) then table.insert(jogadoresSalaEspera, cid) end end return jogadoresSalaEspera end function abreTeleporteWarEvent() if(getTileItemById(WAR_LOCAL_TELEPORTE, WAR_ID_TELEPORTE).uid == 0) then local teleporte = doCreateTeleport(WAR_ID_TELEPORTE, WAR_LOCAL_SALA_ESPERA, WAR_LOCAL_TELEPORTE) doItemSetAttribute(teleporte, "name", "teleporte evento war") doItemSetAttribute(teleporte, "aid", "8880") end end function fechaTeleporteWarEvent() local item = getTileItemById(WAR_LOCAL_TELEPORTE, WAR_ID_TELEPORTE) if(item.uid ~= 0) then doRemoveItem(item.uid) end end function teleportaJogadorCidadePadrao(jogador) local idCidadeNatal = getPlayerTown(jogador) local posicaoTemploCidadeNatal = getTownTemplePosition(idCidadeNatal) doTeleportThing(jogador, posicaoTemploCidadeNatal, true) doSendMagicEffect(posicaoTemploCidadeNatal, CONST_ME_TELEPORT) end function teleportaJogadorSalaEspera(cid) local acessoJogador = getPlayerAccess(cid) if(acessoJogador < WAR_IGNORAR_ACESSO) then setStatusJogadorWarEvent(cid, 1) local totalJogadoresSalaEspera = #getJogadoresSalaEsperaWarEvent() local limiteJogadoresWarEvent = getLimiteParticipantesWarEvent() local vagasDisponivel = limiteJogadoresWarEvent - totalJogadoresSalaEspera if(vagasDisponivel > 0) then doBroadcastMessage(getCreatureName(cid) .. " esta participando do Evento War. Ainda resta " .. vagasDisponivel .. " vaga(s) para o evento.") end end doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, WAR_LOCAL_SALA_ESPERA, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) end function setTimeVermelho(cid, status) doCreatureSetStorage(cid, WAR_STORAGE_TIME_VERMELHO, status) end function isTimeVermelho(cid) if(getCreatureStorage(cid, WAR_STORAGE_TIME_VERMELHO) == 1)then return true else return false end end function setTimeAzul(cid, status) doCreatureSetStorage(cid, WAR_STORAGE_TIME_AZUL, status) end function isTimeAzul(cid) if(getCreatureStorage(cid, WAR_STORAGE_TIME_AZUL) == 1)then return true else return false end end function getJogadoresTimeVermelho() local jogadoresTimeVermelho = {} for i, cid in pairs(getPlayersOnline()) do if(getStatusJogadorWarEvent(cid) == 2 and isTimeVermelho(cid)) then table.insert(jogadoresTimeVermelho, cid) end end return jogadoresTimeVermelho end function getJogadoresTimeAzul() local jogadoresTimeAzul = {} for i, cid in pairs(getPlayersOnline()) do if(getStatusJogadorWarEvent(cid) == 2 and isTimeAzul(cid)) then table.insert(jogadoresTimeAzul, cid) end end return jogadoresTimeAzul end function isWalkable(pos) if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 4620 then return false elseif getTopCreature(pos).uid > 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end function getLocalArenaWar(cid) local pos local ehPosicaoValida = false while(ehPosicaoValida == false)do local posx = {} local posy = {} local posz = {} local pir = {} for i=1, 5 do local posx_tmp, posy_tmp, posz_tmp if(isTimeAzul(cid))then posx_tmp = math.random(WAR_LOCAL_TIME_AZUL[1].x, WAR_LOCAL_TIME_AZUL[2].x) posy_tmp = math.random(WAR_LOCAL_TIME_AZUL[1].y, WAR_LOCAL_TIME_AZUL[2].y) posz_tmp = math.random(WAR_LOCAL_TIME_AZUL[1].z, WAR_LOCAL_TIME_AZUL[2].z) elseif(isTimeVermelho(cid))then posx_tmp = math.random(WAR_LOCAL_TIME_VERMELHO[1].x, WAR_LOCAL_TIME_VERMELHO[2].x) posy_tmp = math.random(WAR_LOCAL_TIME_VERMELHO[1].y, WAR_LOCAL_TIME_VERMELHO[2].y) posz_tmp = math.random(WAR_LOCAL_TIME_VERMELHO[1].z, WAR_LOCAL_TIME_VERMELHO[2].z) end local pir_tmp = 0 local spec = getSpectators({x=posx_tmp, y=posy_tmp, z=posz_tmp}, 3, 3, false) if(spec and #spec > 0) then for z, pid in pairs(spec) do if(isPlayer(pid)) then pir_tmp = pir_tmp + 1 end end end posx = posx_tmp posy = posy_tmp posz = posz_tmp pir = pir_tmp end local lowest_i = 1 for i=2, 5 do if(pir < pir[lowest_i]) then lowest_i = i end end pos = {x=posx[lowest_i], y=posy[lowest_i], z=posz[lowest_i]} if(isWalkable(pos))then ehPosicaoValida = true end end return pos end function teleportaJogadoresArenaWar() local tempoIniciarEvento = 10 for i, cid in pairs(getJogadoresSalaEsperaWarEvent()) do setStatusJogadorWarEvent(cid, 2) local jogadoresTimeVermelho = getJogadoresTimeVermelho() local jogadoresTimeAzul = getJogadoresTimeAzul() if(#jogadoresTimeVermelho == #jogadoresTimeAzul or #jogadoresTimeVermelho < #jogadoresTimeAzul)then setTimeVermelho(cid, 1) doAddCondition(cid, (getPlayerSex(cid) == 1) and outfitJogadorTimeVermelho or outfitJogadoraTimeVermelho) else setTimeAzul(cid, 1) doAddCondition(cid, (getPlayerSex(cid) == 1) and outfitJogadorTimeAzul or outfitJogadoraTimeAzul) end local localArenaWar = getLocalArenaWar(cid) doTeleportThing(cid, localArenaWar, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doCreatureSetNoMove(cid,true) addEvent(doCreatureSetNoMove,(tempoIniciarEvento+1)*1000, cid,false) addEvent(doPlayerSendTextMessage,(tempoIniciarEvento+1)*1000,cid,MESSAGE_TYPES["warning"],"Evento War Comecou!") for i = 0,tempoIniciarEvento do addEvent(doPlayerSendTextMessage,i*1000, cid, MESSAGE_TYPES["info"], "Evento War vai iniciar em "..tempoIniciarEvento-i.." segundos!") end end end function estaArenaWar(cid) return isInRange(getThingPos(cid),WAR_LOCAL_ARENA_BATALHA[1], WAR_LOCAL_ARENA_BATALHA[2]) end function forcarInicioWarEvent() local statusWarEvent = getStatusWarEvent() if(statusWarEvent == 1) then local estagio = statusWarEvent+1 local jogadoresSalaEspera = getJogadoresSalaEsperaWarEvent() if(#jogadoresSalaEspera > 1) then iniciarWarEvent(estagio, #jogadoresSalaEspera) else for i, jogador in pairs(jogadoresSalaEspera) do teleportaJogadorCidadePadrao(jogador) end resetaStorageWarEvent() doBroadcastMessage("Evento War foi cancelado.") end fechaTeleporteWarEvent() end end function iniciarWarEvent(estagio, totalParticipantes) setStatusWarEvent(estagio) setLimiteParticipantesWarEvent(totalParticipantes) if(estagio == 1)then abreTeleporteWarEvent() addEvent(forcarInicioWarEvent,WAR_TEMPO_FORCAR_EVENTO) doBroadcastMessage("Evento War foi iniciado. O evento esta limitado a " .. getLimiteParticipantesWarEvent() .. " jogadores, o teleporte vai fechar em ".. (WAR_TEMPO_FORCAR_EVENTO/60/1000) .." minutos ou quando atingir o limite de jogadores.") elseif(estagio == 2)then fechaTeleporteWarEvent() teleportaJogadoresArenaWar() end end function presentarJogadorWarEvent(ganhador) local nomeJogador = "["..getTimeJogador(ganhador).. "] "..getCreatureName(ganhador) local trofeu = doPlayerAddItem(ganhador, WAR_PREMIOS.trofeu, 1) doItemSetAttribute(trofeu, "name", "trofeu evento war "..os.date("%d/%m/%Y", os.time())) doItemSetAttribute(trofeu, "description", "Awarded to " .. nomeJogador .. " for winning the war event.") --for _,item in ipairs(WAR_PREMIOS.itens) do --doPlayerAddItem(ganhador, item, 1) --end local itemSortiado = math.random(#WAR_PREMIOS.itens) doPlayerAddItem(ganhador, WAR_PREMIOS.itens[itemSortiado], 1) if WAR_PREMIOS.dinheiro[3] then doPlayerAddItem(ganhador, WAR_PREMIOS.dinheiro[1], WAR_PREMIOS.dinheiro[2]) end doPlayerSave(ganhador, true) end function verificarTimeVencedor() local jogadoresTimeVermelho = getJogadoresTimeVermelho() local jogadoresTimeAzul = getJogadoresTimeAzul() local teveVencedor = false local timeVencedor = {} if(#jogadoresTimeAzul > 0 and #jogadoresTimeVermelho == 0)then teveVencedor = true timeVencedor = jogadoresTimeAzul doBroadcastMessage("Time Azul Ganhou.") elseif(#jogadoresTimeVermelho > 0 and #jogadoresTimeAzul == 0)then teveVencedor = true timeVencedor = jogadoresTimeVermelho doBroadcastMessage("Time Vermelho Ganhou.") end if(teveVencedor)then for i, ganhador in pairs(timeVencedor) do presentarJogadorWarEvent(ganhador) resetaStorageJogadorWarEvent(ganhador) doRemoveConditions(ganhador, false) doTeleportThing(ganhador, WAR_LOCAL_SAIDA, true) end resetaStorageWarEvent() end end
  3. Existe alguma maneira de controlar os re-spawns através do numero de jogadores online? Na verdade o que eu quero é que NUNCA haja respawn. Somente quando não tiver ninguem online no server. E sem reiniciar o server tbm. O server continua rodando normal, só q os bixo só dão respawn quando não tiver ninguem online. Ou seja, se vc quiser caçar novamente uma área, vc tem q deslogar e logar dnv... Isso é possível? Alguém sabe como fazer? --Edit1 Pode ser tbm ao pisar num determinado SQM reseta todos os respanws
  4. Scripting Ponte com timer

    function onUse(cid, item, frompos, item2, topos) gatepos1 = {x=488, y=475, z=4, stackpos=0} gatepos2 = {x=488, y=476, z=4, stackpos=0} gatepos3 = {x=489, y=475, z=4, stackpos=0} gatepos4 = {x=489, y=476, z=4, stackpos=0} brigde1 = getThingfromPos(gatepos1) brigde2 = getThingfromPos(gatepos2) brigde3 = getThingfromPos(gatepos3) brigde4 = getThingfromPos(gatepos4) if item.uid == 11001 and item2.itemid == 1945 then doCreateItem(5769,1,gatepos1) doCreateItem(5770,1,gatepos2) doCreateItem(5769,1,gatepos3) doCreateItem(5770,1,gatepos4) doTransformItem(item.uid,item2.itemid+1) doSendMagicEffect(topos, CONST_ME_SOUND_WHITE) doCreatureSay(cid, 'Click!', TALKTYPE_MONSTER, false, topos) addEvent(doswitchReturn,10000,topos,item2.itemid) elseif item.uid == 11001 and item2.itemid == 1946 then doCreatureSay(cid, 'Click!', TALKTYPE_MONSTER, false, topos) doRemoveItem(brigde1.uid,1) doRemoveItem(brigde2.uid,1) doRemoveItem(brigde3.uid,1) doRemoveItem(brigde4.uid,1) doSendMagicEffect(topos, CONST_ME_SOUND_WHITE) doTransformItem(item.uid,item2.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end function doswitchReturn(itemposition,oldid) local pos2 = getThingfromPos(itemposition) doTransformItem(pos2.uid,oldid) end O script tem com função criar uma ponte com o uso da alavanca e quando clica de volta, a ponte é removida. A função tempo altera a alavanca pro estado anterior, mas não remove os tiles da ponte. Alguma ideia ?
  5. Estou fazendo um projeto de OT "progressivo", com checkpoints, e gostaria que a posição de onde o player está ao deslogar não fosse salva. Assim, independente de onde ele deslogar, ele vai relogar no templo de sua cidade natal. Alguém faz ideia de como fazer isso? Grato desde já!
  6. Scripting Open e closed Trapdoor

    Estou tentando fazer o item 9624 (closed trapdoor) transformar para o item 9625 (open trapdoor) quando o personagem passar por cima. Tentei editar pelo items.xml para que funcionasse de maneira igual aos itens 293 (grass) e 294 (pitfall) porém não consigo fazer com que o item 9624 transforme no item 9625! Alguma ideia?
  7. Olá amigos. Por algum motivo que eu não estou entendendo, uma função baseada numa classe está me trazendo o argumento dela como nulo (nil), por mais que eu force o valor desta variável estaticamente. function Player:helloWorld(string) print("A frase é: " .. string) end Desta forma, SEMPRE o argumento "string" será nulo, por mais simples e intuitivo que isso seja. Porém, se eu fizer a função um pouco diferente, funciona normalmente: Player.helloWorld = function(string) Print("A sua frase é: " .. string) end Desta forma, funciona sem problemas. Porquê uma funciona o argumento, e a outra não? Alguém poderia me explicar e me dar um exemplo funcional? Obrigado! @EDIT Estou chamando ambas as funções desta forma: Player.helloWorld("blablabla"). E ela não funciona quando chamada tanto no mesmo arquivo, quanto em outro arquivo.
  8. Scripting [Dúvida] - Spawn

    Olá! Existe alguma maneira de tirar todas as criaturas do mapa no RME? Minha idéia era tirar todas as criaturas que já estão posicionadas no meu mapa e ir colocando elas de 1 a 1, à meu gosto. Desde já agradeço.
  9. Scripting [Dúvida] - Itens

    Olá. Estou tendo um problema em editar o item Depth Lorica: Em meu itens.xml só possui essas informações: Eu queria modificar ela do jeito que apenas paladins a usem (tirar o royal paladins e elite knights(???)), porém não vejo nada ali em que eu possa estar mudando pra fazer tal mudança. Alguém saberia me informar onde eu posso estar procurando para fazer essa mudança?
  10. Scripting [Dúvida] - Healing Spells

    Olá; Como configuro para as healing spells removerem o efeito slow? Estou precisando usar uma magia do tipo haste sempre que alguma criatura dá slow para remover o efeito. Queria colocar igual ao tibia.com, onde as magias do tipo healing curassem esse efeito. Desde já, agradeço.
  11. Scripting [Dúvida] - Spells: .xml e .lua

    Olá! Queria saber como funciona a configuração para calcular o dano de uma spell. Minha idéia é fazer as 4 waves (terra, ice, fire, energy) funcionarem do mesmo jeito e com o mesmo dano, só mudando apenas a natureza da spell. Se alguém souber e puder me ajudar, fico grato. Energy Wave: Edit Não só as waves, mas também os strikes, runas em área, runas em target, etc...
  12. Scripting [Dúvida/Erro] - Houses

    Olá. Está ocorrendo este erro em meu distro sempre que abro o servidor: http://imgur.com/a/roLqb Saberiam me informar que erro é este, e o porquê de ele estar acontecendo?
  13. Olá. Queria saber se tem como alterar a carga máxima que um certo item pode stackar. Pretendo fazer isso com as runas. Desde já, agradeço. Abraço!
  14. Scripting [Dúvida] - Tempo de Cooldown

    Olá! Estava testando algumas coisas do meu servidor, e acabei percebendo que as magias do tipo "healing" estão demorando muito em Cooldown, alguém saberia me dizer onde eu configuro isso?
  15. Olá. Acabei percebendo que, ao matar várias criaturas ao mesmo tempo, acaba demorando para as mesmas virarem dead corpses (quanto mais criaturas, maior a lentidão) e pra o personagem que as matou, ganhar a devida exp. Queria saber o que posso fazer pra melhorar isso, e como configurar para as experience points "stackarem". Por exemplo: O que acontece Existem dois wolves à minha volta, eu sou um Knight e dou um exori, um dos wolves morre por primeiro, e logo em seguida o outro também morre (viram dead wolves), e o meu personagem recebe duas vezes 25 experience points. O que eu queria que acontecesse Assim que meu Knight dá um exori, os dois wolves morressem e virassem dead wolves ao mesmo tempo, e meu personagem recebesse 50 experience points. Espero que tenha ficado tudo claro. Se puderem me ajudar mais uma vez, ficarei grato. Abraço!
  16. Olá. Toda vez que eu abro uma expertise door, meu personagem não se move em direção à ela, e ao sair do seu sqm, ela não se fecha, e acaba ocasionando esse erro no distro: http://imgur.com/a/2rUhB Alguém sabe o porquê de estar acontecendo isso, e o que eu faço pra arrumar?
  17. fala galera do Otserver, Preciso de uma ajudinha aqui to usando uma xp potion no meu servidor sistema de actions, ela ativa tudo certim bonitinho, porém não está mostrando os horários, Alguem consegueria colocar para mostrar o horario tipow assim! O Efeito da Exp Potion 3x Acabara em Xminutos, Xsegundos Aparecer com esse efeito "creatureEvent(doPlayerSendCancel," function onUse(cid, item, frompos, item2, topos) local pausa = 30*60*1000 -- (1000 = 1 segundos) Tempo que o script durará local texto = "Você Aumentou 3x sua Experiencia por 30 minutos" -- Texto que irá receber ao usar a potion. textofinal = "Acabou a Exp Potion 3x." -- Texto que irá receber quando o efeito da potion acabar. local exp = 3 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. local limitedeuso = 49016 local tempo = 30*60*1000 -- 1000 = 1s então 1000 vezes 60 vezes 30 = 30 minutos local textofinal1 = "Você já esta sob efeito da Exp Potion 3x espere o efeito acabar." local seuitem = 9942 -- seu item que dará double exp local efeito2 = 35 -- efeito que acontecera no momento que usar a pot --fim da parte configuravel não mecha se nao tiver conhecimento de scripting local timeEffect = 1801 -- tempo em segundos que o efeito vai apareceer no player, 31 = 30 segundos. sempre coloque 1 segundo a mais. function effect() if isPlayer(cid) then local pos = getCreaturePosition(cid) doSendMagicEffect(pos, efeito1) end end if item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() <= 0) then doRemoveItem(item.uid,1) doPlayerSetExperienceRate(cid,exp) doSendMagicEffect(frompos,efeito2) setPlayerStorageValue(cid, limitedeuso, os.time() + 1800) doPlayerSendTextMessage(cid,22,texto) addEvent(potion,pausa,cid) elseif item.itemid == seuitem and (getPlayerStorageValue(cid, limitedeuso) - os.time() > 0) then doPlayerSendTextMessage(cid,22,textofinal1) end return true end function potion(cid) doPlayerSetExperienceRate(cid,expfinal) doPlayerSendTextMessage(cid,22,textofinal) end
  18. Scripting [Erro] - Duplicate Loot

    Olá! Acabei encontrando um erro em que todas as criaturas estão com Loots duplicados, fui analisar e vi que no próprio distro mostra que pode ocorrer este erro. Porém, dando uma olhada mais aprofundada no arquivo .xml, acabei não entendendo como solucioná-lo. A mensagem é: "Set monsterLootMessage = 0 to prevent duplicate loot messages" Como podem ver na imagem à seguir: Porém, no arquivo Random Item Stats.xml, já tá "= 0" Acabei não entendendo muito o que fazer aqui, alguém pode me dar uma luz?
  19. Pessoal, então, sou novo no fórum, aprendi linguagem c# ano passado, e esse ano vou aprender c++, porém eu queria saber se existe alguma função que adiciona skill extra ao item. Eu sei que existe a função doItemSetAttribute, porém ela não adiciona skill extra ao item, ela adiciona ataque, arm, defesa, etc. Porém skill, speed, ela não adiciona Existe alguma função? Algum codigo para adicionar as sources?
  20. Scripting [Dúvida] Outfit por vocação

    Estou trabalhando em um projeto diferenciado, onde o jogador só terá o Outfit de acordo com sua vocação, porém, preciso saber como fazer isso. Alguém, por acaso, saberia como configurar um script para, por exemplo, um Paladin poder selecionar apenas o Outfit "Hunter", um Knight poder usar apenas o Outfit "Warrior", e assim por diante? E aproveitando, alguém sabe como eu posso estar migrando os Outfit do Tibia 7.6 para usar no 8.6? Desde já, agradeço!
  21. Scripting Day/Night System 7.6

    Tem como remover o Day/Night System da versão 7.60? Não gosto dessa implementação, os tiles ficam muito feios.
  22. Scripting Liberar Todos Outfit e Addons

    Boa noite galera, Sou novo com OT's, e estou com um dúvida. Gostaria de saber como deixou todos os outfits e addons liberados para todos os players?
  23. Queria pedia a ajuda de vcs, estou tendo um problema em meu dbo. versão : 8.60 é que as stages estão meio erradas tipo, as acc sem rb estão upando com a mesma xp das já rebornadas.. e não sei como resolver isso. ai só me resta deixar as stages todas difíceis, se não todo mundo da rb lv auto. preciso que alguém me ajude com esse problema pf. Exemplo: o player quando começa no otserv tem uma stage tipo do lv 100 a 400 é 20x, e do lv 401 a 600 é 10x. quando o player da o reborn "reset" começa lv 1 novamente só q as stages eu queria que fossem outras tipo do lv 100 a 400 40x, e do lv 401 a 600 20x. não sei como esplicar direito, só quem joga Dbo otserv sabe do que estou falando, simplesmente preciso que o server tenha 2 stages.xml 1 normal do server e a outra seja para os players que tenha uma storage no personagem.
  24. Olá pessoal! Sou dono do servidor de CDZ Online, e quero automatizar algumas coisas no meu servidor, mas todas funções que acho na internet para tentar criar uma mensagem global no meu servidor, não funcionam. Queria saber se alguem consegue criar um script 8.1 para mim e postar o código aqui, só mandando uma mensagem global. Se precisarem eu posto o servidor base que estou usando. Aires 0.4.5 - XML a versão que estou usando.
  25. Scripting BUG NPCS BLESS.

    bom dia alguem pode me ajudar to usando a bless no ot igual a global mais to com problema nas script dos npc SOMENTE O NPC DE CARLIN VENDE CERTO A BLESS O RESTANTE PARA NA MSG ABAIXO. DEPOIS DO YES ELE NAO FALA MAIS NADA NEM VENDE A BLESS TODOS OS OUTROS TAO ASIM SOMENTE CARLIN FUNCIONA CERTO. 12:15 Edala: Welcome, noble Caue. I can provide you with bless. 12:15 Caue [8]: bless 12:15 Edala: I can bless you with The Fire of the Suns or third bless 12:15 Caue [8]: fire of the suns 12:15 Edala: Here on the Suntower you may receive the blessing The Fire of The Suns. But we must ask of you to sacrifice 2000 gold. Are you still interested? 12:15 Caue [8]: yes
×