Ir para conteúdo
Entre para seguir isso  
LaB OrA

. . : : Funçoes de Actions : : . .

Recommended Posts

LaB OrA    0
LaB OrA

O que significam as funções?

 

OBS01.: Axu q jah tah completu, si eu lembrar outros eu edito

OBS02.: Se você estiver procurando por uma função específica, digite Ctrl + F e irá abrir uma janela. Digite o nome da função e clique em "Localizar Próxima"

 

 

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

 

QUOTE

cid => Player que usou o item

item => Item que foi usado

frompos => Posição do item usado

item2 => Quando usa o item em outro item ou player (Ex: runas)

topos => Posição onde o item foi usado

 

 

 

Stackpos

QUOTE

position = {x=111, y=111, z=7, stackpos=?}

 

stackpos = 0 -- mexe com xão

stackpos = 1 -- mexe com algum item emcima du xão

stackpos = 2 -- mexe com um item ke ta emcima de outro item

stackpos = 3 -- mexe num item ke ta em cima de 2 items

stackpos = 4 --- etc...

 

stackpos = 253 mexe com player ou monstros

stackpos = 255 mexe com fields

 

 

 

 

doChangeTypeItem

sintaxe => doChangeTypeItem(uid,novo_tipo)

ação => Muda o tipo de um item por exemplo em runas com cargas.

exemplo:

-- Remove 1 carga de uma runa (item.uid)

doChangeTypeItem(item.uid,item.type-1)

 

doCreateItem

sintaxe => doCreateItem(itemid,quantidade_ou_cargas,position)

ação => Cria um item com um certo numero de cargas(runas) ou quantidade na posição selecionada.

exemplo:

-- Cria uma uh de 99x na posição selecionada(topos).

doCreateItem(2273,99,topos)

 

 

doDecayItem

sintaxe => doDecayItem(uid)

ação => Começar o tempo de "volta" para o item anterior.

exemplo1:

-- Iniciar o tempo de "volta" para o item anterior.

doDecayItem(item.uid)

exemplo2:

-- Exemplo (machete) doDecayItem().

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

if item2.itemid == 2782 then

doTransformItem(item2.uid,item2.itemid-1)

doDecayItem(item2.uid)

else

return 0

end

return 1

end

 

 

doPlayerAddHealth

sintaxe => doPlayerAddHealth(uid,health)

ação => Remove Life do player quando e negativo caso contrario aumenta o life.

exemplo1:

-- Adiciona 100 de life ao player quando ele usar o objeto.

doPlayerAddHealth(cid,100)

exemplo2:

-- Remove 100 de life do player quando ele usar o objeto.

doPlayerAddHealth(cid,-100)

OBS => Por mais que você tire life do player com essa action, o player não morre, ele sempre fica com 1 de life

exemplo3:

-- Um player tem 100 de life

doPlayerAddHealth(cid,-200)

-- aki ele ficará com 1 de life, não morrerá

 

 

doPlayerAddItem

sintaxe => doPlayerAddItem(uid,itemid,Carga _ou_quantidade)

ação => Cria um item no inventario do player se possível caso contrario, embaixo dele.

exemplo1:

-- Dar uma magic Sword Para o player.

doPlayerAddItem(cid,2400,1)

exemplo2:

-- Quest chest

if item.uid == 5002 then

queststatus = getPlayerStorageValue(cid,5000)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found a magic sword.")

doPlayerAddItem(cid,2400,1)

setPlayerStorageValue(cid,5000,1)

else

doPlayerSendTextMessage(cid,22,"The chest is empty.")

end

end

 

doPlayerAddMana

sintaxe => doPlayerAddMana(uid,mana)

ação => Remove Mana do Player caso seja valor negativo e adiciona caso seja positivo

exemplo1:

-- Adiciona 100 de mana para o player quando ele usar o objeto.

doPlayerAddMana(cid,100)

exemplo2:

-- Remove 100 de mana quando o player usar o objeto

doPlayerAddMana(cid,-100)

 

doPlayerAddSkillTry

sintaxe => doPlayerAddSkillTry(uid,skillid,numero)

ação => Adiciona uma Try de skill ao player, quando try e um hit q o player de em um monstro por exemplo.

lista:

0, Fist.

1, Club.

2, Sword.

3, Axe.

4, Distance.

5, Shielding.

6, Fishing.

exemplo1:

-- Adiciona 5 "tryes" de fist ao player.

doPlayerAddSkillTry(cid,0,5)

exemplo2:

-- Fishing com skills up

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

if item2.itemid == 618 then

fishingskill = getPlayerSkill(cid,6)

formula = fishingskill /200+0.85* math.random()

if formula > 0.65 then

doTransformItem(item2.uid,619)

doDecayItem(item2.uid)

doSendMagicEffect(topos,1)

doPlayerAddSkillTry(cid,6,2)

doPlayerAddItem(cid,2667,1)

else

doSendMagicEffect(topos,1)

doPlayerAddSkillTry(cid,6,1)

end

elseif item2.itemid == 619 or item2.itemid == 620 then

doSendMagicEffect(topos,1)

end

return 1

end

 

doPlayerFeed

sintaxe => doPlayerFeed(uid,food)

ação => Adiciona um tempo em segundos em que o player recuperara life e mana(comida)

exemplo1:

-- Adicionar um tempo de 120 segundos.

doPlayerFeed(cid,120)

exemplo2:

-- Food script

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

max_food = 1024

if item.itemid == 2667 then

food = 120

elseif item.itemid == 2671 then

food = 240

end

if getPlayerFood(cid) + food > max_food then

doPlayerSendCancel(cid,"You are full.")

else

doPlayerFeed(cid,food)

doRemoveItem(item.uid,1)

end

return 1

end

 

doPlayerRemoveItem

sintaxe => doPlayerRemoveItem(uid,itemid,count)

ação => Remove um item do inventario do player

exemplo:

-- Remove um item de id 2400 do inventório do player

doPlayerRemoveItem(cid,2400,1)

 

doPlayerRemoveMoney

sintaxe => doPlayerRemoveMoney(uid,money)

ação => Remove um valor X de dinheiro do player

exemplo:

-- Remove 100 gold from the players inventory.

doPlayerRemoveMoney(cid,100)

 

doPlayerSay

sintaxe => doPlayerSay(uid,text,type)

ação => Faz o player falar uma msg.

exemplo:

-- Enviar uma msg normal.

doPlayerSay(cid,"Hello world!",2)

 

doPlayerSendCancel

sintaxe => doPlayerSendCancel(uid,text)

ação => Envia a msg branca embaixo da tela( You cannot use this object)

exemplo:

-- Envia uma msg escrita Desculpe mas isso n e possível.

doPlayerSendCancel(cid,"desculpe mas isso n e possível.")

 

doPlayerSendTextMessage

sintaxe => doPlayerSendTextMessage(uid,MessageClasses,message)

ação => Envia diferentes tipos de mensagem ao player.

exemplo:

-- SEnvia uma msg vermelha no meio da tela para o player.

doPlayerSendTextMessage(cid,22,"Hello world!")

 

doPlayerSetMasterPos

sintaxe => doPlayerSetMasterPos(uid,pos)

ação => Seta uma nova MasterPos (posição do templo) ao player.

exemplo:

-- Posição do novo templo

newpos = {x=20, y=20, z=7}

-- atualizar a posição.

doPlayerSetMasterPos(cid,newpos)

 

doPlayerSetVocation

sintaxe => doPlayerSetVocation(uid,voc)

ação => Setar uma nova Vocação ao player.

lista:

1, Sorcerer.

2, Druid.

3, Paladin.

4, Knight.

exemplo:

-- Mudar a vocaçao do player para 1.

doPlayerSetVocation(cid,1)

 

doRemoveItem

sintaxe => doRemoveItem(item_id,numero)

ação => Remover items, so e possivel remover um por tile(exemplo 40 bolts e etc).

exemplo:

-- Remover 5 items dessa posiçao. (Power bolts etc)

doRemoveItem(item.uid,5)

 

doSendMagicEffect

sintaxe => doSendMagicEffect(position,type)

ação => Fazer um efeito magico.

exemplo:

-- Enviar efetosinhu de fumaça para a posiçao(topos).

doSendMagicEffect(topos,2)

 

doSetItemActionId

sintaxe => doSetItemActionId(uid,actionid)

ação => Indicar o action id de um item.

exemplo1:

-- Colocar actionID 5020 no item.

doSetItemActionId(item.uid,5020)

exemplo2:

-- Exemplo em loot de quest

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

if item.uid == 5020 then

queststatus = getPlayerStorageValue(cid,5020)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found a silver key.")

key = doPlayerAddItem(cid,2088,1)

doSetItemActionId(key,5020)

setPlayerStorageValue(cid,5020,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

end

return 1

end

 

doSetItemSpecialDescription

sintaxe => doSetItemSpecialDescription(uid,description)

ação => Colocar um descrição especial em um item de quest por exemplo.

exemplo1:

-- Colocar uma descrçao especia no item quando o mesmo for usado.

doSetItemSpecialDescription(item.uid,"Hello world!")

exemplo2:

-- exemplo em quest

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

if item.uid == 3000 then

queststatus = getPlayerStorageValue(cid,3000)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found a pair of magic boots.")

boots = doPlayerAddItem(cid,2640,1)

doSetItemActionId(boots,3000)

doSetItemSpecialDescription(boots, "This boots are magical.")

setPlayerStorageValue(cid,3000,1)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

end

return 1

end

 

doSetItemText

sintaxe => doSetItemText(item.uid,"texto") --- para usar a função da tecla "enter" escrever \n

ação => Adiciona um texto a um objeto

exemplo:

doSetItemText(item.uid,"aew\neste livro tem texto.") -- Aparecerá:

aew

este livro tem texto.

 

 

doShowTextWindow

sintaxe => doShowTextWindow(item.uid,numero_de_letras,editavel) ---- nu editavel é 0 para não poder alterar e 1 para poder alterar

ação => Abre uma janela com o texto que está setado em um objeto

exemplo:

doShowTextWindow(item.uid,500,1) --- este sera editavel com direito a 500 caracteres

 

doSendAnimatedText

sintaxe => doSendAnimatedText(position,text,color)

ação => Fazer um efeito animado no client do tibia. (Semelhante a perder hp ou ganhar exp)

exemplo:

-- Mandar um efeito em vemelho escrito 100.

doSendAnimatedText(frompos,100,180)

 

doSummonCreature

sintaxe => doSummonCreature("nome", posiçao)

ação => Sumonar uma criatura.

exemplo:

-- Summonar um demon para a posição na qual o item foi usado.

doSummonCreature("Demon",topos)

 

doTeleportThing

sintaxe => doTeleportThing(uid,newpos)

ação => Teleportar um item/player para uma nova posição

exemplo1:

-- Teleportar o player para a posição q o item foi usado.

doTeleportThing(cid,topos)

exemplo2:

-- Teleportar player

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

if item2.itemid == 0 then

doPlayerSendCancel(cid,"Sorry, not possible.")

else

if getPlayerAccess(cid) == 3 then

playerpos = getPlayerPosition(cid)

doTeleportThing(cid,topos)

doSendMagicEffect(playerpos,2)

doSendMagicEffect(topos,10)

else

doPlayerSendCancel(cid,"You are not allowed to use this rune.")

end

end

return 1

end

 

doTransformItem

sintaxe => doTransformItem(uid,toitemid)

ação => Transformar um item em outro

exemplo1:

-- Trasformar o item usado no item 2400.

doTransformItem(item.uid,2400)

exemplo2:

-- Ex. alavanca

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

if item.itemid == 1946 then

doTransformItem(item.uid,item.itemid-1)

elseif item.itemid == 1945 then

doTransformItem(item.uid,item.itemid+1)

end

return 1

end

 

getPlayerAccess

sintaxe => getPlayerAccess(uid)

ação => Pegar o Access do Player.

exemplo1:

-- Pegar o nível de aceso do player.

getPlayerAccess(cid)

exemplo2:

-- Apenas players de access 1 ou + podem usar o item

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

if getPlayerAccess(cid) >= 1 then

doTransformItem(item.uid,2400)

else

doPlayerSendCancel(cid,"Sorry, not possible.")

end

return 1

end

 

getPlayerFood

sintaxe => getPlayerFood(uid)

ação => Pega o status da food do player

exemplo:

-- Pegar o status da food do player

getPlayerFood(cid)

 

getPlayerGuildId

sintaxe => getPlayerGuildId(uid)

ação => Pega o id da guild do player.

exemplo:

-- Pegar o id da quild do player

getPlayerGuildId(cid)

 

getPlayerHealth

sintaxe => getPlayerHealth(uid)

ação => Pegar a quantidade de life do player.

exemplo:

-- Pega o life do player para alguma ação(se a vida for maior ou igual a 500, no caso abaixo)

if getPlayerHealth(cid) >= 500 then

 

getPlayerLevel

sintaxe => getPlayerLevel(uid)

ação => Pega o level do player

exemplo:

-- Pegar o level do player para acontecer algo se o lvl for maior q 30.

if getPlayerLevel(cid) >= 30 then

 

getPlayerMagLevel

sintaxe => getPlayerMagLevel(uid)

ação => Pega o ML do Player

exemplo:

-- Pegar o ml do player.

getPlayerMagLevel(cid)

 

getPlayerMana

sintaxe => getPlayerMana(uid)

ação => Pega a mana atual do player(não a completa)

exemplo:

-- Pegar o valor atual da mana.

getPlayerMana(cid)

 

getPlayerMasterPos

sintaxe => getPlayerMasterPos(uid)

ação => Pegar a MasterPos do player (posição do templo)

exemplo:

-- Pegar a MasterPos do Player.

getPlayerMasterPos(cid)

 

getPlayerName

sintaxe => getPlayerName(uid)

ação => Pega o nome do Player

exemplo:

-- Pegar o nome do Player.

getPlayerName(cid)

 

getPlayerPosition

sintaxe => getPlayerPosition(uid)

ação => Pega posição atual do Player

exemplo:

-- Pegar a posição atual do Player.

getPlayerPosition(cid)

 

getPlayerSkill

sintaxe => getPlayerSkill(uid,skillid)

ação => Pega o skill atual do Player

lista:

0, Fist

1, Club

2, Sword

3, Axe

4, Distance

5, Shielding

6, Fishing

exemplo:

-- Pegar o skill de fist do Player.

getPlayerSkill(cid,0)

 

getPlayerStorageValue

sintaxe => getPlayerStorageValue(uid,valueid)

ação => Pegar o "Storage Value" do player(usado em quests, vide exemplo)

exemplo1:

-- Obter a informçao da quest 5000.

getPlayerStorageValue(cid,5000)

exemplo2:

-- Exemplo do getPlayerStorageValue() (num baú de quest).

if item.uid == 5002 then

queststatus = getPlayerStorageValue(cid,5000)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found a magic sword.")

doPlayerAddItem(cid,2400,1)

setPlayerStorageValue(cid,5000,1)

else

doPlayerSendTextMessage(cid,22,"The chest is empty.")

end

end

 

setPlayerStorageValue

sintaxe => setPlayerStorageValue(uid,valueid, newvalue)

ação => Atualizar o numero do Storage Value

exemplo1:

-- Mudar o StorageValue da quest n° 5000 para 1.

setPlayerStorageValue(cid,5000,1)

exemplo2:

-- Exemplo do setPlayerStorageValue() em um baú de quest

if item.uid == 5002 then

queststatus = getPlayerStorageValue(cid,5000)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found a magic sword.")

doPlayerAddItem(cid,2400,1)

setPlayerStorageValue(cid,5000,1)

else

doPlayerSendTextMessage(cid,22,"The chest is empty.")

end

end

 

getPlayerVocation

sintaxe => getPlayerVocation(uid)

ação => Pega a Vocação do Player

exemplo:

-- Obter a Vocação do Player.

getPlayerVocation(cid)

 

getThingfromPos

sintaxe => getThingfromPos(pos)

ação => Seleciona um item que está na posição especificada

exemplo1:

-- Adquirir informações da posiçao.

geti = getThingfromPos(topos)

exemplo2:

-- Checar se o uniqueID do item q esta na posição e 5000.

if geti.uid == 5000 then

code

end

 

 

getTilePzInfo

sintaxe => getTilePzInfo(pos)

ação => Retorna 1 se o tile for PZ e 0 se não for PZ

PZ => Protection zone (templos, dps, houses)

exemplo1:

-- Checar se o Tile e pz.

getTilePzInfo(topos)

exemplo2:

-- Exemplo do getTilePzInfo() num simples script de remoçao

-- A action funciona só se o player estiver fora d um pz

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

if getPlayerMagLevel(cid) >= 4 then

ipos = {x=topos.x, y=topos.y, z=topos.z, stackpos=255}

geti = getThingfromPos(ipos)

if geti.itemid > 0 then

if getTilePzInfo(topos) == 0 then

doSendMagicEffect(topos,2)

doRemoveItem(geti.uid,100)

if item.type > 1 then

doChangeTypeItem(item.uid,item.type-1)

else

doRemoveItem(item.uid,1)

end

else

doSendMagicEffect(frompos,2)

doPlayerSendCancel(cid,"This action is not allowed in protection zone.")

end

else

doSendMagicEffect(frompos,2)

return 0

end

else

doSendMagicEffect(frompos,2)

doPlayerSendCancel(cid,"You don't have the required magic level to use that rune.")

end

return 1

end

 

Como colocar texto em um livro

arquivo.lua

 

QUOTE

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

 

doSetItemText(item.uid,"Texto do livro!")

doShowTextWindow(item.uid,100,0)

-- Qualquer dúvida procure pelas respectivas funções

 

return 1

end

 

Obrigado...

 

Comentem =P

 

OBS: Eu sei que tem alguns tutoriais de actions mais esse está mais "completo", eu acho.

 

Creditos: frerety

 

EDITED:

 

A pedidos do Xplosion:

 

setGlobalStorageValue

sintaxe => setGlobalStorageValue(valueid, newvalue)

ação => Muda um value-id para outro.

Exemplo1:

-- Troca o value-id.

setGlobalStorageValue(2424, 2425)

Exemplo2:

-- Exemplo do getGlobalStorageValue numa simples quest.

QUOTE

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

 

if item.uid == 2425 then

queststatus = getGlobalStorageValue(cid,2425)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"You have found an Helmet Of The Deep.")

doPlayerAddItem(cid,5461,1)

setGlobalStorageValue(2424, 2425)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

else

return 0

end

return 1

end

Compartilhar este post


Link para o post
Compartilhar em outros sites
Magus    2
Magus

Muito bem explicado, com várias das funções disponíveis, vai ajudar bastante mesmo. ^^

 

Aprovado e pendurado na seção.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dark    3
Dark

Muito bom....

 

Otimo tutorial, você está de parabens

 

So uma sugestão tongue.gif seria interessante (se você souber) colocar como utiliza a função return (que aparece geralmente no final dos scripts )

 

T+

 

 

DarKKK

Compartilhar este post


Link para o post
Compartilhar em outros sites
Velho Doidao    2
Velho Doidao

Omg Belo Tutorial,Bem Organizado

Um dos melhores Tutoriais de Scripts com certeza

Tutorial perfeito pra quem quer aprender Script

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tonninho    0
Tonninho

@LaB OrA

Nao existe uma funçao para checar se o player esta com batle?

e tambem outra sei la pra checar se ele tem frags

Compartilhar este post


Link para o post
Compartilhar em outros sites
Duduzz    0
Duduzz

O tutorial está completo e bem feito, sendo essa as funções básicas de construção de uma action, Parabéns![/i]

Compartilhar este post


Link para o post
Compartilhar em outros sites
LaB OrA    0
LaB OrA
@LaB OrA

Nao existe uma funçao para checar se o player esta com batle?

e tambem outra sei la pra checar se ele tem frags[/b]

 

Rapaz, eu num encontrei nao, mais tem outras funçoes parecidas:

 

getPlayerSkull(cid)

ver o player ta pk.

 

getTilePzInfo(pos) 1 is pz. 0 no pz.

ver se o player esta em protection zone

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Darkmale    0
Darkmale

CAramba muito dez XD hehe tava presizando disso meu vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites
Hug    0
Hug

Mto rox esse tutorial ...

organização 100%

xD, parabéns

Compartilhar este post


Link para o post
Compartilhar em outros sites
DuDz    0
DuDz

Aí, filho.

 

Nem copiar tu sabe direito, né?

E, por sinal, nem de scripts você sabe direito.

 

Falando nisso, getTilePzInfo(pos) não é pra ver se o player tá em protection zone, e sim pra ver se a posição demoninada no parâmetro é protection zone. Just a little mistake!

 

A, e pode deixar que já falei com outros Moderadores sobre o ripping... :]

 

Abraços,

 

//DuD

Compartilhar este post


Link para o post
Compartilhar em outros sites
Pedroddcunha    3
Pedroddcunha

Da próxima vez que for copiar outro tutorial

Não coloque os créditos com letra minúscula, beleza?

Compartilhar este post


Link para o post
Compartilhar em outros sites
LaB OrA    0
LaB OrA
A, e pode deixar que já falei com outros Moderadores sobre o ripping... :][/b]

 

@DuDz

 

Eu botei os creditos sabia? ¬¬

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gargula Mestre    0
Gargula Mestre

muito loko, vc tem razao o outros nao estavam tao completos.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dojan    0
Dojan

Loko..

Bom saber tudo detalhadamente smile.gif

 

Valeu ae Lab Ora por repassar pra gente.

 

Ta otimo o tuto frerety wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites
XplosioN    0
XplosioN
setGlobalStorageValue[/b]

 

 

Add plxxxxx

Compartilhar este post


Link para o post
Compartilhar em outros sites
Dreus Exozol    0
Dreus Exozol

nossa...

vlw ae...

n sabia nada de actions...

vlw msm mano

Compartilhar este post


Link para o post
Compartilhar em outros sites
Jovial    2
Jovial

Mando bem =DD mas vc so pos umas 30~40 falta umas 150 o.0 ehauehauheuaheu

Compartilhar este post


Link para o post
Compartilhar em outros sites
Darth Sidious    0
Darth Sidious

Merecedor de fixo otimo topico meus parabéns amigo.

Obrigado por postar wink.gif.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Ewerton Santos    0
Ewerton Santos

Particularmente, eu também não sabia nada de action! biggrin.gif

 

Muito obrigado emo! ops... quero dizer LaB OrA

Tava precisando muito de um tutorial!

 

TiO~ NiT~

Compartilhar este post


Link para o post
Compartilhar em outros sites
XplosioN    0
XplosioN

Lah vo eu enxe de novo

 

 

me explica os Events

 

 

plzxzxzxzxzxz

 

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×