Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Bom dia, eu utilizo o otx, na versão 11+ e estou com um grande problema na crianção de script especifico para um "monster"

 

Já procurei aqui no site, testei vários scripts e já alterei os jeitos várias vezes e nenhuma da certo.

 

A principio eu comecei procurando um script que mata o "boss" e aparece um teleport e depois de alguns segundos esse teleport iria sumir,

mas nenhum que testei deu certo, então eu procurei um que some uma parede, também não funcionou, agora testei o de "storages", que só passa pela porta ou teleport, após matar o "boss", porém também não deu certo.


-Eu clico na porta ou no teleport e aparece a mensagem que eu quero, falando que precisa matar o boss, porém eu estou matando o boss e não ganho a "storage".

 

Não sei se tenho que fazer mais algo, alguém pode me ajudar com isso? 

 

Vou postar os scripts que estou utilizando para esse ultimo da "storage"

 

Criaturescript

<event type="kill" name="nome do evento" script="nome do arquivo.lua" />



local monster = 'nome do monstro' -- coloque o nome todo minusculo
local storage = 63567 -- valor da Storage
local msg = 'mensagem que ira aparecer' -- Configure a gosto

        function onKill(cid, target, lastHit)
    if(isMonster(cid)) and getCreatureName(cid):lower() == monster then
        setPlayerStorageValue(lastHit, storage, 1)
        doPlayerSendTextMessage(lastHit, 22, msg)
end
return true
end

 

Action

 

<action actionid="63567" script="nomedoarquivo.lua" />




local config = {
storage = 63567, --id da storage
value = 63567, --valor da storage
tele = {x=31821, y=31918, z=15}, --posicao que o jogador vai ser teleportado
}
 

function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid,config.storage) == config.value then
doTeleportThing(cid, config.tele, true)
else
doPlayerSendCancel(cid, "'Voce precisa matar o boss'")
end
return true
end

 

Editado por maedamor
Organização (veja o histórico de edições)

Resolvido por FlavioHulk

Ir para solução
Postado
  • Solução

Tag XML: Adicionar em creaturescripts.xml

<event type="kill" name="nomedoevento" script="nomedoscript.lua" />

Adicionar nome do evento em creaturescripts/others/login.lua, na tabela de events

Script Lua: Adicionar na pasta scripts em creaturescripts

local monster = 'nome do monstro' -- coloque o nome todo minusculo
local storage = 63567 -- valor da Storage
local msg = 'mensagem que ira aparecer' -- Configure a gosto

function onKill(creature, target)
	local targetMonster = target:getMonster()
	if not targetMonster then
		return true
	end

	if targetMonster:getName():lower() ~= monster then
		return true
	end

	local player = creature:getPlayer()
	player:setStorageValue(storage, 1)
	player:sendTextMessage(MESSAGE_INFO_DESCR, msg)

	return true
end

Tag XML: Adicionar em actions.xml

<action actionid="63567" script="nomedoarquivo.lua" />

Script Lua: Adicionar na pasta scripts em actions

local config = {
	storage = 63567, -- ID da storage
	pos = Position(31821, 31918, 15) -- Posição que o jogador vai ser teletransportado
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	if item.actionid ~= 63567 then
		return false
	end
	
	if player:getStorageValue(config.storage) < 1 then
		player:sendCancelMessage("You need kill the boss.")
		return true
	end

	player:teleportTo(config.pos)
	return true
end

 

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

Postado
  • Autor
18 minutos atrás, FlavioHulk disse:

Tag XML: Adicionar em creaturescripts.xml


<event type="kill" name="nomedoevento" script="nomedoscript.lua" />

Adicionar nome do evento em creaturescripts/others/login.lua, na tabela de events

Script Lua: Adicionar na pasta scripts em creaturescripts


local monster = 'nome do monstro' -- coloque o nome todo minusculo
local storage = 63567 -- valor da Storage
local msg = 'mensagem que ira aparecer' -- Configure a gosto

function onKill(creature, target)
	local targetMonster = target:getMonster()
	if not targetMonster then
		return true
	end

	if targetMonster:getName():lower() ~= monster then
		return true
	end

	local player = creature:getPlayer()
	player:setStorageValue(storage)
	player:sendTextMessage(MESSAGE_INFO_DESCR, msg)

	return true
end

Tag XML: Adicionar em actions.xml


<action actionid="63567" script="nomedoarquivo.lua" />

Script Lua: Adicionar na pasta scripts em actions


local config = {
	storage = 63567, -- ID da storage
	pos = Position(31821, 31918, 15) -- Posição que o jogador vai ser teletransportado
}

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	if item.actionid ~= 63567 then
		return false
	end
	
	if player:getStorageValue(config.storage) < 1 then
		player:sendCancelMessage("You need kill the boss.")
		return true
	end

	player:teleportTo(config.pos)
	return true
end

 

FlavioHulk, Eu coloquei certo cada um em seus respectivos lugares, apenas coloquei aqui no mesmo script para identificar melhor e não abrir vários...

Também já está adicionado no login.lua.

Porém mesmo assim não está reconhecendo, quando mato não está dando a "storage" e ainda não consigo passar pela porta.

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.6k

Informação Importante

Confirmação de Termo