Skyblade 2 Postado Maio 10, 2011 Share Postado Maio 10, 2011 (editado) >>ACTIONS<< O que são? actions são ações geradas por "cliques" no jogo ex: uma alavanca... Você pensa que está puxando uma alavanca... mas na verdade você da use nela ela identifica o item procura a tag no actions.xml e le o script da alavanca.. que faz ela mudar o id pra 1946 que seria o id da alavanca puxada... resumindo ... é um geito mto legal de enganar as pessoas... por isso eu não vejo mais graça jogar tibia... só criar coisas.. kkk Começando.. Você primeiramente precisa dos seguintes "arquivos" (sei la) - Script - Item que irá acontecer a ação Então... vamos usar esse script bem simples... -- By Skybladefunction onUse(cid, item, frompos, item2, topos) if getPlayerAccess(cid) >= 3 then p = getPlayerPosition(cid) doSendAnimatedText(p,"Priiiiii!",150) doSendMagicEffect({x=p.x,y=p.y,z=p.z},math.random(21,24)) u = {p=p} addEvent(apito3,500,u) end return 1 end function apito2(u) p = u.p eff = math.random(21,24) doSendMagicEffect({x=p.x-2,y=p.y-2,z=p.z},eff) doSendMagicEffect({x=p.x-1,y=p.y-2,z=p.z},eff) doSendMagicEffect({x=p.x,y=p.y-2,z=p.z},eff) doSendMagicEffect({x=p.x+1,y=p.y-2,z=p.z},eff) doSendMagicEffect({x=p.x+2,y=p.y-2,z=p.z},eff) doSendMagicEffect({x=p.x-2,y=p.y-1,z=p.z},eff) doSendMagicEffect({x=p.x+2,y=p.y-1,z=p.z},eff) doSendMagicEffect({x=p.x-2,y=p.y,z=p.z},eff) doSendMagicEffect({x=p.x+2,y=p.y,z=p.z},eff) doSendMagicEffect({x=p.x-2,y=p.y+1,z=p.z},eff) doSendMagicEffect({x=p.x+2,y=p.y+1,z=p.z},eff) doSendMagicEffect({x=p.x-2,y=p.y+2,z=p.z},eff) doSendMagicEffect({x=p.x-1,y=p.y+2,z=p.z},eff) doSendMagicEffect({x=p.x,y=p.y+2,z=p.z},eff) doSendMagicEffect({x=p.x+1,y=p.y+2,z=p.z},eff) doSendMagicEffect({x=p.x+2,y=p.y+2,z=p.z},eff) end function apito3(u) p = u.p eff = math.random(21,24) doSendMagicEffect({x=p.x-1,y=p.y-1,z=p.z},eff) doSendMagicEffect({x=p.x,y=p.y-1,z=p.z},eff) doSendMagicEffect({x=p.x+1,y=p.y-1,z=p.z},eff) doSendMagicEffect({x=p.x-1,y=p.y,z=p.z},eff) doSendMagicEffect({x=p.x+1,y=p.y,z=p.z},eff) doSendMagicEffect({x=p.x-1,y=p.y+1,z=p.z},eff) doSendMagicEffect({x=p.x,y=p.y+1,z=p.z},eff) doSendMagicEffect({x=p.x+1,y=p.y+1,z=p.z},eff) u = {p=p} addEvent(apito2,500,u) end Pronto temos um script que faz um apito "apitar" Tá mas que apito? Vamos usar o item >> 5876 (apito) Tá mas e como eu configuro tudo? Assim ó Você pega o script e vai na pasta data/actions/scripts/ copia e cola qualquer script la apaga o que tem dentro e renomeie para NOME_DO_SCRIPT.lua OBS: lembre-se do nome que você vai por.. no nosso exemplo vamos por assim apito.lua Ok... script colocado la com nome certinho e agora comofaiz? Agora vem a parte "chata mas simples" da história... Você vai em actions.xml (sabe aquele arquivo solito que tem antes da pasta scripts dentro da pasta actions? poisé esse mesmo) então abrindo o actions .xml você vai ver um monte de coisas escritas parecendo xinês... só que se voce parar e ler é bem facil entender... Assim ó Ele começa com a seguinte tag (não sei se é esse o nome) <actions> após essa "tag" tudo que tiver dentro ele vai ler... exemplificando: Exemplo A <action itemid="10012" script="testedecoracao.lua" /> Exemplo B <action actionid="5188" script="sports/caixatraficante.lua" /> Exemplo C <action uniqueid="8172" script="sports/quest2.lua" /> no ex A temos uma action gerada por item... isso quer dizer que todos os items 10012 vao fazer acontecer o que está no script testedecoracao.lua.... ja no ex B temos uma action que funciona em todos os items que tem a actionid 5188, a tambem se você preferir separar por pastas seus scripts como eu fiz pode por como no exemplo B na parte ' script="sports/caixatraficante.lua" ' só botando o nome e o nome da pasta.... com o tempo vocês se acostumam com a ideia de itemid e actionid só tem que ter vontade de aprender... no ex C temos uma action acionada por unique id... (q porra é essa???) quando tu clica 2x em algum item no map editor tem.. itemid actionid uniqueid ai tu escolhe um desses pra por uma action só que essa parte de uniqueid seria uma action UNICA ... pq actionid tu pode por em varios items.. itemid são todos os items daquele id... uniqueid seria só 1... se tu tenta adicionar outro unique com o mesmo valor da error... (refresco de memoria by demonbholder) Voltando ao tuto de add scripts no ot... no nosso scripts vamo adicionar a seguinte tag: <action itemid="5786" script="apito.lua"/> só isso? explicando... action itemid... isso faz com que todos os items 5786 acionem o script "5786" .. esse é o nosso item script="apito.lua" nessa parte a tag diz que o script para aquele item é o script apito.lua... Bem é isso... script adicionado... agora... se você quiser testar é só fazer assim.. ou dar reload ou fechar e abrir o server denovo digitar /i 5786 e clicar com o botao direito nele simples não? kkk Para ver esse e outros scripts entrem http://kaesports.servegame.com:8090 Créditos >> 100% Skyblade @edit: add uniqueid <<Rep Plz? Editado Maio 10, 2011 por SkyBlade Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Maio 10, 2011 Share Postado Maio 10, 2011 Bom tutorial, aprovado! Ainda tem a tag do uniqueid. Até mais. Link para o comentário Compartilhar em outros sites More sharing options...
Skyblade 2 Postado Maio 10, 2011 Autor Share Postado Maio 10, 2011 @Demonbholder Aprovado? não sei se você ou alguem pode mover pros tutoriais em si... Obs² : ja adicionei a tag uniqueid ;D Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Maio 10, 2011 Share Postado Maio 10, 2011 Eu como colaborador tenho que aprovar os tutoriais e pedir para um moderador mover. Já aprovei o seu, em breve algum moderador vai move-lo. Até mais. Link para o comentário Compartilhar em outros sites More sharing options...
Garrius 1 Postado Julho 7, 2011 Share Postado Julho 7, 2011 Opa, tudo belezinha? ^^' Então mano, eu to com uns probleminhas aqui ' Bom, eu baixei esse ot aqui: http://www.xtibia.com/forum/topic/137640-860-war-on-rookgaard-2-team/ 1º Problema: Tipo, tem um bug nas Frags que é o seguinte: Eu posso matar o cara 1000x, mas naquela mensagem que fala "You owned Gravity! You have now 2 kills" vai sempre aparecer 2 Kills. Mesmo se eu matar 1000x. Queria que fosse de 1 e 1. Ex.: (Matei um cara. "You owned Gravity! You have now 1 kills") (Matei outro. "You owned Gravity! You have now 2 kills") e assim por diante. 2º Problema: Ta faltando alguns Outfits (ou addons), será que alguem pode postar os scripts de todos? :X 3º Problema: Eu editei uma coisa nesse mapa, daí eu criei um Barco. Eu queria um NPC que levasse até um lugar.. Daí, eu fui na pasta data/npc e criei + 1 arquivo XML com o nome Tibia Captain (esse é o nome do NPC). Daí dentro desse arquivo eu coloquei isso: <?xml version="1.0" encoding="UTF-8"?> <npc name="Tibia Captain" script="default.lua" walkinterval="1000" floorchange="0"> <health now="150" max="150"/> <look type="134" head="114" body="86" legs="114" feet="0" corpse="2212"/> <parameters> <parameter key="module_travel" value="1"/> <parameter key="message_greet" value="Olá |PLAYERNAME|. Eu posso te levar para a cidade vip! Apenas diga Furia City."/> <parameter key="travel_destinations" value="furia city,1060,805,7,120"/> </parameters> </npc> Daí tá.. Como que eu faço pra ele aparecer no mapa? Tipo, eu só fiz isso, daí como que eu coloco ele no mapa? Que no caso seria no Barco. 4º Problema: Esse server, o sistema de Team dele, é daqueles que entra em um portal e vira um team. Tipo, assim vai ficar muito desbalanceado, dai tem um team vencendo, o cara morre, entra no time que os caras estão vencendo e pronto! Não tem jogabilidade.. Então, ao invez disso, eu gostaria de saber como eu coloco pro cara logar daí já cai em um time. Tipo, vamo supor que o jogo ta 6 jogadores no time vermelho, e 5 no time verde. O próximo que entrar vai entrar no time verde. Daí fica balanceado. 6x6 5º Problema: Como que eu faço para mudar de mapa a cada 30 minutos. Tipo, eu já tenho os 2 mapas. Roockwar, e Desert city. Como que eu faço para ficar 30 minutos no roockwar, daí muda pro Desert city, depois de 30 minutos, volta pro Roockwar. 6º Problema: Nesse OT, mesmo se você estiver no lvl 500, e morrer, volta pro level 100. Como que eu faço pra não acontecer isso? Queria que fosse assim: O cara upa e talz, daí morre, e só perde uma porcentagem. Grato pela atenção, até breve! Esperando uma resposta .-. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados