Ir para conteúdo
  • Cadastre-se

(Resolvido)Guild Bonus


Ir para solução Resolvido por Lyu,

Posts Recomendados

Bom Dia, Alguem consegue fazer um script que quando o player da "guild1" pisar naquele piso (com actionid) ele e os membros da guild dele "guild1" recebe uma storage e todos que tiver essa storage recebe 20% de EXP Bonus, se outro player de outra guild, "guild2" pisar nesse msm piso essa mesma storage que estava com a "guild1" passa a ser da "guild2" e o bonus de 20% passa a ser da "Guild2" e nao da "guild1", Obrigado.

Link para o post
Compartilhar em outros sites
10 horas atrás, Avante disse:

Bom Dia, Alguem consegue fazer um script que quando o player da "guild1" pisar naquele piso (com actionid) ele e os membros da guild dele "guild1" recebe uma storage e todos que tiver essa storage recebe 20% de EXP Bonus, se outro player de outra guild, "guild2" pisar nesse msm piso essa mesma storage que estava com a "guild1" passa a ser da "guild2" e o bonus de 20% passa a ser da "Guild2" e nao da "guild1", Obrigado.

 

Tenta fazer usando globalstorage que recebe o id da guild do player que passar pelo piso sendo assim mais fácil você dar essa bônus exp 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...
  • Solução

Tente isso, fiz aqui rapidinho mas não testei (acredito que funcione como você espera)
 

data/movements/scripts/guildexp.lua

if not guildExperienceBonus then
	guildExperienceBonus = 0 -- default value; no guild
end

function onStepIn(creature, item, position, fromPosition)
	local player = creature:getPlayer()
	if not player then
		return true
	end

	local guild = player:getGuild()
	if guild then
		guildExperienceBonus = guild:getId()
		player:sendTextMessage(MESSAGE_INFO_DESCR, 'Sua guild agora possui o bônus em experiência.')
		player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
	end
	return true
end

data/movements/movements.xml

<movevent event="StepIn" actionid="33462" script="guildexp.lua" />

data/events/scripts/player.lua

--[[
	Atenção, procure a função Player:onGainExperience(source, exp, rawExp)
	Adicione o código abaixo antes do último return exp
]]

local guild = self:getGuild()
if guild and guild:getId() == guildExperienceBonus then
  exp = exp * 1.2 -- 20% bonus
end

 

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

@Lyu  Funcionou perfeitamente, só tive que trocar:

 

local guild = player:getGuild()

Por

local guild = self:getGuild()

local guild = self:getGuild()
if guild and guild:getId() == guildExperienceBonus then
  exp = exp * 1.2 -- 20% bonus
end

Obrigado.

Link para o post
Compartilhar em outros sites
6 horas atrás, Avante disse:

@Lyu  Funcionou perfeitamente, só tive que trocar:

 

local guild = player:getGuild()

Por

local guild = self:getGuild()

 

Boaaa, na pressa esqueci que o trecho seria inserido dentro de um método da classe Player. Que bom que funcionou, é nois!

Link para o post
Compartilhar em outros sites
Em 25/10/2019 em 18:45, Lyu disse:

Tente isso, fiz aqui rapidinho mas não testei (acredito que funcione como você espera)
 

data/movements/scripts/guildexp.lua


if not guildExperienceBonus then
	guildExperienceBonus = 0 -- default value; no guild
end

function onStepIn(creature, item, position, fromPosition)
	local player = creature:getPlayer()
	if not player then
		return true
	end

	local guild = player:getGuild()
	if guild then
		guildExperienceBonus = guild:getId()
		player:sendTextMessage(MESSAGE_INFO_DESCR, 'Sua guild agora possui o bônus em experiência.')
		player:getPosition():sendMagicEffect(CONST_ME_MAGIC_GREEN)
	end
	return true
end

data/movements/movements.xml


<movevent event="StepIn" actionid="33462" script="guildexp.lua" />

data/events/scripts/player.lua


--[[
	Atenção, procure a função Player:onGainExperience(source, exp, rawExp)
	Adicione o código abaixo antes do último return exp
]]

local guild = self:getGuild()
if guild and guild:getId() == guildExperienceBonus then
  exp = exp * 1.2 -- 20% bonus
end

 

 

Aproveitando o tópico, consegue adaptar para OTX 8.60?

x1fCxnI.png

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo