Ir para conteúdo

Tutorial Sobre Actions


colex

Posts Recomendados

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

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
  • Respostas 79
  • Created
  • Última resposta

Top Posters In This Topic

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

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

@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

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 2 weeks later...

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

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

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

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites


×
×
  • Criar Novo...