Postado Agosto 6, 2020 4 anos .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 Agosto 6, 2020 4 anos por Lisbeky (veja o histórico de edições)
Postado Agosto 6, 2020 4 anos 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 Agosto 6, 2020 4 anos 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 Agosto 6, 2020 4 anos 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 Agosto 7, 2020 4 anos por Ackerzin (veja o histórico de edições)
Postado Agosto 7, 2020 4 anos 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.