Ir para conteúdo
  • 0

ML upando igual em todos os niveis


GGgames

Pergunta

Estou com um problema no meu otserv que notei somente agora...

 

O magic level dos players está sempre com o mesmo "peso" para upar...

 

Por exemplo, caso um player, ML 5, fale "regeneration", ele upa um de magic level.

Se algum player ML 90, conjuga a magia "regeneration" também irá upar 1 de ML.

 

 

A principio eu achava que o problema era no config.lua -- RATES --, mas mesmo assim lá está -> rateMagic = 1.0

 

Alguém sabe pq quanto mais auto meu ML, não fica mais dificil upa-lo?

 

Obrigado!

 

aqui está meu config.lua:

-- The Forgotten Server Config

	-- Account manager
	accountManager = true
	namelockManager = true
	newPlayerChooseVoc = true
	newPlayerSpawnPosX = 1027
	newPlayerSpawnPosY = 912
	newPlayerSpawnPosZ = 5
	newPlayerTownId = 1
	newPlayerLevel = 1
	newPlayerMagicLevel = 1
	generateAccountNumber = false

	-- Unjustified kills
	-- NOTE: *Banishment and *BlackSkull variables are >summed up<
	-- (dailyFragsToRedSkull + dailyFragsToBanishment) with their
	-- *RedSkull equivalents.
	-- Auto banishing works only if useBlackSkull set to negative.
	-- advancedFragList is not advised if you use huge frags
	-- requirements.
	redSkullLength = 30 * 24 * 60 * 60
	blackSkullLength = 45 * 24 * 60 * 60
	dailyFragsToRedSkull = 6
	weeklyFragsToRedSkull = 30
	monthlyFragsToRedSkull = 60
	dailyFragsToBlackSkull = dailyFragsToRedSkull
	weeklyFragsToBlackSkull = weeklyFragsToRedSkull
	monthlyFragsToBlackSkull = monthlyFragsToRedSkull
	dailyFragsToBanishment = dailyFragsToRedSkull
	weeklyFragsToBanishment = weeklyFragsToRedSkull
	monthlyFragsToBanishment = monthlyFragsToRedSkull
	blackSkulledDeathHealth = 40
	blackSkulledDeathMana = 0
	useBlackSkull = true
	useFragHandler = true
	advancedFragList = false

	-- Banishments
	-- violationNameReportActionType 1 = just a report, 2 = name lock, 3 = player banishment
	-- killsBanLength works only if useBlackSkull option is disabled.
	notationsToBan = 10
	warningsToFinalBan = 4
	warningsToDeletion = 5
	banLength = 7 * 24 * 60 * 60
	killsBanLength = 7 * 24 * 60 * 60
	finalBanLength = 30 * 24 * 60 * 60
	ipBanishmentLength = 1 * 24 * 60 * 60
	broadcastBanishments = true
	maxViolationCommentSize = 200
	violationNameReportActionType = 2
	autoBanishUnknownBytes = false

	-- Battle
	-- NOTE: showHealingDamageForMonsters inheritates from showHealingDamage.
	-- loginProtectionPeriod is the famous Tibia anti-magebomb system.
	-- deathLostPercent set to nil enables manual mode.
	worldType = "pvp"
	protectionLevel = 99
	pvpTileIgnoreLevelAndVocationProtection = true
	pzLocked = 60 * 1000
	huntingDuration = 60 * 1000
	criticalHitChance = 7
	criticalHitMultiplier = 1
	displayCriticalHitNotify = false
	removeWeaponAmmunition = true
	removeWeaponCharges = false
	removeRuneCharges = true
	whiteSkullTime = 15 * 60 * 1000
	noDamageToSameLookfeet = false
	showHealingDamage = true
	showHealingDamageForMonsters = false
	fieldOwnershipDuration = 5 * 1000
	stopAttackingAtExit = true
	oldConditionAccuracy = false
	loginProtectionPeriod = 10 * 1000
	deathLostPercent = 5
	stairhopDelay = 2 * 1000
	pushCreatureDelay = 1 * 1000
	deathContainerId = 1987
	gainExperienceColor = 2215
	addManaSpentInPvPZone = true
	squareColor = 0
	allowFightback = true

	-- Connection config
	worldId = 0
	ip = "189.35.187.55"
	bindOnlyConfiguredIpAddress = false
	loginPort = 7171
	gamePort = 7172
	adminPort = 7171
	statusPort = 7171
	loginTries = 10
	retryTimeout = 5 * 1000
	loginTimeout = 60 * 1000
	maxPlayers = 125
	motd = "Bem Vindo ao NarutoShinobi!"
	displayOnOrOffAtCharlist = false
	onePlayerOnlinePerAccount = false
	allowClones = false
	serverName = "NarutoShinobi"
	loginMessage = "Bem Vindo ao Naruto Shinobi Online."
	statusTimeout = 5 * 60 * 1000
	replaceKickOnLogin = true
	forceSlowConnectionsToDisconnect = false
	loginOnlyWithLoginServer = false
	premiumPlayerSkipWaitList = false

	-- Database
	-- NOTE: sqlFile is used only by sqlite database, and sqlKeepAlive by mysql database.
	-- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value.
	sqlType = "sqlite"
	sqlHost = "localhost"
	sqlPort = 3306
	sqlUser = "root"
	sqlPass = ""
	sqlDatabase = "forgottenserver"
	sqlFile = "forgottenserver.s3db"
	sqlKeepAlive = 0
	mysqlReadTimeout = 10
	mysqlWriteTimeout = 10
	encryptionType = "sha1"

	-- Deathlist
	deathListEnabled = true
	deathListRequiredTime = 1 * 60 * 1000
	deathAssistCount = 19
	maxDeathRecords = 5

	-- Guilds
	ingameGuildManagement = true
	levelToFormGuild = 100
	premiumDaysToFormGuild = 0
	guildNameMinLength = 3
	guildNameMaxLength = 20

	-- Highscores
	highscoreDisplayPlayers = 15
	updateHighscoresAfterMinutes = 60

	-- Houses
	buyableAndSellableHouses = true
	houseNeedPremium = false
	bedsRequirePremium = false
	levelToBuyHouse = 110
	housesPerAccount = 0
	houseRentAsPrice = false
	housePriceAsRent = false
	housePriceEachSquare = 5000
	houseRentPeriod = "week"
	houseCleanOld = 0
	guildHalls = false

	-- Item usage
	timeBetweenActions = 200
	timeBetweenExActions = 1000
	hotkeyAimbotEnabled = true

	-- Map
	-- NOTE: storeTrash costs more memory, but will perform alot faster cleaning.
	mapName = "nowo"
	mapAuthor = "Lks"
	randomizeTiles = true
	storeTrash = true
	cleanProtectedZones = true
	mailboxDisabledTowns = "-1"

	-- Process
	-- NOTE: defaultPriority works only on Windows and niceLevel on *nix
	-- coresUsed are seperated by comma cores ids used by server process,
	-- default is -1, so it stays untouched (automaticaly assigned by OS).
	defaultPriority = "high"
	niceLevel = 5
	coresUsed = "-1"

	-- Startup
	optimizeDatabaseAtStartup = true
	removePremiumOnInit = true
	confirmOutdatedVersion = false

	-- Spells
	formulaLevel = 5.0
	formulaMagic = 1.0
	bufferMutedOnSpellFailure = false
	spellNameInsteadOfWords = true
	emoteSpells = true

	-- Outfits
	allowChangeOutfit = false
	allowChangeColors = false
	allowChangeAddons = false
	disableOutfitsForPrivilegedPlayers = true
	addonsOnlyPremium = true

	-- Miscellaneous
	-- NOTE: promptExceptionTracerErrorBox works only with precompiled support feature,
	-- called "exception tracer" (__EXCEPTION_TRACER__ flag).
	dataDirectory = "data/"
	bankSystem = true
	displaySkillLevelOnAdvance = true
	promptExceptionTracerErrorBox = true
	separateViplistPerCharacter = false
	maximumDoorLevel = 500
	maxMessageBuffer = 20

	-- Saving-related
	-- useHouseDataStorage usage may be found at README.
	saveGlobalStorage = true
	useHouseDataStorage = false
	storePlayerDirection = false

	-- Loot
	-- monsterLootMessage 0 to disable, 1 - only party, 2 - only player, 3 - party or player (like Tibia's)
	checkCorpseOwner = true
	monsterLootMessage = 3
	monsterLootMessageType = 25

	-- Ghost mode
	ghostModeInvisibleEffect = false
	ghostModeSpellEffects = true

	-- Limits
	idleWarningTime = 14 * 60 * 1000
	idleKickTime = 30 * 60 * 1000
	expireReportsAfterReads = 1
	playerQueryDeepness = 2
	maxItemsPerPZTile = 0
	maxItemsPerHouseTile = 0

	-- Premium-related
	freePremium = false
	premiumForPromotion = false

	-- Blessings
	-- NOTE: blessingReduction* regards items/containers loss.
	-- eachBlessReduction is how much each bless reduces the experience/magic/skills loss.
	blessingOnlyPremium = true
	blessingReductionBase = 30
	blessingReductionDecreament = 3
	eachBlessReduction = 8

	-- Rates
	-- NOTE: experienceStages configuration is located in data/XML/stages.xml.
	-- rateExperienceFromPlayers 0 to disable.
	experienceStages = true
	rateExperience = 1.0
	rateExperienceFromPlayers = 0
	rateSkill = 1.0
	rateMagic = 1.0
	rateLoot = 7.0
	rateSpawn = 7

	-- Monster rates
	rateMonsterHealth = 1.0
	rateMonsterMana = 1.0
	rateMonsterAttack = 1.0
	rateMonsterDefense = 1.0

	-- Experience from players
	-- NOTE: min~Threshold* set to 0 will disable the minimum threshold:
	-- player will gain experience from every lower leveled player.
	-- max~Threshold* set to 0 will disable the maximum threshold:
	-- player will gain experience from every higher leveled player.
	minLevelThresholdForKilledPlayer = 0.9
	maxLevelThresholdForKilledPlayer = 1.1

	-- Stamina
	-- NOTE: Stamina is stored in miliseconds, so seconds are multiplied by 1000.
	-- rateStaminaHits multiplies every hit done a creature, which are later
	-- multiplied by player attack speed.
	-- rateStaminaGain is divider of every logged out second, eg:
	-- 60000 / 3 = 20000 milliseconds, what gives 20 stamina seconds for 1 minute being logged off.
	-- rateStaminaThresholdGain is divider for the premium stamina.
	-- staminaRatingLimit* is in minutes.
	rateStaminaLoss = 7
	rateStaminaGain = 3
	rateStaminaThresholdGain = 12
	staminaRatingLimitTop = 2 * 60
	staminaRatingLimitBottom = 1 * 60
	rateStaminaAboveNormal = 1.5
	rateStaminaUnderNormal = 0.5
	staminaThresholdOnlyPremium = true

	-- Party
	-- NOTE: experienceShareLevelDifference is float number.
	-- experienceShareLevelDifference is highestLevel * value
	experienceShareRadiusX = 30
	experienceShareRadiusY = 30
	experienceShareRadiusZ = 1
	experienceShareLevelDifference = 2 / 3
	extraPartyExperienceLimit = 20
	extraPartyExperiencePercent = 5
	experienceShareActivity = 2 * 60 * 1000

	-- Global save
	-- NOTE: globalSaveHour means like 03:00, not that it will save every 3 hours,
	-- if you want such a system please check out data/globalevents/globalevents.xml.
	globalSaveEnabled = false
	globalSaveHour = 8
	shutdownAtGlobalSave = true
	cleanMapAtGlobalSave = false

	-- Spawns
	deSpawnRange = 2
	deSpawnRadius = 50

	-- Summons
	maxPlayerSummons = 4
	teleportAllSummons = true
	teleportPlayerSummons = true

	-- Status
	ownerName = "NarutoShinobi"
	ownerEmail = "narutoshinobi@[member='Hotmail'].com"
	url = "narutoshinobi.com"
	location = "Brazil"
	displayGamemastersWithOnlineCommand = false

	-- Logs
	-- NOTE: This kind of logging does not work in GUI version.
	-- For such, please compile the software with __GUI_LOGS__ flag.
	adminLogsEnabled = false
	displayPlayersLogging = true
	prefixChannelLogs = ""
	runFile = ""
	outLogName = ""
	errorLogName = ""
	truncateLogsOnStartup = false

 

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

13 respostass a esta questão

Posts Recomendados

  • 0

Em creaturescript/scripts/skills (caso não tenha pasta skills crie)

 

copie e cole qualquer script, então o renomeie para "stagesconfig" e cole isso dentro:

 

skillConfig = {skill = getConfigValue('rateSkill'), magiclevel = getConfigValue('rateMagic')}

skillStages = {}
skillStages[sKILL_FIST] = {{0,3},{30,3},{50,2},{80,1},{100,0.90},{130,0.50}}
skillStages[sKILL_CLUB] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}}
skillStages[sKILL_SWORD] = {{0,10},{30,6},{50,4},{80,2},{100,1},{130,0.25}}
skillStages[sKILL_AXE] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}}
skillStages[sKILL_DISTANCE] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}}
skillStages[sKILL_SHIELD] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}}
skillStages[sKILL_FISHING] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}} -- uncomment it to make it work, you can remove other skill config if you dont need it
skillStages[sKILL__MAGLEVEL] = {{0,2},{30,1},{50,0.90},{80,0.80},{100,0.60},{130,0.50}}
showInfoOnAdvance = false -- send player message about skill rate change
showInfoOnLogin = false -- send player message about skill rates when he login
function getPlayerSkillRatesText(cid)
local skillInfo = getPlayerRates(cid)
return "Rates: [ Magic Level: " .. skillInfo[sKILL__MAGLEVEL] * skillConfig.magiclevel .. "x || Fist: " .. skillInfo[sKILL_FIST] * skillConfig.skill .. "x | Club: " .. skillInfo[sKILL_CLUB] * skillConfig.skill .. "x | Sword: " .. skillInfo[sKILL_SWORD] * skillConfig.skill .. "x | Axe: " .. skillInfo[sKILL_AXE] * skillConfig.skill .. "x | Distance: " .. skillInfo[sKILL_DISTANCE] * skillConfig.skill .. " | Shielding: " .. skillInfo[sKILL_SHIELD] * skillConfig.skill .. "x | Fishing: " .. skillInfo[sKILL_FISHING] * skillConfig.skill .. "x ]"

end

 

 

Depois, copie e cole qualquer script, então o renomeie para "skillstageslogin" e cole isso dentro:

 

dofile(getDataDir() .. "creaturescripts/scripts/skills/stagesconfig.lua")

function onLogin(cid)
for skill, skillStage in pairs(skillStages) do
if(skill >= 0 and skill <= 6) then
nowSkill = getPlayerSkillLevel(cid, skill)
else
nowSkill = getPlayerMagLevel(cid, true)
end
for i, skillRateInfo in pairs(skillStage) do
if(nowSkill >= skillRateInfo[1]) then
skillRate = skillRateInfo[2]
else
break
end
end
doPlayerSetRate(cid, skill, skillRate)
end
if(showInfoOnLogin) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerSkillRatesText(cid))
end
registerCreatureEvent(cid, "SkillStagesAdvance")
return TRUE

end

 

 

Depois, copie e cole qualquer script, então o renomeie para "skillstagesadvance" e cole isso dentro:

 

 

dofile(getDataDir() .. "creaturescripts/scripts/skills/stagesconfig.lua")
function onAdvance(cid, skill, oldLevel, newLevel)
if(skillStages[skill] ~= nil) then
local skillRate = 1
local oldRates = getPlayerRates(cid)
for i, skillRateInfo in pairs(skillStages[skill]) do
if(newLevel >= skillRateInfo[1]) then
skillRate = skillRateInfo[2]
else
break
end
end
doPlayerSetRate(cid, skill, skillRate)
if(showInfoOnAdvance and skillRate ~= oldRates[skill]) then
if(skill >= 0 and skill <= 6) then
configRate = skillConfig.skill
else
configRate = skillConfig.magiclevel
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, SKILL_NAMES[skill] .. " rate changed from " .. oldRates[skill] * configRate .. "x to " .. skillRate * configRate .. "x. " .. getPlayerSkillRatesText(cid))
end
end
return true

end

 

 

Depois vá em login.lua e registre as tags:

registerCreatureEvent(cid, "SkillStagesLogin")
registerCreatureEvent(cid, "SkillStagesAdvance")
e então em creaturescripts.xml:
<event type="login" name="SkillStagesLogin" event="script" value="skills/skillstageslogin.lua" />
<event type="advance" name="SkillStagesAdvance" event="script" value="skills/skillstagesadvance.lua" />

 

o script é autoexplicativo: {30,3} = no level 30 o rate skill sera 3, configure todas as skills do seu server do jeito que desejar!

Espero ter ajudado.

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

  • 0

Mudei, e não da mais pra upar ML auehaueha, tipo, o rate está funcionando, o que eu não sei é por que as magias não vão ficando mais dificil quanto maior o ml

 

sera que não tem algo tipo as Stages da exp?

 

um cara ml 1 upa a mesma quantidade que um ml 400 por exemplo. A magias dão a mesma porcentagem no ml em todos os niveis

Link para o comentário
Compartilhar em outros sites

  • 0

Mudei, e não da mais pra upar ML auehaueha, tipo, o rate está funcionando, o que eu não sei é por que as magias não vão ficando mais dificil quanto maior o ml

 

sera que não tem algo tipo as Stages da exp?

 

um cara ml 1 upa a mesma quantidade que um ml 400 por exemplo. A magias dão a mesma porcentagem no ml em todos os niveis

Mudar Para 0.002 e Subindo Até Achar Um Que Você Goste

Link para o comentário
Compartilhar em outros sites

  • 0

isso é na magia mano. posta a magia ai.

Hmm, vou colocar uma que esta dando isso..

 

ex: biju rasengan

No spells.xml está assim:

<instant name="Biju Rasengan" words="biju rasengan" lvl="275" mana="8200" prem="0" needtarget="1" range="3" blockwalls="1" exhaustion="1500" needlearn="0" event="script" value="naruto/senporasenshuriken.lua">
		<vocation id="9"/>
		<vocation id="10"/>
		<vocation id="11"/>
		<vocation id="12"/>
	</instant>

e a magia:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 32)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -137.2, 1, -133.2, 1)

function onCastSpell(cid, var)
local position1 = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z}
doSendMagicEffect(position1, 128)
return doCombat(cid, combat, var)
end

@@vasto_lord_x

 

Não é isso que estou querendo mudar amigo, mas mesmo assim obrigado :)

Link para o comentário
Compartilhar em outros sites

  • 0

Posta seu script de advance

 

Está em creaturescripts/script

local config = {
	savePlayersOnAdvance = true
}

function onAdvance(cid, skill, oldLevel, newLevel)
	if(config.savePlayersOnAdvance) then
		doPlayerSave(cid, true)
	end

	return true
end

Ta ai, esse chama advancesave, é o unico com o nome que possui advance.

 

Eu abri umas das magias, todas estão bugadas, upao iguais todos os niveis, mas o big regeneration está estranho olha só:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
	local min = ((level*35)+(maglevel*1.19)+7560)
	local max = ((level*35)+(maglevel*1.19)+8990)
	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

Então com essa function onGetFormulaValues, está dando mto ml pro player tbm..

Link para o comentário
Compartilhar em outros sites

  • 0

Reduz o valor do min e max pra testar.

 

Achava que a mana removida influenciava o ML, mas como é Naturo não sei se é normal isso.

Edit:

Olhei numas sources de TFS 0.3 que tenho aqui e realmente, o ML é aumentado de acordo com a mana removida, não com o dano.

Isso se for esse realmente seu problema.

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

  • 0

acho que não é a mana removida não, pq esse big regeneration usa apenas 800 de mana.. :/

 

o problema eh que não vai ficando dificil upar o ml. Ele upa a mesma quantia em todos os niveis.

 

exemplo ML 1, big regeneration upa 2%

No ML 60, o big regeneration ira upar 2% também saca, era pra upar bem menos

Link para o comentário
Compartilhar em outros sites

  • 0

Eu entendi seu problema.

O que estou dizendo é que nas SOURCES do servidor (que eu tenho aqui) o ML sobe de acordo com a mana usada.

 

Já tentou reduzir os valores?

da fórmula e da mana usava?

Link para o comentário
Compartilhar em outros sites

  • 0

Em creaturescript/scripts/skills (caso não tenha pasta skills crie)

 

copie e cole qualquer script, então o renomeie para "stagesconfig" e cole isso dentro:

 

skillConfig = {skill = getConfigValue('rateSkill'), magiclevel = getConfigValue('rateMagic')}

skillStages = {}
skillStages[sKILL_FIST] = {{0,3},{30,3},{50,2},{80,1},{100,0.90},{130,0.50}}
skillStages[sKILL_CLUB] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}}
skillStages[sKILL_SWORD] = {{0,10},{30,6},{50,4},{80,2},{100,1},{130,0.25}}
skillStages[sKILL_AXE] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}}
skillStages[sKILL_DISTANCE] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}}
skillStages[sKILL_SHIELD] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}}
skillStages[sKILL_FISHING] = {{0,10},{30,8},{50,6},{80,4},{100,2},{130,0.50}} -- uncomment it to make it work, you can remove other skill config if you dont need it
skillStages[sKILL__MAGLEVEL] = {{0,2},{30,1},{50,0.90},{80,0.80},{100,0.60},{130,0.50}}
showInfoOnAdvance = false -- send player message about skill rate change
showInfoOnLogin = false -- send player message about skill rates when he login
function getPlayerSkillRatesText(cid)
local skillInfo = getPlayerRates(cid)
return "Rates: [ Magic Level: " .. skillInfo[sKILL__MAGLEVEL] * skillConfig.magiclevel .. "x || Fist: " .. skillInfo[sKILL_FIST] * skillConfig.skill .. "x | Club: " .. skillInfo[sKILL_CLUB] * skillConfig.skill .. "x | Sword: " .. skillInfo[sKILL_SWORD] * skillConfig.skill .. "x | Axe: " .. skillInfo[sKILL_AXE] * skillConfig.skill .. "x | Distance: " .. skillInfo[sKILL_DISTANCE] * skillConfig.skill .. " | Shielding: " .. skillInfo[sKILL_SHIELD] * skillConfig.skill .. "x | Fishing: " .. skillInfo[sKILL_FISHING] * skillConfig.skill .. "x ]"

end

 

 

Depois, copie e cole qualquer script, então o renomeie para "skillstageslogin" e cole isso dentro:

 

dofile(getDataDir() .. "creaturescripts/scripts/skills/stagesconfig.lua")

function onLogin(cid)
for skill, skillStage in pairs(skillStages) do
if(skill >= 0 and skill <= 6) then
nowSkill = getPlayerSkillLevel(cid, skill)
else
nowSkill = getPlayerMagLevel(cid, true)
end
for i, skillRateInfo in pairs(skillStage) do
if(nowSkill >= skillRateInfo[1]) then
skillRate = skillRateInfo[2]
else
break
end
end
doPlayerSetRate(cid, skill, skillRate)
end
if(showInfoOnLogin) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerSkillRatesText(cid))
end
registerCreatureEvent(cid, "SkillStagesAdvance")
return TRUE

end

 

 

Depois, copie e cole qualquer script, então o renomeie para "skillstagesadvance" e cole isso dentro:

 

 

dofile(getDataDir() .. "creaturescripts/scripts/skills/stagesconfig.lua")
function onAdvance(cid, skill, oldLevel, newLevel)
if(skillStages[skill] ~= nil) then
local skillRate = 1
local oldRates = getPlayerRates(cid)
for i, skillRateInfo in pairs(skillStages[skill]) do
if(newLevel >= skillRateInfo[1]) then
skillRate = skillRateInfo[2]
else
break
end
end
doPlayerSetRate(cid, skill, skillRate)
if(showInfoOnAdvance and skillRate ~= oldRates[skill]) then
if(skill >= 0 and skill <= 6) then
configRate = skillConfig.skill
else
configRate = skillConfig.magiclevel
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, SKILL_NAMES[skill] .. " rate changed from " .. oldRates[skill] * configRate .. "x to " .. skillRate * configRate .. "x. " .. getPlayerSkillRatesText(cid))
end
end
return true

end

 

 

Depois vá em login.lua e registre as tags:

registerCreatureEvent(cid, "SkillStagesLogin")
registerCreatureEvent(cid, "SkillStagesAdvance")
e então em creaturescripts.xml:
<event type="login" name="SkillStagesLogin" event="script" value="skills/skillstageslogin.lua" />
<event type="advance" name="SkillStagesAdvance" event="script" value="skills/skillstagesadvance.lua" />

 

o script é autoexplicativo: {30,3} = no level 30 o rate skill sera 3, configure todas as skills do seu server do jeito que desejar!

Espero ter ajudado.

 

Então eu coloquei tudo lá mas aparentemente não mudou...

 

deixa ver se eu entendi:

skillStages[SKILL__MAGLEVEL] = {{0,2},{30,1},{50,0.90},{80,0.80},{100,0.60},{130,0.50}}

lvl 0, o rate é 2 no primeiro caso?

 

E ali no ultimo o level seria 130, e se caso for níveis maiores esse script deixa 0.5?

@@narutomaniacos

 

Agora deu certo fiz uma cagadinha aqui auehahue vlw brother ajudou mto!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...