CO

Tutorial Sobre Actions

Por colex, 16 de abr. de 2006 em Tutoriais de Scripting

script
5.0 (3)
80
20.7k
colexC
16 de abril de 2006 às 00:12

vo começar a postar mini tutoriais sobre actions

hoje vo postar a 1º parte e naum vo postar tudo numa só para naum ficar embaralhada as explicações, postarei a proxima parte se eu ver ke ajudou algumas pessoas ou ke gostaram :icon1:

atenção: alguma informação errada me avise ke eu irei editar.

vo primeiru começar por dizer uma coisa antes de começar u tutor

us comandos ke eu usar "cid" ou "item2.uid" neste tutorial podem ser substituidos por otros em otros scripts, vo fazer uma lista:

- cid --- criatura

- item.uid --- item em ke se deu a ação

- item2.uid --- 2º item ke entrou na ação (por exemplo nu use with) o 1º item nosi damu "use with" e dps clicamus em cima de otro item (item2)

- ou otras variavel declarada antes por exemplo:

vou declarar a variavel umas coordenadas e dps pegar a info de um player*(explico issu noutro tuto) desse local e ver u a vocação dele...

 

lugar = {x=100, y=100, z=7, stackpos=253} ---- declarada a variavel LUGAR com as coordenadas (estackpos eu explico dps)lugarinfo = getThingfromPos(lugar) ---- peguei a info de creture dakelas coordenadasvoc = getPlayerVocation(lugarinfo.uid) --- peguei a vocação do player ke a var "lugarinfo" pegou a informação

 

----------------------------------------------------------------

agora nesta 1º parte vo fazer uma leveldoor baseada em actionid explicandu tudo passo a passo para naum haver duvidas e se houver eu tentarei responder

LevelDoor é um script facil e não contem muita dificuldades intaum sera facil ensinar

começaremos por abrir u bloco de notas e escreveremos a primeira tag de todas as actions:

 

function onUse(cid, item, frompos, item2, topos)

 

esta é a função basica das actions ke vc podera ver em todas elas, nos npcs e spells vc encontra otro tipu de funções

nesta função voce podi ver 4 "variaveis predefinidas" nas sources.

agora vamos declarar 2 variaveis em ke a 2º variavels vai conter um calculo

adicione u seguinte na continuação da tag de cima:

 

player = getPlayerLevel(cid) ---- variavel ke pega u level de um playerlevel = item.actionid - 1000

 

1º declaramos a variavel de pegar o lvl do player, claru pq nois precisamus saber u lvl du player pra ver se ele podi passar, mas fizemos o calculo subtrair o actionid do item (item.actionid) por 1000.

ja vo dizer porque isso, eu fiz isso porque us actionid para funcionar é 1000 pra cima

intaum vc coloca 1030 (como actionid) - 1000 = 30 <--- level necessario, ou seja, vc coloca nu actionid da door o level necessario mais 1000 ke dps u script vai "tirar" esses 1000 e vai saber u valor exato.

Agora vem a parte principal, u "corpo" da action, vc vaum reparar ke nas minhas actions em cada "enter" ke eu dou entre duas funções, eu clico duas vezes nu "espaço" para dexar a action mais organizado e bem mais simples na parte dus "elses":

 

if player >= level then  doTeleportThing(cid,topos)  doSendMagicEffect(topos,12)else --- else fica alinhado com u if num caso de muitos ifs istu ajuda  doPlayerSendCancel(cid,"Voce necessita level "..level.." para passar.")endreturn 1end

 

Agora explicando:

1º de tudo vem uma expressão de "verificação" em ke usamos u "if"

akela frase traduzida para portugues ficaria +/- u seguinte:

se "player" for maior ou igual (>=) que "level" então...

se essa expressão for verdadeira a action vai teleportar o player para a posição da porta é a mesma du topos (topos = to position), issu acontece com u seguinte comando:

 

doTeleportThing(cid,topos)

 

esse comando é doTeleportTHING porque funciona com outras coisas a naum ser players

e para enfeitar a level door eu inda coloquei para aparecer um efeito no player dps de ser teleportado ke tbm é igual ao topos, para issu usamos o seguinte comando:

 

doSendMagicEffect(topos,12)

 

eu coloquei ali "12" como efeito magico, mas vc podi mudar, para vc ver us efeitos magicos entre com seu gm e diz "/z numero" sem os "".

atenção: neste comando naum utilize cid ou item2.uid use sempre algu como cordenadas ou posção por exemplo (topos, frompos, {x=10, y=256, z=7})

agora vamus ver ke caso a expressão seja falsa (o level do player naum é maior nem igual ke o level requirido) a action vai mandar uma menssagem de cancelamento para o player dizendo ke ele precisa de um certo level pra passar:

1º para issu devemos colocar "else"(senão) ou "elseif"(senão + expressão), neste caso usaremos o "else"(senão) e logo depois colocaremos o comando do ke ira acontecer:

 

else   doPlayerSendCancel(cid,"Voce necessita level "..level.." para passar.")

 

esse comando faz aparecer akela msg branca na parte de baixu da tela, vcs podem ver ke eu escrevi ali ("..level..") esses ("..---..") vai passar para texto uma variavel por exemplo a variavel ke eu usei "..level..", ou até um comando por exemplo "..getPlayerName(cid).." -- este ira escrever u nome du player.

Agora só falta 2 coisas para terminar o script

1º Fechar a expressão "if"

2º fechar a função "onUse"

Para fechar a expressão usamos u simples end(terminar):

 

end

 

Para fechar a funºção usamo u return(reponder) com um valor positivo ou nulo e um end:

 

return 1end

Então a action ficara assim:

 

function onUse(cid, item, frompos, item2, topos)player = getPlayerLevel(cid)level = item.actionid - 1000if player >= level then  doTeleportThing(cid,topos)  doSendMagicEffect(topos,12)else --- else fica alinhado com u if num caso de muitos ifs istu ajuda  doPlayerSendCancel(cid,"Voce necessita level "..level.." para passar.")endreturn 1end

 

Agora salve o documento do bloco de notas com nome lvldoor.LUA na pasta:

data/actions/scripts

Vai no arquivo actions.XML da pasta:

data/actions

e adicione a seguinte tag ke abrira o script ke vc fez:

 

<action itemid="id_da_porta" script="lvldoor.lua" />

 

em vez de itemid pode tbm ser usado:

- actionid

- uniqueid

mas neste caso usamos itemid

id da porta naum tem nada ke explicar (um exemplo: 1229)

script="lvldoor.lua" é u ke vai chamar u script ke vc criou com esse nome na pasta (data/actions/scripts)

e aki termina o primeiro tuto sobre actions

espero ke tenham gostado e aprendido mais algumas coisa sobre actions

se eu ver ke gostaram e ke deu pra aprender alguma coisa eu postarei us proximos tutos explicando coisas mais dificeis

Comentem u ke axam, erros e u ke naum perceberam ke eu tentarei responder :bye:

tutorial 100% by Colex

Editado Outubro 26 por colex

1 mês depois...
RotcivR
06 de maio de 2006 às 21:19

Tutorial muito bom e bem explicado

Fixado.

kamusssK
07 de maio de 2006 às 13:39

Queruu maisss =( aew colex termian adorei o tuto!!! cara continua aew preciso de action maker e ninguem aprende vai ter que ser eu msm neh....

MttSM
08 de maio de 2006 às 15:45

Puxa vida, tinha que ser fixado mesmo!

Parabéns pelo tutorial cara!!! Super explicado!

Você poderia dar aulas sabia? Cobrando 1 real cada aula você ia ficar rico! huhua

//MttS

colexC
08 de maio de 2006 às 18:10

@Kamuss

eu vou postar mais, mas eu prefiru ver 1º se tem gente interessada em aprender este tipu de scripting ^^

@Mtts

Brigado pela idéia, ké ser meu aluno xD

vlw pelos comments

WinduW
08 de maio de 2006 às 20:11

Ba meu continua a posta essas "aulas" pq um dia quero fazer essas coisas loca q vc faz e eu sempre quis fazer.

RorfsR
08 de maio de 2006 às 20:15

vlw colex por esse grande e hiper explicado tutorial sobre actions...é por ele que to tentanu aprende xD....vlw brow tu e baUMMM msmo hsuashua..... GRANDE TUTORIAL COLEX PARABENS ^.- ...

FUIII

abraços ^.-

kamimuraK
08 de maio de 2006 às 20:23

Oi

Ow colex realmente muito bom, gostei tipo nao sabia quase nada sobre actions e agora jah começei a entender melhor.

tipo esses tutoriais q ensinam alguma coisa importante deveriam ser fixados !!!

vlw

//kamimura

1 mês depois...
27 de junho de 2006 às 22:02

Kra tah mt rox

So iniciante ainda aprendi mt coisa com esse totu

vlw msm :bigsmile:

arroizkomkarnisign3ze.jpgvlw mtts pela sing

V

L

W

bar8kd.jpg

1 mês depois...
SlashzinhuuS
08 de julho de 2006 às 18:45

manow eu nunca entendi nadinha de actions...

nadda mesmo!

e agora pela primeira vez eu sei de alguma coisa..

fiquei quase excitado aqui quando entendi que o programa simplesmente usa uma equação... =DDDDDD

mas tpw..

c flo: QUALQUER erro avise.. dai tpw..

eu não tenho muita certeza.. mas c flo: else(então) elseif(então se), mas eu acho que else num eh então eu pelo menos, sempre achei que else = também, além, mais, etc..

tpw:

anyone else want to come?

alguém mais quer vir?

então nas actions seria: else(também) elseif(também se)

conserta aê dps..

=D

valeu manoow

tutorial super rox! super bem-explicado! te amo!!! vou ler os outros dois agora...

Fuiii

Editado Julho 8 por Slashzinhuu

reivR
09 de julho de 2006 às 02:15

Action é muito dificil de aprender.

Mais cum esse tuto pareceu taum facil =D

Você É o cara de Actions

Abraços

//RaVe_

R@U£R
09 de julho de 2006 às 23:12

awe ficou muito bom

meus parabens manow

flwss

vlwss

1 mês depois...
15 de agosto de 2006 às 15:33

 

;(: Eu n sei oq é isso, oq é um scripT??? :confused: :confused: ;(:;(:

15 de agosto de 2006 às 21:31

aew cara..

aff tutorial perfect cara..

realmente muito bom..

o post tá um pouco antigo mas ainda tá valendo =PP

falo de actions quem manja é o colex :icon1:

@ThiagoCapitao

putz cara dai pega mal o.O

sei explicar não..na verdade não sei explicar nada..

só sei fazer umas paradas xDD

malz

flws ae

fuiz!!

Yosef002Y
16 de agosto de 2006 às 00:24

Aew fico mt bom tuto pena q n tem o q eu pressiso, caso vc possa me ajuda eu tenho um problema eu n sei fazeh uma action, sei fazeh mts actions mas essa em particular n sei como, jah perguntei jah postei nos de pedidos de codigo mas n consigo, jah tentei eu msm fazeh....

O q eu kro eh como em mintwalin no tibia normal::

-quando vc fla hi pro npc ele da sumon de bixo

-e dps quando vc tiver matado tds bixos vc diz hi denovo, ai ele te responde

Ps:tem q matar tds bixos.

se alguem souber me mande uma msg.