Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local c;
- if( VC && VC.Characters ) then
- c = VC.Characters;
- end
- VC = VC or {};
- VC.Settings = {};
- if( c && type( c ) == "table" ) then
- VC.Characters = table.Copy( c );
- end
- // these can make 3 characters
- VC.Settings.DonatorRanks = { "superadmin" };
- VC.Settings.WhitelistJobs = {
- "Taliban Kämpfer",
- "Taliban Kämpfer Emir",
- "Taliban Sprengstoff-Jihadist",
- "Taliban Sprengstoff-Jihadist Emir",
- "Taliban Geheimdienst",
- "Taliban Geheimdienst Emir",
- "Taliban Pilot",
- "Taliban Pilot Emir",
- "Taliban Scharfschütze",
- "Taliban Scharfschützen Emir",
- "Taliban Sanitäter",
- "Taliban Sanitäter Emir",
- "Taliban Elitetruppe",
- "Taliban Elitetruppe Emir",
- "Taliban Koran Sieges Kämpfer",
- "Taliban Koran Sieges Kämpfer Emir",
- "Taliban Frontjihadist",
- "Taliban Frontjihadist Emir",
- "Taliban Jihadpolizei",
- "Taliban Jihadpolizei Emir",
- "Taliban Kalif",
- "Taliban Scheich" };
- VC.Settings.StartMoney = 2000;
- VC.Settings.RankJobs = {};
- VC.Settings.RankJobs[ "Taliban Kämpfer" ] = {
- { rank = "Private", salary = 100, health = 110, armor = 110 },
- { rank = "2nd Private", salary = 150, health = 120, armor = 120 },
- { rank = "Captain", salary = 300, health = 200, armor = 200, model = "models/player/combine_super_soldier.mdl", weapons = { "weapon_ak472" } }
- };
- VC.Settings.RankJobs[ "Taliban Geheimdienst" ] = {
- { rank = "Test", salary = 100, health = 110, armor = 110 },
- { rank = "Test2", salary = 150, health = 120, armor = 120 },
- { rank = "Test3", salary = 300, health = 200, armor = 200, model = "models/player/combine_super_soldier.mdl", weapons = { "weapon_ak472" } }
- };
- VC.Settings.RankJobs[ "Taliban Geheimdienst Emir" ] = {
- { rank = "Vize-Emir", salary = 100, health = 110, armor = 110 },
- { rank = "Emir", salary = 150, health = 120, armor = 120 },
- { rank = "Test3", salary = 300, health = 200, armor = 200, model = "models/player/combine_super_soldier.mdl", weapons = { "weapon_ak472" } }
- };
- if( CLIENT ) then
- VC.Client = {};
- VC.Client.Size = { 700, 700 };
- VC.Client.Bg = Color( 28, 37, 41, 255 );
- VC.Client.Bg2 = Color( 255, 255, 255, 60 );
- VC.Client.CharBg = Color( 28, 37, 41, 255 );
- --VC.Client.CharBg = Color( 28, 37, 41, 80 );
- VC.Client.CloseBtn = { Color( 240, 80, 70, 255 ), Color( 190, 60, 40, 255 ) };
- VC.Client.Hover = Color( 59, 135, 37 );
- VC.Client.Btn = { Color( 9, 74, 106 ), Color( 9, 64, 84 ) };
- VC.Client.Border = 4;
- VC.Client.Add = Material( "materials/ventix_add.png" );
- VC.Client.Arrow = Material( "materials/ventix_arrow.png" );
- VC.Client.Health = Material( "icon16/heart.png" );
- VC.Client.Armor = Material( "icon16/shield.png" );
- VC.Client.Wallet = Material( "icon16/money.png" );
- VC.Client.Salary = Material( "icon16/money_add.png" );
- VC.Client.Name = Material( "icon16/user.png" );
- VC.Client.Delete = Material( "icon16/delete.png" );
- VC.Client.Prefix = Material( "icon16/star.png" );
- // icon list: http://www.famfamfam.com/lab/icons/silk/previews/index_abc.png
- VC.Client.Confirm = "Bist du dir sicher?";
- VC.Client.DeleteBtn = "Löschen";
- VC.Client.Cancel = "Abbrechen";
- VC.Client.Create = "Erstell ein Charakter";
- VC.Client.Select = "Wähle ein Charakter";
- VC.Client.NameTitle = "Vorname Nachname";
- VC.Client.FrameTitle = "Charaktersystem";
- VC.Client.DonatorTitle = "Donator Slot";
- function VC:LoadFonts()
- surface.CreateFont( "VC::FrameTitleFont",{
- font = "Didact Gothic",
- size = 28,
- weight = 500,
- antialias = true,
- shadow = true
- } );
- surface.CreateFont( "VC::TitleFont",{
- font = "Didact Gothic",
- size = 38,
- weight = 500,
- antialias = true,
- shadow = true
- } );
- surface.CreateFont( "VC::NameFont",{
- font = "Didact Gothic",
- size = 28,
- weight = 500,
- antialias = true,
- shadow = true
- } );
- surface.CreateFont( "VC::DataFont",{
- font = "Didact Gothic",
- size = 18,
- weight = 0,
- antialias = true,
- shadow = true
- } );
- surface.CreateFont( "VC::BtnFont",{
- font = "Didact Gothic",
- size = 24,
- weight = 0,
- antialias = true,
- shadow = true
- } );
- end
- VC:LoadFonts();
- hook.Add( "InitPostEntity", "VC::LoadFontsAgain", function()
- VC:LoadFonts();
- end );
- end
- local meta = FindMetaTable( "Player" );
- function meta:IsDonator()
- return table.HasValue( VC.Settings.DonatorRanks, self:GetUserGroup() );
- end
- function VC:IsWhitelistJob( job )
- return table.HasValue( VC.Settings.WhitelistJobs, RPExtraTeams[ job ].name );
- end
- function VC:IsWhitelisted( _p, job )
- return PlychangeAllowed( _p, team.GetName( job ) );
- end
- function VC:IsValidName( str )
- return ( str:match( "[^%a%s%d]" ) == nil );
- end
- function VC:CanCreateNew( _p )
- return true;
- end
- function VC:Log( msg, type )
- // no type = green
- // 1 = yellow
- // 2 = red
- local color = Color( 0, 255, 0 );
- if( type ) then
- if( type != 1 ) then
- color = Color( 255, 0, 0 );
- else
- color = Color( 255, 255, 0 );
- end
- end
- MsgC( color, "\nCharacterSystem:\n" .. msg .. "\n\n" );
- end
- hook.Add( "DarkRPFinishedLoading", "VC::ULX", function()
- local CATEGORY_NAME = "Character System";
- function ulx.promote( calling_ply, target_ply )
- if( !target_ply.character ) then
- calling_ply:ChatPrint( "Target has no character selected!" );
- return;
- end
- if( !VC.Settings.RankJobs[ RPExtraTeams[ target_ply.character.job ].name ] ) then
- calling_ply:ChatPrint( "Target character's job can't be promoted!" );
- return;
- end
- if( !target_ply.character.rank ) then
- target_ply.character.rank = 1;
- end
- if( !VC.Settings.RankJobs[ RPExtraTeams[ target_ply.character.job ].name ][ target_ply.character.rank + 1 ] ) then
- calling_ply:ChatPrint( "Target is already max rank in his job!" );
- return;
- end
- if( !calling_ply.rank ) then
- calling_ply.rank = ( VC.Ranks[ calling_ply:SteamID64() ][ calling_ply.job ] or 1 );
- end
- local access = false;
- if( calling_ply:IsSuperAdmin() ||
- ( calling_ply.character && calling_ply.character.job == target_ply.character.job && calling_ply.character.rank > target_ply.character.rank ) ) then
- access = true;
- end
- if( !access ) then
- calling_ply:ChatPrint( "No access!" );
- return;
- end
- VC:Log( calling_ply:Nick() .. "(" .. calling_ply:SteamID64() .. ") promoted " .. target_ply:Nick() .. "." );
- VC:PromoteCharacter( target_ply );
- VC:SendCharacterData( target_ply );
- VC:SaveCharacters( target_ply );
- local newRank = VC.Settings.RankJobs[ team.GetName( target_ply:Team() ) ][ target_ply.character.rank ].rank or "no rank";
- ulx.fancyLogAdmin( calling_ply, "#A promoted #T to #s", target_ply, newRank );
- end
- local promote = ulx.command( CATEGORY_NAME, "ulx promote", ulx.promote, "!promote" )
- promote:addParam{ type=ULib.cmds.PlayerArg };
- promote:defaultAccess( ULib.ACCESS_ADMIN );
- promote:help( "Promote a players character." );
- end );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement