Ir para conteúdo
  • 0

Maximo de Sumon


milbradt

Pergunta

Olá, eu fui infeliz em tentar add uma condição na spell.

Gostaria que a mesma verifica-se se o player ja tem mais de 2 summon, caso tiver, não fazer mais.

 

local spells = {
[1] = {used = 0, text = '<attack name="melee" interval="2000" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="fire"/></attack>'},
[2] = {used = 0, text = '<attack name="melee" interval="1200" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="energyarea"/></attack>'},
[3] = {used = 0, text = '<attack name="melee" interval="700" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="mortarea"/></attack>'}
}
local spellsNumber = 2
function randomNum(range)
local rand = 0
good = false
math.randomseed( os.time() )
math.random()
math.random()
math.random()
while (not good) do
    rand = math.random(range)

    if (spells[rand].used == 0) then
		    spells[rand].used = 1
		    good = true
    else
		    good = false
    end

end
return rand
end

function onSay(cid, words)
    local attacks = "<a>"
    local num

    for i=1,spellsNumber,1 do
		    num = randomNum(table.getn(spells))
		    attacks = attacks .. spells[num].text
    end

    attacks = attacks .. "</a>"
    doCreateCustomMonster(getCreatureName(cid), getCreaturePosition(cid), getCreatureOutfit(cid), getCreatureMaxHealth(cid), attacks, 6324, 1, 100)

    for i=1,table.getn(spells),1 do
		    spells[i].used = 0
    end

    attacks = ""

    return true
end

 

Eu tentei add

local summons = getCreatureSummons(cid)
if(table.maxn(summons) < MaximoSummon) then

Mas não obtive sucesso... Help-me Plz =)

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Nossa, que preguiça de ler o script, muito bagunçado.

 

Mas ai, só fazer assim:

 

if #getCreatureSummons(cid) < MaximoSummon then
doPlayerSendCancel(cid, "Você só pode ter no máximo 2 summons.") return true
end

Link para o comentário
Compartilhar em outros sites

  • 0

Você deve ter colocado no lugar errado. Tó:

 

 

local spells = {
[1] = {used = 0, text = '<attack name="melee" interval="2000" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="fire"/></attack>'},
[2] = {used = 0, text = '<attack name="melee" interval="1200" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="energyarea"/></attack>'},
[3] = {used = 0, text = '<attack name="melee" interval="700" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="mortarea"/></attack>'},
}

local spellsNumber = 2
function randomNum(range)
local rand = 0
good = false
math.randomseed( os.time() )
math.random()
math.random()
math.random()
while (not good) do
rand = math.random(range)

if (spells[rand].used == 0) then
	spells[rand].used = 1
	good = true
else
	good = false
end

end
return rand
end

local MaximoSummon = 2

function onSay(cid, words)
if #getCreatureSummons(cid) < MaximoSummon then
	doPlayerSendCancel(cid, "Você só pode ter no máximo 2 summons.") return true
end
local attacks = "<a>"
local num

for i=1,spellsNumber,1 do
	num = randomNum(table.getn(spells))
	attacks = attacks .. spells[num].text
end

attacks = attacks .. "</a>"
doCreateCustomMonster(getCreatureName(cid), getCreaturePosition(cid), getCreatureOutfit(cid), getCreatureMaxHealth(cid), attacks, 6324, 1, 100)

for i=1,table.getn(spells),1 do
	spells[i].used = 0
end

attacks = ""

return true
end

 

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

  • 0

Mais Fácil Ir Em Config.lua e procurar essa parte maxPlayerSummons = 2 E Colocar Quantos Monstros Se Quer Que O Player Summone No Maximo No Caso Ali Ta 2

 

Isso não funfa, isso seria para o utevo res.

 

Eu até agora não entendi o por que não funcionou oq vc disse LuckOake, eu fis igual vc postou tbm, msm assim não deu certo, e para tirar todas minhas duvidas, colei o script inteiro que vc postou agora.. mesmo assim posso continuar fazendo mais do que 2 summons.

E não da erro algum...

 

Mesmo assim, vlw pela ajuda camarada, tem que refazer esse script do zero mesmo ;x

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

  • 0

Putz cara, agora que vi a besteira que eu fiz. Coloquei a verificação errada. Tá ai o script corrigido:

 

 

local spells = {
       [1] = {used = 0, text = '<attack name="melee" interval="2000" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="fire"/></attack>'},
       [2] = {used = 0, text = '<attack name="melee" interval="1200" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="energyarea"/></attack>'},
       [3] = {used = 0, text = '<attack name="melee" interval="700" chance="100" range="5" radius="1" target="0"><attribute key="areaEffect" value="mortarea"/></attack>'},
}

local spellsNumber = 2
function randomNum(range)
local rand = 0
good = false
math.randomseed( os.time() )
math.random()
math.random()
math.random()
while (not good) do
       rand = math.random(range)

       if (spells[rand].used == 0) then
               spells[rand].used = 1
               good = true
       else
               good = false
       end

end
return rand
end

local MaximoSummon = 2

function onSay(cid, words)
       if #getCreatureSummons(cid) >= MaximoSummon then
               doPlayerSendCancel(cid, "Você só pode ter no máximo 2 summons.") return true
       end
       local attacks = "<a>"
       local num

       for i=1,spellsNumber,1 do
               num = randomNum(table.getn(spells))
               attacks = attacks .. spells[num].text
       end

       attacks = attacks .. "</a>"
       doCreateCustomMonster(getCreatureName(cid), getCreaturePosition(cid), getCreatureOutfit(cid), getCreatureMaxHealth(cid), attacks, 6324, 1, 100)

       for i=1,table.getn(spells),1 do
               spells[i].used = 0
       end

       attacks = ""

return true
end

 

Link para o comentário
Compartilhar em outros sites

  • 0

Poisé, eu ja tinha reparado nisso, mas não era esse o problema, na verdade eu tinha um outro script que estava em talkactions e estava dando conflito.. USHIAUSHAUI

Foda que esse script da dando crash no server... ;x

 

Vlw ae LuckOake

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...