Ir para conteúdo

Exp Extra


godshiryu

Posts Recomendados

Olá a todos. Vim aqui pois estou com duvida num script.

Meu servidor possui Exp Extra para os jogadores vip (30%), nesse script:

function onLogin(cid)

local rate = 1.3 -- 30%
local config = {
vip = "Você tem "..((rate - 1)*100).."% de exp a mais agora!",
notvip = "Tornesse vip e ganhe "..((rate - 1)*100).."% a mais de experiencia!",
}

if vip.hasVip(cid) == TRUE then
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.vip)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.notvip)
end
return TRUE
end

 

E vip extra pra quem conquistou o castelo (20%), nesse script:

dofile("./_woe.lua")

function onLogin(cid)
   Woe.getInfo()
   local Guild_ID = getPlayerGuildId(cid)
   if (Guild_ID == infoLua[2]) and (infoLua[2] ~= 0) then
       doPlayerSetExperienceRate(cid, 1.20)    -- here
       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your guild has won the last War of Emperium, for that reason you have 20% extra experience.")
   end
   return true
end

 

Quem ganhou o castelo e é vip, o certo é ganhar 50% de vip extra, mas não ta dando, ta dando só 30 %

Tentei editar um script pra ganhar 50% de exp, esse:

dofile("./_woe.lua")
function onLogin(cid)
   Woe.getInfo()
   local Guild_ID = getPlayerGuildId(cid)
local rate = 1.5 -- 50%
local config = {
vipecastle = "Logo voce tem "..((rate - 1)*100).."% de exp a mais por ter conquistado o castelo e ser vip!",
notviporcastle = "Tornesse vip e ganhe "..((rate - 1)*100).."% a mais de experiencia!",
}

if (vip.hasVip(cid) == TRUE) and (Guild_ID == infoLua[2]) and (infoLua[2] ~= 0) then
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.vipecastle)
else

end
return TRUE
end

Mas nao deu muito certo, alguem pode me dizer o que tem de errado? Grato

Link para o comentário
Compartilhar em outros sites

Faz o seguinte,coloca tudo em um script só,o do bonus exp para vip e o do bonus exp para do catelo:

 


dofile("./_woe.lua")
function onLogin(cid)
Woe.getInfo()
local Guild_ID = getPlayerGuildId(cid)
if vip.hasVip(cid) == TRUE then
rate = 1.3
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você tem "..((rate - 1)*100).."% de exp a mais agora!")
elseif (vip.hasVip(cid) == TRUE) and (Guild_ID == infoLua[2]) and (infoLua[2] ~= 0) then
rate = 1.5
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você tem "..((rate - 1)*100).."% de exp a mais agora!")
elseif (Guild_ID == infoLua[2]) and (infoLua[2] ~= 0) then
rate = 1.2
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your guild has won the last War of Emperium, for that reason you have "..((rate - 1)*100).."% extra experience.")
else
rate = 1.3
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Tornesse vip e ganhe "..((rate - 1)*100).."% a mais de experiencia!")
end
return TRUE
end

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

do jeito q vc quer

 

dofile("./_woe.lua")
--Edited By Eskylo <XTibia.com>
function onLogin(cid)
rate = 20 --porcentagem extra ao ganhar, se NÃO for vip
ratevip = 50 --porcentagem extra ao ganhar, SE for vip
Woe.getInfo()
local Guild_ID = getPlayerGuildId(cid)
if (Guild_ID == infoLua[2]) and (infoLua[2] ~= 0) then
 if vip.hasVip(cid) == TRUE then
  doPlayerSetExperienceRate(cid, 1+(ratevip/100))
 else
  doPlayerSetExperienceRate(cid, 1+(rate/100))
 end
 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your guild has won the last War of Emperium, for that reason you have 20% extra experience.")
return true
end

 

mals vod, vc n tinha respondido ainda qund acessei o topico, deixo oq eu fiz mesmo achando sua proposta mais interessante

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

