mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
Upload
This commit is contained in:
107
gamemodes/ixhl2rp/plugins/wn7_skillbook/sh_plugin.lua
Normal file
107
gamemodes/ixhl2rp/plugins/wn7_skillbook/sh_plugin.lua
Normal file
@@ -0,0 +1,107 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
PLUGIN.name = "Skill books"
|
||||
PLUGIN.author = "Naast"
|
||||
PLUGIN.description = "Adds the book thing into WN, yeah."
|
||||
|
||||
ix.books = ix.books or {}
|
||||
|
||||
ix.char.RegisterVar("reading", {
|
||||
field = "reading",
|
||||
fieldType = ix.type.text,
|
||||
default = {
|
||||
["medicine"] = {
|
||||
[1] = {readed = false, pages = 60},
|
||||
[2] = {readed = false, pages = 50},
|
||||
[3] = {readed = false, pages = 75},
|
||||
[4] = {readed = false, pages = 45},
|
||||
[5] = {readed = false, pages = 70}
|
||||
},
|
||||
["crafting"] = {
|
||||
[1] = {readed = false, pages = 45},
|
||||
[2] = {readed = false, pages = 60},
|
||||
[3] = {readed = false, pages = 64},
|
||||
[4] = {readed = false, pages = 67},
|
||||
[5] = {readed = false, pages = 150}
|
||||
},
|
||||
["cooking"] = {
|
||||
[1] = {readed = false, pages = 20},
|
||||
[2] = {readed = false, pages = 50},
|
||||
[3] = {readed = false, pages = 100},
|
||||
[4] = {readed = false, pages = 80},
|
||||
[5] = {readed = false, pages = 90}
|
||||
},
|
||||
["contraband"] = {
|
||||
[1] = {readed = false, pages = 120},
|
||||
[2] = {readed = false, pages = 120},
|
||||
[3] = {readed = false, pages = 120},
|
||||
[4] = {readed = false, pages = 120},
|
||||
[5] = {readed = false, pages = 120}
|
||||
},
|
||||
["guns"] = {
|
||||
[1] = {readed = false, pages = 100},
|
||||
[2] = {readed = false, pages = 45},
|
||||
[3] = {readed = false, pages = 60},
|
||||
[4] = {readed = false, pages = 35},
|
||||
[5] = {readed = false, pages = 24}
|
||||
}
|
||||
},
|
||||
bNoDisplay = true
|
||||
})
|
||||
|
||||
function ix.books:ValidateReading(skill, vol, character)
|
||||
local readTbl = character:GetReading()
|
||||
if not readTbl[skill] then return false, character:GetPlayer():NotifyLocalized("There is no skill for this guide.") end
|
||||
if readTbl[skill][vol].readed then return false, character:GetPlayer():NotifyLocalized("I already read this book.") end
|
||||
if not readTbl[skill][vol].readed then
|
||||
local curVol = vol
|
||||
local lastVol = vol - 1
|
||||
if lastVol != 0 then
|
||||
for k, v in ipairs(readTbl[skill]) do
|
||||
if k < curVol and not v.readed then
|
||||
return false, character:GetPlayer():NotifyLocalized("I don't get anything... I need to read the previous volume.")
|
||||
end
|
||||
if k > curVol then
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if readTbl then
|
||||
return true
|
||||
end
|
||||
end
|
||||
function ix.books:ProceedReading(skill, vol, character, item)
|
||||
local skillVar = ix.skill:Find(skill)
|
||||
local readTbl = character:GetReading()
|
||||
local uniqueID = "CheckIfStillReading_" .. character:GetPlayer():SteamID64()
|
||||
character:GetPlayer():SetAction("You are reading a book.", readTbl[skill][vol]["pages"], function()
|
||||
readTbl[skill][vol].readed = true
|
||||
character:SetReading(readTbl)
|
||||
character:AddSkillLevel(skillVar.uniqueID, 5)
|
||||
character:GetPlayer():Freeze(false)
|
||||
character:GetPlayer():SetNetVar("staticAction", nil)
|
||||
character:GetPlayer().isReading = nil
|
||||
timer.Remove(uniqueID)
|
||||
item:Remove()
|
||||
|
||||
end)
|
||||
timer.Create(uniqueID, 1, 0, function()
|
||||
if (IsValid(character:GetPlayer()) and character:GetPlayer().isReading) then
|
||||
readTbl[skill][vol]["pages"] = readTbl[skill][vol]["pages"] - 1
|
||||
character:SetReading(readTbl)
|
||||
else
|
||||
timer.Remove(uniqueID)
|
||||
character:GetPlayer():Freeze(false)
|
||||
character:GetPlayer():SetAction(false)
|
||||
end
|
||||
end)
|
||||
end
|
||||
Reference in New Issue
Block a user