Ir para conteúdo
  • Cadastre-se

(Resolvido)script de skills por stages para otserv 10.00 e 11.00


Ir para solução Resolvido por FlavioHulk,

Posts Recomendados

se alguem tiver algum script para SKILLS POR STAGES por favor ajuda! os que tem no tibiaking não funcionaram para mim crei que seja porque são antigos bem n entendo, mas nao fuincionou!

Link para o post
Compartilhar em outros sites
local config = {
	-- base vocationId
	[1] = {
		-- skillId
		[SKILL_FIST] = {
			-- [{skillLevel}] = skillRate
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_CLUB] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_SWORD] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_AXE] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_DISTANCE] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_SHIELD] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_FISHING] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_MAGLEVEL] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		}
	}
}

--[[
function Vocation.getBase(self)
	local demotion = self:getDemotion()
	while demotion do
		local tmp = demotion:getDemotion()
		if not tmp then
			return demotion
		end
		demotion = tmp
	end
	return self
end
]]

local function getSkillRate(player, skillId)
	local targetVocation = config[player:getVocation():getBase():getId()]
	if targetVocation then
		local targetSkillStage = targetVocation[skillId]
		if targetSkillStage then
			local skillLevel = player:getSkillLevel(skillId)
			for level, rate in pairs(targetSkillStage) do
				if skillLevel >= level[1] and skillLevel <= level[2] then
					return rate
				end
			end
		end
	end

	return skillId == SKILL_MAGLEVEL and configManager.getNumber(configKeys.RATE_MAGIC) or configManager.getNumber(configKeys.RATE_SKILL)
end

function Player:onGainSkillTries(skill, tries)
	if not APPLY_SKILL_MULTIPLIER then
		return tries
	end

	return tries * getSkillRate(self, skill)
end

 

Link para o post
Compartilhar em outros sites

coloquei apareceu esse erro [Warning - Event::checkScript] Event onAdvance not found. scripts/skillstages.lua

 

sabe o q é ?

coloquei certinho

 

na pasta creaturescript/script/criei o arquinho skillstages.lua

 

e em creaturescript 

 

    <event type="advance" name="SkillStages" script="skillstages.lua" />

 

 

Editado por JofreCorreia (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 3 weeks later...

desculpe responder depois de tanto tempo, coloquei porém não fez diferença, não deu erro tbm, mas é como nao foi ativado e o Rateskill que esta valendo é o do 

 

Config.lua

 

Link para o post
Compartilhar em outros sites

@JofreCorreia em events/scripts/player.lua adicione:

Spoiler

local config = {
	-- base vocationId
	[1] = {
		-- skillId
		[SKILL_FIST] = {
			-- [{skillLevel}] = skillRate
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_CLUB] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_SWORD] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_AXE] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_DISTANCE] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_SHIELD] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_FISHING] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_MAGLEVEL] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		}
	}
}

--[[
function Vocation.getBase(self)
	local demotion = self:getDemotion()
	while demotion do
		local tmp = demotion:getDemotion()
		if not tmp then
			return demotion
		end
		demotion = tmp
	end
	return self
end
]]

local function getSkillRate(player, skillId)
	local targetVocation = config[player:getVocation():getBase():getId()]
	if targetVocation then
		local targetSkillStage = targetVocation[skillId]
		if targetSkillStage then
			local skillLevel = player:getSkillLevel(skillId)
			for level, rate in pairs(targetSkillStage) do
				if skillLevel >= level[1] and skillLevel <= level[2] then
					return rate
				end
			end
		end
	end

	return skillId == SKILL_MAGLEVEL and configManager.getNumber(configKeys.RATE_MAGIC) or configManager.getNumber(configKeys.RATE_SKILL)
end

 

 

ainda em events/scripts/player.lua procure por:

function Player:onGainSkillTries(skill, tries)
	if APPLY_SKILL_MULTIPLIER == false then
		return tries
	end

	if skill == SKILL_MAGLEVEL then
		return tries * configManager.getNumber(configKeys.RATE_MAGIC)
	end
	return tries * configManager.getNumber(configKeys.RATE_SKILL)
end

troque por:

function Player:onGainSkillTries(skill, tries)
	if not APPLY_SKILL_MULTIPLIER then
		return tries
	end

	return tries * getSkillRate(self, skill)
end

 

                                                              ezgif-1-98aab239f3.gif.1a897c9c3225228909e7b356a5cfb8e4.gif

Link para o post
Compartilhar em outros sites
  • Solução
Em 01/04/2018 em 22:44, Jobs disse:

local config = {
	-- base vocationId
	[1] = {
		-- skillId
		[SKILL_FIST] = {
			-- [{skillLevel}] = skillRate
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_CLUB] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_SWORD] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_AXE] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_DISTANCE] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_SHIELD] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_FISHING] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		},
		[SKILL_MAGLEVEL] = {
			[{10, 19}] = 10,
			[{20, 29}] = 5
		}
	}
}

--[[
function Vocation.getBase(self)
	local demotion = self:getDemotion()
	while demotion do
		local tmp = demotion:getDemotion()
		if not tmp then
			return demotion
		end
		demotion = tmp
	end
	return self
end
]]

local function getSkillRate(player, skillId)
	local targetVocation = config[player:getVocation():getBase():getId()]
	if targetVocation then
		local targetSkillStage = targetVocation[skillId]
		if targetSkillStage then
			local skillLevel = player:getSkillLevel(skillId)
			for level, rate in pairs(targetSkillStage) do
				if skillLevel >= level[1] and skillLevel <= level[2] then
					return rate
				end
			end
		end
	end

	return skillId == SKILL_MAGLEVEL and configManager.getNumber(configKeys.RATE_MAGIC) or configManager.getNumber(configKeys.RATE_SKILL)
end

function Player:onGainSkillTries(skill, tries)
	if not APPLY_SKILL_MULTIPLIER then
		return tries
	end

	return tries * getSkillRate(self, skill)
end

 

Créditos ao Ninja do otland, né?

Link para o post
Compartilhar em outros sites
1 hora atrás, FlavioHulk disse:

Créditos ao Ninja do otland, né?

sim, não sei lua, já disse mil vezes aqui, todos tópicos que eu ajudo, é porque pesquiso ou já fiz no meu servidor e ajudo. :)

Link para o post
Compartilhar em outros sites
1 hora atrás, Jobs disse:

sim, não sei lua, já disse mil vezes aqui, todos tópicos que eu ajudo, é porque pesquiso ou já fiz no meu servidor e ajudo. :)

Então me desculpe, meu caro !
Ótimo trabalho a você, e continue ajudando como todo fórum deve ser :D

Link para o post
Compartilhar em outros sites
  • 1 month later...

Eu não consegui colocar direito no servidor. Aparece a seguinte mensagem:

 image.thumb.png.6878493c5600a6fa78e84622e5a5b84d.png

 

Segui todos os passos, porém não deu certo!

na config.lua eu coloquei 0 no skill e na ML. Também tentei colocando 1, mas não funcionou.

23 horas atrás, FlavioHulk disse:

Cara, esse script é para o TFS 1.3

Se puder ajudar eu agradeço cara!

Link para o post
Compartilhar em outros sites
6 minutos atrás, Beloria disse:

Eu não consegui colocar direito no servidor. Aparece a seguinte mensagem:

 image.thumb.png.6878493c5600a6fa78e84622e5a5b84d.png

 

Segui todos os passos, porém não deu certo!

na config.lua eu coloquei 0 no skill e na ML. Também tentei colocando 1, mas não funcionou.

Se puder ajudar eu agradeço cara!

Poste seu player.lua aqui

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