Code:
System = {}
System.__index = System
function System.create(cid, storage, skillTriesStorage)
local new = {}
setmetatable(new, System)
new.player = cid
new.storage = storage
new.skillTriesStorage = skillTriesStorage
new.skillTries = getPlayerStorageValue(cid, skillTriesStorage) >= 0 and getPlayerStorageValue(cid, skillTriesStorage) or 0
new.skill = getPlayerStorageValue(cid, storage) >= 10 and getPlayerStorageValue(cid, storage) or 10
new.skillRate = 1
new.type = 1
new.types = {}
new.needTriesToLevelUp = (((new.skill * 10) + (new.skill * 10)) / new.skillRate)
return new
end
function System:getSkill()
return self.skill
end
function System:addSkill(value)
self.skill = self.skill + value
end
function System:setTypes(types)
self.types = types
end
function System:setSkillRate(newValue)
self.skillRate = newValue
self.needTriesToLevelUp = math.floor((((self.skill * 10) + (self.skill * 10)) / self.skillRate))
end
function System:getSkillRate()
return self.skillRate
end
function System:getSkillTries()
return self.skillTries
end
function System:addSkillTries(value)
self.skillTries = self.skillTries + value
end
function System:setTryType(newType)
if(newType > #self.types - 1 and newType < #self.types + 1) then
self.type = newType
else
self.type = 1
end
end
function System:calculateSkill()
self.skillTries = self.skillTries + self.types[self.type]
if(self.skillTries >= self.needTriesToLevelUp) then
self.skill = self.skill + 1
self.skillTries = 0
return true
end
return false
end
function System:getSkillTriesToNextLevel()
return self.needTriesToLevelUp
end
function System:Save()
setPlayerStorageValue(self.player, self.storage, self.skill)
setPlayerStorageValue(self.player, self.skillTriesStorage, self.skillTries)
end
How use it:
Code:
Crafting = System.create(cid, 1025, 1026)
Crafting:setSkillRate(100)
Crafting:calculateSkill()
Crafting:Save()
eace: