Fagunz 1 Postado Janeiro 2, 2007 Share Postado Janeiro 2, 2007 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: Código: function onUse(cid, item, frompos, item2, topos) Depois com os famosos "Ifs" função "Se" Código: 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ão 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 : Código: * 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 Código: 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 : Código: doSendMagicEffect(topos,14) Pronto quando o Demon for sumonado agora haverá um efeito magico. agora adicione isto no final Código: else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end Sua action terminada deve estar assim : Código: function onUse(cid, item, frompos, item2, topos) Â*Â*if item.uid == 3002 then doSummonCreature("Demon",topos) doSendMagicEffect(topos,14) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end 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 : Código: 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) Faz 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 magico ^^ doSummonCreature("Dragon",topos) Ali sumona um demon na posição do item usado ! Ele pode ser usado pra sumonar em determinada coordenada exemplo : doSummonCreature("Dragon", {x=138, y=281, z=8}) Bom acho que falei o suficiente por hoje Use sua criatividade em uma suas actions ! Continuando ... Especial Alavancas de Mil maneiras 1 - Removendo pedras - Vejam o Ex(By Peonso) : Código: 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 then doRemoveItem(getgate.uid,1) doTransformItem(item.uid,item.itemid+1) elseif item.uid == 3002 and item.itemid == 2712 and getgate.itemid == 0 then doCreateItem(1822,1,gatepos) doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end 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 Código: 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 - Alavancas Sumonando Monstros e colocando Hole No Lugar de uma quest Vamos ver mais uma vez o exemplo do peonso : Código: 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 then doRemoveItem(getgate.uid,1) doTransformItem(item.uid,item.itemid+1) elseif item.uid == 3002 and item.itemid == 2712 and getgate.itemid == 0 then doCreateItem(1822,1,gatepos) doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end Vamos Pensar o que podemos fazer ... Que tal se nós adicionarmos após o doRemoveItem isso : Código: 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 [409 é o id da hole] Viram como é facil? É só usar a criatividade ! Bom agora acho que vocêss entenderam como usar as alavancas ... Vamos Falar de Runas e MFs Este exemplo do Joao será nossa Base: Código: -- 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 then doSendMagicEffect(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 end if item2.itemid == 1 and ml <= 1 then doSendMagicEffect(frompos,2) doPlayerSendCancel(cid,"You dont Have Magic Level to use this rune.") end if item2.itemid >= 2 then doPlayerSendCancel(cid,"You can only use this rune in you or in players.") doSendMagicEffect(frompos,2) end return 1 end Ai logo você ve que não é tão dificil assim ... Se vocês testarem essa versã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 Código: 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: Código: 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 : Código: 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. Código: 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 Mud Código: if item.type > 1 then doChangeTypeItem(item.uid,item.type-1) else doRemoveItem(item.uid,1) end end Isso remove 1 carga if item2.itemid == 1 and ml <= 1 then doSendMagicEffect(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) Código: end if item2.itemid >= 2 then doPlayerSendCancel(cid,"You can only use this rune in you or in players.") doSendMagicEffect(frompos,2) end return 1 end 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 : Código: 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.") end end return 1 end Ou senão o item : Código: doPlayerAddItem(cid,2400,1) É muito facil, apenas adicionar as funções - Agora vou falar sobre quests Bom se você usa YourOts é muito facil Código: -- Tutorial quest 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 do Peonso Código: function onUse(cid, item, frompos, item2, topos) if item.uid == (UID) then queststatus = getPlayerStorageValue(cid,[uID]) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"You have found an Tutorial Rox.") doSendMagicEffect(topos,12) coins_uid = doPlayerAddItem(cid,[iD Do Item],{Quantidade}) setPlayerStorageValue(cid,[uID],1) else doPlayerSendTextMessage(cid,22,"This chest is empty.") end elseif item.uid == [uID] then queststatus = getPlayerStorageValue(cid,[uID]) if queststatus == -1 or queststatus == 0 then doPlayerSendTextMessage(cid,22,"You have found a Tutorial.") doSendMagicEffect(topos,12) coins_uid = doPlayerAddItem(cid,[iD do Item],{quantidade}) setPlayerStorageValue(cid,[uID],1) else doPlayerSendTextMessage(cid,22,"This chest is empty.") end else return 0 end return 1 end É só substituir colocando os IDs sem os [] {} () Editando LvLDoors by Peonso Bom antes de mais nada temos que adicionar isso no actions.xml Código: <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: Código: <action itemid="ID Da Porta" script="lvldoor.lua"/> Bom com sua porta add vamos ao script do peonso Código: -- By Peonso, based on Junk Food script function onUse(cid, item, frompos, item2, topos) doorpos = {x=frompos.x, y=frompos.y, z=frompos.z} playerpos = getPlayerPosition(cid) playerlevel = getPlayerLevel(cid) --shadowtemple if item.itemid == 1629 and doorpos.x == 265 and doorpos.y == 118 and doorpos.z == 8 then if playerlevel > 29 then doTeleportThing(cid,doorpos) elseif playerlevel < 30 then doPlayerSendTextMessage(cid,22,"You need to be level 30 or higher.") end --DOMS elseif item.itemid == 1627 and doorpos.x == 133 and doorpos.y == 250 and doorpos.z == 8 then if playerlevel > 39 then doTeleportThing(cid,doorpos) elseif playerlevel < 40 then doPlayerSendTextMessage(cid,22,"You need to be level 40 or higher.") end end return 1 end 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 ( Creditos de Thotth ) Código: function onUse(cid, item, frompos, item2, topos) tilepos = {x=topos.x, y=topos.y, z=topos.z} if item2.itemid == 0 then return 0 end if item2.itemid == 782 and tilepos.x == 56 and tilepos.y == 49 and tilepos.z == 8 then player1pos = {x=56, y=50, z=8, stackpos=253} player1 = getThingfromPos(player1pos) if player1.itemid > 0 then nplayer1pos = {x=56, y=49, z=9} doSendMagicEffect(player1pos,2) doTeleportThing(player1.uid,nplayer1pos) doSendMagicEffect(nplayer1pos,10) else doSendMagicEffect(frompos,2) doPlayerSendCancel(cid,"You are not in the right place!") end end return 1 end Explicando o código By Thotth: 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", ai que entra a code do actions.xml. Código: <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 Código: Glossário Item2 - Serve para itens tipo que você da use e tem que clicar em outro esse outro é o item2 Math Random - Define tudo aquilo que é aletorio ou não é pré definido. If - Função 'Se' é usada em 90% das actions Do - As Funções 'Do' representam sempre o fazer , Ex Sumonar , Transformar And - É o famoso "E" usamos ele quando colocamos algo a + Or - Função Ou , serve para as actions não ficarem muito extensas UID - UniqueIds , elas só podem ser usadas em 1 item no jogo elas são unicas Elseif - E se , Mas se , Determina um especie de condição se algo acontecer ela ativará a ação. End - Finaliza as ações Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/ Compartilhar em outros sites More sharing options...
teres 0 Postado Janeiro 2, 2007 Share Postado Janeiro 2, 2007 Mt bom mesmo !!!!! De 0 a 10 eu dou nota 9 ta tudo bem explicado mas nao é facil descifrar tudo ai vlwww Teres Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-210165 Compartilhar em outros sites More sharing options...
buster287 1 Postado Janeiro 2, 2007 Share Postado Janeiro 2, 2007 Ele ta muito bom e explicado. Só falta colocar uma decoração sei la pra ficar melhor a visualização. Depois disso vai fica bem melhor. :hi: Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-210168 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/37442-tutorial-de-action/#findComment-312692 Compartilhar em outros sites More sharing options...
GM Volcano 1 Postado Junho 7, 2007 Share Postado Junho 7, 2007 ^^ Ótimo tuto..Porem vc poderia adicionar Quotes...E assim ficaria bem melhor... + Tah RoX xP Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-312958 Compartilhar em outros sites More sharing options...
Sky Knight 0 Postado Junho 7, 2007 Share Postado Junho 7, 2007 Mano Até Hoje Num vi nem um tutorial de como coloca tapestry (CORTINA) Na Parede nem um ot dá mano nem o Zorzin lol Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-313111 Compartilhar em outros sites More sharing options...
thayam 0 Postado Junho 8, 2007 Share Postado Junho 8, 2007 Mtu bom Velhow Teh mais Continue assim Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-313980 Compartilhar em outros sites More sharing options...
franline 0 Postado Junho 9, 2007 Share Postado Junho 9, 2007 Perfeito mano! Bem explicado,tudo certinho adorei! vou tentar fazer umas agora Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-314175 Compartilhar em outros sites More sharing options...
Omega 377 Postado Junho 18, 2007 Share Postado Junho 18, 2007 ótimo tutorial, cara. Muito bom mesmo. Só não tive coragem de tentar ainda... E como os outros disseram, pra ficar perfeito, poderia ter adicionado codes, ou letras de outras cores pra não embolar. Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-319985 Compartilhar em outros sites More sharing options...
Shadow Knight 0 Postado Junho 20, 2007 Share Postado Junho 20, 2007 Gostei, e muito util para pessoas como eu q n entendem muito d actions, Aprovado. Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-321412 Compartilhar em outros sites More sharing options...
picachu 3 Postado Junho 20, 2007 Share Postado Junho 20, 2007 Bom mesmo!!! Quase ninguem sabe criar actions!!!! Esse tutorial tá valendo.. Atenciosamente, Picachu... []s Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-321417 Compartilhar em outros sites More sharing options...
vourath 0 Postado Junho 22, 2007 Share Postado Junho 22, 2007 Mto bom, eh verdade existem poucos acction maker Com esse tutorial quem tiver interesse, recomendarei >RECOMENDADO< Cya Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-322504 Compartilhar em outros sites More sharing options...
rubim 0 Postado Junho 22, 2007 Share Postado Junho 22, 2007 Po kra ate q kuase n da pre entender tenta fazr com 'Quotes' pra entender melhor =D Vlw manow --------------------------------------------- Ta meuh Doidão é? faz isso ai! ---------------------------------------------- Meu Fan? Usa Aiiiii! ---------------------------------------------- Me Procurando Em Ots?---My Char, Fan Tolbar--- ---------------------------------------------- Eu Sou: Scripter ---------------------------------------------- CyA! Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-322998 Compartilhar em outros sites More sharing options...
Voxnot 1 Postado Junho 26, 2007 Share Postado Junho 26, 2007 Bem legal seu tutorial, pode ajuda muita gente. ---------------------------------------------------------- VoxTeam Estamos Recrutando Membros Mais Informações: Clique aqui Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-326441 Compartilhar em outros sites More sharing options...
sath 0 Postado Julho 4, 2007 Share Postado Julho 4, 2007 Que isso cara! Não entendi nada... =D Não sei mexer com essa área de actions, nunca entendo nada. Mas pelo que diz o povão ai, seu tutorial deve tar muito perfeito. Continue assim então e traga mais novidades ao XTibia Forum. Estaremos esperando! =D Um abraço. Link para o comentário https://xtibia.com/forum/topic/37442-tutorial-de-action/#findComment-331629 Compartilhar em outros sites More sharing options...
Posts Recomendados