Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.89 KB | None | 0 0
  1. local c;
  2. if( VC && VC.Characters ) then
  3. c = VC.Characters;
  4. end
  5.  
  6. VC = VC or {};
  7. VC.Settings = {};
  8. if( c && type( c ) == "table" ) then
  9. VC.Characters = table.Copy( c );
  10. end
  11. // these can make 3 characters
  12. VC.Settings.DonatorRanks = { "superadmin" };
  13. VC.Settings.WhitelistJobs = {
  14. "Taliban Kämpfer",
  15. "Taliban Kämpfer Emir",
  16. "Taliban Sprengstoff-Jihadist",
  17. "Taliban Sprengstoff-Jihadist Emir",
  18. "Taliban Geheimdienst",
  19. "Taliban Geheimdienst Emir",
  20. "Taliban Pilot",
  21. "Taliban Pilot Emir",
  22. "Taliban Scharfschütze",
  23. "Taliban Scharfschützen Emir",
  24. "Taliban Sanitäter",
  25. "Taliban Sanitäter Emir",
  26. "Taliban Elitetruppe",
  27. "Taliban Elitetruppe Emir",
  28. "Taliban Koran Sieges Kämpfer",
  29. "Taliban Koran Sieges Kämpfer Emir",
  30. "Taliban Frontjihadist",
  31. "Taliban Frontjihadist Emir",
  32. "Taliban Jihadpolizei",
  33. "Taliban Jihadpolizei Emir",
  34. "Taliban Kalif",
  35. "Taliban Scheich" };
  36. VC.Settings.StartMoney = 2000;
  37.  
  38. VC.Settings.RankJobs = {};
  39. VC.Settings.RankJobs[ "Taliban Kämpfer" ] = {
  40. { rank = "Private", salary = 100, health = 110, armor = 110 },
  41. { rank = "2nd Private", salary = 150, health = 120, armor = 120 },
  42. { rank = "Captain", salary = 300, health = 200, armor = 200, model = "models/player/combine_super_soldier.mdl", weapons = { "weapon_ak472" } }
  43. };
  44. VC.Settings.RankJobs[ "Taliban Geheimdienst" ] = {
  45. { rank = "Test", salary = 100, health = 110, armor = 110 },
  46. { rank = "Test2", salary = 150, health = 120, armor = 120 },
  47. { rank = "Test3", salary = 300, health = 200, armor = 200, model = "models/player/combine_super_soldier.mdl", weapons = { "weapon_ak472" } }
  48. };
  49. VC.Settings.RankJobs[ "Taliban Geheimdienst Emir" ] = {
  50. { rank = "Vize-Emir", salary = 100, health = 110, armor = 110 },
  51. { rank = "Emir", salary = 150, health = 120, armor = 120 },
  52. { rank = "Test3", salary = 300, health = 200, armor = 200, model = "models/player/combine_super_soldier.mdl", weapons = { "weapon_ak472" } }
  53. };
  54.  
  55. if( CLIENT ) then
  56.  
  57. VC.Client = {};
  58. VC.Client.Size = { 700, 700 };
  59. VC.Client.Bg = Color( 28, 37, 41, 255 );
  60. VC.Client.Bg2 = Color( 255, 255, 255, 60 );
  61. VC.Client.CharBg = Color( 28, 37, 41, 255 );
  62. --VC.Client.CharBg = Color( 28, 37, 41, 80 );
  63. VC.Client.CloseBtn = { Color( 240, 80, 70, 255 ), Color( 190, 60, 40, 255 ) };
  64. VC.Client.Hover = Color( 59, 135, 37 );
  65. VC.Client.Btn = { Color( 9, 74, 106 ), Color( 9, 64, 84 ) };
  66. VC.Client.Border = 4;
  67.  
  68. VC.Client.Add = Material( "materials/ventix_add.png" );
  69. VC.Client.Arrow = Material( "materials/ventix_arrow.png" );
  70. VC.Client.Health = Material( "icon16/heart.png" );
  71. VC.Client.Armor = Material( "icon16/shield.png" );
  72. VC.Client.Wallet = Material( "icon16/money.png" );
  73. VC.Client.Salary = Material( "icon16/money_add.png" );
  74. VC.Client.Name = Material( "icon16/user.png" );
  75. VC.Client.Delete = Material( "icon16/delete.png" );
  76. VC.Client.Prefix = Material( "icon16/star.png" );
  77. // icon list: http://www.famfamfam.com/lab/icons/silk/previews/index_abc.png
  78.  
  79. VC.Client.Confirm = "Bist du dir sicher?";
  80. VC.Client.DeleteBtn = "Löschen";
  81. VC.Client.Cancel = "Abbrechen";
  82. VC.Client.Create = "Erstell ein Charakter";
  83. VC.Client.Select = "Wähle ein Charakter";
  84. VC.Client.NameTitle = "Vorname Nachname";
  85. VC.Client.FrameTitle = "Charaktersystem";
  86. VC.Client.DonatorTitle = "Donator Slot";
  87.  
  88. function VC:LoadFonts()
  89. surface.CreateFont( "VC::FrameTitleFont",{
  90. font = "Didact Gothic",
  91. size = 28,
  92. weight = 500,
  93. antialias = true,
  94. shadow = true
  95. } );
  96.  
  97. surface.CreateFont( "VC::TitleFont",{
  98. font = "Didact Gothic",
  99. size = 38,
  100. weight = 500,
  101. antialias = true,
  102. shadow = true
  103. } );
  104.  
  105. surface.CreateFont( "VC::NameFont",{
  106. font = "Didact Gothic",
  107. size = 28,
  108. weight = 500,
  109. antialias = true,
  110. shadow = true
  111. } );
  112.  
  113. surface.CreateFont( "VC::DataFont",{
  114. font = "Didact Gothic",
  115. size = 18,
  116. weight = 0,
  117. antialias = true,
  118. shadow = true
  119. } );
  120.  
  121. surface.CreateFont( "VC::BtnFont",{
  122. font = "Didact Gothic",
  123. size = 24,
  124. weight = 0,
  125. antialias = true,
  126. shadow = true
  127. } );
  128. end
  129.  
  130. VC:LoadFonts();
  131.  
  132. hook.Add( "InitPostEntity", "VC::LoadFontsAgain", function()
  133. VC:LoadFonts();
  134. end );
  135. end
  136.  
  137. local meta = FindMetaTable( "Player" );
  138. function meta:IsDonator()
  139. return table.HasValue( VC.Settings.DonatorRanks, self:GetUserGroup() );
  140. end
  141.  
  142. function VC:IsWhitelistJob( job )
  143. return table.HasValue( VC.Settings.WhitelistJobs, RPExtraTeams[ job ].name );
  144. end
  145.  
  146. function VC:IsWhitelisted( _p, job )
  147. return PlychangeAllowed( _p, team.GetName( job ) );
  148. end
  149.  
  150. function VC:IsValidName( str )
  151. return ( str:match( "[^%a%s%d]" ) == nil );
  152. end
  153.  
  154. function VC:CanCreateNew( _p )
  155. return true;
  156. end
  157.  
  158. function VC:Log( msg, type )
  159. // no type = green
  160. // 1 = yellow
  161. // 2 = red
  162. local color = Color( 0, 255, 0 );
  163. if( type ) then
  164. if( type != 1 ) then
  165. color = Color( 255, 0, 0 );
  166. else
  167. color = Color( 255, 255, 0 );
  168. end
  169. end
  170.  
  171. MsgC( color, "\nCharacterSystem:\n" .. msg .. "\n\n" );
  172. end
  173.  
  174. hook.Add( "DarkRPFinishedLoading", "VC::ULX", function()
  175. local CATEGORY_NAME = "Character System";
  176. function ulx.promote( calling_ply, target_ply )
  177. if( !target_ply.character ) then
  178. calling_ply:ChatPrint( "Target has no character selected!" );
  179. return;
  180. end
  181.  
  182. if( !VC.Settings.RankJobs[ RPExtraTeams[ target_ply.character.job ].name ] ) then
  183. calling_ply:ChatPrint( "Target character's job can't be promoted!" );
  184. return;
  185. end
  186.  
  187. if( !target_ply.character.rank ) then
  188. target_ply.character.rank = 1;
  189. end
  190.  
  191. if( !VC.Settings.RankJobs[ RPExtraTeams[ target_ply.character.job ].name ][ target_ply.character.rank + 1 ] ) then
  192. calling_ply:ChatPrint( "Target is already max rank in his job!" );
  193. return;
  194. end
  195.  
  196. if( !calling_ply.rank ) then
  197. calling_ply.rank = ( VC.Ranks[ calling_ply:SteamID64() ][ calling_ply.job ] or 1 );
  198. end
  199.  
  200. local access = false;
  201. if( calling_ply:IsSuperAdmin() ||
  202. ( calling_ply.character && calling_ply.character.job == target_ply.character.job && calling_ply.character.rank > target_ply.character.rank ) ) then
  203. access = true;
  204. end
  205.  
  206. if( !access ) then
  207. calling_ply:ChatPrint( "No access!" );
  208. return;
  209. end
  210.  
  211. VC:Log( calling_ply:Nick() .. "(" .. calling_ply:SteamID64() .. ") promoted " .. target_ply:Nick() .. "." );
  212. VC:PromoteCharacter( target_ply );
  213. VC:SendCharacterData( target_ply );
  214. VC:SaveCharacters( target_ply );
  215.  
  216. local newRank = VC.Settings.RankJobs[ team.GetName( target_ply:Team() ) ][ target_ply.character.rank ].rank or "no rank";
  217. ulx.fancyLogAdmin( calling_ply, "#A promoted #T to #s", target_ply, newRank );
  218. end
  219. local promote = ulx.command( CATEGORY_NAME, "ulx promote", ulx.promote, "!promote" )
  220. promote:addParam{ type=ULib.cmds.PlayerArg };
  221. promote:defaultAccess( ULib.ACCESS_ADMIN );
  222. promote:help( "Promote a players character." );
  223. end );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement