Ir para conteúdo
Entre para seguir isso  
frerety

Movements - 7.9+

Recommended Posts

frerety    0
frerety

HiHo!

 

Primeiramente eu gostaria de dizer que as cores do meu monitor estão estragadas portanto não sei se as cores combinam com o skin escuro do fórum. Se não combinar, por favor poste uma sugestão de cor para ser alterada...

 

Bom... demorei 5 horas pra escrever isso. Eu sei que o número de pessoas que vai ler isso com intusiasmo e interesse eh quase nulo mas se eu conseguir ajudar uma pessoa apenas já estou feliz =)

 

Provavelmente você não vai intender tudo da primeira vez que você ler (talvez nem da segunda) pois eh muita coisa para aprender. Leia com atenção, com calma, com carinho ( =p ), analise vários scripts/movements (todos que ver na frente de preferência o/) e o mais importante: tenha persistência ;) Tentei facilitar ao máximo, tentei organizar mais porém se eu sintetizasse mais iria perder conteúdo =x... Se você ainda tiver alguma dúvida poste-a aqui =p Ficarei feliz em te ajudar a resolver seu problema (ajudar não é fazer para você :wink: ... assim você nunca vai aprender).

 

Pergunta ~> Tá... Vou ler um tutorial de Movements, mais o que isso faz?!?

Resposta ~> Toda vez que você movimentar alguma coisa (itens, você mesmo, outros players - enfim, todo tipo de movimento) ou criar itens em algum lugar (ex. criar firefields) poderá acontecer alguma coisa. Podemos configurar BoH, rings com movements, adicionar damage nos fields, configurar traps e muuuito mais =)

 

Começaremos analizando o movements.xml (data/movements/)

Vamos estudá-lo um pouco:

<?xml version="1.0"?>

<movements>

<movevent event="EVENT" (... argumentos ...) />

</movements>

</xml>

Para cada event você vai usar um argumento < (...) >. Por isso vamos estudar movements divididos em seções - events.

 

<span style='font-size:25pt;line-height:100%'><span style='color:gray'>EVENTS:</span></span>

<movevent event="StepIn" <span style='color:red'>(...)</span>

Usada quando o player mover para alguma coisa. Corresponde à antiga função de actions OnWalkIn

Argumentos:

<span style='color:red'>itemid</span> ~> use apenas um deles, nunca mais de um (se usar itemid não use uniqueid, se usar actionid não use itemid, etc). Quando o player andar em cima de um item com itemid/uniqueid/actionid X, executar o movement.

<span style='color:red'>script</span> ~> use (também) apenas um deles (se usar script não usar function). Function vai ser explicado mais tarde, não se preocupe =). Script é o caminho do arquivo lua(onde ele está) a ser executado quando o player pisa em algum item de itemid/uniqueid/actionid X

<span style='color:orange'>Exemplo</span>: <movevent event="StepIn" itemid="1487" script="arquivo.lua" />

 

<movevent event="StepOut" <span style='color:red'>(...)</span>

Usada quando o player mover para fora (sair de cima) de um item X. Corresponde à antiga função para actions OnWalkOut

Argumentos:

<span style='color:red'>itemid</span> ~> use apenas um deles, nunca mais de um (se usar itemid não use uniqueid, se usar actionid não use itemid, etc). Quando o player mover pra fora de um item com itemid/uniqueid/actionid X, executar o movement.

<span style='color:red'>script</span> ~> use (também) apenas um deles (se usar script não usar function). Function vai ser explicado mais tarde, não se preocupe =). Script é o caminho do arquivo lua(onde ele está) a ser executado quando o player "sai" de cima de algum item de itemid/uniqueid/actionid X

<span style='color:orange'>Exemplo</span>: <movevent event="StepOut" itemid="1487" script="arquivo.lua" />

 

<movevent event="Equip" <span style='color:red'>(...)</span>

Usada quando o player colocar um equipamento no corpo(pro corpo, não para a bp =p) em algum slot

Argumentos:

<span style='color:red'>itemid</span> ~> use apenas um deles (se usar itemid não use uniqueid ou actionid). Quando o player mover um item de itemid/uniqueid/actionid X para o corpo, executar o movement.

<span style='color:red'>script</span> ~> use (também) apenas um deles (se usar script não usar function). Function vai ser explicado mais tarde, não se preocupe =). Script é o caminho do arquivo lua(onde ele está) a ser executado quando o player "veste" algum item de itemid/uniqueid/actionid X.

<span style='color:red'>slot</span> ~> o slot (mão, pé, corpo, etc) que o item deverá ficar pra executar a ação. Pode ser:

<span style='color:green'>.: head</span> ~> cabeça

<span style='color:green'>.: necklace</span> ~> colar

<span style='color:green'>.: backpack</span> ~> slot da backpack

<span style='color:green'>.: armor</span> ~> armadura

<span style='color:green'>.: right-hand</span> ~> mão direita

<span style='color:green'>.: left-hand</span> ~> mão esquerda

<span style='color:green'>.: legs</span> ~> calça

<span style='color:green'>.: feet</span> ~> pé

<span style='color:green'>.: ring</span> ~> rings (anéis)

<span style='color:orange'>Exemplo</span>: <movevent event="Equip" itemid="2168" slot="ring" script="arquivo.lua" />

 

<movevent event="deEquip" <span style='color:red'>(...)</span>

Usada quando o player retirar um equipamento de um certo slot do corpo

Argumentos:

<span style='color:red'>itemid</span> ~> use apenas um deles (se usar itemid não use uniqueid ou actionid). Quando o player mover um item de itemid/uniqueid/actionid X para fora do corpo, executar o movement.

<span style='color:red'>script</span> ~> use (também) apenas um deles (se usar script não usar function). Function vai ser explicado mais tarde. Script é o caminho do arquivo lua(onde ele está) a ser executado quando o player tira algum item de itemid/uniqueid/actionid X do corpo.

<span style='color:red'>slot</span> ~> o slot (mão, pé, corpo, etc) que o item deverá estar antes do player tirar ele do corpo. Pode ser:

<span style='color:green'>.: head</span> ~> cabeça

<span style='color:green'>.: necklace</span> ~> colar

<span style='color:green'>.: backpack</span> ~> slot da backpack

<span style='color:green'>.: armor</span> ~> armadura

<span style='color:green'>.: right-hand</span> ~> mão direita

<span style='color:green'>.: left-hand</span> ~> mão esquerda

<span style='color:green'>.: legs</span> ~> calça

<span style='color:green'>.: feet</span> ~> pé

<span style='color:green'>.: ring</span> ~> rings (anéis)

<span style='color:orange'>Exemplo</span>: <movevent event="DeEquip" itemid="2168" slot="ring" script="arquivo.lua" />

 

 

<movevent event="AddItem" <span style='color:red'>(...)</span>

Usada quando o player adicionar um item x em algum tile (mover de um tile pro outro, quando o player taca uma runa de field ofensiva em alguém)

Argumentos:

<span style='color:red'>itemid</span> ~> use apenas um deles (se usar itemid não use uniqueid ou actionid). Quando o player "criar" um item de itemid/uniqueid/actionid X, executar o movement.

<span style='color:red'>script</span> ~> use (também) apenas um deles (se usar script não usar function). Function vai ser explicado mais tarde. Script é o caminho do arquivo lua(onde ele está) a ser executado quando o player adiciona/move alguma coisa pro tile.

<span style='color:red'>tileitem</span> ~> pode ser 0(false - desativado) ou 1(true - ativado). Se for 0, o script é executado assim que você move/cria o item no chão. Se for 1, o script só é adicionado quando você taca outro item em cima do item de itemid/uniqueid/actionid X

<span style='color:orange'>Exemplo</span>: <movevent event="AddItem" tileitem="0" itemid="2424" script="script.lua" />

 

 

<movevent event="RemoveItem" <span style='color:red'>(...)</span>

Usada quando o player remover um item x (mover de um tile pro outro, usar destroy field)

Argumentos:

<span style='color:red'>itemid</span> ~> use apenas um deles (se usar itemid não use uniqueid ou actionid). Quando o player "remover/tirar" um item de itemid/uniqueid/actionid X de um tile, executar o movement.

<span style='color:red'>script</span> ~> use (também) apenas um deles (se usar script não usar function). Function vai ser explicado mais tarde. Script é o caminho do arquivo lua(onde ele está) a ser executado quando o player tira algum item de itemid/uniqueid/actionid X do corpo.

<span style='color:red'>tileitem</span> ~> pode ser 0(false - desativado) ou 1(true - ativado). Se for 0, o script é executado assim que você move/cria o item no chão. Se for 1, o script só é adicionado quando você tira outro item de cima do item de itemid/uniqueid/actionid X

<span style='color:orange'>Exemplo</span>: <movevent event="RemoveItem" tileitem="0" itemid="2424" script="script.lua" />

 

<span style='font-size:25pt;line-height:100%'><span style='color:gray'>ARQUIVOS.LUA:</span></span>

Nas actions o modelo básico é:

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

return 1

end

Porém em movements o modelo depende do Event adicionado no xml. Cada event tem seu modelo básico... Irei explicar um por um.

 

<span style='color:orange'>StepIn</span>

Seu modelo básico é:

function onStepIn(<span style='color:red'>cid</span>)

-- aqui ficam as instruções

return 1

end

 

Argumentos:

.: <span style='color:red'>cid</span>;

.: <span style='color:green'>item</span> pisou. Possui: item.uid, item.itemid, item.type, item.actionid

.: <span style='color:blue'>pos</span> pisou

 

<span style='color:orange'>StepOut</span>

Seu modelo básico é:

function onStepOut(<span style='color:red'>cid</span>)

-- aqui ficam as instruções

return 1

end

 

Argumentos:

.: <span style='color:red'>cid</span>;

.: <span style='color:green'>item</span> saiu. Possui: item.uid, item.itemid, item.type, item.actionid

.: <span style='color:blue'>pos</span> saiu

 

<span style='color:orange'>Equip</span>

Seu modelo básico é:

function onEquip(<span style='color:red'>cid</span>)

-- aqui ficam as instruções

end

 

Argumentos:

.: <span style='color:red'>cid</span>;

.: <span style='color:green'>item</span> "vestiu". Possui: item.uid, item.itemid, item.type, item.actionid

.: <span style='color:blue'>slot</span> foi colocado. Pode ser:

.:. 1 ~> cabeça

.:. 2 ~> colar

.:. 3 ~> slot da backpack

.:. 4 ~> armadura

.:. 5 ~> mão direita

.:. 6 ~> mão esquerda

.:. 7 ~> calça

.:. 8 ~> pé

.:. 9 ~> anel

 

<span style='color:orange'>DeEquip</span>

Seu modelo básico é:

function onDeEquip(<span style='color:red'>cid</span>)

-- aqui ficam as instruções

end

 

Argumentos:

.: <span style='color:red'>cid</span> do corpo;

.: <span style='color:green'>item</span> tirou do corpo. Possui: item.uid, item.itemid, item.type, item.actionid

.: <span style='color:blue'>slot</span> foi retirado. Pode ser:

.:. 1 ~> cabeça

.:. 2 ~> colar

.:. 3 ~> slot da backpack

.:. 4 ~> armadura

.:. 5 ~> mão direita

.:. 6 ~> mão esquerda

.:. 7 ~> calça

.:. 8 ~> pé

.:. 9 ~> anel

 

<span style='color:orange'>AddItem</span>

Seu modelo básico é:

function onAddItem(<span style='color:red'>moveitem</span>)

-- aqui ficam as instruções

return 1

end

 

Argumentos:

.: <span style='color:red'>moveitem</span> será o item que você arrastou em cima do item que está no xml!!! (dêem outra olhada no xml do event AddItem na parte do tileitem para intenderem melhor. Se precisar olhem os exemplos mais em baixo).

.: <span style='color:green'>tileitem</span>item, o tileitem não precisa ser necessáriamente um tile =) pode ser qualquer item que você possa mover coisas em cima dele.

.: <span style='color:blue'>pos</span> foi movido/criado. (posição depois de mover)

 

<span style='color:orange'>RemoveItem</span>

Seu modelo básico é:

function onRemoveItem(<span style='color:red'>moveitem</span>)

-- aqui ficam as instruções

return 1

end

 

Argumentos:

.: <span style='color:red'>moveitem</span> será o item que você arrastou de cima do item que está no xml!!! (dêem outra olhada no xml do event AddItem na parte do tileitem para intenderem melhor. Se precisar olhem os exemplos mais em baixo).

.: <span style='color:green'>tileitem</span>item, o tileitem não precisa ser necessáriamente um tile =) pode ser qualquer item que você possa mover coisas em cima dele.

.: <span style='color:blue'>pos</span> foi removido (posição antes de mover).

 

<span style='font-size:25pt;line-height:100%'><span style='color:gray'>FUNCTIONS vs SCRIPTS:</span></span>

Bom... Quando eu estava explicando os xmls eu falei que você pode usar script ou function. Provavelmente você já está acostumado a usar script. script="arquivo.lua" etc etc =) Mas... pra que serve function e porque eu não uso script quando uso function?!?

Em movements você tem algumas funções especiais para fazer seu trabalho "andar mais rápido". Você não precisa criar nenhum aruqivo.lua! Basta saber quais são as funções especiais e como/quando usá-las ;)

OBS: Os items que serão usados nas funções especiais precisam estar configurados em data/items/items.xml!!!

 

1ª função ~> <span style='color:orange'>onStepInField</span>

Como o próprio nome já diz ela deve ser usada com o event StepIn =p Serve para adicionar damage em fields...

Você não precisa de um arquivo.lua, apenas coloque:

<movevent event="StepIn" itemid="ID_DO_FIELD" function="onStepInField" />

e seu field já estará dando damage assim que alguém pisa em cima dele =p

 

2ª função ~> <span style='color:orange'>onAddField</span>

Usada com o event AddItem =p Serve para adicionar damage quando o player está em um tile e outro player taca um firefield em baixo do player.

<movevent event="AddItem" tileitem="0" itemid="ID_DO_FIELD" function="onAddField" />

OBS: Aconselho sempre que você usar onStepInField (1ª função) adicionar onAddField com o mesmo id para dar um ar mais real ao server.

 

3ª função ~> <span style='color:orange'>onEquipItem</span>

Usada com o event Equip. Serve para configurar rings, amuletos, etc etc...

<movevent event="Equip" itemid="ID_DO_ITEM" slot="ring" function="onEquipItem" />

OBS: é bom você colocar 2 tags, uma com o ID_DO_ITEM não usado e outra com o ID_DO_ITEM usando, gastando tempo.

 

4ª função ~> <span style='color:orange'>onDeEquipItem</span>

Usada com o event DeEquip. Serve para quando o player tirar o ekip especial cancelar os efeitos desse equipamento.

<movevent event="DeEquip" itemid="ID_DO_ITEM_ATIVO" slot="ring" function="onDeEquipItem" />

OBS: ID_DO_ITEM_ATIVO é o id do item sendo usado...

 

<span style='font-size:25pt;line-height:100%'><span style='color:gray'>EXEMPLOS:</span></span>

Bom... depois de toooooda essa teoria vamos ao que interessa o/ exemplos =) (tem poucos - até mesmo porque existem vários exemplos na pasta scripts dos ots - mais se eu achar que precisa com o tempo vou adicionando novos exemplos)

 

Exemplo 01 .:. Configurando Stealth Ring

Abra data/movements/movements.xml e adicione:

<movevent event="Equip" itemid="2165" slot="ring" function="onEquipItem" />

<movevent event="Equip" itemid="2202" slot="ring" function="onEquipItem" />

<movevent event="DeEquip" itemid="2202" slot="ring" function="onDeEquipItem" />
Agora vá em data/items/items.xml e adicione:

<item id="2165" name="stealth ring">

  <attribute key="transformEquipTo" value="2202"/>

  <attribute key="canDecay" value="0"/>

  <attribute key="showduration" value="1"/>

    </item>



    <item id="2202" name="stealth ring">

  <attribute key="transformDeEquipTo" value="2165"/>

  <attribute key="duration" value="600"/>

  <attribute key="showduration" value="1"/>

  <attribute key="invisible" value="1"/>

    </item>
E pronto, seu Stealth Ring já está prontinho para funcionar ;)
Exemplo 02 .:. Como usar tileitem

Vamos fazer pão a partir da massa (ja com a massa pronta - id 2693) pra aprendermos =p

Você precisa da massa do pão(2693) e de um forno aceso(1786). Arraste a massa para cima do forno e a massa esquentará e virará um pão o/

em data/movements/movements.xml

<movevent event="AddItem" tileitem="1" itemid="1786" script="pao.lua" />
Observe o detalhe: o itemid é do forno e tileitem está ativado(tileitem="1"), ou seja, o script irá ser ativado quando você arrastar alguma coisa pra cima do forno, não quando você arrastar o forno!

Agora crie um arquivo chamado pao.lua em data/movements/scripts/ e coloque isso:

function onAddItem(moveitem, tileitem, pos)

    if moveitem.itemid == [b]2693[/b] then -- ID da massa do pão

  doTransformItem(moveitem.uid,2689) -- transforma a massa em pão(2689)

    end



    return 1

end
Assim sempre que você arrastar um item de id 2693 pro forno (tileitem="1", lembra?) o moveitem(que no caso vai ser a massa do pão) vai se transformar em pão o/
<span style='font-size:25pt;line-height:100%'><span style='color:gray'>ÚLTIMAS PALAVRAS:</span></span>

Difícil? Talvez =p

Se você tiver chegado até aqui e intendido, o que está esperando? vá fazer seus próprios movements o/

Se você não tiver intendido, levante do pc, dê uma andadinha básica pela casa de uns 10 minutinhos para assimilar as informações e volte para reler o/

 

Boa sorte =)

 

FlW

CyA!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dragonheart    0
Dragonheart

o.O parabens, otimo tutorial

Realmente seu esforço de 5 hrs valeu a pena xD

ainda não tinha um tutorial explikando o movements das novas verções

Aprovado

Compartilhar este post


Link para o post
Compartilhar em outros sites
Pedroddcunha    3
Pedroddcunha

Ae

Ja tinha visto em outro fórum

Acho que era você o criador do tópico

Não lembro

 

De qualquer jeito

Muito bom isto mesmo

Vai ajudar bastante gente

Aprovado

 

Fui

Compartilhar este post


Link para o post
Compartilhar em outros sites
Razor    1
Razor

Aprovado!

Tutorial muito bom!

Pelo seu esforco de 5 horas estarei dando de meu bolso mais 25OT$ dos que voce ja merecia pelo tuto.

 

esK~

Compartilhar este post


Link para o post
Compartilhar em outros sites
Convidado Tetenho   
Convidado Tetenho

omg tutorial irado

da pra fazer muitas coisas co esses movements

aprovaduu!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap

Oo

 

mto bom tuto... tah de parabens....esclareceu todas minhas duvidas =]

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vasigap    0
Vasigap

Oo

 

mto bom tuto... tah de parabens....esclareceu todas minhas duvidas =]

Compartilhar este post


Link para o post
Compartilhar em outros sites
Cherife    0
Cherife

Putz cara, que trabalhão pra escrever tudo isso.

Pelo seu esforco de 5 horas estarei dando de meu bolso mais 25OT$ dos que voce ja merecia pelo tuto.[/b]
aheiuhaeieau

25, putz, como é dificil ganhar o pão!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Cherife    0
Cherife

Putz cara, que trabalhão pra escrever tudo isso.

Pelo seu esforco de 5 horas estarei dando de meu bolso mais 25OT$ dos que voce ja merecia pelo tuto.[/b]
aheiuhaeieau

25, putz, como é dificil ganhar o pão!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Muadogib    0
Muadogib

muito bom, apesar de ter muita coisa pra ler tongue.gif

conseguir entender umas coisas...outras ja sabia...outras vo tentar depois...

qualquer duvida eu posto ae biggrin.gif

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×