Inoob8C

r15 to r6

Apr 16th, 2022
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.38 KB | None | 0 0
  1. local netboost = 1000 --velocity
  2. --netboost usage:
  3. --set to false to disable
  4. --set to a vector3 value if you dont want the velocity to change
  5. --set to a number to change the velocity in real time with magnitude equal to the number
  6. local idleMag = 0.005 --used only in case netboost is set to a number value
  7. --if magnitude of the real velocity of a part is lower than this
  8. --then the fake velocity is being set to Vector3.new(0, netboost, 0)
  9. local noRotVel = true --parts rotation velocity set to Vector3.new(0, 0, 0)
  10. local simradius = "shp" --simulation radius (net bypass) method
  11. --"shp" - sethiddenproperty
  12. --"ssr" - setsimulationradius
  13. --false - disable
  14. local antiragdoll = true --removes hingeConstraints and ballSocketConstraints from your character
  15. local newanimate = true --disables the animate script and enables after reanimation
  16. local discharscripts = true --disables all localScripts parented to your character before reanimation
  17. local R15toR6 = true --tries to convert your character to r6 if its r15
  18. local addtools = false --puts all tools from backpack to character and lets you hold them after reanimation
  19. local loadtime = game:GetService("Players").RespawnTime + 0.5 --anti respawn delay
  20. local method = 3 --reanimation method
  21. --methods:
  22. --0 - breakJoints (takes [loadtime] seconds to laod)
  23. --1 - limbs
  24. --2 - limbs + anti respawn
  25. --3 - limbs + breakJoints after [loadtime] seconds
  26. --4 - remove humanoid + breakJoints
  27. --5 - remove humanoid + limbs
  28. local alignmode = 2 --AlignPosition mode
  29. --modes:
  30. --1 - AlignPosition rigidity enabled true
  31. --2 - 2 AlignPositions rigidity enabled both true and false
  32. --3 - AlignPosition rigidity enabled false
  33. local hedafterneck = true --disable aligns for head and enable after neck is removed
  34.  
  35. local lp = game:GetService("Players").LocalPlayer
  36. local rs = game:GetService("RunService")
  37. local stepped = rs.Stepped
  38. local heartbeat = rs.Heartbeat
  39. local renderstepped = rs.RenderStepped
  40. local sg = game:GetService("StarterGui")
  41. local ws = game:GetService("Workspace")
  42. local cf = CFrame.new
  43. local v3 = Vector3.new
  44. local v3_0 = v3(0, 0, 0)
  45. local inf = math.huge
  46.  
  47. local c = lp.Character
  48.  
  49. if not (c and c.Parent) then
  50. return
  51. end
  52.  
  53. c:GetPropertyChangedSignal("Parent"):Connect(function()
  54. if not (c and c.Parent) then
  55. c = nil
  56. end
  57. end)
  58.  
  59. local function gp(parent, name, className)
  60. local ret = nil
  61. pcall(function()
  62. for i, v in pairs(parent:GetChildren()) do
  63. if (v.Name == name) and v:IsA(className) then
  64. ret = v
  65. break
  66. end
  67. end
  68. end)
  69. return ret
  70. end
  71.  
  72. local function align(Part0, Part1)
  73. Part0.CustomPhysicalProperties = PhysicalProperties.new(0.0001, 0.0001, 0.0001, 0.0001, 0.0001)
  74.  
  75. local att0 = Instance.new("Attachment", Part0)
  76. att0.Orientation = v3_0
  77. att0.Position = v3_0
  78. att0.Name = "att0_" .. Part0.Name
  79. local att1 = Instance.new("Attachment", Part1)
  80. att1.Orientation = v3_0
  81. att1.Position = v3_0
  82. att1.Name = "att1_" .. Part1.Name
  83.  
  84. if (alignmode == 1) or (alignmode == 2) then
  85. local ape = Instance.new("AlignPosition", att0)
  86. ape.ApplyAtCenterOfMass = false
  87. ape.MaxForce = inf
  88. ape.MaxVelocity = inf
  89. ape.ReactionForceEnabled = false
  90. ape.Responsiveness = 200
  91. ape.Attachment1 = att1
  92. ape.Attachment0 = att0
  93. ape.Name = "AlignPositionRtrue"
  94. ape.RigidityEnabled = true
  95. end
  96.  
  97. if (alignmode == 2) or (alignmode == 3) then
  98. local apd = Instance.new("AlignPosition", att0)
  99. apd.ApplyAtCenterOfMass = false
  100. apd.MaxForce = inf
  101. apd.MaxVelocity = inf
  102. apd.ReactionForceEnabled = false
  103. apd.Responsiveness = 200
  104. apd.Attachment1 = att1
  105. apd.Attachment0 = att0
  106. apd.Name = "AlignPositionRfalse"
  107. apd.RigidityEnabled = false
  108. end
  109.  
  110. local ao = Instance.new("AlignOrientation", att0)
  111. ao.MaxAngularVelocity = inf
  112. ao.MaxTorque = inf
  113. ao.PrimaryAxisOnly = false
  114. ao.ReactionTorqueEnabled = false
  115. ao.Responsiveness = 200
  116. ao.Attachment1 = att1
  117. ao.Attachment0 = att0
  118. ao.RigidityEnabled = false
  119.  
  120. if netboost then
  121. Part0:GetPropertyChangedSignal("Parent"):Connect(function()
  122. if not (Part0 and Part0.Parent) then
  123. Part0 = nil
  124. end
  125. end)
  126. spawn(function()
  127. if typeof(netboost) == "Vector3" then
  128. local vel = v3_0
  129. local rotvel = v3_0
  130. while Part0 do
  131. Part0.Velocity = vel
  132. if noRotVel then
  133. Part0.RotVelocity = rotvel
  134. end
  135. heartbeat:Wait()
  136. if Part0 then
  137. vel = Part0.Velocity
  138. Part0.Velocity = netboost
  139. if noRotVel then
  140. rotvel = Part0.RotVelocity
  141. Part0.RotVelocity = v3_0
  142. end
  143. stepped:Wait()
  144. end
  145. end
  146. elseif typeof(netboost) == "number" then
  147. local vel = v3_0
  148. local rotvel = v3_0
  149. while Part0 do
  150. Part0.Velocity = vel
  151. if noRotVel then
  152. Part0.RotVelocity = rotvel
  153. end
  154. heartbeat:Wait()
  155. if Part0 then
  156. local newvel = vel
  157. local mag = newvel.Magnitude
  158. if mag < idleMag then
  159. newvel = v3(0, netboost, 0)
  160. else
  161. local multiplier = netboost / mag
  162. newvel *= v3(multiplier, multiplier, multiplier)
  163. end
  164. vel = Part0.Velocity
  165. Part0.Velocity = newvel
  166. if noRotVel then
  167. rotvel = Part0.RotVelocity
  168. Part0.RotVelocity = v3_0
  169. end
  170. stepped:Wait()
  171. end
  172. end
  173. end
  174. end)
  175. end
  176. end
  177.  
  178. local function respawnrequest()
  179. local c = lp.Character
  180. local ccfr = ws.CurrentCamera.CFrame
  181. local fc = Instance.new("Model")
  182. local nh = Instance.new("Humanoid", fc)
  183. lp.Character = fc
  184. nh.Health = 0
  185. lp.Character = c
  186. fc:Destroy()
  187. local con = nil
  188. local function confunc()
  189. con:Disconnect()
  190. ws.CurrentCamera.CFrame = ccfr
  191. end
  192. con = renderstepped:Connect(confunc)
  193. end
  194.  
  195. local destroyhum = (method == 4) or (method == 5)
  196. local breakjoints = (method == 0) or (method == 4)
  197. local antirespawn = (method == 0) or (method == 2) or (method == 3)
  198.  
  199. addtools = addtools and gp(lp, "Backpack", "Backpack")
  200.  
  201. if simradius == "shp" then
  202. local shp = sethiddenproperty or set_hidden_property or set_hidden_prop or sethiddenprop
  203. if shp then
  204. spawn(function()
  205. while c and heartbeat:Wait() do
  206. shp(lp, "SimulationRadius", inf)
  207. end
  208. end)
  209. end
  210. elseif simradius == "ssr" then
  211. local ssr = setsimulationradius or set_simulation_radius or set_sim_radius or setsimradius or set_simulation_rad or setsimulationrad
  212. if ssr then
  213. spawn(function()
  214. while c and heartbeat:Wait() do
  215. ssr(inf)
  216. end
  217. end)
  218. end
  219. end
  220.  
  221. antiragdoll = antiragdoll and function(v)
  222. if v:IsA("HingeConstraint") or v:IsA("BallSocketConstraint") then
  223. v.Parent = nil
  224. end
  225. end
  226.  
  227. if antiragdoll then
  228. for i, v in pairs(c:GetDescendants()) do
  229. antiragdoll(v)
  230. end
  231. c.DescendantAdded:Connect(antiragdoll)
  232. end
  233.  
  234. if antirespawn then
  235. respawnrequest()
  236. end
  237.  
  238. if method == 0 then
  239. wait(loadtime)
  240. if not c then
  241. return
  242. end
  243. end
  244.  
  245. if discharscripts then
  246. for i, v in pairs(c:GetChildren()) do
  247. if v:IsA("LocalScript") then
  248. v.Disabled = true
  249. end
  250. end
  251. elseif newanimate then
  252. local animate = gp(c, "Animate", "LocalScript")
  253. if animate and (not animate.Disabled) then
  254. animate.Disabled = true
  255. else
  256. newanimate = false
  257. end
  258. end
  259.  
  260. local hum = c:FindFirstChildOfClass("Humanoid")
  261. if hum then
  262. for i, v in pairs(hum:GetPlayingAnimationTracks()) do
  263. v:Stop()
  264. end
  265. end
  266.  
  267. if addtools then
  268. for i, v in pairs(addtools:GetChildren()) do
  269. if v:IsA("Tool") then
  270. v.Parent = c
  271. end
  272. end
  273. end
  274.  
  275. pcall(function()
  276. settings().Physics.AllowSleep = false
  277. settings().Physics.PhysicsEnvironmentalThrottle = Enum.EnviromentalPhysicsThrottle.Disabled
  278. end)
  279.  
  280. local OLDscripts = {}
  281.  
  282. for i, v in pairs(c:GetDescendants()) do
  283. if v.ClassName == "Script" then
  284. table.insert(OLDscripts, v)
  285. end
  286. end
  287.  
  288. local scriptNames = {}
  289.  
  290. for i, v in pairs(c:GetDescendants()) do
  291. if v:IsA("BasePart") then
  292. local newName = tostring(i)
  293. local exists = true
  294. while exists do
  295. exists = false
  296. for i, v in pairs(OLDscripts) do
  297. if v.Name == newName then
  298. exists = true
  299. end
  300. end
  301. if exists then
  302. newName = newName .. "_"
  303. end
  304. end
  305. table.insert(scriptNames, newName)
  306. Instance.new("Script", v).Name = newName
  307. end
  308. end
  309.  
  310. c.Archivable = true
  311. local cl = c:Clone()
  312. for i, v in pairs(cl:GetDescendants()) do
  313. pcall(function()
  314. v.Transparency = 1
  315. v.Anchored = false
  316. end)
  317. end
  318.  
  319. local model = Instance.new("Model", c)
  320. model.Name = model.ClassName
  321.  
  322. model:GetPropertyChangedSignal("Parent"):Connect(function()
  323. if not (model and model.Parent) then
  324. model = nil
  325. end
  326. end)
  327.  
  328. for i, v in pairs(c:GetChildren()) do
  329. if v ~= model then
  330. if destroyhum and v:IsA("Humanoid") then
  331. v:Destroy()
  332. else
  333. if addtools and v:IsA("Tool") then
  334. for i1, v1 in pairs(v:GetDescendants()) do
  335. if v1 and v1.Parent and v1:IsA("BasePart") then
  336. local bv = Instance.new("BodyVelocity", v1)
  337. bv.Velocity = v3_0
  338. bv.MaxForce = v3(1000, 1000, 1000)
  339. bv.P = 1250
  340. bv.Name = "bv_" .. v.Name
  341. end
  342. end
  343. end
  344. v.Parent = model
  345. end
  346. end
  347. end
  348. local head = gp(model, "Head", "BasePart")
  349. local torso = gp(model, "Torso", "BasePart") or gp(model, "UpperTorso", "BasePart")
  350. if breakjoints then
  351. model:BreakJoints()
  352. else
  353. if head and torso then
  354. for i, v in pairs(model:GetDescendants()) do
  355. if v:IsA("Weld") or v:IsA("Snap") or v:IsA("Glue") or v:IsA("Motor") or v:IsA("Motor6D") then
  356. local save = false
  357. if (v.Part0 == torso) and (v.Part1 == head) then
  358. save = true
  359. end
  360. if (v.Part0 == head) and (v.Part1 == torso) then
  361. save = true
  362. end
  363. if save then
  364. if hedafterneck then
  365. hedafterneck = v
  366. end
  367. else
  368. v:Destroy()
  369. end
  370. end
  371. end
  372. end
  373. if method == 3 then
  374. spawn(function()
  375. wait(loadtime)
  376. if model then
  377. model:BreakJoints()
  378. end
  379. end)
  380. end
  381. end
  382.  
  383. cl.Parent = c
  384. for i, v in pairs(cl:GetChildren()) do
  385. v.Parent = c
  386. end
  387. cl:Destroy()
  388.  
  389. local modelDes = {}
  390. for i, v in pairs(model:GetDescendants()) do
  391. if v:IsA("BasePart") then
  392. i = tostring(i)
  393. local con = nil
  394. con = v:GetPropertyChangedSignal("Parent"):Connect(function()
  395. if not (v and v.Parent) then
  396. con:Disconnect()
  397. modelDes[i] = nil
  398. end
  399. end)
  400. modelDes[i] = v
  401. end
  402. end
  403. local modelcolcon = nil
  404. local function modelcolf()
  405. if model then
  406. for i, v in pairs(modelDes) do
  407. v.CanCollide = false
  408. end
  409. else
  410. modelcolcon:Disconnect()
  411. end
  412. end
  413. modelcolcon = stepped:Connect(modelcolf)
  414. modelcolf()
  415.  
  416. for i, scr in pairs(model:GetDescendants()) do
  417. if (scr.ClassName == "Script") and table.find(scriptNames, scr.Name) then
  418. local Part0 = scr.Parent
  419. if Part0:IsA("BasePart") then
  420. for i1, scr1 in pairs(c:GetDescendants()) do
  421. if (scr1.ClassName == "Script") and (scr1.Name == scr.Name) and (not scr1:IsDescendantOf(model)) then
  422. local Part1 = scr1.Parent
  423. if (Part1.ClassName == Part0.ClassName) and (Part1.Name == Part0.Name) then
  424. align(Part0, Part1)
  425. break
  426. end
  427. end
  428. end
  429. end
  430. end
  431. end
  432.  
  433. if (typeof(hedafterneck) == "Instance") and head and head.Parent then
  434. local aligns = {}
  435. for i, v in pairs(head:GetDescendants()) do
  436. if v:IsA("AlignPosition") or v:IsA("AlignOrientation") then
  437. table.insert(aligns, v)
  438. v.Enabled = false
  439. end
  440. end
  441. spawn(function()
  442. while c and hedafterneck and hedafterneck.Parent do
  443. stepped:Wait()
  444. end
  445. if not (c and head and head.Parent) then
  446. return
  447. end
  448. for i, v in pairs(aligns) do
  449. pcall(function()
  450. v.Enabled = true
  451. end)
  452. end
  453. end)
  454. end
  455.  
  456. for i, v in pairs(c:GetDescendants()) do
  457. if v and v.Parent then
  458. if v.ClassName == "Script" then
  459. if table.find(scriptNames, v.Name) then
  460. v:Destroy()
  461. end
  462. elseif not v:IsDescendantOf(model) then
  463. if v:IsA("Decal") then
  464. v.Transparency = 1
  465. elseif v:IsA("ForceField") then
  466. v.Visible = false
  467. elseif v:IsA("Sound") then
  468. v.Playing = false
  469. elseif v:IsA("BillboardGui") or v:IsA("SurfaceGui") or v:IsA("ParticleEmitter") or v:IsA("Fire") or v:IsA("Smoke") or v:IsA("Sparkles") then
  470. v.Enabled = false
  471. end
  472. end
  473. end
  474. end
  475.  
  476. if newanimate then
  477. local animate = gp(c, "Animate", "LocalScript")
  478. if animate then
  479. animate.Disabled = false
  480. end
  481. end
  482.  
  483. if addtools then
  484. for i, v in pairs(c:GetChildren()) do
  485. if v:IsA("Tool") then
  486. v.Parent = addtools
  487. end
  488. end
  489. end
  490.  
  491. local hum0 = model:FindFirstChildOfClass("Humanoid")
  492. local hum1 = c:FindFirstChildOfClass("Humanoid")
  493. if hum1 then
  494. ws.CurrentCamera.CameraSubject = hum1
  495. local camSubCon = nil
  496. local function camSubFunc()
  497. camSubCon:Disconnect()
  498. if c and hum1 and (hum1.Parent == c) then
  499. ws.CurrentCamera.CameraSubject = hum1
  500. end
  501. end
  502. camSubCon = renderstepped:Connect(camSubFunc)
  503. if hum0 then
  504. hum0.Changed:Connect(function(prop)
  505. if (prop == "Jump") and hum1 and hum1.Parent then
  506. hum1.Jump = hum0.Jump
  507. end
  508. end)
  509. else
  510. lp.Character = nil
  511. lp.Character = c
  512. end
  513. end
  514.  
  515. local rb = Instance.new("BindableEvent", c)
  516. rb.Event:Connect(function()
  517. rb:Destroy()
  518. sg:SetCore("ResetButtonCallback", true)
  519. if destroyhum then
  520. c:BreakJoints()
  521. return
  522. end
  523. if antirespawn then
  524. if hum0 and hum0.Parent and (hum0.Health > 0) then
  525. model:BreakJoints()
  526. hum0.Health = 0
  527. end
  528. respawnrequest()
  529. else
  530. if hum0 and hum0.Parent and (hum0.Health > 0) then
  531. model:BreakJoints()
  532. hum0.Health = 0
  533. end
  534. end
  535. end)
  536. sg:SetCore("ResetButtonCallback", rb)
  537.  
  538. spawn(function()
  539. while c do
  540. if hum0 and hum0.Parent and hum1 and hum1.Parent then
  541. hum1.Jump = hum0.Jump
  542. end
  543. wait()
  544. end
  545. sg:SetCore("ResetButtonCallback", true)
  546. end)
  547.  
  548. R15toR6 = R15toR6 and hum1 and (hum1.RigType == Enum.HumanoidRigType.R15)
  549. if R15toR6 then
  550. local cfr = nil
  551. pcall(function()
  552. cfr = gp(c, "HumanoidRootPart", "BasePart").CFrame
  553. end)
  554. if cfr then
  555. local R6parts = {
  556. head = {
  557. Name = "Head",
  558. Size = v3(2, 1, 1),
  559. R15 = {
  560. Head = 0
  561. }
  562. },
  563. torso = {
  564. Name = "Torso",
  565. Size = v3(2, 2, 1),
  566. R15 = {
  567. UpperTorso = 0.2,
  568. LowerTorso = -0.8
  569. }
  570. },
  571. root = {
  572. Name = "HumanoidRootPart",
  573. Size = v3(2, 2, 1),
  574. R15 = {
  575. HumanoidRootPart = 0
  576. }
  577. },
  578. leftArm = {
  579. Name = "Left Arm",
  580. Size = v3(1, 2, 1),
  581. R15 = {
  582. LeftHand = -0.85,
  583. LeftLowerArm = -0.2,
  584. LeftUpperArm = 0.4
  585. }
  586. },
  587. rightArm = {
  588. Name = "Right Arm",
  589. Size = v3(1, 2, 1),
  590. R15 = {
  591. RightHand = -0.85,
  592. RightLowerArm = -0.2,
  593. RightUpperArm = 0.4
  594. }
  595. },
  596. leftLeg = {
  597. Name = "Left Leg",
  598. Size = v3(1, 2, 1),
  599. R15 = {
  600. LeftFoot = -0.85,
  601. LeftLowerLeg = -0.15,
  602. LeftUpperLeg = 0.6
  603. }
  604. },
  605. rightLeg = {
  606. Name = "Right Leg",
  607. Size = v3(1, 2, 1),
  608. R15 = {
  609. RightFoot = -0.85,
  610. RightLowerLeg = -0.15,
  611. RightUpperLeg = 0.6
  612. }
  613. }
  614. }
  615. for i, v in pairs(c:GetChildren()) do
  616. if v:IsA("BasePart") then
  617. for i1, v1 in pairs(v:GetChildren()) do
  618. if v1:IsA("Motor6D") then
  619. v1.Part0 = nil
  620. end
  621. end
  622. end
  623. end
  624. for i, v in pairs(R6parts) do
  625. local part = Instance.new("Part")
  626. part.Name = v.Name
  627. part.Size = v.Size
  628. part.CFrame = cfr
  629. part.Anchored = false
  630. part.Transparency = 1
  631. part.CanCollide = false
  632. for i1, v1 in pairs(v.R15) do
  633. local R15part = gp(c, i1, "BasePart")
  634. local att = gp(R15part, "att1_" .. i1, "Attachment")
  635. if R15part then
  636. local weld = Instance.new("Weld", R15part)
  637. weld.Name = "Weld_" .. i1
  638. weld.Part0 = part
  639. weld.Part1 = R15part
  640. weld.C0 = cf(0, v1, 0)
  641. weld.C1 = cf(0, 0, 0)
  642. R15part.Massless = true
  643. R15part.Name = "R15_" .. i1
  644. R15part.Parent = part
  645. if att then
  646. att.Parent = part
  647. att.Position = v3(0, v1, 0)
  648. end
  649. end
  650. end
  651. part.Parent = c
  652. R6parts[i] = part
  653. end
  654. local R6joints = {
  655. neck = {
  656. Parent = R6parts.torso,
  657. Name = "Neck",
  658. Part0 = R6parts.torso,
  659. Part1 = R6parts.head,
  660. C0 = cf(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
  661. C1 = cf(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  662. },
  663. rootJoint = {
  664. Parent = R6parts.root,
  665. Name = "RootJoint" ,
  666. Part0 = R6parts.root,
  667. Part1 = R6parts.torso,
  668. C0 = cf(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0),
  669. C1 = cf(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  670. },
  671. rightShoulder = {
  672. Parent = R6parts.torso,
  673. Name = "Right Shoulder",
  674. Part0 = R6parts.torso,
  675. Part1 = R6parts.rightArm,
  676. C0 = cf(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  677. C1 = cf(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  678. },
  679. leftShoulder = {
  680. Parent = R6parts.torso,
  681. Name = "Left Shoulder",
  682. Part0 = R6parts.torso,
  683. Part1 = R6parts.leftArm,
  684. C0 = cf(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  685. C1 = cf(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  686. },
  687. rightHip = {
  688. Parent = R6parts.torso,
  689. Name = "Right Hip",
  690. Part0 = R6parts.torso,
  691. Part1 = R6parts.rightLeg,
  692. C0 = cf(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0),
  693. C1 = cf(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  694. },
  695. leftHip = {
  696. Parent = R6parts.torso,
  697. Name = "Left Hip" ,
  698. Part0 = R6parts.torso,
  699. Part1 = R6parts.leftLeg,
  700. C0 = cf(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0),
  701. C1 = cf(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  702. }
  703. }
  704. for i, v in pairs(R6joints) do
  705. local joint = Instance.new("Motor6D")
  706. for prop, val in pairs(v) do
  707. joint[prop] = val
  708. end
  709. R6joints[i] = joint
  710. end
  711. hum1.RigType = Enum.HumanoidRigType.R6
  712. hum1.HipHeight = 0
  713. end
  714. end
Advertisement
Add Comment
Please, Sign In to add comment