Jump to content

Recommended Posts

Gostaria de quem tiver essa storage: 30023, não poder usar esse item.

 

e no max lvl 50.

 

Script:

Spoiler

function onUse(cid, item, frompos, item2, topos)
local v = 388

if getPlayerVocation(cid) == v then
    return doPlayerSendCancel(cid, "Você não pode fazer isso pois já tem essa vocação.") and true
end

    doRemoveItem(item.uid, 1)
    doPlayerSetVocation(cid, v)
    doSendMagicEffect(getThingPos(cid), 14)
    doPlayerSendTextMessage(cid, 20, "Você percente á vocação ["..getPlayerVocationName(cid).."]. Relogue para que as alterações sejam feitas.")
    return true
end

 

@Endless @Dwarfer @Naze

Link to post
Share on other sites

10 horas atrás, isac001 disse:

Gostaria de quem tiver essa storage: 30023, não poder usar esse item.

 

e no max lvl 50.

 

Script:

  Mostrar conteúdo oculto

function onUse(cid, item, frompos, item2, topos)
local v = 388

if getPlayerVocation(cid) == v then
    return doPlayerSendCancel(cid, "Você não pode fazer isso pois já tem essa vocação.") and true
end

    doRemoveItem(item.uid, 1)
    doPlayerSetVocation(cid, v)
    doSendMagicEffect(getThingPos(cid), 14)
    doPlayerSendTextMessage(cid, 20, "Você percente á vocação ["..getPlayerVocationName(cid).."]. Relogue para que as alterações sejam feitas.")
    return true
end

 

@Endless @Dwarfer @Naze


Salve mano, experimenta entrar no discord da Academia de Programação do próprio Tibiaking, lá você talvez consiga ter 1 contato/suporte melhor da comunidade.
Link: https://discord.gg/sH54JnMJKt

Quem eu sou?
Meu nome é Waliston, mais conhecido como Endless, estudante de Análise e Desenvolvimento de Sistemas, e desenvolvedor da Falcon Games. Atuo no Ramo de OtServer desde 2017, porém desde 2019 venho me especializando em Desenvolvimento Web e Segurança Web..

Meus Projetos:

Falcon Games

Meu Github:

https://github.com/WalistonBelles

Meu Discord:
Endless#5410

Minhas Contribuições atualmente pra Comunidade:

[SHOWOFF] OTClient Showoff Módules
[DESIGN]
 3 FREE Game Ui Design

[TUTORIAL] Instalando MyAAC em sua máquina

[TUTORIAL] Restringindo a Listagem de Diretórios(URL) do Servidor Apache
[SISTEMA] Plugin MyAAC Listagem de Items automática
[SISTEMA] Gerador de Outfits Automática para o Site

[SISTEMA] Sistema de Troca de Vocação para MyAAC
[SISTEMA] Plugin MyAAC Auction System
[SISTEMA] Sistema de Exibir Monstros por Level


Algum trabalho meu te ajudou? Quer apoiar meu trabalho? Faça uma doação!!
Picpay: @walistonbelles
Paypal: suporte.falcongames@gmail.com

Link to post
Share on other sites

local vocation = 233
local STORAGE = 30023
local Level = 50
local msg = 'Voce já ultilizou esse item'

function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, STORAGE) == 1 and getPlayerLevel(cid) >= Level then
    return doPlayerSendCancel(cid, msg)
end
    doRemoveItem(item.uid, 1)
    doPlayerSetVocation(cid, vocation)
    doSendMagicEffect(getThingPos(cid), 14)
    doPlayerSendTextMessage(cid, 20, "Você percente á vocação ["..getPlayerVocationName(cid).."]. Relogue para que as alterações sejam feitas.")
    return true
end

@isac001

Edited by ZoR (see edit history)
O rei de seu proprio destino é aquele que luta pela gloria do amanhã!
Discord : ZoR#9373


 

Link to post
Share on other sites

19 minutos atrás, ZoR disse:

local vocation = 233
local STORAGE = 30023
local Level = 50
local msg = 'Voce já ultilizou esse item'

function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, STORAGE) == 1 and getPlayerLevel(cid) >= Level then
    return doPlayerSendCancel(cid, msg)
end
    doRemoveItem(item.uid, 1)
    doPlayerSetVocation(cid, vocation)
    doSendMagicEffect(getThingPos(cid), 14)
    doPlayerSendTextMessage(cid, 20, "Você percente á vocação ["..getPlayerVocationName(cid).."]. Relogue para que as alterações sejam feitas.")
    return true
end

@isac001

Ainda posso usar mesmo acima do lvl 50+ e com a storage

 

Link to post
Share on other sites

8 minutos atrás, isac001 disse:

Ainda posso usar mesmo acima do lvl 50+ e com a storage

 


Isso se da, porque o menino mandou a script com a condição de precisar ambas condições serem verdadeiras. Basta trocar o AND pelo OR ficando assim:

local vocation = 233
local STORAGE = 30023
local Level = 50
local msg = 'Voce já ultilizou esse item'

function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, STORAGE) == 1 OR getPlayerLevel(cid) >= Level then
    return doPlayerSendCancel(cid, msg)
end
    doRemoveItem(item.uid, 1)
    doPlayerSetVocation(cid, vocation)
    doSendMagicEffect(getThingPos(cid), 14)
    doPlayerSendTextMessage(cid, 20, "Você percente á vocação ["..getPlayerVocationName(cid).."]. Relogue para que as alterações sejam feitas.")
    return true
end
Edited by Endless
Correção (see edit history)

Quem eu sou?
Meu nome é Waliston, mais conhecido como Endless, estudante de Análise e Desenvolvimento de Sistemas, e desenvolvedor da Falcon Games. Atuo no Ramo de OtServer desde 2017, porém desde 2019 venho me especializando em Desenvolvimento Web e Segurança Web..

Meus Projetos:

Falcon Games

Meu Github:

https://github.com/WalistonBelles

Meu Discord:
Endless#5410

Minhas Contribuições atualmente pra Comunidade:

[SHOWOFF] OTClient Showoff Módules
[DESIGN]
 3 FREE Game Ui Design

[TUTORIAL] Instalando MyAAC em sua máquina

[TUTORIAL] Restringindo a Listagem de Diretórios(URL) do Servidor Apache
[SISTEMA] Plugin MyAAC Listagem de Items automática
[SISTEMA] Gerador de Outfits Automática para o Site

[SISTEMA] Sistema de Troca de Vocação para MyAAC
[SISTEMA] Plugin MyAAC Auction System
[SISTEMA] Sistema de Exibir Monstros por Level


Algum trabalho meu te ajudou? Quer apoiar meu trabalho? Faça uma doação!!
Picpay: @walistonbelles
Paypal: suporte.falcongames@gmail.com

Link to post
Share on other sites

se você passar por "or" simplesmente se ele tiver level abaixo quanto ele não tiver a storage irá passar @Endless

 

local vocation = 233
local STORAGE = 30023
local Level = 50
local msg = 'Voce já ultilizou esse item'

function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, STORAGE) == 1 and getPlayerLevel(cid) <= Level then
    doPlayerSendTextMessage(cid, 21, msg)
  else
    doRemoveItem(item.uid, 1)
    doPlayerSetVocation(cid, vocation)
    doSendMagicEffect(getThingPos(cid), 14)
    doPlayerSendTextMessage(cid, 20, "Você percente á vocação ["..getPlayerVocationName(cid).."]. Relogue para que as alterações sejam feitas.")
    return true
end

@isac001 testa agora

Edited by ZoR (see edit history)
O rei de seu proprio destino é aquele que luta pela gloria do amanhã!
Discord : ZoR#9373


 

Link to post
Share on other sites

3 minutos atrás, ZoR disse:

se você passar por OR qualquer tanto se estiver storage ele não ira checar, pq se ele tiver level abaixo ele vai passar, pq OR checa qual das ambas é verdadeira


Isso da pra contornar fazendo 1 else if:
 

local vocation = 233
local STORAGE = 30023
local Level = 50
local msg = 'Voce nao pode utilizar esse item'

function onUse(cid, item, frompos, item2, topos)
    if getPlayerLevel(cid) >= Level then
        return doPlayerSendCancel(cid, msg)
    else if getPlayerStorageValue(cid, STORAGE) == 1
        return doPlayerSendCancel(cid, msg)
    else
        doRemoveItem(item.uid, 1)
        doPlayerSetVocation(cid, vocation)
        doSendMagicEffect(getThingPos(cid), 14)
        doPlayerSendTextMessage(cid, 20, "Você percente á vocação ["..getPlayerVocationName(cid).."]. Relogue para que as alterações sejam feitas.")
        return true
    end
end


Da forma que você havia deixado, ele só vai retornar quando as 2 condições forem verdadeiras, no caso: Ele iria precisar possuir a storage e ser maior que 50, se ele não tiver a storage mas for maior que 50 ele usaria também, da mesma forma que se ele for 50- e tiver a storage tambem iria poder usar.

Quem eu sou?
Meu nome é Waliston, mais conhecido como Endless, estudante de Análise e Desenvolvimento de Sistemas, e desenvolvedor da Falcon Games. Atuo no Ramo de OtServer desde 2017, porém desde 2019 venho me especializando em Desenvolvimento Web e Segurança Web..

Meus Projetos:

Falcon Games

Meu Github:

https://github.com/WalistonBelles

Meu Discord:
Endless#5410

Minhas Contribuições atualmente pra Comunidade:

[SHOWOFF] OTClient Showoff Módules
[DESIGN]
 3 FREE Game Ui Design

[TUTORIAL] Instalando MyAAC em sua máquina

[TUTORIAL] Restringindo a Listagem de Diretórios(URL) do Servidor Apache
[SISTEMA] Plugin MyAAC Listagem de Items automática
[SISTEMA] Gerador de Outfits Automática para o Site

[SISTEMA] Sistema de Troca de Vocação para MyAAC
[SISTEMA] Plugin MyAAC Auction System
[SISTEMA] Sistema de Exibir Monstros por Level


Algum trabalho meu te ajudou? Quer apoiar meu trabalho? Faça uma doação!!
Picpay: @walistonbelles
Paypal: suporte.falcongames@gmail.com

Link to post
Share on other sites

@Endless eu apenas retirei o return e passei um else
você não precisa retornar doPlayerSendCancel(), tem a função que passa uma msg tbm que é doPlayerSendTextMessage(cid, MessageClasses, message)

O rei de seu proprio destino é aquele que luta pela gloria do amanhã!
Discord : ZoR#9373


 

Link to post
Share on other sites

3 minutos atrás, ZoR disse:

@Endless eu apenas retirei o return e passei um else
você não precisa retornar doPlayerSendCancel(), tem a função que passa uma msg tbm que é doPlayerSendTextMessage(cid, MessageClasses, message)


Eu utilizei a sua função como base meu lindo.

image.thumb.png.6602e1aab80a9b4df2def45100355dd7.png

OBS: Eu não programo em lua, apenas estou corrigindo a lógica. Se você utilizar AND, ele só vai entrar nessa condição quando AMBAS situações forem verdadeiras. Logo quando só 1 for verdadeira ele vai deixar passar o que não pode acontecer. Por isso do 1° teste para checar se é level 50+, se for ja informa que não pode usar e cancela, se não for então testa se já possui a storage, se possui então informa que não pode usar e cancela, se não possui então significa que ele está apto a usar o item.
 

Quem eu sou?
Meu nome é Waliston, mais conhecido como Endless, estudante de Análise e Desenvolvimento de Sistemas, e desenvolvedor da Falcon Games. Atuo no Ramo de OtServer desde 2017, porém desde 2019 venho me especializando em Desenvolvimento Web e Segurança Web..

Meus Projetos:

Falcon Games

Meu Github:

https://github.com/WalistonBelles

Meu Discord:
Endless#5410

Minhas Contribuições atualmente pra Comunidade:

[SHOWOFF] OTClient Showoff Módules
[DESIGN]
 3 FREE Game Ui Design

[TUTORIAL] Instalando MyAAC em sua máquina

[TUTORIAL] Restringindo a Listagem de Diretórios(URL) do Servidor Apache
[SISTEMA] Plugin MyAAC Listagem de Items automática
[SISTEMA] Gerador de Outfits Automática para o Site

[SISTEMA] Sistema de Troca de Vocação para MyAAC
[SISTEMA] Plugin MyAAC Auction System
[SISTEMA] Sistema de Exibir Monstros por Level


Algum trabalho meu te ajudou? Quer apoiar meu trabalho? Faça uma doação!!
Picpay: @walistonbelles
Paypal: suporte.falcongames@gmail.com

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By GniusPlay
      Pessoal, preciso de uma script que ao player usar o item na pokeball do pokemon, ele ganhe +100 de vida
      Exemplo:
      Ele tem 1400 de vida, ai ao usar o item ele ficaria com 1500
       
    • By Nother
      Olá, gostaria de uma speel em área que puxasse o agro dos bixos para que eles parassem de focar outra pessoa e focassem quem agrou eles.
      A spell pode ser um quadrado de 4 sqm de distancia para todos os lados.
      Desde já agradeço
       
    • By Kanoshi
      Ent to tentando fazer com que o npc feche o shop assim que o player der bye porém ele continua com o shop aberto.
       
      Rep a quem ajudar!
    • By xBlackWolf
      .Qual servidor ou website você utiliza como base? 
      OTG 
       
      Qual o motivo deste tópico? 
      Estou tentando repassar para linguagem do OTG e não funciona o script, também não dá erros.
       
      Você tem o código disponível? Se tiver publique-o aqui: 
       function addOnlineBonus(player, minutos, bonus_contador, bonus_max) player:setStorageValue(bonus_contador, player:getStorageValue(bonus_contador) + 1) addEvent(addOnlineBonus, minutos * 60 * 1000, player, minutos, bonus_contador, bonus_max) end function MinutesToClock(minutes) local minutes = tonumber(minutes) if minutes <= 0 then return "00:00"; else if minutes >= 60 then hours = string.format("%02.f", math.floor(minutes/60)); mins = string.format("%02.f", math.floor(minutes - hours*60)); else hours = "00"; mins = minutes; end if hours ~= 1 then return hours.." Horas e "..mins.. " minutos." else return hours.." Hora e "..mins.. " minutos." end end end function showOnlineBonus(player,bonus_contador,minutos) local finaltime = 0 if(player:getStorageValue(bonus_contador) >= 60) then finaltime = MinutesToClock(player:getStorageValue(bonus_contador)) else finaltime = (player:getStorageValue(bonus_contador).." Minutos.") end player:SendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Voce esta Online a: " ..finaltime) addEvent(showOnlineBonus, minutos * 600 * 1000, player, bonus_contador, minutos) end function onLogin(player) player:registerEvent("onlinebonus") local bonus_contador = 72702 -- Storage que vai guardar tempo online em minutos. local bonus_max = 99999 -- Quantidade de minutos máximo por dia. local minutos = 1 -- A cada quanto tempo vamos ganhar pontos. if player:getStorageValue(bonus_contador) > 0 then player:SendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Tempo Online acumulado hoje: "..MinutesToClock(player:getStorageValue(cid,bonus_contador))) else player:setStorageValue(bonus_contador, 0) player:SendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE,"Fique Online e receba o TOP Online ! Alem de chances maiores na loteria ! Tenha um otimo jogo!") end addEvent(addOnlineBonus, minutos * 60 * 1000, player, minutos, bonus_contador, bonus_max) addEvent(showOnlineBonus, minutos * 600 * 1000, player, bonus_contador, minutos) return true end  
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
      Não tem print de erros, simplesmente o processo não inicia de contar os minutos disponíveis... também não envia nada ao player.
       
      Segue script usado como base TFS 0.4 :
      function addOnlineBonus(cid, minutos, bonus_contador, bonus_max) if not isPlayer(cid) then return false end setPlayerStorageValue(cid, bonus_contador, getPlayerStorageValue(cid, bonus_contador) + 1) addEvent(addOnlineBonus, minutos * 60 * 1000, cid, minutos, bonus_contador, bonus_max) end function MinutesToClock(minutes) local minutes = tonumber(minutes) if minutes <= 0 then return "00:00"; else if minutes >= 60 then hours = string.format("%02.f", math.floor(minutes/60)); mins = string.format("%02.f", math.floor(minutes - hours*60)); else hours = "00"; mins = minutes; end if hours ~= 1 then return hours.." Horas e "..mins.. " minutos." else return hours.." Hora e "..mins.. " minutos." end end end function showOnlineBonus(cid,bonus_contador,minutos) local finaltime = 0 if not isPlayer(cid) then return false end if(getPlayerStorageValue(cid,bonus_contador) >= 60) then finaltime = MinutesToClock(getPlayerStorageValue(cid,bonus_contador)) else finaltime = (getPlayerStorageValue(cid,bonus_contador).." Minutos.") end doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Voce esta Online a: " ..finaltime) addEvent(showOnlineBonus, minutos * 600 * 1000, cid, bonus_contador, minutos) end function onLogin(cid) local bonus_contador = 72702 -- Storage que vai guardar tempo online em minutos. local bonus_max = 99999 -- Quantidade de minutos máximo por dia. local minutos = 1 -- A cada quanto tempo vamos ganhar pontos. if getPlayerStorageValue(cid, bonus_contador) > 0 then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Tempo Online acumulado hoje: "..MinutesToClock(getPlayerStorageValue(cid,bonus_contador))) else setPlayerStorageValue(cid, bonus_contador, 0) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"Fique Online e receba o TOP Online ! Alem de chances maiores na loteria ! Tenha um otimo jogo!") end addEvent(addOnlineBonus, minutos * 60 * 1000, cid, minutos, bonus_contador, bonus_max) addEvent(showOnlineBonus, minutos * 600 * 1000, cid, bonus_contador, minutos) return true end  
       
      Aguardo quem puder me ajudar rsrs
    • By ZeeroBR
      Não sei se é padrão do game ou coisa do tipo, mas os summons que eu spawno conseguem me atacar com spells em área, alguém sabe a solução? tentei utilizar um script mas não tive êxito. Utilizo tfs 0.4 rev 3884 8.60
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...

Important Information

Confirmação de Termo