Ir para conteúdo

Limite De Summons


othereality

Posts Recomendados

Eai galera.. eu estou com o seguinte script/spell porem existe algo que eu queira arrumar:

 

function onTargetTile(cid, position)
position.stackpos = 255
doConvinceCreature(cid, doCreateMonster("Sumoned Ghoul", position, false))
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
return true
end
local arr = {
{0, 0, 0},
{0, 2, 0},
{0, 1, 0},
}
local area, combat = createCombatArea(arr), createCombatObject()
setCombatArea(combat, area)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

 

Ele funciona direitinho, porem não tem limite para o numero de summons. Se alguem souber como colocar agradeço =)

E antes que venham os espertinhos arrumar la no config.lua não adianta.

 

Obrigado pelas respostas.

Link para o comentário
Compartilhar em outros sites

function onTargetTile(cid, position)
position.stackpos = 255
doConvinceCreature(cid, doCreateMonster("Sumoned Ghoul", position, false))
doSendMagicEffect(position, CONST_ME_MAGIC_BLUE)
return true
end
local arr = {
{0, 0, 0},
{0, 2, 0},
{0, 1, 0},
}
local area, combat = createCombatArea(arr), createCombatObject()
setCombatArea(combat, area)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
function onCastSpell(cid, var)
if #getCreatureSummons(cid) >= X then doPlayerSendCancel(cid, "You can\'t summon more monsters.") return false end
return doCombat(cid, combat, var)
end

 

Substitui o X pelo quantidade maxima.

Editado por Byerne
Link para o comentário
Compartilhar em outros sites

REP =)

brigadão!

 

Pode ser movido já.

 

edit: aaaa não deu não =/

 

 

tem que usar "getCreatureSummons(cid)" pq player não existe, pelo menos aqui.

mas não é isso, eu troquei pra "getCreatureSummons(cid)" e ta dando o seguinte erro:

 

[26/10/2011 12:10:45] [Error - Spell Interface] 
[26/10/2011 12:10:45] data/spells/scripts/mage/wufd ghoul.lua:onCastSpell
[26/10/2011 12:10:45] Description: 
[26/10/2011 12:10:45] data/spells/scripts/mage/wufd ghoul.lua:17: attempt to compare number with table
[26/10/2011 12:10:45] stack traceback:
[26/10/2011 12:10:45] 	data/spells/scripts/mage/wufd ghoul.lua:17: in function <data/spells/scripts/mage/wufd ghoul.lua:16>

 

sabe oque é?

 

a linha 16 é

function onCastSpell(cid, var)

oque pode ter errado? o.O

Editado por OtheReality
Link para o comentário
Compartilhar em outros sites

Voce editou o X? e uma pequena aula:

 

A funçao getCreatureSummons(cid), assim como muitas outras como por exemplo, getPlayersOnline() retorna uma tabela neste formato:

summons = {
[1] = {"Demon"},
[2] = {"Demon"}}

 

Entao podemos usar um loop para pegar todos os summons, ou todos os players:

for index,name in ipairs(getCreatureSummons(cid)) do
end

for _,pid in ipairs(getPlayersOnline()) do
end

 

Logo, como eh uma tabela agente pode verificar o numero de "indices" nesta tabela, ('[x]'), assim:

#funçaoQueRetornaTabela (#getCreatureSummons)

que faz a mesma coisa que:

table.maxn(getCreatureSummons(cid))

 

Entao tem que deixar o # mesmo .. =)

 

-- Edit

 

Desculpe pelo meu erro, coloquei getPlayerSummons mas eh getCreatureSummons .. estava com sono ..

Editado por Byerne
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...