Jump to content
Close
Avante

Scripting Guild Bonus

Recommended Posts

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.


Share this post


Link to post
Share on other 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 


Share this post


Link to post
Share on other sites

Qual a versão do seu TFS?


Share this post


Link to post
Share on other sites

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

 


Edited by Lyu
troquei player por self (see edit history)

Share this post


Link to post
Share on other 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.


Share this post


Link to post
Share on other 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!


Share this post


Link to post
Share on other 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?



29543_2.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...