Iniciantes
?Quer ser bom pratique!Quer ser muito bom? pratique muito!, use as areas sem exemplos para treinar e aprenda neste topico a criar funções!
Como eu sei oque é uma função?
sempre que você encontrar algo assim "blablabla()" isso é uma função
assim como "() =>" isso é uma função, assim como "function ()" isso é uma função,
dentro de uma função podemos passar instruções então abrimos chaves {} aqui no lua é o then.
Beleza agora que você sabe oque é uma função continue!
Sobre
Lista com quase todas as funções disponíveis.
você sera capaz de :
Ler pequenas instruções para funções.
Usar as instruções.
Usar um retorno de uma função
Introdução a ["get" function]
A baixo existe uma lista com a função e a sua explicação.
Essas funções devem sempre retornar a string ou o valor pedido.
getPlayerFood(cid)
Essa função vai verificar a quantos segundos o players esta com a propriedade em um food.
Ajude esse tópico a ficar 100% com um exemplo e treine suas habilidades.
getCreatureHealth(cid)
Essa função vai checkar a quantidade da vida da criatura.
Ajude esse tópico a ficar 100% com um exemplo e treine suas habilidades.
getPlayerMaxMana(cid)
Essa função vai retornar a quantidade maxima de mana
Ajude esse tópico a ficar 100% com um exemplo e treine suas habilidades.
getPlayerLevel(cid)
Essa função vai pegar o level atual de jogador
Ajude esse tópico a ficar 100% com um exemplo e treine suas habilidades.
getPlayerMagLevel(cid)
Essa função vai pegar o magic level atual de um jogador
Ajude esse tópico a ficar 100% com um exemplo e treine suas habilidades.
getPlayerName(cid)
Essa função pega o nome de um jogador
Ajude esse tópico a ficar 100% com um exemplo e treine suas habilidades.
getPlayerAccess(cid)
Essa função verifica o acesso de um jogador
Ajude esse tópico aoficar 100% com um exemplo e treine suas habilidades.
getPlayerPosition(cid)
Essa função verifica a posição de um player
Ela vai retornar um Array (Se você não sabe oque é um Array use o SLAD Search Like a Dev e abra o google)
Exemplo de retorno
{x = 127, y = 7, z = 9, stackpos = 1}
{x = 396, y = 582, z = 13, stackpos = 2} quando o player estiver em cima de um item stackpos = 2
Exemplo de uso
local playerPos = getPlayerPosition(cid)--Armazenando a função em uma variavel com a posição do jogador
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your current position is [X: "..playerPos.x.." | Y: "..playerPos.y.." | Z: "..playerPos.z.."].")
getPlayerSkill(cid, skillid)
Essa função vai verificar a skill de um jogador
Sendo esses os ids das skills que podem ser usados:
0 = Fist Fighting
1 = Club Fighting
2 = Sword Fighting
3 = Axe Fighting
4 = Distance Fighting
5 = Shielding
6 = Fishing
Exemplo de uso
if getPlayerSkill(cid, 2) >= 20 then -- Verificando se a skill Sword é maior que 20
doPlayerAddItem(cid, 2376, 1) -- Se sim adicionando uma Sword como recompensa
else --Se não você ainda não tem skill 20
doPlayerSendCancel(cid, "Sorry, your sword skill is not high enough.")
end
getPlayerTown(cid)
Essa função vai verificar a cidade atual de um jogador
Exemplo de uso
local playerPos = getCreaturePosition(cid) -- Ja aprendemos a utilizar se não se lembra para pegarmos a posição do jogador ali em cima
if getPlayerTown(cid) == 1 then -- Verificamos se a cidade atual do jogador é igual a 1
-- Se sim Verificando na posição do jogador uma string , e um numero que representa a textColor ou o seu nome de efeito TEXTCOLOR_GOLD
doSendAnimatedText(playerPos, 'I am leaving in town with id: 1 (Main City)! :)', TEXTCOLOR_GOLD)
elseif getPlayerTown(cid) == 2 then -- Verificando se a cidade atual é igual a 2
doSendAnimatedText(playerPos, 'I am leaving in town with id: 2 (Desert City)! :)', TEXTCOLOR_GOLD)
end
getPlayerVocation(cid)
Essa função retorna o id da vocação
Exemplos de uso
local playerVoc = getPlayerVocation(cid) -- colocando a função em uma variavel
if playerVoc == 1 or playerVoc == 5 then --Se a vocação é Sorcerer ou Master Sorcerer then weapon = Wand
weapon == 2190 --Wand of vortex
elseif playerVoc == 2 or playerVoc == 6 then --Se a vocação é == Druid ou Elder Druid then weapon = Rod
weapon == 2182 --Snakebite Rod
elseif playerVoc == 3 or playerVoc == 7 then --Se a vocação é == Paladin ou Royal Paladin then weapon = Spear
weapon == 2389 --Spear
elseif playerVoc == 4 or playerVoc == 8 then --Se a vocação é == Knight ou Elite Knight then weapon = Sword
weapon == 2412 --Katana
end
doPlayerAddItem(cid, weapon, 1) -- usando a storage do weapon para retornar a arma a ser adicionada
getPlayerItemCount(cid,itemid)
Essa função vai verificar quantos item == itemid o jogador possui no momento
Exemplos de uso
local crystalCoins = getPlayerItemCount(cid, 2160) -- Declarada a variavel crystalCoins que vai verificar se o jogador possui o id 2160
local platinumCoins = getPlayerItemCount(cid, 2152) -- Declarada a variavel pplatinumCoins que vai verificar se o jogador possui o id 2152
local goldCoins = getPlayerItemCount(cid, 2148) -- O mesmo para o gold coin
-- agora criamos uma variavel money que é igual rystalCoins * 10000 + platinumCoins * 100 + goldCoins
money = crystalCoins * 10000 + platinumCoins * 100 + goldCoins
-- então imprimimos para o jogador usando cid, msg
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Your money: " ..money.. "gp")
getPlayerFreeCap(cid)
-- Essa função verifica quanto de cap disponivel o jogador ainda tem
Exemplo de uso
local playerCap = getPlayerFreeCap(cid) -- armazenando a função que verifica o cap na variavel playerCap
local item = 2393 --Giant Sword
local itemweight = getItemWeight(item, 1) -- nova função usada para pegar o peso do item
if playerCap >= itemweight then -- verificando se o cap é maior que o pseo do item
-- caso seja adiciona o item e manda uma mensagem
doPlayerSendTextMessage(cid,22,'You have found a giant sword.')
doPlayerAddItem(cid,item,1)
else -- senão não possui cap
doPlayerSendTextMessage(cid, 22, 'You have found a ' .. item .. 'weighing ' ..itemweight.. ' oz it\'s too heavy.')
getPlayerLight(cid)
Retorna a luz atual de um jogador
Exemplo
215 - Depois de usar a spell "utevo gran lux"
getPlayerSlotItem(cid, slot)
Essa função verifica qual item o jogador esta equipado os slots que podem ser verificados são
1 = helmet
2 = necklace slot
3 = backpack, bag
4 = armor
5 = left hand
6 = right hand
7 = legs
8 = boots
9 = ring slot
10 = ammo slot
Essa função tambem retorna uma Array de um slot
Por exemplo:
{itemid = 2493, uid = 70001, actionid = 0} (demon helmet, slot = 1)
Exemplo de uso
-- Aqui passamos o paremetro do slot e verifica com o itemid que desejar
if getPlayerSlotItem(cid, 2) == 2173 then -- Verificando se tem aol
doPlayerSendTextMessage(cid,22,'Ok, you can go.')
else
doPlayerSendTextMessage(cid,22,'Sorry, you need amulet of loss to go.')
doTeleportThing(cid, fromPosition, TRUE)
end
getPlayerDepotItems(cid, depotid)
Essa função vai verificar quanto slots e item e a sua quantidade o jogador tem no depot
(slots reserved, becouse 10cc = 1 slot) xx player tem no depot
exemplo de retorno
7 - quando ojogado
- sword
- rope
- 100 uh
- parcel (inside: 10 crystal coins + label)
- depot chest (standard, all players have it)
Exemplo de uso
depotItems = getPlayerDepotItems(cid, 3) -- Verificando o depot na cidade 3
if depotItems < 2 then --quando o depot conter menos que 2 items então
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Your depot contains 1 item.")
else --se não o deposit contem a quantidade de item retornada
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Your depot contains " ..depotItems.. " items.")
end
getPlayerSex(cid)
Essa função retorna o sexo de um jogador
Retorno
0 - female
1 - male
Exemplo de uso
i f getPlayerSex(cid) == 0 then --female
doSendAnimatedText(playerPos, 'GiRl :*:*', TEXTCOLOR_GOLD)
elseif getPlayerSex(cid) == 1 then --male
doSendAnimatedText(playerPos, 'Wtf? I aM BoY.', TEXTCOLOR_GOLD)
else -- Caso não tenha sexo
doSendAnimatedText(playerPos, 'Wtf? I aM BoY.', TEXTCOLOR_GOLD)
end
getPlayerLookDir(cid)
Esta função retorna a direção que o jogador esta olhando
Retorno
0 - jogador esta olhando (north) (/\)
1 - jogador esta olhando (east) (>)
2 - jogador esta olhando (south) (\/)
3 - jogador esta olhando (<)
Exemplo de uso
local direction = getPlayerLookDir(cid) -- armazenando a direção que o player esta olhando na variavel direction
if direction = 0 then --quando for north
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You are looking to north")
elseif direction = 1 then --quando for east
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You are looking to east")
elseif direction = 2 then --quando for south
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You are looking to south")
else --quando for west
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You are looking to west")
end
getPlayerGUID(cid)
Essa função deve retornar o id de um jogador
Retorno
Player.id de uma chamada de retorno then return = -1
Exemplo DE USO
- Imprimito o texto no channel default com uma 'string retornando o id do jogador com a função getPlayerGUID()'
doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You are player with id: "..getPlayerGUID(cid))
getPlayerFlagValue(cid, flag)
Para saber quais flags existem procure src/const.h
Essa função retorna o valor de uma flag 1 quando verdadeiro 0 quando false (evento)
Exemplo de uso
-- Setando a variavel flagValue com a função getPlayerFlagValue(cid, id da flag)
flagValue = getPlayerFlagValue(cid, 32) -- flag 32 = "Pode sumonar todos os mosntros"
if flagValue = 1 then --se flag = 1 ou seja se pode sumonar. se for igual a 32
doSummonCreature("Demon", fromPosition.x + 1) -- Sumonar demon 32 = true
else -- senão ou seja, se flag 32 = false
doSummonCreature("Rat", fromPosition.x + 1) -- sumon rat 32 = false
end
getPlayerGroupId(cid)
Essa função vai checar o group-id do jogador
Exemplo de uso
local group = getPlayerGroupId(cid) -- armazenando a função que capturar o groupid na variavel group
if group == 3 --se for God só Exemplo
doPlayerAddItem(cid,2160,100) --usando a função doPlayerAddItem para adicionar 100 crystal coins
elseif group == 2 --se For Gamemaster só Exemplo
doPlayerAddItem(cid,2160,50) --usando a função doPlayerAddItem para adicionar 50 crystal coins
else -- senão chora nb
doPlayerSendCancel(cid, "Sorry, cheats doesnt work for you."
end
getPlayerGuildId(cid)
Essa função vai verificar o id da guild do jogador
Exemplo de uso
-- Armazenando a função que capturar o id da guild do jogador na varial guildId
local guildId = getPlayerGuildId(cid)
if guildId == 21 then -- se o jogador possuir 21 então
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"Welcome in!") -- 21 = true
elseif guildId == 22 then -- se for diferente de 21 então
doPlayerSendCancel(cid,"This area is not for your guild") -- 21 != true
end
getPlayerGuildName(cid)
Essa função vai verificar o nome da guild de um jogador
Exemplo de uso
-- Armazenando a função que captura o nome da guild do jogador na variavel guildName
local guildName = getPlayerGuildName(cid)
-- mandando um animação de texto na posição atuao da criatura (cid = creatureID), concatenando com guildName ou seja a função da primeira linha e a cor gold
doSendAnimatedText(getCreaturePosition(cid),guildName, TEXTCOLOR_GOLD)
getPlayerGuildRank(cid)
Essa função verifica o cargo que o jogador possui na guildName
Exemplo de uso
-- Armazenando a função que captura o cargo de um jogador da guild que ele possui
local rank = getPlayerGuildRank(cid)
-- inviando uma text message par ao jogador informando ele o rank na guild usando a concatenação .. variavel ..
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR,"You're a " .. rank .. " in your guild.")