Brabo 0 Postado Maio 22, 2006 Share Postado Maio 22, 2006 espero que ajude Tutorial de ActionsO que é "actions"?Actions é o nome da pasta onde podemos controlar certas opções do server sem precisar compilar, utilizando arquivos .xml e .lua.Pra que que serve aquela pasta "scripts"?É onde os comandos em si estão. A pasta é como a de spells, é necessário um arquivo .xml que diga quando abrir que comandos. No caso, o arquivo que vai carregar os outros é o actions.xml, que pode ser configurado no config.lua. ali você diz que tipo de comando ele vai carregar quando se usar um item, Por exemplo:<action itemid="1429" script="signs.lua" />isso significa que quando alguem der USE em um item de id 1429, ele vai carregar o arquivo signs.lua.Acho que não tem muito o que explicar aqui.O que eu posso fazer mudando essa pasta?É dificil dizer. Muitos servers tem comandos desconhecidos, como por exemplo o "doPlayerFeed" que "alimenta" o player.Mas como esses arquivos funcionam?Eles são muito parecidos com qualquer outro lua de spells ou de npcs. Você usa uma sequência de comandos dizendo o que fazer em certas situações. Exemplo: quebrar aquele porquinho quando se dá "use" nele, ou fazer aquela animação de música em certos objetos. Um exemplo de arquivo: --Example Food--MAX_FOOD = 300function onUse(cid, item, frompos, item2, topos) -- Get food value depending on item.itemid food = 60 if (getPlayerFood(cid) + food > MAX_FOOD) then doPlayerSendCancel(cid,"You are full.") return 1 end doPlayerFeed(cid,food) doRemoveItem(item.uid,1) return 1end com esse comando na sua pasta e algumas outras configuraçõeszinhas o player irá recuperar vida quando comer. Mas lembre-se que o server precisa ter suporte para isso. Aqui estão os principais comandos que você pode usar: if (qualquercoisa) == (qualquercoisa) thenend esse comando é o famoso "se". no caso, se Qualquercoisa for igual a qualquercoisa intão ele executará os comandos que estiverem na linha abaixo. ao final dos comandos bote sempre END doPlayerSendCancel(cid,"You are full.") esse comando enviará uma mensagem de cancelamento (aquela branquinha em cima do default que aparece, como o "Not There" ou "impossible"). no caso "cid" é o nome do player que receberá a mensagem e "You are full" é a mensagem. doRemoveItem(1237,1) remove o item 1 unidade do item 1237. doTransformItem(1211,1210) esse comando transforma o item 1211 pelo item 1210. doPlayerSendTextMessage(cid,26,"You read the sign. It says: Cemitery") no caso é um comando de sign. cid é o nome do player que irá receber a mensagem, 26 acho que é a cor e "You read the sign. It says: Cemitery" é a frase que irá aparecer no meio da tela. No caso vai aparecer em verde. doPlayerAddItem(cid,2677,5) adiciona o 5 unidades do item 2677 ao jogador cid. doTeleportThing(cid,npos) teleporta o player cid ah posição npos. precisa de uns comandos a mais que eu não sei explicar muito bem. Mas lembre-se: sempre que criar um novo arquivo .lua nessa pasta, adicione o id do item que vai acioná-lo no actions.xml. eexemplo geral: com esse arquivo, toda vez que algum player usar um crowbar em uma porta com fechadura, ela se transformará em uma porta normal, que qualquer um pode abrir, e o crowbar desaparecerá! Então vamos começar: 1º: Crie um arquivo com extensção "lua" com o nome de "crowbar" (sem as aspas) 2º: Dentro dele escreva --Crowbar by BoppreH--function onUse(cid, item, frompos, item2, topos) if item2.itemid == 0 then return 0 end if item2.itemid == 1219 then doTransformItem(item2.uid,1210) doRemoveItem(2416,1) elseif item2.itemid == 1221 then doTransformItem(item2.uid,1213) doRemoveItem(2416,1) else return 0 end return 1end 3º: Agora abra o arquivo actions.xml e dentro dele adicione esta linha mais ou menos na metade: <action itemid="2416" script="crowbar.lua" /> 4º: PRONTO!!! Novo comando feito! bem, acho que é isso. se alguem souber explicar mais alguns comandos ou quiser que eu corrija algo, poste aqui que eu edito esse topico. e se eu ver que vocês estão bem comportados eu posto os actions que eu fiz (Ultra Fishing System, Wheat System, Crowbar (jah postei), e o sistema para "limpar" peixe) e lembre-se: são esses detalhesinhos que deixam o server mais legal =) depois dos elogios me empenhei e adicionei alguns novos comandos. confiram: aqui está o comando para fazer alavanca tipow a aniquileitor. vc dah use nela, ela troca de lado e te teleporta.1º: Crie um arquivo chamado alavancaa.lua (2 "a"s no final mesmo)2º: dentro do arquivo escreva:--alavanca by Brabo--function onUse(cid, item, frompos, item2, topos) npos = {x=frompos.x, y=frompos.y, z=frompos.z} alpos = {x=frompos.x, y=frompos.y, z=frompos.z} if alpos.x== (posição da alavanca x) and alpos.y== (posição da alavanca y) and alpos.z== (posição da alavanca z) then doTransformItem(item2.uid,1946) npos.y = (destino y) npos.z = (destino z) npos.x = (destino x) doTeleportThing(cid,npos) else return 0 end return 1end3º:crie um arquivo chamado alavancab.lua4º: dentro do arquivo escreva:--alavanca by Brabo--function onUse(cid, item, frompos, item2, topos) npos = {x=frompos.x, y=frompos.y, z=frompos.z} alpos = {x=frompos.x, y=frompos.y, z=frompos.z} if alpos.x== (posição da alavanca x) and alpos.y== (posição da alavanca y) and alpos.z== (posição da alavanca z) then doTransformItem(item2.uid,1945) npos.y = (destino y) npos.z = (destino z) npos.x = (destino x) doTeleportThing(cid,npos) else return 0 end return 1end5º: no actions.xml adicione estas 2 linhas: <action itemid="2945" script="alavancaa.lua" /><action itemid="2946" script="alavancab.lua" />OBS: naum esqueça de preencher os campos ali dos .lua, como (posição da alavanca x) e (destino x), sendo que posição da alavanca é a coordenada que ela tah e destino eh pra onde o player vai ser teleportado.espero que ajuda doSummonCreature("Demon", {x=243, y=205, z=7}) esse codigo e bem simples. sumona um monstro (no caso o Demon) na posição 243/205/7. simples não? estou trabalhando em um sistema para desenterrar items e monstros, o mesmo que tem em ank no tibia original. + 2 novos codes!!! getPlayerAccess(cid) analisa o acesso do player. lembrando que acesso é o que diferencia um noobzinho de um God. setPlayerAccess(cid,1) define o acesso do player. se voce fizer uma action que no meio tenha setplayeraccess(cid,3) transformarah o jogador alvo em um GM. Todas as funções: //registra a food(uid)"getPlayerFood"//registra a vida(uid) "getPlayerHealth"//registra a Mana(uid)"getPlayerMana"//registra o Level(uid)"getPlayerLevel"//registra o MagLevel(uid)"getPlayerMagLevel"//registra o Name(uid) "getPlayerName"//registra o Access(uid) "getPlayerAccess"//registra a Posição do player(uid)"getPlayerPosition"//registra o Skill do player(uid,skillid)"getPlayerSkill"//registra o StorageValue , q é uma marca no player.xml para fazer questes ,(uid,valueid)"getPlayerStorageValue";//muda o StorageValue para ver se o player ja fes tal quest etc...(uid,valueid, newvalue)"setPlayerStorageValue"//registra o PZ de um tile(pos) 1 eh pz. 0 n eh pz."getTilePzInfo" //registra informação RW , leitura de itens(uid)"getItemRWInfo"//registra tal item de tal posição(pos)"getThingfromPos"//remove item(uid,n)"doRemoveItem"//alimenta o player(uid,food)"doPlayerFeed" //manda uma mensagem tipo sorry not possible(uid,text)"doPlayerSendCancel"//teleporta tal coisa ou player(uid,newpos)"doTeleportThing"//trasforma tal item , usado em portas(uid,toitemid) "doTransformItem"//força o player a dizer algo(uid,text,type)"doPlayerSay"//manda um efeito magico , usado em fishing etc(uid,position,type)"doSendMagicEffect"//muda o tipo do item , exemplo tira uma carga da runa(uid,new_type) "doChangeTypeItem"//seleciona um ActionID , usado em quests(uid,actionid)"doSetItemActionId"//Dis oq um livro ou outros têm escrito(uid,text)"doSetItemText"//muda o nome do item(uid,desc)"doSetItemSpecialDescription"//manda um texto animado(position,text,color)"doSendAnimatedText"//adiciona um skill trie(uid,skillid,n)"doPlayerAddSkillTry"//adiciona vida(uid,health)"doPlayerAddHealth"//adiciona Mana(uid,mana)"doPlayerAddMana"//adiciona item(uid,itemid,count ou type) ."doPlayerAddItem"//manda uma mensagem de texto(uid,MessageClasses,message)"doPlayerSendTextMessage" //mostra a janela para escrever(uid,maxlen,canWrite) "doShowTextWindow" //decay o item(uid)"doDecayItem"//cria um item(itemid,type or count,position) .só funfa em criar no chaum"doCreateItem"//sumona uma criatura(name, position)"doSummonCreature" Créditos: BoppreH Link para o comentário Compartilhar em outros sites More sharing options...
frerety 7 Postado Maio 22, 2006 Share Postado Maio 22, 2006 HiHo! hey... good job... ^^ axu q vc cometeu um engano: ...OBS: esse tipo de arquivo só funciona em servers de protocolo 7.4 pois somente eles possuem esta pasta. ... ^^... todas as versões depois do 7.4 também usam actions... ^^... Ah... i otra coisa: aki teim algumas coisas interessantes tbm: http://www.xtibia.com/forum/index.php?showtopic=15947 No mais tah bom sim... FlW CyA! Link para o comentário Compartilhar em outros sites More sharing options...
Brabo 0 Postado Maio 22, 2006 Autor Share Postado Maio 22, 2006 @frerety Opa obrigado por falar ali do meu erro. ^^ ja vou arrumar @todos Comentem plz! :\ Link para o comentário Compartilhar em outros sites More sharing options...
Darkedes 0 Postado Maio 22, 2006 Share Postado Maio 22, 2006 bom... eu vo posta um com outras funções depois,,, Link para o comentário Compartilhar em outros sites More sharing options...
High 0 Postado Maio 25, 2006 Share Postado Maio 25, 2006 Tuto bem bom para quem não sabe usar as funções (não o meu caso, mas não sou profissional ;P) acho que isso ajudará bastante gente Link para o comentário Compartilhar em outros sites More sharing options...
ladenn 0 Postado Maio 25, 2006 Share Postado Maio 25, 2006 Mucho rox, eu particulamente gostei. Link para o comentário Compartilhar em outros sites More sharing options...
Warlord 0 Postado Maio 31, 2006 Share Postado Maio 31, 2006 Pra fla verdade .... NAO INTEDI NADA Link para o comentário Compartilhar em outros sites More sharing options...
Warlord 0 Postado Maio 31, 2006 Share Postado Maio 31, 2006 mas tpw, dexa ketu, meo friend me help Link para o comentário Compartilhar em outros sites More sharing options...
Brabo 0 Postado Junho 1, 2006 Autor Share Postado Junho 1, 2006 @Warlord Da proxima vez edita seu post. Nao faz flood nao Link para o comentário Compartilhar em outros sites More sharing options...
Gellerzin 0 Postado Novembro 14, 2006 Share Postado Novembro 14, 2006 Bom, simples e organizado mais cara..o que eh actions pelo amor de deus neh..o que SAO actionSS se liga na hora de escrever os negocio pq tem uns erros que sao tpw OMG flw Link para o comentário Compartilhar em outros sites More sharing options...
jurotta 0 Postado Novembro 30, 2006 Share Postado Novembro 30, 2006 ótimo mas n consigo Link para o comentário Compartilhar em outros sites More sharing options...
Kenzo 0 Postado Novembro 30, 2006 Share Postado Novembro 30, 2006 Bem completo muito bom cara. Continua assim //Kenzo Link para o comentário Compartilhar em outros sites More sharing options...
shakadragoon 0 Postado Dezembro 5, 2006 Share Postado Dezembro 5, 2006 aewww... finalmente alguem me ajudo TYYYYYYYYYYYYYYYYYYY ajudo mtoo msmo fiz muita coisa rox com oq vi nu seu tuto e oq eu ja sabia agora meu ot ta rox ty dinovo floww Link para o comentário Compartilhar em outros sites More sharing options...
Heyrash 0 Postado Dezembro 16, 2006 Share Postado Dezembro 16, 2006 Pessoal, actions nada mais eh do que programar, para vcs entenderem direitinho como funciona e como se escreve uma action completa, aconselho começarem a ler mais sobre programaçao, nao soh de ot, mas programação de computadores mesmo, da sim podorão entender direitinho como se funciona essa coisinha simples.... Eu programo programas de verdade em Visual Basic, ajudo tbm nos OTs, portanto tenho alguns sites de programação para os que se enteressarem.... Aconselho para os que nao sabem nada de programação a baixar umas coisas sobre Lógica de programação, aprendido isso dai podem começarem entrando em uma linguagem de programação séria... no caso de Ots usa-se a linguagem LUA. sites::::::::::::::::::::::::::::::::::::: www.apostilando.com - logica de programacao http://www.codigofonte.net http://www.vbmania.com.br http://www.portaldaprogramacao.com http://www.aprendaemcasa.com.br Se alguem sentir dificuldade em programar entre em contato: tiagomanzini_17@hotmail.com flwss espero ter ajudado... Link para o comentário Compartilhar em outros sites More sharing options...
hamonlorion 0 Postado Maio 21, 2007 Share Postado Maio 21, 2007 Pessoal, actions nada mais eh do que programar, para vcs entenderem direitinho como funciona e como se escreve uma action completa, aconselho começarem a ler mais sobre programaçao, nao soh de ot, mas programação de computadores mesmo, da sim podorão entender direitinho como se funciona essa coisinha simples.... Eu programo programas de verdade em Visual Basic, ajudo tbm nos OTs, portanto tenho alguns sites de programação para os que se enteressarem.... Aconselho para os que nao sabem nada de programação a baixar umas coisas sobre Lógica de programação, aprendido isso dai podem começarem entrando em uma linguagem de programação séria... no caso de Ots usa-se a linguagem LUA. sites::::::::::::::::::::::::::::::::::::: www.apostilando.com - logica de programacao http://www.codigofonte.net http://www.vbmania.com.br http://www.portaldaprogramacao.com http://www.aprendaemcasa.com.br Se alguem sentir dificuldade em programar entre em contato: tiagomanzini_17@hotmail.com flwss espero ter ajudado... e cara e ajudo vo estudar eci caso vlw Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados