Ir para conteúdo

Featured Replies

  • Respostas 19
  • Visualizações 1.9k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

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

Postado
  • Autor

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.

Postado
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 :(

Postado
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+

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo