Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Bonus de EXP para PREMIUM ACCOUNT para TFS 1.0


Ir para solução Resolvido por luanluciano93,

Posts Recomendados

Alguem teria esse script de bonus exp para premium account?

Ex: um player free ta com exp de 100x

      um premium ta com exp de 200x (2x +)

 

Uso TFS 1.0 e é bastante interessante essa script!
quem tiver seria legal!

+REP pra quem postar!

Link para o post
Compartilhar em outros sites

 

Também querem...

mais não tiveram solução :)

Link para o post
Compartilhar em outros sites

Testa essa bagacera ai .. 

-- <event type="kill" name="Exp_Extra" event="script" value="luan_gato.lua"/>
-- in login.lua add event: registerCreatureEvent(cid, "Exp_Extra")

function onKill(cid, target, lastHit)
	
	if isPremium(cid) then
		local monster = Monster(target)
		if not monster then
			return true
		end

		for id, damage in pairs(monster:getDamageMap()) do
			local player = Player(id)
			if player then
				local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience() 
				local expFormula = (experience * 0.20)
				player:addExperience(math.floor(expFormula), true)
			end
		end
	end

	return true
end

2bjs gatu.

Link para o post
Compartilhar em outros sites

Testa essa bagacera ai .. 

-- <event type="kill" name="Exp_Extra" event="script" value="luan_gato.lua"/>
-- in login.lua add event: registerCreatureEvent(cid, "Exp_Extra")

function onKill(cid, target, lastHit)
	
	if isPremium(cid) then
		local monster = Monster(target)
		if not monster then
			return true
		end

		for id, damage in pairs(monster:getDamageMap()) do
			local player = Player(id)
			if player then
				local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience() 
				local expFormula = (experience * 0.20)
				player:addExperience(math.floor(expFormula), true)
			end
		end
	end

	return true
end

2bjs gatu.

 

Tamben quero por esse sistema pode me Diser passo a passo como boota isso ?

 

 

 

 

 

 

Link para o post
Compartilhar em outros sites

@iErrorzz, se o seu TFS for 1.0, vá em creaturescript/script e crie um arquivo lua com o nome luan_gato.lua e depois coloque esse código dentro:

function onKill(cid, target, lastHit)
	
	if isPremium(cid) then
		local monster = Monster(target)
		if not monster then
			return true
		end

		for id, damage in pairs(monster:getDamageMap()) do
			local player = Player(id)
			if player then
				local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience() 
				local expFormula = (experience * 0.20)
				player:addExperience(math.floor(expFormula), true)
			end
		end
	end

	return true
end

Depois coloque a seguinte tag em creaturescript/creaturescript.xml:

<event type="kill" name="Exp_Extra" script="luan_gato.lua"/>

E por ultimo registre o evento em creaturescripts/scripts/login.lua:

registerCreatureEvent(cid, "Exp_Extra")

Simples e fácil.

Link para o post
Compartilhar em outros sites

Ok!

Funcionando perfeitamente!

mais no login.lua você temque por assim cara:

player:registerEvent("luan_pica_denoistodos")

do jeito que você colocou aqui se não me engano só serve para 8.60

no resto esta perfeito!

Teria como colocar pra aparecer quando o player logasse uma mensagem?

"Você ainda tem 10 dias de premium account - aproveite a EXP em Dobro"

coisa do tipo? :D:D!

 

MUITOOOO OBRIGADO MEU GATO!

Você é foda!

Você é o TK! õ/

Editado por TioSlash (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Reformulando ... coloquei o evento lá que tu falou e fz uma variavel para a porcentagem que vai ganhar de XP.

-- <event type="kill" name="Exp_Extra" event="script" value="luan_gato.lua"/>
-- in login.lua add event: player:registerEvent("Exp_Extra")

local rate = 20 --- porcentagem que irá ganhar a mais.

function onKill(cid, target, lastHit)
	
	if isPremium(cid) then
		local monster = Monster(target)
		if not monster then
			return true
		end

		for id, damage in pairs(monster:getDamageMap()) do
			local player = Player(id)
			if player then
				local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience() 
				local expFormula = ((experience / 100) * rate)
				player:addExperience(math.floor(expFormula), true)
			end
		end
	end

	return true
end

Sobre a mensagem, vê se em creaturescript tem o arquivo login.lua, se tiver poste ele em spoiler .. 

Link para o post
Compartilhar em outros sites

function onLogin(cid)

local player = Player(cid)

local loginStr = "Welcome to " .. configManager.getString(configKeys.SERVER_NAME) .. "!"

if player:getLastLoginSaved() <= 0 then

loginStr = loginStr .. " Please choose your outfit."

player:sendTutorial(1)

else

if loginStr ~= "" then

player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)

end

loginStr = string.format("Your last visit was on %s.", os.date("%a %b %d %X %Y", player:getLastLoginSaved()))

end

player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)

player:registerEvent("PlayerDeath")

player:registerEvent("bigfootBurdenQuestVesperoth")

player:registerEvent("bigfootBurdenQuestWarzone")

player:registerEvent("bigfootBurdenQuestWeeper")

player:registerEvent("bigfootBurdenQuestWiggler")

player:registerEvent("bossSummoning")

player:registerEvent("theNewFrontierQuestShardOfCorruption")

player:registerEvent("theNewFrontierQuestTirecz")

player:registerEvent("inServiceOfYalaharQuestsDiseased")

player:registerEvent("inServiceOfYalaharQuestsMorik")

player:registerEvent("inServiceOfYalaharQuestsQuara")

player:registerEvent("inquisitionQuestBosses")

player:registerEvent("inquisitionQuestUngreez")

player:registerEvent("killingInTheNameOfQuestKills")

player:registerEvent("masterVoiceQuest")

player:registerEvent("elementalspheresquestOverlords")

player:registerEvent("SvargrondArenaKill")

player:registerEvent("AdvanceSave")

player:registerEvent("StorageConversion")

player:registerEvent("rookgaardCockroach")

player:registerEvent("luan_pica_denoistodos")

--Others

player:stopMove(false)

return true

end

Editado por TioSlash (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Nem testei, kk

function onLogin(cid)
	
	local player = Player(cid)
	
	local loginStr = "Welcome to " .. configManager.getString(configKeys.SERVER_NAME) .. "!"	
	if player:getLastLoginSaved() <= 0 then
		loginStr = loginStr .. " Please choose your outfit."
		player:sendTutorial(1)
	else
		if loginStr ~= "" then
			player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
		end
		loginStr = string.format("Your last visit was on %s.", os.date("%a %b %d %X %Y", player:getLastLoginSaved()))
	end
	
	local mensagem_premium = "You have "..player:getPremiumDays().." and 20% more experience."
	if isPremium(cid) then
		player:sendTextMessage(MESSAGE_STATUS_DEFAULT, mensagem_premium)
	end
	
	player:registerEvent("PlayerDeath")
	player:registerEvent("bigfootBurdenQuestVesperoth")
	player:registerEvent("bigfootBurdenQuestWarzone")
	player:registerEvent("bigfootBurdenQuestWeeper")
	player:registerEvent("bigfootBurdenQuestWiggler")
	player:registerEvent("bossSummoning")
	player:registerEvent("theNewFrontierQuestShardOfCorruption")
	player:registerEvent("theNewFrontierQuestTirecz")
	player:registerEvent("inServiceOfYalaharQuestsDiseased")
	player:registerEvent("inServiceOfYalaharQuestsMorik")
	player:registerEvent("inServiceOfYalaharQuestsQuara")
	player:registerEvent("inquisitionQuestBosses")
	player:registerEvent("inquisitionQuestUngreez")
	player:registerEvent("killingInTheNameOfQuestKills")
	player:registerEvent("masterVoiceQuest")
	player:registerEvent("elementalspheresquestOverlords")
	player:registerEvent("SvargrondArenaKill")
	player:registerEvent("AdvanceSave")
	player:registerEvent("StorageConversion")
	player:registerEvent("rookgaardCockroach")
	player:registerEvent("luan_pica_denoistodos")
	
	--Others
	player:stopMove(false)
	
	return true
end

 

Só para ficar claro, eu add isso:

	local mensagem_premium = "You have "..player:getPremiumDays().." and 20% more experience."
	if isPremium(cid) then
		player:sendTextMessage(MESSAGE_STATUS_DEFAULT, mensagem_premium)
	end

A unica coisa que tu precisa editar é a primeira linha disso que eu adicionei.

Link para o post
Compartilhar em outros sites

Eu sou metido e to tentando aprender a mexer com isso também!
e fiz assim:

local mensagem_premium = "Voce tem "..player:getPremiumDays().." dia(s) de premium account - Enquanto estiver Premium Account sua EXP sera em DOBRO + o Bonus de EXP da Estamina!"[/size]
local mensagem_free = "Voce nao tem premium account. Acesse nosso site, adquira agora mesmo 30 dias de premium accounts e ganha o dobro de EXP!"
 
if isPremium(cid) then
player:sendTextMessage(MESSAGE_STATUS_DEFAULT, mensagem_premium)
else
player:sendTextMessage(MESSAGE_STATUS_DEFAULT, mensagem_free)
end

hehe! :D

valeu Luangato!

+REP 

+MelhorResposta

Editado por TioSlash (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

oh Luan,
eu tava testando ele com RateEXP = 1
dae coloquei Rate EXP = 5
e ficou meio confuso.
Ex: Player Premium Mata um Rat (5EXP*5Rate = 25) e ganha + 5 da EXP Premium Bonus
ou Seja
Inves dele da 50 de EXP (25 da Rate e o Dobro do Script) ele ta dando 30
é como se a premium exp estivesse sem olhar a rate do server e só da a EXP pura do bixo.
segue em spoiler o script que to usando:

local rate = 20 --- porcentagem que irá ganhar a mais.



function onKill(cid, target, lastHit)

if isPremium(cid) then
local monster = Monster(target)
if not monster then
return true
end

for id, damage in pairs(monster:getDamageMap()) do
local player = Player(id)
if player then
local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience()
local expFormula = ((experience / 100) * rate)
player:addExperience(math.floor(expFormula), true)
end
end
end

return true
end

Link para o post
Compartilhar em outros sites
  • Solução
-- <event type="kill" name="Exp_Extra" event="script" value="luan_gato.lua"/>
-- in login.lua add event: player:registerEvent("Exp_Extra")

local rate = 20 --- porcentagem que irá ganhar a mais.

function onKill(cid, target, lastHit)
	
	if isPremium(cid) then
		local monster = Monster(target)
		if not monster then
			return true
		end

		for id, damage in pairs(monster:getDamageMap()) do
			local player = Player(id)
			if player then

				local experience = damage.total / monster:getType():getHealth() * monster:getType():getExperience() 
				local expFormula = (((experience * Game.getExperienceStage(player:getLevel())) / 100) * rate)
				player:addExperience(math.floor(expFormula), true)
			end
		end
	end

	return true
end
Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo