DU
action

[ITEM] Anti-Trap .

Por DuuhCarvalho, 17 de fev. de 2014 em Actions e Talkactions

trap
anti
anti-trap
item
duuh
carvalho
script
11
2.6k
17 de fevereiro de 2014 às 05:51

​Sabe quando um player te trapa e não tem escapatória, Aqui a solução .


Ao usar x item no Player Você troca de Posição com Ele .



​Claro que também não pode dar moleza pra quem foi traped .


Você só pode usar o item a cada X minutos.


E você só pode usar o item se não tiver com Skull.



vamos lá ..


em data / actions / scripts,


crie um arquivo.lua



e cole isso dentro :



function onUse(cid, item, fromPosition, itemEx, toPosition)

local time = 1 -- tempo por minuto
local storage = 1961 -- storage


local pos = getCreaturePosition(cid)
local pos2 = getCreaturePosition(itemEx.uid)
if isPlayer(itemEx.uid) then
if getDistanceBetween(pos, pos2) == 1 then
if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
if getCreatureSkullType(cid) == SKULL_NONE then
doTeleportThing(cid, pos2)
doTeleportThing(itemEx.uid, pos)
doSendMagicEffect(pos, 4)
doSendMagicEffect(pos2, 4)
setPlayerStorageValue(cid, storage, os.time()+time*1*60)
else
doPlayerSendCancel(cid, "Você está com Skull.")
end
else
doPlayerSendCancel(cid, "Você só pode usar esse item denovo a "..time.." Minutos.")
end
else
doPlayerSendCancel(cid, "Você está muito longe do jogador.")
end
else
doPlayerSendCancel(cid, "Você só pode usar este item em Players.")
end
return TRUE
end

e em Actions.xml coloque a tag :



<action itemid="IDdoItem" script="NomeDoArquivo.lua"/>

Editado Março 19 por DuuhCarvalho

17 de fevereiro de 2014 às 05:58

não e muito bom Porque tira a War, mas pode ser bem útil em um Server Global, já que o Global também aderiu a esse item.

17 de fevereiro de 2014 às 06:00

não e muito bom Porque tira a War, mas pode ser bem útil em um Server Global, já que o Global também aderiu a esse item.

 

para não tirar tanto assim a war , o player só pode usar se não tiver skull, pq se caso ele for trapado Red ele vai morrer !

VodkartV
17 de fevereiro de 2014 às 16:45

tem que colocar para checar se ele está mesmo trapado e não pode se mexer, porque só com skull ele vai poder bugar muita coisa, quest's ou houses

CodeurC
17 de fevereiro de 2014 às 16:59

EDIT

Errei o topico ;p

Editado Fevereiro 17 por Codeur

17 de fevereiro de 2014 às 18:02

tem que colocar para checar se ele está mesmo trapado e não pode se mexer, porque só com skull ele vai poder bugar muita coisa, quest's ou houses

 

depois eu faço isso .

 

Mais ele so consegui usar o item se tiver do lado do player.

se tiver longe não funfa .

VodkartV
19 de fevereiro de 2014 às 16:18

 

tem que colocar para checar se ele está mesmo trapado e não pode se mexer, porque só com skull ele vai poder bugar muita coisa, quest's ou houses

 

depois eu faço isso .

 

Mais ele so consegui usar o item se tiver do lado do player.

se tiver longe não funfa .

 

 

longe quer dizer o que? uma tela ? ele pode passar nas portas, paredes, etc... coloca outra função para checar se o player está na frente dele(até um limite de 2 sqm por exemplo)

 

 

if getDistanceBetween(pos, pos2) > 2 then
doPlayerSendCancel(cid, "Você pode usar este item até 2 sqm longe do jogador.") return true
end
19 de fevereiro de 2014 às 16:37

 

 

tem que colocar para checar se ele está mesmo trapado e não pode se mexer, porque só com skull ele vai poder bugar muita coisa, quest's ou houses

 

depois eu faço isso .

 

Mais ele so consegui usar o item se tiver do lado do player.

se tiver longe não funfa .

 

 

longe quer dizer o que? uma tela ? ele pode passar nas portas, paredes, etc... coloca outra função para checar se o player está na frente dele(até um limite de 2 sqm por exemplo)

if getDistanceBetween(pos, pos2) > 2 then
doPlayerSendCancel(cid, "Você pode usar este item até 2 sqm longe do jogador.") return true
end

 

editei lá o post .

é que na verdade o item que eu usei so podia da user no player se tivesse ao lado dele. nem 2 nem 3 sqm a mais.

Mais creio que outros items podiam dar use de longe, com essa função que você mandou não tem perigo , Thanks ><

biancasouzaB
22 de fevereiro de 2014 às 18:01

Oie, tenho essa spell que pode te ajudar em algo talvez, quando usada e o target está perto de você os dois trocam de lugar.

 

Spells.xml

<instant name="Anti Trap" words="Utevo Help" lvl="100" mana="500" prem="1" range="1" needtarget="1" exhaustion="10000" blockwalls="1" needlearn="1" event="script" value="Anti Trap.lua">
<vocation id="X"/>
</instant>

Anti Trap.lua

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4, 7)
function onCastSpell(cid, var)
local jogadorpos = getCreaturePosition(cid)
local target = getCreatureTarget(cid)
local monsterpos = getCreaturePosition(target)
if isPlayer(target) then
doTeleportThing(cid,monsterpos)
doTeleportThing(target,jogadorpos)
doSendMagicEffect(jogadorpos, 65)
doSendMagicEffect(monsterpos, 65)
return doCombat(cid, combat, var)
else
doPlayerSendTextMessage(cid,20,'You can only use it on creatures')
return doCombat(cid, combat, var)
end
end

Editado Fevereiro 22 por biancasouza

22 de fevereiro de 2014 às 18:06

 

Oie, tenho essa spell que pode te ajudar em algo talvez, quando usada e o target está perto de você os dois trocam de lugar.

 

Spells.xml

<instant name="Anti Trap" words="Utevo Help" lvl="100" mana="500" prem="1" range="1" needtarget="1" exhaustion="10000" blockwalls="1" needlearn="1" event="script" value="Anti Trap.lua">
<vocation id="X"/>
</instant>

Anti Trap.lua

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 4, 7)
function onCastSpell(cid, var)
local jogadorpos = getCreaturePosition(cid)
local target = getCreatureTarget(cid)
local monsterpos = getCreaturePosition(target)
if isPlayer(target) then
doTeleportThing(cid,monsterpos)
doTeleportThing(target,jogadorpos)
doSendMagicEffect(jogadorpos, 65)
doSendMagicEffect(monsterpos, 65)
return doCombat(cid, combat, var)
else
doPlayerSendTextMessage(cid,20,'You can only use it on creatures')
return doCombat(cid, combat, var)
end
end

 

 

brigado por tentar ajudar .

Mais isso não é um pedido ou uma duvida e sim um Script de Actions. rsrs , fofs ><

Editado Fevereiro 22 por DuuhCarvalho

biancasouzaB
22 de fevereiro de 2014 às 18:08

brigado por tentar ajudar .

 

 

Mais isso não é um pedido ou uma duvida e sim um Script de Actions. rsrs , fofa ><

 

D: desculpa e obrigada rsrs