Ir para conteúdo
  • Cadastre-se

Posts Recomendados

  • Underewar mudou o título para [Linguagem Lua] Get Functions
  • Underewar mudou o título para Tutorial Iniciantes [Linguagem Lua] Get Functions

Gostei da mecanica do topico kkkk

food = getPlayerFood(cid)
if getPlayerFood(cid) == 100 then
doPlayerSendMsgText('You are full')
else 
return false
end

 

Editado por Startson (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 17/12/2021 em 10:09, HomeJobs disse:


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 :

  1. Ler pequenas instruções para funções.
  2. Usar as instruções.
  3. 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.")

Obrigado pela explicação, estava atrás desse "tutorial" a tempos

 

Link para o post
Compartilhar em outros sites
  • Moderador
54 minutos atrás, Denker disse:

Obrigado pela explicação, estava atrás desse "tutorial" a tempos

 

Estou preparando os proximos, vamos la galera, bora desenvolver!

#VQV

Participe da organização Open-Tibia.
Meus Perfils pessoais

Linkedin Rafhael Oliveira Tryber | XP Inc Github Rafhael Oliveira Tryber | XP Inc

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo