Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

0.36

 

Boa noite pessoal!

 

Então, mais uma vez venho pedir ajuda... pesquisei bastante aqui no fórum e encontrei um script, testei e não deu certo, mas estarei postando aqui para quem sabe alguém solucionar o problema.

 

o script ele faz um monstro X ao chegar aos 50% de life , ele se transforma em outro monstro Y, mas também queria ele dando storage para todos os players que atacarem ele...

 

o que esta errado? 

então não da erro na distro, nem quando ligo o servidor e nem quando mato o boss. mas o problema esta quando chega na metade da vida do primeiro boss, ele não aparece o outro, logo, não esta dando a storage também.

 

obs: já pedi um suporte de um script que os playrs matam o boss e recebem a storage, esta corretíssimo funcionando, mas esse aqui é diferente, então atenção, não estou pedindo a mesma coisa :D

 

então o script esta assim...

 

 function onStatsChange(cid, attacker, type, combat, value)
local storage = 47000
local stor = 354867 -- n mexa
local monster = "Phanta" -- Monstro que irá atingir o 50% e sumir
local monstro = "Demo"  -- Monstro que irá ser invocado
local msg = "Enough playing. I am the Divinity of this house." -- Mensagem quando o monstro for sumir 
	if not isMonster(cid) then 
	return true 
	end         
	if type == STATSCHANGE_HEALTHLOSS and getCreatureName(cid):lower() == monster:lower() then
         local monsterPercent = 100/(getCreatureMaxHealth(cid)/getCreatureHealth(cid))
		if monsterPercent <= 50 and monsterPercent >= 49 then
			if getGlobalStorageValue(stor) - os.time() <= 0 then
				doCreatureSay(cid, msg, 1)
				setGlobalStorageValue(stor, os.time() + 120)
				addEvent(doCreateMonster, 1000, monstro, getCreaturePosition(cid))
				addEvent(doRemoveCreature, 1000, cid)
					for _, check in pairs(deathList) do
						if isPlayer(check) then
							setPlayerStorageValue(check, storage, 5)
						end
					end
			end
		end
	end
return true
end

 

 

 

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

  • Respostas 5
  • Visualizações 651
  • Created
  • Última resposta

Top Posters In This Topic

Postado
local config = {
	msg = "DIGITE UMA MSG AQUI QUANDO CHEGAR 50%",
	newMonster = "Demo",
	stor = 78907,
	storValue = 1
}

local condition = createConditionObject(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
setConditionParam(condition, CONDITION_PARAM_SUBID, 88888)
setConditionParam(condition, CONDITION_PARAM_TICKS, 10 * 1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 0.01)
setConditionParam(condition,CONDITION_PARAM_HEALTHTICKS, 10 * 1000)

function onThink(cid)
if isPlayer(cid) then
	return true
end
	local hp, oldP = (getCreatureHealth(cid)/getCreatureMaxHealth(cid)*100), {}
	if hp <= 50 and (not getCreatureCondition(cid, CONDITION_REGENERATION, 88888)) then
		doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1, false, 0, getCreaturePosition(cid))
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREATTACK)
		oldP = getCreaturePosition(cid)
		doRemoveCreature(cid)

		local m = doCreateMonster(config.newMonster, oldP, true, true)
		if not m then
			return
		end
	end
    return true
end

function onKill(cid, target, damage, flags)
if (not isPlayer(cid)) then
	return true
end

	if getCreatureName(target) == config.newMonster then
		setGlobalStorageValue(config.stor, config.storValue)
	end
	return true
end

 

<event type="think" name="boss_" event="script" value="boss.lua"/>
<event type="kill" name="boss__" event="script" value="boss.lua"/>


Não esqueça de registrar em login.lua:

if (not isPlayer(cid)) then
 	    registerCreatureEvent(cid, "boss_")
		registerCreatureEvent(cid, "boss__")
end

 

Postado
  • Autor

@9k22  amigo, nao precisa registrar no demo.xml e no phanta.xml?

@9k22  fiz o teste amigo! o monstro Phanta sumiu certinho nos 50%, mas o monstro Demo não apareceu. E tambem deu esse erro na distro:

 

[06/08/2020 19:32:09] [Error - CreatureScript Interface] 
[06/08/2020 19:32:09] data/creaturescripts/scripts/bossperron.lua:onThink
[06/08/2020 19:32:09] Description: 
[06/08/2020 19:32:09] (luaDoCreateMonster) Monster with name '' not found

@9k22 Amigo! posso ter entendido errado, mas pelo que vi o seu script ele não faz outro monstro aparecer.

 

eu gostaria que o monstro phanta assim que ele chegar a mais ou menos 50% de life , ele se transformar em um Demo(outro monstro), sendo assim, só depois de matar o monstro "Demo" todos que atacaram o demo ganha a storage 47000, 4. 

 

esse script que eu peguei ai em cima é daqui do fórum, mas ele não funcionou e se não me engano ele não dava storage, a parte do storage 47000 la em cima no meu script foi eu quem editei, mas não deu certo.

 

Postado
2 horas atrás, Lisbeky disse:

@9k22  amigo, nao precisa registrar no demo.xml e no phanta.xml?

@9k22  fiz o teste amigo! o monstro Phanta sumiu certinho nos 50%, mas o monstro Demo não apareceu. E tambem deu esse erro na distro:

 

[06/08/2020 19:32:09] [Error - CreatureScript Interface] 
[06/08/2020 19:32:09] data/creaturescripts/scripts/bossperron.lua:onThink
[06/08/2020 19:32:09] Description: 
[06/08/2020 19:32:09] (luaDoCreateMonster) Monster with name '' not found

@9k22 Amigo! posso ter entendido errado, mas pelo que vi o seu script ele não faz outro monstro aparecer.

 

eu gostaria que o monstro phanta assim que ele chegar a mais ou menos 50% de life , ele se transformar em um Demo(outro monstro), sendo assim, só depois de matar o monstro "Demo" todos que atacaram o demo ganha a storage 47000, 4. 

 

esse script que eu peguei ai em cima é daqui do fórum, mas ele não funcionou e se não me engano ele não dava storage, a parte do storage 47000 la em cima no meu script foi eu quem editei, mas não deu certo.

 

Pelo que vi o Monstro Demo não existe, o nome nao esta errado?

qualquer coisa tenta assim.

local config = {
	msg = "DIGITE UMA MSG AQUI QUANDO CHEGAR 50%",
	newMonster = 'Demo',
	stor = 78907,
	storValue = 4
}

local condition = createConditionObject(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
setConditionParam(condition, CONDITION_PARAM_SUBID, 88888)
setConditionParam(condition, CONDITION_PARAM_TICKS, 10 * 1000)
setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, 0.01)
setConditionParam(condition,CONDITION_PARAM_HEALTHTICKS, 10 * 1000)

function onThink(cid)
if isPlayer(cid) then
	return true
end
	local hp, oldP = (getCreatureHealth(cid)/getCreatureMaxHealth(cid)*100), {}
	if hp <= 50 and (not getCreatureCondition(cid, CONDITION_REGENERATION, 88888)) then
		doCreatureSay(cid, config.msg, TALKTYPE_ORANGE_1, false, 0, getCreaturePosition(cid))
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_FIREATTACK)
		oldP = getThingPos(cid)
		doRemoveCreature(cid)

		local m = doCreateMonster(config.newMonster, oldP)
		if not m then
			return
		end
	end
    return true
end

function onKill(cid, target, damage, flags)
if isPlayer(target) then
	return true
end

	if getCreatureName(target) == config.newMonster then
		setPlayerStorageValue(config.stor, config.storValue)
	end
	return true
end

@Lisbeky editei esse codigo, tenta novamente.

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

       112674.gif

 

 

 

Postado
  • Autor

@Ackerzin  Show mano, o seu funcionou, mas ha um problema, não esta setando a storage quando o demo morre. eu modifiquei essa storage ai... botei 47000, value 4, mas não deu.

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo