Ir para conteúdo

Featured Replies

Postado

Suicide, não sei na sua versão, mas na minha não existe a função isOnSameFloor(fromPos, toPos) nem a isEven(distance). Talvez não exista na dele também. Ou talvez seja uma função do White e você esqueceu de colocar?

 

Edit:

Maicon, faça o seguinte(caso o script do suicide não funcione), ponha minha revisão do script do suicide de volta e substitua o creaturescripts por:

local tab = {
storages = {55554, 55553}, -- {globalstorage, storage},
pos = {x=1882, y=2080, z=14}, -- pos x, y, z que o player será teleportado
temple = {x=1882, y=2080, z=14}, -- pos x, y, z do templo que o player será teleportado no final do tempo
msgs = {"E que comecem os jogos!!", "Há alguém fazendo a Quest."}, -- menssagens {"ao puxar", "aguardando"}
mins = {10} -- Minutos que ele ficará na sala
}
 
function onUse(cid, item, frompos, item2, topos)
if getGlobalStorageValue(tab.storages[1]) < 1 and getPlayerStorageValue(cid, tab.storages[2]) ~= 0 then
local function onTimeEnd(cid)
local online = getPlayerName(cid) or 0
if getPlayerStorageValue(cid, tab.storages[2]) ~= 0 and online ~= 0 then
doTeleportThing(cid, tab.temple)
setGlobalStorageValue(tab.storages[1], -1)
end
return true
end
addEvent(function() onTimeEnd(cid) end,tab.mins[1]*60*1000)
setGlobalStorageValue(tab.storages[1], 1)
setPlayerStorageValue(cid, tab.storages[2], 1)
doTeleportThing(cid, tab.pos)
doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, tab.msgs[1])
else
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, tab.msgs[2])
end
 
return true
end

Acho que assim não vai mais dar erro e já que funcionou então... Lembrando que tem que por o monstro pelo RME.

Editado por mateusak (veja o histórico de edições)

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

  • Respostas 35
  • Visualizações 2.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Seguinte, remova todos os scripts relacionados a essa sua arena, pra evitar possíveis erros. Remova também o monstro da arena pelo RME, não vai ser necessário. Adicione esse script ao arquivo da sua

  • falha minha, aqui estão as funções que faltavam: só colocar elas no começo do script logo abaixo da tabela que deve funcionar perfeito function isOnSameFloor(fromPos, toPos) return fromPos.z == to

  • data/creaturescripts/scripts/Login.lua   tente adicionar isso antes do ultimo return true       if getGlobalStorageValue(cid, 55554) == 1 then         setGlobalStorageValue(cid, 55554, -1)     end

Postado
Faltou um "S" suicide.

Como xWhiteWolf disse, só foi essa falta de desatenção minha, faltou apenas um s em uma checagem de uma  função do script dos creature events.

Já corrigi.

na linha 30 tá escrito tab.storage[1] e o correto é tab.storages[1], só isso.

 

Suicide, não sei na sua versão, mas na minha não existe a função isOnSameFloor(fromPos, toPos) nem a isEven(distance). Talvez não exista na dele também. Ou talvez seja uma função do White e você esqueceu de colocar?

Eu sei cara, vou refazer.

@maiconmnt

Vou rever tudo, logo edito.

Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Postado

Eu não sei se é impressão, mas você parece estar puto comigo toda vez que comenta. Então com todo o respeito e educação, você não adicionou essas duas funções que citei no seu script.

Não se esqueça de dar REP+ para quem te ajudou e caso seja a solução marcar como melhor resposta!

 

NÃO CLIQUE AQUI!

NEM AQUI!

________________________________________________________________________________________________________________________________________________________________________________________________________________________

 

A imaginação é mais importante que o conhecimento.” Albert Einstein

Postado
falha minha, aqui estão as funções que faltavam:

só colocar elas no começo do script logo abaixo da tabela que deve funcionar perfeito

function isOnSameFloor(fromPos, toPos)
return fromPos.z == toPos.z and true or false
end


function isEven(arg)
return arg % 2 == 0 and true or false
end

Edit: essas funções fazem parte de uma lib nova que to fazendo pra postar em breve, não era pra elas terem vazado tão cedo e por isso não tão da maneira correta como deveriam mas em todo caso eu confio no e dei permissão pra ele utilizar no script;

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado
  • Solução

@maiconmnt

Substitua o action script por esse:

-- Coded by Suicide
local tab = {
	boss = "Infernatil", -- "Monster Name"
	storages = {27771, 27772}, -- {globalstorage, storage}
	apos = {x=1882, y=2080, z=14}, -- pos x, y, z que o player será teleportado ao puxar a alavanca
	rangex = {x=123, y=456, z=7}, -- pos x, y, z do sqm do canto superior da área (total)
	rangey = {x=321, y=654, z=7}, -- pos x, y, z do sqm do canto inferior da área (total)
	atime = 10 -- tempo máximo de permanência na arena, em minutos
}

-- xWhiteWolfs functions \/
function isOnSameFloor(fromPos, toPos)
	return fromPos.z == toPos.z and true or false
end


function isEven(arg)
	return arg % 2 == 0 and true or false
end

function getMiddlePos(fromPos, toPos)
	if not isOnSameFloor(fromPos, toPos) then
		return false
	end
	
	local middle = {x = 0, y = 0, z = 0}	
		middle.x = isEven(fromPos.x + toPos.x) and (fromPos.x + toPos.x)/2 or math.floor((fromPos.x + toPos.x)/2) + 1
		middle.y = isEven(fromPos.y + toPos.y) and (fromPos.y + toPos.y)/2 or math.floor((fromPos.y + toPos.y)/2) + 1
		middle.z = fromPos.z or toPos.z
	return middle
end

function clearArea(middlePos, rangex, rangey, mob, player)
	for i = -rangex, rangex do
		for j = -rangey, rangey do
			pos = {x = middlePos.x + i, y = middlePos.y + j, z = middlePos.z}
			creature = getTopCreature(pos).uid
		
			if isMonster(creature) and mob then
				doSendMagicEffect(getThingPos(creature), 14)
				addEvent(doCreateMonster, 1000, tab.boss, pos)
				doRemoveCreature(creature)
			end
			
			if isPlayer(creature) and player then
				doSendMagicEffect(getThingPos(creature), 14)
				doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature)))
			end
		end
	end
	
	return true
end

function getDistanceRadius(fromPos, toPos)
	if not isOnSameFloor(fromPos, toPos) then
		return false
	end
	
	local distance = getDistanceBetween(fromPos, toPos)
	return isEven(distance) and (distance/2) or math.floor(distance/2) + 1
end
-- xWhiteWolfs functions /\

function onUse(cid, item, frompos, item2, topos)
	if getGlobalStorageValue(tab.storage[1]) - os.time() < 1 then
		setGlobalStorageValue(tab.storages[1], os.time() + (tab.atime * 60))
		setPlayerStorageValue(cid, tab.storages[2], 1)
		local rx = getDistanceRadius(tab.rangex, tab.rangey)
		addEvent(clearArea, 1000, getMiddlePos(tab.rangex, tab.rangey), rx, rx, true, false)
		doTeleportThing(cid, tab.apos)
		doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "E que comece o desafio!!")
	else
		doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Há alguém fazendo a Quest.")
	end
	
	return true
end

E obrigado, xWhiteWolf.

Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo