SM
sistema

Vip Exp Rate

Por SmiX, 21 de jun. de 2012 em Mods, funções e outros

by smix
script
7
2.5k
SmiXS
21 de junho de 2012 às 15:55

Olá galera não sei se estou na área correta, mas se não movam por favor.

Hoje vim aqui para saber como eu vou não área .LUA, para tal feito vou postar um system(mini) que fiz hoje demanha.

Nome: Vip Exp Rate – By SmiX

O que faz: Ela deixa você configurar a rate de um monstro que você também pode configurar.

Exemplo: Um player level 15 mata um “Cave Rat” ele ganhara 15 de exp. Caso ele seja vip ao matar um “Cave Rat” ele ganhar 25 de EXP. Depende de como você vai editar sua RATE.

 

Chega de delongas e vamos ao que interessa:

1° Vá em data/lib e crie um arquivo chamado VipExp e cole o código:

local mostersExp = {
["Cave Rat"] = { exp = 500 }
["Rat"] = { exp = 400 }
}
----- Vip Exp System By SmiX -----
ExpVipTable = {
[{1, 8}] = 5, -- Exp do Player 
[{9, 19}] = 4,
[{20, 39}] = 3,
[{40, 59}] = 2,
[{60, 79}] = 1.5,
[{80, 99}] = 1,
[{100, 9999}] = 0.5
}
for var, ret in pairs(ExpVipTable) do
if getPlayerLevel(cid) >= var[1] and getPlayerLevel(cid) <= var[2] then
setPlayerStorageValue(cid, 8567, ret)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You status of rate this changed for "..ret.."%.")
end
end
----- Vip Exp System By SmiX -----

 

 

--[[Configurando]]—

monsterVip = [“Aqui é o nome do Monster que vai estar neste system”] = { exp = Aqui e exp que ele vai dar * a local l1 = 5(dependo do level do Player

 

2° Vá em data/creaturescripts/script crie um arquivo chamado ExpVip e cole isso dentro:

 

local function doPlayerAddVipExp(cid, expp)
					doPlayerAddExp(cid, expp)
					doSendAnimatedText(getThingPos(cid), expp, 215)
end

function onDeath(cid, corpse, deathList)
	 for a = 1, #deathList do
		 local getMonster = deathList[a]
		 d = getCreatureName(cid)
		 local getExpMonster = mostersExp[d].exp
			   if isCreature(getMonster) then
				  doPlayerAddVipExp(getMonster, math.floor(getPlayerStorageValue(getMonster, 8567) * getExpMonster))
			   end

	 end
end  

 

3° Agora vá em login.LUA e antes do ultimo registerCreatureEvent(Cid) cole isso:

 

registerCreatureEvent(cid, "ExpVip")

 

4° e ultimo, vá em creaturescript.XML e cole a tag abaixo:

 

<event type="death" name="ExpVip" event="script" value="ExpVip.lua">

 

Pronto, agora as restriões.

Caso seu Server esteja com o config.LUA e nele esteja isso (experienceStages = true) coloque false.

 

Pronto galera acho que não esqueci de nada, mas por favor criticas e sugestões são bem vindas.</event>

Editado Junho 26 por SmiX

VincV
21 de junho de 2012 às 18:58

se deu register errado se deu register no player,tinha que te posto no monster que ele ta matando usando onCombat,onTarget,onAttack ou pela xml do monster mesmo

caoticC
21 de junho de 2012 às 19:06

Muito bom mais ainda acho que dava para simplicar bastante criando umas tabelinhas mais curtas e com melhor configuraçao.

 

Mais esta otimo.

SmiXS
23 de junho de 2012 às 11:59

Ok galera, mas se alguem quiser me ajudar a aprender mais com tabelas, ficarei agradecido.

VodkartV
23 de junho de 2012 às 13:09

acho que assim funciona:

 

ExpVipTable = {
[{1, 8}] = 5,
[{9, 19}] = 4,
[{20, 39}] = 3,
[{40, 59}] = 2,
[{60, 79}] = 1.5,
[{80, 99}] = 1,
[{100, 9999}] = 0.5
}
for var, ret in pairs(ExpVipTable) do
if getPlayerLevel(cid) >= var[1] and getPlayerLevel(cid) <= var[2] then
setPlayerStorageValue(cid, 8567, ret)
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You status of rate this changed for "..ret.."%.")
end
end

Editado Junho 23 por Vodkart

SmiXS
26 de junho de 2012 às 16:36

@Edited

Vlw vodkart

1 ano depois...
renataptR
20 de abril de 2014 às 01:04

Oi Gostava esse vip exp so queria para poketibia com item de vip exp com tempo e quando acabar tempo de vip o item sume por explemo tenho vip exp por 3 horas e ficar jogado ou ficar off e item de vip exp acaba tempo de 3 horas e ela sume.

 

Da para fazer isso? para poketibia meu :* espero responda :D