Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

O script é perfeito já estava procurando a muito tempo, mas tem um probleminha, ele foi postado na versão de TFS 1.2 e o meu OTServer é um derivado 0.3.6. com isso fica dando alguns error's na distro impedindo o funcionamento do script se alguém puder me ajudar eu ficaria muito agradecido.


O primeiro erro é esse que ainda é quando tá carregando o servidor:

Spoiler

[03/04/2017 18:32:10] [Error - CreatureEvent::configureEvent] No valid type for creature event.ModalWindow
[03/04/2017 18:32:10] [Warning - BaseEvents::loadFromXml] Cannot configure an event

 

Já o segundo erro é quando eu uso o comando !luckycoins que é esse:

Spoiler

[03/04/2017 18:36:21] [Error - TalkAction Interface] 
[03/04/2017 18:36:21] data/talkactions/scripts/luckycoinstalk.lua:onSay
[03/04/2017 18:36:21] Description: 
[03/04/2017 18:36:21] data/talkactions/scripts/luckycoinstalk.lua:29: attempt to index local 'player' (a number value)
[03/04/2017 18:36:21] stack traceback:
[03/04/2017 18:36:21]     data/talkactions/scripts/luckycoinstalk.lua:29: in function <data/talkactions/scripts/luckycoinstalk.lua:28>

 

 

Sem falar também que quando eu mato algum bixo não diz que ganhei nenhum lucky coin acho que por causa desse primeiro erro o sistema não está funcionando direito.

Link para o post
Compartilhar em outros sites

Arquivo luckycoinstalk.lua editado dia 06/04/14 pra corrigir quando aparecia -1 na QTD para o caso de a storage estar zoada com um valor não positivo.

 

Apenas funciona em TFS's 1.x + essa função de modais, então não dá pra converter, só fazendo por talk completamente ou com shop por action mexendo na storage.

Life is so meaningless, there is nothing worth a smile
So goodbye, I'll miss you

 

 

sugestões?

 

 

Link para o post
Compartilhar em outros sites
17 horas atrás, rogaforyn2 disse:

Arquivo luckycoinstalk.lua editado dia 06/04/14 pra corrigir quando aparecia -1 na QTD para o caso de a storage estar zoada com um valor não positivo.

 

Apenas funciona em TFS's 1.x + essa função de modais, então não dá pra converter, só fazendo por talk completamente ou com shop por action mexendo na storage.

e como ficaria por talk completamente? sou leigo no assunto e preciso muito desse script :(

Link para o post
Compartilhar em outros sites
Em 16/03/2017 ás 21:51, rogaforyn2 disse:

Lucky Coins

 

Lucky Coins é um sistema para configurar determinados monstros ou todos os monstros do servidor para droparem Lucky Coins com uma determinada rate,

com elas é possível programar itens para serem comprados, visando itens vip, que com varias LCs é possível obter, ou qualquer tipo de item.

Não sei já tem algo parecido to nem aí tb

 

Configurações

- Mudança por variáveis em alguns textos.

- ID Modal configurável.

- Efeito ao ganhar a coin pode ser ativado e mudado.

- Itens e preços configuráveis.

- Pode substituir as rates com a sua ou não, sem mudar em todos monstros.

- Dá pra habilitar em todos os monstros e deixar alguns com rates diferentes.

- Boost 2x, 3x, 4x em tudo apenas com uma variável.

 

Instalação

 

creaturescripts.xml:


<event type="kill" name="LuckyPoints" script="luckypoints.lua"/>
<event type="ModalWindow" name="ModalWindow_LuckyCoins" script="modalluckycoins.lua"/>

talkactions.xml


<!-- lucky coins -->
	<talkaction words="!luckycoins" separator=" " script="luckycoinstalk.lua" />

 

creaturescripts/scripts/

luckypoints.lua

  Ocultar conteúdo


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script
local msg = "You have found a lucky coin, say !luckycoins for more info." --: Mensagem ao jogador quando recebe uma coin
local showqtd = 1 --: Mostrar QTD de coins na msg? 1-Sim, 0-Não
local qtdtext = "You have" --: Texto que mostra antes da qtd de lucky coins, ex: você pode trocar para 'voce tem'

--: VISUAL :--
local enableeffect = 1 --: Mostrar efeito ao pegar a coin(ajuda a visualizar melhor)? 1 - Sim, 0 - Não.
local effect = CONST_ME_FERUMBRAS --: Efeito para mostrar, só é usado se for habilitado

  --: RATES :--
  local boost = 1 --: Aumenta as chances de obter coins para todos os monstros. 1 = 1x, 2 = 2x etc...
  local anycreature = 0 --: Todas as criaturas podem dropar. 0 - Não, 1 - Sim.
  local anycrate = 200 --: Chance de dropar em qlqr criatura 200 = 0,005%
  local ignorecfg = 0 --: Ignorar as chances da configuração? 1=sim 0=não

  --: Nota: ignorecfg = 1 faz com que todas as chances passem a ser da anycrate, independente da cfg

  --: Altere os monstros, o nome e o a chance de obter a coin  :--
  local config = {
    -- Quanto maior for o valor, menores são as chances de conseguir a coin
    ["Demon"] = {chance = 600}, -- 600 significa a chance de um em 600
    ["Ferumbras"] = {chance = 30}, -- 30 significa a chance de uma em 30... etc
    ["Rat"] = {chance = 1}, -- 100% de chance
    ["Rotworm"] = {chance = 2}, -- 50% de chance
    ["Dog"] = {chance = 10} -- 10% de chance
  }

  function onKill(cid, target, lastHit)
    if (isPlayer(target)) then return true end
    local monster = getCreatureName(target)
    local rand
    local isnotinarray

    for index, arraymonster in ipairs(config) do
      if ((arraymonster ~= monster) and (anycreature == 0)) then return true elseif (anycreature == 1) then isnotinarray = true end
    end

    local storageatual = getPlayerStorageValue(cid, storage)
    local plural = "s"
    local qtd = ""

    if (isnotinarray == true) then rand = anycrate else rand = ((config[monster].chance) / boost) end
    if (ignorecfg == 1) then rand = anycrate end
    if (rand < 1) then rand = 1 end
    if (storageatual == 1) then	plural = ""	end
    if (showqtd == 1) then qtd = " " .. qtdtext .. " " .. storageatual + 1 .. " lucky coin" .. plural .. "." end

    if  (math.random(rand) == 1) then
      setPlayerStorageValue(cid, storage, storageatual + 1)
      doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, msg .. qtd)
      if (enableeffect == 1) then doSendMagicEffect(getPlayerPosition(cid), effect) end
    end

    return true
  end

 

 

modalluckycoins.lua

  Mostrar conteúdo oculto


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script, a mesma do creaturescript luckypoints.lua e do talk
local modalid = 1053 --: O mesmo valor que na luckycoinstalk


function onModalWindow(player, modalWindowId, buttonId, choiceId)
  player:unregisterEvent("ModalWindow_LuckyCoins")
  if modalWindowId == modalid then
    if buttonId == 100 and choiceId ~= nil and choiceId ~= 255 then
      local itemprice = (lucky_items[ordem[choiceId]].price)
      local pstorage = (player:getStorageValue(storage))
      local itemid = (ordem[choiceId])

      if ((pstorage) >= (itemprice)) then
        player:setStorageValue(storage, (pstorage - itemprice))
        player:addItem(itemid, 1)
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You bought a " .. (ItemType(itemid):getName()) .. " for " .. (itemprice) .. " coin(s)." )
      else
        player:sendCancelMessage('You dont have enough lucky coins.')
      end
    end
  end
end

 

 

talkactions/scripts/

luckycoinstalk.lua

  Mostrar conteúdo oculto


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script, a mesma do creaturescript luckypoints.lua
local msg = "Lucky Coins are used here to buy vip items by playing the game. You can buy it at our shop, tp at temple." --: Mensagem sobre o sistema
local msgtwo = "You can view your luckycoins by typing !luckycoins amount." --: Só mostra se não tiver o parametro
local msgbuy = "These are the items that you can buy: Soft Boots"
local modalid = 1053 --: O mesmo valor que na luckycoinstalk

--: AMOUNT  :--
local qtdtext = "You have" --: Texto que mostra antes da qtd de lucky coins, ex: você pode trocar para 'voce tem'

--: BUY  :--
local title = "Buy items with your lucky coins!" --: Titulo da tela
local message = "Click to buy a item!" --: Conteudo da msg, apos ela é mostrado o num de lucky coins

--: ITENS COMPRAVEIS :--
-- [ID DO ITEM] = {price = PREÇODOITEM},
lucky_items = {
  [6132] = {price = 1}, -- SOFT BOOTS
  [2514] = {price = 3}, -- MMS
  [2537] = {price = 5}, -- Amazon Shield
  [2499] = {price = 10}, -- Amazon Helmet
  [2500] = {price = 100} -- Amazon Armor
}
ordem = {}
--MAX de 254 itens


function onSay(player, words, param)
  local storageatual = player:getStorageValue(storage)
  local plural = "s"
  local qtd = ""

  if (storageatual < 0) then storageatual = 0	player:setStorageValue(storage, 0) end

  if (storageatual == 1) then	plural = ""	end
  qtd = " " .. qtdtext .. " " .. storageatual .. " lucky coin" .. plural .. "."
  if (param == "amount") then
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, qtd)

  elseif (param == "buy") then
    --if (onlypz == 1 and player:isPzLocked()) then player:sendCancelMessage('You are not in protection zone.') return false end adições futuras

    for k in pairs (ordem) do ordem [k] = nil end
    player:registerEvent("ModalWindow_LuckyCoins")

    local window = ModalWindow(modalid, title, message .. qtd)
    window:addButton(100, "Buy")
    window:addButton(101, "Cancel")

    for k in pairs(lucky_items) do
      table.insert(ordem, k)
    end
    table.sort(ordem)
    for i = 1, #ordem do
      local k, v = ordem[i], lucky_items[ ordem[i] ]
      window:addChoice(i, string.upper((ItemType(k):getName())) .. " - " .. lucky_items[k].price .. " " .. "lucky coin(s)")
    end

    window:setDefaultEnterButton(100)
    window:setDefaultEscapeButton(101)

    window:sendToPlayer(player)
  else
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg .. " " .. msgtwo)
  end
  return false
end

 

 

 

Screenshots

 

1.thumb.png.b8ebf1283d23f849cc95240f76cb668c.png2.png.0c8d1066c9c0db25f14f15f91ebd8095.png3.png.4f4634e5bba1fb051f55c41169b6ba5f.png

4.thumb.png.f79cf4818d1c33136eb245967310e1f2.png

 

Créditos

 

Eu

Cara eu te amo <3 , com toda certeza irei utilizar em meu servidor.

Eu estava atrás de alguma coisa parecida para dar chance aos que não podem comprar coins e isso vai ajudar muito. REP+

CONHEÇA MEU PROJETO:

WWW.ETERNUS-GLOBAL.COM

 

tibia-logo.gif

Link para o post
Compartilhar em outros sites

Arquivo luckypoints.lua atualizado dia 08/04/17 para correção de erros nas variáveis anycreature e ignorecfg, feedback do erro por @Semideus

Life is so meaningless, there is nothing worth a smile
So goodbye, I'll miss you

 

 

sugestões?

 

 

Link para o post
Compartilhar em outros sites
Em 16/3/2017 ás 18:51, rogaforyn2 disse:

Lucky Coins

 

Lucky Coins é um sistema para configurar determinados monstros ou todos os monstros do servidor para droparem Lucky Coins com uma determinada rate,

com elas é possível programar itens para serem comprados, visando itens vip, que com varias LCs é possível obter, ou qualquer tipo de item.

Não sei já tem algo parecido to nem aí tb

 

Configurações

- Mudança por variáveis em alguns textos.

- ID Modal configurável.

- Efeito ao ganhar a coin pode ser ativado e mudado.

- Itens e preços configuráveis.

- Pode substituir as rates com a sua ou não, sem mudar em todos monstros.

- Dá pra habilitar em todos os monstros e deixar alguns com rates diferentes.

- Boost 2x, 3x, 4x em tudo apenas com uma variável.

 

Instalação

 

creaturescripts.xml:


<event type="kill" name="LuckyPoints" script="luckypoints.lua"/>
<event type="ModalWindow" name="ModalWindow_LuckyCoins" script="modalluckycoins.lua"/>

talkactions.xml


<!-- lucky coins -->
	<talkaction words="!luckycoins" separator=" " script="luckycoinstalk.lua" />

 

creaturescripts/scripts/

luckypoints.lua

  Ocultar conteúdo


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script
local msg = "You have found a lucky coin, say !luckycoins for more info." --: Mensagem ao jogador quando recebe uma coin
local showqtd = 1 --: Mostrar QTD de coins na msg? 1-Sim, 0-Não
local qtdtext = "You have" --: Texto que mostra antes da qtd de lucky coins, ex: você pode trocar para 'voce tem'

--: VISUAL :--
local enableeffect = 1 --: Mostrar efeito ao pegar a coin(ajuda a visualizar melhor)? 1 - Sim, 0 - Não.
local effect = CONST_ME_FERUMBRAS --: Efeito para mostrar, só é usado se for habilitado

  --: RATES :--
  local boost = 1 --: Aumenta as chances de obter coins para todos os monstros. 1 = 1x, 2 = 2x etc...
  local anycreature = 1 --: Todas as criaturas podem dropar. 0 - Não, 1 - Sim.
  local anycrate = 20 --: Chance de dropar em qlqr criatura 200 = 0,005%
  local ignorecfg = 1 --: Ignorar as chances da configuração? 1=sim 0=não

  --: Nota: ignorecfg = 1 faz com que todas as chances passem a ser da anycrate, independente da cfg

  --: Altere os monstros, o nome e o a chance de obter a coin  :--
  local config = {
    -- Quanto maior for o valor, menores são as chances de conseguir a coin
    ["Demon"] = {chance = 600}, -- 600 significa a chance de um em 600
    ["Ferumbras"] = {chance = 30}, -- 30 significa a chance de uma em 30... etc
    ["Rat"] = {chance = 1}, -- 100% de chance
    ["Rotworm"] = {chance = 2}, -- 50% de chance
    ["Dog"] = {chance = 10} -- 10% de chance
  }

  function onKill(cid, target, lastHit)
    if (isPlayer(target)) then return true end
    local monster = getCreatureName(target)
    local rand

    if (ignorecfg ~= 1) then
      for index, arraymonster in ipairs(config) do
        if ((arraymonster ~= monster) and (anycreature == 0)) then return true end
      end
      if (((config[monster])) == nil) then rand = anycrate else rand = ((config[monster].chance) / boost) end
    else
      rand = anycrate
    end

    local storageatual = getPlayerStorageValue(cid, storage)
    local plural = "s"
    local qtd = ""
    if (rand < 1) then rand = 1 end
    if (storageatual == 1) then	plural = ""	end
    if (showqtd == 1) then qtd = " " .. qtdtext .. " " .. storageatual + 1 .. " lucky coin" .. plural .. "." end

    if  (math.random(rand) == 1) then
      setPlayerStorageValue(cid, storage, storageatual + 1)
      doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, msg .. qtd)
      if (enableeffect == 1) then doSendMagicEffect(getPlayerPosition(cid), effect) end
    end

    return true
  end

 

 

modalluckycoins.lua

  Ocultar conteúdo


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script, a mesma do creaturescript luckypoints.lua e do talk
local modalid = 1053 --: O mesmo valor que na luckycoinstalk


function onModalWindow(player, modalWindowId, buttonId, choiceId)
  player:unregisterEvent("ModalWindow_LuckyCoins")
  if modalWindowId == modalid then
    if buttonId == 100 and choiceId ~= nil and choiceId ~= 255 then
      local itemprice = (lucky_items[ordem[choiceId]].price)
      local pstorage = (player:getStorageValue(storage))
      local itemid = (ordem[choiceId])

      if ((pstorage) >= (itemprice)) then
        player:setStorageValue(storage, (pstorage - itemprice))
        player:addItem(itemid, 1)
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You bought a " .. (ItemType(itemid):getName()) .. " for " .. (itemprice) .. " coin(s)." )
      else
        player:sendCancelMessage('You dont have enough lucky coins.')
      end
    end
  end
end

 

 

talkactions/scripts/

luckycoinstalk.lua

  Ocultar conteúdo


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script, a mesma do creaturescript luckypoints.lua
local msg = "Lucky Coins are used here to buy vip items by playing the game. You can buy it at our shop, tp at temple." --: Mensagem sobre o sistema
local msgtwo = "You can view your luckycoins by typing !luckycoins amount." --: Só mostra se não tiver o parametro
local msgbuy = "These are the items that you can buy: Soft Boots"
local modalid = 1053 --: O mesmo valor que na luckycoinstalk

--: AMOUNT  :--
local qtdtext = "You have" --: Texto que mostra antes da qtd de lucky coins, ex: você pode trocar para 'voce tem'

--: BUY  :--
local title = "Buy items with your lucky coins!" --: Titulo da tela
local message = "Click to buy a item!" --: Conteudo da msg, apos ela é mostrado o num de lucky coins

--: ITENS COMPRAVEIS :--
-- [ID DO ITEM] = {price = PREÇODOITEM},
lucky_items = {
  [6132] = {price = 1}, -- SOFT BOOTS
  [2514] = {price = 3}, -- MMS
  [2537] = {price = 5}, -- Amazon Shield
  [2499] = {price = 10}, -- Amazon Helmet
  [2500] = {price = 100} -- Amazon Armor
}
ordem = {}
--MAX de 254 itens


function onSay(player, words, param)
  local storageatual = player:getStorageValue(storage)
  local plural = "s"
  local qtd = ""

  if (storageatual < 0) then storageatual = 0	player:setStorageValue(storage, 0) end

  if (storageatual == 1) then	plural = ""	end
  qtd = " " .. qtdtext .. " " .. storageatual .. " lucky coin" .. plural .. "."
  if (param == "amount") then
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, qtd)

  elseif (param == "buy") then
    --if (onlypz == 1 and player:isPzLocked()) then player:sendCancelMessage('You are not in protection zone.') return false end adições futuras

    for k in pairs (ordem) do ordem [k] = nil end
    player:registerEvent("ModalWindow_LuckyCoins")

    local window = ModalWindow(modalid, title, message .. qtd)
    window:addButton(100, "Buy")
    window:addButton(101, "Cancel")

    for k in pairs(lucky_items) do
      table.insert(ordem, k)
    end
    table.sort(ordem)
    for i = 1, #ordem do
      local k, v = ordem[i], lucky_items[ ordem[i] ]
      window:addChoice(i, string.upper((ItemType(k):getName())) .. " - " .. lucky_items[k].price .. " " .. "lucky coin(s)")
    end

    window:setDefaultEnterButton(100)
    window:setDefaultEscapeButton(101)

    window:sendToPlayer(player)
  else
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg .. " " .. msgtwo)
  end
  return false
end

 

 

 

Screenshots

 

1.thumb.png.b8ebf1283d23f849cc95240f76cb668c.png2.png.0c8d1066c9c0db25f14f15f91ebd8095.png3.png.4f4634e5bba1fb051f55c41169b6ba5f.png

4.thumb.png.f79cf4818d1c33136eb245967310e1f2.png

 

Créditos

 

Eu

Ao matar demônios ou rat, eu não obter as lucky coins, que isso é devido?

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
Em 2017-3-16 ás 21:51, rogaforyn2 disse:

Lucky Coins

 

Lucky Coins é um sistema para configurar determinados monstros ou todos os monstros do servidor para droparem Lucky Coins com uma determinada rate,

com elas é possível programar itens para serem comprados, visando itens vip, que com varias LCs é possível obter, ou qualquer tipo de item.

Não sei já tem algo parecido to nem aí tb

 

Configurações

- Mudança por variáveis em alguns textos.

- ID Modal configurável.

- Efeito ao ganhar a coin pode ser ativado e mudado.

- Itens e preços configuráveis.

- Pode substituir as rates com a sua ou não, sem mudar em todos monstros.

- Dá pra habilitar em todos os monstros e deixar alguns com rates diferentes.

- Boost 2x, 3x, 4x em tudo apenas com uma variável.

 

Instalação

 

creaturescripts.xml:


<event type="kill" name="LuckyPoints" script="luckypoints.lua"/>
<event type="ModalWindow" name="ModalWindow_LuckyCoins" script="modalluckycoins.lua"/>

talkactions.xml


<!-- lucky coins -->
	<talkaction words="!luckycoins" separator=" " script="luckycoinstalk.lua" />

 

creaturescripts/scripts/

luckypoints.lua

  Ocultar conteúdo


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script
local msg = "You have found a lucky coin, say !luckycoins for more info." --: Mensagem ao jogador quando recebe uma coin
local showqtd = 1 --: Mostrar QTD de coins na msg? 1-Sim, 0-Não
local qtdtext = "You have" --: Texto que mostra antes da qtd de lucky coins, ex: você pode trocar para 'voce tem'

--: VISUAL :--
local enableeffect = 1 --: Mostrar efeito ao pegar a coin(ajuda a visualizar melhor)? 1 - Sim, 0 - Não.
local effect = CONST_ME_FERUMBRAS --: Efeito para mostrar, só é usado se for habilitado

  --: RATES :--
  local boost = 1 --: Aumenta as chances de obter coins para todos os monstros. 1 = 1x, 2 = 2x etc...
  local anycreature = 1 --: Todas as criaturas podem dropar. 0 - Não, 1 - Sim.
  local anycrate = 20 --: Chance de dropar em qlqr criatura 200 = 0,005%
  local ignorecfg = 1 --: Ignorar as chances da configuração? 1=sim 0=não

  --: Nota: ignorecfg = 1 faz com que todas as chances passem a ser da anycrate, independente da cfg

  --: Altere os monstros, o nome e o a chance de obter a coin  :--
  local config = {
    -- Quanto maior for o valor, menores são as chances de conseguir a coin
    ["Demon"] = {chance = 600}, -- 600 significa a chance de um em 600
    ["Ferumbras"] = {chance = 30}, -- 30 significa a chance de uma em 30... etc
    ["Rat"] = {chance = 1}, -- 100% de chance
    ["Rotworm"] = {chance = 2}, -- 50% de chance
    ["Dog"] = {chance = 10} -- 10% de chance
  }

  function onKill(cid, target, lastHit)
    if (isPlayer(target)) then return true end
    local monster = getCreatureName(target)
    local rand

    if (ignorecfg ~= 1) then
      for index, arraymonster in ipairs(config) do
        if ((arraymonster ~= monster) and (anycreature == 0)) then return true end
      end
      if (((config[monster])) == nil) then rand = anycrate else rand = ((config[monster].chance) / boost) end
    else
      rand = anycrate
    end

    local storageatual = getPlayerStorageValue(cid, storage)
    local plural = "s"
    local qtd = ""
    if (rand < 1) then rand = 1 end
    if (storageatual == 1) then	plural = ""	end
    if (showqtd == 1) then qtd = " " .. qtdtext .. " " .. storageatual + 1 .. " lucky coin" .. plural .. "." end

    if  (math.random(rand) == 1) then
      setPlayerStorageValue(cid, storage, storageatual + 1)
      doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, msg .. qtd)
      if (enableeffect == 1) then doSendMagicEffect(getPlayerPosition(cid), effect) end
    end

    return true
  end

 

 

modalluckycoins.lua

  Ocultar conteúdo


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script, a mesma do creaturescript luckypoints.lua e do talk
local modalid = 1053 --: O mesmo valor que na luckycoinstalk


function onModalWindow(player, modalWindowId, buttonId, choiceId)
  player:unregisterEvent("ModalWindow_LuckyCoins")
  if modalWindowId == modalid then
    if buttonId == 100 and choiceId ~= nil and choiceId ~= 255 then
      local itemprice = (lucky_items[ordem[choiceId]].price)
      local pstorage = (player:getStorageValue(storage))
      local itemid = (ordem[choiceId])

      if ((pstorage) >= (itemprice)) then
        player:setStorageValue(storage, (pstorage - itemprice))
        player:addItem(itemid, 1)
        player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You bought a " .. (ItemType(itemid):getName()) .. " for " .. (itemprice) .. " coin(s)." )
      else
        player:sendCancelMessage('You dont have enough lucky coins.')
      end
    end
  end
end

 

 

talkactions/scripts/

luckycoinstalk.lua

  Ocultar conteúdo


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script, a mesma do creaturescript luckypoints.lua
local msg = "Lucky Coins are used here to buy vip items by playing the game. You can buy it at our shop, tp at temple." --: Mensagem sobre o sistema
local msgtwo = "You can view your luckycoins by typing !luckycoins amount." --: Só mostra se não tiver o parametro
local msgbuy = "These are the items that you can buy: Soft Boots"
local modalid = 1053 --: O mesmo valor que na luckycoinstalk

--: AMOUNT  :--
local qtdtext = "You have" --: Texto que mostra antes da qtd de lucky coins, ex: você pode trocar para 'voce tem'

--: BUY  :--
local title = "Buy items with your lucky coins!" --: Titulo da tela
local message = "Click to buy a item!" --: Conteudo da msg, apos ela é mostrado o num de lucky coins

--: ITENS COMPRAVEIS :--
-- [ID DO ITEM] = {price = PREÇODOITEM},
lucky_items = {
  [6132] = {price = 1}, -- SOFT BOOTS
  [2514] = {price = 3}, -- MMS
  [2537] = {price = 5}, -- Amazon Shield
  [2499] = {price = 10}, -- Amazon Helmet
  [2500] = {price = 100} -- Amazon Armor
}
ordem = {}
--MAX de 254 itens


function onSay(player, words, param)
  local storageatual = player:getStorageValue(storage)
  local plural = "s"
  local qtd = ""

  if (storageatual < 0) then storageatual = 0	player:setStorageValue(storage, 0) end

  if (storageatual == 1) then	plural = ""	end
  qtd = " " .. qtdtext .. " " .. storageatual .. " lucky coin" .. plural .. "."
  if (param == "amount") then
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, qtd)

  elseif (param == "buy") then
    --if (onlypz == 1 and player:isPzLocked()) then player:sendCancelMessage('You are not in protection zone.') return false end adições futuras

    for k in pairs (ordem) do ordem [k] = nil end
    player:registerEvent("ModalWindow_LuckyCoins")

    local window = ModalWindow(modalid, title, message .. qtd)
    window:addButton(100, "Buy")
    window:addButton(101, "Cancel")

    for k in pairs(lucky_items) do
      table.insert(ordem, k)
    end
    table.sort(ordem)
    for i = 1, #ordem do
      local k, v = ordem[i], lucky_items[ ordem[i] ]
      window:addChoice(i, string.upper((ItemType(k):getName())) .. " - " .. lucky_items[k].price .. " " .. "lucky coin(s)")
    end

    window:setDefaultEnterButton(100)
    window:setDefaultEscapeButton(101)

    window:sendToPlayer(player)
  else
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, msg .. " " .. msgtwo)
  end
  return false
end

 

 

 

Screenshots

 

1.thumb.png.b8ebf1283d23f849cc95240f76cb668c.png2.png.0c8d1066c9c0db25f14f15f91ebd8095.png3.png.4f4634e5bba1fb051f55c41169b6ba5f.png

4.thumb.png.f79cf4818d1c33136eb245967310e1f2.png

 

Créditos

 

Eu

 

Parabéns pelo Script. Porem, estou com um problema, mato muitos bichos e não consigo obter os pontos... já mechi nas rates de toda forma... o que poderia ser ? Meu servidor é o Global 10.99 TFS. 1.2, disponibilizado aqui no TK pelo Maluco

--

Att,

Lucas Soledade  :pirate:
 
Desenvolvedor de Servidores  :wow: 
Inovação  :D 


-> Colossus Server <-

A4Zbobt.jpg

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
  • 1 month later...
Em 15/04/2017 ás 05:03, Perl disse:

Ao matar demônios ou rat, eu não obter as lucky coins, que isso é devido?

Aqui esta com o mesmo problema

@rogaforyn2

Link para o post
Compartilhar em outros sites
  • 3 months later...

O script tava funfando aqui, só ve se tem td que precisa, é bem limitado msm TFS 1.2 e client 9.7 ou mais, não funfa no 8.6 tem que adaptar.

Se quiser pra funcionar com player tenta usar esse luckypoints.lua

 


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script
local msg = "You have found a lucky coin, say !luckycoins for more info." --: Mensagem ao jogador quando recebe uma coin
local showqtd = 1 --: Mostrar QTD de coins na msg? 1-Sim, 0-Não
local qtdtext = "You have" --: Texto que mostra antes da qtd de lucky coins, ex: você pode trocar para 'voce tem'

--: VISUAL :--
local enableeffect = 1 --: Mostrar efeito ao pegar a coin(ajuda a visualizar melhor)? 1 - Sim, 0 - Não.
local effect = CONST_ME_FERUMBRAS --: Efeito para mostrar, só é usado se for habilitado

  --: RATES :--
  local boost = 1 --: Aumenta as chances de obter coins para todos os monstros. 1 = 1x, 2 = 2x etc...
  local anycreature = 1 --: Todas as criaturas podem dropar. 0 - Não, 1 - Sim.
  local playerrate = 20 --: Chance de dropar em player 200 = 0,005%
  local anycrate = 20 --: Chance de dropar em qlqr criatura 200 = 0,005%
  local ignorecfg = 1 --: Ignorar as chances da configuração? 1=sim 0=não // não funciona com player, muda em playerrate

  --: Nota: ignorecfg = 1 faz com que todas as chances passem a ser da anycrate, independente da cfg

  --: Altere os monstros, o nome e o a chance de obter a coin  :--
  local config = {
    -- Quanto maior for o valor, menores são as chances de conseguir a coin
    ["Demon"] = {chance = 600}, -- 600 significa a chance de um em 600
    ["Ferumbras"] = {chance = 30}, -- 30 significa a chance de uma em 30... etc
    ["Rat"] = {chance = 1}, -- 100% de chance
    ["Rotworm"] = {chance = 2}, -- 50% de chance
    ["Dog"] = {chance = 10} -- 10% de chance
  }

  function onKill(cid, target, lastHit)
    
    local monster = getCreatureName(target)
    local rand

	if (isPlayer(target)) then 
		rand = playerrate
	else
		if (ignorecfg ~= 1) then
		for index, arraymonster in ipairs(config) do
			if ((arraymonster ~= monster) and (anycreature == 0)) then return true end
		end
			if (((config[monster])) == nil) then rand = anycrate else rand = ((config[monster].chance) / boost) end
		else
			rand = anycrate
		end

	end
	
    local storageatual = getPlayerStorageValue(cid, storage)
    local plural = "s"
    local qtd = ""
    if (rand < 1) then rand = 1 end
    if (storageatual == 1) then	plural = ""	end
    if (showqtd == 1) then qtd = " " .. qtdtext .. " " .. storageatual + 1 .. " lucky coin" .. plural .. "." end

    if  (math.random(rand) == 1) then
      setPlayerStorageValue(cid, storage, storageatual + 1)
      doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, msg .. qtd)
      if (enableeffect == 1) then doSendMagicEffect(getPlayerPosition(cid), effect) end
    end

    return true
  end

 

Mas ctz q o pessoal vai ficar criando char pra matar, então fiz com lvl minimo, vo colocar no topico:

Spoiler


--: Configurações Gerais  :--
local storage = 32143 --: Storage do script
local msg = "You have found a lucky coin, say !luckycoins for more info." --: Mensagem ao jogador quando recebe uma coin
local showqtd = 1 --: Mostrar QTD de coins na msg? 1-Sim, 0-Não
local qtdtext = "You have" --: Texto que mostra antes da qtd de lucky coins, ex: você pode trocar para 'voce tem'

--: VISUAL :--
local enableeffect = 1 --: Mostrar efeito ao pegar a coin(ajuda a visualizar melhor)? 1 - Sim, 0 - Não.
local effect = CONST_ME_FERUMBRAS --: Efeito para mostrar, só é usado se for habilitado

--: RATES :--
  local boost = 1 --: Aumenta as chances de obter coins para todos os monstros. 1 = 1x, 2 = 2x etc...
  local anycreature = 1 --: Todas as criaturas podem dropar. 0 - Não, 1 - Sim.
  local anycrate = 20 --: Chance de dropar em qlqr criatura 200 = 0,005%
  local ignorecfg = 1 --: Ignorar as chances da configuração? 1=sim 0=não // não funciona com player, muda em playerrate
  
--: PLAYER :--
local playerenable = 1 --: Habilitar modulo pra dropar em jogadores? 1 - Sim, 0 - Não
local playerrate = 20 --: Chance de dropar em player 200 = 0,005%
local minlvl = 100 --: Level minimo pra dropar de player, pra evitar criar char pra ficar matando
  
  --: Nota: ignorecfg = 1 faz com que todas as chances passem a ser da anycrate, independente da cfg

  --: Altere os monstros, o nome e o a chance de obter a coin  :--
  local config = {
    -- Quanto maior for o valor, menores são as chances de conseguir a coin
    ["Demon"] = {chance = 600}, -- 600 significa a chance de um em 600
    ["Ferumbras"] = {chance = 30}, -- 30 significa a chance de uma em 30... etc
    ["Rat"] = {chance = 1}, -- 100% de chance
    ["Rotworm"] = {chance = 2}, -- 50% de chance
    ["Dog"] = {chance = 10} -- 10% de chance
  }

  function onKill(cid, target, lastHit)
    
    local monster = getCreatureName(target)
    local rand

	if (isPlayer(target)) then 
		if (getPlayerLevel(target) >= minlvl) then
		rand = playerrate
		else
		return true
		end
	else
		if (ignorecfg ~= 1) then
		for index, arraymonster in ipairs(config) do
			if ((arraymonster ~= monster) and (anycreature == 0)) then return true end
		end
			if (((config[monster])) == nil) then rand = anycrate else rand = ((config[monster].chance) / boost) end
		else
			rand = anycrate
		end

	end
	
    local storageatual = getPlayerStorageValue(cid, storage)
    local plural = "s"
    local qtd = ""
    if (rand < 1) then rand = 1 end
    if (storageatual == 1) then	plural = ""	end
    if (showqtd == 1) then qtd = " " .. qtdtext .. " " .. storageatual + 1 .. " lucky coin" .. plural .. "." end

    if  (math.random(rand) == 1) then
      setPlayerStorageValue(cid, storage, storageatual + 1)
      doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, msg .. qtd)
      if (enableeffect == 1) then doSendMagicEffect(getPlayerPosition(cid), effect) end
    end

    return true
  end

 

 

 

Life is so meaningless, there is nothing worth a smile
So goodbye, I'll miss you

 

 

sugestões?

 

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
Em 16/03/2017 em 21:51, psychonaut disse:

--: Configurações Gerais :-- local storage = 32143 --: Storage do script local msg = "You have found a lucky coin, say !luckycoins for more info." --: Mensagem ao jogador quando recebe uma coin local showqtd = 1 --: Mostrar QTD de coins na msg? 1-Sim, 0-Não local qtdtext = "You have" --: Texto que mostra antes da qtd de lucky coins, ex: você pode trocar para 'voce tem' --: VISUAL :-- local enableeffect = 1 --: Mostrar efeito ao pegar a coin(ajuda a visualizar melhor)? 1 - Sim, 0 - Não. local effect = CONST_ME_FERUMBRAS --: Efeito para mostrar, só é usado se for habilitado --: RATES :-- local boost = 1 --: Aumenta as chances de obter coins para todos os monstros. 1 = 1x, 2 = 2x etc... local anycreature = 1 --: Todas as criaturas podem dropar. 0 - Não, 1 - Sim. local anycrate = 20 --: Chance de dropar em qlqr criatura 200 = 0,005% local ignorecfg = 1 --: Ignorar as chances da configuração? 1=sim 0=não // não funciona com player, muda em playerrate --: PLAYER :-- local playerenable = 1 --: Habilitar modulo pra dropar em jogadores? 1 - Sim, 0 - Não local playerrate = 20 --: Chance de dropar em player 200 = 0,005% local minlvl = 100 --: Level minimo pra dropar de player, pra evitar criar char pra ficar matando --: Nota: ignorecfg = 1 faz com que todas as chances passem a ser da anycrate, independente da cfg --: Altere os monstros, o nome e o a chance de obter a coin :-- local config = { -- Quanto maior for o valor, menores são as chances de conseguir a coin ["Demon"] = {chance = 600}, -- 600 significa a chance de um em 600 ["Ferumbras"] = {chance = 30}, -- 30 significa a chance de uma em 30... etc ["Rat"] = {chance = 1}, -- 100% de chance ["Rotworm"] = {chance = 2}, -- 50% de chance ["Dog"] = {chance = 10} -- 10% de chance } function onKill(cid, target, lastHit) local monster = getCreatureName(target) local rand if (isPlayer(target)) then if (getPlayerLevel(target) >= minlvl) then rand = playerrate else return true end else if (ignorecfg ~= 1) then for index, arraymonster in ipairs(config) do if ((arraymonster ~= monster) and (anycreature == 0)) then return true end end if (((config[monster])) == nil) then rand = anycrate else rand = ((config[monster].chance) / boost) end else rand = anycrate end end local storageatual = getPlayerStorageValue(cid, storage) local plural = "s" local qtd = "" if (rand < 1) then rand = 1 end if (storageatual == 1) then plural = "" end if (showqtd == 1) then qtd = " " .. qtdtext .. " " .. storageatual + 1 .. " lucky coin" .. plural .. "." end if (math.random(rand) == 1) then setPlayerStorageValue(cid, storage, storageatual + 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, msg .. qtd) if (enableeffect == 1) then doSendMagicEffect(getPlayerPosition(cid), effect) end end return true end

 

 

 

onde eu coloco isso?

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo