Ir para conteúdo
  • Cadastre-se

EDITADO: Time que matar boss todos ganham recompensa...


Posts Recomendados

EDITADO:

Como eu faço para que todos os players que atacarem certo boss ganhem a recompensa quando o boss morrer?

 

Eu "fiz" esse script e só falta o console reconhecer o player:

function onDeath(cid, corpse, deathList)
  deathList = tostring(Creature(cid):getDamageMap())
  for i = 1, #deathList do
    if(isPlayer(deathList[i])) then
      broadcastMessage("" .. deathList .. "", MESSAGE_EVENT_ADVANCE)
      doPlayerAddItem(deathList[i], 2160, 1)
    end
  end
  return true
end

Porque quando eu tiro a parte ifIsPlayer acontece isso:

 

 

2ibeo0l.png

 

Se alguém puder ajudar ... :)

Editado por Bobypsaico (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Tente isso :

function onKill(cid, target)
if(string.lower(getCreatureName(target)) == "Devil Stone") then
setPlayerStorageValue(cid, 33000, 1)
end
return true
end

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Link para o post
Compartilhar em outros sites

Tente isso : 

local bossCreatures = {
	["Devil Stone"] = {killStorage = 33000}
}

function onKill(cid, target, lastHit) 
local creature = bossCreatures[string.lower(getCreatureName(target))]
	if creature then
		if isPlayer(target) or isSummon(target) then 
			return true 
		end
			setPlayerStorageValue(cid, creature.killStorage, 1)
	end
	return true
end

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Link para o post
Compartilhar em outros sites

Eu fiz assim pra saber se tava funcionando:

 

local bossCreatures = {
["devil stone"] = {killStorage = 33000}
}
 
function onKill(cid, target, lastHit)
local creature = bossCreatures[string.lower(getCreatureName(target))]
if creature then
if isPlayer(target) or isSummon(target) then
return true
end
setPlayerStorageValue(cid, creature.killStorage, 1)
doCreatureSay(cid, "Ganhou.", TALKTYPE_ORANGE_1)
end
return true
end
 
E só aparece a mensagem em laranja pra quem dá o último hit :S
Tentei ver no playerdeath se tinha alguma coisa porque quando mata um player aparece que vários mataram, queria que reconhecesse da mesma maneira, se o player ganhar a xp do bixo ele ganha storage
Link para o post
Compartilhar em outros sites

Bem, você fez alguma "flag" para esse monstro do evento, remova-o do .xml do monstro e tente...

Esse script que eu te mandei, é usado em base de Gnomebase, onde todos que atacarem o boss ganharão o Storage, e funciona 100%.

Acho estranho... Tente "re-logar" com todos os players.

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Link para o post
Compartilhar em outros sites

Acho que eu não fiz essa "flag" no .xml do monstro, as únicas coisas que tem são:

 

em creaturescripts.xml:

<event type="kill" name="Devil Stone" script="bosses/devilstone.lua"/>

No devilstone.lua tá o que você acabou de me passar.

 

e no login.lua:

player:registerEvent("Devil Stone")

Eu tenho que adicionar <script> no xml do monstro?

Link para o post
Compartilhar em outros sites

Moço,

Que distro você está usando ?

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Link para o post
Compartilhar em outros sites

Eu fiz outro teste aqui e agora funcionou.

Eu to usando 2 chars pra fazer o teste, mas uma coisa eu não entendi, qual é o minimo de life que eu tenho que tirar do bixo pra ganhar o storage?

Porque se eu ataco mais com um e com outro pouco, só o que atacou mais ganha...

Qual a restrição?

Link para o post
Compartilhar em outros sites
  • 2 years later...

Poderia Fazer Um Script Completo de Como Adicionar esse Script 

 

local bossCreatures = {
["devil stone"] = {killStorage = 33000}
}
 
function onKill(cid, target, lastHit)
local creature = bossCreatures[string.lower(getCreatureName(target))]
if creature then
if isPlayer(target) or isSummon(target) then
return true
end
setPlayerStorageValue(cid, creature.killStorage, 1)
doCreatureSay(cid, "Ganhou.", TALKTYPE_ORANGE_1)
end
return true
end
 

Que o Ultimo da Ataque Ganha é Onde Adcionar o Item ( Ons Aparecer o NOme Do PLayer Que Deu Ultimo Ataque Para Geral 

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo