Postado Abril 4, 2017 8 anos rep++ funciona Editado Abril 4, 2017 8 anos por Dolera (veja o histórico de edições)
Postado Abril 6, 2017 8 anos Sensacional esse script, sera que teria como disponibilizar ele para tfs 0.4?
Postado Abril 6, 2017 8 anos 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 Abril 7, 2017 8 anos 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 Abril 7, 2017 8 anos 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 Créditos Eu Cara eu te amo , 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.