Ir para conteúdo
  • 0

Movement, Piso Que Sumona Mosnter


Robinhood

Pergunta

11 respostass a esta questão

Posts Recomendados

  • 0

Vê se funciona:

 

vou deixar a tag por você mesmo, aí configura certinho os monstros que quer que sumone, não testado:

 

local monsters = {
"Rat", "Cave Rat", "Troll", "Minotaur", "Cyclops", "Dragon", "Hydra", "Punisher",
}
local storage = 27560 -- a storage utilizada pelo script

-- não modifique daqui para baixo, a menos que saiba o que está fazendo
local internal = {}
local function localCheck(player, monster, next)
if not isCreature(player) then
	if isCreature(monster) then
		doSendMagicEffect(getThingPos(monster), CONST_ME_POFF)
		doRemoveCreature(monster)
	end
return
end
if not isCreature(monster) then
	setPlayerStorageValue(player, storage, next)
	doSendMagicEffect(getThingPos(player), 13)
	internal[getPlayerGUID(cid)] = nil
return
end
if getDistanceBetween(getThingPos(player), getThingPos(monster)) > 18 then
	doSendMagicEffect(getThingPos(monster), CONST_ME_POFF)
	doRemoveCreature(monster)
	doSendMagicEffect(getThingPos(player), CONST_ME_POFF)
return
end
addEvent(localCheck, 1000, player, monster, next)
end

function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)

local guid, lvl = getPlayerGUID(cid), math.max(getPlayerStorageValue(cid, storage), 1)

if lvl > #monsters then
	doTeleportThing(cid, fromPosition, true)
	doSendMagicEffect(fromPosition, CONST_ME_POFF)
	doPlayerSendCancel(cid, "A cova está vazia!")
return true
end

local monster = monsters[lvl]

if not internal[guid] then
	internal[guid] = doCreateMonster(monster, fromPosition, false)
	if not internal[guid] then
		doTeleportThing(cid, fromPosition, true)
		doSendMagicEffect(fromPosition, CONST_ME_POFF)
		doPlayerSendCancel(cid, "Não há espaço para os monstros sairem!")
	return false
	end
	doSendMagicEffect(getThingPos(internal[guid]), CONST_ME_TELEPORT)
	addEvent(localCheck, 1000, cid, internal[guid], lvl + 1)
else
	doPlayerSendCancel(cid, "Mate o monstro que você sumonou primeiro!")
	doTeleportThing(cid, fromPosition, true)
end

end

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

  • 0

Iae !!

 

Pow mano, deu um errinho.. confere ae:

[Error - MoveEvents Interface]

data/movements/scripts/sumon.lua:onStepIn
Description:
data/movements/scripts/sumon.lua:35: attempt to compare number with nil
stack traceback:
    data/movements/scripts/sumon.lua:35: in function <data/movements/scripts/sumon.lua:31>

Link para o comentário
Compartilhar em outros sites

  • 0

opa, errei uma coisinha, é só substituir essa linha:

 

local guid, level = getPlayerGUID(cid), getPlayerStorageValue(cid, storage)

 

por essa:

 

local guid, lvl = getPlayerGUID(cid), getPlayerStorageValue(cid, storage)

Link para o comentário
Compartilhar em outros sites

  • 0

Hehe, ta certo! não deu erro algum no distro agora, porem...ahuaijaiuh

 

Quando eu piso no tile aparece a mensagem "Não há espaço os monstros sairem!"

Obs: fis isso em um piso sem nada na volta, tentei tbm em varios locais do mapa alternando os id dos pisos.

Link para o comentário
Compartilhar em outros sites

  • 0

epa, bora lá entao:

 

muda essa linha:

 

local guid, lvl = getPlayerGUID(cid), getPlayerStorageValue(cid, storage)

 

para essa:

 

local guid, lvl = getPlayerGUID(cid), math.max(getPlayerStorageValue(cid, storage), 1)

Link para o comentário
Compartilhar em outros sites

  • 0

Olá denovo, mais uma vez resolveu o problema, porem... tongue2.png

 

Após eu matar o primeiro monstro aparece esse erro no distro:

[Error - MoveEvents Interface]
In a timer event called from:
data/movements/scripts/sumon.lua:onStepIn
Description:
<internalGetPlayerInfo> Player not found when requesting player info #18

 

Depois vou tentar pisar no piso e mostra a mensagem "Mate o mosntro que você sumonou primeiro!"

Link para o comentário
Compartilhar em outros sites

  • 0

Simplesmente d+ brun :)

Ja tinha lhe dado o rep+ la, sei q pra voce nem fas falta.. ahujhia

 

@Edited

 

Rapaz, esqueci de mencionar, no caso deu pra notar que isso seria meio que uma quest né?

Eu sei que é complicado, mas tem como fazer no meio disso ae, pra remover a criatura que apareceu se o player que pisou em cima morreu???

E se o player que pisou em cima voltar, começar des do começo novamente? ou do mesmo monster, tanto fas!

Até pq como esta agora se 1 jogador morrer la, o outro matar o monster que estava la, buga o outro char, pois vai pedir pra ele matar antes o monter!

 

@Edited

Sei que é foda fazer isso ae! Vou tentar fazer algo aki, se não der paciencia né, ahjiuahaui, vlw por tudo ae.

Pedido Original atendido.

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

×
×
  • Criar Novo...