RI

(Pedido) 3 Spells~

Por Riiicky, 21 de out. de 2011 em Scripts

otserv
tibia
13
2.1k
RiiickyR
22 de outubro de 2011 às 21:31

Olá Poovo do :XTibia_smile:

 

Eu estou precisando de 3 Magias

 

1º Magia ~

Uma Runa que impossibilite qualquer player de te dar exiva por 2 minutos

e com 3 cargas se tiver como pois meu ot runa é infinity tbm ;D

 

2º Magia ~

Uma magia que quando quando usada de frente para o player o player

seja empurrado a 5 sqms de distancia e que saia o efeito de puff que esqueci o nome ;D

 

3º Magia ~

(eu nao sei se existe jeito de criar essa rune mais , se nao tiver deculpa a minha

nobbise)

Rune que quando usada cria 3 Summon de um bicho que escolherei e ficará ,

para o jogador que usar a rune ,

ah como no meu ot a rune sao infinitas teria como botar um jeito de a runa

gastar com 3 cargas?

 

Protocolo 8.60

 

Vlw Poovo do XTibia ~

e malz qualquer coisa

 

 

 

@UP

Editado Outubro 23 por Riiicky

RiiickyR
25 de outubro de 2011 às 18:33

Algum SpellMaker Porfavor Tem como me ajudar?

alldakieA
25 de outubro de 2011 às 18:42

Acho que não e atoa que não te ajudam,

Magias muito complicada, eu pessoalmente nunca vi a 2ª e a 3ª

 

A primeira você poderia colocar exhaustion na magia, assim ficaria mais fácil...

Para fazer isso:

 

Vá em (data\spells) e abra o arquivo chamado "spells.xml" e procure pela magia, e mude apenas o código abaixo, que fica na linha da magia:

exhaustion="1000"

1000 ~ 1 segundo

etc.

RiiickyR
25 de outubro de 2011 às 18:53

Ii mano acho que se nem intendeu direito :x



 

tipo nao quero botar exhauted e sim um script que impossibilite a pessoa te de dar exiva ;x

bepokemonB
25 de outubro de 2011 às 19:28

Aqui as tres magias:

Primeira magia:

 

Tem duas partes, a spell e a do exiva.

Spell:

function onCastSpell(cid, var)
return exhaustion.set(cid, "noexiva", 120)
end

Exiva (talkaction):

function onSay(cid, words, param)
if param then
playerName = string.gsub(tostring(param), '"(.-)')
if not isPlayer(getPlayerByName(playerName)) then
doPlayerSendCancel(cid, "Player not found.")
return false
end

if exhaution.get(getPlayerByName(playerName), "noexiva") then
doPlayerSendCancel(cid, "This player is protect from tracking spells.")
return false
end

end
return TRUE
end

 

Segunda magia:

 

local function isWalkable(pos, creature, proj, pz)-- by Nord
   if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
   if getTopCreature(pos).uid > 0 and creature then return false end
       cr = getThingFromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = STACKPOS_TOP_CREATURE})
       if isPlayer(cr.uid) or isMonster(cr.uid) then return false end
   if getTileInfo(pos).protection and pz then return false, true end
   local n = not proj and 3 or 2
   for i = 0, 255 do
       pos.stackpos = i
       local tile = getTileThingByPos(pos)
       if tile.itemid ~= 0 and not isCreature(tile.uid) then
           if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
               return false
           end
       end
   end
   return true
end

function onCastSpell(cid, var)

local target = getThingFromPos(getPlayerLookPos(cid))

if not isCreature(target) then
doPlayerSendCancel(cid, "You must use this spell in a creature.")
return false
end

for x=1,5 do
local direction = getCreatureLookDirection(cid)
if direction == NORTH then
newpos = {x = getThingPos(cid).x, y = getThingPos(cid).y-x, z = getThingPos(cid).z}
elseif direction == EAST then
newpos = {x = getThingPos(cid).x+x, y = getThingPos(cid).y, z = getThingPos(cid).z}
elseif direction == SOUTH then
newpos = {x = getThingPos(cid).x, y = getThingPos(cid).y+x, z = getThingPos(cid).z}
elseif direction == WEST then
newpos = {x = getThingPos(cid).x-x, y = getThingPos(cid).y, z = getThingPos(cid).z}
end
if isWalkable(newpos) or isInArray({1487,1488,1489,1490,1491,1492,1493,1494,1495,1496},getThingFromPos(newpos).itemid) then
doTeleportThing(target.uid, newpos)
doSendMagicEffect(newpos, CONST_ME_POFF)
end
end
return true
end

 

Terceira magia:

 

 

Se eu entendi funciona assim:

Voce usa a runa em um monstro, depois quando usar em si mesmo poderar sumonar 3 desses para si. E gastara a runa depois que usar.

function onUse(cid, item, fromPosition, itemEx, toPosition)
if isCreature(itemEx.uid) then
creature = itemEx.uid
if creature ~= cid then
doItemSetAttribute(item.uid, "summon", getCreatureName(creature.uid))
doPlayerSendTextMessage(cid, 18, "The summon "..getCreatureName(creature.uid).." was saved in your spell rune.")
else
if not getItemAttribute(item.uid, "summon") then
doPlayerSendCancel(cid, "You have no summons saved in your spell rune.")
return false
end
for x=1,3 do
monster = doCreateMonster(getItemAttribute(item.uid, "summon"), fromPosition)
doConvinceCreature(cid, monster)
end
doPlayerSendTextMessage(cid, 18, "You\'ve summoned 3 "..getItemAttribute(item.uid, "summon")..".")
doRemoveItem(item.uid, math.min(3, item.type))
end
end
return true
end

 

 

Testa as tres e me diz oque acontece.

Editado Outubro 26 por Byerne

RiiickyR
26 de outubro de 2011 às 09:58

Testando jajá edito...

1 mês depois...
VincV
02 de novembro de 2011 às 22:36

edit

removi por que tava dando erro

Editado Novembro 3 por lordbug99

2 meses depois...
TondesT
13 de janeiro de 2012 às 11:53

Byerne-------------

 

ONDE COLOCA ESSA SPELL ?

japavrb15J
13 de janeiro de 2012 às 19:19

em data/spells/scripts/attacks

procure um tutorial

 

flw :]

TondesT
14 de janeiro de 2012 às 18:51

Aqui as tres magias:

Primeira magia:

 

Tem duas partes, a spell e a do exiva.

Spell:

function onCastSpell(cid, var)
return exhaustion.set(cid, "noexiva", 120)
end

Exiva (talkaction):

function onSay(cid, words, param)
if param then
playerName = string.gsub(tostring(param), '"(.-)')
if not isPlayer(getPlayerByName(playerName)) then
doPlayerSendCancel(cid, "Player not found.")
return false
end

if exhaution.get(getPlayerByName(playerName), "noexiva") then
doPlayerSendCancel(cid, "This player is protect from tracking spells.")
return false
end

end
return TRUE
end

 

Segunda magia:

 

local function isWalkable(pos, creature, proj, pz)-- by Nord
if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
if getTopCreature(pos).uid > 0 and creature then return false end
	cr = getThingFromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = STACKPOS_TOP_CREATURE})
	if isPlayer(cr.uid) or isMonster(cr.uid) then return false end
if getTileInfo(pos).protection and pz then return false, true end
local n = not proj and 3 or 2
for i = 0, 255 do
	pos.stackpos = i
	local tile = getTileThingByPos(pos)
	if tile.itemid ~= 0 and not isCreature(tile.uid) then
		if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
			return false
		end
	end
end
return true
end

function onCastSpell(cid, var)

local target = getThingFromPos(getPlayerLookPos(cid))

if not isCreature(target) then
doPlayerSendCancel(cid, "You must use this spell in a creature.")
return false
end

for x=1,5 do
local direction = getCreatureLookDirection(cid)
if direction == NORTH then
newpos = {x = getThingPos(cid).x, y = getThingPos(cid).y-x, z = getThingPos(cid).z}
elseif direction == EAST then
newpos = {x = getThingPos(cid).x+x, y = getThingPos(cid).y, z = getThingPos(cid).z}
elseif direction == SOUTH then
newpos = {x = getThingPos(cid).x, y = getThingPos(cid).y+x, z = getThingPos(cid).z}
elseif direction == WEST then
newpos = {x = getThingPos(cid).x-x, y = getThingPos(cid).y, z = getThingPos(cid).z}
end
if isWalkable(newpos) or isInArray({1487,1488,1489,1490,1491,1492,1493,1494,1495,1496},getThingFromPos(newpos).itemid) then
doTeleportThing(target.uid, newpos)
doSendMagicEffect(newpos, CONST_ME_POFF)
end
end
return true
end

 

Terceira magia:

 

 

Se eu entendi funciona assim:

Voce usa a runa em um monstro, depois quando usar em si mesmo poderar sumonar 3 desses para si. E gastara a runa depois que usar.

function onUse(cid, item, fromPosition, itemEx, toPosition)
if isCreature(itemEx.uid) then
creature = itemEx.uid
if creature ~= cid then
doItemSetAttribute(item.uid, "summon", getCreatureName(creature.uid))
doPlayerSendTextMessage(cid, 18, "The summon "..getCreatureName(creature.uid).." was saved in your spell rune.")
else
if not getItemAttribute(item.uid, "summon") then
doPlayerSendCancel(cid, "You have no summons saved in your spell rune.")
return false
end
for x=1,3 do
monster = doCreateMonster(getItemAttribute(item.uid, "summon"), fromPosition)
doConvinceCreature(cid, monster)
end
doPlayerSendTextMessage(cid, 18, "You\'ve summoned 3 "..getItemAttribute(item.uid, "summon")..".")
doRemoveItem(item.uid, math.min(3, item.type))
end
end
return true
end

 

 

Testa as tres e me diz oque acontece.

Coloca essa a spell 1 e 2 para ser sem runa
japavrb15J
14 de janeiro de 2012 às 19:18

é so pega alguma runa tipo

sudden death desmancha tudo dentro

e por o spelld entro dela

se nao souber fz iso tem tutoriais tbm...

2 semanas depois...
TondesT
23 de janeiro de 2012 às 17:21

é so pega alguma runa tipo

sudden death desmancha tudo dentro

e por o spelld entro dela

se nao souber fz iso tem tutoriais tbm...

não pego ;/
1 ano depois...
vinnevinneV
28 de agosto de 2013 às 10:07

na segunda spells aparece you must use this spell in a creature. n da pra ataka player nem monsters