function isSummon(sid)
for c, cid in pairs(getCreatureSummons(cid)) do
if (cid == sid) then
return true
end
end
return false
end
test
By eduardo190696, 16 de set. de 2012 in Scripts
info
Group: Marquês
Joined: 02/08/12
Posts: 1k
Reputation: +234
Tibia Character: Maurolkit

function isSummon(sid)
for c, cid in pairs(getCreatureSummons(cid)) do
if (cid == sid) then
return true
end
end
return false
end
test
info
Group: Visconde
Joined: 11/08/10
Posts: 477
Reputation: +175
Gender: Masculino

function isSummon(cid, monster) return getCreatureMaster(monster) == cid end
function onCombat(cid, target) if isPlayer(cid) and isSummon(cid, target) then doPlayerSendCancel(cid, "You can't attack your dragon or best.") return false end return true end
deqlqr forma fica mais facil, somente:
function onCombat(cid, target) if cid == getCreatureMaster(target) then doPlayerSendCancel(cid, "You can't attack your dragon or best.") return false end return true end
Edited Setembro 16 by Eskylo
Beleza amigo, qual sua dúvida? Já leu o post que você fez? Colocou sua script e a função que você fez (que por acaso podia ser 1000x mais simples, rápida e limpa) e não perguntou nada...
Se o problema for não funcionar a script, é provavelmente porque você esqueceu de registrar o creature event nos players pelo login.lua
info
Group: Visconde
Joined: 22/09/10
Posts: 474
Reputation: +47

@Eskylo, funcionou 100% +rep, Só que agora como eu faço para que o summon não acerte o dono, porque quando o summon solta uma spell e acaba acertando o seu dono, o dono leva um rit do próprio summon, faço para não ocorrer isso ?
@Edit
@Brun123
desse jeito, o player não pode atacar nem um summon, e eu quero para que ele não possa atacar só o seu summon.
ou seja, o player não podia atacar o summon que ele invocou, mais pode atacar o summon de outros players.
Edited Setembro 17 by eduardobean
info
Group: Visconde
Joined: 11/08/10
Posts: 477
Reputation: +175
Gender: Masculino

pros summons nao 'combaterem' os donos seria:
function onCombat(cid, target)
if isInArray(getCreatureSummons(target), cid) then
return false
end
return true
end
info
Group: Visconde
Joined: 22/09/10
Posts: 474
Reputation: +47

@Eskylo, eu dei rep, mais não funcionou, e o player fica com uma Yellow Skull.
login.lua
registerCreatureEvent(cid, "SummonAntKillPlayer")
no creaturescript.xml
<event type="combat" name="SummonAntKillPlayer" event="script" value="SummonAntKillPlayer.lua"/>
e o script
function onCombat(cid, target) if isInArray(getCreatureSummons(target), cid) then return false end return true end
Edited Setembro 18 by eduardobean
você tem que registrar essa creature event no summon...
info
Group: Visconde
Joined: 22/09/10
Posts: 474
Reputation: +47

Desculpe mais não entendi.
info
Group: Visconde
Joined: 11/08/10
Posts: 477
Reputation: +175
Gender: Masculino

@Eskylo, eu dei rep, mais não funcionou, e o player fica com uma Yellow Skull. login.luaregisterCreatureEvent(cid, "SummonAntKillPlayer")no creaturescript.xml
e o script
function onCombat(cid, target) if isInArray(getCreatureSummons(target), cid) then return false end return true end
você tem que registrar essa creature event no summon...
exatamente como ele falou, pq nesse caso o cid é o summon e sendo assim o registerCreatureEvent() tem q ser no summon, exemplo
no script do summon vc procura essa parte
creature = doSummonCreature(nome, getCreaturePosition(cid)) doConvinceCreature(cid, creature)
aí vc add embaixo disso, isto:
registerCreatureEvent(creature, "SummonAntKillPlayer")
creature em vez de cid, pq creature foi a variavel q usei aki -> creature = doSummonCreature(..
Edited Setembro 19 by Eskylo
info
Group: Visconde
Joined: 22/09/10
Posts: 474
Reputation: +47

valeu ai ![]()
Edited Setembro 20 by eduardobean
info
Group: Visconde
Joined: 06/04/11
Posts: 350
Reputation: +8
Tibia Character: Mulekepirado

eu tambem to prescisando disso mais nao sei onde adicionar essas coisas, onde adiciono?
info
Group: Visconde
Joined: 22/09/10
Posts: 474
Reputation: +47

CreatureScripts.
info
Group: Visconde
Joined: 06/04/11
Posts: 350
Reputation: +8
Tibia Character: Mulekepirado

como? diz ae todos os passos...
info
Group: Campones
Joined: 05/10/12
Posts: 2
Reputation: 0

eu tentei adicionar no meu ot e nao deu, eu acabo nao conseguindo atacar nenhum monstro diz ajuda to prescisando tambem.. ^^
info
Group: Visconde
Joined: 22/09/10
Posts: 474
Reputation: +47
opa, eu e um amigo criamos esse script
creaturescript
lib
function isSummon(sid) for i, pid in ipairs(getPlayersOnline()) do for c, cid in pairs(getCreatureSummons(pid)) do if (cid == sid) then return true end end end return false enddesse jeito, o player não pode atacar nem um summon, e eu quero para que ele não possa atacar só o seu summon.