Postado Junho 15, 2014 10 anos Eu estou vindo aqui galera do TK perdir dois tipo de spell que teleporta espero que alguém min ajude. Bom gente o primeiro spell é quando um player fala a palavra magica cairá o item no chao, esse item ficará no chao com o dados x= xxx y=yyy z=z salvo, quando o player usa a magia novamente o player será teleportado para onde o item esta. Só que o item ele vaii ter um templo, quando o templo acaba o item sumirá. Queria que quando o item sumisse o player que uso a magia, receberá uma mensagem dizendo quer o x item sumiu. Bom esse é o primeiro spell. O Segundo spell fucionar assim o player usa a magia em outro player(Attack Target) ficará o espirito no target, que passa de 1 minunto o player que uso a magia será teleportando pra cima do target. O target pode correr pra onde quisse, mas quando passa 1 minunto cairá o player que uso a magia em cima. Bom esse foi o segundo pedido espero que deu pra entende os dois perdidos. Agradeços e espera que alguem min ajude!
Postado Junho 15, 2014 10 anos Este é um post popular. 1) itemport.lua: local config = { storage = 49607, tempo = 10, itemid = 6217 } local positions = {} function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.storage) <= 0 then table.insert(positions, getThingPos(cid)) doPlayerSetStorageValue(cid, config.storage, #positions) doCreateItem(config.itemid, getThingPos(cid)) doSendMagicEffect(getThingPos(cid), 3) addEvent(function() if isCreature(cid) then doPlayerSendTextMessage(cid, 22, "Your item has expired.") doPlayerSetStorageValue(cid, config.storage, 0) table.remove(positions, getPlayerStorageValue(cid, config.storage)) end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doTeleportThing(cid, positions[getPlayerStorageValue(cid, config.storage)]) doSendMagicEffect(getThingPos(cid), 10) end return true end 2) playerport.lua local config = { storage = 49608, tempo = 10 } function onCastSpell(cid, var) if isPlayer(getCreatureTarget(cid)) then local name = getCreatureName(getCreatureTarget(cid)) if getPlayerStorageValue(cid, config.storage) <= 0 then doPlayerSetStorageValue(cid, config.storage, 1) doSendMagicEffect(getThingPos(cid), 65) doSendMagicEffect(getThingPos(getCreatureByName(name)), 65) addEvent(function() if isCreature(cid) then doPlayerSetStorageValue(cid, config.storage, 0) doTeleportThing(cid, getThingPos(getCreatureByName(name))) end end, 1000*config.tempo) elseif getPlayerStorageValue (cid, config.storage) > 0 then doSendMagicEffect(getThingPos(cid), 2) doPlayerSendCancel(cid, "You've already set your target.") end else doPlayerSendCancel (cid, "You can only use this spell on players.") end return true end e no spells.xml: <instant name="TK SUPORT" words="itemport" lvl="50" mana="100" prem="1" exhaustion="1000" needlearn="0" event="script" value="especiais/itemport.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> <instant name="TK SUPORT" words="playerport" lvl="50" mana="100" prem="1" range="7" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="especiais/playerport.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> agora vá em creaturescripts\scripts\login.lua e adicione essas linhas antes do ultimo return true if getPlayerStorageValue(cid, 49607) == -1 then setPlayerStorageValue(cid, 49607, 0) end if getPlayerStorageValue(cid, 49608) ~= 0 then setPlayerStorageValue(cid, 49608, 0) end Editado Junho 15, 2014 10 anos por xWhiteWolf (veja o histórico de edições)
Postado Junho 15, 2014 10 anos Fiz tb uma versão para a primeira spells, caso não goste use a do whitewolf bom, quando acaba o tempo o player é avisado e o item some. local storage = 987123 -- storage local item = 2160 -- id do item local time = 20 -- tempo em segundos que o item vai ficar na posição. local pos = {} function terminus(cid) local a = getTileItemById(pos[1], item) if a.uid > 0 then doRemoveItem(a.uid) end if isPlayer(cid) then doPlayerSendTextMessage(cid, 22, "O item sumiu.") end table.remove(pos, 1) end function onCastSpell(cid, var) if getPlayerStorageValue(cid, storage) - os.time() <= 0 then table.insert(pos, getCreaturePosition(cid)) setPlayerStorageValue(cid, storage, os.time()+time) doCreateItem(item, getCreaturePosition(cid)) doSendMagicEffect(getCreaturePosition(cid), 3) addEvent(terminus, time*1000, cid) elseif getPlayerStorageValue (cid, storage) - os.time() >= 1 then doTeleportThing(cid, pos[1]) doSendMagicEffect(getCreaturePosition(cid), 10) end return true end
Postado Junho 15, 2014 10 anos pelo que eu to vendo seu script tem um bug: se dois players usarem a spell o player 2 será teleportado pra posição 1. Confere isso pra mim e me diz se eu to errado. OBS: seu script ficou muito melhor doque o meu mas tem esse bugzinho aí (acredito eu)
Postado Junho 15, 2014 10 anos pelo que eu to vendo seu script tem um bug: se dois players usarem a spell o player 2 será teleportado pra posição 1. Confere isso pra mim e me diz se eu to errado. OBS: seu script ficou muito melhor doque o meu mas tem esse bugzinho aí (acredito eu) De fato ! Isso nem passou na minha cabeça 'rsrs vou editar.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.