JU
pedido

Spell de Clone

Por Junior001, 09 de mar. de 2014 em Scripts

otserv
tibia
20
5.3k
Junior001J
09 de março de 2014 às 15:31

Olá Galerinha do Xtibia estou aqui hoje para pedir uma spell para vocês :D

 

Essa spell quero que quando o Player fala clone, cria-se um clone dele com a mesma outfit, mesmo nome, e mesmo attack :D

 

Eu possuo o doSetCreatureCustom na Source ja adicionei

 

Versão da TFS 0.3.6

 

é isso Obrigado pela atenção darei REP+ para quem puder min ajudar :D

DuuhzinhowD
09 de março de 2014 às 16:02

Tipo esse?

 

function onCastSpell(cid, var)

local from,to = {x=962, y=885, z=7},{x=973, y=892, z=7} -- começo e final do mapa
local from2,to2 = {x=979, y=901, z=7},{x=991, y=905, z=7} -- começo e final do mapa
local playerpos = getPlayerPosition(cid)
local cloth = getCreatureOutfit(cid)
local health = getCreatureHealth(cid)
local maxhealth = getCreatureMaxHealth(cid)
local MaximoSummon = 2 --- Maximo de Monstros Sumonados!! No Caso So Posso Sumonar 5 Clones
local summons = getCreatureSummons(cid)
if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) then
doPlayerSendCancel(cid, "Você não pode usar Summons Aqui!") return true
end
if(table.maxn(summons) < MaximoSummon) then -- no summons
local clone = doCreateMonster("clone", playerpos)
doConvinceCreature(cid, clone)
setCreatureMaxHealth(clone, maxhealth)
doCreatureAddHealth(clone, health)
doSetCreatureOutfit(clone, cloth, -1)
doSendMagicEffect(playerpos, 2)
return TRUE
end
end
Junior001J
09 de março de 2014 às 16:09

@Edit, Não funcionou :/ bom pode-se dizer que funciono só que o clone não vem com o mesmo nome da pessoa que o invocou :/ mais veio com a mesma outfit :D

Editado Março 9 por Junior Silva

DuuhzinhowD
09 de março de 2014 às 16:45

@Edit, Não funcionou :/ bom pode-se dizer que funciono só que o clone não vem com o mesmo nome da pessoa que o invocou :/ mais veio com a mesma outfit :D

Entendo.. vou ver se consigo ajeitar isso, caso eu consiga irei postar aqui.. :)

09 de março de 2014 às 17:13

Peguei o do duuh como se disse que funcionou e ve se assim da :

 

 

 

function onCastSpell(cid, var)

local from,to = {x=962, y=885, z=7},{x=973, y=892, z=7} -- começo e final do mapa
local from2,to2 = {x=979, y=901, z=7},{x=991, y=905, z=7} -- começo e final do mapa
local playerpos = getPlayerPosition(cid)
local cloth = getCreatureOutfit(cid)
local health = getCreatureHealth(cid)
local maxhealth = getCreatureMaxHealth(cid)
local MaximoSummon = 2 --- Maximo de Monstros Sumonados!! No Caso So Posso Sumonar 5 Clones
local nome = getCreatureName(cid)
local summons = getCreatureSummons(cid)
if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) then
doPlayerSendCancel(cid, "Você não pode usar Summons Aqui!") return true
end
if(table.maxn(summons) < MaximoSummon) then -- no summons
local clone = doCreateMonster("clone", playerpos)
doConvinceCreature(cid, clone)
setCreatureMaxHealth(clone, maxhealth)
doCreatureAddHealth(clone, health)
doSetCreatureOutfit(clone, cloth, -1)
doSetCreatureName(clone, nome, 9999999)
doSendMagicEffect(playerpos, 2)
return TRUE
end
end

Vê se vai funcionar

Editado Março 9 por eryrrel

09 de março de 2014 às 17:36

gostei da ideia se não conseguirem , se eu tiver um tempo eu faço .

Junior001J
09 de março de 2014 às 20:20

 

Peguei o do duuh como se disse que funcionou e ve se assim da :

 

 

 

function onCastSpell(cid, var)

local from,to = {x=962, y=885, z=7},{x=973, y=892, z=7} -- começo e final do mapa
local from2,to2 = {x=979, y=901, z=7},{x=991, y=905, z=7} -- começo e final do mapa
local playerpos = getPlayerPosition(cid)
local cloth = getCreatureOutfit(cid)
local health = getCreatureHealth(cid)
local maxhealth = getCreatureMaxHealth(cid)
local MaximoSummon = 2 --- Maximo de Monstros Sumonados!! No Caso So Posso Sumonar 5 Clones
local nome = getCreatureName(cid)
local summons = getCreatureSummons(cid)
if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) then
doPlayerSendCancel(cid, "Você não pode usar Summons Aqui!") return true
end
if(table.maxn(summons) < MaximoSummon) then -- no summons
local clone = doCreateMonster("clone", playerpos)
doConvinceCreature(cid, clone)
setCreatureMaxHealth(clone, maxhealth)
doCreatureAddHealth(clone, health)
doSetCreatureOutfit(clone, cloth, -1)
doSetCreatureName(clone, nome, 9999999)
doSendMagicEffect(playerpos, 2)
return TRUE
end
end

Vê se vai funcionar

 

 

Deu este erro

[09/03/2014 20:20:29] [Error - Spell Interface]

[09/03/2014 20:20:30] data/spells/scripts/clone2.lua:onCastSpell
[09/03/2014 20:20:30] Description:
[09/03/2014 20:20:30] data/spells/scripts/clone2.lua:21: attempt to call global 'doSetCreatureName' (a nil value)
[09/03/2014 20:20:30] stack traceback:
[09/03/2014 20:20:30] data/spells/scripts/clone2.lua:21: in function <data/spells/scripts/clone2.lua:1>
09 de março de 2014 às 20:50

uma duvida tem um tempo pro clone sumir ?

Junior001J
09 de março de 2014 às 20:52

uma duvida tem um tempo pro clone sumir ?

 

Bela sugestão pode ter sim :D

Editado Março 9 por Junior Silva

10 de março de 2014 às 07:06
Melhor resposta

nossa que merda é essa ? "doSetCreatureName(clone, nome, 9999999)"

seloco, mas enfim se vc tem o setCreatureName deixe seu script assim

 

 

function onCastSpell(cid, var)

local cloth = getCreatureOutfit(cid)
local health = getCreatureHealth(cid)
local maxhealth = getCreatureMaxHealth(cid)
local MaximoSummon = 2 --- Maximo de Monstros Sumonados!! No Caso So Posso Sumonar 2 Clones
local summons = getCreatureSummons(cid)
if(table.maxn(summons) < MaximoSummon) then -- no summons
local pos = getPlayerPosition(cid)
local bpos = {x=pos.x+2, y = pos.y, z = pos.z}
local farAwayPos = {x = 2347, y = 56, z = 7} --Muda isto/Change This!! -- coloca um local afastado do mapa pois a função só funciona qnd um bicho ta longe da tela do player
local Bunshin = doCreateMonster("Bunshin", farAwayPos)
doConvinceCreature(cid, Bunshin)
setCreatureMaxHealth(Bunshin, maxhealth)
doCreatureAddHealth(Bunshin, health)
doSetCreatureOutfit(Bunshin, cloth, -1)
setCreatureName(Bunshin, "".. getCreatureName(cid) .."", "a ".. getCreatureName(cid) .."")
addEvent(doSendMagicEffect, 300, pos, 2)
addEvent(doTeleportThing, 300, Bunshin, pos)
return TRUE
end
end

Editado Março 28 por craigmabbit

CreatservC
10 de março de 2014 às 16:46

eu vou testa tb

3 semanas depois...
WiihtopW
27 de março de 2014 às 23:06

deu certo?

meubkM
28 de março de 2014 às 16:09

nunca vi essa função q vc colocou ae : doSetCreatureCustom

 

 

creio q seje mais viável vc usar está:

http://www.xtibia.com/forum/topic/191971-tutorial-colocando-a-funcao-docreatecustommonster-no-c/

28 de março de 2014 às 16:15

Jesus é só procurar pela função setCreatureName e da doCreateMonster normal..

WiihtopW
28 de março de 2014 às 16:18

visconde ,me ajude pf eu to com esse script porem to sem o spell para sumon o monster