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