Tio Gordo 8 #1 Posted August 9, 2007 Olá a todos, andei pensando esses dias e com a idéia de um amigo meu: Fernando (FOREVER), desenvolvi um código que é o seguinte: - Existem 3 coal basins. - Você tem que fazer a combinação dos itens, em cima dos coal basins. - Após fazer a combinação você sobe num piso, se estiver certa a combinação você é teletransportado, se não aparece uma mensagem, dizendo que você não matou a charada. Mas vamos parar de enrolação e vamos ao script, que é muito simples: function onStepIn(cid, item, frompos, item2, topos) piece1pos = {x=300, y=903, z=7, stackpos=1} piece2pos = {x=285, y=891, z=7, stackpos=1} piece3pos = {x=285, y=889, z=7, stackpos=1} novapos1 = {x=348, y=293, z=7} getpiece1 = getThingfromPos(piece1pos) getpiece2 = getThingfromPos(piece2pos) getpiece3 = getThingfromPos(piece3pos) if item.uid == 8769 and item.itemid == 473 and getpiece1.itemid == 2193 and getpiece2.itemid == 2193 and getpiece3.itemid == 2193 then doRemoveItem(getpiece1.uid,1) doRemoveItem(getpiece2.uid,1) doRemoveItem(getpiece3.uid,1) doTeleportThing(cid,novapos1) else doPlayerSendTextMessage(cid,22,"Voce nao descobriu a charada.") end return 1 end[/b] Vamos explicar agora: Em vermelho, é qual movement será utilizado no caso a função onStepIn, que é quando o player pisa no piso. Em azul, são as posições de cada coal basin, logo a posição de cada item. Em amarelo, é a posição em que o player será teletransportado para fazer a quest. Em negrito, é a parte da verificação da charada. Primeiro: O item.uid é o Unique ID do piso! O item.id é o ID do piso! E os getpiece1 , 2 e 3, são os ID's dos itens, resolvi colocar todos como 2193(Ankh), porém para a charada ficar mais dificil mude a seu gosto! Bem, esse arquivo você deve salvar como quest.lua, dentro da pasta data/movements/scripts do seu OT. Agora devemos configurar o movements para que esse movement funcione então: - Abra o arquivo movements.xml dentro da pasta data/movements de seu OT - Adicione a seguinte Tag (Lembrando que utilizei o Uniqueid = 8769, caso você mude esse número deverá mudar também no movements.xml!) : <movevent event="StepIn" uniqueid="8769" script="quest.lua" />[/b] Pronto está configurado, porém se você colocar no seu OT Server, e não funcionar modifique essa tag por isso: <movevent event="StepIn" itemid="473" script="quest.lua" />[/b] Lembrando que coloquei o piso id 473, se você modificar deve modificar tanto aqui nessa tag quanto no script! Agora, basta utilizar a criatividade e criar muitas outras quests desafiadoras! Abraços, Tio Gordo. Share this post Link to post Share on other sites
Dark Skyllen 7 #3 Posted August 10, 2007 #topic Muito bom! É muito legal este tipo de quest! Aprovadíssimo! Parabéns Nota: 10 Share this post Link to post Share on other sites
chisien2005 0 #4 Posted August 10, 2007 heeh gostou da minha ideia neh^^ entao soh falta arrumar pra q quando o monstro passa pelo piso nao acontecer nada.. vlw pelo credito xD Share this post Link to post Share on other sites
Muadogib 0 #5 Posted August 10, 2007 legal... parecido com o hota neh essas quest sao boas mesmo...melhor que mata um demon e pega uma mpa no chest >.< Share this post Link to post Share on other sites
Deviel 0 #6 Posted August 13, 2007 Outro script deste estilo que não funciona, estou pensando em desistir. Ja tentei 4 script e movements diferente e nenhum deu certo ainda =/ Olha como esta o arquivo.lua Ps: Eu fiz para 2 itens function onStepIn(cid, item, frompos, item2, topos) piece1pos = {x=396, y=126, z=6, stackpos=1} piece2pos = {x=397, y=126, z=6, stackpos=1} novapos1 = {x=491, y=148, z=6} getpiece1 = getThingfromPos(piece1pos) getpiece2 = getThingfromPos(piece2pos) if item.uid == 8769 and item.itemid == 473 and getpiece1.itemid == 6098 and getpiece2.itemid == 2455 then doRemoveItem(getpiece1.uid,1) doRemoveItem(getpiece2.uid,1) doTeleportThing(cid,novapos1) else doPlayerSendTextMessage(cid,22,"Voce nao descobriu a charada.") end return 1 end Share this post Link to post Share on other sites
Arch 0 #7 Posted August 18, 2007 isso parece ser ancient helm modificado mas eh uma otima ideiaa mto criativo ^^ Share this post Link to post Share on other sites
_RIBEIRO_ 0 #8 Posted August 18, 2007 Gostei muito ! ~~Aprovado~~ Share this post Link to post Share on other sites
Syodana 0 #9 Posted August 21, 2007 Ahhhhhh pergunta e Ot q nu tem a pasta "movements" :S grata, Syo~~ Share this post Link to post Share on other sites
Pedroddcunha 3 #10 Posted August 26, 2007 @Usurpador Alertado e suspenso por mass flood Share this post Link to post Share on other sites
541320 0 #11 Posted March 1, 2008 cara mas coloca o unique id no piso lah?? Share this post Link to post Share on other sites
Aioria 0 #12 Posted March 1, 2008 cara mto bom isso ::DDD VLw Share this post Link to post Share on other sites
Elys Zarox 0 #13 Posted March 1, 2008 Vlwwwwwwwwwwww cara presisava disso tbm hj eh meu dia de sorte xD Share this post Link to post Share on other sites
savity 1 #14 Posted March 2, 2008 Bom, pelo o que li eu gostei. Na pratica vamo ver se fica bom aprovado =D Share this post Link to post Share on other sites
Machine! 2 #15 Posted March 2, 2008 c realmente funcionar e uma boa ideia para server rpg e para naum rpgs ! vlw ai por postar e ajudar a otnet. aprovado ..... vo presisa de um script assim pra meu avatar project Share this post Link to post Share on other sites
goiabinha 0 #16 Posted March 2, 2008 VOU FALAR DNV ONDI EU COLOCO ESSA PORRA? EXPLICA TPW: Exemplo: VC VAI EM DATA/SCRIPT E CRIEI UM ARQUIVO LUA ABRA ELE E COLOQUE function onStepIn(cid, item, frompos, item2, topos) piece1pos = {x=300, y=903, z=7, stackpos=1} piece2pos = {x=285, y=891, z=7, stackpos=1} piece3pos = {x=285, y=889, z=7, stackpos=1} novapos1 = {x=348, y=293, z=7} getpiece1 = getThingfromPos(piece1pos) getpiece2 = getThingfromPos(piece2pos) getpiece3 = getThingfromPos(piece3pos) if item.uid == 8769 and item.itemid == 473 and getpiece1.itemid == 2193 and getpiece2.itemid == 2193 and getpiece3.itemid == 2193 then doRemoveItem(getpiece1.uid,1) doRemoveItem(getpiece2.uid,1) doRemoveItem(getpiece3.uid,1) doTeleportThing(cid,novapos1) else doPlayerSendTextMessage(cid,22,"Voce nao descobriu a charada.") end return 1 end[/b] ENTENDEU? COMO C QUEH INCINA ASSIm? agora c xega e fala bom citaçao coloque isso function onStepIn(cid, item, frompos, item2, topos) piece1pos = {x=300, y=903, z=7, stackpos=1} piece2pos = {x=285, y=891, z=7, stackpos=1} piece3pos = {x=285, y=889, z=7, stackpos=1} novapos1 = {x=348, y=293, z=7} getpiece1 = getThingfromPos(piece1pos) getpiece2 = getThingfromPos(piece2pos) getpiece3 = getThingfromPos(piece3pos) if item.uid == 8769 and item.itemid == 473 and getpiece1.itemid == 2193 and getpiece2.itemid == 2193 and getpiece3.itemid == 2193 then doRemoveItem(getpiece1.uid,1) doRemoveItem(getpiece2.uid,1) doRemoveItem(getpiece3.uid,1) doTeleportThing(cid,novapos1) else doPlayerSendTextMessage(cid,22,"Voce nao descobriu a charada.") end return 1 end[/b] ME ENCINA DIREITO.... [email protected] Share this post Link to post Share on other sites
Devorador de Corpos 0 #17 Posted March 9, 2008 o bem bolado gostei =) Share this post Link to post Share on other sites
Tio Gordo 8 #18 Posted April 17, 2008 @goiabinha você deve colocar o arquivo dentro da pasta data/movements/scripts O unique ID será o do Piso. E depois você adiciona no movements.xml Share this post Link to post Share on other sites
celinhoxp 0 #19 Posted April 17, 2008 Caraca mano! Muito bom! Criatividade pura! Vo testar ake e vê se deu certo ;] Obrigado (Y) Share this post Link to post Share on other sites
Kokins 0 #20 Posted May 28, 2008 o cara plx velho to cum problema aqi tpw assim eh o bug da house meu ot eh map global dai tpw assim um cara ai la invita alguem na casa essa pessoa entra na casa e logo dps sai do char dai o cara q inv to tiro o nome dele dai quando ele entra caio o ot Share this post Link to post Share on other sites