Histórico de Curtidas
-
skailord recebeu reputação de AllahuAkbar em Ajuda com Spell de buff!onde tem magicEffect n pode repetir o mesmo nome nas scripts de outros personagens
tipo se sasuke tiver magicEffect voce coloca para o naruto magicEffect2 assim o distro não
entra em conflito
-
skailord recebeu reputação de Adventure em Sistema Chuva Que Funcione Em 8.54Ae galera o Mod do Shaders, lembrando que somente funciona no OTClient 0.6.2 (Não sei o por q!!)
coloque essa pasta na "OTClient/ mods/"
mod_shaders.rar
agora extraia essa pasta em "OTClient/ data/"
shaders.rar
e agora é só configurar em "OTClient/ mods/ Mod_shaders/ shaders.lua"
ai tem as cordenadas e os efeitos que vc quiser e nem precisa mexer com sprite
-
skailord deu reputação a Nogard em Erro com script de mensagem por storagese for 1 storage usada, poderia ser 400 mensagens, bastaria buscar a storage +1.
local sagas = { [1] = {msg = 'player sem saga', [3] = {msg = 'message one'}, [5] = {msg = 'message two}, [7] = {msg = 'message tree} } sendo assim:
if getPlayerStorageValue(cid, storage) == 0 then doPlayerPopupFYI(cid, sagas[1].msg) else doPlayerPopupFYI(cid, sagas[getPlayerStorageValue(cid, storage+1].msg) bastaria setar os valores pares, inferior a saga:
valor 2 = Corresponderia a mensagem 3
valor 4 = Corresponderia a mensagem 5
valor 6 = Corresponderia a mensagem 7
Daria pra fazer com essas storages, bastaria você setar um valor inferior, ou adicionar um valor superior na array, 1 acima.
-
skailord deu reputação a Adriano SwaTT em (Resolvido)condição para poder falar com o npcBom dia.
Teste assim:
Boa sorte.
-
skailord recebeu reputação de ManoTobira em Ajuda com Spell de buff!onde tem magicEffect n pode repetir o mesmo nome nas scripts de outros personagens
tipo se sasuke tiver magicEffect voce coloca para o naruto magicEffect2 assim o distro não
entra em conflito
-
skailord deu reputação a ViitinG em (Resolvido)Piso que teleporta apenas quem tem a storageEu entendi errado,desculpa !
function onStepIn(cid, item, position, fromPosition) lugar = {x=1000, y=1000, z=7} if isPlayer(cid) then if getPlayerStorageValue(cid, 31561) >= 1 then doTeleportThing(cid, lugar) doPlayerSendTextMessage(cid, 25, "você foi encurralado!") end end return true end -
skailord deu reputação a xWhiteWolf em Magia que EmpurraBom galera, a um tempo atrás um amigo pediu uma magia que empurrasse e minha primeira iniciativa foi dar uma procura por aí. A maioria dos scripts que eu achei não funcionava, o resto funcionava cheio dos mais variados bugs então eu decidi pegar um desses scripts como base e fazer a magia que empurra.
Testado e funcionando em TFS 0.3.6 (Crying Damson).
Não lembro de onde eu peguei e nem quem fez porque o autor não colocou créditos no script mas quero deixar bem claro de que
80% dos créditos vão pra esse pessoa, visto que eu apenas me baseei na metodologia dele pra fazer o script funcionar sem bugs
Sem mais delongas, vamos ao script:
OBS: Ele está 200% funcional, não empurra pra dentro de pz e nem buga de nenhuma forma.
Agora no spells.xml adicione:
<instant name="Get off here" words="exani grav" lvl="160" mana="500" prem="1" direction="1" exhaustion="2000" needlearn="0" event="script" value="empurrar.lua"> <vocation id="6"/> <vocation id="7"/> <vocation id="5"/> </instant> Faça bom proveito!!
EDIT: Algumas imagens pra vocês
PS: Dano adicionado pelo membro @Emersonssss ;]
-
skailord deu reputação a xWhiteWolf em Tanker MethodFala galera do TibiaKing, vim trazer pra vocês uma magia bem simpleszinha mas que vai ajudar muita gente com aquelas dúvidas de funções que mudam outfit.
Testado e funcionando em TFS 0.3.6 (8.54)
Explicação: É uma spell que ao usar muda seu outfit para o de um warmaster (acho q é isso o nome), aumentando seu escudo e sua vida pelo preço de toda a sua mana. É uma spell excelente para servers com bastante RPG pois dá praticamente uma segunda vida ao player e permite que Knights virem exímios blockers nas quests da vida. Coloquei no meu server e graças a essa spell a galera conseguiu fazer a POI depois de quase 6 meses de server. Vale ressaltar que o player não ganha vida, apenas dobra a quantidade máxima e ele tem que healar a quantidade a mais que ele ganhou.
spells\scripts\tanker.lua
setConditionParam(condition, CONDITION_PARAM_TICKS, 60000) e doSetCreatureOutfit(cid, mtanker, 60000) e doSetCreatureOutfit(cid, ftanker, 60000) da mesma forma que você pode alterar a quantidade de shield e de vida que você ganha ao utilizá-la mas eu tenho razões pra acreditar que a forma atual dela é a ideal.
Aqui no meu server ela tá definida para apenas Knights mas vocês podem editar isso a gosto.
spells.xml
<instant name="tanker" words="uteta gran vita" lvl="220" mana="300" prem="1" aggressive="0" selftarget="1" exhaustion="2000" needlearn="0" event="script" value="tanker.lua"> <vocation id="8"/> </instant> EDIT: Algumas imagens de como a magia funciona:
-
skailord deu reputação a xWhiteWolf em Glacier Set dando conditions em áreaEai galera, esse script eu fiz para um membro aqui do TibiaKing no suporte e achei que ficou bem legal então decidi postar.
Explicação: Ao tomar um dano maior que 300, se o player tiver usando a glacier robe, uma área em volta dele vai ser congelada e todos dentro dessa área ficarão com slow. Caso o player estiver com o full glacier set, além do paralyze, as pessoas dentro da área receberão dano de freezing
crie um arquivo em creaturescripts\scripts chamado glacierrobe.lua e adicione isso daqui dentro dele
agora vá em creaturescripts\scripts e procure um arquivo chamado login.lua.
dentro dele coloque isso (de preferencia embaixo dos outros registerCreatureEvent):
registerCreatureEvent(cid, "glacierrobe") Lembre-se que se vc quiser repetir isso pra outros set's você tem que repetir todo o processo, tanto no creaturescripts.xml quanto no login.lua
no meu server além do set glacier eu uso os outros 3 set's elementais, ficando assim:
EDIT:: Algumas imagens pra vocês verem como o script funciona:
-
skailord deu reputação a xWhiteWolf em Precisa estar perto de aguaFala galera do TibiaKing, pra quem não me conhece eu sou o White Wolf, antigo Night Wolf.. eu venho trazer pra vocês um script que eu to desenvolvendo nas minhas horas vagas e que vai trazer bastante RPG pro server de vocês.
Servidor testado: The Forgotten Server 0.3.6 (Crying Damson)
Versão do Cliente: 8.45
Explicação: Pra quem já jogou AvaOT/Korelin, deve ter notado que algumas magias da tribo da água necessitam estar perto de água para poderem ser usadas, e foi me baseando nisso que eu criei esse script.
É uma magia que ataca os inimigos se estiver com a target e se não estiver com target ela adiciona vida à você, mas precisa estar perto da água para ser usada!!
Sem mais delongas, vamos ao script:
crie um arquivo chamado waterneeded.lua e coloque em spells\scripts\
--[[ Credits: 30% to Molinero because I used his telekinesis script as base 60% to me (Night Wolf) for doing the rest of the script 10% to the owner of AvaOT for giving me the idea of such thing ~~~FEEL FREE TO EDIT AS YOU WISH, THIS IS JUST A SIMPLE SCRIPT BUT DON'T REMOVE THE CREDITS.~~~ ]] local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, TRUE) function onCastSpell(cid, var) local water = {490, 491, 492, 493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} local spot = getPlayerPosition(cid) local nxp = spot.x - 3 local pxp = spot.x + 3 local nyp = spot.y - 3 local pyp = spot.y + 3 local k = 1 local target = getCreatureTarget(cid) for absice = nxp, pxp do for coordinate = nyp, pyp do local pos = {x = absice, y = coordinate, z = spot.z, stackpos = 0} local thing = getThingfromPos(pos) if thing.itemid > 0 then if isInArray(water, thing.itemid) == TRUE then k = k+1 if target == 0 then local CreatureHealth = getCreatureMaxHealth(cid) local lifedraw = math.floor(CreatureHealth /(20*k)) doCreatureAddHealth(cid, lifedraw, 1) doSendAnimatedText(spot, "+"..lifedraw, 18) doSendMagicEffect(pos, 1) doSendMagicEffect(spot, 12) else local tgtpos = getCreaturePosition(target) local life = math.random (200,1000) doCreatureAddHealth(target, -life, COMBAT_LIFEDRAIN) doSendAnimatedText(tgtpos, "-"..life, 89) doSendDistanceShoot(pos, tgtpos, 36) doSendMagicEffect(tgtpos, 53) doSendMagicEffect(pos, 1) return doCombat(cid, combat, var) end end end end end if k ~= nil and k < 2 then doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) doPlayerSendCancel(cid, "You need to be around water to cast this spell..") end return doCombat(cid, combat, var) end OBS1: Perceba que tá bem rudimentar esse script, até porque essa é a primeira versão dele, pretendo melhorar o script com o tempo
OBS2: Se você quiser que o script ataque mais de uma vez pra cada water que tiver no mapa substitua na linha 42:
return doCombat(cid, combat, var) por
doCombat(cid, combat, var) E NÃO ESQUEÇA DE DIMINUIR DO DANO local life = math.random (200,1000) e no spells.xml adicione: <instant name="Water Need" words="utura grav vita" lvl="150" mana="300" prem="1" range="4" casterTargetOrDirection="1" blockwalls="1" exhaustion="3000" needlearn="0" event="script" value="waterneeded.lua"> <vocation id="5"/> <vocation id="6"/> <vocation id="7"/> <vocation id="8"/> </instant> Se você curtiu, não remova os créditos.. Sinta-se livre pra melhorar a magia do jeito que você quiser (uma primeira alteração que eu sugiro é mudar o dano e colocar como sendo um math.random do level do player x magicLevel dele, pra magia ter um dano que aumenta com o tempo, e não algo totalmente aleatório).
Gostaria de salientar também que essa é a primeira versão de tal script, tem muita coisa pra melhorar e dá pra diminuir esse script consideravelmente, ficaria super feliz se vocês me ajudassem a melhorar isso e remover coisas desnecessárias
EDIT: Trouxe algumas imagens pessoal:
-
skailord deu reputação a xWhiteWolf em Darkness Pact QuestHoje vou ensinar vocês a fazer uma quest com bastante RPG (e com um pouquinho de esforço talvez o melhor sistema já visto num OTSERV!!)
É uma quest que você tem um determinado tempo pra matar um monstro e entrar num teleporte ou a passagem será bloqueada
"tá, mas oque difere essa quest de qualquer script de arena que tenha aí pelo fórum?"
na verdade nada, mas no meu server eu coloquei um tempo bem ridículo (8 segundos) e é tecnicamente impossível chegar do outro lado.
"então você fez uma quest que não dá pra fazer, é isso mesmo?"
não meu caro amigo, é uma quest que foi feita pra ser pensada. Um dos players entra na quest e termina ela, daí outro player ativa a alavanca e ele passa.. fazendo com que o pessoal só consiga passar com a ajuda de um amigo. Se você conseguir trabalhar em equipe em prol de um prêmio a sua recompensa é a oportunidade de fazer um pacto com as trevas.
"masoque??"
isso mesmo que você entendeu, você ganha a chance de abrir mão da sua vida (literalmente) pra receber uma spell nova.
~~ Hoje eu vou ensinar a reproduzirem esse sistema caralhudo no server de vocês:
Tudo começa no map editor quando você vai fazer uma área + ou - igual a essa e colocar os seguintes actions/unique ids
Agora vamos aos scripts:
actions\scripts\newquest.lua
Feito isso você vai precisar preparar uma sala aonde o player será teleportado caso ele consiga passar e coloque uma alavanca nessa sala.
Na alavanca você deve colocar o actionid 6102 e uma plaquinha explicando sobre o pacto
daí você adiciona isso no actions.xml
<action actionid="6102" script="alavanca de magia.lua"/> e crie o script 'alavanca de magia.lua' que deverá conter o seguinte:
Feito tudo isso agora só falta criar a magia Target Spell que no caso é essa daqui:
e colocar no spells.xml:
<instant name="Target Spell" words="exevo res" lvl="120" maglv="10" mana="500" exhaustion="3000" prem="0" needlearn="1" script="especiais/seguidor.lua"> <vocation id="6"/> <vocation id="7"/> <vocation id="5"/> <vocation id="8"/> </instant> FIM.
Agora você só precisa editar as actions pra rodarem de acordo com as posições do seu server então vamos às explicações:
SCRIPT1:
local tempo = 8000 ---- tempo até a porta fechar
local wall1 = {x=612, y=345, z=7, stackpos=1} -- local da primeira pedra
local pos1 = getThingfromPos(wall1)
local wall2 = {x=653, y=345, z=7, stackpos=1} --- local da segunda pedra
local pos2 = getThingfromPos(wall2)
local monster1 = {x=615, y=345, z=7, stackpos=1} --- local que cria o monstro, no caso eu uso o Juggernaut mas vc pode editar dentro do script
local posmonster1 = getThingfromPos(monster1)
local monster3 = {x=654, y=345, z=7, stackpos=1} --- Ultima posição antes do teleporte, serve pra remover o monstro
local idparede = 9788 --- id do obstáculo q será criado
local alavanca = {x=610, y=344, z=7, stackpos=1} -- POSIÇÃO DA ALAVANCA
local alavancapos = getThingfromPos(alavanca) SCRIPT2:
local topos = {x=609, y=345, z=7, stackpos=1} -- posição que vai ser teleportado caso clique na alavanca de 'FAIL QUEST'
Espero que vocês tenham curtido
Aqui tem mais duas imagens pra vocês
Alavanca:
Magia:
EXPLICANDO A MAGIA: Os morcegos seguem a direção que você tá olhando, se vc tiver um target eles seguem o target.
-
skailord deu reputação a Absolute em Erro ao criar personagem pelo siteMudou tb no config.lua?
-
skailord deu reputação a Wend em Erro ao criar personagem pelo siteTais usando Gesior ou Modern acc?
-
skailord deu reputação a xWhiteWolf em (Resolvido)Spell de revidar ataqueo meu é 8.54 e eu testei antes de te enviar
os storages pra se mudar são nessas linhas aqui, tanto no creaturescripts como na spells e no login.lua (3482101)
local config = { storage = 3482101, local config = { storage = 3482101, if getPlayerStorageValue(cid, 3482101) ~= 0 then setPlayerStorageValue(cid, 3482101, 0) E AQUI VOCÊ PODE ALTERAR O STORAGE DO COOLDOWN (55964)
if os.time() - getPlayerStorageValue(cid, 55694) >= config.cooldown then setPlayerStorageValue(cid, 55694, os.time()) doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55694))).." seconds.") Todos tem que estar iguais pra dar certo e note que nenhum outro script que eu te passei pode usar o mesmo storage tanto pro cooldown como pra verificar a magia ;]
-
skailord deu reputação a xWhiteWolf em (Resolvido)Spell para ficar intocavel@skailord, você não pode dar up no tópico dos outros a não ser que tenha passado 24 hrs. Leia as regras
spells\scripts\especiais\invencible.lua
local config = { storage = 3482101, cooldown = 30, --- tempo entre um uso e outro duration = 5, --- duração effect1 = 29 -- efeito que sai ao falar a spell } local outfit = createConditionObject(CONDITION_INVISIBLE, config.duration * 1000, false) function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, 55695) >= config.cooldown then setPlayerStorageValue(cid, 55695, os.time()) doSendMagicEffect(getCreaturePosition(cid), config.effect1) setPlayerStorageValue(cid, config.storage, os.time() + config.duration) doCreatureSay(cid,"UNTOUCHABLE!!!", 19) doAddCondition(cid, outfit) doPlayerSendTextMessage(cid, 27, "You have now ".. config.duration .." seconds of invulnerability.") else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55695))).." seconds.") return false end return true end spells.xml
<instant name="testeTK" words="naruto3" lvl="16" mana="500" prem="1" aggressive="0" exhaustion="1000" needlearn="0" event="script" value="especiais/invencible.lua"> </instant> creaturescripts\scripts\login.lua:
---------- Invencible ---------------- registerCreatureEvent(cid, "invencible") if getPlayerStorageValue(cid, 3482101) ~= 0 then setPlayerStorageValue(cid, 3482101, 0) end creaturescripts.xml:
<event type="statschange" name="invencible" event="script" value="invencible.lua"/> creaturescripts\scripts\invencible.lua
local config = { storage = 3482101, effect1 = 2 --- efeito ao ser atacado estando invulnerável } function onStatsChange(cid, attacker, type, combat, value) if value >= 1 and (type == STATSCHANGE_HEALTHLOSS or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == STATSCHANGE_MANALOSS)) then if getPlayerStorageValue(cid,config.storage) - os.time() > 0 and isCreature(attacker) then doSendMagicEffect(getCreaturePosition(cid), config.effect1) doSendAnimatedText(getCreaturePosition(cid), "0", 180) return false end end return true end Usei o mesmo storage da outra spell que fiz pra vc uchihagaeshi, mude o storage em todos os scripts ;]
-
skailord deu reputação a xWhiteWolf em (Resolvido)Spell para ficar intocavelpodia pelo menos me agradecer dando rep no tópico né, to fazendo tudo de boa vontade..
-
skailord deu reputação a xWhiteWolf em (Resolvido)Spell para ficar intocavelsó muda a spell e tira a condition invisible:
local config = { storage = 3482101, cooldown = 30, --- tempo entre um uso e outro duration = 5, --- duração effect1 = 29 -- efeito que sai ao falar a spell } function onCastSpell(cid, var) if os.time() - getPlayerStorageValue(cid, 55695) >= config.cooldown then setPlayerStorageValue(cid, 55695, os.time()) doSendMagicEffect(getCreaturePosition(cid), config.effect1) setPlayerStorageValue(cid, config.storage, os.time() + config.duration) doCreatureSay(cid,"UNTOUCHABLE!!!", 19) doPlayerSendTextMessage(cid, 27, "You have now ".. config.duration .." seconds of invulnerability.") else doPlayerSendCancel(cid, "Your skill is in cooldown, you must wait "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55695))).." seconds.") return false end return true end -
skailord deu reputação a Nemat em Ml de players disparado!Vá em config.lua e edite:
formulaMagic = 1.0
rateMagic = xxx
Deve ser isso..
-
skailord deu reputação a Lekstar em client da cipsoft asseita spr e dat extendidos?Aceita.
Te ajudei ? REP+
-
skailord deu reputação a xWhiteWolf em Hirashin Ni No DanFala galera do TK, um cara tinha pedido no suporte pra eu fazer essa spell aqui http://youtu.be/ZWrsRvVYgys?t=1m54s e eu fiz rapidinho e ficou uma bosta, então eu decidi melhorar ela e postar aqui pra vocês.
O vídeo é bem explicativo então eu acho que não preciso ficar prologando isso daqui, se vc não quiser ver o vídeo tente entender pelas fotos:
Bom, antes de tudo vá em spells.xml e coloque isso daqui:
<instant name="Tibia King" words="Hirashin ni no dan" lvl="50" mana="100" prem="1" range="6" 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> aqui vc configura nome da magia, palavras pra usar ela, level pra usar, mana que custa, se precisa ser premio, o alcance máximo dela, se precisa de um target (nessa magia em específico eu vou pedir pra que vc não mexa nisso), se ela é bloqueada pelas paredes (1 quer dizer que sim), a exaustão entre um uso e outro (nesse caso vc usa a magia e precisa esperar 1 segundo (1000 milisegundos) pra usá-la novamente) se ela precisa ser aprendida (0 significa que vc já vem com ela) e em value você tem o diretório em que ela vai ficar (no caso dentro da pasta spells\scripts vai ter uma pasta chamada especiais e dentro dessa pasta vai ter um arquivo chamado playerport.lua
Feito isso crie o arquivo playerport.lua que deverá conter o seguinte:
local config = { storage = 49708, tempo = 1.5, effect = 65 } local exception = {"Trainer", "Training Monk", "GOD"} function onCastSpell(cid, var) local name = getCreatureName(getCreatureTarget(cid)) if not isInArray(exception, name) then if getPlayerStorageValue(cid, config.storage) <= 0 then doPlayerSetStorageValue(cid, config.storage, 1) doSendMagicEffect(getThingPos(cid), config.effect) doSendMagicEffect(getThingPos(variantToNumber(var)), config.effect) addEvent(function() doPlayerSetStorageValue(cid, config.storage, 0) if isCreature(cid) and isCreature(variantToNumber(var)) then if isWalkable(getCreaturePosition(variantToNumber(var)), false, true, true) then doTeleportThing(cid, getThingPos(variantToNumber(var)), true) arr = {3} doAreaCombatHealth(cid, 1, getThingPos(variantToNumber(var)), arr, -getPlayerLevel(cid), -2*(getPlayerLevel(cid)), 0) elseif isCreature(cid) and not isWalkable(getCreaturePosition(variantToNumber(var)), false, true, true) then doPlayerSendCancel(cid, "You can't reach your target") end 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't use this spell in this creature.") return false end return true end Ali no começo é possível configurar algumas coisas do script:
o script em si é bem fácil de se configurar.
Agora pra evitar possíveis bugs você deve ir em creaturescripts\scripts\login.lua e adicionar essas linhas antes do ultimo return true:
---------- PlayerPort--------------- if getPlayerStorageValue(cid, 49708) ~= 0 then setPlayerStorageValue(cid, 49708, 0) end Lembrando que o storage no login.lua tem que ser igual ao storage no script!!
OBS: a fórmula pode ser mudada nessa linha aqui:
doAreaCombatHealth(cid, 1, getThingPos(variantToNumber(var)), arr, -getPlayerLevel(cid), -2*(getPlayerLevel(cid)), config.effectdamage) aqui é a fórmula:
-getPlayerLevel(cid), -2*(getPlayerLevel(cid)) sendo min, max respectivamente. Em outras palavras, o mínimo que a magia tira é o level do player e o máximo que ela tira é 2x o level;
Espero que vcs tenham gostado :]
-
skailord deu reputação a xWhiteWolf em Dois Tipo De Spell Que Teleporta1)
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 -
skailord deu reputação a Eduardo Carvalho em Dois Tipo De Spell Que TeleportaTa ae.. Agora é pelo nome , ngm tem o nome igual 'rsrs
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) if isPlayer(cid) then for index, pid in pairs(pos) do if index == getCreatureName(cid) then local a = getTileItemById(pos[index], item) if a.uid > 0 then doRemoveItem(a.uid) end end end doPlayerSendTextMessage(cid, 22, "O item sumiu.") end end function onCastSpell(cid, var) if getPlayerStorageValue(cid, storage) - os.time() <= 0 then pos[getCreatureName(cid)] = 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 for index, pid in pairs(pos) do if index == getCreatureName(cid) then doTeleportThing(cid, pid) doSendMagicEffect(getCreaturePosition(cid), 10) end end end return true end o bom é que se mesmo o player deslogar e depois logar , se o item ainda tiver no lugar, o mesmo ainda é teleportado.
whitewolf, vlw por reportar o bug.
-
skailord recebeu reputação de babyloiz em Sistema Chuva Que Funcione Em 8.54Quando eu tiver no PC eu mando
-
skailord deu reputação a Eduardo Carvalho em (Resolvido)spells de teleporteTa ae mano..
o conteúdo dos tópicos são o mesmo.
http://www.tibiaking.com/forum/topic/35546-dois-tipo-de-spell-que-teleporta/
-
skailord deu reputação a Kurwanuss em (Resolvido)script de item que teleporta--ACTIONS.xml-- <action itemid="ID do item" script="nome do arquivo.lua"/> ---SCRIPT--- function onUse(cid, item, frompos, item2, topos) local config = { pz = "yes", -- players precisam estar em protection zone para usar? ("yes" or "no"). battle = "yes", -- players deve estar sem battle ("yes" or "no") pos = {x=276, y=71, z=7} ---- Cordenadas } if(config.pz == "yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"você precisa estar em protection zone pra poder teleportar.") return TRUE end if(config.battle == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar sem battler pra poder teleportar.") return TRUE end if item.itemid == 5091 then ---- id do item doPlayerSendTextMessage(cid,22,"Nossa Este Artefato é Muito Poderoso!!!") -- mensagem quando ele for usado doTeleportThing(cid,config.pos) doSendMagicEffect(getCreaturePosition(cid), 10) doSendMagicEffect(frompos,6) end return 1 end