alissonlinneker 2 Postado Janeiro 25, 2009 Share Postado Janeiro 25, 2009 (editado) Fala galera... Trago aqui para vocês um novo script para a Demon Oak Quest. Informações: Nome do script: The Demon Oak QuestData de atualização: 24/01/09 Dificuldade: 3/5 Versão testada: 0.3beta3 Créditos: Simonel, AlissonLinneker - O que há de novo? Este novo script, é mais pratico de se configurar, precisa configurar apenas algunmas posições, e requer apenas duas UID no mapa. - Introdução: Os Ruthless Seven mandaram uma poderoso demônio para Plains Of Havoc. Você tem o que precisa para impedi-lo? - Iniciando: Iremos trabalhar apenas com 5 scripts e 1 npc. Pegaremos a parte das actions, depois movements, e depois o npc. Actions: Dando função ao Hallowed Axe: Primeiramente, crie um arquivo de nome Hallowed Axe.lua, dentro da pasta data/actions/scripts/tools, e adicione o conteúdo a ele: function onUse(cid,item,frompos,item2,topos)number = math.random(1,100) chance = 80 minItem = 1 maxItem = 3 mind = 300 maxd = 500 if chance > 100 or chance == 0 then chance = 100 end ----------------- Variables ---------------------- leftspikedballpos11 = {x=topos.x-1, y=topos.y+2, z=topos.z} leftspikedballpos12 = {x=topos.x+2, y=topos.y+1, z=topos.z} leftspikedballpos13 = {x=topos.x-1, y=topos.y-2, z=topos.z} leftspikedballpos14 = {x=topos.x+2, y=topos.y-1, z=topos.z} leftspikedballpos21 = {x=topos.x-1, y=topos.y-2, z=topos.z} leftspikedballpos22 = {x=topos.x-2, y=topos.y-1, z=topos.z} leftspikedballpos31 = {x=topos.x-1, y=topos.y+2, z=topos.z} leftspikedballpos32 = {x=topos.x-2, y=topos.y+1, z=topos.z} birdpos11 = {x=topos.x+2, y=topos.y+1, z=topos.z} birdpos12 = {x=topos.x+1, y=topos.y+2, z=topos.z} birdpos13 = {x=topos.x+2, y=topos.y, z=topos.z} birdpos14 = {x=topos.x+1, y=topos.y, z=topos.z} birdpos21 = {x=topos.x+2, y=topos.y+1, z=topos.z} birdpos22 = {x=topos.x+1, y=topos.y+2, z=topos.z} birdpos31 = {x=topos.x-2, y=topos.y+1, z=topos.z} birdpos32 = {x=topos.x-1, y=topos.y, z=topos.z} rightspikedballpos11 = {x=topos.x+1, y=topos.y, z=topos.z} rightspikedballpos12 = {x=topos.x+2, y=topos.y-1, z=topos.z} rightspikedballpos13 = {x=topos.x+1, y=topos.y+2, z=topos.z} rightspikedballpos14 = {x=topos.x+2, y=topos.y+1, z=topos.z} rightspikedballpos21 = {x=topos.x+1, y=topos.y+2, z=topos.z} rightspikedballpos22 = {x=topos.x+2, y=topos.y+1, z=topos.z} rightspikedballpos31 = {x=topos.x-1, y=topos.y+2, z=topos.z} rightspikedballpos32 = {x=topos.x-2, y=topos.y+1, z=topos.z} faceoftreepos11 = {x=topos.x-2, y=topos.y-1, z=topos.z} faceoftreepos12 = {x=topos.x+1, y=topos.y-2, z=topos.z} faceoftreepos13 = {x=topos.x+2, y=topos.y-1, z=topos.z} faceoftreepos14 = {x=topos.x-1, y=topos.y-2, z=topos.z} faceoftreepos21 = {x=topos.x-2, y=topos.y-1, z=topos.z} faceoftreepos22 = {x=topos.x-1, y=topos.y-2, z=topos.z} faceoftreepos31 = {x=topos.x-2, y=topos.y+1, z=topos.z} faceoftreepos32 = {x=topos.x-1, y=topos.y+2, z=topos.z} --------------------Demon oak(O braço esquerdo da arvore)-------------------- if item2.itemid == 8289 then leftspikedball = getPlayerStorageValue(cid,20000) if leftspikedball == -1 or leftspikedball == 0 then if number <= chance then surp = math.random(minItem, maxItem) if surp == 1 then if number <= 75 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("bone beast",leftspikedballpos11) doSummonCreature("bone beast",leftspikedballpos12) doSummonCreature("bone beast",leftspikedballpos13) doSummonCreature("bone beast",leftspikedballpos14) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("lich",leftspikedballpos11) doSummonCreature("lich",leftspikedballpos12) doSummonCreature("lich",leftspikedballpos13) doSummonCreature("lich",leftspikedballpos14) end end if surp == 2 then if number <= 75 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("lich",leftspikedballpos21) doSummonCreature("giant spider",leftspikedballpos22) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("grim reaper",leftspikedballpos21) doSummonCreature("dark torturer",leftspikedballpos22) end end if surp == 3 then if number <= 50 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("undead dragon",leftspikedballpos31) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("grim reaper",leftspikedballpos31) doSummonCreature("dark torturer",leftspikedballpos32) end end else doSendMagicEffect(topos,2) setPlayerStorageValue(cid,20000,1) end else doSendMagicEffect(topos,2) end return 1 end --------------------Demon oak(O passaro atraz da arvore)-------------------- if item2.itemid == 8288 then bird = getPlayerStorageValue(cid,20001) if bird == -1 or bird == 0 then if number <= chance then surp = math.random(minItem, maxItem) if surp == 1 then if number <= 75 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("banshee",birdpos11) doSummonCreature("banshee",birdpos12) doSummonCreature("banshee",birdpos13) doSummonCreature("banshee",birdpos14) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("braindeath",birdpos11) doSummonCreature("braindeath",birdpos12) doSummonCreature("braindeath",birdpos13) doSummonCreature("braindeath",birdpos14) end end if surp == 2 then if number <= 75 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("demon",birdpos21) doSummonCreature("diabolic imp",birdpos22) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("blightwalker",birdpos21) doSummonCreature("betrayed wraith",birdpos22) end end if surp == 3 then if number <= 50 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("undead dragon",birdpos31) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("hand of cursed fate",birdpos31) doSummonCreature("dark torturer",birdpos32) end end else doSendMagicEffect(topos,2) setPlayerStorageValue(cid,20001,1) end else doSendMagicEffect(topos,2) end return 1 end --------------------Demon oak(O braço direito da arvore)-------------------- if item2.itemid == 8290 then rightspikedball = getPlayerStorageValue(cid,20002) if rightspikedball == -1 or rightspikedball == 0 then if number <= chance then surp = math.random(minItem, maxItem) if surp == 1 then if number <= 75 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("lich",rightspikedballpos11) doSummonCreature("lich",rightspikedballpos12) doSummonCreature("lich",rightspikedballpos13) doSummonCreature("lich",rightspikedballpos14) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("giant spider",rightspikedballpos11) doSummonCreature("giant spider",rightspikedballpos12) doSummonCreature("giant spider",rightspikedballpos13) doSummonCreature("giant spider",rightspikedballpos14) end end if surp == 2 then if number <= 75 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("dark torturer",rightspikedballpos21) doSummonCreature("demon",rightspikedballpos22) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("diabolic imp",rightspikedballpos21) doSummonCreature("diabolic imp",rightspikedballpos22) end end if surp == 3 then if number <= 50 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("hand of cursed fate",rightspikedballpos31) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("grim reaper",rightspikedballpos31) doSummonCreature("grim reaper",rightspikedballpos32) end end else doSendMagicEffect(topos,2) setPlayerStorageValue(cid,20002,1) end else doSendMagicEffect(topos,2) end return 1 end --------------------Demon oak(O rosto da arvore)-------------------- if item2.itemid == 8291 then faceoftree = getPlayerStorageValue(cid,20003) if faceoftree == -1 or faceoftree == 0 then if number <= chance then surp = math.random(minItem, maxItem) if surp == 1 then if number <= 75 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("vampire",faceoftreepos11) doSummonCreature("vampire",faceoftreepos12) doSummonCreature("vampire",faceoftreepos13) doSummonCreature("vampire",faceoftreepos14) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("diabolic imp",faceoftreepos11) doSummonCreature("diabolic imp",faceoftreepos12) doSummonCreature("diabolic imp",faceoftreepos13) doSummonCreature("diabolic imp",faceoftreepos14) end end if surp == 2 then if number <= 75 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("demon",faceoftreepos21) doSummonCreature("grim reaper",faceoftreepos22) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("hand of cursed fate",faceoftreepos21) doSummonCreature("hand of cursed fate",faceoftreepos22) end end if surp == 3 then if number <= 50 then doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("undead dragon",faceoftreepos31) doSummonCreature("hand of cursed fate",faceoftreepos32) else doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) doSummonCreature("grim reaper",faceoftreepos31) doSummonCreature("hand of cursed fate",faceoftreepos32) end end else doSendMagicEffect(topos,2) setPlayerStorageValue(cid,20003,1) end else doSendMagicEffect(topos,2) end return 1 end return 0 end Salve, e feche o arquivo. Ele está as configurações padões, não há necessidade de mudar. Túmulo de UID 55100, que é usado para ir para sala de recompensas apos matar completamente a arvore e falar com o npc Oldrak.: Agora crie um arquivo de nome DOQgravestone.lua dentro da pasta data/actions/scripts/quests, e adicione o conteúdo a ele, e configure onde se pede.: function onUse(cid, item, fromPosition, itemEx, toPosition) newnPosition = {x=32704, y=32397, z=8} ---Posição da sala das recompensas apos dar USE no túmulo. if getPlayerStorageValue(cid,20004) == 1 then doTeleportThing(cid,newnPosition) doSendMagicEffect(newnPosition,10) else return 0 end return 1 end Actions dos baús da sala de recompensas: Agora crie um arquivo de nome DOQChests.lua dentro da pasta data/actions/scripts/quests e adicione o seguinte conteúdo a ele: Movements: Partiremos agora para está parte. Crie um arquivo de nome dotile.lua dentro da pasta data/movements/scripts e adicione o seguinte conteúdo a ele, e configure onde se pede.: local tree = {x = 32716, y = 32345, z = 7, stackpos=1} ---Posição da árvore morta de ID 2709 function onStepOut(cid, item, pos) local monsterFlower = "Moonflower" if getPlayerLevel(cid) < 120 then doMoveCreature(cid, NORTH) doCreatureSay(cid, "You must be at least level 120 or higher.", TALKTYPE_ORANGE_1) elseif getPlayerLevel(cid) >= 120 then doMoveCreature(cid, SOUTH) doCreateItem(2717, tree) end return TRUE end Agora crie um arquivo de nome removegreenhornstone.lua dentro da pasta data/movements/scripts e adicione o seguinte conteúdo a ele, e configure onde se pede.: function onStepIn(cid, item, pos) -- Start tree removal set StartTreePos = {x=32716, y=32345, z=7, stackpos=1} --- Coodenada da árvore que bloqueia a entrada pra o Demon Oak, é obrigatoriamente que seja igual à coordenada do arquivo dotile.lua. StartTreeChk = getThingfromPos(StartTreePos) -- end of check if isPlayer(cid) == TRUE then doRemoveItem(StartTreeChk.uid) end return TRUE end Pronto, terminamos com as actions e os movements. Agora devemos adiciona-los nos arquivos xml. Abra o arquivo actions.xml dentro da pasta data/actions, e adicione o conteúdo a ele: <!-- demon oak --> <action uniqueid="12901" script="quests/DOQChests.lua" /> --- Demon legs <action uniqueid="12902" script="quests/DOQChests.lua" /> --- Rainbow shield <action uniqueid="12903" script="quests/DOQChests.lua" /> --- royal crossbow <action uniqueid="12904" script="quests/DOQChests.lua" /> --- spellbook of dark mysteries <action uniqueid="55100" script="quests/DOQgravestone.lua" /> <action itemid="8293" script="tools/Hallowed Axe.lua"/> <!-- demon oak fim --> Agora abra o arquivo movements.xml dentro da pasta data/movements, e adicione o conteúdo a ele: <movevent event="StepIn" uniqueid="14449" script="removegreenhornstone.lua"/> --- Ação que remove a arvore morta apos pisar no teleport <movevent event="StepOut" uniqueid="32193" script="dotile.lua" /> --- Ação que cria a arvore morta ao entrar na área da arvore demon oak Pronto, terminamos. Agora basta criar o npc Oldrak. Este Monk trabalha em Plains of Havoc. Faz parte da Paradox Quest, que trocará o axe pelo Hallowed Axe. Veja: Crie um arquivo de nome Oldrak.xml dentro da pasta data/npcs, e adicione isso a ele: <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> Agora crie um arquivo com o nome oldrak.lua, e adicione o conteúdo a ele: -- Made by Coltain and AlissonLinneker, Made it work for TFS -- local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) -- OTServ event handling functions start 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 -- OTServ event handling functions end function creatureSayCallback(cid, type, msg) -- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself. if(not npcHandler:isFocused(cid)) then return false end player_gold = getPlayerItemCount(cid,2148) player_plat = getPlayerItemCount(cid,2152)*100 player_crys = getPlayerItemCount(cid,2160)*10000 player_money = player_gold + player_plat + player_crys playerCap = getPlayerFreeCap(cid) item = 8293 --Hallowed Axe itemweight = getItemWeight(item, 1) if msgcontains(msg, 'hallowed axe') then if isPlayer(cid) then if getPlayerItemCount(cid,2386) >= 1 and player_money >= 50000 then npcHandler:say('Do you want to buy a Hallowed Axe from me?', cid) talk_state = 1 else npcHandler:say('You have to bring me an axe and 50000 gp first?', cid) talk_state = 0 end else npcHandler:say('You need premium to buy this axe from me.', cid) talk_state = 0 end elseif msgcontains(msg, 'yes') and talk_state == 1 then talk_state = 0 if getPlayerItemCount(cid,2386) >= 1 and player_money >= 50000 then if doPlayerTakeItem(cid,2386,1) == 0 and doPlayerRemoveMoney(cid,50000) == TRUE then npcHandler:say('Here you are. You can now defeat the demon oak with this axe.', cid) doPlayerAddItem(cid,8293,1) talk_state = 0 else npcHandler:say('The Hallowed Axe is too heavy for you. Make sure that you have enough capacity.', cid) talk_state = 0 end else npcHandler:say('Please bring with you an axe and enough with money.', cid) talk_state = 0 end elseif msgcontains(msg, 'demon oak') then if getPlayerStorageValue(cid,20000) == 1 and getPlayerStorageValue(cid,20001) == 1 and getPlayerStorageValue(cid,20002) == 1 and getPlayerStorageValue(cid,20003) == 1 then npcHandler:say('Did you defeat the demon oak?', cid) talk_state = 2 else npcHandler:say('Go defeat the demon oak.', cid) talk_state = 0 end elseif msgcontains(msg, 'yes') and talk_state == 2 then talk_state = 0 if getPlayerStorageValue(cid,20000) == 1 and getPlayerStorageValue(cid,20001) == 1 and getPlayerStorageValue(cid,20002) == 1 and getPlayerStorageValue(cid,20003) == 1 then setPlayerStorageValue(cid,20004,1) npcHandler:say('Good job!', cid) end ------------------------------------------------ confirm no ------------------------------------------------ elseif msgcontains(msg, 'no') and (talk_state >= 1 and talk_state <= 1) then npcHandler:say('Ok thanks.', cid) talk_state = 0 end -- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself. return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Pronto. Terminamos tudo. Agora vamos configurar tudo isso rapidamente no mapa. Veja a imagem: Legenda da foto: 1º. = UID 32193 que é ativado ao passar em cima daquele SQM. Quando você passa em cima dele, ele bloqueia a passagem com a dead tree, sendo possivel retornar apenas pelo teleport 2º. = Onde tem esse UID 32193, é onde você pegara as coordenadas daquele lugar, e colocar no arquivos removegreenhornstone.lua e dotile.lua, sendo então obrigatório a coordenada em ambos arquivos. 3º. = Sendo o teleport, você coloca o UID 14449, e define a posição de saída desta área. ... Continua... Vou atualizar explicando como funciona o sistema inteiro e com vídeo CAM Editado Janeiro 25, 2009 por AlissonLinneker Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/ Compartilhar em outros sites More sharing options...
DaNDaNrOxX 15 Postado Janeiro 25, 2009 Share Postado Janeiro 25, 2009 Uia, muito bom, obrigado por trazer conteúdo para o nosso fórum Vou ver como funciona certinho ésta quest e talvez vou adicioná-la no firelink... Só uma dúvida, você vai postar o mapa da quest também? No meu mapa não tem *.* Abraço! Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-683584 Compartilhar em outros sites More sharing options...
alissonlinneker 2 Postado Janeiro 25, 2009 Autor Share Postado Janeiro 25, 2009 sim.. amanhã cedo irei terminar com o script... postarei o mapa da Demon Oak Quest do global, organizarei o script melhor, e postarei o link pra download do vidéo CAM com o resultado da quest... =D Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-683587 Compartilhar em outros sites More sharing options...
satan666 12 Postado Janeiro 28, 2009 Share Postado Janeiro 28, 2009 aewwwwwww funcionou tb em tfs do serve full... vlw aew por tudo ta funcionando certim aki tava precisando muito mesmo da demon oak vlw pela ajuda... Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-685688 Compartilhar em outros sites More sharing options...
brunospace 0 Postado Janeiro 29, 2009 Share Postado Janeiro 29, 2009 achei bastante complicado demorou mais pelomenos eu consegui = ) Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-686689 Compartilhar em outros sites More sharing options...
Catu2208 0 Postado Janeiro 29, 2009 Share Postado Janeiro 29, 2009 Boa Alisson... ótimo script, mas ta faltando completar a linha: Actions dos baús da sala de recompensas: Agora crie um arquivo de nome DOQChests.lua dentro da pasta data/actions/scripts/quests e adicione o seguinte conteúdo a ele: Pelo menos aqui não está aparecendo o script das recompensas :s Obrigado por trazer ao fórum Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-686736 Compartilhar em outros sites More sharing options...
brainless 0 Postado Janeiro 30, 2009 Share Postado Janeiro 30, 2009 (editado) script principal reduzido, se interessar: function onUse(cid,item,frompos,item2,topos) number = math.random(1,100) chance = 80 minItem = 1 maxItem = 3 mind = 300 maxd = 500 if chance > 100 or chance == 0 then chance = 100 end ----------------- Variables ---------------------- coords = { {topos.x+1,topos.y-2,topos.z}, {topos.x-1,topos.y+2,topos.z}, {topos.x+2,topos.y+1,topos.z}, {topos.x-1,topos.y-2,topos.z}, {topos.x+2,topos.y-1,topos.z}, {topos.x-2,topos.y-1,topos.z}, {topos.x-2,topos.y+1,topos.z}, {topos.x+1,topos.y+2,topos.z}, {topos.x+2,topos.y,topos.z}, {topos.x+1,topos.y,topos.z} } combinations = { {2,3,4,5}, {3,8,9,10}, {10,5,8,3}, {6,1,5,4} } local summon(params) doSendMagicEffect(topos,0) doTargetCombatHealth(0, cid, COMBAT_EARTHDAMAGE, -290, -510, CONST_ME_BIGPLANTS) if params.option == 'multi' then for i = 1,4 do doSummonCreature(params.monster, coords[combinations[params.coord1][i]]) end elseif params.option == 'double' then doSummonCreature(params.monster, coords[params.coord1]) doSummonCreature(params.monster, coords[params.coord2]) else doSummonCreature(params.monster, coords[params.coord1]) end end --------------------Demon oak(O braço esquerdo da arvore)-------------------- if item2.itemid == 8289 then leftspikedball = getPlayerStorageValue(cid,20000) if leftspikedball == -1 or leftspikedball == 0 then if number <= chance then surp = math.random(minItem, maxItem) if surp == 1 then local params = {option='multi', coord=1} if number <= 75 then params={monster='bone beast'} else params={monster='lich'} end end if surp == 2 then local params = {option='double', coord1=4, coord2=6} if number <= 75 then params={monster='lich', monster2='giant spider'} else params={monster='grim reaper', monster2='dark torturer'} end end if surp == 3 then if number <= 50 then local params = {monster="undead dragon", option="single", coord1=1} else local params = {option='',monster1='grim reaper',monster2='dark torturer',coord1=2,coord2=7} end end else doSendMagicEffect(topos,2) setPlayerStorageValue(cid,20000,1) end else doSendMagicEffect(topos,2) end return 1 end --------------------Demon oak(O passaro atrás da arvore)-------------------- if item2.itemid == 8288 then bird = getPlayerStorageValue(cid,20001) if bird == -1 or bird == 0 then if number <= chance then surp = math.random(minItem, maxItem) if surp == 1 then local params = {coord1=2, option='multi'} if number <= 75 then params{monster='banshee'} else params={monster='braindeath'} end end if surp == 2 then local params = {option='double', coord1=3, coord2=8} if number <= 75 then params={monster='demon', monster2='diabolic imp'} else params={monster='blightwalker', monster2='betrayed wraith'} end end if surp == 3 then if number <= 50 then local params={option = 'single', monster='undead dragon', coord1=7} else local params={option='',coord1=7,coord2=10,monster1='grim reaper',monster1='dark torturer'} end end else doSendMagicEffect(topos,2) setPlayerStorageValue(cid,20001,1) end else doSendMagicEffect(topos,2) end return 1 end --------------------Demon oak(O braço direito da arvore)-------------------- if item2.itemid == 8290 then rightspikedball = getPlayerStorageValue(cid,20002) if rightspikedball == -1 or rightspikedball == 0 then if number <= chance then surp = math.random(minItem, maxItem) if surp == 1 then local params = {option='multi', coord1=3} if number <= 75 then params={monster='lich'} else local params={monster='grim reaper'} end end if surp == 2 then local params={option='double', coord1=8, coord2=3} if number <= 75 then params={monster1='dark torturer', monster2='demon'} else params={monster1='diabolic imp', monster2='diabolic imp'} end end if surp == 3 then if number <= 50 then local params={option='single', monster='hand of cursed fate', coord1=2} else local params={option='double', monster='grim reaper', coord1=2, coord2=7, monster2='grim reaper'} end end else doSendMagicEffect(topos,2) setPlayerStorageValue(cid,20002,1) end else doSendMagicEffect(topos,2) end return 1 end --------------------Demon oak(O rosto da arvore)-------------------- if item2.itemid == 8291 then faceoftree = getPlayerStorageValue(cid,20003) if faceoftree == -1 or faceoftree == 0 then if number <= chance then surp = math.random(minItem, maxItem) if surp == 1 then local params={option='multi', coord1=4} if number <= 75 then params={monster='vampire'} else params={monster='diabolic imp'} end end if surp == 2 then local params={option='double', coord1=6, coord2=4} if number <= 75 then params={monster='demon', monster2='grim reaper'} else params={monster='hand of cursed fate', monster2='hand of cursed fate'} end end if surp == 3 then local params={option='double', coord1=7, coord2=2} if number <= 50 then params={monster='undead dragon', monster2='hand of cursed fate'} else params={monster='grim reaper', monster2='hand of cursed fate'} end end else doSendMagicEffect(topos,2) setPlayerStorageValue(cid,20003,1) end else doSendMagicEffect(topos,2) end return 1 end addEvent(summon, 100, params) return 0 end se encontrarem erros, favo postar as mensagens do console... fica mais fácil encontrar a linha Editado Janeiro 30, 2009 por brainless Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-687124 Compartilhar em outros sites More sharing options...
amour 4 Postado Fevereiro 7, 2009 Share Postado Fevereiro 7, 2009 boa agora poste o mapa que ta 10 eu n estava entendo o funcionamento da quest me ajudou pakas o post LOVE! Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-692477 Compartilhar em outros sites More sharing options...
flavio12 0 Postado Fevereiro 12, 2009 Share Postado Fevereiro 12, 2009 Otimo ^^ soh q aki em casa deu um bug no npc :x [12/02/2009 14:55:26] Lua Script Error: [Npc interface] [12/02/2009 14:55:26] data/npc/scripts/oldrak.lua [12/02/2009 14:55:26] data/npc/lib/npcsystem/npchandler.lua:285: table index is nil [12/02/2009 14:55:26] [Warning - NpcScript::NpcScript] Can not load script: data/npc/scripts/oldrak.lua sera q é meu ot q nao da suporte ao npc? Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-694902 Compartilhar em outros sites More sharing options...
Zafor 1 Postado Fevereiro 12, 2009 Share Postado Fevereiro 12, 2009 Uia ficou bem legal *-* Parabéns é um belo SCRIPT! *-* Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-694903 Compartilhar em outros sites More sharing options...
SundSiricq 0 Postado Fevereiro 14, 2009 Share Postado Fevereiro 14, 2009 Muito bom, a melhor script Demon Oak no momento... Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-695677 Compartilhar em outros sites More sharing options...
satan666 12 Postado Abril 23, 2009 Share Postado Abril 23, 2009 ele ta com um problema no tfs 0.3.3 que eu to utilizando. o erro e o seguinte e que na base da demon oak do braço direito >>>>>>> esse lado ele num para de sumonar os bixos numka acaba sera ue e erro do script o do ot? e como faço pra ele sumonar poucas vezes os bixos p ele ta sumonando muitas vezes pra acabar. Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-729331 Compartilhar em outros sites More sharing options...
paulinuu 0 Postado Setembro 9, 2009 Share Postado Setembro 9, 2009 Alguem me ajuda eu nao to consiguindo por no meu ot se alguem poder ajduar add no msn :X lucas_axll@hotmail.com Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-789464 Compartilhar em outros sites More sharing options...
fernex17 0 Postado Setembro 11, 2009 Share Postado Setembro 11, 2009 parabéns belo script =D Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-790405 Compartilhar em outros sites More sharing options...
ArthurFavilla 6 Postado Setembro 11, 2009 Share Postado Setembro 11, 2009 Galera, já fazia mais de um mês que ninguém fazia algum post neste tópico, portando isto é considerado flood. Evitem isso. Reportado :button_cancel: Link para o comentário https://xtibia.com/forum/topic/106077-the-demon-oak-quest/#findComment-790412 Compartilhar em outros sites More sharing options...
Posts Recomendados