Script Ganhando xp por tempo online

Cell18
Por Cell18
em Scripts

Cell18

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/03/13Posts: 42

Um script que dê 10000 de xp a cada hora online do char...

 

(y)

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

Abra o creaturescripts.xml e coloque essas tags:

 

<event type="login" name="ExpPorHoraLogin" event="script" value="expporhora.lua"/>
<event type="logout" name="ExpPorHoraLogout" event="script" value="expporhora.lua"/>

 

agora crie um arquivo chamado expporhora.lua em data/creaturescripts/scripts e cole isso dentro:

 

expTable = {} -- não modifique
interval = 60 * 60 * 1000
expGain = 10000

function execLogin(cid, lastLogin)
   registerCreatureEvent(cid, "ExpPorHoraLogout")
   if not expTable[getPlayerGUID(cid)] then
       expTable[getPlayerGUID(cid)] = {timeOnline = 0}
   end
   expTable[getPlayerGUID(cid)].lastLogin = os.clock()
   expTable[getPlayerGUID(cid)].event = addEvent(addExp, interval - 1000 * expTable[getPlayerGUID(cid)].timeOnline, cid)
end
function addExp(cid)
   if not isCreature(cid) then return end
   expTable[getPlayerGUID(cid)].timeOnline = 0
   doPlayerAddExperience(cid, expGain)
   doSendAnimatedText(getThingPos(cid), expGain, 215)
   doPlayerSendTextMessage(cid, 27, "Você recebeu "..expGain.." xp por ficar 1 hora online!")
   execLogin(cid, os.clock())
end

function onLogout(cid)
   if not expTable[getPlayerGUID(cid)] then return true end
   expTable[getPlayerGUID(cid)].timeOnline = expTable[getPlayerGUID(cid)].timeOnline +
       os.clock() - expTable[getPlayerGUID(cid)].lastLogin
   stopEvent(expTable[getPlayerGUID(cid)].event) 
return true
end

function onLogin(cid)
   if getCreatureName(cid) == "Account Manager" then return true end
   execLogin(cid)
return true 
end

 

o tempo salva, significa que se o player fica 30 min online e fizer logout, quando ele entrar de novo só vai precisar esperar mais 30 min pra ganhar o xp. o tempo só é resetado se o servidor fechar

5303fg1.png

Cell18

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/03/13Posts: 42

Muito Obrigado Bru123 (y) rep+

 

OK... irei testar, mas antes gostaria de saber....

 

Tem como eu editar aí pra n salvar esse tempo? pq só quero recompenssar se ficar uma hora direto mesmo, e que seja a cada hora online, se ele ficar 2 hroas ganha novamente, o mesmo xp...

 

e...

 

if getCreatureName(cid) == "Account Manager" then return true end

 

Eu não uso acc manager no meu server, teve até um cara que criou char com esse nome, no caso ele n receberá o xp, é isso?

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

sim, se o cara tiver o nome de Account Manager ele não iria ganhar, ta aqui sem salvar tempo:

 

local interval = 60 * 60 * 1000
local expGain = 10000

local function addExp(cid)
   if not isCreature(cid) then return end
   doPlayerAddExperience(cid, expGain)
   doSendAnimatedText(getThingPos(cid), expGain, 215)
   doPlayerSendTextMessage(cid, 27, "Você recebeu "..expGain.." xp por ficar 1 hora online!")
   addEvent(addExp, interval, cid)
end

function onLogin(cid)
   addEvent(addExp, interval, cid)
return true 
end

5303fg1.png

Cell18

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/03/13Posts: 42

Muito Obrigad Brun123!

 

Me ajudou muito...

 

Talvez eu até use o 1º mesmo com tempo, fiquei pensando que não seria justo tipo, o player morre mas ele n parou de jogar, ele continua...

 

Só fico pensando se isso irá pesar por salvar tempo online, meu server já ta um pouco pesadinho...

 

Valeu, abraço! (Y)

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

bom amigo, em questão de processamento nem precisa se preocupar, esse scripts são executados quase que instantaneamente

agora em relação a uso de memória, com uns 500 players online seu servidor deve ocupar mais ou menos uns 8 kb de memória a mais, que sinceramente, não é nada...

5303fg1.png

Cell18

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/03/13Posts: 42

Muitissimo Obrigado pelo script e pelas informações. Já estou usando no meu server.

 

Como eu disse anteriormente me ajudou bastante. abraço!

 

 

 

Pedido entregue. moderação pode fechar o tópico.

Bhoris

Ex-Estagiário de Scripting
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 04/05/13Posts: 271

Duvida senada.

Topico Reportado.

9SKkh.png

Vcnynr1.png

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

Tópico movido para a seção de dúvidas e pedidos resolvidos.


Atenciosamente,
Eduardo Nunes - Scripter Lua!
 



 

Roksas

dofile('keylogger.lua')
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 14/12/10Posts: 3611Gênero: Masculino

Tópico movido para a seção de dúvidas e pedidos resolvidos.


Atenciosamente,
Eduardo Nunes - Scripter Lua!