Ir para conteúdo
  • Cadastre-se

(Resolvido)[TFS1.3] Outfit ao matar certo monstro


Ir para solução Resolvido por worthdavi,

Posts Recomendados

Estou usando um global tfs1.3x e queria saber se alguém conseguiria achar o erro dessa script ou criar alguma adaptação a ela.

 

Funcionamento: Ao matar o monstro (the percht queen) o player ganhará a outfit correspondente. (não é necessários essas mensagens) 

 

Estou tentando faz muito tempo arrumar isso, porém sem êxito.  (não é necessários essas mensagens no script, era mais para eu ver se estava dando ou não a outfit) 

    local cfg = {
   		addon_name = "Percht Raider", 
   		addon_male = 1162, 
   		addon_female = 1161,
   		storage = 9787184
}

function onKill(cid, creature, target)
	local player = creature:getPlayer()
	if not player then
		return true
	end
	
	if targetMonster or targetMonster:getName():lower() ~= 'the percht queen' then
		for uid in pairs(target:getDamageMap()) do

				if getPlayerStorageValue(cid, cfg.storage) < 1 then
					doPlayerAddOutfit(cid, cfg.addon_male, 3)
					doPlayerAddOutfit(cid, cfg.addon_female, 3)
					doSendMagicEffect(getThingPos(cid), 29)
					doPlayerSendTextMessage(cid, 19, "Addon " .. cfg.addon_name .. "full adicionado!!")
					setPlayerStorageValue(cid, cfg.storage, 1)
				else
					doPlayerSendTextMessage(cid, 19, "You already got your outfit.")
				end
		end
	end

	return true
end

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Link para o post
Compartilhar em outros sites
  
local killQueen = CreatureEvent("Kill Queen")

function killQueen.onKill(player, target)
	if target:isPlayer() or target:getMaster() then
		return true
	end

	local outfit = {
		name = "Percht Raider", 
		male = 1162, 
		female = 1161,
		storage = 97184
	}

	if target:getName():lower() == "the percht queen" then
		if player:getStorageValue(outfit.storage) < 1 then
			player:setStorageValue(outfit.storage, 1)
			player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Addon " .. outfit.name .. " full adicionado!")
			player:addOutfitAddon(outfit.male, 3)
			player:addOutfitAddon(outfit.female, 3)
			player:getPosition():sendMagicEffect(CONST_ME_MAGIC_RED)
		else
			doPlayerSendTextMessage(cid, 19, "You already got your outfit.")
		end
	end
	return true
end

killQueen:register()

 

Link para o post
Compartilhar em outros sites

Não funcionou, tentei colocar tanto no data/creaturescripts quanto na data/scripts e não funcionou (ele não aponta nenhum erro no console)

Link para o post
Compartilhar em outros sites
  local config = {
   		addon_name = "Percht Raider", 
   		addon_male = 1162, 
   		addon_female = 1161
}

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

	if targetMonster:getName():lower() == 'the percht queen' then
		for pid, _ in pairs(targetMonster:getDamageMap()) do
            local attackerPlayer = Player(pid)
            if attackerPlayer:hasOutfit(config.addon_male) or attackerPlayer:hasOutfit(config.addon_female) then
              attackerPlayer:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You already got this oufit.")
            else
              attackerPlayer:addOutfitAddon(config.addon_male, 3)
              attackerPlayer:addOutfitAddon(config.addon_female, 3)
              attackerPlayer:getPosition():sendMagicEffect(29)
              attackerPlayer:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Addon " .. config.addon_name .. " adicionado!!")
            end
      	end
	end

	return true
end

 

Editado por worthdavi (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução
3 horas atrás, Enforc disse:

Nada =/

Não da erro no console ou qualquer mensagem ao matar

 

Em creaturescripts.xml:

<event type="kill" name="killingPercht" script="nomedoarquivo.lua"/>

Em data/creaturescripts/scripts/others/login.lua, na tabela local events, adicionar:

'killingPercht',

 

 

Link para o post
Compartilhar em outros sites
39 minutos atrás, worthdavi disse:

 

Em creaturescripts.xml:


<event type="kill" name="killingPercht" script="nomedoarquivo.lua"/>

Em data/creaturescripts/scripts/others/login.lua, na tabela local events, adicionar:


'killingPercht',

 

 

OMFG, n sabia que precisava adicionar no login.lua as funções onKill .... 

 

Muito obrigado, vou adaptar um pouco e usar seu script. 

Link para o post
Compartilhar em outros sites
1 hora atrás, Enforc disse:

OMFG, n sabia que precisava adicionar no login.lua as funções onKill .... 

Muito obrigado, vou adaptar um pouco e usar seu script. 

Se tivesse feito isso, no script que mandei, iria funcionar.

Link para o post
Compartilhar em outros sites
Em 02/06/2020 em 18:32, luanluciano93 disse:

Se tivesse feito isso, no script que mandei, iria funcionar.

Mil desculpas, acabei vacilando muito ...

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo