Pequena atualização da Demon Oak para funcionar nos novos The Forgotten Server 0.4
Alguns scripts foram basedos na função do mazen
Eu tentei fazer ela o mais simples possivel de adicionar
Porém ficou ainda um pouco complicado mais tentarei simplificar ao maximo a explicação dela...
Coloquei 2 tiles de gelo no mapa
O tile mais acima é a posição do starting e o mais baixo e a direita é o ending. Porém esse tem uma borda
A Unica coisa que falta no mapa é a gravestone que vc terá que fazer e colocar a uniqueid 32194 e configurar a newnposition
Quando for passar para seu mapa, retire já que ele é apenas para saber.
Spoiler
1º Para começar a quest você deve andar nas 5 posições que no meu mapa tem um treco amarelo nelas...
2º Depois vai até o npc oldrak e fale
Player : HiOldrak : Hello, Player !
Player : Demon Oak
Oldrak : You found the demon oak ? For kill it's you need a Hallowed Axe. You want get this ?
Player : Yes
Oldrak : Great. You have 1000 gold coins to give me ?
Player : Yes
Oldrak : Great. Now you have a axe to me ?
Player : Yes
Oldrak : Great. Now go and defeat a Demon Oak. Later report me.
3º Agora vá até a arena do demon oak e use o machado na arvore que bloquea o caminho.
4º Agora bata 9x em cada lugar da arvore.
5º Ao final ande no teleport. Se você andar nele antes de matar as quatro partes, vc terá que entrar e mata-la novamente as 4x.
6º Ao sair vai ao Oldrak e Fale :
Player : HiOldrak : Demon oak
Player : I can\'t believe, you really defeat the demon oak. Now is possible you get you reward. Search near cemitery.
7º Agora procure a gravestone de use nela
E seja feliz com seu loot.
Mudançass
1.0 to 1.1Teleport é criado na hora que o player entra na arena, e é configurado automaticamente as posições. Porém não some
quando ele sai por alguns problemas.
Script diminuido.
Mapa adicionado.
Teleport agora não é mais uniqueid e sim actionid.
1.1 to 2.0
Engine diminuida
Novas funções para simplificar scripts
Npc compativel com paradox quest
Starting e Ending automaticos caso use meu mapa
2.0 to 2.1
Adicionada tag para movements funcionarem em The Forgotten Server 0.4
NPC Oldrak com bugs fixados para Demon Oak. (Falta fix para paradox)
Aqui os uid, actions e storages usados :
Storages15001 até 15006
Uids
2358 a 2361
32193 a 32195
Actionids
15000 a 15006
Ele é dividido em quatro arquivos :
Hallowed axe e Demon oak em actionsOldrak em npcs
demon oak em movements
Para mapear crie uma area mais ou menos assim :
Nessa area deverá haver apenas os items descritos e nomeados. De preferencia use o mapa do download.
Na Tree Base adicione o actionids 32193
O tp 1 deve ter o uniqueid 32195 e deverá ter as coordenadas de saida, pois se o player não matar a arvore ele, sairá e terá que mata-la novamente.
Também adicione a gosto a actionid 15001 ao redor da arvore do mal, esse actionids faz o player toma dano da arvore, como se ela batesse nele.
Se vc conhece a quest, vc pode verificar que em certos pontos ao redor da arvore, ela "grita", vc deve adicionar os actionids 15002 até o 15006, em sentido anti horario.
Começando a oeste.
O resto está explicado nos arquivos. Você entenderá melhor se ver o spoil ou assistir algum video. Porém ela é muito simples de ser feita.
A sala de recompensa vc deve adicionar os uids 2358 até 2361 nos baus, da esquerda para direita.
Também não esqueça de colocar a gravestone com o uid 32194.
Ao clicar nela vc irá para a sala de recompensa.
De preferencia use o mapa colocado para download
Incrementando
Em functions.lua ou global.lua adicione ao final:
function doCreatureSayWithDistance(cid, position, text, type) oldPosX = setPlayerStorageValue(cid, 10000, getCreaturePosition(cid).x) oldPosY = setPlayerStorageValue(cid, 10001, getCreaturePosition(cid).y) oldPosZ = setPlayerStorageValue(cid, 10002, getCreaturePosition(cid).z) oldPos = { x = getPlayerStorageValue(cid, 10000), y = getPlayerStorageValue(cid, 10001), z = getPlayerStorageValue(cid, 10002) } doTeleportThing(cid, position, 0) doCreatureSay(cid, text, type) doTeleportThing(cid, oldPos, 0) return end function doSummonCreatures (monsters,positions) for _, positions in pairs (positions) do doSummonCreature(monsters, positions) end end function setPlayerMultiplyStorageValues(cid, storage, value) for _, storage in pairs(storage) do setPlayerStorageValue(cid, storage, value) end end
Na pasta npc adicione oldrak.lua :
<npc name="Oldrak" script="data/npc/scripts/oldrak.lua" walkinterval="2000" floorchange="0" access="3" level="1" maglevel="1"> <health now="150" max="150"/> <look type="57" head="115" body="113" legs="31" feet="38" addons="3" corpse="2212"/> <parameters> <parameter key="message_greet" value="Hello, |PLAYERNAME|!" /> <parameter key="message_needmoremoney" value="Try again when you have more money."/> <parameter key="message_decline" value="Why would you tease me like that?"/> </parameters> </npc>
Em npcs/scripts adicione oldrak.lua :
-- Demon Oak 2.1 by ta4e-- -- Paradox 1.0-- local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'demon oak') then if getPlayerStorageValue(cid, 15006) < 4 and getPlayerStorageValue(cid, 15005) == -1 then selfSay('You need know exactly location, go local and research more...' ,cid) elseif getPlayerStorageValue(cid, 15006) == 4 and getPlayerStorageValue(cid, 15005) == -1 then selfSay('You found the demon oak ? For kill it\'s you need a {Hallowed Axe}.', cid) elseif getPlayerStorageValue(cid, 15005) == -1 and getPlayerStorageValue(cid, 15006) <= 4 then selfSay('This a old demon , but we don\'t know where it\'s live.', cid) elseif getPlayerStorageValue(cid, 15005) == 3 then selfSay('Go defeat demon oak. When you do this report me.', cid) talkState[talkUser] = 0 elseif getPlayerStorageValue(cid, 15005) == 7 then selfSay('I can\'t believe, you really defeat the demon oak. Now is possible you get you reward. Search near cemitery.', cid) setPlayerStorageValue(cid,15005,8) talkState[talkUser] = 0 else selfSay('You need get a {Hallowed Axe}', cid) end elseif msgcontains(msg, 'mission') then if getPlayerStorageValue(cid, 15005) <= 8 then selfSay('First you need defeat the demon oak. Later you make next mission.', cid) elseif getPlayerStorageValue(cid, 15005) == 9 and getPlayerStorageValue(cid, 15031) ~= 2 then selfSay('The next mission, you need kill the demon, as named {Ungreez}. He\'s located in Hero Cave.', cid) setPlayerStorageValue(cid,15031,1) elseif getPlayerStorageValue(cid, 15031) == 2 then selfSay('Congratulations. Now you receive your outfit {Demon Hunter}.', cid) setPlayerStorageValue(cid,15031,2) if getPlayerSex(cid) == 0 then setPlayerStorageValue(cid,40288,1) else setPlayerStorageValue(cid,40289,1) end end elseif msgcontains(msg, 'hallowed axe') then if getPlayerStorageValue(cid, 15005) == -1 then selfSay('I can forge this but i need {1000 gold coins} and a {axe}. You interessed ?', cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid, 15005) == 1 then selfSay('Great. You have 1000 gold coins to give me ?.', cid) talkState[talkUser] = 2 elseif getPlayerStorageValue(cid, 15005) == 2 then selfSay('Great. Now you have a {axe} to me ?.', cid) talkState[talkUser] = 3 end elseif msgcontains(msg, 'hugo') then selfSay('Ah, the curse of the Plains of Havoc, the hidden beast, the unbeatable foe. I\'ve been living here for years and I\'m sure this is only a {myth}.', cid) talkState[talkUser] = 4 elseif talkState[talkUser] == 4 then if msgcontains(msg, 'myth') then selfSay('There are many tales about the fearsome Hugo. It\'s said it\'s an abnormality, accidentally created by {Yenny the Gentle}. It\'s half demon, halfsomething else and people say it\'s still alive after all these years.', cid) talkState[talkUser] = 5 end elseif talkState[talkUser] == 5 then if msgcontains(msg, 'yenny the gentle') then selfSay('Yenny, known as the Gentle, was one of the most powerful wielders of magic in ancient times. She was known throughout the world for her mercy and kindness.', cid) setPlayerStorageValue(cid,15200,1) end elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then selfSay('Great. You have 1000 gold coins to give me ?.', cid) setPlayerStorageValue(cid,15005,1) talkState[talkUser] = 2 else selfSay('When you prepared regress to me.', cid) end elseif talkState[talkUser] == 2 then if msgcontains(msg, 'yes') then if(doPlayerRemoveMoney(cid, 1000) == TRUE) then selfSay('Great. Now you have a {axe} to me ?.', cid) setPlayerStorageValue(cid,15005,2) talkState[talkUser] = 3 else selfSay('You don\'t have a money.', cid) end end elseif talkState[talkUser] == 3 then if msgcontains(msg, 'yes') then if doPlayerRemoveItem(cid,2386,1) == TRUE then selfSay('Great. Now go and defeat a Demon Oak. Later report me.', cid) doPlayerAddItem(cid,8293,1) setPlayerStorageValue(cid,15005,3) talkState[talkUser] = 3 else selfSay('You don\'t have a axe.', cid) end else selfSay('When you prepared regress to me.', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Esse Oldrak é compativel com o npc da paradox postado aqui.
Agora vamos em actions/scripts e adicione hallowed axe.lua :
Nos monster vc escolhe os monstros que a arvore irá sumonar. Em monstros alternativos se vc ativar o altmo, os monstros listado ali abaixo
Serão sorteados com o acima, gerando mais emoção e também sorte ou azar ao player.
--Demon Oak 2.1 by Ta4e-- --Some scripts based in script of Mazen-- function onUse(cid, item, frompos, item2, topos) local monster1 = "Crypt Shambler" local monster2 = "Lich" local monster3 = "bone beast" local monster4 = "banshee" local monster5 = "giant spider" local boss1 = "Blightwalker" local boss2 = "Betrayed Wraith" local boss3 = "diabolic imp" local boss4 = "demon" basepos = {x=1867, y=975, z=7} local starting={x=1856, y=966, z=7, stackpos=253} local ending={x=1883, y=982, z=7, stackpos=253} local trash= {x=1169, y=725, z=13} --Alternative Monsters--------------------------------------------------------------- local altmo = 0 -- If it 0 monsters not randomize. If it 1 randomize with this \/ local altmonst1 = "braindeath" local altmonst2 = "necromancer" local altmonst3 = "vampire" local altmonst4 = "giant spider" local altmonst5 = "demon skeleton" local altboss1 = "plaguesmith" local altboss2 = "phantasm" local altboss3 = "hellhound" local altboss4 = "behemoth" ----------------------------------------------------------------------------------------------- if altmo == 1 then if math.random (1,5) == 1 or math.random (1,5) == 5 then monster1 = altmonst1 monster2 = altmonst2 monster5 = altmonst5 boss1 = altboss1 boss3 = altboss3 else monster3 = altmonst3 monster4 = altmonst4 boss2 = altboss2 boss4 = altboss4 end end local fourposition1 = {x=basepos.x-4, y=basepos.y-4, z=7} local fourposition2 = {x=basepos.x-4, y=basepos.y+1, z=7} local fourposition3 = {x=basepos.x+3, y=basepos.y-4, z=7} local fourposition4 = {x=basepos.x+3, y=basepos.y+1, z=7} local modpos1 = {x=basepos.x-3, y=basepos.y-5, z=7} local modpos2 = {x=basepos.x, y=basepos.y-4, z=7} local modpos3 = {x=basepos.x+2, y=basepos.y-5, z=7} local threeposition1 = {x=basepos.x+3, y=basepos.y+4, z=7} local threeposition2 = {x=basepos.x+5, y=basepos.y+4, z=7} local threeposition3 = {x=basepos.x+3, y=basepos.y+5, z=7} local twopos ={x=basepos.x+5, y=basepos.y+1, z=7} local twopos1 = {x=basepos.x+2, y=basepos.y+2, z=7} local doublepos = {x=basepos.x-3, y=basepos.y-1, z=7} local leftpos = {x=basepos.x-4, y=basepos.y-5, z=7} local crepos = {x=basepos.x-3, y=basepos.y-7, z=7} local gopos = {x=basepos.x-2, y=basepos.y-17, z=7} ------------------------------------------------------------------------------------------------------------------------------ local gtotal = getPlayerStorageValue(cid, 15005) local gcorvo = getPlayerStorageValue(cid, 15001) local gleft = getPlayerStorageValue(cid, 15002) local gright = getPlayerStorageValue(cid, 15003) local gface = getPlayerStorageValue(cid, 15004) checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos} if item2.itemid == 2717 and item2.uid == 32193 then if getPlayerLevel(cid) >= 120 then players=0 totalmonsters=0 monster = {} repeat creature= getThingfromPos(checking) if creature.itemid > 0 then if getPlayerAccess(creature.uid) == 0 then players=players+1 end if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then totalmonsters=totalmonsters+1 monster[totalmonsters]=creature.uid end end checking.x=checking.x+1 if checking.x>ending.x then checking.x=starting.x checking.y=checking.y+1 end until checking.y>ending.y if players==0 then current=0 repeat current=current+1 doTeleportThing(monster[current],trash) until current>=totalmonsters doTeleportThing(cid, topos, 0) setPlayerMultiplyStorageValues(cid,{15001,15002,15003,15004},1) doTransformItem(item2.uid, 3669) doCreateTeleport(1387, gopos, crepos) local getrem1 = getThingfromPos({x=basepos.x-3, y=basepos.y-7, z=7, stackpos = 3}) doSetItemActionId(getrem1.uid,32195) end else doPlayerSendTextMessage(cid, "You need level 120 to enter in arena.", result) end elseif item2.itemid == 8288 then if gcorvo <10 then effect (cid,15001,gcorvo,topos) if gcorvo == 3 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gcorvo == 5 then doSummonCreatures(monster2, {threeposition1,threeposition2,threeposition3}) elseif gcorvo == 7 then doSummonCreature(boss1, fourposition3) elseif gcorvo == 9 then gtotal = gtotal + 1 setPlayerStorageValue(cid, 15005,gtotal) end else doSendMagicEffect(topos, 2) end elseif item2.itemid == 8289 then if gleft <10 then effect (cid,15002,gleft,topos) if gleft == 3 then doSummonCreature(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gleft == 4 then doSummonCreatures(monster3, {modpos1,modpos2,modpos3}) doSummonCreature(monster3, fourposition2) elseif gleft == 7 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gleft == 9 then doSummonCreature(boss2, leftpos) gtotal = gtotal + 1 setPlayerStorageValue(cid, 15005,gtotal) end else doSendMagicEffect(topos, 2) end elseif item2.itemid == 8290 then if gright <10 then effect (cid,15003,gright,topos) if gright == 2 then doSummonCreatures(monster4, {twopos,twopos1}) elseif gright == 4 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gright == 7 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gright == 9 then doSummonCreature(boss3,leftpos) gtotal = gtotal + 1 setPlayerStorageValue(cid, 15005,gtotal) end else doSendMagicEffect(topos, 2) end elseif item2.itemid == 8291 then if gface <10 then effect (cid,15004,gface,topos) if gface == 1 then doSummonCreature(monster2, doublepos) doSummonCreature(monster5, fourposition2) elseif gface == 4 then doSummonCreatures(monster1, {fourposition1,fourposition2,fourposition3,fourposition4}) elseif gface == 6 then doSummonCreature(boss4, leftpos) elseif gface == 9 then gtotal = gtotal + 1 setPlayerStorageValue(cid, 15005,gtotal) end else doSendMagicEffect(topos, 2) end end end local function effect (cid,storage,valor,topos) valor = getPlayerStorageValue(cid, storage) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -300, -300, CONST_ME_BIGPLANTS) valor = valor + 1 setPlayerStorageValue(cid, storage,valor) doSendMagicEffect(topos, 0) end
Na mesma pasta adicione o Demon oak.lua :
--Demon Oak 2.1 by Ta4e-- --Some scripts based in script of Mazen-- function onUse(cid, item, fromPosition, itemEx, toPosition) newnPosition = {x=1904, y=1006, z=8} -- Aqui a posição da sala de recompensa if item.uid == 32194 and getPlayerStorageValue(cid,15005) == 8 then doTeleportThing(cid,newnPosition) doSendMagicEffect(newnPosition,10) elseif item.uid == 2358 then if getPlayerStorageValue(cid,2358) == -1 and getPlayerStorageValue(cid,15005) == 8 then if getPlayerFreeCap(cid) >= 54.00 then doPlayerSendTextMessage(cid,24,"You have found demon legs.") doPlayerAddItem(cid,2495,1) setPlayerMultiplyStorageValues (cid,{2358,15005},1) else doPlayerSendTextMessage(cid,24,"You have found a demon legs. Weighing 54.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 2359 then if getPlayerStorageValue(cid,2358) == -1 and getPlayerStorageValue(cid,15005) == 8 then if getPlayerFreeCap(cid) >= 69.00 then doPlayerSendTextMessage(cid,24,"You have found rainbow shield.") doPlayerAddItem(cid,8905,1) setPlayerMultiplyStorageValues (cid,{2358,15005},1) else doPlayerSendTextMessage(cid,24,"You have found a rainbow shield. Weighing 69.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 2360 then if getPlayerStorageValue(cid,2358) == -1 and getPlayerStorageValue(cid,15005) == 8 then if getPlayerFreeCap(cid) >= 12.00 then doPlayerSendTextMessage(cid,24,"You have found royal crossbow.") doPlayerAddItem(cid,8851,1) setPlayerMultiplyStorageValues (cid,{2358,15005},1) else doPlayerSendTextMessage(cid,24,"You have found a royal crossbow. Weighing 12.00 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end elseif item.uid == 2361 then if getPlayerStorageValue(cid,2358) == -1 and getPlayerStorageValue(cid,15005) == 8 then if getPlayerFreeCap(cid) >= 28.50 then doPlayerSendTextMessage(cid,24,"You have found a spellbook of dark mysteries.") doPlayerAddItem(cid,8918,1) setPlayerMultiplyStorageValues (cid,{2358,15005},1) else doPlayerSendTextMessage(cid,24,"You have found spellbook of dark mysteries. Weighing 28.50 oz it is too heavy.") end else doPlayerSendTextMessage(cid,24,"The chest is empty.") end end end
E em actions.xml adicione :
<action itemid="8293" script="Hallowed Axe.lua"/> <action uniqueid="32194" script="demon oak.lua" /> <action uniqueid="2358" script="demon oak.lua" /> <action uniqueid="2359" script="demon oak.lua" /> <action uniqueid="2360" script="demon oak.lua" /> <action uniqueid="2361" script="demon oak.lua" />
Finalmente em movements/scripts adicione demon oak.lua :
--Demon Oak 2.1 by Ta4e-- --Some scripts based in script of Mazen-- function onStepOut(cid, item, position, fromPosition) if item.uid == 32193 and item.itemid == 3669 then doTransformItem(item.uid,2717) end end function onStepIn(cid, item, position, fromPosition) local yell = getPlayerStorageValue(cid, 15006) local pos1= {x=1866, y =973, z=7} if item.actionid == 32195 and item.itemid == 1387 then if getPlayerStorageValue(cid, 15005) == 7 then doPlayerSendTextMessage(cid,21,"Tell Oldrak about your great victory against the demon oak.") else doPlayerSendTextMessage(cid,21,"You have escaped of Demon Oak.") setPlayerMultiplyStorageValues (cid,{15001,15002,15003,15004,15005},1) end end if getPlayerStorageValue(cid, 15006) < 4 then if isPlayer(cid) == TRUE then yell = yell + 1 if item.actionid == 15005 and getPlayerStorageValue(cid, 15006) == -1 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "Find a way in here and release me! Pleeeease hurry!",TALKTYPE_ORANGE_1 ) elseif item.actionid == 15002 and getPlayerStorageValue(cid, 15006) == 0 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "I can bring your beloved back from the dead,just release me!",TALKTYPE_ORANGE_1 ) elseif item.actionid == 15003 and getPlayerStorageValue(cid, 15006) == 1 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "What is this? Demon legs lying here? Someone might have lost them.",TALKTYPE_ORANGE_1 ) elseif item.actionid == 15004 and getPlayerStorageValue(cid, 15006) == 2 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "I'm trapped come here and free me, fast!!!",TALKTYPE_ORANGE_1 ) elseif item.actionid == 15005 and getPlayerStorageValue(cid, 15006) == 3 then setPlayerStorageValue(cid, 15006,yell) doCreatureSayWithDistance(cid, pos1, "What a nice and shinny golden armor. Come to me and you can have it!",TALKTYPE_ORANGE_1 ) end end elseif item.actionid == 15001 then if isPlayer(cid) == TRUE then if getPlayerStorageValue(cid, 15005) <=7 then if math.random(1,4) == 1 then doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -500, -500, CONST_ME_BIGPLANTS) end end end end end
Em movements.xml adicione :
<movevent event="StepOut" uniqueid="32193" script="demon oak.lua" /> <movevent event="StepIn" uniqueid="32195" script="demon oak.lua" /> <movevent event="StepIn" actionid="15000" script="demon oak.lua" /> <movevent event="StepIn" actionid="15001" script="demon oak.lua" /> <movevent event="StepIn" actionid="15002" script="demon oak.lua" /> <movevent event="StepIn" actionid="15003" script="demon oak.lua" /> <movevent event="StepIn" actionid="15004" script="demon oak.lua" /> <movevent event="StepIn" actionid="15005" script="demon oak.lua" /> <movevent event="StepIn" actionid="15006" script="demon oak.lua" />
Caso seja The Forgotten Server 0.4.2
<movevent type="StepOut" uniqueid="32193" event="script" value="dotile.lua" /> <movevent type="StepIn" actionid="32195" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15000" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15001" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15002" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15003" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15004" event="script" value="demon oak.lua" /> <movevent type="StepIn" actionid="15005" event="script" value="demon oak.lua" />
--UPDATE--
Eu acabei esquecendo de uma coisa que arruma alguns bugs caso o player empacote (morra)
Em creaturescripts/scritps no player death.lua depois de:
function onDeath(cid, corpse, killer)
Adicione :
setPlayerStorageValue(cid,5002,0) setPlayerStorageValue(cid,5001,0) setPlayerStorageValue(cid,5000,0)
Isso evita que o player não possa entrar na quest e desfaz alguns bugs...
Se você é anormal como eu, pode querer adicionar no Quest Log essa quest para ajudar os players
Então em XML/quests.xml depois de:
<quests>
Adicione :
<quest name="The Ultimate Challenges" startstorageid="15005" startstoragevalue="1"> <mission name="The Demon Oak" storageid="15005" startvalue="1" endvalue="9"> <missionstate id="1" description="You need give 1000 gold coins for Oldrak make a Hallowed Axe"/> <missionstate id="2" description="Now give axe to Oldrak make a Hallowed Axe"/> <missionstate id="3" description="Go defeat the Demon Oak."/> <missionstate id="4" description="You now killing The Demon Oak. Left 3 of 4 Parts."/> <missionstate id="5" description="You now killing The Demon Oak. Left 2 of 4 Parts."/> <missionstate id="6" description="You now killing The Demon Oak. Left 1 of 4 Parts."/> <missionstate id="7" description="Now the Demon Oak are dead. Report to oldrak."/> <missionstate id="8" description="Found a gravestone to choose your reward."/> <missionstate id="9" description="Congratulations. You have finished the quest"/> </mission> </quest>
Pra adicionar o encantamento do rainbow shield
entre em
http://www.xtibia.com/forum/84-Enchant-Sys...ld-t103742.html