Ir para conteúdo
  • 0

(Pedido) 3 Spells~


Riiicky

Pergunta

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 por Riiicky
Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 por Byerne
Link para o comentário
Compartilhar em outros sites

  • 0

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
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...