Postado Outubro 4, 2011 13 anos Este é um post popular. 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 : 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. 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 © 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. Como configurar : A parte da configuração é a mais fácil, apenas edite : Código: [/size] [/font] 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 : Funcionamento do script Ilustração de !ppoints Creditos: LsM A í está galera, espero que gostem, e, para os preguiçosos, disponibilizei o download do sistema completo: http://www.4shared.c...nts_System.html O conteúdo é bom e de qualidade? Te ajudei? Então não esqueça do REP!
Postado Outubro 13, 2011 13 anos 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: gigo_xl@hotmail.com Quer ter um fórum mais organizado? Cumpra as regras! Regras do forum. EU VOLTEI GAROTAS! 31/12/2011 Atenciosamente, Guilherme Salviati.
Postado Novembro 20, 2011 13 anos 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...
Postado Janeiro 9, 2012 13 anos pow pode me dizer ou por esse tal de ALTER TABLE `accounts` ADD `p_points` INTEGER NOT NULL DEFAULT 0 Ae ajudei? 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.