Tutorial Sobre Actions

colex
Por colex
em Tutoriais de Scripting

colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino

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

Rotciv

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 14/10/05Posts: 423Char no Tibia: Rotciv

Tutorial muito bom e bem explicado

Fixado.

Acessando apenas para criticar (positivamente).

E-mail: rotciv@xtibia.com

kamusss

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/08/05Posts: 66

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

Kamusss

userbar084vj7st2jy.gif

colexfan8ro.gif

xtibiauserbar21dx9jy.jpg

*Meu msn* renanzinho_na_parada@hotmail.com

Eu estou 01bf1969-b3c6-490d-9f50-59c15c112489.png no msn

MttS

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 31/10/05Posts: 78Char no Tibia: Sharus Oligs

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

Olá XTibiano:

Sua assinatura estava com um problema na TAG SPOILER e foi movida para a parte "Sobre mim".
Agradecemos a sua compreensão.

Atenciosamente,
JV Chequer

colex

Serviços Prestados a Comunidade
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/10/05Posts: 301Gênero: Masculino

@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

Windu

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/04/06Posts: 47

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

Minha Sign:
user posted image

É Meu Fan?
user posted image

PRESENTES:

Rorfs

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/10/05Posts: 19

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 ^.-

-by [R]orfs-
naturedr9.jpg

kamimura

Old School :D
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 19/04/06Posts: 201

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


"Sem música, a vida seria um erro." (Friedrich Nietzsche)
___________________________________________________
©1993 - 2009 kamimura™ - Todos os direitos reservados

ArroizKomKarni

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/06/06Posts: 4

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

Slashzinhuu

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/06/06Posts: 5

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

Sou
~~Mapper (otimo)
~~Scripter (+/-)
~~Admin
~~Monster Maker
~~Spell Maker (bom)

Posts:
10[x] 110[ ]
20[x] 120[ ]
35[ ] 135[ ]
50[ ] 150[ ]
75[ ] 175[ ]
100[ ] 200[ ]

user posted image
Imagem presente de uNdErNighT... Eu amei essa imagem, se alguém aí souber mexer com efeitos e quiser colocar pra mim ficarei grato =D mande MP pra mim que eu respondo assim que vê-la e mando o link

user posted image

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

http://www.xtibia.com/forum/index.php?showtopic=33304
Meu OT! olhem o tópico e descubram o melhor OT da atualidade ;)

reiv

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/11/05Posts: 21

Action é muito dificil de aprender.

Mais cum esse tuto pareceu taum facil =D

Você É o cara de Actions

Abraços

//RaVe_

Last~

user posted image

R@U£

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 26/12/05Posts: 51Char no Tibia: Falcler Knight

awe ficou muito bom

meus parabens manow

flwss

vlwss

Angel Of Ilusions

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 11/12/05Posts: 108

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

Yosef002

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 21/10/05Posts: 48Char no Tibia: Angel Yosef

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.

Atenciosamente,

Yuminir

www.RADBR.com

Servidor dedicado de 100MBPS

Mapa própio.

Jogabilidade.

Vocações balanceadas.

Rate 50x totalmente apropriada para o server.

Historias:

http://www.xtibia.com/forum/Parvndia-Histo...930#entry599930 <- Parvândia

http://www.xtibia.com/forum/index.php?showtopic=57539 <- As orbs

Sign2.gif

barfan.gif

familialostsignzz3.jpg