function isSummon(sid)
for c, cid in pairs(getCreatureSummons(cid)) do
if (cid == sid) then
return true
end
end
return false
end
test
Por eduardo190696, 16 de set. de 2012 em Scripts
info
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: 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
Grupo: Visconde
Registrado: 11/08/10
Posts: 477
Reputação: +175
Gênero: 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
Editado Setembro 16 por 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
Grupo: Visconde
Registrado: 22/09/10
Posts: 474
Reputação: +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.
Editado Setembro 17 por eduardobean
info
Grupo: Visconde
Registrado: 11/08/10
Posts: 477
Reputação: +175
Gênero: 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
Grupo: Visconde
Registrado: 22/09/10
Posts: 474
Reputação: +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
Editado Setembro 18 por eduardobean
você tem que registrar essa creature event no summon...
info
Grupo: Visconde
Registrado: 22/09/10
Posts: 474
Reputação: +47

Desculpe mais não entendi.
info
Grupo: Visconde
Registrado: 11/08/10
Posts: 477
Reputação: +175
Gênero: 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(..
Editado Setembro 19 por Eskylo
info
Grupo: Visconde
Registrado: 22/09/10
Posts: 474
Reputação: +47

valeu ai ![]()
Editado Setembro 20 por eduardobean
info
Grupo: Visconde
Registrado: 06/04/11
Posts: 350
Reputação: +8
Char no Tibia: Mulekepirado

eu tambem to prescisando disso mais nao sei onde adicionar essas coisas, onde adiciono?
info
Grupo: Visconde
Registrado: 22/09/10
Posts: 474
Reputação: +47

CreatureScripts.
info
Grupo: Visconde
Registrado: 06/04/11
Posts: 350
Reputação: +8
Char no Tibia: Mulekepirado

como? diz ae todos os passos...
info
Grupo: Campones
Registrado: 05/10/12
Posts: 2
Reputação: 0

eu tentei adicionar no meu ot e nao deu, eu acabo nao conseguindo atacar nenhum monstro diz ajuda to prescisando tambem.. ^^
info
Grupo: Visconde
Registrado: 22/09/10
Posts: 474
Reputação: +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.