Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.82 KB | None | 0 0
  1. /*
  2.  
  3.  
  4. _______ ___ _______ _______ .______ .___ ___. ___
  5. | ____|__ \ | \ | ____|| _ \ | \/ | / \
  6. | |__ ) | | .--. || |__ | |_) | | \ / | / ^ \
  7. | __| / / | | | || __| | / | |\/| | / /_\ \
  8. | |____ / /_ | '--' || |____ | |\ \----.| | | | / _____ \
  9. |_______|____| |_______/ |_______|| _| `._____||__| |__| /__/ \__\
  10.  
  11. __ __
  12. ____ ___ ____ _____/ /__ / /_ __ __
  13. / __ `__ \/ __ `/ __ / _ \ / __ \/ / / /
  14. / / / / / / /_/ / /_/ / __/ / /_/ / /_/ /
  15. /_/ /_/ /_/\__,_/\__,_/\___/ /_.___/\__, /
  16. /____/
  17.  
  18. _________ _____ _____
  19. / _____/ ____ __ ___/ ____\/ ____\__.__.
  20. \_____ \ / \| | \ __\\ __< | |
  21. / \ | \ | /| | | | \___ |
  22. /_______ /___| /____/ |__| |__| / ____|
  23. \/ \/ \/
  24.  
  25.  
  26.  
  27. HOLY FUCKING SHIT ITS DERMA!!!! YAY!!!
  28. ok, so i remade it....
  29.  
  30.  
  31. */
  32.  
  33. local catch = {}
  34. local rec = {}
  35.  
  36.  
  37. //***********basic sender************\\
  38. function sendDermaStuff(tbl,pl,e2 , pod)
  39. if catch[e2] == nil then return end
  40. if catch[e2].dontsend then return end
  41. if catch[e2].panels == nil then return end
  42. if catch[e2].holders == nil then return end
  43. //if CurTime( ) - catch[e2].time > 1 then pod = true ; catch[e2].time = CurTime( ) ; print("?")end
  44.  
  45.  
  46. // local T = {}
  47. // if pod != nil then T = table.Copy( tbl ) else T = table_dif(tbl,catch[e2].old) end
  48. // catch[e2].old = table.Copy( tbl )
  49.  
  50. /*
  51. datastream.StreamToClients( pl,
  52. "dermaStuff",
  53. {
  54. e = e2,
  55. t = tbl,
  56. p = catch[e2].panels,
  57. h = catch[e2].holders
  58. });
  59.  
  60. */
  61.  
  62. if pod != nil then catch[e2].old = nil end
  63.  
  64. local new = tbl
  65. local old = catch[e2].old
  66.  
  67. if old == nil then old = {} end
  68.  
  69.  
  70.  
  71.  
  72. for k,v in pairs(catch[e2].panels) do
  73. if diff(new[k],old[k]) then user_msg(new[k],k,pl,e2) end
  74. end
  75. for k,v in pairs(catch[e2].holders) do
  76. if diff(new[k],old[k]) then user_msg(new[k],k,pl,e2) end
  77. end
  78. for k,v in pairs(catch[e2].tabs) do
  79. if diff(new[k],old[k]) then user_msg(new[k],k,pl,e2) end
  80. end
  81. for k,v in pairs(new) do
  82. if v.type != "dTab" && v.type != "dPanel" && v.type != "dTabHolder" && diff(v,old[k]) then user_msg(v,k,pl,e2) end
  83. end
  84.  
  85. catch[e2].old = table.Copy( tbl )
  86. end
  87.  
  88. function diff(v1,v2)
  89. if v2 == nil then return true end
  90. if type(v1) != type(v2) then return true end
  91. if type(v1) == "table" then
  92. for k,v in pairs(v1) do
  93. if diff(v , v2[k]) then return true end
  94. end
  95. end
  96. if v1 != v2 then return true end
  97. return false
  98. end
  99.  
  100. --require("glon")
  101. --util.AddNetworkString("dermaStuff")
  102. util.AddNetworkString("dermaStuff_datastream_backup")
  103. function user_msg(tbl,k,pl,e2)
  104. -- local s = util.TableToJSON(tbl)
  105. -- local s = glon.encode(s)
  106.  
  107. -- if(string.len(s)+ string.len(k)+5>255) then//usermsg haz a 256 byte limit :<
  108. net.Start("dermaStuff_datastream_backup")
  109. net.WriteFloat( e2 )
  110. net.WriteTable( tbl )
  111. net.WriteString( k )
  112. net.Send( pl )
  113. --[[
  114. else
  115.  
  116. net.Start("dermaStuff")
  117. net.WriteFloat( e2 )
  118. net.WriteString( k )
  119. net.WriteString( s )
  120. net.Send( pl )
  121.  
  122. umsg.Start("dermaStuff", pl)
  123. umsg.Float( e2 )
  124. umsg.String( k )
  125. umsg.String( s )
  126. umsg.End()
  127.  
  128. end
  129. ]]--
  130. end
  131.  
  132.  
  133.  
  134. //**************************basic receiver************************\\
  135. concommand.Add("_e2derma", //
  136. function(player,commandName,args) //
  137. if args[1] == nil then return end //
  138. if args[2] == nil then return end //
  139. local e2 = tonumber(args[1])
  140. local name = args[2] //
  141. if catch[e2] == nil then return end
  142. if catch[e2].derma[name] == nil then return end //
  143. if rec[ catch[e2].derma[args[2]].type ] == nil then return end//
  144. rec[ catch[e2].derma[args[2]].type ](args) //
  145. local run = catch[e2].derma[name].run_on_change
  146.  
  147. if run != nil && run then
  148. catch[e2].bexe = name
  149. ents.GetByIndex( e2 ):Execute()
  150. end
  151. end) //
  152. //****************************************************************\\
  153.  
  154.  
  155.  
  156.  
  157.  
  158. //******************receiver functions********************\\
  159. rec.dButton = function( args )
  160. local e2 = tonumber(args[1])
  161. catch[e2].bexe = args[2]
  162. ents.GetByIndex( e2 ):Execute()
  163. end
  164.  
  165. rec.dCheckBox = function( args )
  166. local e2 = tonumber(args[1])
  167. local name = args[2]
  168. local val = tonumber(args[3])
  169. catch[e2].derma[name].val = val
  170. end
  171.  
  172. rec.dSlider = function( args )
  173. local e2 = tonumber(args[1])
  174. local name = args[2]
  175. local val = tonumber(args[3])
  176. catch[e2].derma[name].val = val
  177. end
  178.  
  179. rec.dTextBox = function( args )
  180. local e2 = tonumber(args[1])
  181. local name = args[2]
  182. local val = args[3]
  183. catch[e2].derma[name].text = val
  184. end
  185.  
  186.  
  187. rec.dDropBox = function( args )
  188. local e2 = tonumber(args[1])
  189. local name = args[2]
  190. local val = args[3]
  191. catch[e2].derma[name].text = val
  192. end
  193.  
  194.  
  195. rec.dListBox = function( args )
  196. local e2 = tonumber(args[1])
  197. local name = args[2]
  198. local val = args[3]
  199. catch[e2].derma[name].text = val
  200. end
  201.  
  202. //**********************************************************\\
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213. //****************************call backs**************************\\
  214. registerCallback("construct", function(self)
  215. local e2 = self.entity:EntIndex()
  216.  
  217. self.dermacrap = {}
  218. self.dermacrap.e2 = e2
  219.  
  220. catch[e2] = {}
  221. //catch[e2].time = CurTime( ) - 10 // the - 10 is just to make shure it runs the first time its spawned
  222. catch[e2].derma = {}
  223. catch[e2].panels = {}
  224. catch[e2].holders= {}
  225. catch[e2].tabs = {}
  226. catch[e2].pod = nil
  227. catch[e2].bexe = ""
  228. catch[e2].owner = self.player
  229. end)
  230.  
  231. registerCallback("postexecute", function(self)
  232. if self.dermacrap.e2 == nil then return end
  233. local e2 = self.dermacrap.e2
  234. if catch[e2] == nil then return end
  235. if catch[e2].update == true then update_derma(e2,self) end
  236. catch[e2].bexe = ""
  237. end)
  238.  
  239. registerCallback("destruct", function(self)
  240. if self.dermacrap.e2 == nil then return end
  241.  
  242. local e2 = self.dermacrap.e2
  243. catch[e2].dontsend = true
  244. if catch[e2] == nil then return end
  245. if !catch[e2].pod then
  246. remove_derma(e2,self.player)
  247. else
  248. if catch[e2].pod:GetDriver():IsPlayer( ) then
  249. remove_derma(e2,catch[e2].pod:GetDriver())
  250. end
  251. end
  252. catch[e2] = nil
  253.  
  254. end)
  255. //*****************************************************************\\
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269. //******************************updater***************************************\\
  270. function update_derma(e2,self, pod)
  271.  
  272. if catch[e2].update || self == nil then
  273.  
  274. if !catch[e2].pod && self != nil then
  275. sendDermaStuff(catch[e2].derma,self.player,e2)
  276. else
  277. if catch[e2].pod:GetDriver():IsPlayer( ) then
  278. sendDermaStuff(catch[e2].derma,catch[e2].pod:GetDriver(),e2 , pod)
  279. end
  280.  
  281. end
  282. catch[e2].update = false
  283. end
  284. end
  285. //****************************************************************************\\
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296. //**********removeall*********\\
  297. function remove_derma(e2,pl)
  298. umsg.Start("removedermaStuff", pl )
  299. umsg.Short( e2 )
  300. umsg.End()
  301. end
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313. //*******************************POD SUPPORT**********************************\\
  314.  
  315. e2function void dPod(entity pod)
  316. local e2 = self.entity:EntIndex()
  317. if pod==nil then return end
  318. if pod:IsVehicle() then
  319. catch[e2].pod = pod
  320. else
  321. catch[e2].pod = nil
  322. end
  323. end
  324.  
  325. function enter( player, vehicle, role )
  326. for k,v in pairs(catch) do
  327. if v.pod == vehicle then
  328. update_derma(k , nil , true )
  329. // catch[k].time = CurTime( ) - 10
  330. end
  331. end
  332. end
  333. hook.Add( "PlayerEnteredVehicle", "derma_V_enter", enter )
  334.  
  335.  
  336. function VehicleExit(pl, vehicle)
  337. for k,v in pairs(catch) do
  338. if v.pod == vehicle then remove_derma(k,pl) end
  339. end
  340. end
  341. hook.Add("PlayerLeaveVehicle", "derma_V_Exit", VehicleExit)
  342.  
  343. //****************************************************************************\\
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353. __e2setcost(20)
  354. //***********************panel*****************************\\
  355. e2function void dPanel(string name, vector2 pos, vector2 size)
  356.  
  357. local e2 = self.entity:EntIndex()
  358. local tbl = {}
  359. tbl.type = "dPanel"
  360. tbl.text = name
  361. tbl.pos = pos
  362. tbl.size = size
  363. tbl.show = 1
  364. tbl.cCol = false // custom color flag
  365.  
  366. if catch[e2].derma[name] != nil then return end
  367. catch[e2].derma[name] = tbl
  368. catch[e2].panels[name] = false
  369. catch[e2].update = true
  370.  
  371. end
  372.  
  373. //***********************button*****************************\\
  374. e2function void dButton(string name,string parent, vector2 pos, vector2 size)
  375. local e2 = self.entity:EntIndex()
  376. local tbl = {}
  377. tbl.type = "dButton"
  378. tbl.parent= parent
  379. tbl.text = name
  380. tbl.pos = pos
  381. tbl.size = size
  382. tbl.cCol = false //custom color flag
  383.  
  384. if catch[e2].derma[name] != nil then return end
  385. catch[e2].derma[name] = tbl
  386. catch[e2].update = true
  387. end
  388.  
  389.  
  390. __e2setcost(1)
  391. e2function number dClk(string name)
  392. local e2 = self.entity:EntIndex()
  393. if catch[e2].bexe == name then return 1 end
  394. return 0
  395. end
  396.  
  397. e2function string dClk()
  398. local e2 = self.entity:EntIndex()
  399. if catch[e2].bexe == nil then return "" end
  400. return catch[e2].bexe
  401. end
  402. __e2setcost(20)
  403.  
  404.  
  405. //***********************dCheckBox*****************************\\
  406. e2function void dCheckBox(string name,string parent, vector2 pos)
  407. local e2 = self.entity:EntIndex()
  408. local tbl = {}
  409. tbl.type = "dCheckBox"
  410. tbl.parent= parent
  411. tbl.text = name
  412. tbl.pos = pos
  413. tbl.cCol = Color(255,255,255,255)
  414. tbl.val = 0
  415.  
  416. if catch[e2].derma[name] != nil then return end
  417. catch[e2].derma[name] = tbl
  418. catch[e2].update = true
  419. end
  420.  
  421.  
  422. //***********************dSlider*****************************\\
  423. e2function void dSlider(string name,string parent, vector2 pos, number length, number min , number max)
  424. local e2 = self.entity:EntIndex()
  425. local tbl = {}
  426. tbl.type = "dSlider"
  427. tbl.parent= parent
  428. tbl.length= length
  429. tbl.min = min
  430. tbl.max = max
  431. tbl.text = name
  432. tbl.pos = pos
  433. tbl.val = 0
  434.  
  435. if catch[e2].derma[name] != nil then return end
  436. catch[e2].derma[name] = tbl
  437. catch[e2].update = true
  438. end
  439.  
  440.  
  441. //***********************dTextBox*****************************\\
  442. e2function void dTextBox(string name,string parent, vector2 pos, number length)
  443. local e2 = self.entity:EntIndex()
  444. local tbl = {}
  445. tbl.type = "dTextBox"
  446. tbl.parent= parent
  447. tbl.length= length
  448. tbl.text = ""
  449. tbl.pos = pos
  450.  
  451. if catch[e2].derma[name] != nil then return end
  452. catch[e2].derma[name] = tbl
  453. catch[e2].update = true
  454. end
  455.  
  456. //***********************dImage*****************************\\
  457. e2function void dImage(string name,string parent,string image, vector2 pos, vector2 size)
  458. local e2 = self.entity:EntIndex()
  459. local tbl = {}
  460. tbl.type = "dImage"
  461. tbl.parent= parent
  462. tbl.pos = pos
  463. tbl.size = size
  464. tbl.image = image
  465. tbl.cCol = Color(255,255,255,255)
  466.  
  467. if catch[e2].derma[name] != nil then return end
  468. catch[e2].derma[name] = tbl
  469. catch[e2].update = true
  470. end
  471.  
  472.  
  473. //***********************dDropBox*****************************\\
  474. e2function void dDropBox(string name,string parent, vector2 pos, number length)
  475. local e2 = self.entity:EntIndex()
  476. local tbl = {}
  477. tbl.type = "dDropBox"
  478. tbl.parent= parent
  479. tbl.pos = pos
  480. tbl.length= length
  481. tbl.text = ""
  482. tbl.array = {}
  483.  
  484. if catch[e2].derma[name] != nil then return end
  485. catch[e2].derma[name] = tbl
  486. catch[e2].update = true
  487. end
  488.  
  489.  
  490. //***********************dLabel*****************************\\
  491. e2function void dLabel(string name,string parent, vector2 pos)
  492. local e2 = self.entity:EntIndex()
  493. local tbl = {}
  494. tbl.type = "dLabel"
  495. tbl.parent= parent
  496. tbl.pos = pos
  497. tbl.cCol = Color(255,255,255,255)
  498. tbl.text = name
  499.  
  500. if catch[e2].derma[name] != nil then return end
  501. catch[e2].derma[name] = tbl
  502. catch[e2].update = true
  503. end
  504.  
  505.  
  506. //***********************dTabHolder*****************************\\
  507. e2function void dTabHolder(string name,string parent, vector2 pos,vector2 size)
  508. local e2 = self.entity:EntIndex()
  509. local tbl = {}
  510. tbl.type = "dTabHolder"
  511. tbl.parent= parent
  512. tbl.pos = pos
  513. tbl.size = size
  514.  
  515.  
  516. if catch[e2].derma[name] != nil then return end
  517. catch[e2].derma[name] = tbl
  518. catch[e2].holders[name] = false
  519. catch[e2].update = true
  520. end
  521.  
  522.  
  523. //***********************dTab*****************************\\
  524. e2function void dTab(string name,string parent)
  525. local e2 = self.entity:EntIndex()
  526. local tbl = {}
  527. tbl.type = "dTab"
  528. tbl.parent= parent
  529.  
  530. catch[e2].tabs[name] = false
  531.  
  532. if catch[e2].derma[name] != nil then return end
  533. catch[e2].derma[name] = tbl
  534. catch[e2].update = true
  535. end
  536.  
  537.  
  538.  
  539.  
  540. //***********************dListBox*****************************\\
  541. e2function void dListBox(string name,string parent, vector2 pos,vector2 size)
  542. local e2 = self.entity:EntIndex()
  543. local tbl = {}
  544. tbl.type = "dListBox"
  545. tbl.parent= parent
  546. tbl.pos = pos
  547. tbl.size = size
  548. tbl.text = ""
  549. tbl.array = {}
  550.  
  551.  
  552. if catch[e2].derma[name] != nil then return end
  553. catch[e2].derma[name] = tbl
  554. catch[e2].update = true
  555. end
  556.  
  557.  
  558.  
  559. //************modifiers*************\\
  560. __e2setcost(10)
  561. e2function void dPos(string name, vector2 pos)
  562. local e2 = self.entity:EntIndex()
  563. if catch[e2].derma[name] == nil then return end
  564. catch[e2].derma[name].pos = pos
  565. catch[e2].update = true
  566. end
  567.  
  568. e2function void dSize(string name, vector2 size)
  569. local e2 = self.entity:EntIndex()
  570. if catch[e2].derma[name] == nil then return end
  571. catch[e2].derma[name].size = size
  572. catch[e2].update = true
  573. end
  574.  
  575.  
  576. e2function void dText(string name, string text )
  577. local e2 = self.entity:EntIndex()
  578. if catch[e2].derma[name] == nil then return end
  579. catch[e2].derma[name].text = text
  580. catch[e2].update = true
  581. end
  582.  
  583. e2function void dShow(string name, number show )
  584. local e2 = self.entity:EntIndex()
  585. if catch[e2].derma[name] == nil then return end
  586. catch[e2].derma[name].show = show
  587. catch[e2].update = true
  588. end
  589.  
  590. e2function void dShowCloseButton(string name, number show )
  591. local e2 = self.entity:EntIndex()
  592. if catch[e2].derma[name] == nil then return end
  593. catch[e2].derma[name].ClBut = show
  594. catch[e2].update = true
  595. end
  596.  
  597. e2function void dColor(string name, number r,number g,number b,number a)
  598. local e2 = self.entity:EntIndex()
  599. if catch[e2].derma[name] == nil then return end
  600. catch[e2].derma[name].cCol = Color(r,g,b,a)
  601. catch[e2].update = true
  602. end
  603.  
  604. e2function void dLength(string name, number length)
  605. local e2 = self.entity:EntIndex()
  606. if catch[e2].derma[name] == nil then return end
  607. catch[e2].derma[name].length = length
  608. catch[e2].update = true
  609. end
  610.  
  611.  
  612. e2function void dSetImage(string name, string image)
  613. local e2 = self.entity:EntIndex()
  614. if catch[e2].derma[name] == nil then return end
  615. catch[e2].derma[name].image = image
  616. catch[e2].update = true
  617. end
  618.  
  619.  
  620. e2function void dArray(string name, array tbl)
  621. local e2 = self.entity:EntIndex()
  622. if catch[e2].derma[name] == nil then return end
  623. if catch[e2].derma[name].array == nil then return end
  624.  
  625. for k,v in pairs(tbl) do
  626. if type(v) != "string" then tbl[k] = "" end
  627. end
  628.  
  629. catch[e2].derma[name].array = tbl
  630. catch[e2].update = true
  631. end
  632.  
  633.  
  634. e2function void dRunOnChange(string name, number bool)
  635. local e2 = self.entity:EntIndex()
  636. if catch[e2].derma[name] == nil then return end
  637. catch[e2].derma[name].run_on_change = (bool==1)
  638. //catch[e2].update = true
  639. end
  640.  
  641.  
  642.  
  643. //************remove*************\\
  644.  
  645.  
  646.  
  647. e2function void dRemove(string name)
  648. local e2 = self.entity:EntIndex()
  649. if catch[e2].derma[name] == nil then return end
  650. catch[e2].derma[name] = nil
  651.  
  652. for k,v in pairs(catch[e2].derma) do
  653. if v.parent == name then
  654. catch[e2].derma[k] = nil
  655. end
  656. end
  657.  
  658. catch[e2].update = true
  659. end
  660.  
  661.  
  662.  
  663.  
  664. //************get value functions*************\\
  665. __e2setcost(1)
  666. e2function number dNval(string name)
  667. local e2 = self.entity:EntIndex()
  668. if catch[e2].derma[name] == nil then return 0 end
  669. if catch[e2].derma[name].val == nil then return 0 end
  670. if type(catch[e2].derma[name].val) != "number" then return 0 end
  671. return catch[e2].derma[name].val
  672. end
  673.  
  674. e2function string dSval(string name)
  675. local e2 = self.entity:EntIndex()
  676. if catch[e2].derma[name] == nil then return name .. " is a nil name" end
  677. if catch[e2].derma[name].text == nil then return name .. " has no text" end
  678. if type(catch[e2].derma[name].text) != "string" then return "not a string value" end
  679. return catch[e2].derma[name].text
  680. end
  681.  
  682.  
  683. __e2setcost(20)
  684. //************set value functions*************\\
  685. e2function void dSetNval(string name, number value)
  686. local e2 = self.entity:EntIndex()
  687. if catch[e2].derma[name] == nil then return end
  688. catch[e2].derma[name].val = value
  689. catch[e2].update = true
  690. end
  691.  
  692. e2function void dSetSval(string name, string value)
  693. local e2 = self.entity:EntIndex()
  694. if catch[e2].derma[name] == nil then return end
  695. catch[e2].derma[name].text = value
  696. catch[e2].update = true
  697. end
  698.  
  699.  
  700.  
  701.  
  702.  
  703. //********screen h/w************\\
  704. __e2setcost(1)
  705. e2function number scrH()
  706. local s = self.player:GetInfo("e2_dHW_")
  707. local stbl = string.Explode(",", s)
  708. return tonumber(stbl[1])
  709. end
  710.  
  711. e2function number scrW()
  712. local s = self.player:GetInfo("e2_dHW_")
  713. local stbl = string.Explode(",", s)
  714. return tonumber(stbl[2])
  715. end
  716.  
  717.  
  718. //*******mouse capture*******\\
  719. __e2setcost(15)
  720. e2function void enableMouse(number a )
  721. local e2 = self.entity:EntIndex()
  722. local b = "false"
  723. if a==1 then b = "true" end
  724.  
  725. if !catch[e2].pod then
  726. self.player:SendLua( "gui.EnableScreenClicker("..b..")")
  727. else
  728. if catch[e2].pod:GetDriver():IsPlayer( ) then
  729. catch[e2].pod:GetDriver():SendLua( "gui.EnableScreenClicker("..b..")")
  730. end
  731.  
  732. end
  733.  
  734. end
  735.  
  736. local mouseF3 = {}
  737. local mouseF3Toggle = {}
  738.  
  739. e2function void enableMouseF3(number trap )
  740. local e2 = self.entity:EntIndex()
  741. if trap == 1 then catch[e2].mf3 = true else catch[e2].mf3 = false end
  742. end
  743.  
  744. hook.Add("ShowSpare1", "e2_mouse_f3", function( ply )
  745. for k,v in pairs(catch) do
  746. if !catch[k].pod && catch[k].mf3 then
  747. if mouseF3Toggle[k] == nil then mouseF3Toggle[k] = true end
  748.  
  749. local b = "false"
  750. if mouseF3Toggle[k] then b = "true" end
  751.  
  752. catch[k].owner:SendLua( "gui.EnableScreenClicker("..b..")")
  753. mouseF3Toggle[k] = !mouseF3Toggle[k]
  754.  
  755.  
  756. elseif catch[k].mf3 && v.pod != nil && v.pod:GetDriver() == ply then
  757. if mouseF3Toggle[k] == nil then mouseF3Toggle[k] = true end
  758.  
  759. local b = "false"
  760. if mouseF3Toggle[k] then b = "true" end
  761.  
  762. ply:SendLua( "gui.EnableScreenClicker("..b..")")
  763. mouseF3Toggle[k] = !mouseF3Toggle[k]
  764.  
  765. end
  766. end
  767. end)
  768.  
  769. __e2setcost(nil)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement