Advertisement
spinsquad

naisho

Mar 22nd, 2015
581
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 114.84 KB | None | 0 0
  1. --[[
  2. this is naisho, famis lua p2c he sold, this version is probably around 1 year old by now, i got no idea when this was "made", its also in my hac folder, but no one probably saw it
  3.  
  4. neither do i know if this was posted or whatever already, and i dont care
  5. ]]
  6.  
  7. if SERVER then return end
  8.  
  9. local function lolcopy(t, lookup_table)
  10.         if (t == nil) then return nil end
  11.        
  12.         local copy = {}
  13.         _G.setmetatable(copy, _G.getmetatable(t))
  14.         for i,v in _G.pairs(t) do
  15.                 if ( !istable(v) ) then
  16.                         copy[i] = v
  17.                 else
  18.                         lookup_table = lookup_table or {}
  19.                         lookup_table[t] = copy
  20.                         if lookup_table[v] then
  21.                                 copy[i] = lookup_table[v] -- we already copied this table. reuse the copy.
  22.                         else
  23.                                 copy[i] = lolcopy(v,lookup_table) -- not yet copied. copy it.
  24.                         end
  25.                 end
  26.         end
  27.         return copy
  28. end
  29.  
  30. local g = lolcopy(_G)
  31.  
  32. local d = {}
  33. d.version = "1.5c"
  34. d.overview = {}
  35.  
  36. --g.require("beta_spread")
  37.  
  38. local wep_cones = {}
  39.  
  40. local old_fire = debug['getregistry']()['Entity']['FireBullets']
  41. debug['getregistry']()['Entity']['FireBullets'] = function( ent, bullet )
  42.     wep_cones[LocalPlayer():GetActiveWeapon():GetPrintName()] = bullet['Spread']
  43.     return old_fire( ent, bullet )
  44. end
  45.  
  46. local hl2cones =
  47. {
  48.     ["#HL2_SMG1"]           = g.Vector( -0.04362, -0.04362, -0.04362 ),
  49.     ["#HL2_Pistol"]         = g.Vector( -0.0100, -0.0100, -0.0100 ),
  50.     ["#HL2_Pulse_Rifle"]    = g.Vector( -0.02618, -0.02618, -0.02618 ),
  51.     ["#HL2_Shotgun"]        = g.Vector( -0.08716, -0.08716, -0.08716 ),
  52. }
  53.  
  54. local function PredictSpread( cmd, ang )
  55.     wep                 = LocalPlayer():GetActiveWeapon()
  56.     vecCone, valCone    = g.Vector( 0, 0, 0 )
  57.    
  58.     if( debug.getregistry().Entity.IsValid(wep) ) then
  59.         if ( wep_cones[wep:GetPrintName()] ) then
  60.             valCone = wep_cones[wep:GetPrintName()]
  61.             if( tonumber( valCone ) ) then
  62.                 vecCone =  Vector( -valCone, -valCone, -valCone )
  63.             elseif( type( valCone ) == "Vector" ) then
  64.                 vecCone = -1 * valCone
  65.             end
  66.         else
  67.             if( hl2cones[wep:GetPrintName()] ) then
  68.                 vecCone = hl2cones[wep:GetPrintName()]
  69.             end
  70.         end
  71.     end
  72.  
  73.     --return ( _nyx['RemoveSpread']( cmd, ang, vecCone ) ):Angle() --DS_manipulateShot( DS_md5PseudoRandom( DS_getUCMDCommandNumber( cmd ) ), ang:Forward(), vecCone ):Angle()
  74.     return
  75. end
  76.  
  77. --[[g.require("spread")
  78. local _R = debug['getregistry']()
  79.  
  80. local NormalCones                       = {
  81.         [ "weapon_cs_base" ]    = true,
  82.         [ "weapon_zs_base" ]    = true,
  83. }
  84.  
  85. local HL2Cones                          = {
  86.         [ "weapon_pistol" ]     = Vector( -0.0100, -0.0100, -0.0100 ),
  87.         [ "weapon_smg1" ]               = Vector( -0.04362, -0.04362, -0.04362 ),
  88.         [ "weapon_ar2" ]                = Vector( -0.02618, -0.02618, -0.02618 ),
  89.         [ "weapon_shotgun" ]    = Vector( -0.08716, -0.08716, -0.08716 ),
  90. }
  91.  
  92. function GetCone( wep )
  93.         if !IsValid( wep ) then return 0 end
  94.        
  95.         if HL2Cones[ wep:GetClass() ] then return HL2Cones[ wep:GetClass() ] end
  96.         if NormalCones[ wep.Base ] then return wep.Cone or wep.Primary.Cone or 0 end
  97.        
  98.         local Cone = wep.Cone
  99.        
  100.         if !Cone then
  101.                 Cone = wep.Primary and wep.Primary.Cone or 0
  102.         end
  103.        
  104.         return Cone
  105. end
  106.  
  107. function PredictSpread( cmd, ang )
  108. local w = LocalPlayer():GetActiveWeapon()
  109. local vecCone, valCone = Vector( 0, 0, 0 )
  110.         if ( w && w:IsValid() && ( type( w.Initialize ) == "function" ) ) then
  111.                 valCone = GetCone( w )                    
  112.                 if ( type( valCone ) == "number" ) then
  113.                         vecCone = Vector( -valCone, -valCone, -valCone )                      
  114.                 elseif ( type( valCone ) == "Vector" ) then
  115.                         vecCone = valCone * -1    
  116.                 elseif bit.band( cmd:GetButtons(), IN_SPEED ) or bit.band( cmd:GetButtons(), IN_JUMP ) then
  117.                         vecCone = valCone + (cone * 2 )                        
  118.                 end
  119.         else
  120.                 if ( w:IsValid() ) then
  121.                         local class = w:GetClass()
  122.                         if ( HL2Cones[ class ] ) then
  123.                                 vecCone = HL2Cones[ class ]
  124.                         end
  125.                 end
  126.         end
  127. return DS_manipulateShot( DS_md5PseudoRandom( DS_getUCMDCommandNumber( cmd ) ), ang:Forward(), vecCone ):Angle()
  128. end]]
  129.  
  130. function d:SetDef()
  131. surface['CreateFont']( "dFONTMEN", {
  132. font = "Segoe UI",
  133. size = 22,
  134. weight = 0,
  135. antialias = true
  136. } )
  137. g.surface.CreateFont( "dFONT1", {
  138. font = "Bebas Neue",
  139. size = 22,
  140. weight = 50,
  141. antialias = true
  142. } )
  143.  
  144. g.surface.CreateFont( "dFONT2", {
  145. font = "Bebas Neue",
  146. size = 17,
  147. weight = 50,
  148. antialias = true
  149. } )
  150.  
  151. d.target1=nil
  152. d.reload1 = CurTime()
  153. d.typing = false
  154. d.aimbot = false
  155. d.collide = false
  156. d.addprop = false
  157. d.removeprop = false
  158. d.espents = {}
  159. d.friends = {}
  160. d.log = {}
  161. d.console = false
  162. d.menuopen = false
  163. d.str = "[Naisho! "..d.version.."]"
  164. d.trigger1 = false
  165. d.esp1 = false
  166. d.configs = {}
  167. d.blockedcmds = {
  168. "onion_cheat_check",
  169. "_Sharkeys",
  170. "__ac",
  171. "__imacheater",
  172. "gm_possess",
  173. "__uc_",
  174. "_____b__c",
  175. "___m",
  176. "sc",
  177. "bg",
  178. "bm",
  179. "kickme",
  180. "gw_iamacheater",
  181. "imafaggot",
  182. "birdcage_browse",
  183. "reportmod",
  184. "_fuckme",
  185. "st_openmenu",
  186. "_NOPENOPE",
  187. "__ping",
  188. "ar_check",
  189. "GForceRecoil",
  190. "~__ac_auth",
  191. "blade_client_check",
  192. "blade_client_detected_message",
  193. "disconnect",
  194. "exit",
  195. "retry",
  196. "kill",
  197. "dac_imcheating",
  198. "dac_pleasebanme",
  199. "excl_banme"
  200. }
  201. d.noreload = {
  202. "weapon_physgun",
  203. "weapon_gravgun",
  204. "toolgun",
  205. "pocket",
  206. "crowbar",
  207. "keys"
  208. }
  209. d.chars = {
  210. [1] = {char = "a", val = KEY_A},
  211. [2] = {char = "b", val = KEY_B},
  212. [3] = {char = "c", val = KEY_C},
  213. [4] = {char = "d", val = KEY_D},
  214. [5] = {char = "e", val = KEY_E},
  215. [6] = {char = "f", val = KEY_F},
  216. [7] = {char = "g", val = KEY_G},
  217. [8] = {char = "h", val = KEY_H},
  218. [9] = {char = "i", val = KEY_I},
  219. [10] = {char = "j", val = KEY_J},
  220. [11] = {char = "k", val = KEY_K},
  221. [12] = {char = "l", val = KEY_L},
  222. [13] = {char = "m", val = KEY_M},
  223. [14] = {char = "n", val = KEY_N},
  224. [15] = {char = "o", val = KEY_O},
  225. [16] = {char = "p", val = KEY_P},
  226. [17] = {char = "q", val = KEY_Q},
  227. [18] = {char = "r", val = KEY_R},
  228. [19] = {char = "s", val = KEY_S},
  229. [20] = {char = "t", val = KEY_T},
  230. [21] = {char = "u", val = KEY_U},
  231. [22] = {char = "v", val = KEY_V},
  232. [23] = {char = "w", val = KEY_W},
  233. [24] = {char = "x", val = KEY_X},
  234. [25] = {char = "y", val = KEY_Y},
  235. [26] = {char = "z", val = KEY_Z},
  236. [27] = {char = "space", val = KEY_SPACE},
  237. [28] = {char = "tab", val = KEY_TAB},
  238. [29] = {char = "lshift", val = KEY_LSHIFT},
  239. [30] = {char = "rshift", val = KEY_RSHIFT},
  240. [31] = {char = "lalt", val = KEY_LALT},
  241. [32] = {char = "ralt", val = KEY_RALT},
  242. [33] = {char = ",", val = KEY_COMMA},
  243. [34] = {char = ".", val = KEY_PERIOD},
  244. [35] = {char = "/", val = KEY_SLASH},
  245. [36] = {char = "[", val = KEY_LBRACKET},
  246. [37] = {char = ";", val = KEY_SEMICOLON},
  247. [38] = {char = "'", val = KEY_APOSTROPHE},
  248. [39] = {char = "F1", val = KEY_F1},
  249. [40] = {char = "F2", val = KEY_F2},
  250. [41] = {char = "F3", val = KEY_F3},
  251. [42] = {char = "F4", val = KEY_F4},
  252. [43] = {char = "F5", val = KEY_F5},
  253. [43] = {char = "F6", val = KEY_F6},
  254. [44] = {char = "F7", val = KEY_F7},
  255. [45] = {char = "F8", val = KEY_F8},
  256. [46] = {char = "F9", val = KEY_F9},
  257. [47] = {char = "F10", val = KEY_F10},
  258. [48] = {char = "F11", val = KEY_F11},
  259. [48] = {char = "F12", val = KEY_F12},
  260. [49] = {char = "KEYPAD_0", val = KEY_PAD_0},
  261. [50] = {char = "KEYPAD_.", val = KEY_PAD_DECIMAL},
  262. [51] = {char = "KEYPAD_INSERT", val = KEY_PAD_0},
  263. [52] = {char = "KEYPAD_DELETE", val = KEY_PAD_DECIMAL},
  264. [53] = {char = "KEYPAD_1", val = KEY_PAD_1},
  265. [54] = {char = "KEYPAD_END", val = KEY_PAD_1},
  266. [55] = {char = "KEYPAD_2", val = KEY_PAD_2},
  267. [56] = {char = "KEYPAD_DOWNARROW", val = KEY_PAD_2},
  268. [57] = {char = "KEYPAD_3", val = KEY_PAD_3},
  269. [58] = {char = "KEYPAD_PAGEDOWN", val = KEY_PAD_3},
  270. [59] = {char = "KEYPAD_4", val = KEY_PAD_4},
  271. [60] = {char = "KEYPAD_LEFTARROW", val = KEY_PAD_4},
  272. [61] = {char = "KEYPAD_5", val = KEY_PAD_5},
  273. [62] = {char = "KEYPAD_6", val = KEY_PAD_6},
  274. [63] = {char = "KEYPAD_RIGHTARROW", val = KEY_PAD_6},
  275. [64] = {char = "KEYPAD_7", val = KEY_PAD_7},
  276. [65] = {char = "KEYPAD_HOME", val = KEY_PAD_7},
  277. [66] = {char = "KEYPAD_9", val = KEY_PAD_9},
  278. [67] = {char = "KEYPAD_PGUP", val = KEY_PAD_9},
  279. [68] = {char = "NUMLOCK", val = KEY_NUMLOCKTOGGLE},
  280. [69] = {char = "KEYPAD_/", val = KEY_PAD_DIVIDE},
  281. [70] = {char = "KEYPAD_*", val = KEY_PAD_MULTIPLY},
  282. [71] = {char = "KEYPAD_-", val = KEY_PAD_MINUS},
  283. [72] = {char = "KEYPAD_+", val = KEY_PAD_PLUS},
  284. [73] = {char = "KEYPAD_ENTER", val = KEY_PAD_ENTER},
  285. [74] = {char = "Insert", val = KEY_INSERT},
  286. [75] = {char = "PageUp", val = KEY_PAGEUP},
  287. [76] = {char = "PageDown", val = KEY_PAGEDOWN},
  288. [75] = {char = "End", val = KEY_END},
  289. [76] = {char = "Delete", val = KEY_DELETE},
  290. [77] = {char = "KEYPAD_8", val = KEY_PAD_8},
  291. [78] = {char = "KEYPAD_UPARROW", val = KEY_PAD_8},
  292. [79] = {char = "None", val = KEY_NONE},
  293. }
  294. d.cmds = {
  295. ["help"] = {type="(Command)",usage="help or help <command>",help="Get help or info on any command.",example="help bind"},
  296. ["bind"] = {type="(String+String)",usage="bind <key> <action>",help="Bind any action from the list of actions to a key.",example="bind j +menu"},
  297. ["unbind"] = {type="(String)",usage="unbind <action> or bind none <action>",help="Unbind a previous or default bind",example="unbind toggle_esp"},
  298. ["ra_hack"] = {type="(String+Number)",usage="ra_hack <account#> <amount>",help="Hack RealisticATMs by RocketMania",example="ra_hack 2335-9328 5000"},
  299. ["addentity"] = {type="(String)",usage="addentity <classname>",help="Manually add an entity to the ESP by classname",example="addentity spawned_money"},
  300. ["collideprop"] = {type="(Command)",usage="collideprop",help="Collides the prop you are looking at",example="collideprop"},
  301. ["unbindall"] = {type="(Command)",usage="unbindall",help="Unbinds everything.",example="unbindall"},
  302. ["runcl"] = {type="(String)",usage="runcl <luastring>",help="Allows you to run Lua Code(Only use this if you actually know how.)",example="runcl [[print(\'Hello World\')]]"},
  303. ["melon_addcount"] = {type="(Number)",usage="melon_addcount <amount>",help="Allows you to add Melon Clicks to your count(Server must have Melon Clicker addon)",example="melon_addcount 5000"},
  304. ["melon_addpoints"] = {type="(Number)",usage="melon_addpoints <amount>",help="Allows you to add Melon Pointshop points to your count(Server must have Melon Clicker addon)",example="melon_addpoints 5000"},
  305. ["mde_openeditor"] = {type="(Command)",usage="mde_openeditor",help="Opens the RX Map Editor(Delete/Respawn all PermaProps)(Server must have RocketMania Map Editor)",example="mde_openeditor"},
  306. ["mde_addprop"] = {type="(Command)",usage="mde_addprop",help="Makes the prop you are looking at a PermaProp.(Server must have RocketMania Map Editor)",example="mde_addprop"},
  307. ["mde_removeprop"] = {type="(Command)",usage="mde_removeprop",help="Removes the prop you are looking at from being a PermaProp.(Server must have RocketMania Map Editor)",example="mde_removeprop"},
  308. ["crashall"] = {type="(Command)",usage="crashall",help="Crashes everyone in your server but you(Server must have RocketMania Map Editor)",example="crashall"},
  309. ["crashply"] = {type="(String)",usage="crashply <name>",help="Crashes a player of your choice(Server must have RocketMania Map Editor)",example="crashply deag"},
  310. ["extended_lastdced"] = {type="(Command)",usage="extended_lastdced",help="Displays the IP addresses+SteamIDs of the last few people that disconnected(Server must have ULX Extended)",example="extended_lastdced"},
  311. ["custom_lastdced"] = {type="(Command)",usage="custom_lastdced",help="Displays the IP addresses+SteamIDs of the last few people that disconnected(Server must have ULX Custom Commands)",example="custom_lastdced"},
  312. ["netinfo"] = {type="(Command)",usage="netinfo",help="Displays the net.Receivers info(Check what addons the server has)",example="netinfo"},
  313. ["commandinfo"] = {type="(Command)",usage="commandinfo",help="Displays the commands on the server (Check what commands are created on you)",example="commandinfo"},
  314. }
  315.  
  316.  
  317. d.binds = {
  318.     ["menu"] = {key=KEY_J,what="Opens the Naisho! Menu"},
  319.     ["+bhop"] = {key=KEY_SPACE,what="Auto-Bunnyhop"},
  320.     ["collideprop"] = {key=KEY_G,what="Collides the prop you are looking at"},
  321.     ["+aim"] = {key=KEY_F,what="Hold this down to aimbot through everyone"},
  322.     ["+speed"] = {key=KEY_COMMA,what="Hold this down to run faster"},
  323.     ["toggle_trigger"] = {key=KEY_P,what="Toggle the Naisho! Triggerbot"},
  324.     ["toggle_esp"] = {key=KEY_M,what="Toggle the Naisho! ESP/Wallhack"},
  325.     ["map_addprop"] = {key=KEY_COMMA,what="Make the entity you are looking at permanent(Server must have RocketMania Map Editor)"},
  326.     ["map_removeprop"] = {key=KEY_PERIOD,what="Stop the entity you are looking at from being permanent(Server must have RocketMania Map Editor)"}
  327. }
  328.  
  329. d.bools = {
  330.     ["bhop"] = true,
  331.     ["norecoil"] = false,
  332.     ["nospread"] = false,
  333.    
  334.     ["aimbot"] = false,
  335.     ["aimbot_active"] = false,
  336.     ["aimatteam"] = false,
  337.     ["aimatfriends"] = false,
  338.     ["autoshoot"] = false,
  339.     ["aautoreload"] = false,
  340.     ["aimplayer"] = false,
  341.     ["aimnpc"] = false,
  342.     ["antisnap"] = false,
  343.  
  344.    
  345.  
  346.  
  347.     ["triggerbot"] = false,
  348.     ["triggerplayer"] = false,
  349.     ["triggernpc"] = false,
  350.     ["tautoreload"] = false,
  351.  
  352.     ["esp"] = true,
  353.     ["eplayers"] = true,
  354.     ["enpcs"] = false,
  355.     ["eents"] = false,
  356.     ["ename"] = true,
  357.     ["erank"] = false,
  358.     ["ewep"] = false,
  359.     ["ehealth"] = true,
  360.     ["earmour"] = false,
  361.     ["erpcash"] = false,
  362.     ["epoints"] = false,
  363.     ["ehealthb"] = false,
  364.    
  365.     ["wallhack"] = false,
  366.     ["wplayers"] = true,
  367.     ["wnpcs"] = false,
  368.     ["wents"] = false,
  369.     ["wprops"] = false,
  370.    
  371.     ["crosshair"] = false,
  372.     ["chealth"] = false,
  373.     ["carmour"] = false,
  374.     ["crpcash"] = false,
  375.     ["cpoints"] = false,
  376.     ["cshots"] = false,
  377.    
  378.     ["logrcc"] = true,
  379.     ["blockacs"] = true,
  380.     ["blockss"] = true,
  381.    
  382.    
  383.    
  384.  
  385.  
  386. }
  387.  
  388. d.vars = {
  389.     ["aimx"] = 7,
  390.     ["aimy"] = 1,
  391.     ["aimz"] = 61,
  392.     ["aimfov"] = 360,
  393.     ["antisnap"] = 0.2,
  394.     ["adistance"] = 99999999999999999999999999999999999999,
  395.     ["aimdistance"] = 99999999999999999999999999999999999999,
  396.     ["aimantisnap"] = 0.2,
  397.     ["aimbone"] = "Head",
  398.     ["triggertype"] = "Head",
  399.  
  400.     ["esptextdist"] = 15000,
  401.     ["espbox"] = "3D",
  402.     ["esptype"] = "Body",
  403.     ["esphlocation"] = "Bottom",
  404.     ["esphdist"] = 500,
  405.    
  406.     ["espwtype"] = "Solid",
  407.     ["espwdist"] = 2000,
  408.  
  409. }
  410. --d:AddVarComboBox(aimbot, "aimbone", "Mode:", {"Head","Chest","Offsets"}, 250, 15, 100)
  411. d.bones = {
  412. ["Head"] = "ValveBiped.Bip01_Head1",
  413. ["Neck"] = "ValveBiped.Bip01_Neck1",
  414. ["Spine"] = "ValveBiped.Bip01_Spine",
  415. ["Spine1"] = "ValveBiped.Bip01_Spine1",
  416. ["Spine2"] = "ValveBiped.Bip01_Spine2",
  417. ["Spine4"] = "ValveBiped.Bip01_Spine4",
  418. ["Pelvis"] ="ValveBiped.Bip01_Pelvis",
  419. ["R Upperarm"] = "ValveBiped.Bip01_R_UpperArm",
  420. ["R Forearm"] = "ValveBiped.Bip01_R_Forearm",
  421. ["R Hand"] = "ValveBiped.Bip01_R_Hand",
  422. ["L Upperarm"] = "ValveBiped.Bip01_L_UpperArm",
  423. ["L Forearm"] = "ValveBiped.Bip01_L_Forearm",
  424. ["L Hand"] = "ValveBiped.Bip01_L_Hand",
  425. ["R Thigh"] = "ValveBiped.Bip01_R_Thigh",
  426. ["R Calf"] = "ValveBiped.Bip01_R_Calf",
  427. ["R Foot"] = "ValveBiped.Bip01_R_Foot",
  428. ["R Toes"] = "ValveBiped.Bip01_R_Toe0",
  429. ["L Thigh"] = "ValveBiped.Bip01_L_Thigh",
  430. ["L Calf"] = "ValveBiped.Bip01_L_Calf",
  431. ["L Foot"] = "ValveBiped.Bip01_L_Foot",
  432. ["L Toes"] = "ValveBiped.Bip01_L_Toe0",
  433. ["Random"] = "N/A"
  434. }
  435.  
  436. d.oRCC = RunConsoleCommand
  437. d.oRenderCapture = render.Capture
  438. d.secondantiss = net.Receive
  439. d.thirdantiss = net.Start
  440. d.pmeta = g.FindMetaTable("Player")
  441. d.oinput = input.IsKeyDown
  442.  
  443. function d:con(str)
  444. g.MsgC(g.Color(0,255,0,255),"[Naisho! "..d.version.."] "..str.."\n")
  445. end
  446.  
  447. function d:fakeqacss()
  448. g.net.Start("screengrab_start")
  449.         g.net.WriteUInt( 4,32 )
  450. g.net.SendToServer()
  451. end
  452.  
  453. function d:fakeqacpart()
  454.     g.net.Start( "screengrab_part")
  455.         g.net.WriteUInt( 4, 32 )
  456.         g.net.WriteData( "000000000000000000000000", 4 )
  457.     g.net.SendToServer()
  458. end
  459.  
  460. function input.IsKeyDown(key)
  461.     if key == KEY_SPACE then
  462.         return false
  463.     end
  464.     return d.oinput(key)
  465. end
  466.  
  467. function net.Receive(str,func)
  468.     if str == "screengrab_part" and d.bools["blockss"] then
  469.         d:con("Blocked an admin from taking a screenshot of your screen!(QAC)")
  470.         d:fakeqacpart()
  471.         return
  472.     end
  473.    
  474.     return d.secondantiss(str,func)
  475. end
  476.  
  477. function net.Start(str)
  478.     if str == "screengrab_start" and d.bools["blockss"] then
  479.         d:con("Blocked an admin from taking a screenshot of your screen!(QAC)")
  480.         d:fakeqacss()
  481.         return
  482.     end
  483.    
  484.     return d.thirdantiss(str)
  485. end
  486.  
  487. function debug.getinfo(indexkid)
  488. return
  489. end
  490.  
  491.  
  492.  
  493. function render.Capture(data)
  494.     if d.bools["blockss"] then
  495.         d:con("Blocked an admin from taking a screenshot of your screen!")
  496.         return "nonoononooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoononononnonooooooonononoononononononononoonononoononononoonononoonoonononon"
  497.     end
  498.    
  499.     return d.ORenderCapture(data)
  500. end
  501.  
  502. function RunConsoleCommand(cmd, ...)
  503.     local str = cmd
  504.     if ... then
  505.         local tolog = {...}
  506.         if d.bools["logrcc"] then
  507.         d:con("RunConsoleCommand("..cmd..", "..g.table.concat(tolog, ", ")..")")
  508.         end
  509.     end
  510.    
  511.     if d.bools["logrcc"] and !... then
  512.         d:con("RunConsoleCommand("..cmd..")")
  513.     end
  514.        
  515.     if d.bools["blockacs"] and g.table.HasValue(d.blockedcmds,cmd) then
  516.         d:con("Blocked:"..cmd.." from running")
  517.         return
  518.     else
  519.         return d.oRCC(cmd, ...)
  520.     end
  521.    
  522. end
  523.  
  524. local oConCommand = d.pmeta.ConCommand
  525. function d.pmeta.ConCommand(ply, cmd)
  526.     cmd = cmd or ""
  527.     if d.bools["logrcc"] then
  528.     d:con("ConsoleCommand("..cmd..")")
  529.     end
  530.     if d.bools["blockacs"] and g.table.HasValue(d.blockedcmds,cmd) then
  531.     d:con("Blocked:"..cmd.." from running")
  532.         return
  533.     else
  534.         return oConCommand(ply, cmd)
  535.     end
  536. end
  537.  
  538. function d:savecfg(cfg)
  539.     local tosave = {}
  540.     tosave.vars = d.vars
  541.     tosave.bools = d.bools
  542.     tosave.binds = d.binds
  543.     tosave.espents = d.espents
  544.     tosave.friends = d.friends
  545.    
  546.     g.file.Delete("naisho/"..cfg..".txt")
  547.     g.file.Write("naisho/"..cfg..".txt",g.util.TableToJSON(tosave))
  548. end
  549. function d:loadcfg(cfg)
  550. cfg = g.string.lower(cfg)
  551.     if g.file.Exists("naisho/"..cfg..".txt", "DATA") then
  552.         local toload = g.util.JSONToTable(g.file.Read("naisho/"..cfg..".txt", "DATA"))
  553.         g.table.Merge(d.vars,toload.vars)
  554.         g.table.Merge(d.bools,toload.bools)
  555.         g.table.Merge(d.binds,toload.binds )
  556.         g.table.Merge(d.espents,toload.espents )
  557.         g.table.Merge(d.friends,toload.friends)
  558.     end
  559. end
  560. function d:delete(cfg)
  561.     cfg = g.string.lower(cfg)
  562.     if g.file.Exists("naisho/"..cfg..".txt", "DATA") then
  563.         g.file.Delete("naisho/"..cfg..".txt")
  564.     end
  565. end
  566. function d:get()
  567.     local files = g.file.Find("naisho/*.txt", "DATA")
  568.    
  569.     for k,v in g.ipairs(files) do
  570.         files[k] = g.string.Replace(v,".txt","")
  571.     end
  572.    
  573.     return files
  574. end
  575. if !g.file.Exists("naisho", "DATA") then
  576.     g.file.CreateDir("naisho")
  577.     d:savecfg("default")
  578.     d:savecfg("defaultbackup(Naisho! default backup)")
  579. else
  580. d:loadcfg("default")
  581. end
  582. d.configs = d:get()
  583.  
  584. function d:AddCheckBox(dpanel, bool, text, x, y)
  585.     local checkbox = g.vgui.Create("DCheckBoxLabel", dpanel)
  586.     checkbox:SetPos(x, y)
  587.     checkbox:SetText(text)
  588.     checkbox:SizeToContents()
  589.     checkbox:SetTextColor(g.Color(240,240,240))
  590.     checkbox:SetChecked(d.bools[bool])
  591.     checkbox.OnChange = function(chk)
  592.         g.surface.PlaySound("ui/buttonclick.wav")
  593.         d.bools[bool] = checkbox:GetChecked()
  594.         d:addView("\""..bool.."\" set to "..tostring(checkbox:GetChecked()))
  595.     end
  596. end
  597.  
  598.  
  599.  
  600. function d:AddVarText(dpanel, var, text, min, max, x, y, w)
  601.     local w1 = g.surface.GetTextSize(text)
  602.    
  603.     local label = g.vgui.Create("DLabel", dpanel)
  604.     label:SetTextColor(g.Color(240,240,240,255))
  605.     label:SetPos(x, y-13)  
  606.     label:SetText(text)
  607.     label:SizeToContents()
  608.    
  609.     local textbox = g.vgui.Create("DTextEntry", dpanel)
  610.     textbox:SetPos(x, y)
  611.     textbox:SetWide(w)
  612.     textbox:SetValue(d.vars[var])
  613.     textbox.OnEnter = function()
  614.     local val =tonumber(textbox:GetValue())
  615.     if !val then d:addView("Could not recognise \""..val.."\" for variable \""..var.."\". Please enter a number between "..min.." and "..max) return end
  616.     if val < min then d:addView("Could not recognise \""..val.."\" for variable \""..var.."\". Please enter a number between "..min.." and "..max) end
  617.     if val > max then d:addView("Could not recognise \""..val.."\" for variable \""..var.."\". Please enter a number between "..min.." and "..max) end
  618.         if val and val >= min and val <= max then
  619.             g.surface.PlaySound("ui/buttonclick.wav")
  620.             d:addView("\""..var.."\" set to "..val.." from "..d.vars[var])
  621.             d.vars[var] = val
  622.         end
  623.     end
  624.  local textcol = g.Color(192,192,192,255)
  625. local textocol = g.Color(100,100,100,255)
  626.  
  627. textbox.Paint = function()
  628. local w = textbox:GetWide()
  629. local h = textbox:GetTall()
  630. g.draw.RoundedBox(0, 1, 1, w-2, h-2, textcol)
  631. g.surface.SetDrawColor( textocol )
  632. g.surface.DrawOutlinedRect( 0, 0, w, h )
  633. textbox:DrawTextEntryText(g.Color(0, 0, 0), g.Color(0, 255, 0), g.Color(255, 255, 255))
  634. end
  635.  
  636.  
  637.   textbox.OnTextChanged = function(PanelVar)
  638.    textbox:SetTextColor(g.Color(0,255,0,255))
  639.   end
  640.  
  641. end
  642.  
  643. function d:AddVarComboBox(dpanel, var, text, values, x, y, w)
  644.     local w1 = g.surface.GetTextSize(text)
  645.    
  646.     local label = g.vgui.Create("DLabel", dpanel)
  647.     label:SetTextColor(g.Color(240,240,240,255))
  648.     label:SetPos(x, y-13)  
  649.     label:SetText(text)
  650.     label:SizeToContents()
  651.    
  652.     local combobox = g.vgui.Create("DComboBox", dpanel)
  653.     combobox:SetPos(x, y)
  654.     combobox:SetWide(w)
  655.     combobox:SetValue(d.vars[var])
  656.     for k,v in g.pairs(values) do
  657.         combobox:AddChoice(v)
  658.     end
  659.     combobox.OnSelect = function(p,i,val,data)
  660.     if val == d.vars[var] then
  661.         d:addView("\""..var.."\" was already set to "..d.vars[var].." silly!")
  662.         return
  663.     end
  664.         g.surface.PlaySound("ui/buttonclick.wav")
  665.         d:addView("\""..var.."\" set to "..val.." from "..d.vars[var])
  666.         d.vars[var] = val
  667.     end
  668.  
  669.    
  670. end
  671.  
  672. d.StartChat1 = GAMEMODE.StartChat
  673. function GAMEMODE:StartChat()
  674.     d.StartChat1()
  675.     d.typing = true
  676. end
  677.  
  678. d.FinishChat1 = GAMEMODE.FinishChat
  679. function GAMEMODE:FinishChat()
  680.     d.FinishChat1()
  681.     d.typing = false
  682. end
  683.  
  684. function d:KeyString(key)
  685.  
  686. for k,v in g.ipairs(d.chars) do
  687. if v.val==key then
  688. return v.char
  689. end
  690. end
  691. return "N/A"
  692. end
  693.  
  694. function d:Collide(prop)
  695.      properties.List[ 'collision_off' ]:Action( prop )
  696.      properties.List[ 'collision_on' ]:Action( prop )
  697. end
  698.  
  699. function d:RAHack(account,amount)
  700. if (!account or !amount) or (account=="" or amount=="") or (account==" " or amount==" ") then return "Incorrect syntax. Usage: "..d.cmds["ra_hack"].usage.."("..d.cmds["ra_hack"].example..")" end
  701. if !net.Receivers.atm_cl_verify_r_s2c then return "Server does not have Realistic ATM Addon" end
  702. local msgs = {}
  703. local amount1 = "-"..g.tostring(amount)
  704.         g.net.Start("ATM_DepositMoney_C2S")
  705.                 g.net.WriteTable({Memo = "Hacked by Naisho!"..d.version,Num=account,Amount=g.tonumber(amount1)})
  706.         g.net.SendToServer()
  707.  
  708.         g.table.insert(msgs,"Hacked $"..amount)
  709.         return msgs
  710. end
  711.  
  712. function d:Unbind(bind)
  713.     if !bind then return "Incorrect syntax. Usage: "..d.cmds["unbind"].usage.."("..d.cmds["unbind"].example..")" end
  714.     local bind = bind:lower()
  715. d.binds[bind].key=KEY_NONE
  716. return bind.." was unbounded"
  717. end
  718.  
  719. function d:SetBind(key,bind)
  720. if (!bind or !key) or (bind=="" or key=="") or (bind==" " or key==" ") then return "Incorrect syntax. Usage: "..d.cmds["bind"].usage.."("..d.cmds["bind"].example..")" end
  721.     local bind = bind:lower()
  722.     local key = key:lower()
  723. if !d.binds[bind] then return bind.." is not a valid bind, Go to the \"Bindable Actions\" tab for a list of the valid binds." end
  724. if key=="none" then
  725.     return d:Unbind(bind)
  726. end
  727. for k,v in g.ipairs(d.chars) do
  728. if v.char:lower() == key then
  729. d.binds[bind].key = v.val
  730. return bind.." bound to "..v.char
  731. end
  732. end
  733. return key.." is not a valid key. Go to the \"Bindable Keys\" tab for a list of valid keys."
  734. end
  735.  
  736.  
  737. function d:addentity(ent)
  738.  
  739. if !g.table.HasValue(d.espents,ent) then
  740. g.table.insert(d.espents,ent)
  741. return ent.." is now being tracked on the ESP!"
  742. else
  743. return ent.." is already being tracked on the ESP!"
  744. end
  745.  
  746. end
  747.  
  748. function d:melonaddcount(amount)
  749. if !amount or amount <=0 then
  750.     return "Incorrect syntax. Usage: "..d.cmds["melon_addcount"].usage.."("..d.cmds["melon_addcount"].example..")"
  751. end
  752. if !LocalPlayer().Clicker_AddToCount then return "Server does not have Melon Clicker addon" end
  753.  
  754. g.LocalPlayer():Clicker_AddToCount(amount)
  755.  
  756.  
  757. return "Adding "..amount.." clicks to your Melon Clicker score!"
  758. end
  759.  
  760. function d:melonaddpoints(amount)
  761. if !amount or amount <=0 then
  762.     return "Incorrect syntax. Usage: "..d.cmds["melon_addpoints"].usage.."("..d.cmds["melon_addpoints"].example..")"
  763. end
  764. if !LocalPlayer().Clicker_AddToCount then return "Server does not have Melon Clicker addon" end
  765.  
  766. g.net.Start('ClickerAddToPoints')
  767.     g.net.WriteInt(amount, 32)
  768. g.net.SendToServer()
  769.  
  770.  
  771. return "Adding "..amount.." points to your pointshop account"
  772. end
  773.  
  774. function d:addmdeprop(prop)
  775. if !prop then
  776.     return "You must be looking at an entity!"
  777. end
  778.  
  779. if !MDE_AddNewStuff then return "Server does not have RocketMania Map Decoration Editor" end
  780.  
  781. local TARGET=prop
  782.  
  783. local Data = {}
  784. Data.Model = TARGET.GetModel and TARGET:GetModel() or "N/A"
  785. Data.Color = TARGET:GetColor()
  786. Data.Material = TARGET:GetMaterial()
  787. Data.Skin = TARGET:GetSkin()
  788. Data.Class = TARGET:GetClass()
  789. Data.Type = g.type(TARGET)
  790. local PosK = TARGET:GetPos()
  791. local AngleK = TARGET:GetAngles()
  792. Data.Pos = TARGET:GetPos()
  793. Data.Ang = TARGET:GetAngles()
  794.  
  795. MDE_AddNewStuff(Data,TARGET)
  796.  
  797.  
  798.  
  799.  
  800. return "Making "..Data.Model.." a permenant prop."
  801. end
  802.  
  803. function d:removemdeprop(prop)
  804. if !prop then
  805.     return "You must be looking at an entity!"
  806. end
  807. if !MDE_AddNewStuff then return "Server does not have RocketMania Map Decoration Editor" end
  808. local TARGET=prop
  809.  
  810. local Data = {}
  811. Data.Model = TARGET.GetModel and TARGET:GetModel() or "N/A"
  812. Data.Color = TARGET:GetColor()
  813. Data.Material = TARGET:GetMaterial()
  814. Data.Skin = TARGET:GetSkin()
  815. Data.Class = TARGET:GetClass()
  816. Data.Type = g.type(TARGET)
  817.  
  818. local PosK = TARGET:GetPos()
  819. local AngleK = TARGET:GetAngles()
  820. Data.Pos = TARGET:GetPos()
  821. Data.Ang = TARGET:GetAngles()
  822.  
  823. MDE_RemoveStuff(Data,TARGET)
  824.  
  825.  
  826.  
  827.  
  828. return "Removing "..Data.Model.." from being a permanent prop"
  829. end
  830.  
  831. function d:crashall()
  832. if !MDE_AddNewStuff then return "Server does not have RocketMania Map Decoration Editor" end
  833.     for k,v in g.pairs(player.GetAll()) do
  834.         g.timer.Simple(k*2,function()
  835.             if g.IsValid(v) then
  836.                 if v != g.LocalPlayer() then
  837.                     local TARGET=v
  838.                     local Data = {}
  839.                     Data.Model = TARGET.GetModel and TARGET:GetModel() or "N/A"
  840.                     Data.Color = TARGET:GetColor()
  841.                     Data.Material = TARGET:GetMaterial()
  842.                     Data.Skin = TARGET:GetSkin()
  843.                     Data.Class = TARGET:GetClass()
  844.                     Data.Type = type(TARGET)
  845.                    
  846.                     local PosK = TARGET:GetPos()
  847.                     local AngleK = TARGET:GetAngles()
  848.                    
  849.                     Data.Pos = TARGET:GetPos()
  850.                     Data.Ang = TARGET:GetAngles()
  851.  
  852.  
  853.                     MDE_RemoveStuff(Data,TARGET)
  854.  
  855.                     d:con(v:Name().." was crashed")
  856.                 end
  857.             end
  858.         end)
  859.     end
  860. end
  861.  
  862. function d:findPlayerByName(name)
  863. name = g.string.Trim(name)
  864. if name == "" or name == " " then return "syntax" end
  865.  
  866.         for k,v in g.pairs(player.GetAll()) do
  867.                 if g.string.find(v:Name():lower(),name)  then
  868.                         return v
  869.                 end
  870.         end
  871.        
  872.         return "No"
  873. end
  874.  
  875. function d:crashply(name)
  876.     local ply = d:findPlayerByName(name)
  877.    
  878.     if ply == "syntax" then return "Incorrect syntax. Usage: "..d.cmds["crashply"].usage.."("..d.cmds["crashply"].example..")"  end
  879.     if !MDE_AddNewStuff then return "Server does not have RocketMania Map Decoration Editor" end
  880.     if ply == "No" then return "Could not find a player with the name "..name end
  881.    
  882.                     local TARGET=ply
  883.                     local Data = {}
  884.                     Data.Model = TARGET.GetModel and TARGET:GetModel() or "N/A"
  885.                     Data.Color = TARGET:GetColor()
  886.                     Data.Material = TARGET:GetMaterial()
  887.                     Data.Skin = TARGET:GetSkin()
  888.                     Data.Class = TARGET:GetClass()
  889.                     Data.Type = g.type(TARGET)
  890.                    
  891.                     local PosK = TARGET:GetPos()
  892.                     local AngleK = TARGET:GetAngles()
  893.                    
  894.                     Data.Pos = TARGET:GetPos()
  895.                     Data.Ang = TARGET:GetAngles()
  896.  
  897.  
  898.                     MDE_RemoveStuff(Data,TARGET)
  899.     return "Crashed "..ply:Name()
  900. end
  901.  
  902. function d:extendeddces()
  903.     if !net.Receivers.recentdcs then return "Server does not have ULX Extended" end
  904.    
  905.     d.pmeta:ConCommand("ulx recentdcs")
  906.     g.timer.Simple(1,function()
  907.  
  908.     g.MsgC(Color(255,128,0),d.str.."ULX Extended DC List "..#RecentDCs.." records\n")
  909.     for k,v in g.pairs(RecentDCs) do
  910.         g.MsgC(Color(0,255,0),v.nick.."("..v.id..")\n\t "..v.ip.."\n\n")
  911.     end
  912.     g.MsgC(Color(255,128,0),d.str.."ULX Extended DC List "..#RecentDCs.." records\n")
  913.    
  914.     end)
  915.     return "Data printed to console"
  916. end
  917.  
  918. function d:customdces()
  919.     if !net.Receivers.hcl then return "Server does not have Custom Commands" end
  920.     if !disconnectTable then return "ERROR: NoTable" end
  921.     local i =0
  922.     for k,v in g.pairs(disconnectTable) do
  923.      i= i+1
  924.     end
  925.     g.MsgC(Color(255,128,0),d.str.."CustomCommands DC List:"..i.." records\n")
  926.     for k,v in g.pairs(disconnectTable) do
  927.         g.MsgC(Color(0,255,0),v[1].."("..k..")\n\t "..v[2].."\n\n")
  928.     end
  929.     g.MsgC(Color(255,128,0),d.str.."CustomCommands DC List:"..i.." records\n")
  930.    
  931.  
  932.     return "Data printed to console"
  933. end
  934. function d:netinfo()
  935.     if !net.Receivers then return "ERROR: net.Receivers does not exist" end
  936.    
  937.     local i =0
  938.     for k,v in g.pairs(net.Receivers) do
  939.      i= i+1
  940.     end
  941.    
  942.     g.MsgC(Color(255,128,0),d.str.."net.Receivers:"..i.." records.\n")
  943.     for k,v in g.pairs(net.Receivers) do
  944.         g.MsgC(Color(0,255,0),k.."\n\t")
  945.         g.MsgC(Color(255,0,100),g.jit.util.funcinfo(v).source.."\n\n")
  946.     end
  947.     g.MsgC(Color(255,128,0),d.str.."net.Receivers:"..i.." records.\n")
  948.  
  949.     return "Data printed to console"
  950. end
  951.  
  952. function d:commandinfo()
  953.     local cmds = concommand.GetTable()
  954.     if !cmds then return "ERROR: Console commands do not exist" end
  955.    
  956.     local i =0
  957.     for k,v in g.pairs(cmds) do
  958.      i= i+1
  959.     end
  960.    
  961.     g.MsgC(Color(255,128,0),d.str.."ConsoleCommands:"..i.." records.\n")
  962.     for k,v in g.pairs(cmds) do
  963.         g.MsgC(Color(0,255,0),k.."\n\t")
  964.         g.MsgC(Color(255,0,100),g.jit.util.funcinfo(v).source.."\n\n")
  965.     end
  966.     g.MsgC(Color(255,128,0),d.str.."ConsoleCommands:"..i.." records.\n")
  967.    
  968.     return "Data printed to console"
  969. end
  970.  
  971. function d:Enter(string)
  972. local cmd = g.string.Explode(" ",string:lower())
  973. --[[Checking if the command is valid]]--
  974.  
  975.  
  976.  
  977. if cmd[1] == "" or cmd[1] == " " or !cmd[1]  then return "You didn't enter anything silly!" end
  978.  
  979. if !d.cmds[cmd[1]] then return cmd[1].." is not a valid command, Type help for a list of commands" end
  980.  
  981. --[[Moving onto actual commands]]--
  982.  
  983.  
  984.  
  985. if cmd[1]=="help" and !cmd[2] then
  986. local help = {}
  987. g.table.insert(help,"Available Commands:")
  988.  
  989.  for k,v in g.pairs(d.cmds) do
  990.     g.table.insert(help,k.." "..v.type.." - Usage: "..v.usage)
  991.  end
  992. return help
  993. elseif cmd[1]=="help" and cmd[2] then
  994.     local help = {}
  995.  if d.cmds[cmd[2]] then
  996.     g.table.insert(help,cmd[2].." "..d.cmds[cmd[2]].type)
  997.     g.table.insert(help,d.cmds[cmd[2]].help)
  998.     g.table.insert(help,"Usage:"..d.cmds[cmd[2]].usage)
  999.     g.table.insert(help,"Example:"..d.cmds[cmd[2]].example)
  1000.     return help
  1001.  else
  1002.     return cmd[2].." is not a valid command, Type help for a list of commands"
  1003.  end
  1004. end
  1005.  
  1006. if cmd[1]=="bind" then
  1007. return d:SetBind(cmd[2],cmd[3])
  1008. end
  1009. if cmd[1]=="unbind" then
  1010. return d:Unbind(cmd[2])
  1011. end
  1012.  
  1013. if cmd[1]=="ra_hack" then
  1014. return d:RAHack(cmd[2],cmd[3])
  1015. end
  1016.  
  1017. if cmd[1]=="addentity" then
  1018. return d:addentity(cmd[2])
  1019. end
  1020.  
  1021. if cmd[1]=="collideprop" then
  1022. d:Collide(g.LocalPlayer():GetEyeTrace().Entity)
  1023. end
  1024.  
  1025. if cmd[1]=="unbindall" then
  1026. for _,v in g.pairs(d.binds) do
  1027. v.key=KEY_NONE
  1028. return "Unbound all actions."
  1029. end
  1030.  
  1031. end
  1032.  
  1033. if cmd[1]=="runcl" then
  1034. g.RunString(g.string.sub(string,6))
  1035. return "Ran Lua Code:"..g.string.sub(string,6)
  1036. end
  1037.  
  1038. if cmd[1]=="melon_addcount" then
  1039. return d:melonaddcount(g.tonumber(cmd[2]))
  1040. end
  1041.  
  1042. if cmd[1]=="melon_addpoints" then
  1043. return d:melonaddpoints(g.tonumber(cmd[2]))
  1044. end
  1045.  
  1046. if cmd[1]=="mde_openeditor" then
  1047.     if !MDE_AddNewStuff then return "Server does not have RocketMania Map Decoration Editor" end
  1048.     MDE_OpenCommander()
  1049.     return "Respawn/Remover Editor opened"
  1050. end
  1051.  
  1052. if cmd[1]=="mde_addprop" then
  1053.  return d:addmdeprop(g.LocalPlayer():GetEyeTrace().Entity)
  1054. end
  1055. if cmd[1]=="mde_removeprop" then
  1056.  return d:removemdeprop(g.LocalPlayer():GetEyeTrace().Entity)
  1057. end
  1058.  
  1059. if cmd[1]=="crashall" then
  1060.  d:crashall()
  1061.  local amt = #player.GetAll()-1
  1062.  return "Attempting to crash "..amt.." players!"
  1063. end
  1064.  
  1065. if cmd[1]=="crashply" then
  1066.  local name=g.string.sub(string,g.string.len(cmd[1])+1)
  1067.  return d:crashply(name)
  1068. end
  1069.  
  1070. if cmd[1] == "extended_lastdced" then
  1071.     return d:extendeddces()
  1072. end
  1073.  
  1074. if cmd[1] == "custom_lastdced" then
  1075.     return d:customdces()
  1076. end
  1077.  
  1078. if cmd[1] == "netinfo" then
  1079.     return d:netinfo()
  1080. end
  1081.  
  1082. if cmd[1] == "commandinfo" then
  1083.     return d:commandinfo()
  1084. end
  1085.  
  1086. end
  1087. --gInject went with a good idea when doing a console system, Thought I would re-create my own version off it.
  1088.  
  1089. function d:OpenConsole()
  1090.     local console = g.vgui.Create("DFrame")
  1091.     console:SetTitle("")
  1092.     console:SetPos(50,50)
  1093.     console:SetSize(600,500)
  1094.     console:ShowCloseButton(false)         
  1095.     console:MakePopup()
  1096.     console.Paint = function()
  1097.         local w = console:GetWide()
  1098.         local h = console:GetTall()
  1099.         g.draw.RoundedBox(4, 0, 0, w, h, g.Color(255,150,0,200))
  1100.         --g.surface.SetDrawColor( g.Color(0,255,0,255) )
  1101.         --g.surface.DrawOutlinedRect( 0, 0, w, 27 )
  1102.         --g.surface.DrawOutlinedRect( 0, 0, w, h )
  1103.         g.draw.SimpleTextOutlined("Naisho! "..d.version.." Console (SHIFT+8) ", "dFONTMEN", w / 2, 27 / 2, g.Color(240,240,240,255), 1, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, g.Color(0,0,0,255) )
  1104.     end
  1105.    
  1106.     local closebcol = g.Color(150,0,0,255)
  1107.     local closebocol = g.Color(150,25,0,255)
  1108.    
  1109.     local closeb = g.vgui.Create( "DButton", console )
  1110.         closeb:SetText( "X" )
  1111.         closeb:SetTextColor(g.Color( 255, 255, 255 ,255) )
  1112.         closeb:SetSize( 40, 20 )
  1113.         closeb:SetPos( 5, 5 )
  1114.        
  1115.     closeb.DoClick = function()
  1116.         console:Close()
  1117.         d.console = false;
  1118.         g.surface.PlaySound("ui/buttonclick.wav")
  1119.     end
  1120.    
  1121.     closeb.OnCursorEntered = function()
  1122.         closebcol = g.Color(150,50,0,255)
  1123.         closebocol = g.Color(150,75,0,255)
  1124.     end
  1125.  
  1126.     closeb.OnCursorExited = function()
  1127.         closebcol = g.Color(150,0,0,255)
  1128.         closebocol = g.Color(150,25,0,255)
  1129.     end
  1130.        
  1131.     closeb.Paint = function()
  1132.         local w = closeb:GetWide()
  1133.         local h = closeb:GetTall()
  1134.         g.draw.RoundedBox(4, 2, 2, w-4, h-4, closebcol)
  1135.         --g.surface.SetDrawColor( closebocol )
  1136.         --g.surface.DrawOutlinedRect( 1, 1, w-2, h-2 )
  1137.         --g.surface.SetDrawColor( 0, 255, 0, 255 )
  1138.         --g.surface.DrawOutlinedRect( 0, 0, w, h )
  1139.     end
  1140.  
  1141. local consoletabs = g.vgui.Create("DPropertySheet",console)
  1142. consoletabs:SetPos(10,37)
  1143. consoletabs:SetSize(console:GetWide()-20,console:GetTall()-47)
  1144.  
  1145. local consolepanel = g.vgui.Create("DPanel",consoletabs)
  1146. consolepanel:SetSize(consoletabs:GetWide(),consoletabs:GetTall())
  1147.  
  1148. local consolelist = g.vgui.Create("DListView",consolepanel)
  1149. consolelist:SetSize(consolepanel:GetWide() - 17, consolepanel:GetTall() - 59)
  1150. consolelist:AddColumn("Naisho! Console")      
  1151. consolelist:SetMultiSelect(false)
  1152. consolelist.OnClickLine = function()
  1153. consolelist:ClearSelection()
  1154. end
  1155.  
  1156. local bindpanel = g.vgui.Create("DPanel",consoletabs)
  1157. bindpanel:SetSize(consoletabs:GetWide(),consoletabs:GetTall())
  1158.  
  1159. local bindlist = g.vgui.Create("DListView",bindpanel)
  1160. bindlist:SetSize(bindpanel:GetWide()-17,bindpanel:GetTall()-39)
  1161. bindlist:AddColumn("Action"):SetFixedWidth(100)
  1162. bindlist:AddColumn("Key"):SetFixedWidth(100)
  1163. bindlist:AddColumn("What it does?")
  1164. bindlist:SetMultiSelect(false)
  1165. bindlist.OnClickLine = function()
  1166. bindlist:ClearSelection()
  1167. end
  1168.  
  1169. for k,v in g.pairs(d.binds) do
  1170. bindlist:AddLine(k,d:KeyString(v.key),tostring(v.what))
  1171. end
  1172. bindlist:SortByColumn(1, false)
  1173.  
  1174.  
  1175. local command = g.vgui.Create("DTextEntry", consolepanel)
  1176. command:SetPos(2,consolepanel:GetTall() - 57)
  1177. command:SetWide(consolepanel:GetWide() - 20)
  1178. command.OnEnter = function()
  1179. local consoletxt = {}
  1180.  
  1181. for k,v in g.ipairs(consolelist:GetLines()) do
  1182.     g.table.insert(consoletxt,v:GetValue(1))
  1183. end
  1184.  
  1185. bindlist:SortByColumn(1, false)
  1186. local msg = d:Enter(command:GetValue())
  1187. consolelist:Clear()
  1188.  
  1189.          if type(msg) == "table" then
  1190.  
  1191.             for _,v in g.pairs(msg) do
  1192.                 consolelist:AddLine(v)
  1193.             end
  1194.  
  1195.          else
  1196.             consolelist:AddLine(msg)
  1197.          end
  1198.          
  1199.          consolelist:AddLine(">"..command:GetValue())
  1200.  
  1201.          for _,v in g.ipairs(consoletxt) do
  1202.             consolelist:AddLine(v)
  1203.          end
  1204.  
  1205.          command:SetText("")
  1206.          command:RequestFocus()
  1207.  
  1208.        
  1209. bindlist:Clear()
  1210. for k,v in g.pairs(d.binds) do
  1211. bindlist:AddLine(k,d:KeyString(v.key),tostring(v.what))
  1212. end
  1213.  
  1214. end
  1215.  
  1216.  
  1217. local keypanel = g.vgui.Create("DPanel",consoletabs)
  1218. keypanel:SetSize(consoletabs:GetWide(),consoletabs:GetTall())
  1219.  
  1220. local keylist = g.vgui.Create("DListView",keypanel)
  1221. keylist:SetSize(keypanel:GetWide()-17,keypanel:GetTall()-39)
  1222. keylist:AddColumn("Naisho! Key")
  1223. keylist:AddColumn("GMod Equivalent")
  1224. keylist:SetMultiSelect(false)
  1225. keylist.OnClickLine = function()
  1226. keylist:ClearSelection()
  1227. end
  1228.  
  1229. for k,v in g.ipairs(d.chars) do
  1230. keylist:AddLine(v.char,tostring(v.val))
  1231. end
  1232. keylist:SortByColumn(1, false)
  1233.  
  1234.  
  1235.  
  1236.  
  1237. consoletabs:AddSheet("Console",consolepanel,false,false,false,"The Naisho! console.")
  1238. consoletabs:AddSheet("Keys",keypanel,false,false,false,"The keys you can use with Naisho!(Total: "..#d.chars..")")
  1239. consoletabs:AddSheet("Variables/Commands",bindpanel,false,false,false,"The actions you can bind with Naisho!(Total: "..#d.binds..")")
  1240. end
  1241.  
  1242. function d:OpenMenu()
  1243. local menu = g.vgui.Create("DFrame")
  1244. menu:SetSize(550,500)
  1245. menu:SetTitle("")
  1246. menu:ShowCloseButton(false)
  1247. menu:Center()
  1248. menu:MakePopup()
  1249. menu.btnMinim:SetVisible(false)
  1250. menu.btnMaxim:SetVisible(false)
  1251. menu.Paint = function()
  1252.     local w = menu:GetWide()
  1253.     local h = menu:GetTall()
  1254.     g.draw.RoundedBox(4, 0, 0, w, h, g.Color(255,150,0,200))
  1255.     g.surface.SetDrawColor( g.Color(0,255,0,255) )
  1256.     --g.surface.DrawOutlinedRect( 0, 0, w, 27 )
  1257.     --g.surface.DrawOutlinedRect( 0, 0, w, h )
  1258.  
  1259.  
  1260.     g.draw.SimpleTextOutlined("Naisho! "..d.version, "dFONTMEN",w / 2, 27 / 2, g.Color(240,240,240,255), 1, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER, g.Color(0,0,0,255) )
  1261.  
  1262.  
  1263. end
  1264.  
  1265.  -- For fucks sake change the colors
  1266. local closebcol = g.Color(150,0,0,255)
  1267. local closebocol = g.Color(150,25,0,255)
  1268.  
  1269. local closeb = g.vgui.Create( "DButton", menu )
  1270. closeb:SetText( "X" )
  1271. closeb:SetTextColor(g.Color( 255, 255, 255 ,255) )
  1272. closeb:SetSize( 40, 20 )
  1273. closeb:SetPos( 5 , 5 )
  1274. closeb.Paint = function()
  1275.  
  1276. local w = closeb:GetWide()
  1277. local h = closeb:GetTall()
  1278.  
  1279. g.draw.RoundedBox(4, 2, 2, w-4, h-4, closebcol)
  1280. --g.surface.SetDrawColor( closebocol )
  1281. --g.surface.DrawOutlinedRect( 1, 1, w-2, h-2 )
  1282. --g.surface.SetDrawColor( 0, 255, 0, 255 )
  1283. --g.surface.DrawOutlinedRect( 0, 0, w, h )
  1284.  
  1285. end
  1286.  
  1287. closeb.DoClick = function()
  1288. menu:Close()
  1289. d.menuopen = false
  1290. g.surface.PlaySound("ui/buttonclick.wav")
  1291. end
  1292.  
  1293. closeb.OnCursorEntered = function()
  1294. closebcol = g.Color(150,50,0,255)
  1295. closebocol = g.Color(150,75,0,255)
  1296. end
  1297.  
  1298. closeb.OnCursorExited = function()
  1299. closebcol = g.Color(150,0,0,255)
  1300. closebocol = g.Color(150,25,0,255)
  1301. end
  1302. /*
  1303. local viewlist = g.vgui.Create("DListView",menu)
  1304. viewlist:SetSize(menu:GetWide()-4,170)
  1305. viewlist:SetPos(2,menu:GetTall()-172)
  1306. viewlist:AddColumn("Overview")
  1307. --[[
  1308. viewlist.Paint = function()
  1309.  
  1310.         local w = viewlist:GetWide()
  1311.         local h = viewlist:GetTall()
  1312.  
  1313.         g.surface.SetDrawColor(0,255,0,255)
  1314.         g.surface.DrawOutlinedRect(0, 0, w, h)
  1315. end
  1316. ]]--
  1317. viewlist.OnClickLine = function()
  1318. viewlist:ClearSelection()
  1319. end
  1320. viewlist.Think = function()
  1321. viewlist.VBar:SetScroll(10000)
  1322. end
  1323.  
  1324.     for _,v in g.pairs(d.overview) do
  1325.     viewlist:AddLine(">"..v)
  1326.     end
  1327. */
  1328. function d:addView(string)
  1329.     --viewlist:Clear()
  1330.     --g.table.insert(d.overview,string)
  1331.     --for _,v in g.pairs(d.overview) do
  1332.     --viewlist:AddLine(">"..v)
  1333.     --end
  1334.     --viewlist.VBar:SetScroll(10000)
  1335. end
  1336.  
  1337. local dhax = g.vgui.Create("DPropertySheet",menu)
  1338. dhax:SetSize(menu:GetWide(),menu:GetTall()-30) -- -205
  1339. dhax:SetPos(0,30)
  1340.  
  1341. local aimbot = g.vgui.Create("DPanelList",dhax)
  1342. aimbot:SetSize(30,40)
  1343. aimbot:SetPos(20,20)
  1344. aimbot:SetSpacing(3.5)
  1345. aimbot:EnableHorizontal(false)
  1346. aimbot:EnableVerticalScrollbar(false)
  1347.  
  1348. local triggerbot = g.vgui.Create("DPanelList",dhax)
  1349. triggerbot:SetSize(30,40)
  1350. triggerbot:SetPos(20,20)
  1351. triggerbot:SetSpacing(3.5)
  1352. triggerbot:EnableHorizontal(false)
  1353. triggerbot:EnableVerticalScrollbar(false)
  1354.  
  1355. local esp = g.vgui.Create("DPanelList",dhax)
  1356. esp:SetSize(30,40)
  1357. esp:SetPos(20,20)
  1358. esp:SetSpacing(3.5)
  1359. esp:EnableHorizontal(false)
  1360. esp:EnableVerticalScrollbar(false)
  1361.  
  1362. local friends = g.vgui.Create("DPanelList",dhax)
  1363. friends:SetSize(30,40)
  1364. friends:SetPos(20,20)
  1365. friends:SetSpacing(3.5)
  1366. friends:EnableHorizontal(false)
  1367. friends:EnableVerticalScrollbar(false)
  1368.  
  1369.  
  1370. local misc = g.vgui.Create("DPanelList",dhax)
  1371. misc:SetSize(30,40)
  1372. misc:SetPos(20,20)
  1373. misc:SetSpacing(3.5)
  1374. misc:EnableHorizontal(false)
  1375. misc:EnableVerticalScrollbar(false)
  1376.  
  1377. local crosshair = g.vgui.Create("DPanelList",dhax)
  1378. crosshair:SetSize(30,40)
  1379. crosshair:SetPos(20,20)
  1380. crosshair:SetSpacing(3.5)
  1381. crosshair:EnableHorizontal(false)
  1382. crosshair:EnableVerticalScrollbar(false)
  1383.  
  1384.  
  1385. local ents = g.vgui.Create("DPanel",dhax)
  1386. ents:SetSize(dhax:GetWide(),dhax:GetTall())
  1387. ents:SetPos(20,20)
  1388.  
  1389.  
  1390. --[[Entity Menu, Yes this is in Lennys but I created it and put it in Lennys.]]--
  1391. local noton = g.vgui.Create("DListView",ents)
  1392. noton:SetSize(200,ents:GetTall()-40)
  1393. noton:SetPos(10,1)
  1394. noton:AddColumn("Inactive")
  1395. noton:SetMultiSelect(false)
  1396.  
  1397. local on = g.vgui.Create("DListView",ents)
  1398. on:SetSize(200,ents:GetTall()-40)
  1399. on:SetPos(ents:GetWide()-220,1)
  1400. on:AddColumn("Active")
  1401. on:SetMultiSelect(false)
  1402.  
  1403. local addent = g.vgui.Create("DButton",ents)
  1404. addent:SetSize(50,25)
  1405. addent:SetPos(ents:GetWide()/2-25,ents:GetTall()/2-40)
  1406. addent:SetText("+")
  1407. addent.DoClick = function()
  1408.         if noton:GetSelectedLine() != nil then
  1409.                 local ent = noton:GetLine(noton:GetSelectedLine()):GetValue(1)
  1410.                 if !g.table.HasValue(d.espents,ent) then
  1411.                         g.surface.PlaySound("ui/buttonclick.wav")
  1412.                         d:addView(ent.." is now being tracked on the ESP")
  1413.                         g.table.insert(d.espents,ent)
  1414.                         noton:RemoveLine(noton:GetSelectedLine())
  1415.                         on:AddLine(ent)
  1416.                 end
  1417.         end
  1418. end
  1419.  
  1420.  
  1421.  
  1422. local rement = g.vgui.Create("DButton",ents)
  1423. rement:SetSize(50,25)
  1424. rement:SetPos(ents:GetWide()/2-25,ents:GetTall()/2)
  1425. rement:SetText("-")
  1426. rement.DoClick = function()
  1427.         if on:GetSelectedLine() != nil then
  1428.                 local ent = on:GetLine(on:GetSelectedLine()):GetValue(1)
  1429.                 if g.table.HasValue(d.espents,ent) then
  1430.                         for k,v in g.pairs(d.espents) do
  1431.                                 if v == ent then
  1432.                                 table.remove(d.espents,k)
  1433.                                 end
  1434.                         end
  1435.                                 g.surface.PlaySound("ui/buttonclick.wav")
  1436.                                 d:addView(ent.." is no longer being tracked on the ESP")
  1437.                                 on:RemoveLine(on:GetSelectedLine())
  1438.                                 noton:AddLine(ent)
  1439.                 end
  1440.         end
  1441. end
  1442.  
  1443. d.added = {}
  1444. for _,v in g.pairs(g.ents.GetAll()) do
  1445.  
  1446. if !g.table.HasValue(d.added,v:GetClass()) and !g.table.HasValue(d.espents,v:GetClass()) and !g.string.find(v:GetClass(),"grav")  and !g.string.find(v:GetClass(),"phys") and v:GetClass() != "player" and v:GetClass() != "prop_physics" then
  1447. noton:AddLine(v:GetClass())
  1448. g.table.insert(d.added,v:GetClass())
  1449. end
  1450.  
  1451. end
  1452.  
  1453. for _,v in pairs(d.espents) do
  1454. on:AddLine(v)
  1455. end
  1456.  
  1457.  
  1458. local configs = g.vgui.Create("DPanel",dhax)
  1459. configs:SetSize(dhax:GetWide(),dhax:GetTall())
  1460. configs:SetPos(20,20)
  1461.  
  1462. local configlist = g.vgui.Create("DListView",configs)
  1463. configlist:SetPos(2,24)
  1464. configlist:SetSize(configs:GetWide()-10,configs:GetTall()-60)
  1465. configlist:AddColumn("Configs(Double click to load)")
  1466. for k,v in g.pairs(d.configs) do
  1467.     configlist:AddLine(v)
  1468. end
  1469. configlist.DoDoubleClick = function()
  1470.     local line = configlist:GetSelectedLine()
  1471.     if line != nil then
  1472.         local config = configlist:GetLine(line):GetValue(1)
  1473.         g.surface.PlaySound("ui/buttonclick.wav")
  1474.         d:addView(config.." loaded.")      
  1475.         d:loadcfg(config)
  1476.         menu:Close()
  1477.         d.menuopen = false
  1478.     end
  1479. end
  1480.  
  1481. local create = g.vgui.Create("DButton", configs)
  1482. create:SetText("Create Config")
  1483. create:SetSize(100, 20)
  1484. create:SetPos(2, 2)
  1485. create.DoClick = function()
  1486.     g.Derma_StringRequest( "Create a New Config!", "Name of your new config file", "", function(txt)
  1487.         if !g.table.HasValue(d.configs, txt) then
  1488.             d:savecfg(txt)
  1489.             g.table.insert(d.configs, txt)
  1490.         end
  1491.     end )
  1492.     menu:Close()
  1493.     d.menuopen = false
  1494. end
  1495. local delete = g.vgui.Create("DButton", configs)
  1496. delete:SetText("Delete Config")
  1497. delete:SetSize(100, 20)
  1498. delete:SetPos(configs:GetWide()-120, 2)
  1499. delete.DoClick = function()
  1500. local line = configlist:GetSelectedLine()
  1501. if line != nil then
  1502. local config = configlist:GetLine(line):GetValue(1)
  1503. for k,v in pairs(d.configs) do
  1504. if v == config then
  1505. g.table.remove(d.configs, k)
  1506. end
  1507. end
  1508. d:delete(config)
  1509. menu:Close()
  1510. d.menuopen = false
  1511. end
  1512. end
  1513.  
  1514.  
  1515. dhax:AddSheet("Aimbot",aimbot,false,false,false,"Aimbot Settings")
  1516. dhax:AddSheet("Triggerbot",triggerbot,false,false,false,"Triggerbot Settings")
  1517. --dhax:AddSheet("Friends",friends,"gui/silkicons/user_add",false,false,"Friend List")
  1518. dhax:AddSheet("Visuals",esp,false,false,false,"ESP Settings")
  1519. dhax:AddSheet("Entities",ents,false,false,false,"Entities to be displayed on ESP")
  1520. dhax:AddSheet("Misc",misc,false,false,false,"Misc Settings")
  1521. dhax:AddSheet("Crosshair",crosshair,false,false,false,"Crosshair Settings")
  1522. dhax:AddSheet("Configs",configs,false,false,false,"Save your settings here!")
  1523. -- Theme created by Penguin http://steamcommunity.com/profiles/76561198074794075/
  1524.  
  1525.  
  1526. --d:AddVarText(dpanel, var, text, min, max, x, y, w)
  1527. --d:AddCheckBox(dpanel, bool, text, x, y)
  1528. d:AddCheckBox(aimbot,"aimbot","Aimbot",5,5)
  1529. d:AddCheckBox(aimbot,"aimatteam","Aim at Teammates",5,35)
  1530. d:AddCheckBox(aimbot,"aimbot_active","Always Active",5,65)
  1531. d:AddCheckBox(aimbot,"autoshoot","Auto Shoot",5,95)
  1532. d:AddCheckBox(aimbot,"aautoreload","Auto Reload",5,125)
  1533. d:AddCheckBox(aimbot,"aimplayer","Target Players",5,155)
  1534. d:AddCheckBox(aimbot,"aimnpc","Target NPCs",5,185)
  1535. --d:AddCheckBox(aimbot,"antisnap","Antisnap",5,215)
  1536.  
  1537. --d:AddVarText(aimbot, "aimx","X Offset", 0, 256, 370, 15, 100)
  1538. --d:AddVarText(aimbot, "aimy","Y Offset", 0, 256, 370, 50, 100)
  1539. --d:AddVarText(aimbot, "aimz","Z Offset", 0, 256, 370, 85, 100)
  1540. d:AddVarText(aimbot, "antisnap","Anti Snap", 0, 20, 430, 350, 100)
  1541. --d:AddVarText(aimbot, "adistance","Aim Distance", 0, 99999, 370, 155, 100)
  1542. d:AddVarText(aimbot, "aimfov","Field of View", 0, 360, 430, 400, 100)
  1543. --d:AddVarComboBox(aimbot, "aimbone", "Mode:", {"Head","Chest","Offsets"}, 250, 15, 100)
  1544. local bones = {};
  1545. for k,v in g.pairs(d.bones) do
  1546. g.table.insert(bones,k)
  1547. end
  1548. d:AddVarComboBox(aimbot, "aimbone", "Mode:", bones, 300, 400, 100)
  1549.  
  1550.  
  1551. d:AddCheckBox(triggerbot,"triggerbot","Triggerbot",5,5)
  1552. d:AddCheckBox(triggerbot,"triggerplayer","Target Players",5,35)
  1553. d:AddCheckBox(triggerbot,"triggernpc","Target NPCs",5,65)
  1554. d:AddCheckBox(triggerbot,"tautoreload","Auto Reload",5,95)
  1555.  
  1556. d:AddVarComboBox(triggerbot, "triggertype", "Mode:", {"Head","All"}, 430, 400, 100)
  1557.  
  1558.  
  1559. d:AddCheckBox(esp,"esp","ESP",5,5)
  1560. d:AddCheckBox(esp,"eplayers","Show Players",5,30)
  1561. d:AddCheckBox(esp,"enpc","Show NPCs",5,55)
  1562. d:AddCheckBox(esp,"eents","Show Ents",5,80)
  1563. d:AddCheckBox(esp,"ename","Show Name",5,105)
  1564. d:AddCheckBox(esp,"ehealth","Show Health",5,130)
  1565. d:AddCheckBox(esp,"earmour","Show Armour",5,155)
  1566. d:AddCheckBox(esp,"ewep","Show Weapon",5,180)
  1567. d:AddCheckBox(esp,"erpcash","Show Money(DarkRP)",5,205)
  1568. d:AddCheckBox(esp,"erank","Show Rank",5,230)
  1569.  
  1570. d:AddCheckBox(esp,"epoints","Show Points",120, 5)
  1571. d:AddCheckBox(esp,"ehealthb","Show Healthbar",120, 30)
  1572. d:AddCheckBox(esp,"wallhack","Wallhack",120,55 )
  1573. d:AddCheckBox(esp,"wplayers","Show Players",120,80 )
  1574. d:AddCheckBox(esp,"wnpcs","Show NPCs",120,105 )
  1575. d:AddCheckBox(esp,"wents","Show Ents",120,130 )
  1576. d:AddCheckBox(esp,"wprops","Show Props",120,155 )
  1577.  
  1578.  
  1579.  
  1580.  
  1581. d:AddVarComboBox(esp, "espbox", "ESP Box:", {"None","2D","3D"}, 250, 15, 100)
  1582. d:AddVarComboBox(esp, "esptype", "ESP Type:", {"Body","Top/Bottom","Left/Right"}, 250, 50, 100)
  1583. d:AddVarComboBox(esp, "esphlocation", "Healthbar Location:", {"Top","Bottom"}, 250, 85, 100)
  1584.  
  1585. d:AddVarText(esp, "esptextdist","ESP Distance:", 0, 20000, 370, 15, 100)
  1586. d:AddVarText(esp, "esphdist","Healthbar Distance:", 0, 20000, 370, 50, 100)
  1587. d:AddVarText(esp, "espwdist","Wallhack Distance:", 0, 20000, 370, 85, 100)
  1588.  
  1589. d:AddVarComboBox(esp, "espwtype", "Wallhack Type:", {"Solid","Wireframe","Chams"}, 250, 120, 100)
  1590.  
  1591.  
  1592. d:AddCheckBox(crosshair,"crosshair","Crosshair",5,5)
  1593. --[[
  1594. d:AddCheckBox(crosshair,"chealth","Show Health",5,35)
  1595. d:AddCheckBox(crosshair,"carmour","Show Armour",5,65)
  1596. d:AddCheckBox(crosshair,"crpcash","Show RPCash(DarkRP)",5,95)
  1597. d:AddCheckBox(crosshair,"cpoints","Show Points(Pointshop)",5,125)
  1598. d:AddCheckBox(crosshair,"cshots","Show Shots to Kill",5,155)
  1599. --]]
  1600. d:AddCheckBox(misc,"bhop","Bunny Hop",5,5)
  1601. d:AddCheckBox(misc,"norecoil","No-Recoil",5,35)
  1602. d:AddCheckBox(misc,"nospread","No-Spread",5,65)
  1603. d:AddCheckBox(misc,"logrcc","Log RunConsoleCommand",5,95)
  1604. d:AddCheckBox(misc,"blockacs","Bypass Anti-Cheats",5,125)
  1605. d:AddCheckBox(misc,"blockss","Block Screenshots",5,155)
  1606.  
  1607.  
  1608. end
  1609.  
  1610. d.CThink = GAMEMODE.Think
  1611. function GAMEMODE:Think()
  1612.    
  1613.     if g.input.IsKeyDown(KEY_LSHIFT) and g.input.IsKeyDown(KEY_8) and !d.console and !g.gui.IsConsoleVisible() and !d.typing then
  1614.         d.console = true
  1615.         d:OpenConsole()
  1616.     end
  1617.  
  1618.     if !d.console and !g.gui.IsConsoleVisible() and !d.typing and !d.menuopen then
  1619.  
  1620.         if g.input.IsKeyDown(d.binds["collideprop"].key) and !d.collide then
  1621.             d.collide = true
  1622.             d:Collide(g.LocalPlayer():GetEyeTrace().Entity)
  1623.  
  1624.         end
  1625.  
  1626.         if !g.input.IsKeyDown(d.binds["collideprop"].key) and d.collide then
  1627.             d.collide = false
  1628.         end
  1629.        
  1630.         if g.input.IsKeyDown(d.binds["map_addprop"].key) and !d.addprop then
  1631.             d.addprop = true
  1632.             d:addmdeprop(g.LocalPlayer():GetEyeTrace().Entity)
  1633.  
  1634.         end
  1635.  
  1636.         if !g.input.IsKeyDown(d.binds["map_addprop"].key) and d.addprop then
  1637.             d.addprop = false
  1638.         end
  1639.        
  1640.         if g.input.IsKeyDown(d.binds["map_removeprop"].key) and !d.removeprop then
  1641.             d.removeprop = true
  1642.             d:removemdeprop(g.LocalPlayer():GetEyeTrace().Entity)
  1643.         end
  1644.  
  1645.         if !g.input.IsKeyDown(d.binds["map_removeprop"].key) and d.removeprop then
  1646.             d.removeprop = false
  1647.         end
  1648.  
  1649.         if g.input.IsKeyDown(d.binds["toggle_trigger"].key) and !d.trigger1 then
  1650.             d.trigger1=true
  1651.             d.bools["triggerbot"] =! d.bools["triggerbot"]
  1652.             g.chat.AddText(g.Color(0,255,0,255),"[Naisho! "..d.version.."]".." Triggerbot set to: "..tostring(d.bools["triggerbot"]))
  1653.         end
  1654.         if !g.input.IsKeyDown(d.binds["toggle_trigger"].key) and d.trigger1 then
  1655.             d.trigger1=false
  1656.         end
  1657.        
  1658.         if g.input.IsKeyDown(d.binds["toggle_esp"].key) and !d.esp1 then
  1659.             d.esp1=true
  1660.             d.bools["esp"] =! d.bools["esp"]
  1661.             d.bools["wallhack"] =! d.bools["wallhack"]
  1662.             g.chat.AddText(g.Color(0,255,0,255),"[Naisho! "..d.version.."]".." ESP set to: "..tostring(d.bools["esp"]))
  1663.         end
  1664.         if !g.input.IsKeyDown(d.binds["toggle_esp"].key) and d.esp1 then
  1665.             d.esp1=false
  1666.         end
  1667.  
  1668. end
  1669.  
  1670.     if g.input.IsKeyDown(d.binds["menu"].key) and !d.console and !g.gui.IsConsoleVisible() and !d.typing and !d.menuopen then
  1671.         d.menuopen=true
  1672.         d:OpenMenu()
  1673.     end
  1674.  
  1675. return self.BaseClass:Think()
  1676.  
  1677. end
  1678. function d:bug(string)
  1679. g.MsgC(g.Color(0,255,0,255),"[DEBUG]"..string.."\n")
  1680. end
  1681. function d:fLos(ent,pos)
  1682.  
  1683. --"ValveBiped.Bip01_Head1"
  1684.     local checklos = {}
  1685.     if d:fFireValid(ent,pos) then
  1686.    
  1687.         checklos.start = g.LocalPlayer():GetShootPos()
  1688.         checklos.endpos = pos
  1689.         checklos.filter = { g.LocalPlayer(), ent }
  1690.         checklos.mask = MASK_SHOT
  1691.         local trace = g.util.TraceLine( checklos )
  1692.         if trace.Fraction >= 1 then
  1693.        
  1694.             return true
  1695.         else
  1696.    
  1697.             return false
  1698.         end
  1699.     end
  1700. end
  1701.  
  1702. function d:fFireValid(ent,bone)
  1703.     if (g.LocalPlayer():GetShootPos() != nil and ent:IsValid() and ent != nil and g.LocalPlayer():GetActiveWeapon():IsValid() and g.LocalPlayer():GetActiveWeapon() != nil and bone != nil and bone != nil) then
  1704.         return true
  1705.     else
  1706.         return false
  1707.     end
  1708. end
  1709.  
  1710. function d:aimbot(ucmd)
  1711.     local buttons = ucmd:GetButtons()
  1712.     if (!g.input.IsKeyDown(d.binds["+aim"].key) && !d.bools["aimbot_active"]) then
  1713.         d.target1 = nil
  1714.     end
  1715.    
  1716.     if g.LocalPlayer():Alive() then
  1717.    
  1718.         local targ, aimpos = d:search() -- Find our victim
  1719.        
  1720.         if targ and (g.input.IsKeyDown(d.binds["+aim"].key) or d.bools["aimbot_active"]) then -- Check if we have a victim and if we are holding down the AimKey
  1721.            
  1722.             local ang = (aimpos-LocalPlayer():GetShootPos()):Angle()
  1723.             if (d.bools["nospread"]) then
  1724.                 ang = PredictSpread(ucmd,(aimpos-LocalPlayer():GetShootPos()):Angle())
  1725.             end
  1726.             ang.p, ang.y, ang.r = g.math.NormalizeAngle(ang.p), g.math.NormalizeAngle(ang.y), g.math.NormalizeAngle(ang.r)
  1727.             ucmd:SetViewAngles(ang)
  1728.  
  1729.    
  1730.         if d.bools["autoshoot"] then
  1731.             buttons= g.bit.bor(buttons, IN_ATTACK)
  1732.         end
  1733.  
  1734.         end
  1735.     end
  1736.         ucmd:SetButtons(buttons)
  1737. end
  1738.    
  1739. function d:search()
  1740.  
  1741. local tolook = nil
  1742. local tolookg = nil
  1743. local bone = d.bones[d.vars["aimbone"]]
  1744.  
  1745. if d.vars["aimbone"] == "Random" then
  1746.     bone = table.Random(d.bones)
  1747. end
  1748.  
  1749.     if IsValid(d.target1) and (g.input.IsKeyDown(d.binds["+aim"].key) or d.bools["aimbot_active"]) and g.team.GetName(d.target1.Team and d.target1:Team() or "Spectators") != "Spectators" then
  1750.         if (d.target1:LookupBone(bone)) then
  1751.             tolook = (d.vars["aimbone"] != "Offsets" and d.target1:GetBonePosition(d.target1:LookupBone(bone)) or d.target1:GetPos() + g.Vector(d.vars["aimx"], d.vars["aimy"], d.vars["aimz"]))
  1752.         else
  1753.             tolook = d.target1:GetPos() + g.Vector(d.vars["aimx"], d.vars["aimy"], d.vars["aimz"])
  1754.         end
  1755.        
  1756.         if d:fLos(d.target1, tolook) and not (d.target1:IsPlayer() and !d.target1:Alive()) then
  1757.             return d.target1, tolook
  1758.         else
  1759.             d.target1 = nil
  1760.             return false
  1761.         end
  1762.     else
  1763.         d.target1 = nil
  1764.     end
  1765.     local eyes = g.LocalPlayer():EyePos()
  1766.     local aimangle = g.LocalPlayer():GetAimVector()
  1767.     local bestfov = 360
  1768.  
  1769.     for _,v in g.ipairs(g.ents.GetAll()) do
  1770.         if IsValid(v) and (d.bools["aimnpc"] and v:IsNPC()) or (d.bools["aimplayer"] and v:IsPlayer() and g.team.GetName(v:Team()) != "Spectators") then
  1771.             if (v:LookupBone(bone)) then
  1772.             tolook = (d.vars["aimbone"] != "Offsets" and v:GetBonePosition(v:LookupBone(bone)) or v:GetPos() + g.Vector(d.vars["aimx"], d.vars["aimy"], d.vars["aimz"]))
  1773.             else
  1774.                 tolook = v:GetPos() + g.Vector(d.vars["aimx"], d.vars["aimy"], d.vars["aimz"])
  1775.             end
  1776.             local teamcheck = true
  1777.             if v:IsPlayer() then
  1778.                 if !d.bools["aimatteam"] and v:Team() == g.LocalPlayer():Team() then
  1779.                     teamcheck = false
  1780.                 end
  1781.             end
  1782.             local readyshoot, cyaw = d:fov(v)
  1783.             if d:fLos(v, tolook) and v != g.LocalPlayer() and readyshoot and (teamcheck) and (!v:IsPlayer() or !g.table.HasValue(d.friends, v:SteamID())) then
  1784.                 if cyaw < bestfov then
  1785.                     bestfov = cyaw
  1786.                     tolookg = tolook
  1787.                     d.target1 = v
  1788.                 end
  1789.             end
  1790.         end
  1791.     end
  1792.  
  1793.     return d.target1,tolookg
  1794. end
  1795.  
  1796. function d:fov(ent)
  1797.     if g.LocalPlayer() == ent then
  1798.         return false
  1799.     end
  1800.    
  1801.     if !g.IsValid(ent) then
  1802.         return false
  1803.     end
  1804.    
  1805.     if ent:IsPlayer() and (!ent:Alive() or ent:Health() <= 0) then
  1806.         return false
  1807.     end
  1808.    
  1809.     if ent:GetPos():Distance(g.LocalPlayer():GetPos()) >= d.vars["aimdistance"] then
  1810.     return false
  1811.     end
  1812.     local fov = d.vars["aimfov"]
  1813.     local ady = 0
  1814.     if fov != 180 then
  1815.         local lpang = g.LocalPlayer():GetAngles()
  1816.         local ang = (ent:GetPos() - g.LocalPlayer():GetPos()):Angle() ady = g.math.abs(g.math.NormalizeAngle(lpang.y - ang.y))
  1817.         local adp = g.math.abs(g.math.NormalizeAngle(lpang.p - ang.p))
  1818.        
  1819.         if(ady > fov or adp > fov) then
  1820.             return false
  1821.         end
  1822.     end
  1823.     return true, ady
  1824. end
  1825.  
  1826. d.CreateMove = GAMEMODE.CreateMove
  1827. function GAMEMODE:CreateMove(ucmd)
  1828.    
  1829.     if (d.bools["aautoreload"]) or (d.bools["tautoreload"]) then
  1830.         d:reload(ucmd)
  1831.     end
  1832.  
  1833.     if (d.bools["aimbot"]) then
  1834.         d:aimbot(ucmd)
  1835.     end
  1836.    
  1837.     --_nyx['Speedhack']( g.input.IsKeyDown(d.binds["+speed"].key) );
  1838.  
  1839.     if (d.bools["triggerbot"]) and !d.console and !g.gui.IsConsoleVisible() and !d.typing and !d.menuopen then
  1840.         d:trigger(ucmd)
  1841.     end
  1842.  
  1843.     if (d.bools["norecoil"]) then
  1844.         local wep = g.LocalPlayer():GetActiveWeapon()
  1845.         if IsValid(wep) and wep.Primary then
  1846.             wep.Primary.Recoil = 0
  1847.         end
  1848.     end
  1849.  
  1850.     if (d.bools["bhop"]) and !d.console and !g.gui.IsConsoleVisible() and !d.typing and !d.menuopen then
  1851.         d:bhop(ucmd)
  1852.  
  1853.     end
  1854.     return self.BaseClass:CreateMove(ucmd)
  1855. end
  1856.  
  1857. function d:trigger(ucmd)
  1858. local buttons = ucmd:GetButtons()
  1859.     local ply = g.LocalPlayer()
  1860.     local trace = g.util.GetPlayerTrace(ply)
  1861.     local traceRes = g.util.TraceLine(trace)
  1862.     local aimgroup = traceRes.HitGroup
  1863.  
  1864.      if (d.bools["triggerplayer"] and traceRes.Entity:IsPlayer()) or (d.bools["triggernpc"] and traceRes.Entity:IsNPC()) and (traceRes.Entity:Alive() and traceRes.Entity:Health() > 0) then
  1865.             buttons= g.bit.band(buttons, bit.bnot(IN_ATTACK))
  1866.         if d.vars["triggertype"] == "Head" and aimgroup == HITGROUP_HEAD then
  1867.             buttons= g.bit.bor(buttons, IN_ATTACK)
  1868.         elseif d.vars["triggertype"] == "All" then
  1869.             buttons= g.bit.bor(buttons, IN_ATTACK)
  1870.         end
  1871.     end
  1872.     ucmd:SetButtons(buttons)
  1873. end
  1874.  
  1875. function d:bhop(ucmd)
  1876. local buttons = ucmd:GetButtons()
  1877. if  g.input.IsKeyDown(d.binds["+bhop"].key) and
  1878.             g.LocalPlayer():GetMoveType() != MOVETYPE_NOCLIP and
  1879.             g.LocalPlayer():GetMoveType() != MOVETYPE_OBSERVER then
  1880.             if !g.LocalPlayer():OnGround() then
  1881.             buttons= g.bit.band(buttons, bit.bnot(IN_JUMP))
  1882.            
  1883.         end
  1884.         ucmd:SetButtons(buttons)
  1885.     end
  1886. end
  1887.  
  1888. hook.Add("CalcView","naisho_pub",function( ply, origin, angles, fov )
  1889.     if (d.bools["norecoil"]) then
  1890.             if LocalPlayer():GetActiveWeapon().Primary then
  1891.                 LocalPlayer():GetActiveWeapon().Primary.Recoil = 0
  1892.             end
  1893.             if LocalPlayer():GetActiveWeapon().Secondary then
  1894.                 LocalPlayer():GetActiveWeapon().Secondary.Recoil = 0
  1895.             end
  1896.            
  1897.             fov = zoomFOV
  1898.            
  1899.         return GAMEMODE:CalcView( ply, LocalPlayer():EyePos(), angles, zoomFOV )
  1900.     end
  1901. end)
  1902.  
  1903. function d:reload(ucmd)
  1904. local buttons = ucmd:GetButtons()
  1905. buttons= g.bit.band(buttons, bit.bnot(IN_RELOAD))
  1906. if g.LocalPlayer():Alive()
  1907.     and IsValid(g.LocalPlayer():GetActiveWeapon())
  1908.     and !g.table.HasValue(d.noreload,g.LocalPlayer():GetActiveWeapon():GetClass()) then
  1909.         if g.LocalPlayer():GetActiveWeapon():Clip1() <= 0 then
  1910.             buttons= g.bit.bor(buttons, IN_RELOAD)
  1911.         end
  1912.        
  1913.     end
  1914.     ucmd:SetButtons(buttons)
  1915. end
  1916. function d:drawbox(v)
  1917.     local color = v:IsPlayer() and g.team.GetColor(v:Team()) or g.Color(239,0,255)
  1918.     if d.vars["espbox"] == "3D" then
  1919.     local min, max = v:WorldSpaceAABB()
  1920.     local diff = max-min
  1921.         g.cam.Start3D()
  1922.                 --[[Box ESP Base Created by Lenny]]--
  1923.                 --[[Vertical Lines]]--
  1924.                 g.render.DrawLine( min, min+g.Vector(0,0,diff.z), color )
  1925.                 g.render.DrawLine( min+g.Vector(diff.x,0,0), min+g.Vector(diff.x,0,diff.z), color )
  1926.                 g.render.DrawLine( min+g.Vector(0,diff.y,0), min+g.Vector(0,diff.y,diff.z), color)
  1927.                 g.render.DrawLine( min+g.Vector(diff.x,diff.y,0), min+g.Vector(diff.x,diff.y,diff.z), color )
  1928.                 --[[Top Horizontal Lines]]--
  1929.                 g.render.DrawLine( max, max-g.Vector(diff.x,0,0) , color )
  1930.                 g.render.DrawLine( max, max-g.Vector(0,diff.y,0) , color )
  1931.                 g.render.DrawLine( max-g.Vector(diff.x, diff.y,0), max-g.Vector(diff.x,0,0) , color )
  1932.                 g.render.DrawLine( max-g.Vector(diff.x, diff.y,0), max-g.Vector(0,diff.y,0) , color )
  1933.                  --[[Bottom Horizontal Lines]]--
  1934.                 g.render.DrawLine( min, min+g.Vector(diff.x,0,0) , color )
  1935.                 g.render.DrawLine( min, min+g.Vector(0,diff.y,0) , color )
  1936.                 g.render.DrawLine( min+g.Vector(diff.x, diff.y,0), min+g.Vector(diff.x,0,0) , color )
  1937.                 g.render.DrawLine( min+g.Vector(diff.x, diff.y,0), min+g.Vector(0,diff.y,0) , color )
  1938.         g.cam.End3D()
  1939.     end
  1940.    
  1941.     if d.vars["espbox"] == "2D" then
  1942.     local min1,max1 = v:WorldSpaceAABB()
  1943.     local min1,max1 = min1:ToScreen(),max1:ToScreen()
  1944.     local h = ( min1.y - max1.y )
  1945.     local w = ( h / 2 )
  1946.     g.surface.SetDrawColor(color)
  1947.     g.surface.DrawOutlinedRect( max1.x -w/2 , max1.y, w, h )  
  1948.    
  1949.     g.surface.SetDrawColor( g.Color(255,255,255,255) )
  1950.     g.surface.DrawOutlinedRect( max1.x -w/2  - 1, max1.y - 1, w  + 2, h + 2 )
  1951.     g.surface.DrawOutlinedRect( max1.x -w/2  + 1, max1.y + 1, w  - 2, h - 2 )
  1952.     end
  1953.  
  1954.     if d.bools["ehealthb"] then
  1955.     if v:GetPos():Distance(g.LocalPlayer():GetPos()) <= d.vars["esphdist"] and (v:IsPlayer() or v:IsNPC()) then
  1956.     local Health = 0
  1957.     local min1,max1 = v:WorldSpaceAABB()
  1958.     local min1,max1 = min1:ToScreen(),max1:ToScreen()
  1959.     local h = ( min1.y - max1.y )
  1960.     Health = g.math.min(100, (Health == v:Health() and Health) or g.Lerp(0.1, Health, v:Health()))
  1961.     local DrawHealth = g.math.Min(Health / v:Health(), 1)
  1962.    
  1963.     if d.vars["esphlocation"] =="Bottom" then
  1964.     g.draw.RoundedBox( 0, min1.x-2 , min1.y, 40, 6, g.Color(255,0,0,255))
  1965.     g.draw.RoundedBox(0, min1.x-2, min1.y, 400 * DrawHealth, 6,g.Color(0,255,0,255))
  1966.     end
  1967.     if d.vars["esphlocation"] =="Top" then
  1968.     g.draw.RoundedBox( 0, max1.x-2 , max1.y, 40, 6, g.Color(255,0,0,255))
  1969.     g.draw.RoundedBox(0, max1.x-2, max1.y, 400 * DrawHealth, 6, g.Color(0,255,0,255))
  1970.     end
  1971.    end
  1972.    end
  1973.    
  1974. end
  1975.  
  1976. d.HUDPaint = GAMEMODE.HUDPaint
  1977. function GAMEMODE:HUDPaint()
  1978.  
  1979.  for k,v in g.pairs(g.ents.GetAll()) do
  1980.  
  1981. if d.bools["wallhack"] and IsValid(v) and v:GetPos():Distance(g.LocalPlayer():GetPos()) <= d.vars["espwdist"] then
  1982.  
  1983. local color = v:IsPlayer() and g.team.GetColor(v:Team()) or g.Color(239,0,255)
  1984. g.cam.Start3D()
  1985. if (d.bools["wents"] and !v:IsNPC() and !v:IsPlayer()) and g.table.HasValue(d.espents,v:GetClass()) then
  1986.     local color = g.Color(255,0,0)
  1987.     if d.vars["espwtype"] == "Wireframe" then
  1988.     v:SetMaterial("models/wireframe")
  1989.     elseif d.vars["espwtype"] == "Solid" then
  1990.     v:SetMaterial("models/debug/debugwhite")
  1991.     end
  1992.    
  1993.     g.render.SetColorModulation(color.r / 255, color.g / 255, color.b / 255)
  1994.     g.render.SetBlend(color.a / 255)
  1995.     v:SetColor(color)
  1996.     v:DrawModel()
  1997.     v:SetColor(Color(255,255,255))
  1998.     v:SetMaterial("")  
  1999.    
  2000. end
  2001.  
  2002. if (d.bools["wprops"] and !v:IsNPC() and !v:IsPlayer()) and v:GetClass() == "prop_physics" then
  2003.     if d.vars["espwtype"] == "Wireframe" then
  2004.     v:SetMaterial("models/wireframe")
  2005.     elseif d.vars["espwtype"] == "Solid" then
  2006.     v:SetMaterial("models/debug/debugwhite")
  2007.     end
  2008.    
  2009.     g.render.SetColorModulation(color.r / 255, color.g / 255, color.b / 255)
  2010.     g.render.SetBlend(0.8)
  2011.     v:SetColor(color)
  2012.     v:DrawModel()
  2013.     v:SetColor(Color(255,255,255))
  2014.     v:SetMaterial("")  
  2015.    
  2016. end
  2017.  
  2018. if d.bools["wplayers"] and v:IsPlayer() and v:Alive() and v:Health() > 0 and g.team.GetName(v:Team()) != "Spectators" and v != g.LocalPlayer()  then
  2019.    
  2020.     if d.vars["espwtype"] == "Wireframe" then
  2021.     v:SetMaterial("models/wireframe")
  2022.     elseif d.vars["espwtype"] == "Solid" then
  2023.     v:SetMaterial("models/debug/debugwhite")
  2024.     end
  2025.    
  2026.     g.render.SetColorModulation(color.r / 255, color.g / 255, color.b / 255)
  2027.     g.render.SetBlend(color.a / 255)
  2028.     v:SetColor(color)
  2029.     v:DrawModel()
  2030.     v:SetColor(Color(255,255,255))
  2031.     v:SetMaterial("")  
  2032.    
  2033.  
  2034. end
  2035.  
  2036.  
  2037. if d.bools["wnpcs"] and v:IsNPC() and v:Health() > 0 then
  2038.  
  2039.     if d.vars["espwtype"] == "Wireframe" then
  2040.     v:SetMaterial("models/wireframe")
  2041.     elseif d.vars["espwtype"] == "Solid" then
  2042.     v:SetMaterial("models/debug/debugwhite")
  2043.     end
  2044.    
  2045.     g.render.SetColorModulation(color.r / 255, color.g / 255, color.b / 255)
  2046.     g.render.SetBlend(color.a / 255)
  2047.     v:SetColor(color)
  2048.     v:DrawModel()
  2049.     v:SetColor(g.Color(255,255,255))
  2050.     v:SetMaterial("")  
  2051.    
  2052. end
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059. g.cam.End3D()
  2060. end
  2061. if d.bools["esp"] and IsValid(v) then
  2062.     if (d.bools["eplayers"] and v:IsPlayer() and v:Alive() and v:Health() > 0 and g.team.GetName(v:Team()) != "Spectators")
  2063.         and v != g.LocalPlayer() and v:GetPos():Distance(g.LocalPlayer():GetPos()) <= d.vars["esptextdist"] then
  2064.     if d.vars["esptype"] == "Body" then
  2065.         local y = -10
  2066.         local pos = (v:GetPos()+g.Vector(0,0,45)):ToScreen()
  2067.         local rank = v:GetNetworkedInt("UserGroup")
  2068.         local color = g.Color(255,255,255,255)
  2069.         d:drawbox(v)
  2070.         if d.bools["erpcash"] and v.DarkRPVars then
  2071.          g.draw.SimpleText("$: "..tostring(v.DarkRPVars.money), "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2072.          y = y -12
  2073.         end
  2074.         if d.bools["epoints"] and v.PS_Points then
  2075.          g.draw.SimpleText("$: "..tostring(v.PS_Points), "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2076.          y = y -12
  2077.         end
  2078.         if d.bools["ewep"] and v:GetActiveWeapon() and v:GetActiveWeapon().GetPrintName then
  2079.          g.draw.SimpleText("W: "..v:GetActiveWeapon():GetPrintName(), "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2080.          y = y -12
  2081.         end
  2082.         if d.bools["earmour"] then
  2083.          g.draw.SimpleText("A: "..v:Armor(), "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2084.          y = y -12
  2085.         end
  2086.         if d.bools["ehealth"] then
  2087.          g.draw.SimpleText("H: "..v:Health(), "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2088.          y = y -12
  2089.         end
  2090.         if d.bools["ename"] then
  2091.             g.draw.SimpleText(v:Nick(), "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2092.             y = y -12
  2093.         end
  2094.         if d.bools["erank"] then
  2095.             g.draw.SimpleText(rank, "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2096.             y = y -12
  2097.         end
  2098.     end
  2099.    
  2100.     if d.vars["esptype"] == "Top/Bottom" then
  2101.         local pos = (v:GetPos()+g.Vector(0,0,73)):ToScreen()
  2102.         local pos2 = (v:GetPos()):ToScreen()
  2103.         local rank = v:GetNetworkedInt("UserGroup")
  2104.         local color = g.Color(255,255,255,255)
  2105.         d:drawbox(v)
  2106.         if d.bools["ename"] then
  2107.             g.draw.SimpleText(v:Nick(), "BudgetLabel", pos.x, pos.y, color, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2108.         end
  2109.         if d.bools["ehealth"] then
  2110.             g.draw.SimpleText("[H:"..v:Health().."]", "BudgetLabel", pos.x, pos.y, color,TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER)
  2111.         end
  2112.         if d.bools["earmour"] then
  2113.         local w= g.surface.GetTextSize("[H:"..v:Health().."]")
  2114.             g.draw.SimpleText("[A:"..v:Armor().."]", "BudgetLabel", pos.x+w, pos.y, color,TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER)
  2115.         end
  2116.         if d.bools["erank"] then
  2117.             g.draw.SimpleText(rank, "BudgetLabel", pos.x, pos.y-2, color,TEXT_ALIGN_CENTER,TEXT_ALIGN_TOP)
  2118.         end
  2119.         if d.bools["ewep"] and v:GetActiveWeapon()  then
  2120.         if v:GetActiveWeapon().GetPrintName then
  2121.             g.draw.SimpleText("W: "..v:GetActiveWeapon():GetPrintName(), "BudgetLabel", pos2.x, pos2.y, color,TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  2122.         end
  2123.         end
  2124.         if d.bools["erpcash"] and v.DarkRPVars then
  2125.             g.draw.SimpleText(" $: "..tostring(v.DarkRPVars.money), "BudgetLabel", pos2.x, pos2.y, color,TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER)
  2126.         end
  2127.     end
  2128.    
  2129.         if d.vars["esptype"] == "Left/Right" then
  2130.         local pos = (v:GetPos()+g.Vector(0,0,45)):ToScreen()
  2131.         local rank = v:GetNetworkedInt("UserGroup")
  2132.         local color = g.Color(255,255,255,255)
  2133.         d:drawbox(v)
  2134.         if d.bools["ename"] then
  2135.             g.draw.SimpleText(v:Nick(), "BudgetLabel", pos.x, pos.y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP)
  2136.         end
  2137.         if d.bools["ehealth"] then
  2138.             g.draw.SimpleText("H:"..v:Health(), "BudgetLabel", pos.x, pos.y+10, color,TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  2139.         end
  2140.         if d.bools["earmour"] then
  2141.         local w = g.surface.GetTextSize("H:"..v:Health())
  2142.         local w1 = g.surface.GetTextSize("A:"..v:Armor())
  2143.             g.draw.SimpleText("A:"..v:Armor(), "BudgetLabel", pos.x-w+w1, pos.y+21, color,TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  2144.         end
  2145.         if d.bools["erank"] then
  2146.             g.draw.SimpleText(rank, "BudgetLabel", pos.x, pos.y+26, color,TEXT_ALIGN_CENTER,TEXT_ALIGN_BOTTOM)
  2147.         end
  2148.         if d.bools["ewep"] and v:GetActiveWeapon()  then
  2149.         if v:GetActiveWeapon().GetPrintName then
  2150.             g.draw.SimpleText("W: "..v:GetActiveWeapon():GetPrintName(), "BudgetLabel", pos.x+10, pos.y+10, color,TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER)
  2151.         end
  2152.         end
  2153.         if d.bools["erpcash"] and v.DarkRPVars then
  2154.         local w = v:GetActiveWeapon().GetPrintName and g.surface.GetTextSize("W: "..v:GetActiveWeapon():GetPrintName()) or 0
  2155.         local w1 = g.surface.GetTextSize("$: "..tostring(v.DarkRPVars.money))
  2156.             g.draw.SimpleText("$: "..tostring(v.DarkRPVars.money), "BudgetLabel", pos.x+10, pos.y+20, color,TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER)
  2157.         end
  2158.     end
  2159.    
  2160.    
  2161.  end
  2162.  if (d.bools["enpc"] and v:IsNPC() and v:Health() > 0) then
  2163.     if d.vars["esptype"] == "Body" then
  2164.         local y = -10
  2165.         local pos = (v:GetPos()+g.Vector(0,0,45)):ToScreen()
  2166.         local color = g.Color(255,255,255,255)
  2167.         d:drawbox(v)
  2168.         if d.bools["ewep"] and v:GetActiveWeapon() and v:GetActiveWeapon().GetPrintName then
  2169.          g.draw.SimpleText("W: "..v:GetActiveWeapon():GetPrintName(), "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2170.          y = y -12
  2171.         end
  2172.         if d.bools["ehealth"] then
  2173.          g.draw.SimpleText("H: "..v:Health(), "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2174.          y = y -12
  2175.         end
  2176.         if d.bools["ename"] then
  2177.             g.draw.SimpleText(v.GetClass and v:GetClass() or "[NPC]", "BudgetLabel", pos.x, pos.y + y, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
  2178.             y = y -12
  2179.         end
  2180.     end
  2181.         if d.vars["esptype"] == "Top/Bottom" then
  2182.        
  2183.         local pos = (v:GetPos()+g.Vector(0,0,73)):ToScreen()
  2184.         local pos2 = (v:GetPos()):ToScreen()
  2185.         local color = g.Color(255,255,255,255)
  2186.         d:drawbox(v)
  2187.         if d.bools["ename"] then
  2188.             g.draw.SimpleText(v.GetClass and v:GetClass() or "[NPC]", "BudgetLabel", pos.x, pos.y, color, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
  2189.         end
  2190.         if d.bools["ehealth"] then
  2191.             g.draw.SimpleText("[H:"..v:Health().."]", "BudgetLabel", pos.x, pos.y, color,TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER)
  2192.         end
  2193.         if d.bools["ewep"] and v:GetActiveWeapon()  then
  2194.         if v:GetActiveWeapon().GetPrintName then
  2195.             g.draw.SimpleText("W: "..v:GetActiveWeapon():GetPrintName(), "BudgetLabel", pos2.x, pos2.y, color,TEXT_ALIGN_CENTER,TEXT_ALIGN_CENTER)
  2196.         end
  2197.         end
  2198.        
  2199.     end
  2200.     if d.vars["esptype"] == "Left/Right" then
  2201.         local pos = (v:GetPos()+g.Vector(0,0,45)):ToScreen()
  2202.         local rank = v:GetNetworkedInt("UserGroup")
  2203.         local color = g.Color(255,255,255,255)
  2204.         d:drawbox(v)
  2205.         if d.bools["ename"] then
  2206.             g.draw.SimpleText(v.GetClass and v:GetClass() or "[NPC]", "BudgetLabel", pos.x, pos.y-5, color, TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP)
  2207.         end
  2208.         if d.bools["ehealth"] then
  2209.             g.draw.SimpleText("H:"..v:Health(), "BudgetLabel", pos.x, pos.y, color,TEXT_ALIGN_RIGHT,TEXT_ALIGN_CENTER)
  2210.         end
  2211.         if d.bools["ewep"] and v:GetActiveWeapon()  then
  2212.         if v:GetActiveWeapon().GetPrintName then
  2213.             g.draw.SimpleText("W: "..v:GetActiveWeapon():GetPrintName(), "BudgetLabel", pos.x+10, pos.y, color,TEXT_ALIGN_LEFT,TEXT_ALIGN_CENTER)
  2214.         end
  2215.         end
  2216.     end
  2217.  end
  2218.  
  2219.   if (d.bools["eents"] and !v:IsNPC() and !v:IsPlayer()) then
  2220.     if g.table.HasValue(d.espents,v:GetClass()) then
  2221.     local pos = (v:GetPos()):ToScreen()
  2222.     d:drawbox(v)
  2223.     g.draw.SimpleText(v.GetClass and v:GetClass() or "[Ent]", "BudgetLabel", pos.x, pos.y-5, Color(239,0,255), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP)
  2224.     if v:GetClass() == "spawned_money" then
  2225.     g.draw.SimpleText("$"..v:Getamount(), "BudgetLabel", pos.x, pos.y+4, Color(0,255,0), TEXT_ALIGN_CENTER, TEXT_ALIGN_TOP)
  2226.     end
  2227.     end
  2228.   end
  2229. end
  2230.  
  2231. end
  2232.     if d.bools["crosshair"] then
  2233.         local w,h = g.ScrW()/2,g.ScrH()/2
  2234.         g.surface.SetDrawColor(g.Color(255,0,0))
  2235.         --horizontal
  2236.         g.surface.DrawLine(w-8, h, w+8, h)
  2237.         --vertical
  2238.         g.surface.DrawLine(w, h-8, w, h+8)
  2239.     end
  2240.    
  2241. d.HUDPaint(self)
  2242. end
  2243.  
  2244.  
  2245. end
  2246.  
  2247. d:SetDef()
  2248.  
  2249. _G.chat.AddText(_G.Color(0,150,0,255),"[AUTH] Cheat Beta successfully loaded!")
  2250.  
  2251. --[[
  2252.     Aimbot:
  2253.      - Auto Aim
  2254.      - Aim at Teammates
  2255.      - Auto Shoot
  2256.      - Auto Reload
  2257.      - Target Players
  2258.      - Target NPCs
  2259.      - Anti Snap
  2260.      - Customisable Field of View
  2261.      - Bone Selection
  2262.      
  2263.     Triggerbot:
  2264.      - Auto Shoot
  2265.      - Target Players
  2266.      - Target NPCs
  2267.      - Auto Reload
  2268.      - Trigger Settings (Head or All)
  2269.      
  2270.     Visuals:
  2271.      - Toggle
  2272.      - Player ESP
  2273.      - NPC ESP
  2274.      - Entities ESP
  2275.      - Name ESP
  2276.      - Health ESP
  2277.      - Armour ESP
  2278.      - Weapon ESP
  2279.      - Money ESP
  2280.      - Rank ESP
  2281.      - Points ESP
  2282.      - Health Bar
  2283.      - XYZ Wallhack
  2284.      - Chams
  2285.      - Wireframe
  2286.      - X-Ray
  2287.      - Customisable Distance
  2288.      - Crosshair
  2289.      - 2D Box
  2290.      - 3D Box
  2291.  
  2292.     Misc:
  2293.      - Bunny Hop
  2294.      - RunConsoleCommand Log
  2295.      - Bypass Anti-Cheats
  2296.      - Block Screenshots
  2297.      - Load/Save Configs
  2298.      - No Recoil
  2299.      - No Spread
  2300. ]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement