Estou usando o sistema de pontos do MaXwEllDeN, mais gostaria de algumas alterações nele.
1-
Gostaria que esse escript funcionasse da seguinte maneira acada ponto distribuído aumentasse mais +1 ponto para pode usar dnv exp se o player coloca 2 ponto no life ok custa 1 ponto. mais passou de 2 pontos usado custa 2 pontos acada 2 sendo usado vai aumentando mais um.
Exp:
1p =1 life
2p = 1 life
3p = 2 life
alguem pode ajudar ?
lib usada:
-- #######################################
-- ####### Developed by MaXwEllDeN #######
-- ####### Level Points System #######
-- ####### Version: 1.0 #######
-- #######################################
L_LvlPoints = {
vocPoints = {
-- [skill] = Pontos que ganha,
[1] = 2000,
[2] = 2000,
[3] = 2000,
[4] = 2000,
[5] = 2000,
[6] = 2000,
[7] = 2000,
[8] = 2000,
},
attributes = {
["vitalidade"] = {np = 1, vl = 100, nm = "Hit Points"}, -- Precisa usar 2 points para adicionar 10 de hp
["mp"] = {np = 1, vl = 20, nm = "Mana Points"},
["bend"] = {np = 1, vl = 1, nm = "Magic Level"},
["shielding"] = {np = 1, vl = 1, nm = "Shielding Skill"},
["sword"] = {np = 1, vl = 1, nm = "Sword Skill"},
["axe"] = {np = 1, vl = 1, nm = "Axe Skill"},
["club"] = {np = 1, vl = 1, nm = "Club Skill"},
["distance"] = {np = 1, vl = 1, nm = "Distance Skill"},
["fishing"] = {np = 1, vl = 1, nm = "fishing Skill"},
["fist"] = {np = 1, vl = 1, nm = "fist Skill"},
}
}
talkaction usada para distribuir os pontos:
-- #######################################
-- ####### Developed by MaXwEllDeN #######
-- ####### Level Points System #######
-- ####### Version: 1.0 #######
-- #######################################
function onSay(cid, words, param)
if not (L_LvlPoints.vocPoints[getPlayerVocation(cid)]) then
return false
end
local param = param:lower()
local p2 = string.explode(param, ",")
if (getPlayerStorageValue(cid, 14574) < 0) then
setPlayerStorageValue(cid, 14574, 0)
end
local skillids = {
["shielding"] = 5,
["sword"] = 2,
["axe"] = 3,
["club"] = 1,
["distance"] = 4,
["fishing"] = 6,
["fist"] = 0,
}
if (param == "check") then
doPlayerPopupFYI(cid, "~*~*~ Level Points System by MaXwEllDeN ~*~*~\n\nPontos disponíveis: ".. getPlayerStorageValue(cid, 14574) .."\nPontos por level: ".. L_LvlPoints.vocPoints[getPlayerVocation(cid)])
elseif (p2[1] and p2[1] == "add") and (L_LvlPoints.attributes[p2[2]]) and (tonumber(p2[3])) then
if (getPlayerStorageValue(cid, 14574) < tonumber(p2[3]) * L_LvlPoints.attributes[p2[2]].np) then
doPlayerSendCancel(cid, "Você não tem pontos suficientes para distribuir!")
return doSendMagicEffect(getThingPos(cid), 2)
end
if (p2[2] == "vitalidade") then
setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + L_LvlPoints.attributes[p2[2]].vl * tonumber(p2[3]))
doCreatureAddHealth(cid, L_LvlPoints.attributes[p2[2]].vl * tonumber(p2[3]))
setPlayerStorageValue(cid, 14575, getPlayerStorageValue(cid, 14575)+1)--- conta quantos pontos foi usado // theon
elseif (p2[2] == "mana") then
setCreatureMaxMana(cid, getCreatureMaxMana(cid) + L_LvlPoints.attributes[p2[2]].vl * tonumber(p2[3]))
doCreatureAddMana(cid, L_LvlPoints.attributes[p2[2]].vl * tonumber(p2[3]))
elseif (p2[2] == "bend") then
doPlayerAddMagLevel(cid, 1)
elseif(skillids[p2[2]]) then
for a = 1, tonumber(p2[3]) do
doPlayerAddSkillTry(cid, skillids[p2[2]], getPlayerRequiredSkillTries(cid, skillids[p2[2]], getPlayerSkillLevel(cid, skillids[p2[2]]) + 1) - getPlayerSkillTries(cid, skillids[p2[2]]), false)
end
end
doSendMagicEffect(getThingPos(cid), 29)
doSendMagicEffect(getThingPos(cid), 30)
doSendAnimatedText(getThingPos(cid), "-" .. tonumber(p2[3]) * L_LvlPoints.attributes[p2[2]].np, 180)
setPlayerStorageValue(cid, 14574, getPlayerStorageValue(cid, 14574) - tonumber(p2[3]) * L_LvlPoints.attributes[p2[2]].np)
opcode = GameServerOpcodes.AchievementsInfo
local DLL = DLLClass:new(cid)
:prepareAchievements()
:send()
else
local msgx = ""
for i, v in pairs(L_LvlPoints.attributes) do
local add = (v.np > 1) and "s" or ""
msgx = msgx .. string.upper(i:sub(1,1)) .. i:sub(2, #i) .. " - ".. v.np .. " ponto".. add .. " ~ " .. v.vl .. " ".. v.nm .. "\n"
end
doPlayerPopupFYI(cid, "~*~*~ Level Points System by MaXwEllDeN ~*~*~\n\nPontos necessários para aumentar os stats:\n\n".. msgx .. "\nExemplo de uso: ".. words .." add, vitalidade, 5\n\nPontos disponíveis: ".. getPlayerStorageValue(cid, 14574))
end
return true
end
Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.