Nao deu ganhando a exp do monstro vezes a exp do servidor + 50% + 30%

Por exemplo:

Dragon Lord 2100 de Exp.

Rate do server 25

2100*25+50% = 78750

Ele ganha 102375. Como posso arrumar isto?

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

Vou ti explicar o que fazer: Pegue um storage pra quando o player VIP logar, ele setar esse storage, ai no outro script do WOE, se edita esse mesmo store, e faz uma função pra retirar esses 30% de xp e adicionar 50% de xp, ou seja, assim ficando apenas os 80% (que é VIP + WOE), é simples, se tu não conseguir fazer isso, só postar ai que eu ti mando pronto ;D

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

Ow Godshyriu.....esse seu script do castelo é pra quem mata o bixo ganha 20% de exp neh, ou alguma coisa assin....? Se for tu pode me passa por favor, ou se tiver algum tópico dele ake no xtibia...é q faz mt tempo q ja q eu ando procurando e nao acho, ai eu postei pra ver se alguem fazia ake no Xtibia e ngm conseguil faze tb......se der pra tu me passa eu agradeço mt mt mt

Link para o comentário
Compartilhar em outros sites

Da o bonus para os vips:

 

function onLogin(cid)

local rate = 1.3 -- 30%
local config = {
vip = "Você tem "..((rate - 1)*100).."% de exp a mais agora!",
notvip = "Tornesse vip e ganhe "..((rate - 1)*100).."% a mais de experiencia!",
storage = 343434
}

if vip.hasVip(cid) == TRUE then
doPlayerSetExperienceRate(cid, rate)
setPlayerStorageValue(cid, config.storage, 1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.vip)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.notvip)
end
return TRUE
end

 

Da xp pros que ganharam o casttle e são free:

dofile("./_woe.lua")

function onLogin(cid)
local config = {
storage = 343434
}
   Woe.getInfo()
   local Guild_ID = getPlayerGuildId(cid)
   if (vip.hasVip(cid) == FALSE) and(Guild_ID == infoLua[2]) and (infoLua[2] ~= 0) and getPlayerStorageValue(cid, config.storage) < 0 then
    doPlayerSetExperienceRate(cid, 1.20)    -- here
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your guild has won the last War of Emperium, for that reason you have 20% extra experience.")
   end
   if (vip.hasVip(cid) == FALSE) and(Guild_ID == infoLua[2]) and (infoLua[2] ~= 0) and getPlayerStorageValue(cid, config.storage) == 1 then
    doPlayerSetExperienceRate(cid, 1.50)    -- here
       setPlayerStorageValue(cid, config.storage, 2)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your guild has won the last War of Emperium, for that reason you have 20% extra experience.")
   end
   return true
end

 

Da XP pra quem é VIP e ganhou casttle:

dofile("./_woe.lua")
function onLogin(cid)
Woe.getInfo()
local Guild_ID = getPlayerGuildId(cid)
local rate = 1.5 -- 50%
local rate2 = 1.7 -- 70%
local config = {
vipecastle = "Logo voce tem "..((rate - 1)*100).."% de exp a mais por ter conquistado o castelo e ser vip!",
notviporcastle = "Tornesse vip e ganhe "..((rate - 1)*100).."% a mais de experiencia!",
storage = 343434
}

if (vip.hasVip(cid) == TRUE) and (Guild_ID == infoLua[2]) and (infoLua[2] ~= 0) and getPlayerStorageValue(cid, config.storage) < 0 then
doPlayerSetExperienceRate(cid, rate)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.vipecastle)
end

if (vip.hasVip(cid) == TRUE) and (Guild_ID == infoLua[2]) and (infoLua[2] ~= 0) and getPlayerStorageValue(cid, config.storage) == 1 then
doPlayerSetExperienceRate(cid, rate2)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.vipecastle)
end
return TRUE
end

 

Depois disso ai quero meu REP+ em u-u kkkk

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...