MUTAN0 1 Postado Fevereiro 8, 2009 Share Postado Fevereiro 8, 2009 (editado) Como ta dificil encontrar missoes em OtServs, hoje eu trago em primeira mão uma missao pro Seu OT. Os scripts são meus, então eu peço que não retirem os créditos. Não tirem daqui para botar em outro forum sem minha autorização, pois se eu achar isso copiado com certeza irei reportar. IDs principais; Rake (ID: 2549) Papagaio na arvore (ID: 6094) Piano (ID: 2080 - 2083) Recomendo para: TFS 0.3 - 8.31 Ou mais. Essa quest, é uma propria, mas a ideia veio de uma quest do global, onde você ajuda uma menina a resgatar um anel. Introdução da quest: O player chega no NPC Ana, que está com alguns problemas com um colar de sua familia. O player promete ajuda-la, e então ela relata ter entrado um papagaio em seu quarto e roubado esse colar. Ela ainda diz que o papagaio voou para uma montanha, e pode estar em alguma arvore, por isso ela da ao player uma Rake para poder alcançar o papagaio. O player recebe o Rake, e vai em busca do papagaio...Ao acha-lo, ele "cutuca" o papagaio na arvore com a Rake. O player entao perde a Rake, e ganha o colar perdido, que seria o colar que Ana procura tao desesperadamente. O player volta até Ana, e mostra que conseguiu seu colar roubado pelo papagaio. Ela diz que não tem algo a dar como recompensa, mas diz que se o player tocar em seu piano ele pode ter uma surpresa. O player vai e toca no piano, ao tocar ele é lançado em uma sala com um baú, que tem sua recompensa. Abre um bau, ganha a recompensa. Entra no Teleport ao lado, e sai feliz da vida com sua missão feita. O colar que vou usar é um que já tem em seu OT, e ele é assim: You see jerom's family necklace. It weighs 6.30 oz. --------------------------------------------------- Agora, mão na massa; Primeiro vamos criar o NPC. data\npc: Crie um arquivo XML, nomeie para Ana (nome da nossa NPC). Dentro, isso: <?xml version="1.0" encoding="UTF-8"?><npc name="Ana" script="data/npc/scripts/necklace.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="140" head="97" body="15" legs="12" feet="15" addons="0"/> <parameters> <parameter key="message_greet" value="Hi |PLAYERNAME|."/> </parameters> </npc> data\npc\scripts: Crie um arquivo LUA, renomeie para necklace. Dentro, isso: -- Script by MUTAN0 --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, 'mission') then if getPlayerStorageValue(cid,10002) == -1 then selfSay('A parrot came into my room and took the collar of the family...', cid) selfSay('...My father will be angry if you know that I lost that necklace which went through many generations...', cid) selfSay('...You would be able to climb the mountain and rescue the necklace, right?', cid) talkState[talkUser] = 1 elseif getPlayerStorageValue(cid,10002) == 1 then selfSay('Managed to recover my lost necklace with a parrot ??', cid) talkState[talkUser] = 2 elseif getPlayerStorageValue(cid,10002) == 2 then selfSay('Thank you for your help.', cid) talkState[talkUser] = 0 focus = 0 end elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then selfSay('Take that, will serve to achieve the parrot if he is in a tree...', cid) selfSay('...When you get the necklace, bring back to me, please. Now go.', cid) talkState[talkUser] = 2 setPlayerStorageValue(cid,10002,1) doPlayerAddItem(cid, 2549) else selfSay('Good Bye then.', cid) talkState[talkUser] = 0 focus = 0 end elseif talkState[talkUser] == 2 then if msgcontains(msg, 'yes') then if getPlayerStorageValue(cid,10001) >= 1 then if getPlayerItemCount(cid,8584) >= 1 then if doPlayerRemoveItem(cid,8584,1) == 1 then setPlayerStorageValue(cid,10005,1) setPlayerStorageValue(cid,10002,2) selfSay('As I am not what you give as a reward ... touch my piano, and you have a surprise.', cid) end else selfSay('You don\'t have the necklace of my family.', cid) talkState[talkUser] = 0 end else selfSay('Find a parrot, Must be in the mountains, in a tree.', cid) talkState[talkUser] = 0 end elseif msgcontains(msg, 'no') then selfSay('When you have a necklace come back here, please.', cid) talkState[talkUser] = 0 end return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) NPC tá criado, agora vamos para as Actions. Precisamos criar a Rake, para o player alcançar o papagaio na arvore; data\actions\scripts\tools: Crie um arquivo LUA, renomeie para rake. Dentro isso: -- Script by MUTAN0 --function onUse(cid, item, fromPosition, itemEx, toPosition) treepos = {x=toPosition.x, y=toPosition.y, z=toPosition.z} if itemEx.itemid == 0 then return 0 end if itemEx.itemid == 6094 and treepos.x == 443 and treepos.y == 679 and treepos.z == 7 then if getPlayerStorageValue(cid,10002) >= 1 then if getPlayerStorageValue(cid,10001) == -1 then doPlayerAddItem(cid, 8584) doRemoveItem(item.uid, 1) doSendMagicEffect(toPosition, CONST_ME_POFF) setPlayerStorageValue(cid,10001,1) else doPlayerSendTextMessage(cid,22,"Sorry, not possible.") end else doPlayerSendTextMessage(cid,22,"Sorry, not possible.") end end return 1 end treepos.x == 443 and treepos.y == 679 and treepos.z == 7 then Aqui voce muda as coordenadas. Essas coordenadas são onde fica a arvore com o papagaio. No meu caso fica em x=443,y=679,z=7. Em Actions.XML, adicione: <action itemid="2549" script="tools/rake.lua"/> Agora por ultimo, mas não menos importante, o Piano. data\actions\scripts\other: Crie um arquivo LUA chamado piano. Dentro, isso: -- Script by MUTAN0 --newpos = {x=239, y=226, z=8} function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == 10010 then if getPlayerStorageValue(cid,10005) >= 1 then doTeleportThing(cid, newpos) doSendMagicEffect(fromPosition, CONST_ME_SOUND_YELLOW) else doPlayerSendTextMessage(cid,22,"Sorry, not possible.") end return TRUE end return FALSE end {x=239, y=226, z=8} Aqui é a coordenada da sala da recompensa, onde o player é teleportado ao acabar a missão e clicar no piano. Não esqueça de criar a sala da recompensa, comforme as coordenadas, e nessa sala botar o chest com a quest e o teleport para sair da sala. 10010 O UniqueID que vai no Piano. Dicas: Faça uma casa para botar a menina Ana. A arvore com o papagaio bote em uma montanha perto da casa dela, se for sua opção bote alguns bixos pelo caminho da montanha. Valeu pessoal, espero que vocês curtam. Eu curti bastante :smile_positivo: Valeu, abraços. Editado Fevereiro 8, 2009 por MUTAN0 Link para o comentário https://xtibia.com/forum/topic/107345-jeroms-family-necklace-quest/ Compartilhar em outros sites More sharing options...
garep 14 Postado Fevereiro 8, 2009 Share Postado Fevereiro 8, 2009 Do krl bem bolada parebéns Link para o comentário https://xtibia.com/forum/topic/107345-jeroms-family-necklace-quest/#findComment-692800 Compartilhar em outros sites More sharing options...
walckerstriker 0 Postado Fevereiro 8, 2009 Share Postado Fevereiro 8, 2009 Gostei. Tanto do script (Elaboração) quanto ao tópico (Organização). Irei utilizar tal em meu próximo ATS, que em breve creio eu, será lançado. Parabéns, e continue trazendo conteúdo para a comunidade X-Tibia. //Walcker~ Link para o comentário https://xtibia.com/forum/topic/107345-jeroms-family-necklace-quest/#findComment-692829 Compartilhar em outros sites More sharing options...
MUTAN0 1 Postado Fevereiro 8, 2009 Autor Share Postado Fevereiro 8, 2009 @Walcker: É um prazer fazer parte de uma das quests do seu proximo ATS. Obrigado por gostar. Abraços. Link para o comentário https://xtibia.com/forum/topic/107345-jeroms-family-necklace-quest/#findComment-692852 Compartilhar em outros sites More sharing options...
yasha 12 Postado Fevereiro 9, 2009 Share Postado Fevereiro 9, 2009 Achei muito interessante seu script. Vou usar em meu OT e para ficar mais difícil vou colocar alguns bixos pra matar. Muito bom, parabéns. //yasha Link para o comentário https://xtibia.com/forum/topic/107345-jeroms-family-necklace-quest/#findComment-693353 Compartilhar em outros sites More sharing options...
Slinix 1 Postado Fevereiro 14, 2009 Share Postado Fevereiro 14, 2009 Fale Dale Mutado , Usei Sua quest pra por um Sistema de premmy diferente =D , cara só pode comprar premmy se ele tiver feito essa quest =D Link para o comentário https://xtibia.com/forum/topic/107345-jeroms-family-necklace-quest/#findComment-696028 Compartilhar em outros sites More sharing options...
Zafor 1 Postado Fevereiro 14, 2009 Share Postado Fevereiro 14, 2009 Legal mais achei que a parte do tocar piano e se teletransportar fica estranho ia ser mais legal se a mulher desse a recompensa ;D Link para o comentário https://xtibia.com/forum/topic/107345-jeroms-family-necklace-quest/#findComment-696083 Compartilhar em outros sites More sharing options...
MUTAN0 1 Postado Fevereiro 15, 2009 Autor Share Postado Fevereiro 15, 2009 @Up: Sem problemas. Apenas troque essa parte: elseif talkState[talkUser] == 2 thenif msgcontains(msg, 'yes') then if getPlayerStorageValue(cid,10001) >= 1 then if getPlayerItemCount(cid,8584) >= 1 then if doPlayerRemoveItem(cid,8584,1) == 1 then setPlayerStorageValue(cid,10005,1) setPlayerStorageValue(cid,10002,2) selfSay('As I am not what you give as a reward ... touch my piano, and you have a surprise.', cid) end Por essa: elseif talkState[talkUser] == 2 thenif msgcontains(msg, 'yes') then if getPlayerStorageValue(cid,10001) >= 1 then if getPlayerItemCount(cid,8584) >= 1 then if doPlayerRemoveItem(cid,8584,1) == 1 then doPlayerAddItem(cid, itemid, count/subtype) setPlayerStorageValue(cid,10002,2) selfSay('Thanks for the help, take this gift as a form of gratitude.', cid) end @yasha, Slinix: Poxa, muuuuuuito obrigado pelo carinho e por terem usado. Gosto muito quando consigo ajudar. Valeu á todos. Abraços. Link para o comentário https://xtibia.com/forum/topic/107345-jeroms-family-necklace-quest/#findComment-696317 Compartilhar em outros sites More sharing options...
israelwil 0 Postado Abril 13, 2009 Share Postado Abril 13, 2009 Em relação ao script, está perfect melhor impossivel alem de ter a devida missão tem no caso a opção (no) que em certos scripts que eu vejo em outros lugares são inesistentes..Eu irei aproveita-lo bem em meu ats tbm mais só que irei modificar a parte do piano para abrir uma passagen secreta. Só uma pergunta.. No caso se eu quiser edita-lo, poderia colocar mais missões para o player fazer nesse mesmo script? (No caso esse script tem 3 partes, daria pra fazer com o mesmo mais de 4 ou 5?)... Pois já tentei fazer uma vez com outro script e não tive sucesso, Se puder dar suporte a isso agradeço.. Link para o comentário https://xtibia.com/forum/topic/107345-jeroms-family-necklace-quest/#findComment-724292 Compartilhar em outros sites More sharing options...
Posts Recomendados