Ir para conteúdo
  • Cadastre-se

[System] Pontos "P" Points System


Posts Recomendados

  • 2 weeks later...

Otimo script, o que seria bom mesmo fazer um NPC ou um tipo de SHOP onde comprasse itens especiais que utilizasse esse tipo de moeda, p points!

E-mail para contato: [email protected]

Quer ter um fórum mais organizado? Cumpra as regras!

EU VOLTEI GAROTAS!

31/12/2011

Atenciosamente,

Guilherme Salviati.

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

Ae galera no meu ot "[8.60]HeroServ 2.0.0" eu uso um sistema de vip coins, que podem ser compradas (1 vip coin=1 real). Então, queria saber se dava pra faze um script com ganho de vip coins. Ah, e mais uma coisa: todos os scripts de NPC de troca de itens que eu axei não funcionam no meu ot, dá erro, então, se possivel, alguem faz um script de npc de troca ("x" vip coins por "x" item)?? sei que essa nao é a area certa mas se alguem puder me ajudar...

Link para o post
Compartilhar em outros sites
  • 1 month later...

/\

Isso voce coloca no sql.

para por isso e só abrir a database do seu servidor e colocar sql editor, colcar isso e executar :P

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  • 1 year later...
  • 3 weeks later...
  • 10 months later...

Onde fica o banco de dados que não sei? query ? lol esplica direito affff


DedoDireita.png Instalação :

Primeiramente, execute a seguinte QUERY em seu banco de dados :

 

nao tendi nao to sabendo explica ae

Link para o post
Compartilhar em outros sites
  • 1 year later...

desculpa upar mais preciso de um script igual, que vai dando pontos pra players online, poderia disponibilizar para tfs 1.0 ?

Link para o post
Compartilhar em outros sites

ótimo script, poderia fazer um shop de p_points no caso né ? ficaria perfeito.

Venha para a evolução do mapa HEROSERV -- Versão 8.60 -

Faça parte dessa família: http://kaiakserv.com

 

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

pois é o sistema é bem interessante só que poderia complementar com um npc ou sistema na qual utilizar estes pontos porque a maioria da galera não sabe adaptar scripts e npc's!

Se Ajudei Clique no rep_up.png ao Lado, Não Custa nada :D!!

Link para o post
Compartilhar em outros sites
  • 8 months later...
Em 04/10/2011 19:53:20, AgaSsI disse:

 

 

 

 

 

P Points System

 

 

 

 

 

 

divisor.png

 

 

 

 

 

 

 

 

 

 

 
Nome do script :
P Points system v1

 

 
Versão testada :
TFS 0.4 (8.70 Funciona em versões anteriores)

 

 
Creditos :
LsM

 

 

DedoDireita.png

 
Como funciona :

 

 

 

 
O
sistema funciona como uma recompensa ao player por ficar
por um certo tempo. O player, ao ficar online por um certo intervalo de tempo programado no código, receberá uma quantidade de pontos "P" a qual também se pode alterar.

 

 

 

 
O
objetivo foi fazer com que os
se sintam incentivados a ficar online por um maior período de tempo para que recebam tais moedas. Essa é, definitivamente, uma forma fácil de se alcançar um número maior de players online, já que a ideia foi retirada de um
MMORPG
online de grande sucesso.

 

 

 

 

 

 

DedoDireita.png

 
Como utilizar :

 

 

 

 
C
omo o sistema tem como foco dar uma recompensa ao player, no caso
pontos P
, estes, podem ser utilizados no comercio, em npcs, ou até mesmo na entrada de locais. Sua sintaxe é muito maleável e se encaixa em quaquer requisito desejado.

 

 

 

 

 

 

DedoDireita.png

 
Instalação :

 

 

 

 
Primeiramente, execute a seguinte
QUERY
em seu banco de dados :

 

 

 

Código:

 

 
 


 
ALTER TABLE `accounts` ADD `p_points` INTEGER NOT NULL DEFAULT 0
 
Em seguida, crie um arquivo com a extensão
.lua
chamado "
points.lua
" em "
data/creaturescripts/scripts
" e adicione o código abaixo :
Código:
 


 
--[[ P Points System by LsM. OTServ Brasil © 2011 Version : v1.0 ]]-- function onLogin(cid) doCreatureSetStorage(cid, 1219, os.time()) return true end function onLogout(cid) doCreatureSetStorage(cid, 1219, 0) return true end
 
Ainda em creaturescripts, abra o arquivo "
creaturescripts.xml
" e adicione a seguinte
TAG
:
Código:
 


 
<event type="login" name="PlayerAddPointsTimer" event="script" value="points.lua"/> <event type="logout" name="PlayerResetPointsTimer" event="script" value="points.lua"/>
 
Agora, em "
data/globalevents/script
" crie um arquivo com a extensão
.lua
também chamado "
points.lua
" e cole o seguinte código :
Código:
 


 
--[[ P Points System by LsM. OTServ Brasil &#169; 2011 Version : v1.0 ]]-- local config = { p_time = 3600, -- Tempo em segundos para receber os pontos( 3600 = 1hora ) p_points = 1 -- Quantidade de pontos recebida a cada "p_time" }local function givePoints(cid, quant) if os.time() - getCreatureStorage(cid, 1219) >= config.p_time then doPlayerSendTextMessage(cid, 19, "Congratulations, you recieved ".. config.p_points .." p points. Now you have ".. config.p_points + getPoints(cid) .." p points in your account. Your timer was reseted.") doPlayerAddPoints(cid, quant) doCreatureSetStorage(cid, 1219, 0) doCreatureSetStorage(cid, 1219, os.time()) end return true end function onThink(interval) for i, v in pairs(getPlayersOnline()) do givePoints(v, config.p_points) end return true end
 
E em "
globalevents.xml
" cole a seguinte
TAG
:
Código:
 


 
<globalevent name="points" interval="60" event="script" value="points.lua"/>
 
Em seguida vá em "
data/talkactions/scripts
", crie um arquivo com extensão
.lua
chamado "
points.lua
" e adicione o seguinte código :
Código:
 


 
function onSay(cid, words, param, channel) local getP = getPoints(cid) doPlayerPopupFYI(cid, "You have ".. getP .." P points.") return true end
 
E em "
talkactions.xml
" adicione a
TAG
:
Código:
 


 
<talkaction words="!ppoints;/ppoints" event="script" value="points.lua"/>
 
Para finalizar, vá em "
data/lib/050-function.lua
" e na última linha, adicione as funções abaixo :
Código:
 


 
function getPoints(cid) local res = db.getResult('select `p_points` from accounts where name = \''..getPlayerAccount(cid)..'\'') if(res:getID() == -1) then return false end local ret = res:getDataInt("p_points") res:free() return tonumber(ret) end function doPlayerAddPoints(cid, quant) return db.executeQuery("UPDATE `accounts` SET `p_points` = '".. getPoints(cid) + quant .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end function doPlayerRemovePoints(cid, quant) return db.executeQuery("UPDATE `accounts` SET `p_points` = '".. getPoints(cid) - quant .."' WHERE `name` ='"..getPlayerAccount(cid).."'") end
 
Fim, o sistema está instalado.
 

DedoDireita.png

 
Como configurar :
 
A
parte da configuração é a mais fácil, apenas edite :
 
Código:
 
 


 
local config = { p_time = 3600, -- Tempo em segundos para receber os pontos( 3600 = 1hora ) p_points = 1 -- Quantidade de pontos recebida a cada "p_time" }

 

 

 

 

 

 

 
Quer utilizar o sistema em um npc, ou action, ou algum outro sistema e não sabe como? Simples, apenas use as seguintes funções :

 

 

 

 
getPoints(cid)
A função retorna a quantidade de pontos do player.

 

 

 

 
doPlayerAddPoints(cid, quant)
A função adiciona a quantidade(quant) de pontos ao player.

 

 

 

 
doPlayerRemovePoints(cid, quant)
A função remove a quantidade(quant) de pontos do player.

 

 

 

 

DedoDireita.png

 
Ilustração :

 

 

 

 

 

 

 

 

Funcionamento do script

 

 

 

219b993.png

 

 

 

 
Ilustração de !ppoints

 

 

10z9y7p.png

 

 

 

 

 

Creditos:
LsM

 

 

 

 
A
í está galera, espero que gostem, e, para os preguiçosos, disponibilizei o download do sistema completo:

 

 

 

 

 

 

 

 

 

Ótimo tutorial, ainda colocou as funções pra usar em um npc ^^  

Eu queria em vez do player receber esse "point", receber outra coisa, exemplo: possuo uma moeda no meu ot chamada event point, adquirida em eventos,quests etc, existe npcs que vendem itens por event points e tal, pode me dizer onde altero para o player receber em vez desses pontos, o event point?  OBS: event point é um iten, creio que os pontos do seu script não aparecem na mochila hehe

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

Eu sei que este topico é antigo mas eu queria usar esse script em um npc e como intendo muito pouco sobre scripts consegui fazer um npc com base em outro de meu server, enfim vai que alguem queira o npc e não saiba criar vou posta-lo aqui.

 

Em npc cria um arquivo com nome P trader.xml e adicione isso dentro:

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Points Trader" script="P trader.lua" walkinterval="2000">
    <health now="100" max="100"/>
    <look type="453"/>
    <parameters>
        <parameter key="message_greet" value="Olá, |PLAYERNAME|! Eu vendo itens por P Points (Horas Online). Diga {Trade}."/>
    </parameters>
</npc>

 

Agora em npc/scripts crie um arquivo .lua com nome P trader.lua e adicione isso dentro:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
local shopWindow = {}
local t = {
          [5957] = 240, -- [id do item] = quantos pontos vai custar
          [2159] = 25,
          [2396] = 5,
          [2397] = 5,
          [2398] = 5,
          [2493] = 5,
          [2494] = 5,
          [2495] = 5,
          [2496] = 5,
          [2331] = 1
          }
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if t[item] and getPoints(cid) < t[item] then
selfSay("Você precisa de "..t[item].." P points para comprar este item.", cid)
else
doPlayerRemovePoints(cid, t[item])
doPlayerAddItem(cid, item)
selfSay("Aqui esta seu item", cid)
end
return true
end
if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then
                        for var, ret in pairs(t) do
                                        table.insert(shopWindow, {id = var, subType = 0, buy = ret, sell = 0, name = getItemNameById(var)})
                                end
                        openShopWindow(cid, shopWindow, onBuy, onSell)
                end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Acho que nem preciso explicar como configurar.

Link para o post
Compartilhar em outros sites
  • 1 month later...

@poko360 Testa esse aqui.

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
local itemid = 2157 -- Novos points
local shopWindow = {}
local t = {
 [8850] = {price = 400}, -- [ID do item] e o preço que ele irá custar em points.
 [8929] = {price = 400},
 [8932] = {price = 400},
 [8926] = {price = 400},
 [2424] = {price = 400},
 [11296] = {price = 200},
 [11295] = {price = 200},
 [11298] = {price = 200},
 [11297] = {price = 200},
 [2527] = {price = 200},
 [2108] = {price = 900},
 [9019] = {price = 900},
 [3955] = {price = 900}
 }
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if  t[item] and getPlayerItemCount(cid, itemid) < t[item].price then
selfSay("you do not have "..t[item].price.." Nugget Coins.", cid)
else
doPlayerAddItem(cid, item)
doPlayerRemoveItem(cid, itemid, (t[item].price))
selfSay("Here you item", cid)
  end
return true
end
if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then
for var, ret in pairs(t) do
table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)})
end
openShopWindow(cid, shopWindow, onBuy, onSell)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

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