Histórico de Curtidas
-
Merascylla deu reputação a marcot em [PEDIDO] Tile que da dano em x vocation@bismarkzika,
Qual é a condição a ser satisfeita para parar o damage? O jogador sair do piso??
Caso seja, aqui está o script:
Nome: [PEDIDO] Tile que da dano em x vocation
Distro utilizada nos testes: Aries Server to Tibia 8.1 - Version 4.0 based on OTServ SVN Version 0.6.0
Comportamento: Caso um jogador de uma das vocations especificadas na lista config.vocation pise no local indicado, um contador será inicializado e, a cada tickTime segundos o jogador receberá damagePerTick de dano caso permaneça neste local.
Em data/movements/movements.xml, adicione esta tag:
<movevent event="StepIn" actionid="9999" script="vocation_damage.lua" />
Em data/movements/scripts crie um arquivo chamado vocation_damage.lua e cole isto dentro dele:
-- [PEDIDO] Tile que da dano em x vocation by marcot local config = { vocation = {4}, -- Lista de Vocations afetadas pelo damage damagePerTick = 50, -- Dano recebido a cada tick tickTime = 5 -- Tempo do dano (segundos) } -- Main function onStepIn(cid, item, pos) if not isPlayer (cid) then return false end if isInArray(config.vocation, getPlayerVocation(cid)) then infos = { cid = cid, pos = getPlayerPosition(cid), } addEvent (damageCondition, config.tickTime * 1000, infos) end return true end -- Funcao para comparar duas coordenadas (Retorna true caso sejam iguais) function comparePositions (posA, posB) if posA.x == posB.x and posA.y == posB.y and posA.z == posB.z then return true end return false end -- Funcao responsavel pela condition do player receber dano function damageCondition (infos) if comparePositions (infos.pos, getPlayerPosition(infos.cid)) then doCreatureAddHealth (infos.cid, -config.damagePerTick) addEvent (damageCondition, config.tickTime * 1000, infos) end end
-
Merascylla deu reputação a Gustavo Ntos em [PEDIDO] NPC que teleporta um player por vezquest.lua
local DESTINO = {x = 2521, y = 2280, z = 14} -- POSIÇÃO DA QUEST local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, "quest") then selfSay("Voce quer ir mesmo para a quest??", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then doSendMagicEffect(getThingPos(cid), 10) npcHandler:releaseFocus(cid) doTeleportThing(cid, DESTINO) doSendMagicEffect(DESTINO, 10) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
<?xml version="1.0" encoding="UTF-8"?> <npc name="Quest" script="quest.lua" walkinterval="1000"> <health now="100" max="100"/> <look type="468"/> <parameters> <parameter key="module_shop" value="1"/> <parameter key="message_greet" value="Olá eu posso te levar para a {Quest}.."/> </parameters> </npc>
-
Merascylla deu reputação a hiquezerah em (Resolvido)Actions teleport.Qual servidor ou website você utiliza como base? Otx
Qual o motivo deste tópico? Olá rapazeada do Tibiaking, Boa noite!!
Fiz esse script simples para o meu servidor com o intuinto de colocar um pouco mais de rpg em clicar em alguns lugares diferentes no cenário.
Existe varios lugares que eu precisarei utilizar esse script, e seria muito melhor utilizar apenas um script para todos os locais ao envés de criar vários scripts, sabe?
Alguém poderia me ajudar a colocar uma actionid para cada teleport dentro do mesmo script?
ex: poder repetir o script dentro dele mesmo e mudar os locais e a actionid
local teleport1 = {x=283, y=984, z=6}
local teleport2 = {x=284, y=985, z=6}
if isPlayer(cid) then -- actionid 222
doTeleportThing(cid, teleport1)
doSendMagicEffect(getPlayerPosition(cid), 12)
end
else
if isPlayer(cid) then -- actionid 111
doTeleportThing(cid, teleport2)
doSendMagicEffect(getPlayerPosition(cid), 12)
end
end
Você tem o código disponível? Se tiver publique-o aqui:
function onUse(cid, item, fromPosition, item2, toPosition) local teleport = {x=283, y=984, z=6} if isPlayer(cid) then doTeleportThing(cid, teleport) doSendMagicEffect(getPlayerPosition(cid), 12) end end
Olá rapazeada, desculpe-me a minha preguiça e não ter tentado ir um pouco mais no script, acabei fazendo alguns teste e consegui resolver, postarei o resultado embaixo caso alguém precise.
function onUse(cid, item, fromPosition, item2, toPosition) local teleport1 = {x=283, y=984, z=6} local teleport2 = {x=291, y=976, z=7} -- Pos que irá teleportar, repita um desses caso queira adicionar mais algum teleport -- if isPlayer(cid) and item.uid == 12222 then -- mude o "12222" para cada teleport e adicione ao item no remeres doTeleportThing(cid, teleport1) doPlayerSendTextMessage(cid,25,"Passagem Secreta") doSendMagicEffect(getPlayerPosition(cid), 12) end -- Se quiser adicionar mais teleportes repita apenas até o end if isPlayer(cid) and item.uid == 12223 then -- mude o "12223" para cada teleport e adicione ao item no remeres doTeleportThing(cid, teleport2) -- mude de acordo com o local criado la encima doPlayerSendTextMessage(cid,25,"Succes") doSendMagicEffect(getPlayerPosition(cid), 12) end -- este aqui end Em action.xml adicione as tags
<action uniqueid = "12222" event = "script" value = "teleportes/goa1.lua" />
<action uniqueid = "12223" event = "script" value = "teleportes/goa1.lua" />
-
Merascylla deu reputação a Storm em (Resolvido)PISO QUE DA DANO ALEATORIO@Gnius
local danos = { {10, 3}, {20, 6}, {30, 5}} -- {Porcentagem, effect} function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end local dmg = danos[math.random(1, #danos)] local damage = math.ceil((tonumber(dmg[1])* 0.01) * getCreatureMaxHealth(cid)) doSendMagicEffect(getThingPos(cid), dmg[2]) doSendAnimatedText(getThingPos(cid), '- ' .. damage, TEXTCOLOR_LIGHTBLUE) doCreatureAddHealth(cid, - damage) return true end
-
Merascylla deu reputação a zipter98 em Ditto Memory System por talkactionOK, isto não é exatamente um sistema, visto que é composto por um único arquivo com um único callback, mas enfim.
Antes de começar a desenvolver o tópico, digo-lhes: o código é para poketibia, não outros derivados ou Tibia comum.
Introdução:
A pedidos de um amigo, resolvi escrever este script. Por não programar em OTClient, optei por escrevê-lo em uma talkaction. Para aqueles que não conhecem o sistema, consiste em praticidade para as transformações do Ditto: ao invés de repetir o cansativo processo de procurar o pokémon que deseja-se copiar, você pode simplesmente salvá-lo na memória do Ditto para, sempre que quiser, transformá-lo em um único comando.
Você pode configurar quantos slots de "memória" quiser.
Para usar os comandos, você deve colocar uma pokebola com um Ditto no slot 8/feet (a.k.a "pokeball slot"). Alguns, no entanto, necessitam também que o pokémon esteja "solto".
Comandos:
/memory check Use este comando para verificar os atuais slots de seu Ditto. /memory forget [slot] Use este comando para deletar uma memória salva, respectiva ao slot indicado. Ex.: /memory forget 1 /memory save [slot] Use este comando para salvar uma memória, respectiva ao slot indicado. A memória salva será do pokémon que seu Ditto estará transformado no momento. Ex.: /memory save 3 /memory [slot] Use este comando para transformar seu Ditto no pokémon que estiver armazenado no slot indicado. Ex.: /memory 2 PS: Você também pode usar !memory.
Instalação:
Em data/talkactions/scripts, crie um arquivo com extensão .lua, nomeie-o dittomemory e coloque o seguinte conteúdo:
Em data/talkactions, abra o arquivo talkactions.xml e coloque a seguinte tag: <talkaction words="/memory;!memory" event="script" value="dittomemory.lua"/> Versão testada: 8.54 Servidor testado: PDA by Slicer, versão 1.9 É um código bem simples, escrito em poucos minutos. Resolvi postá-lo pois gostei do resultado apresentado. Para alguns, pode não ser tão útil; para outros, espero que sim. É isso aí, até mais.