Olá galera sou novo aqui no xtibia para começar vou colocar aqui algumas actions ! Andei pesquisando para colocar aqui. De preferencia as mais usadas entao ta ai !!!
O que significam as funções?
OBS: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)
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,editave l) ---- 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
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
Entao é isso galera ! Faz bom proveito e ate mais !