Dark-X 10 Postado Junho 15, 2006 Share Postado Junho 15, 2006 Tutorial de Actions Em primero lugar vamos criar um Script Passo a Passo para acustumar. Crie um arquivo.lua na sua pasta de scripts chamado mineaction e siga os passos abaixo - > Bom , Aconselho sempre começar sua action com: CODE function onUse(cid, item, frompos, item2, topos) Depois com os famosos "Ifs" função "Se" CODE if item.uid == 3000 then Aqui no caso acontecerá alguma coisa se o item que tem a UniqueId 3000 for usado ! (UniqueIds são IDs unicas , que só se pode ter 1 no mapa e podem ser facilmente colocadas com qualquer map editor [botão Direito , Properties , e teremos actionID e UniqueID]) Bom apos o if item.uid == 3000 then Temos que colocar as funções desejadas. No caso temos as funções : CODE * doChangeTypeItem * doCreateItem * doDecayItem * doPlayerAddHealth * doPlayerAddItem * doPlayerAddMana * doPlayerAddSkillTry * doPlayerFeed * doPlayerRemoveItem * doPlayerRemoveMoney * doPlayerSay * doPlayerSendCancel * doPlayerSendTextMessage * doPlayerSetMasterPos * doPlayerSetVocation * doRemoveItem * doSendMagicEffect * doSetItemActionId * doSetItemSpecialDescription * doSetItemText * doShowTextWindow * doSendAnimatedText * doSummonCreature * doTeleportThing * doTransformItem * getItemRWInfo * getPlayerAccess * getPlayerFood * getPlayerGuildId * getPlayerHealth * getPlayerLevel * getPlayerMagLevel * getPlayerMana * getPlayerMasterPos * getPlayerName * getPlayerPosition * getPlayerSkill * getPlayerStorageValue * getPlayerVocation * getThingfromPos * getTilePzInfo * setPlayerStorageValue Não falaremos de Todas mas é bom conhece-las .. Então pule uma linha para colocarmos as funções . [No Primeiro exemplo aqui colocarei uma action de Sumonar um determinado Montro.] Bom adicione CODE doSummonCreature("Demon",topos) Isso fará que quando eu usar o Item que tem a UID 3000 seja sumonado um monstro na frente do player Adicione uma linha abaixo de doSummon o efeito magico : CODE doSendMagicEffect(topos,14) Pronto quando o Demon for sumonado agora haverá um efeito magico. agora adicione isto no final CODE elsedoPlayerSendCancel(cid,"Sorry, not possible.")endreturn 1end Sua action terminada deve estar assim : CODE function onUse(cid, item, frompos, item2, topos)if item.uid == 3002 thendoSummonCreature("Demon",topos)doSendMagicEffect(topos,14)elsedoPlayerSendCancel(cid,"Sorry, not possible.")endreturn 1end No caso Else significa Mais e Else IF que tambem é muito usado ( não agora ) mais se end é o chamado fim que é usado no fim dos scripts sempre que finaliza alguma coisa. Agora vamos abrir o map editor criar uma statua e adicionar a UniqueID 3000 e abrir tambem a action.xml e adicionar : <action uniqueid="3000" script="mineaction.lua" /> Se tudo deu certo é porque você esta seguindo nosso tuto normalmente! Agora encinarei um pouco outros comandos para então voltar a pratica ! Os mais famosos e usados são : CODE doPlayerAddMana(cid,100) Neste caso adiciona 100 de mana ao player que usar o item que esta destacado na action !doPlayerAddHealth(cid,100) Mesmo que o acima mas neste caso adiciona life !doPlayerFeed(cid,120) Adiciona Digamos.. food ao player neste caso o player subirá life e mana por 120 seconds.doPlayerSay(cid,"Hicks",2) Força o player a dizer uma mensagem usado em cachaça e em mana fluid.doPlayerAddItem(cid,2400,1) É usado em quests no caso adiciona um item do id 2400 que eh uma Magic Sword.doPlayerRemoveMoney(cid,100) Tira dinheiro do player , no caso ali 100 gps.doPlayerSendTextMessage(cid,2,"Tutorial") Aparece uma mensagem no screnn(tela) do player, no caso ali Tutorial.doSendMagicEffect(topos,2) Ele é u famoso efeito magicodoSummonCreature("Dragon",topos) Ali sumona um dragon na posição do item usado ! Ele pode ser usado pra sumonar em determinada coordenada exemplo :doSummonCreature("Dragon", {x=138, y=281, z=8}) Esspecial Alavancas de Mil maneiras 1 - Removendo pedras - Vejam o Ex: CODE function onUse(cid, item, frompos, item2, topos)gatepos = {x=181, y=135, z=11, stackpos=1}getgate = getThingfromPos(gatepos)if item.uid == 3002 and item.itemid == 2711 and getgate.itemid == 1822 thendoRemoveItem(getgate.uid,1)doTransformItem(item.uid,item.itemid+1)elseif item.uid == 3002 and item.itemid == 2712 and getgate.itemid == 0 thendoCreateItem(1822,1,gatepos)doTransformItem(item.uid,item.itemid-1)elsedoPlayerSendCancel(cid,"Sorry, not possible.")endreturn 1end Neste caso vamos esclarecer tudo 3002 o UID da alavanca (não precisa ser necessariamente alavanca mas este exemplo é alavanca) GatePos , é a posição da pedra , parede , estatua ou outra coisa que esteja bloqueando o caminho 1822 é o ID da pedra , parede ... 2711 o ID da alavanca Bom ?!? Sim Otimo Mas podemos editar este exemplo para fazer varias coisas ex: Acordar monstros que estavam transformados em Pedra ... Muita gente deve estar pensando" hã?!? oq isso tem haver?" Olhem só se adicionarmos CODE doSummonCreature("Gargoyle", {x=181, y=135, z=11})doSendMagicEffect(topos,14) Abaixo do doremoveitem teremos isso basta apenas trocar o ID da pedra para 2015 que é o id da estatua Viram é só usar a criatividade de vocês wink.gif - Alavancas Sumonando Monstros e colocando Hole No Lugar de uma quest Vamos ver mais uma vez o exemplo CODE function onUse(cid, item, frompos, item2, topos)gatepos = {x=181, y=135, z=11, stackpos=1}getgate = getThingfromPos(gatepos)if item.uid == 3002 and item.itemid == 2711 and getgate.itemid == 1822 thendoRemoveItem(getgate.uid,1)doTransformItem(item.uid,item.itemid+1)elseif item.uid == 3002 and item.itemid == 2712 and getgate.itemid == 0 thendoCreateItem(1822,1,gatepos)doTransformItem(item.uid,item.itemid-1)elsedoPlayerSendCancel(cid,"Sorry, not possible.")endreturn 1end Vamos Pensar o que podemos fazer ... Que tal se nós adicionarmos após o doRemoveItem isso : CODE doSummonCreature("Dragon", {x=190, y=135, z=11})doSummonCreature("Dragon", {x=187, y=139, z=11})doSummonCreature("Dragon", {x=184, y=133, z=11})doCreateItem(409,1,gatepos) Neste caso , vai sumonar 3 Dragons e aparecer um Hole é com para ser usado em Quests wink.gif [409 é o id da hole] Viram como é facil? É só usar a criatividade ! Bom agora acho que vocês entenderam como usar as alavancas ... Vamos Falar de Runas e MFs Este exemplo do Joao será nossa Base: CODE -- New MF rune by Joao Paulo 3.0 version --function onUse(cid, item, frompos, item2, topos)playerpos = {x=topos.x, y=topos.y, z=topos.z, stackpos=253} player = getThingfromPos(playerpos)ml = getPlayerMagLevel(cid)lvl = getPlayerLevel(cid)formula = math.random(((lvl+ml)*2)-(lvl-ml))if item2.itemid == 1 and ml >= 2 thendoSendMagicEffect(playerpos,1)doPlayerAddMana(player.uid,formula)doPlayerSay(player.uid,"Ahhhhhh",2)if item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end endif item2.itemid == 1 and ml <= 1 thendoSendMagicEffect(frompos,2)doPlayerSendCancel(cid,"You dont Have Magic Level to use this rune.")endif item2.itemid >= 2 thendoPlayerSendCancel(cid,"You can only use this rune in you or in players.")doSendMagicEffect(frompos,2)endreturn 1end Ai logo você ve que não é tão dificil assim ... Se vocês testarem essa versão verão que upa MTTTTT mana de Mages Oque podemos fazer bom eu não gosto de formulas retire a formula e o getplayerlvl E coloque CODE doPlayerAddMana(cid,100) no lugar do antigo doPlayerAddMana Com isso você pode reparar que toda hora vai upar 100 de mana.. Agora vamos fazer uma runa baseada na do Joao passo a passo : Essa primera runa será pelas actions depois vou encinar uma pela pasta spells. Bom vamos começar igual o exemplo dele: CODE function onUse(cid, item, frompos, item2, topos)playerpos = {x=topos.x, y=topos.y, z=topos.z, stackpos=253} player = getThingfromPos(playerpos) Isso mostra as funções a serem usadas e a posição do Player Vamos pular uma linha e colocar : CODE ml = getPlayerMagLevel(cid)if item2.itemid == 1 and ml >= 2 then Bom isso pega o ML da pessoa para saber se ela tem o Magic necessario para usar. CODE doPlayerAddHealth(player.uid,100)doSendMagicEffect(playerpos,1)doPlayerAddMana(player.uid,100)doPlayerSay(player.uid,"This Potion Are Mud",2)Bom com isso adicionará 100 de life e 100 de mana ao player e força ele a dizer This Potion Are MudCODEif item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end end Isso remove 1 carga CODE if item2.itemid == 1 and ml <= 1 thendoSendMagicEffect(frompos,2)doPlayerSendCancel(cid,"You dont Have Magic Level to use this rune.") Isso mostra qual ML necessario para usar a LMF (Life mana fluid) CODE endif item2.itemid >= 2 thendoPlayerSendCancel(cid,"You can only use this rune in you or in players.")doSendMagicEffect(frompos,2)endreturn 1end Finalizando oque acontece quando erra o player e o end. Viram ? Se quiserem fazer runas de adicionar equipes ou senão de teleport como nesse exemplo : CODE function onUse(cid, item, frompos, item2, topos)if item2.itemid == 0 then doPlayerSendCancel(cid,"Sorry, not possible.")else if getPlayerAccess(cid) == 3 then playerpos = getPlayerPosition(cid) doTeleportThing(cid,topos) doSendMagicEffect(playerpos,2) doSendMagicEffect(topos,10) else doPlayerSendCancel(cid,"You are not allowed to use this rune.") endendreturn 1end Ou senão o item : CODE doPlayerAddItem(cid,2400,1) É muito facil é apenas adicionar as funções cool.gif Agora vou falar sobre quests laugh.gif CODE if item.uid == (uniqueid que você quer) then queststatus = getPlayerStorageValue(cid,[aconselho colocar a uniqueid]) if queststatus == -1 then if getPlayerLevel(cid) >= (level necessario) then doPlayerSendTextMessage(cid,22,"You have found Tutorial Rox Item.") doPlayerAddItem(cid,(Id Do Item),[Quantidade]) setPlayerStorageValue(cid,(uid),1) else doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.") end else doPlayerSendTextMessage(cid,22,"It is empty.") end Adicione isso na chest.lua Bom agora edite conforma esta acima só que sem os {} [] () Se você não usa YourOts - Baixe YourOts (Brincadera a parte) Ignore o passo acima Vamos ver um exemplo CODE function onUse(cid, item, frompos, item2, topos)if item.uid == (UID) thenqueststatus = getPlayerStorageValue(cid,[uID])if queststatus == -1 or queststatus == 0 thendoPlayerSendTextMessage(cid,22,"You have found an Tutorial Rox.")doSendMagicEffect(topos,12)coins_uid = doPlayerAddItem(cid,[iD Do Item],{Quantidade})setPlayerStorageValue(cid,[uID],1)elsedoPlayerSendTextMessage(cid,22,"This chest is empty.")endelseif item.uid == [uID] thenqueststatus = getPlayerStorageValue(cid,[uID])if queststatus == -1 or queststatus == 0 thendoPlayerSendTextMessage(cid,22,"You have found a Tutorial.")doSendMagicEffect(topos,12)coins_uid = doPlayerAddItem(cid,[iD do Item],{quantidade})setPlayerStorageValue(cid,[uID],1)elsedoPlayerSendTextMessage(cid,22,"This chest is empty.")endelsereturn 0endreturn 1end É só substituir colocando os IDs sem os [] {} () Editando LvLDoors Bom antes de mais nada temos que adicionar isso no actions.xml CODE <action itemid="1627" script="lvldoor.lua"/><action itemid="1629" script="lvldoor.lua"/><action itemid="1645" script="lvldoor.lua"/><action itemid="1647" script="lvldoor.lua"/><action itemid="1659" script="lvldoor.lua"/><action itemid="1661" script="lvldoor.lua"/><action itemid="1668" script="lvldoor.lua"/><action itemid="1677" script="lvldoor.lua"/> Essas são as portas mais usadas , quem usa outras pode adicionar facilmente assim: CODE <action itemid="ID Da Porta" script="lvldoor.lua"/> Bom com sua porta add vamos ao script CODE function onUse(cid, item, frompos, item2, topos)doorpos = {x=frompos.x, y=frompos.y, z=frompos.z}playerpos = getPlayerPosition(cid)playerlevel = getPlayerLevel(cid)--shadowtempleif item.itemid == 1629 and doorpos.x == 265 and doorpos.y == 118 and doorpos.z == 8 thenif playerlevel > 29 thendoTeleportThing(cid,doorpos)elseif playerlevel < 30 thendoPlayerSendTextMessage(cid,22,"You need to be level 30 or higher.")end--DOMSelseif item.itemid == 1627 and doorpos.x == 133 and doorpos.y == 250 and doorpos.z == 8 thenif playerlevel > 39 thendoTeleportThing(cid,doorpos)elseif playerlevel < 40 thendoPlayerSendTextMessage(cid,22,"You need to be level 40 or higher.")endendreturn 1end Explicando : Ali temos 2 portas os ids são 1627 e 1629 a seguir dos IDS temos as coodernadas o lvl 39 then + que 39 ou seja apenas 40 pra cima doTeleportthing(cid,doorpos) isso é a posição da door ou seja vai teleporta o player para dentro da porta Facil não? Edite sua porta você mesmo e mude o ID e as coordenadas - Picks System CODE function onUse(cid, item, frompos, item2, topos)tilepos = {x=topos.x, y=topos.y, z=topos.z}if item2.itemid == 0 thenreturn 0endif item2.itemid == 782 and tilepos.x == 56 and tilepos.y == 49 and tilepos.z == 8 thenplayer1pos = {x=56, y=50, z=8, stackpos=253}player1 = getThingfromPos(player1pos)if player1.itemid > 0 thennplayer1pos = {x=56, y=49, z=9}doSendMagicEffect(player1pos,2)doTeleportThing(player1.uid,nplayer1pos)doSendMagicEffect(nplayer1pos,10)elsedoSendMagicEffect(frompos,2)doPlayerSendCancel(cid,"You are not in the right place!")endendreturn 1end Explicando o código: Agora la em and tilepos.x == 56 and tilepos.y == 49 and tilepos.z == 8 Ai eh as cordenadas do xaozinhu q vc irá usar a pick para ser teleportado. Tamo quase la! Em if item2.itemid == 782 Este 782 eh o id da tile (o xaumzinhu) q vc colocou na coordenada q a pick devera ser usada. Para dar um toke a+ eu puiz la em doPlayerSendCancel(cid,"You are not in the right place!") esta mensagem se a mula do cara usa a pick e naum estiver no lugar certo q vc colocou. OBS: tilepos = {x=topos.x, y=topos.y, z=topos.z} n mexe ai pq se naum vai dar erro! Agora entendendo e execuntando by Skoll Isso é o pick system tem gente que não sabe nem oq é pick eh aquele intrumento que usamos para fazer buracos no chão , nesta aula que você teve retirada de um tuto do thotth com autorização dele é claro ele encinou como executar essa magnifica action , é a primeira vez que trabalhamos com o item2 em nossas aulas , o item2 é aquele segundo item do use with ( ex - eu dou use em uma rope e depois na tile de subir no caso a tile de subir é o item2) ele é utilizado em boa parte das actions ai você pergunta em não vi um "item1" lá ai que entra a code do actions.xml. CODE <action itemid="3394" script="pick.lua" /> Em actions gerais (eu gosto de chamar assim) você deve sempre colocar o id do item que da o use na actions.xml CODE Em actions gerais (eu gosto de chamar assim) você deve sempre colocar o id do item que da o use na actions.xml E por utimo como colokar o temple do player clikando tipo dando use na estatua e nasce senpre la ex CODE newpos = {x=20, y=20, z=7}doPlayerSetMasterPos(cid,newpos) e so add isso num lugar kalker de um script c vc leu tudo vai saber como e que faiz flw Tutorial:By Skoll Adaptado por:Dark-X Obrigado Dark-X Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/ Compartilhar em outros sites More sharing options...
Dak~ 0 Postado Junho 19, 2006 Share Postado Junho 19, 2006 muito bom adimiro seu trabalho ^^ Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-95346 Compartilhar em outros sites More sharing options...
joia 2 Postado Junho 25, 2006 Share Postado Junho 25, 2006 c tem msn?me add ae bad_fury@hotmail.com Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-99540 Compartilhar em outros sites More sharing options...
joia 2 Postado Junho 26, 2006 Share Postado Junho 26, 2006 tpw.. pra vc me ensna a faze alavanca q leva o cara de 1 lugar pro otro tipo akela da anihi... add ae e me ensina plz... flws Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-100343 Compartilhar em outros sites More sharing options...
Addict 12 Postado Junho 30, 2006 Share Postado Junho 30, 2006 @joia Alertado por flood, voce é um usuario tão antigo, não deveria cometer esses erros. Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-103351 Compartilhar em outros sites More sharing options...
Zynex 0 Postado Dezembro 9, 2006 Share Postado Dezembro 9, 2006 Legal! Muito bom! Mas eu queria algo do tipo, um chest (quest), com uma UniqueID, onde quem desse use no chest, ganha-se um addon. Tem como?! Espero uma resposta! Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-191903 Compartilhar em outros sites More sharing options...
Devmoxawx 0 Postado Dezembro 9, 2006 Share Postado Dezembro 9, 2006 Parabéns,Gostei Muito! Vai ajudar muita gente! Atencisoamente. //DevmoX Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-191904 Compartilhar em outros sites More sharing options...
gabrieluiz 0 Postado Dezembro 14, 2006 Share Postado Dezembro 14, 2006 Oi eu tenho uma dúvida, nos arquivos que contém os acc eu não sei identificar o password e o acc você(s) poderia(m) me ajudar aparece mais ou menos assim: <?xml version="1.0" ?> - <account pass="blabla" type="1" premDays="90"> - <characters> <character name="Goma" /> </characters> </account> qual é o account e qual é o password? Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-195879 Compartilhar em outros sites More sharing options...
afk 2 Postado Dezembro 15, 2006 Share Postado Dezembro 15, 2006 Sinceramente... n entendi plx da uma ajudinha aew por msn Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-196251 Compartilhar em outros sites More sharing options...
Jvchequer 63 Postado Junho 6, 2007 Share Postado Junho 6, 2007 Olá Xtibiano, Parabéns, seu tutorial foi aprovado. Estarei movendo ele para a área de tutoriais. Obrigado por trazer conteúdo para o Xtibia.com e espero que continue com o ótimo trabalho. Atenciosamente, JV Chequer *Diretor Xtibia.com* Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-312366 Compartilhar em outros sites More sharing options...
FLuzX 0 Postado Julho 19, 2007 Share Postado Julho 19, 2007 MEREÇE FIXO! MTu BOM PENA QUE ROBARAM SUA IDEIA E SO DERAM CTRL + C E CTRL + V Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-344007 Compartilhar em outros sites More sharing options...
Dark Maluk 0 Postado Julho 22, 2007 Share Postado Julho 22, 2007 ;o boum trabalhooo =] Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-345610 Compartilhar em outros sites More sharing options...
zheusshi125 0 Postado Julho 23, 2007 Share Postado Julho 23, 2007 Muito bom, esse eu não conhecia =p ps. puts post grande //Alone Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-346163 Compartilhar em outros sites More sharing options...
Voxnot 1 Postado Julho 24, 2007 Share Postado Julho 24, 2007 Gostei pra caramba. so tenho uma duvida sera que da pra fazer uma coisa nesse estilo: quando o player clica na estatua sumona alguns bichos e aparece uma mensgem não so pra ele mais pra todos os palyers online no estilo de invasões? to esperando a resposta ^^ Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-347109 Compartilhar em outros sites More sharing options...
Holly Angel 2 Postado Julho 24, 2007 Share Postado Julho 24, 2007 muito bom... cara curti a loot... 10! Link para o comentário https://xtibia.com/forum/topic/18744-tutorial-de-actions-completissimo/#findComment-347218 Compartilhar em outros sites More sharing options...
Posts Recomendados