Ir para conteúdo

"p" Points System V1.0


Rafaellm

Posts Recomendados

P Points System

 

 

Nome do script :p Points system v1

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

Creditos : LsM (######)

 

Como funciona :

 

O sistema funciona como uma recompensa ao player por ficar online 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 players 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.

Como utilizar :

 

Como 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.

Instalação :

 

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

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 :

 

--[[

P Points System by LsM.

###### © 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:

 

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

 

--[[

P Points System by LsM.

###### © 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:

 

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

 

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 :

 

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

 

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.

 

Como configurar :

 

A parte da configuração é a mais fácil, apenas edite :

 

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.

 

Ilustração :

 

FOTO

 

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

 

Download Completo -> DOWNLOAD

 

Scan download -> Scan

 

Abraços.

Editado por Rafaelml
Link para o comentário
Compartilhar em outros sites

valeu pro trazer para o xtibia, essa coisa de exclusivo, eu acho que só seria uma forma de dificultar o usuário que prescisa de um script como esse..(eu nunca encontraria)

 

e é isso aê

:gcool:

valeu aê, vou colocar no meu ot..

REP+

Editado por Strubol
Link para o comentário
Compartilhar em outros sites

manolo ... como eu uso neste codigo aqui ?

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

 

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 onPlayerEndTrade(cid)

npcHandler:onPlayerEndTrade(cid)

end

function onPlayerCloseChannel(cid)

npcHandler:onPlayerCloseChannel(cid)

end

 

npcHandler:addModule(FocusModule:new())

Link para o comentário
Compartilhar em outros sites

  • 7 months later...
  • 1 year later...
  • 1 year later...
×
×
  • Criar Novo...