CS
pedido

Tem Como Fazer Scripts De Entregar Pontos Ao Player

Por cs007, 25 de jun. de 2012 em Scripts

otserv
tibia
script
14
2k
cs007C
25 de junho de 2012 às 03:57

Olá pessoal da xtibia vim aqui fazer um pequeno pedido a vocês. tem como fazer um script que ao players ficar 10 horas logado direto ele entregar 1 premium points? mas eu queria que esse script só entregasse esse ponto para no maximo 2 player por IP. Isso é possivel? valeu

VodkartV
25 de junho de 2012 às 10:06

oq vc quis dizer com "no maximo 2 player por IP" ?

cs007C
25 de junho de 2012 às 12:24

Para a pessoa não ficar abrindo MCs e ganhando com varias accs ai se tivesse como fazer um limitador por IP seria melhor ainda.

VodkartV
25 de junho de 2012 às 13:14

esse seu sistema de premium points é esse:

 

http://www.xtibia.com/forum/topic/183310-premium-points-in-game/

 

?

cs007C
25 de junho de 2012 às 13:38

Não. Não tem o sistema de premium points do gesior? então desse que estou falando

VodkartV
25 de junho de 2012 às 13:49

Não. Não tem o sistema de premium points do gesior? então desse que estou falando

 

mas não é a mesma query pra adc points no player?

 

"UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) + count .."' WHERE `name` ='"..getPlayerAccount(cid).."

 

?

cs007C
25 de junho de 2012 às 14:12

Sim. Eu uso premium_points eu queria um global events que entregasse 1 ponto para o player que ficar logado mais de 10 horas. Ai ele iria entregando de 10 em 10 horas. valeu

VodkartV
25 de junho de 2012 às 14:18

eu sei eu sei, faz o seguinte, adiciona essas funções na sua lib:

 

function getAccountPoints(cid)
	local res = db.getResult('select `premium_points` from accounts where name = \''..getPlayerAccount(cid)..'\'')
	if(res:getID() == -1) then
	   return false
	end
	local ret = res:getDataInt("premium_points")
	res:free()
	return tonumber(ret)
end

function doAccountAddPoints(cid, count)
	return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) + count .."' WHERE `name` ='"..getPlayerAccount(cid).."'")
end

 

 

 

Mods?

 

Premium_Time.xml

<?xml version="1.0" encoding="UTF-8"?>  
<mod name="Premium Time" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes">  
<config name="ptime_func"><![CDATA[
info = {
storage = 520853,
hours = 10,
points = 1,
IpLimit = 2
}
function CheckPremiumTime(cid)
local count,on,ip,check = 0,getPlayersOnline(),{},true
       if #on > 0 then
for i = 1, #on do
               if getPlayerIp(on[i]) == getPlayerIp(cid) then
count = count + 1
if on[i] ~= cid then
table.insert(ip, on[i])
end
end
end
               if count > info.IpLimit then
for x = 1, #ip do
if getPlayerStorageValue(ip[x], info.storage) ~= -1 then 
check = false 
end
end
               end
end
return setPlayerStorageValue(cid, info.storage, check == true and os.time()+info.hours*3600 or -1)
end
]]></config>
<event type="login" name="PointRegister" event="script"><![CDATA[
domodlib('ptime_func')
function onLogin(cid)
CheckPremiumTime(cid)
return true
end]]></event>   
<globalevent name="RewardPoint" interval="60" event="script"><![CDATA[
domodlib('ptime_func')
function onThink(interval, lastExecution)
local on = getPlayersOnline()
      if #on > 0 then
for i = 1, #on do
if getPlayerStorageValue(on[i], info.storage) ~= -1 and getPlayerStorageValue(on[i], info.storage) <= os.time() then
doAccountAddPoints(on[i], info.points)
doPlayerSendTextMessage(on[i], 19, "Congratulations, you reward "..info.points.." premium points. Your timer was reseted.")
setPlayerStorageValue(on[i], info.storage, os.time()+info.hours*3600)
end
       end
end
return true
end]]></globalevent>
</mod>

Editado Junho 25 por Vodkart

cs007C
25 de junho de 2012 às 14:25

Valeu lek. vou testar aqui =) REP+

pesadeloxxP
25 de junho de 2012 às 15:10

i ae funciono.? tbm gostei dessa sua ideia dos pontos...ce funcionar tbm darei REP + pro script e pro kra q pediu ^^

 

 

ae Vodkart vlw manow...e desculpe, éh q ñ sei mtu dessas coisas...+ vlw por explicar.!

 

 

@Vodkart

Manow como faço pra usar esses pontos ? e como faço pra ver qtos ponto tem o player.?

 

 

me ajuda nessa ? Oo

Editado Junho 25 por pesadeloxx

VodkartV
25 de junho de 2012 às 16:31

ae galera, tinha um bug mais ja removi, editei o tópico, usem o novo!

 

ae Vodkart tem como me passa esse script inteiro...to kerendo colokar ele no meu server tbm. éh só esses 2 q vcpostou ow tem + partes. ? vlw

 

é um MODS cara, são todos os scripts em um arquivo só.

 

@Vodkart

Manow como faço pra usar esses pontos ? e como faço pra ver qtos ponto tem o player.?

 

 

me ajuda nessa ? Oo

 

da uma olhada nesse tópico:

 

http://www.xtibia.com/forum/topic/183310-premium-points-in-game/

pesadeloxxP
25 de junho de 2012 às 16:40

Vodkart. ñ sei como funciona o outro do link ae...+ tem como me falar só como faço pra ver os pontos..pq prefiro usar o seu ai q v cpostou agora ^^

 

 

@Desculpe por outro post aki..eskeci de editar o outro. ;/

 

 

 

@Vodkart.Manow ce éh fods msm...kra ce tu me add no msn pesadeloxiter@hotmail.com (pode deixa q ñ enxo saco com msgs) eu tenhu o SKy no msn só falo com ele qdu estou com urgencia e keria seu msn pra mim pode pedir sua ajuda.

 

 

 

Vlw ae por tdu..

Editado Junho 25 por pesadeloxx

VodkartV
25 de junho de 2012 às 16:43

Vodkart. ñ sei como funciona o outro do link ae...+ tem como me falar só como faço pra ver os pontos..pq prefiro usar o seu ai q v cpostou agora ^^

 

 

@Desculpe por outro post aki..eskeci de editar o outro. ;/

 

fiz uma talk pra vc

 

function onSay(cid, words, param)
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você tem "..getAccountPoints(cid).." premium points.")
end

cs007C
29 de junho de 2012 às 00:54

Eu vou editar lá então^^ Eu ainda não fechei meu server então não sei se estava funfando ou não^^ vou arrumar la valeu