Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá pessoal, como eu não tinha nada pra fazer resolvi criar este sistema que será bem útil para usar como premiações.

Como funciona? - Simplesmente você clica em um item chamado ticket medal e em seguida você receberá uma quantia em medalhas mas esta quantia será aleatória.

Tabela de porcentagem abaixo :

49% == chances de cair nada.
20% == chances de cair 3 medalhas.
15% == chances de cair 5 medalhas.
10% == chances de cair 7 medalhas.
5% == chances de cair 10 medalhas.
1% == chances de cair 25 medalhas.

vamos instalar o sistema [..]

1º - execute este código em sua database :

ALTER TABLE `players` ADD medals INT(11) NOT NULL DEFAULT 0;

2º - crie um arquivo lua chamado 016-ticket na pasta data/lib e insira o seguinte código :

--[[
functions by Ladyazaleia with love.
]]--

function getPlayerMedals(cid) -- function get medals.

local qr = db.getResult("SELECT `medals` FROM `players` WHERE `id`= "..getPlayerGUID(cid)..";")
medals = qr:getDataInt("medals", getPlayerGUID(cid))
if medals < 0 then
medals = 0
end
return medals
end

function doPlayerRemoveMedals(cid, count) -- function remove medals.
if getPlayerMedals(cid) < count then
return false
else
return db.query("UPDATE `players` SET `medals` = "..getPlayerMedals(cid)-count.." WHERE `players`.`id`= "..getPlayerGUID(cid)..";")
end
return true
end

function getTableWild() -- function get percent in randomtable.
tablewild = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -- 49 %
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, -- 20 %
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -- 15 %
7,7,7,7,7,7,7,7,7,7, -- 10 %
10,10,10,10,10, -- 5 %
25, -- 1 %
}
return tablewild
end

3º - abra o seu items.xml e adicione esta tag la no final :

 <item id="12427" article="a" name="ticket medal" plural="ticket medals">
        <attribute key="weight" value="10" />
        <attribute key="description" value="ticket medal is an item that when used will become worthless random medals that can be used to purchase items." />
    </item>

4º - abra o seu actions.xml e insira esta tag :

<action itemid="12427" event="script" value="ticket.lua"/>

5º - crie um arquivo lua chamado ticket na pasta data/actions/scripts e insira o seguinte código :

--[[
script by Ladyazaleia with love.
]]--
function onUse(cid, item, fromPosition, itemEx, toPosition)

rand = math.random(1, #getTableWild())
query = 'UPDATE `players` SET `medals` = '..getPlayerMedals(cid)+getTableWild()[rand]..' WHERE `players`.`id`= '..getPlayerGUID(cid)..';'
if doPlayerRemoveItem(cid, 12427, 1) then
db.query(query)
doSendMagicEffect(getThingPos(cid), 13)
doPlayerPopupFYI(cid, 'You received : ['..getTableWild()[rand]..'] medal coins.\n\nTo learn more about the system, type /medals.')
end
return true
end

6º - abra o seu talkactions.xml e adicione esta tag la no final :

<talkaction words="!medals;/medals" event="script" value="ticket.lua"/>

7º - crie um arquivo lua chamado ticket na pasta data/talkactions/scripts e insira o seguinte código :

--[[
script by Ladyazaleia with love.
]]--

function onSay(cid)
doPlayerPopupFYI(cid, 'Ticket medal is an item that promises to present you with medals\nfor you to purchase items available in the store medals.\n\nYou have ['..getPlayerMedals(cid)..'] medals coins.')
return true
end

Observações :

 

  • Caso você queira mudar as porcentagens, checar o arquivo 016-ticket.lua na pasta data/lib e fazer as alterações na tabela, só faça se souber.

 

  • Se o item 12427 já estiver registrado, mude-o! mas se não estiver registrado meu conselho é : "deixe tudo do jeito que está".

 

  • Você poderá usar as funções : getPlayerMedals(cid) para pegar o valor de medalhas do player & doPlayerRemoveMedals(cid, count) para remover uma quantidade de medalhas do player, count é a quantidade.

 

  • Desculpe pela tabela constrangedora, só consegui porcentar assim.

exemplo de uso :

function onSay(cid, words, param)
local count = 10
if doPlayerRemoveMedals(cid, count) then
doPlayerAddItem(cid, 2160, 100)
doSendMagicEffect(getThingPos(cid), 12)
else
doPlayerPopupFYI(cid, 'Você não possui '..count..' medal coins.')
end
return true
end

este exemplo faz com que o player possa comprar 100 crystal coins se ele tiver 10 medal coins.
até mais pessoal, um grande abraço e se gostou,
rep+ :P

créditos : Halls Santos or Ladyazaleia.

 

Editado por HallsSantos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Muito foda *------* nota 10 man

Baixe um tibia loader de confiável e de um lugar confiável, otserv list.

 

<a href="http://otservlist.org/ipc/327721">DownloadTibia Loader!</a>

Link para o post
Compartilhar em outros sites

gostei, no início achei que daria itens aleatórios, mas é como se fosse um status.

reputado

Obrigado man, fico feliz com a sua opinião, sou seu fã! *-*

Muito foda *------* nota 10 man

Haha! valeu parça :D

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.

  • Conteúdo Similar

    • Por ILex WilL
      Olá, Alguém poderia me ajudar com uns Scripts? nem que seja cobrando, dependendo eu pago para me ajudar...
    • Por Yan Liima
      #Introdução
      Bom hoje estarei trazendo aqui o sistema de Ping feito pelo Mock, com uma pequena adaptação feita por mim para funcionar em TFS 0.4(talvez podendo funcionar em outras)
      Pois o que ele disponibilizou foi apenas para TFS 0.3.6 e nem foi muito utilizado pela comunidade. Muitos servidores daqui para download tem script no talk mas a lib está totalmente errada e não tem o code nas sources.
      Esse sistema tem varias utilizades, podendo usar o comando !ping para verificar seu ms ou até mesmo por para kikar jogadores com ms muito alto...
      Se você não sabe o cliente já tem um sistema de ping, e getOtsystime é como os.time () + os.clock (), você tem ano, mês, dia, hora, minutos, segundos, milisegundos...
      Enfim chega de enrolação e vamos lá!
       
      Code para TFS 0.4 e OTX:
       
      Code para TFS 0.3.6
       
      LIB:
       
       
      Prontinho, agora seu servidor está pronto para utilizar as funções de Ping. Seja criativo!
      Ahh você é daqueles que quer tudo na mão né? Aqui vai um talkactions para ver o ping.
       
      Em talkactions/scripts crie um arquivo chamado playerping.lua, cole isto dentro:
      -- Script by Yan Liima(Night for tibiaking.com) function onSay(cid, words, param, channel) local ms = ping.CheckPing(cid) doPlayerSendTextMessage(cid,22,"Ping aproximado --> ["..ms.."].") return true end Em talkactions.xml
      <talkaction words="!ping" event="script" value="playerping.lua"/>  
    • Por Guilherme HP
      ola boa noite, alguem poderia ta me ajudando nesse erro que apareceu na minha vps quando vou abrir o meu game?

      [./tfs: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory]
    • Por Pissolato
      Boa noite pessoal,
       
      Relutei para não abrir este tópico mas não aguentei... estou o dia procurando uma solução para este erro...
      Abaixo o output do executável do meu servidor:
      ---------------------------------------------------------------------------------------------------------------------------------
       
      [22/01/2016 18:25:42] The Forgotten Server - Edited By Cyko V8, version 0.3.6 - Edited By Cyko V8 (Crying Damson - Edited By Cyko V8)
      [22/01/2016 18:25:42] Compiled with GNU C++ version 3.4.5 (mingw special) at Apr  6 2013, 11:07:44.
      [22/01/2016 18:25:42] A server developed by Elf, slawkens, Talaturen, KaczooH, Lithium, Kiper, Kornholijo.
      [22/01/2016 18:25:42] Visit our forum for updates, support and resources: http://otland.net.
      [22/01/2016 18:25:42] >> Loading config (config.lua)
      [22/01/2016 18:25:42] > Using plaintext encryption
      [22/01/2016 18:25:42] >> Checking software version... failed checking - malformed file.
      [22/01/2016 18:25:43] >> Fetching blacklist
      [22/01/2016 18:25:43] >> Loading RSA key
      [22/01/2016 18:25:43] >> Starting SQL connection
      [22/01/2016 18:25:43] >> Running Database Manager
      [22/01/2016 18:25:44] > No tables were optimized.
      [22/01/2016 18:25:44] >> Loading items
      [22/01/2016 18:25:44] >> Loading groups
      [22/01/2016 18:25:44] >> Loading vocations
      [22/01/2016 18:25:44] >> Loading script systems
      [22/01/2016 18:25:45] >> Loading chat channels
      [22/01/2016 18:25:45] >> Loading outfits
      [22/01/2016 18:25:45] >> Loading experience stages
      [22/01/2016 18:25:45] >> Loading monsters
      [22/01/2016 18:25:45] >> Loading mods...
      [22/01/2016 18:25:45] > Loading buypremium_command.xml... done.
      [22/01/2016 18:25:45] > Loading changender_command.xml... done.
      [22/01/2016 18:25:45] > Loading custommonsters.xml... done.
      [22/01/2016 18:25:45] > Loading customspells.xml... done.
      [22/01/2016 18:25:45] > Loading firstitems.xml... done.
      [22/01/2016 18:25:45] > Loading highscorebook.xml... done.
      [22/01/2016 18:25:45] > Loading Military Ranks.xml... done.
      [22/01/2016 18:25:45] > 7 mods were loaded.
      [22/01/2016 18:25:45] >> Loading map and spawns...
      [22/01/2016 18:25:49] > Map size: 33407x33023.
      [22/01/2016 18:25:49] > Map descriptions: 
      [22/01/2016 18:25:49] "Saved with Remere's Map Editor 2.1"
      [22/01/2016 18:25:49] "No map description available."
      [22/01/2016 18:26:13] > Map loading time: 28.011 seconds.
      [22/01/2016 18:26:14] [Warning] NpcSystem:
      [22/01/2016 18:26:14] Parameter 'keyword_reply1' missing. Skipping...
      [22/01/2016 18:26:14] [Error - Npc interface] 
      [22/01/2016 18:26:14] data/npc/scripts/default.lua
      [22/01/2016 18:26:14] Description: 
      [22/01/2016 18:26:14] data/npc/lib/npcsystem/modules.lua:302: attempt to call global 'Npc' (a nil value)
      [22/01/2016 18:26:14] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/default.lua
      [22/01/2016 18:26:15] > Data parsing time: 2.028 seconds.
      [22/01/2016 18:26:21] > Houses synchronization time: 5.508 seconds.
      [22/01/2016 18:26:27] > Content unserialization time: 5.792 seconds.
      [22/01/2016 18:26:27] >> Checking world type... PvP
      [22/01/2016 18:26:27] >> Initializing game state modules and registering services...
      [22/01/2016 18:26:27] > Global address: 127.0.0.1
      [22/01/2016 18:26:27] > Local ports: 7171    7172    
      [22/01/2016 18:26:27] >> All modules were loaded, server is starting up...
      [22/01/2016 18:26:27] >> Forgotten 8.60 server Online!
       
      --------------------------------------------------------------------------------------------------------------------------------
       
      Estes são os arquivos que imagino que precisem dar uma olhada:
       
      data\npc\lib\npcsystem\modules.lua
       
      data\npc\scripts\default.lua
       
      Se precisarem de mais alguma informação ou arquivo é só pedir. Sou novato nisso, mas adquiri algum conhecimento durante minhas tentativas agradeço de antemão a ajuda de vocês!
      MUITO OBRIGADO!
    • Por Pepeco
      • Mining System •
      Vim aqui disponibilizar o mining, não é tão avançado como o de outros mas ele é totalmente automático tanto para colocar items quanto para vender os items (alavanca). É uma script simples e fácil de entender, podendo ter alterações com pessoas que não tem muito experiencia em lua. Mesmo que ele seja simples, o forum esta morrendo, pretendo fazer updates nele, caso alguém tenha alguma ideia do que possa fazer, só deixar um comentário.
       
      • Explicação •
      › Mining_Config
      config = { Level = 8, Axe_Skill = 10, Paredes = {5646,5640,5645,5639,5644,5648}, } -- Level = Level necessario para minerar -- Axe_Skill = Skill de axe necessaria para poder minerar -- Paredes = Paredes que vao ser mineradas › Mining_Items
      config = { [1] = {Item = 2157, Random_min = 1, Random2_min = nil, Random_max = 3, Random2_max = nil, Count = 2, Special_Storage = nil, Magic_Effect = nil, Count_Shop = nil, Money_Shop = nil}, -- Gold Nugget } -- Random_min = A chance de cair o item em math.random -- Random2_min = Essa chance é menor, ou seja, mais dificil de cair. -- Random_max = É a chance maxima -- Random2_max = A mesma coisa que o de cima -- Count = A quantidade maxima que pode cair, é aleatorio -- Special_Storage = Caso voce queira que de alguma storage, para ver quantos players ja conseguiram e etc.. -- Magic_Effect = Caso queira que de algum magic effect diferente, se for nil, será o padrao. -- Count_Shop = Quantidade necessaria para poder vender o item no shop (alavanca) -- Money_Shop = Quanto que o item vai custar, por unidade ou seja, se eu colocar Count_Shop = 100 e Money_Shop = 2000, vai ser 100 * 2000. -- No final que tem esse "--" é o nome do item, é melhor se organizar assim, pois se ficar muitos items e voce querer fazer alguma manutenção, facilita muito.  
      Bom, eu acho que é isso, não tem mais nada para se explicar. Então vamos para o script.
       
      Data/lib
       
      Data/actions/scripts
      Data/actions -- Abra o actions.xml
      <action itemid="id do item" script="nome do arquivo"/>  
      Data/actions/scripts -- Esse aqui é o shop, não é obrigatório.
      Data/actions -- Abra o actions.xml
      <action actionid="id da action" script="nome do arquivo"/>  
      Caso tenha gostado, deixe seu REP+, ajuda e motiva muito trazer conteúdo para o forum.
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo