Ir para conteúdo
  • 0

[DUVIDA] Nessa spell


Dmy Recaida

Pergunta

Olá, eu estava fazendo um script de summon que sumona 4 summons que tem o mesmo de mana, life, outift, speed que seu player. e para cada vocação tem uma summon diferente nas minhas vocações vips. só q o script só funcionou na primeira vocação que eu adicionei. Eu ja criei os monsters, não da nenhum erro no distro quando usa a spell, ele só não sumona. plx help-me. :\

function onCastSpell(cid, var)
    
    local removeTime = 60 
    local summons = getCreatureSummons(cid)
    local MaximoSummon = 4
if (table.maxn(summons) == MaximoSummon) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Já tem 4 Summons.")
end
    if(table.maxn(summons) < MaximoSummon) then 
    local anyPos, pos = {x = 0, y = 0, z = 0}, getCreaturePosition(cid)
    local toPos = {
        {x = pos.x + 1, y = pos.y, z = pos.z},
        {x = pos.x - 1, y = pos.y, z = pos.z},
        {x = pos.x, y = pos.y + 1, z = pos.z},
        {x = pos.x, y = pos.y - 1, z = pos.z}
    }
    
if getPlayerVocation(cid) == 6 then
local demon summor = doSummonCreature("Summon Master", pos)
doConvinceCreature(cid, demon summor)
setCreatureMaxHealth(demon summor, getCreatureMaxHealth(cid))
doCreatureAddHealth(demon summor, getCreatureMaxHealth(cid))
setCreatureMaxMana(demon summor, getCreatureMaxMana(cid))
doCreatureAddMana(demon summor, getCreatureMaxMana(cid))
doChangeSpeed(demon summor, getCreatureBaseSpeed(cid))
doSetCreatureOutfit(demon summor, getCreatureOutfit(cid), -1)
end
if getPlayerVocation(cid) == 7 then
local best summon = doSummonCreature("best summon", pos)
doConvinceCreature(cid, best summon)
setCreatureMaxHealth(best summon, getCreatureMaxHealth(cid))
doCreatureAddHealth(best summon, getCreatureMaxHealth(cid))
setCreatureMaxMana(best summon, getCreatureMaxMana(cid))
doCreatureAddMana(best summon, getCreatureMaxMana(cid))
doChangeSpeed(best summon, getCreatureBaseSpeed(cid))
doSetCreatureOutfit(best summon, getCreatureOutfit(cid), -1)
end
end
return true
end
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Cara você não pode dar espaços em variáveis. Variáveis são uma só palavra.

 

essas variáveis que você criou:

demon sumor 
best summon

as duas não funcionarão corretamente...

 

 

O que nós usamos para dar espaço nas variáveis é _ (underline) , logo sua variável ficaria assim:

demon_sumor
best_summon

Também usamos o esquema de letras maiúsculas, como você vê nas funções Lua:

demonSumor
bestSummon

Toma a spell, veja se tem mais algum erro (dei uma olhada só superficial)

function onCastSpell(cid, var)
	
	local removeTime = 60 
	local summons = getCreatureSummons(cid)
	local MaximoSummon = 4
	if (#summons == MaximoSummon) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Já tem 4 Summons.")
	end
	if( #summons < MaximoSummon) then 
		local anyPos, pos = {x = 0, y = 0, z = 0}, getCreaturePosition(cid)
		local toPos = {
			{x = pos.x + 1, y = pos.y, z = pos.z},
			{x = pos.x - 1, y = pos.y, z = pos.z},
			{x = pos.x, y = pos.y + 1, z = pos.z},
			{x = pos.x, y = pos.y - 1, z = pos.z}
		}
		
		if getPlayerVocation(cid) == 6 then
			local demon_summor = doSummonCreature("Summon Master", pos)
			doConvinceCreature(cid, demon_summor)
			setCreatureMaxHealth(demon_summor, getCreatureMaxHealth(cid))
			doCreatureAddHealth(demon_summor, getCreatureMaxHealth(cid))
			setCreatureMaxMana(demon_summor, getCreatureMaxMana(cid))
			doCreatureAddMana(demon_summor, getCreatureMaxMana(cid))
			doChangeSpeed(demon_summor, getCreatureBaseSpeed(cid))
			doSetCreatureOutfit(demon_summor, getCreatureOutfit(cid), -1)
		end
		if getPlayerVocation(cid) == 7 then
			local best_summon = doSummonCreature("best summon", pos)
			doConvinceCreature(cid, best_summon)
			setCreatureMaxHealth(best_summon, getCreatureMaxHealth(cid))
			doCreatureAddHealth(best_summon, getCreatureMaxHealth(cid))
			setCreatureMaxMana(best_summon, getCreatureMaxMana(cid))
			doCreatureAddMana(best_summon, getCreatureMaxMana(cid))
			doChangeSpeed(best_summon, getCreatureBaseSpeed(cid))
			doSetCreatureOutfit(best_summon, getCreatureOutfit(cid), -1)
		end
	end
	return true
end

Também editei a função table.maxn(), para pegar o número de indexes da sua tabela, basta colocar # na frente do nome dela, assim:

#tabela

Também vi que sua magia ainda não tá pronta. Quando estiver, que tal postar aqui? Com certeza terá meu REP +


Aaaaah, mais uma coisinha, seria legal você criar uma função para isso, pois você tá repetindo um número muito grande de linhas...

vou mostrar como:

function createSummon(cid, summon, pos)
	local summonCid = doSummonCreature(summon, pos)
	doConvinceCreature(cid, summonCid)
	setCreatureMaxHealth(summonCid, getCreatureMaxHealth(cid))
	doCreatureAddHealth(summonCid, getCreatureMaxHealth(cid))
	setCreatureMaxMana(summonCid, getCreatureMaxMana(cid))
	doCreatureAddMana(summonCid, getCreatureMaxMana(cid))
	doChangeSpeed(summonCid, getCreatureBaseSpeed(cid))
	doSetCreatureOutfit(summonCid, getCreatureOutfit(cid), -1)
	return true
end 

function onCastSpell(cid, var)
	
	local removeTime = 60 
	local summons = getCreatureSummons(cid)
	local MaximoSummon = 4
	if (#summons == MaximoSummon) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Já tem 4 Summons.")
	end
	if(#summons < MaximoSummon) then 
		local anyPos, pos = {x = 0, y = 0, z = 0}, getCreaturePosition(cid)
		local toPos = {
			{x = pos.x + 1, y = pos.y, z = pos.z},
			{x = pos.x - 1, y = pos.y, z = pos.z},
			{x = pos.x, y = pos.y + 1, z = pos.z},
			{x = pos.x, y = pos.y - 1, z = pos.z}
		}
		
		if getPlayerVocation(cid) == 6 then
			 createSummon(cid, "Summon Master", pos)
		end
		if getPlayerVocation(cid) == 7 then
			 createSummon(cid, "Best Summon", pos)
		end
	end
	return true
end


Se der erro posta aqui...

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

  • 0

Eu sou iniciante, comecei a programar agora. ai tem algumas coisas que eu não sei, por exemplo em dar espaço de variáveis. mas vivendo e aprendendo kkkk.

obg por ter me dado esse conhecimento e por ter me ajudado no script, esta funcionando 100% kk

Link para o comentário
Compartilhar em outros sites

  • 0

Eu sou iniciante, comecei a programar agora. ai tem algumas coisas que eu não sei, por exemplo em dar espaço de variáveis. mas vivendo e aprendendo kkkk.

obg por ter me dado esse conhecimento e por ter me ajudado no script, esta funcionando 100% kk

 

 

De nada, clique em resolvido no post que te ajudou, para eu poder mover o tópico

qualquer dúvida boba (ou não) que pintar é só criar outro tópico, eu terei o prazer de te ajudar a aprender, assim como me ajudaram também...

nick legal.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...