Ir para conteúdo
  • 0

Ajuda Terminar O Meu Evento (Event Of Burned) Função Onstatschange


Bennyhappy

Pergunta

tentar obter um ataque que os jogadores são teletransportados 2 ou 3 sql qualquer direção, mas não funciona como eu Hise.

obter este erro:

 

 

[Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/event of burned.lua:24: '<name>' expected near '8'
[Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/event of burned.lua)
data/creaturescripts/scripts/event of burned.lua:24: '<name>' expected near '8'

 

 

Eu acho que eu estou errado nestas linhas:

 

	local pos = getCreaturePosition(cid)

	local 0 = {x = pos.x, y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
	local 1 = {x = pos.x, y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}
	local 2 = {x = pos.x - math.random(2,3), y = pos.y, z = pos.z, stackpos = 255}
	local 3 = {x = pos.x + math.random(2,3), y = pos.y, z = pos.z, stackpos = 255}

	local 4 = {x = pos.x - math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
	local 5 = {x = pos.x + math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
	local 6 = {x = pos.x + math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}
	local 7 = {x = pos.x - math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}

 

y em:

					doTeleportThing(cid, math.random(0,7), false)

 

aqui é completa, eu espero que você pode me ajudar

 

local config = {
playerCount = 3919, -- Global storage for counting the players left/entered in the event  


-- Estas coordenadas deben ser exactamente las misma del script en global event!
fromPositions = {x = 8858, y = 8468, z = 7}, -- igual que en la talkaction izquierda de arriva
toPositions = {x = 8887, y = 8499, z = 7}, -- derecha de abajo
}






	local pos = getCreaturePosition(cid)

	local 0 = {x = pos.x, y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
	local 1 = {x = pos.x, y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}
	local 2 = {x = pos.x - math.random(2,3), y = pos.y, z = pos.z, stackpos = 255}
	local 3 = {x = pos.x + math.random(2,3), y = pos.y, z = pos.z, stackpos = 255}

	local 4 = {x = pos.x - math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
	local 5 = {x = pos.x + math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
	local 6 = {x = pos.x + math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}
	local 7 = {x = pos.x - math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}


local Event_Start = 3032

function onStatsChange(cid, attacker, type, combat, value)

if type == STATSCHANGE_HEALTHGAIN or getCreatureHealth(cid) > value then
return true
end

local isInArea = isInArea(getPlayerPosition(cid), config.fromPositions, config.toPositions)

if isInArea and isPlayer(cid) then

		if getGlobalStorageValue(config.playerCount) >= 3 then
				doTeleportThing(cid, math.random(0,7), false)

				doSendMagicEffect(getPlayerPosition(cid), 6)
				doSendMagicEffect(getPlayerPosition(cid), 3)
				doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
				doCreatureAddMana(cid, getCreatureMaxMana(cid))


		elseif getGlobalStorageValue(config.playerCount) == 2 then
				doTeleportThing(cid, math.random(0,7), false)

				doSendMagicEffect(getPlayerPosition(cid), 6)
				doSendMagicEffect(getPlayerPosition(cid), 3)
				doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
				doCreatureAddMana(cid, getCreatureMaxMana(cid))




		end

		for x = config.fromPositions.x, config.toPositions.x do
				for y = config.fromPositions.y, config.toPositions.y do
						for z = config.fromPositions.z, config.toPositions.z do
								local areapos = {x = x, y = y, z = z, stackpos = 253}
								local getMonsters = getThingfromPos(areapos)
								if isMonster(getMonsters.uid) then
										doRemoveCreature(getMonsters.uid)
								end
						end
				end
		end

return false
end

return true
end

 

:/ ajuda

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

4 respostass a esta questão

Posts Recomendados

  • 0

Tenta assim:

 

 

 

local config = {
       playerCount = 3919, 
       fromPositions = {x = 8858, y = 8468, z = 7}, -- igual que en la talkaction izquierda de arriva
       toPositions = {x = 8887, y = 8499, z = 7} -- derecha de abajo
}
               local pos = getCreaturePosition(cid)

               local 0 = {x = pos.x, y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
               local 1 = {x = pos.x, y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}
               local 2 = {x = pos.x - math.random(2,3), y = pos.y, z = pos.z, stackpos = 255}
               local 3 = {x = pos.x + math.random(2,3), y = pos.y, z = pos.z, stackpos = 255}

               local 4 = {x = pos.x - math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
               local 5 = {x = pos.x + math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
               local 6 = {x = pos.x + math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}
               local 7 = {x = pos.x - math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}


local Event_Start = 3032

function onStatsChange(cid, attacker, type, combat, value)

       if type == STATSCHANGE_HEALTHGAIN or getCreatureHealth(cid) > value then
       return true
       end

       local isInArea = isInArea(getPlayerPosition(cid), config.fromPositions, config.toPositions)

       if isInArea and isPlayer(cid) then

                       if getGlobalStorageValue(config.playerCount) >= 3 then
                                       doTeleportThing(cid, math.random(0,7), false)

                                       doSendMagicEffect(getPlayerPosition(cid), 6)
                                       doSendMagicEffect(getPlayerPosition(cid), 3)
                                       doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
                                       doCreatureAddMana(cid, getCreatureMaxMana(cid))


                       elseif getGlobalStorageValue(config.playerCount) == 2 then
                                       doTeleportThing(cid, math.random(0,7), false)

                                       doSendMagicEffect(getPlayerPosition(cid), 6)
                                       doSendMagicEffect(getPlayerPosition(cid), 3)
                                       doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
                                       doCreatureAddMana(cid, getCreatureMaxMana(cid))




                       end

                       for x = config.fromPositions.x, config.toPositions.x do
                                       for y = config.fromPositions.y, config.toPositions.y do
                                                       for z = config.fromPositions.z, config.toPositions.z do
                                                                       local areapos = {x = x, y = y, z = z, stackpos = 253}
                                                                       local getMonsters = getThingfromPos(areapos)
                                                                       if isMonster(getMonsters.uid) then
                                                                                       doRemoveCreature(getMonsters.uid)
                                                                       end
                                                       end
                                       end
                       end

       return false
       end

return true
end

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

você não pode criar variáveis com nomes de números... imagine se pudesse, no caso local x = 1 + 2, como iria saber se é matematicamente igual a 3 ou se está somando a variável 1 com 2...

 

use tabelas, no lugar de:

 

				local 0 = {x = pos.x, y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
			local 1 = {x = pos.x, y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}
			local 2 = {x = pos.x - math.random(2,3), y = pos.y, z = pos.z, stackpos = 255}
			local 3 = {x = pos.x + math.random(2,3), y = pos.y, z = pos.z, stackpos = 255}

			local 4 = {x = pos.x - math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
			local 5 = {x = pos.x + math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255}
			local 6 = {x = pos.x + math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}
			local 7 = {x = pos.x - math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}

 

use:

 

local p = {
{x = pos.x, y = pos.y - math.random(2,3), z = pos.z, stackpos = 255},
{x = pos.x, y = pos.y + math.random(2,3), z = pos.z, stackpos = 255},
{x = pos.x - math.random(2,3), y = pos.y, z = pos.z, stackpos = 255},
{x = pos.x + math.random(2,3), y = pos.y, z = pos.z, stackpos = 255},
{x = pos.x - math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255},
{x = pos.x + math.random(2,3), y = pos.y - math.random(2,3), z = pos.z, stackpos = 255},
{x = pos.x + math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255},
{x = pos.x - math.random(2,3), y = pos.y + math.random(2,3), z = pos.z, stackpos = 255}}

 

e aqui:

 

doTeleportThing(cid, math.random(0,7), false)

 

troque por:

 

doTeleportThing(cid, p[math.random(0,7)], false)

 

detalhe, se você declarar as posições antes do function onStatsChange, elas vão ser geradas 1 vez aleatoriamente e vão ficar daquele jeito até reiniciar o server... Se quiser que toda vez gere novas posições, tem que declarar elas dentro do function onStasChange

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

  • 0

irmão, muito obrigado, Eu sou muito grato a você, Segui seu conselho e funcionou perfeitamente, e assim eu continuar a aprender mais de você, Você está certo, eu não sabia criar variáveis ​​com números,

 

Agora estou aprendendo a criá-los, um irmão abraço

brun123

 

pedido de desculpas, mas agora eu digo que não pode dar reputações mais neste papel, vou seguir em seu post, para deixar reputação

 

sabe porque eu recebo esta mensagem: Você. JÁ atingiu reputações Seu Hoje limite positivo

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...