Ir para conteúdo

[Actions] Adicionando Scripts


Skyblade

Posts Recomendados

>>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 Skyblade

function 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"/>

 

 

o.O 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 :D

 

@edit: add uniqueid

 

 

 

 

<<Rep Plz?

Editado por SkyBlade
Link para o comentário
Compartilhar em outros sites

  • 1 month later...

Opa, tudo belezinha? ^^'

Então mano, eu to com uns probleminhas aqui x.x'

 

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

×
×
  • Criar Novo...