Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 67.29 KB | None | 0 0
  1. function shBanFel(lej, bby, bre, bwh, bti)
  2. keppen = guiCreateStaticImage( 0.0, 0.0, 100, 100, "kep.jpg", true )
  3. guiSetEnabled(keppen, false)
  4. local lejarat = ((lej-(getRealTime().timestamp))/60)/60
  5. if (lejarat<1) and (lej~=9999999999) then
  6. bend = "1 órán belül"
  7. elseif (lejarat>=1) and (lej~=9999999999) then
  8. bend = "kb. " .. math.floor(lejarat) .. " óra múlva"
  9. elseif (lej==9999999999) then
  10. bend = "Soha"
  11. bti = "örökre"
  12. end
  13. bannAblak = guiCreateWindow ( 0.15, 0.33, 0.7, 0.1, "Ki vagy tiltva a szerverről || Fellebbezés a kitiltás ellen: forum.fine-mta.eu", true )
  14. guiWindowSetMovable ( bannAblak, false )
  15. guiWindowSetSizable ( bannAblak, false )
  16. bannInfo = guiCreateGridList ( 0, 0.1, 1, 0.9, true, bannAblak )
  17. guiGridListSetSelectionMode ( bannInfo, 2 )
  18. guiGridListAddColumn ( bannInfo, "Aki kitiltott", 0.2 )
  19. guiGridListAddColumn ( bannInfo, "Indok", 0.29 )
  20. guiGridListAddColumn ( bannInfo, "Kitiltás időpontja", 0.18 )
  21. guiGridListAddColumn ( bannInfo, "Kitiltás időtartama (óra)", 0.13 )
  22. guiGridListAddColumn ( bannInfo, "Kitiltás lejár", 0.16 )
  23. local sor = guiGridListAddRow ( bannInfo )
  24. guiGridListSetItemText ( bannInfo, sor, 1, bby, false, false )
  25. guiGridListSetItemText ( bannInfo, sor, 2, bre, false, false )
  26. guiGridListSetItemText ( bannInfo, sor, 3, bwh, false, false )
  27. if (bti==(-1)) then
  28. guiGridListSetItemText ( bannInfo, sor, 4, "Végtelen", false, false )
  29. guiGridListSetItemText ( bannInfo, sor, 5, "Soha", false, false )
  30. else
  31. guiGridListSetItemText ( bannInfo, sor, 4, bti, false, false )
  32. guiGridListSetItemText ( bannInfo, sor, 5, bend, false, false )
  33. end
  34. end
  35. addEvent("shBanFel", true)
  36. addEventHandler("shBanFel", getRootElement(), shBanFel)
  37.  
  38. function shSerBanFel(sbby, sbre, sbwh, sbti)
  39. keppen = guiCreateStaticImage( 0.0, 0.0, 100, 100, "kep.jpg", true )
  40. guiSetEnabled(keppen, false)
  41. bannSAblak = guiCreateWindow ( 0.15, 0.33, 0.7, 0.1, "A serial azonosítód kitiltva || Fellebbezés a kitiltás ellen: forum.fine-mta.eu", true )
  42. guiWindowSetMovable ( bannSAblak, false )
  43. guiWindowSetSizable ( bannSAblak, false )
  44. bannSInfo = guiCreateGridList ( 0, 0.1, 1, 0.9, true, bannSAblak )
  45. guiGridListSetSelectionMode ( bannSInfo, 2 )
  46. guiGridListAddColumn ( bannSInfo, "Aki kitiltott", 0.18 )
  47. guiGridListAddColumn ( bannSInfo, "Indok", 0.24 )
  48. guiGridListAddColumn ( bannSInfo, "Kitiltás időpontja", 0.16 )
  49. guiGridListAddColumn ( bannSInfo, "Serial", 0.27 )
  50. guiGridListAddColumn ( bannSInfo, "Kitiltás lejár", 0.13 )
  51. local sor = guiGridListAddRow ( bannSInfo )
  52. guiGridListSetItemText ( bannSInfo, sor, 1, sbby, false, false )
  53. guiGridListSetItemText ( bannSInfo, sor, 2, sbre, false, false )
  54. guiGridListSetItemText ( bannSInfo, sor, 3, sbwh, false, false )
  55. guiGridListSetItemText ( bannSInfo, sor, 4, sbti, false, false )
  56. guiGridListSetItemText ( bannSInfo, sor, 5, "Soha", false, false )
  57. end
  58. addEvent("shSerBanFel", true)
  59. addEventHandler("shSerBanFel", getRootElement(), shSerBanFel)
  60.  
  61.  
  62. addEvent("vonatBe",true)
  63. addEventHandler( "vonatBe",getRootElement(),
  64. function( )
  65. soundVonat = playSound3D("vonathang.mp3", 2021.638671875, -2290.76953125, 13.579941749573, true)
  66. setSoundMaxDistance( soundVonat, 700 )
  67. setSoundVolume(soundVonat, 400)
  68. setElementDimension(soundVonat, 12)
  69. end
  70. )
  71.  
  72. addEvent("vonatMegalloBe",true)
  73. addEventHandler( "vonatMegalloBe",getRootElement(),
  74. function( )
  75. soundMegalloVonat = playSound3D("megallo.mp3", 2021.638671875, -2290.76953125, 13.579941749573, true)
  76. setSoundMaxDistance( soundMegalloVonat, 700 )
  77. setSoundVolume(soundMegalloVonat, 400)
  78. setElementDimension(soundMegalloVonat, 12)
  79. end
  80. )
  81.  
  82. addEvent("vonatMegallojBe",true)
  83. addEventHandler( "vonatMegallojBe",getRootElement(),
  84. function( )
  85. soundMegallojVonat = playSound3D("megalloj.mp3", 2021.638671875, -2290.76953125, 13.579941749573, true)
  86. setSoundMaxDistance( soundMegallojVonat, 700 )
  87. setSoundVolume(soundMegallojVonat, 400)
  88. setElementDimension(soundMegallojVonat, 12)
  89. end
  90. )
  91.  
  92. addEvent("vonatKi",true)
  93. addEventHandler( "vonatKi",getRootElement(),
  94. function( )
  95. stopSound( soundVonat )
  96. end
  97. )
  98.  
  99. addEvent("vonatMegalloKi",true)
  100. addEventHandler( "vonatMegalloKi",getRootElement(),
  101. function( )
  102. stopSound( soundMegalloVonat )
  103. end
  104. )
  105.  
  106. addEvent("kepfelB",true)
  107. addEventHandler( "kepfelB",getRootElement(),
  108. function( )
  109. local scrWidth, scrHeight = guiGetScreenSize()
  110. if (scrWidth<1024) and (scrHeight<768) then
  111. setTimer ( function()
  112. outputChatBox("FIGYELEM! Ajánlott képernyőfelbontás MINIMUM: 1024x768!!", 255, 0, 0)
  113. outputChatBox("A jelenlegi képernyőfelbontásod NEM kompatibilis a szerveren lévő", 255, 0, 0)
  114. outputChatBox("képi megjelenítésekkel! Így pár dolog nem a megfelelő módon fog megjelenni!", 255, 0, 0)
  115. outputChatBox("Például: munkapanel, F9-es panel, bolt panel, stb...", 255, 0, 0)
  116. outputChatBox("Ha lehetőségeid engedik állítsd át minimum 1024x768-as felbontásra a monitorod!", 255, 0, 0)
  117. outputChatBox("-----------------------------", 255, 0, 0)
  118. end, 2000, 1 )
  119.  
  120. end
  121. end
  122. )
  123.  
  124. addEvent("vonatMegallojKi",true)
  125. addEventHandler( "vonatMegallojKi",getRootElement(),
  126. function( )
  127. stopSound( soundMegallojVonat )
  128. end
  129. )
  130.  
  131. function hasBeta()
  132. local xmlRoot = xmlLoadFile( "cylusbeta.xml" )
  133. if (xmlRoot) then
  134. local betaNode = xmlFindChild(xmlRoot, "beta", 0)
  135.  
  136. if (betaNode) then
  137. return true
  138. end
  139. return false
  140. end
  141.  
  142. return false
  143. end
  144.  
  145. if not hasBeta() then
  146.  
  147. function stopNameChange(oldNick, newNick)
  148. if (source==getLocalPlayer()) then
  149. local legitNameChange = getElementData(getLocalPlayer(), "legitnamechange")
  150.  
  151. if (oldNick~=newNick) and (legitNameChange==0) then
  152. triggerServerEvent("resetName", getLocalPlayer(), oldNick, newNick)
  153. -- outputChatBox("Karakterváltáshoz kattints a 'Karakterváltás' gombra.", 255, 0, 0)
  154. end
  155. end
  156. end
  157. addEventHandler("onClientPlayerChangeNick", getRootElement(), stopNameChange)
  158.  
  159. function onPlayerSpawn()
  160. showCursor(false)
  161.  
  162. local interior = getElementInterior(source)
  163. setCameraInterior(interior)
  164. end
  165. addEventHandler("onClientPlayerSpawn", getLocalPlayer(), onPlayerSpawn)
  166.  
  167. function clearChatBox()
  168. outputChatBox("")
  169. outputChatBox("")
  170. outputChatBox("")
  171. outputChatBox("")
  172. outputChatBox("")
  173. outputChatBox("")
  174. outputChatBox("")
  175. outputChatBox("")
  176. outputChatBox("")
  177. outputChatBox("")
  178. outputChatBox("")
  179. outputChatBox("")
  180. outputChatBox("")
  181. end
  182.  
  183. function hideInterfaceComponents()
  184. --triggerEvent("hideHud", getLocalPlayer())
  185. showPlayerHudComponent("weapon", false)
  186. showPlayerHudComponent("ammo", false)
  187. showPlayerHudComponent("vehicle_name", false)
  188. showPlayerHudComponent("money", false)
  189. showPlayerHudComponent("clock", false)
  190. showPlayerHudComponent("health", false)
  191. showPlayerHudComponent("armour", false)
  192. showPlayerHudComponent("breath", false)
  193. showPlayerHudComponent("area_name", false)
  194. showPlayerHudComponent("radar", false)
  195. --triggerEvent("hideHud", getLocalPlayer())
  196. end
  197. addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), hideInterfaceComponents)
  198.  
  199.  
  200.  
  201.  
  202.  
  203. ---------------------- [ ACCOUNT SCRIPT ] ----------------------
  204. lLostSecurityKey, tLostSecurityKey, bForgot, chkRemember, chkAutoLogin, bLogin, lLogUsername, lLogUsernameNote, tLogUsername, tLogPassword, lLogPassword, tabPanelMain, tabLogin, tabRegister, tabForgot, lRegUsername, tRegUsername, lRegUsernameNote, lRegPassword, tRegPassword, lRegPassword2, tRegPassword2, bRegister, wDelConfirmation = nil
  205. -- increasing this will reshow the tos as updated
  206. tosversion = 1
  207.  
  208. toswindow, tos, bAccept, bDecline = nil
  209. function checkTOS()
  210. local xmlRoot = xmlLoadFile("cylusrptos.xml")
  211.  
  212. if (xmlRoot) then
  213. local tosNode = xmlFindChild(xmlRoot, "tosversion", 0)
  214.  
  215. if (tosNode) then
  216. local tversion = xmlNodeGetValue(tosNode)
  217. if (tversion) and (tversion~="") then
  218. if (tonumber(tversion)~=tosversion) then
  219. xmlRoot = nil
  220. end
  221. else
  222. xmlRoot = nil
  223. end
  224. else
  225. xmlRoot = nil
  226. end
  227. end
  228.  
  229. if not (xmlRoot) then -- User hasn't accepted terms of service or is out of date
  230. local width, height = 700, 300
  231. local scrWidth, scrHeight = guiGetScreenSize()
  232. local x = scrWidth/2 - (width/2)
  233. local y = scrHeight/2 - (height/2)
  234.  
  235. toswindow = guiCreateWindow(x, y, width, height, "Regisztrálási feltételek", false)
  236. guiWindowSetMovable(toswindow, false)
  237.  
  238. tos = guiCreateMemo(0.025, 0.1, 0.95, 0.7, "", true, toswindow)
  239. guiSetText(tos, "A regisztrációval automatikusan elfogadod a szerver szabályzatát.\nA szabályzatot a honlapunkon találod meg\nSzámítógépenként maximum 1db felhasználót tudsz regisztrálni\nElérhetőségeink:\n- http://fine-mta.eu/\n- http://facebook.com/finerp\n- TeamSpeak: 37.221.210.86:10039\n- E-mail: info@fine-mta.eu")
  240. guiEditSetReadOnly(tos, true)
  241.  
  242. bAccept = guiCreateButton(0.1, 0.8, 0.4, 0.15, "Elfogad", true, toswindow)
  243. bDecline = guiCreateButton(0.51, 0.8, 0.4, 0.15, "Elutasít", true, toswindow)
  244. addEventHandler("onClientGUIClick", bAccept, acceptTOS, false)
  245. addEventHandler("onClientGUIClick", bDecline, declineTOS, false)
  246. end
  247. end
  248.  
  249. function acceptTOS(button, state)
  250. local theFile = xmlCreateFile("cylusrptos.xml", "tosversion")
  251. if (theFile) then
  252. local node = xmlCreateChild(theFile, "tosversion")
  253. xmlNodeSetValue(node, tostring(tosversion))
  254. xmlSaveFile(theFile)
  255. end
  256. destroyElement(toswindow)
  257. toswindow = nil
  258. end
  259.  
  260. function declineTOS(button, state)
  261. triggerServerEvent("declineTOS", getLocalPlayer())
  262. end
  263.  
  264.  
  265. triggerServerEvent("getSalt", getLocalPlayer(), scripter)
  266.  
  267. function storeSalt(theSalt, theIP)
  268. ip = theIP
  269. salt = theSalt
  270.  
  271. createMainUI(getThisResource())
  272. end
  273. addEvent("sendSalt", true)
  274. addEventHandler("sendSalt", getRootElement(), storeSalt)
  275.  
  276. bnolva = 0
  277.  
  278. function bannEllbj(lej, bby, bre, bwh, bti)
  279. bnolva = 1
  280. lej2 = lej
  281. bby2 = bby
  282. bre2 = bre
  283. bwh2 = bwh
  284. bti2 = bti
  285. showCursor(true)
  286. triggerEvent("shBanFel", getLocalPlayer(), lej2, bby2, bre2, bwh2, bti2)
  287. end
  288. addEvent("bannEllbj", true)
  289. addEventHandler("bannEllbj", getRootElement(), bannEllbj)
  290.  
  291. sbnolva = 0
  292.  
  293. function sbannEllbj(bby, bre, bwh, bti)
  294. sbnolva = 1
  295. bby2 = bby
  296. bre2 = bre
  297. bwh2 = bwh
  298. bti2 = bti
  299. showCursor(true)
  300. triggerEvent("shSerBanFel", getLocalPlayer(), bby2, bre2, bwh2, bti2)
  301. end
  302. addEvent("sbannEllbj", true)
  303. addEventHandler("sbannEllbj", getRootElement(), sbannEllbj)
  304.  
  305. function createMainUI(res, isChangeAccount)
  306. if (res==getThisResource()) then
  307. sent = false
  308. --local tutFile = xmlLoadFile("vgrptut.xml")
  309. local regFile = xmlLoadFile("cylusrpreg.xml")
  310. if (bnolva==0 and sbnolva==0) then
  311. showChat(false)
  312. if true then
  313. -- Set the camera to a nice view
  314. local cameraRand = math.random(1, 5)
  315. loginpanel = guiCreateStaticImage( 0.0, 0.0, 100, 100, "loginpanel.png", true )
  316. guiSetEnabled(loginpanel, false)
  317. guiMoveToBack(loginpanel)
  318. if (cameraRand==1) then
  319. -- setCameraInterior(0)
  320. -- setCameraMatrix(1511.6787109375, -1713.888671875, 21.128396987915, 1452.0458984375, -1793.7919921875, 13.4206199646)
  321. -- addEventHandler("onClientRender", getRootElement(), renderWelcomeMessage)
  322. loginpanel1 = guiCreateStaticImage( 0.0, 0.0, 100, 100, "1.png", true )
  323. guiSetEnabled(loginpanel1, false)
  324. guiMoveToBack(loginpanel1)
  325. elseif (cameraRand==2) then
  326. -- setCameraInterior(0)
  327. -- setCameraMatrix(1938.09375, -1776.720703125, 28.015789031982, 1850.9013671875, -1776.3251953125, -20.946716308594)
  328. -- addEventHandler("onClientRender", getRootElement(), renderWelcomeMessage)
  329. loginpanel2 = guiCreateStaticImage( 0.0, 0.0, 100, 100, "2.png", true )
  330. guiSetEnabled(loginpanel2, false)
  331. guiMoveToBack(loginpanel2)
  332. elseif (cameraRand==3) then
  333. -- setCameraInterior(0)
  334. -- setCameraMatrix(1913.845703125, -1535.5751953125, 56.516700744629, 1829.259765625, -1489.291015625, 83.031295776367)
  335. -- addEventHandler("onClientRender", getRootElement(), renderWelcomeMessage)
  336. loginpanel3 = guiCreateStaticImage( 0.0, 0.0, 100, 100, "3.png", true )
  337. guiSetEnabled(loginpanel3, false)
  338. guiMoveToBack(loginpanel3)
  339. elseif (cameraRand==4) then
  340. -- setCameraInterior(0)
  341. -- setCameraMatrix(-2346.0888671875, 1782.640625, 151.88487243652, -2445.6357421875, 1778.9208984375, 143.13357543945)
  342. -- addEventHandler("onClientRender", getRootElement(), renderWelcomeMessage)
  343. loginpanel4 = guiCreateStaticImage( 0.0, 0.0, 100, 100, "4.png", true )
  344. guiSetEnabled(loginpanel4, false)
  345. guiMoveToBack(loginpanel4)
  346. elseif (cameraRand==5) then
  347. -- setCameraInterior(0)
  348. -- setCameraMatrix(-1735.984375, 1318.880859375, 6.8283386230469, -1659.4482421875, 1383.1806640625, 9.5825147628784)
  349. -- addEventHandler("onClientRender", getRootElement(), renderWelcomeMessage)
  350. loginpanel5 = guiCreateStaticImage( 0.0, 0.0, 100, 100, "5.png", true )
  351. guiSetEnabled(loginpanel5, false)
  352. guiMoveToBack(loginpanel5)
  353. end
  354. -- fadeCamera(true)
  355.  
  356. if (bChangeAccount) then
  357. destroyElement(bChangeAccount)
  358. bChangeAccount = nil
  359. end
  360.  
  361. checkTOS() -- Terms of Service
  362.  
  363. local width, height = 400, 200
  364.  
  365. local scrWidth, scrHeight = guiGetScreenSize()
  366. local x = scrWidth/3 - (width/2)
  367. local y = scrHeight/3 - (height/2)
  368.  
  369. if (scrWidth<1024) and (scrHeight<768) then
  370. outputChatBox("FIGYELEM! Ajánlott képernyőfelbontás minimum: 1024x768!!", 255, 0, 0)
  371. outputChatBox("FIGYELEM! Ajánlott képernyőfelbontás minimum: 1024x768!!", 255, 0, 0)
  372. outputChatBox("FIGYELEM! Ajánlott képernyőfelbontás minimum: 1024x768!!", 255, 0, 0)
  373. end
  374.  
  375.  
  376. tLogUsername = guiCreateEdit(0.115, 0.177, 0.138, 0.042, "", true)
  377. tLogPassword = guiCreateEdit(0.114, 0.2725, 0.138, 0.042, "", true)
  378. guiEditSetMaxLength(tLogUsername, 32)
  379. guiEditSetMasked(tLogPassword, true)
  380. guiEditSetMaxLength(tLogPassword, 32)
  381. guiSetInputMode("no_binds_when_editing")
  382.  
  383. bLogin = guiCreateStaticImage( 0.12, 0.407, 0.13, 0.049, "login.png", true )
  384. bRegister = guiCreateStaticImage( 0.12, 0.477, 0.13, 0.049, "reg.png", true )
  385. addEventHandler("onClientGUIClick", bLogin, validateDetails, false)
  386. addEventHandler("onClientGUIClick", bRegister, validateDetails, false)
  387.  
  388. if (toswindow) then
  389. guiBringToFront(toswindow)
  390. end
  391. else
  392. -- showChat(true)
  393. end
  394. end
  395. end
  396. end
  397. --addEventHandler("onClientResourceStart", getRootElement(), createMainUI)
  398.  
  399. function validateDetails()
  400. if (source==bRegister) then
  401. local username = guiGetText(tLogUsername)
  402. local password1 = guiGetText(tLogPassword)
  403. local password2 = guiGetText(tLogPassword)
  404.  
  405. local password = password1 .. password2
  406.  
  407. clearChatBox()
  408. if (string.len(username)<3) then
  409. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3Túl rövid felhasználónév. Minimum 3 karakter legyen.", 255, 0, 0, true)
  410. exports.notifications:showBox("error", "Túl rövid felhasználónév. Minimum 3 karakter legyen.")
  411. elseif (string.find(username, ";", 0)) or (string.find(username, "'", 0)) or (string.find(username, "@", 0)) or (string.find(username, ",", 0)) then
  412. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3A felhasználónév nem tartalmazhat: ;,@'.", 255, 0, 0, true)
  413. exports.notifications:showBox("error", "A felhasználóneved érvénytelen karaktereket tartalmaz.")
  414. elseif (string.len(password1)<6) then
  415. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3Túl rövid jelszó. Minimum 6 karakterből álljon.", 255, 0, 0, true)
  416. exports.notifications:showBox("error", "Túl rövid jelszó. Minimum 6 karakterből legyen.")
  417. elseif (string.len(password1)>=30) then
  418. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3Túl hosszú jelszó (több, mint 30 karakter).", 255, 0, 0, true)
  419. exports.notifications:showBox("error", "Túl hosszú jelszó (max. 30 karakter).")
  420. elseif (string.find(password, ";", 0)) or (string.find(password, "'", 0)) or (string.find(password, "@", 0)) or (string.find(password, ",", 0)) then
  421. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3A jelszavad nem tartalmazhat: ;,@'.", 255, 0, 0, true)
  422. exports.notifications:showBox("error", "A jelszavad érvénytelen karaktereket tartalmaz.")
  423. elseif (password1~=password2) then
  424. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3A két jelszó nem egyezik meg.", 255, 0, 0, true)
  425. exports.notifications:showBox("error", "A két jelszó nem egyezik meg.")
  426. else
  427. -- showChat(true)
  428. triggerServerEvent("attemptRegister", getLocalPlayer(), username, password1)
  429. end
  430. local username = guiGetText(tLogUsername)
  431. elseif (source==bLogin) then
  432. local password = guiGetText(tLogPassword)
  433. local username = guiGetText(tLogUsername)
  434. clearChatBox()
  435. if (string.len(username)<3) then
  436. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3Túl rövid felhasználónév. Minimum 3 karakter legyen.", 255, 0, 0, true)
  437. exports.notifications:showBox("error", "Túl rövid felhasználónevet adtál meg. (min. 3 karakter).")
  438. elseif (string.find(username, ";", 0)) or (string.find(username, "'", 0)) or (string.find(username, "@", 0)) or (string.find(username, ",", 0)) then
  439. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3A felhasználónév nem tartalmazhat: ;,@.'", 255, 0, 0, true)
  440. exports.notifications:showBox("error", "A felhasználónévben érvénytelen karakterek vannak.")
  441. elseif (string.len(password)<6) then
  442. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3Túl rövid jelszó. Minimum 6 karakterből álljon.", 255, 0, 0, true)
  443. exports.notifications:showBox("error", "Túl rövid jelszavat adtál meg (min. 6 karakter).")
  444. elseif (string.find(password, ";", 0)) or (string.find(password, "'", 0)) or (string.find(password, "@", 0)) or (string.find(password, ",", 0)) then
  445. --outputChatBox("#5e5e5e[#abababFineMTA#5e5e5e] #c3c3c3A jelszavad nem tartalmazhat: ;,@'.", 255, 0, 0, true)
  446. exports.notifications:showBox("error", "A jelszó érvénytelen karaktereket tartalmaz.")
  447. else
  448. local vinfo = getVersion()
  449. local operatingsystem = vinfo.os
  450. triggerServerEvent("attemptLogin", getLocalPlayer(), username, password, operatingsystem)
  451. end
  452. end
  453. end
  454.  
  455. tabPanelCharacter, tabCharacter, tabAccount, tabAchievements, tabStatistics, tableAccounts, lCharacters, paneCharacters, lCreateFakepane, lCreateBG, lCreateName, lCreateImage = nil
  456. paneChars = { }
  457. tableAchievements, tableStatistics, iAchievementCount, iAchievementPointsCount = nil
  458. bEditChar = nil
  459. bDeleteChar = nil
  460. bChangeAccount = nil
  461.  
  462. sent = false
  463.  
  464. betutipus = dxCreateFont("betu.ttf", 12)
  465. function informaciokRenderelese()
  466. local width, height = guiGetScreenSize()
  467. if (bejmenu) then
  468. if (bejmenu~=1) then
  469. dxDrawImage ( 0.37*width, 0.71*height, 0.4*width, 0.6*height, 'menu.png' )
  470. end
  471. else
  472. dxDrawImage ( 0.37*width, 0.71*height, 0.4*width, 0.6*height, 'menu2.png' )
  473. end
  474. if (choosed==2) then
  475. dxDrawText ( "Karakternév: "..nejv:gsub("_", " "), 0.4*width, 0.84*height, 0.94*width, 0.2*height, tocolor ( 255, 255, 255, 255 ), 1, betutipus )
  476. dxDrawText ( "Magasság: "..mag.." cm", 0.4*width, 0.87*height, 0.94*width, 0.2*height, tocolor ( 255, 255, 255, 255 ), 1, betutipus )
  477. dxDrawText ( "Súly: "..sulyy.." kg", 0.4*width, 0.9*height, 0.94*width, 0.2*height, tocolor ( 255, 255, 255, 255 ), 1, betutipus )
  478. dxDrawText ( "Életkor: "..elet.." év", 0.4*width, 0.93*height, 0.94*width, 0.2*height, tocolor ( 255, 255, 255, 255 ), 1, betutipus )
  479. elseif (choosed==1) and (whichPK==1) then
  480. dxDrawText ( "Karakternév: "..nejv2:gsub("_", " "), 0.4*width, 0.84*height, 0.94*width, 0.2*height, tocolor ( 255, 255, 255, 255 ), 1, betutipus )
  481. dxDrawText ( "Magasság: "..mag2.." cm", 0.4*width, 0.87*height, 0.94*width, 0.2*height, tocolor ( 255, 255, 255, 255 ), 1, betutipus )
  482. dxDrawText ( "Súly: "..sulyy2.." kg", 0.4*width, 0.9*height, 0.94*width, 0.2*height, tocolor ( 255, 255, 255, 255 ), 1, betutipus )
  483. dxDrawText ( "Életkor: "..elet2.." év", 0.4*width, 0.93*height, 0.94*width, 0.2*height, tocolor ( 255, 255, 255, 255 ), 1, betutipus )
  484. end
  485. end
  486.  
  487. function valkoxUgyesvagyHurra()
  488. showCursor(true)
  489. choosed = false
  490. wDelConfirmation = false
  491. if (isElement(playerkeee1)) then
  492. destroyElement(playerkeee1)
  493. end
  494. if (isElement(playerkeee12)) then
  495. destroyElement(playerkeee12)
  496. end
  497. if (isElement(playerkeee)) then
  498. destroyElement(playerkeee)
  499. end
  500. if (isElement(playerkeee2)) then
  501. destroyElement(playerkeee2)
  502. end
  503. addEventHandler("onClientKey", getRootElement(), playerPressedKeyke)
  504. setElementPosition(getLocalPlayer(), 380.3291015625, -1963.9150390625, 7.8359375)
  505. setElementDimension(getLocalPlayer(), 65000 + getElementData(getLocalPlayer(), "gameaccountid"))
  506. setElementInterior(getLocalPlayer(), 0)
  507. setPedRotation(getLocalPlayer(), 88.29)
  508. setElementAlpha(getLocalPlayer(), 0)
  509. triggerServerEvent("karakterekLek", getLocalPlayer())
  510. end
  511.  
  512. function karakterekLekData(eredmeny, skinID, knevID, weightID, heightID, ageID, skinID2, knevID2, weightID2, heightID2, ageID2)
  513. if (eredmeny==2 or eredmeny==3) then
  514. whichPK = 1
  515. bejmenu = true
  516. choosed = 2
  517.  
  518. if not (isElement(playerkeee)) then
  519. playerkeee = createPed ( skinID, 377.8369140625, -1963.041015625, 7.8359375 )
  520. end
  521. setPedFrozen(playerkeee, true)
  522. setElementDimension(playerkeee, 65000 + getElementData(getLocalPlayer(), "gameaccountid"))
  523. setElementInterior(playerkeee, 0)
  524. setPedRotation(playerkeee, 88.29)
  525.  
  526. playeeerNev = knevID
  527. nejv = playeeerNev
  528. mag = heightID
  529. sulyy = weightID
  530. elet = ageID
  531.  
  532. playeeerNev2 = knevID2
  533. nejv2 = playeeerNev2
  534. mag2 = heightID2
  535. sulyy2 = weightID2
  536. elet2 = ageID2
  537. setPedAnimation ( playerkeee, "DANCING", "dnce_M_d")
  538.  
  539. if not (isElement(playerkeee2)) then
  540. playerkeee2 = createPed ( skinID2, 377.8349609375, -1964.3994140625, 7.8359375 )
  541. end
  542. setPedFrozen(playerkeee2, true)
  543. setElementDimension(playerkeee2, 65000 + getElementData(getLocalPlayer(), "gameaccountid"))
  544. setElementInterior(playerkeee2, 0)
  545. setPedRotation(playerkeee2, 91.59)
  546. setPedAnimation ( playerkeee2, "ped", "SEAT_idle")
  547. elseif (eredmeny==1) then
  548. whichPK = 2
  549. bejmenu = true
  550. choosed = 2
  551.  
  552. if not (isElement(playerkeee1)) then
  553. playerkeee1 = createPed ( skinID, 377.8369140625, -1963.041015625, 7.8359375 )
  554. end
  555. setPedFrozen(playerkeee1, true)
  556. setElementDimension(playerkeee1, 65000 + getElementData(getLocalPlayer(), "gameaccountid"))
  557. setElementInterior(playerkeee1, 0)
  558. setPedRotation(playerkeee1, 88.29)
  559. if not (isElement(playerkeee12)) then
  560. playerkeee12 = createPed ( 299, 377.8349609375, -1964.3994140625, 7.8359375 )
  561. end
  562. setPedFrozen(playerkeee12, true)
  563. setElementDimension(playerkeee12, 65000 + getElementData(getLocalPlayer(), "gameaccountid"))
  564. setElementInterior(playerkeee12, 0)
  565. setPedRotation(playerkeee12, 91.59)
  566. setPedAnimation ( playerkeee12, "ped", "SEAT_idle")
  567.  
  568. nejv = knevID
  569. mag = heightID
  570. sulyy = weightID
  571. elet = ageID
  572. setPedAnimation ( playerkeee1, "DANCING", "dnce_M_d")
  573. else
  574. whichPK = 3
  575. bejmenu = false
  576. if not (isElement(playerkeee12)) then
  577. playerkeee12 = createPed ( 299, 377.8349609375, -1964.3994140625, 7.8359375 )
  578. end
  579. setPedFrozen(playerkeee12, true)
  580. setElementDimension(playerkeee12, 65000 + getElementData(getLocalPlayer(), "gameaccountid"))
  581. setElementInterior(playerkeee12, 0)
  582. setPedRotation(playerkeee12, 91.59)
  583. setPedAnimation ( playerkeee12, "DANCING", "dnce_M_d")
  584. end
  585. end
  586. addEvent("karakterekLekData", true)
  587. addEventHandler("karakterekLekData", getRootElement(), karakterekLekData)
  588.  
  589. function playerPressedKeyke(button, press)
  590. if (press) then
  591. if (whichPK==1) then
  592. if (button=="arrow_r") then
  593. if (choosed==1) then
  594. setPedAnimation ( playerkeee2, "ped", "SEAT_idle")
  595. setPedAnimation ( playerkeee, "DANCING", "dnce_M_d")
  596. choosed = 2
  597. elseif (choosed==2) then
  598. setPedAnimation ( playerkeee, "ped", "SEAT_idle")
  599. setPedAnimation ( playerkeee2, "DANCING", "dnce_M_d")
  600. choosed = 1
  601. end
  602. elseif (button=="arrow_l") then
  603. if (choosed==1) then
  604. setPedAnimation ( playerkeee2, "ped", "SEAT_idle")
  605. setPedAnimation ( playerkeee, "DANCING", "dnce_M_d")
  606. choosed = 2
  607. elseif (choosed==2) then
  608. setPedAnimation ( playerkeee, "ped", "SEAT_idle")
  609. setPedAnimation ( playerkeee2, "DANCING", "dnce_M_d")
  610. choosed = 1
  611. end
  612. elseif (button=="delete") then
  613. if not (wDelConfirmation) then
  614. if (choosed==2) then
  615. charname = nejv
  616. elseif (choosed==1) then
  617. charname = nejv2
  618. end
  619. local sx, sy = guiGetScreenSize()
  620. wDelConfirmation = guiCreateWindow(sx/2 - 125,sy/2 - 50,250,100,"Törlés megerősítése", false)
  621. local lQuestion = guiCreateLabel(0.05,0.25,0.9,0.3,"Törlöd "..charname:gsub("_"," ").." nevű karaktered?",true,wDelConfirmation)
  622. guiLabelSetHorizontalAlign (lQuestion,"center",true)
  623. local bYes = guiCreateButton(0.1,0.65,0.37,0.23,"Igen",true,wDelConfirmation)
  624. local bNo = guiCreateButton(0.53,0.65,0.37,0.23,"Nem",true,wDelConfirmation)
  625. addEventHandler("onClientGUIClick", getRootElement(),
  626. function(button)
  627. if (button=="left") then
  628. if source == bYes then
  629. triggerServerEvent("deleteCharacter", getLocalPlayer(), charname)
  630. destroyElement(playerkeee1)
  631. destroyElement(playerkeee12)
  632. destroyElement(playerkeee)
  633. destroyElement(playerkeee2)
  634. destroyElement(wDelConfirmation)
  635. destroyElement(lQuestion)
  636. destroyElement(bYes)
  637. destroyElement(bNo)
  638. valkoxUgyesvagyHurra()
  639. elseif source == bNo then
  640. if wDelConfirmation then
  641. destroyElement(wDelConfirmation)
  642. wDelConfirmation = nil
  643. end
  644. end
  645. end
  646. end
  647. )
  648. end
  649. elseif (button=="enter") then
  650. if (choosed==2) then
  651. charname = nejv
  652. elseif (choosed==1) then
  653. charname = nejv2
  654. end
  655. if not (krealva) and not (wDelConfirmation) then
  656. -- fadeCamera(false, 1)
  657. setCameraInterior(0)
  658. spawned = true
  659. destroyElement(tabPanelCharacter)
  660. destroyElement(bChangeAccount)
  661. playSoundFrontEnd(32)
  662. sent = false
  663. triggerServerEvent("spawnCharacter", getLocalPlayer(), charname, getVersion().mta)
  664. removeEventHandler("onClientKey", getRootElement(), playerPressedKeyke)
  665. removeEventHandler("onClientRender", getRootElement(), informaciokRenderelese)
  666. destroyElement(playerkeee1)
  667. destroyElement(playerkeee12)
  668. destroyElement(playerkeee)
  669. destroyElement(playerkeee2)
  670. setTimer(resetTriggers, 100, 1)
  671. setTimer(showCursor, 50, 30, false)
  672.  
  673. toggleAllControls(true, true, true)
  674. guiSetInputEnabled(false)
  675. showCursor(false)
  676. showChat(true)
  677. showLogoutPanel()
  678.  
  679. --triggerEvent("showHud", getLocalPlayer())
  680. showPlayerHudComponent("weapon", false)
  681. showPlayerHudComponent("ammo", false)
  682. showPlayerHudComponent("vehicle_name", false)
  683. showPlayerHudComponent("money", false)
  684. showPlayerHudComponent("health", false)
  685. showPlayerHudComponent("armour", false)
  686. showPlayerHudComponent("breath", false)
  687. showPlayerHudComponent("radar", false)
  688. showPlayerHudComponent("area_name", false)
  689. end
  690. end
  691. elseif (whichPK==2) then
  692. if (button=="arrow_r") then
  693. if (choosed==1) then
  694. setPedAnimation ( playerkeee12, "ped", "SEAT_idle")
  695. setPedAnimation ( playerkeee1, "DANCING", "dnce_M_d")
  696. choosed = 2
  697. elseif (choosed==2) then
  698. setPedAnimation ( playerkeee1, "ped", "SEAT_idle")
  699. setPedAnimation ( playerkeee12, "DANCING", "dnce_M_d")
  700. choosed = 1
  701. bejmenu = false
  702. end
  703. elseif (button=="arrow_l") then
  704. if (choosed==1) then
  705. setPedAnimation ( playerkeee12, "ped", "SEAT_idle")
  706. setPedAnimation ( playerkeee1, "DANCING", "dnce_M_d")
  707. choosed = 2
  708. bejmenu = true
  709. elseif (choosed==2) then
  710. setPedAnimation ( playerkeee1, "ped", "SEAT_idle")
  711. setPedAnimation ( playerkeee12, "DANCING", "dnce_M_d")
  712. choosed = 1
  713. bejmenu = false
  714. end
  715. elseif (button=="enter") then
  716. if not (krealva) then
  717. if (choosed==2) then
  718. -- fadeCamera(false, 1)
  719. setCameraInterior(0)
  720. spawned = true
  721. destroyElement(tabPanelCharacter)
  722. destroyElement(bChangeAccount)
  723. playSoundFrontEnd(32)
  724. sent = false
  725. triggerServerEvent("spawnCharacter", getLocalPlayer(), nejv, getVersion().mta)
  726. removeEventHandler("onClientKey", getRootElement(), playerPressedKeyke)
  727. removeEventHandler("onClientRender", getRootElement(), informaciokRenderelese)
  728. destroyElement(playerkeee1)
  729. destroyElement(playerkeee12)
  730. destroyElement(playerkeee)
  731. destroyElement(playerkeee2)
  732. setTimer(resetTriggers, 100, 1)
  733. setTimer(showCursor, 50, 30, false)
  734.  
  735. toggleAllControls(true, true, true)
  736. guiSetInputEnabled(false)
  737. showCursor(false)
  738. showChat(true)
  739. showLogoutPanel()
  740.  
  741. --triggerEvent("showHud", getLocalPlayer())
  742. showPlayerHudComponent("weapon", false)
  743. showPlayerHudComponent("ammo", false)
  744. showPlayerHudComponent("vehicle_name", false)
  745. showPlayerHudComponent("money", false)
  746. showPlayerHudComponent("health", false)
  747. showPlayerHudComponent("armour", false)
  748. showPlayerHudComponent("breath", false)
  749. showPlayerHudComponent("radar", false)
  750. showPlayerHudComponent("area_name", false)
  751. else
  752. characterCreation()
  753. --exports.notifications:showBox("info", "asd")
  754. end
  755. end
  756. end
  757. elseif (whichPK==3) then
  758. if (button=="enter") then
  759. characterCreation()
  760. end
  761. end
  762. end
  763. end
  764.  
  765. function showCharacterUI(accounts, firstTime, needsEmail)
  766. destroyElement(loginpanel)
  767. destroyElement(bRegister)
  768. destroyElement(bLogin)
  769. destroyElement(tLogUsername)
  770. destroyElement(tLogPassword)
  771. exports.notifications:showBox("info", "Sikeresen bejelentkeztél!")
  772. sent = false
  773.  
  774. destroyElement(loginpanel1)
  775. destroyElement(loginpanel2)
  776. destroyElement(loginpanel3)
  777. destroyElement(loginpanel4)
  778. destroyElement(loginpanel5)
  779. --triggerEvent("hideHud", getLocalPlayer())
  780. if not (firstTime) then
  781. showChat(false)
  782. end
  783. setElementAlpha(getLocalPlayer(), 255)
  784.  
  785. setCameraInterior(0)
  786. --setCameraMatrix(257.20394897461, -40.330944824219, 1002.5234375, 260.32162475586, -41.565814971924, 1002.0234375)
  787. --setCameraMatrix(9.51953125, -7.349609375, 5.6171875, 2.6767578125, -0.5126953125, 3.1171875)
  788. setCameraMatrix(370.525390625, -1963.4345703125, 8.2718753814697, 377.8369140625, -1963.041015625, 7.8359375)
  789. --fadeCamera(true)
  790.  
  791.  
  792. valkoxUgyesvagyHurra()
  793. addEventHandler("onClientRender", getRootElement(), informaciokRenderelese)
  794.  
  795. --bDeleteChar = guiCreateButton(0.85, 0.05, 0.1, 0.05, "Karakter törlése", true)
  796.  
  797.  
  798. tableAccounts = accounts
  799. --iAchievementCount = achievementCount
  800. --iAchievementPointsCount = achievementPointsCount
  801. --tableAchievements = achievements
  802.  
  803. toggleAllControls(false, true, false)
  804.  
  805.  
  806. -- For character creation
  807. lCreateFakepane = guiCreateScrollPane(0.0, y-0.015, 1.0, 0.35, true, paneCharacters)
  808. lCreateBG = guiCreateStaticImage(0.0, 0.1, 0.95, 0.5, "img/charbg0.png", true, lCreateFakepane)
  809. lCreateName = guiCreateLabel(0.3, 0.1, 0.5, 0.2, "Karakter létrehozása", true, lCreateFakepane)
  810. lCreateImage = guiCreateStaticImage(0.05, 0.07, 0.2, 0.53, "img/newchar.png", true, lCreateFakepane)
  811.  
  812. guiSetFont(lCreateName, "default-bold-small")
  813.  
  814. addEventHandler("onClientGUIClick", lCreateFakepane, selectedCharacter)
  815. --addEventHandler("onClientGUIClick", lCreateBG, selectedCharacter)
  816. --addEventHandler("onClientGUIClick", lCreateName, selectedCharacter)
  817. --addEventHandler("onClientGUIClick", lCreateImage, selectedCharacter)
  818.  
  819. addEventHandler("onClientGUIDoubleClick", lCreateFakepane, dcselectedCharacter)
  820. addEventHandler("onClientGUIDoubleClick", lCreateBG, dcselectedCharacter)
  821. addEventHandler("onClientGUIDoubleClick", lCreateName, dcselectedCharacter)
  822. addEventHandler("onClientGUIDoubleClick", lCreateImage, dcselectedCharacter)
  823.  
  824. guiSetAlpha(tabPanelCharacter, 0.75)
  825. showCursor(true)
  826. setElementAlpha(getLocalPlayer(), 0)
  827. -- fadeCamera(true, 2)
  828.  
  829. if ( needsEmail ) then
  830. promptEmail()
  831. end
  832.  
  833.  
  834. guiSetInputEnabled(true)
  835. end
  836. addEvent("showCharacterSelection", true)
  837. addEventHandler("showCharacterSelection", getRootElement(), showCharacterUI)
  838.  
  839.  
  840. wEmail, lEmailInfo, lEmail, tEmail, bSubmitEmail = nil
  841. function promptEmail()
  842. guiSetAlpha(tabPanelCharacter, 0.3)
  843. guiSetEnabled(tabPanelCharacter, false)
  844.  
  845. local width, height = 400, 200
  846.  
  847. local scrWidth, scrHeight = guiGetScreenSize()
  848. local x = scrWidth/2 - (width/2)
  849. local y = scrHeight/2 - (height/2)
  850.  
  851. wEmail = guiCreateWindow(x, y, width, height, "E-mail cím szükséges!", false)
  852.  
  853. lEmailInfo = guiCreateLabel(0.02, 0.1, 0.95, 0.3, "Ide lesznek elküldve az adataid, ha elfelejtetted a jelszavadat/felhasználónevedet.", true, wEmail)
  854. guiLabelSetHorizontalAlign(lEmailInfo, "center", true)
  855. guiSetFont(lEmailInfo, "default-bold-small")
  856.  
  857. lEmail = guiCreateLabel(0.15, 0.6, 0.3, 0.3, "Email cím:", true, wEmail)
  858. guiSetFont(lEmail, "default-bold-small")
  859.  
  860. tEmail = guiCreateEdit(0.38, 0.59, 0.5, 0.1, "email@cím.hu", true, wEmail)
  861. guiSetFont(tEmail, "default-bold-small")
  862. addEventHandler("onClientGUIChanged", tEmail, checkEmail, false)
  863.  
  864. bSubmitEmail = guiCreateButton(0.15, 0.75, 0.7, 0.15, "Ok", true, wEmail)
  865. addEventHandler("onClientGUIClick", bSubmitEmail, submitEmail, false)
  866. guiSetFont(bSubmitEmail, "default-bold-small")
  867. guiSetEnabled(bSubmitEmail, false)
  868. guiSetAlpha(bSubmitEmail, 0.5)
  869. end
  870.  
  871. function submitEmail()
  872. local email = guiGetText(tEmail)
  873. cleanupEmail()
  874. guiSetAlpha(tabPanelCharacter, 0.7)
  875. guiSetEnabled(tabPanelCharacter, true)
  876.  
  877. triggerServerEvent("storeEmail", getLocalPlayer(), email)
  878. end
  879.  
  880. function checkEmail()
  881. local text = guiGetText(source)
  882.  
  883. local length = text:len()
  884. local atSymbol = text:find("@")
  885.  
  886. if ( length > 5 and atSymbol ~= nil ) then
  887. guiSetEnabled(bSubmitEmail, true)
  888. guiSetAlpha(bSubmitEmail, 1.0)
  889. else
  890. guiSetEnabled(bSubmitEmail, false)
  891. guiSetAlpha(bSubmitEmail, 0.5)
  892. end
  893. end
  894.  
  895. function cleanupEmail()
  896. if ( tabPanelCharacter ) then
  897. guiSetAlpha(tabPanelCharacter, 1.0)
  898. guiSetEnabled(tabPanelCharacter, true)
  899. end
  900.  
  901. if ( wEmail ) then
  902. destroyElement(wEmail)
  903. wEmail = nil
  904. lEmail = nil
  905. lEmailInfo = nil
  906. tEmail = nil
  907. bSubmitEmail = nil
  908. end
  909. end
  910.  
  911.  
  912. triggering = false
  913.  
  914. addEvent("onClientChooseCharacter", false)
  915. function dcselectedCharacter(button, state)
  916. if (button=="left") and (state=="up") then
  917. if (source~=lCreateFakepane) and (source~=lCreateBG) and (source~=lCreateName) and (source~=lCreateImage) then
  918. if not (triggering) then
  919. triggering = true
  920.  
  921. -- Find the key that was hit
  922. local foundkey = nil
  923. for key, value in pairs(paneChars) do
  924. for i, j in pairs(paneChars[key]) do
  925. if (j==source) then
  926. foundkey = key
  927. end
  928. end
  929. end
  930.  
  931. local charname = tostring(guiGetText(paneChars[foundkey][2]))
  932. local cked = string.find(charname, "(Deceased)")
  933.  
  934. if (cked==nil) then
  935. -- fadeCamera(false, 1)
  936. setCameraInterior(0)
  937. spawned = true
  938. destroyElement(tabPanelCharacter)
  939. destroyElement(bChangeAccount)
  940. playSoundFrontEnd(32)
  941. sent = false
  942. triggerServerEvent("spawnCharacter", getLocalPlayer(), nejv, getVersion().mta)
  943. setTimer(resetTriggers, 100, 1)
  944. setTimer(showCursor, 50, 30, false)
  945.  
  946. toggleAllControls(true, true, true)
  947. guiSetInputEnabled(false)
  948. showCursor(false)
  949. showChat(true)
  950. showLogoutPanel()
  951.  
  952. --triggerEvent("showHud", getLocalPlayer())
  953. showPlayerHudComponent("weapon", false)
  954. showPlayerHudComponent("ammo", false)
  955. showPlayerHudComponent("vehicle_name", false)
  956. showPlayerHudComponent("money", false)
  957. showPlayerHudComponent("health", false)
  958. showPlayerHudComponent("armour", false)
  959. showPlayerHudComponent("breath", false)
  960. showPlayerHudComponent("radar", false)
  961. showPlayerHudComponent("area_name", false)
  962. else
  963. triggering = false
  964. setTimer(playSoundFrontEnd, 500, 3, 20)
  965. end
  966. end
  967. else
  968. if (creation==false) then
  969. creation = true
  970. guiSetVisible(tabPanelCharacter, false)
  971. characterCreation()
  972. playSoundFrontEnd(32)
  973. end
  974. end
  975. end
  976. end
  977. addEvent("dcselectedCharacter", true)
  978. addEventHandler("dcselectedCharacter", getRootElement(), dcselectedCharacter)
  979.  
  980. function resetTriggers()
  981. triggering = false
  982. end
  983.  
  984. function unhideCursor()
  985. if not (spawned) then
  986. showCursor(true)
  987. else
  988. showCursor(false)
  989. end
  990. end
  991.  
  992. function selectedCharacter(button, state)
  993. if (button=="left") and (state=="up") then
  994. playSoundFrontEnd(32)
  995. if (source~=lCreateFakepane) and (source~=lCreateBG) and (source~=lCreateName) and (source~=lCreateImage) then
  996.  
  997.  
  998. local found = false
  999. local key = 0
  1000. for i, j in pairs(paneChars) do
  1001. local isthis = false
  1002. for k, v in pairs(paneChars[i]) do
  1003. if (v==source) then
  1004. isthis = true
  1005. found = true
  1006. key = i
  1007. end
  1008. end
  1009.  
  1010. guiBringToFront(paneChars[i][2])
  1011. guiBringToFront(paneChars[i][3])
  1012. guiBringToFront(paneChars[i][4])
  1013. guiBringToFront(paneChars[i][5])
  1014. guiBringToFront(paneChars[i][6])
  1015. guiBringToFront(paneChars[i][7])
  1016.  
  1017. guiBringToFront(lCreateBG)
  1018. guiBringToFront(lCreateFakepane)
  1019. guiBringToFront(lCreateName)
  1020. guiBringToFront(lCreateImage)
  1021. if not (isthis) then
  1022. guiStaticImageLoadImage(paneChars[i][1], "img/charbg0.png")
  1023. end
  1024. end
  1025.  
  1026.  
  1027.  
  1028. if (found) then
  1029. guiStaticImageLoadImage(paneChars[key][1], "img/charbg1.png")
  1030. selectedChar = key
  1031. guiStaticImageLoadImage(lCreateBG, "img/charbg0.png")
  1032.  
  1033. local skinID = tonumber(tableAccounts[key][9])
  1034. local cked = tonumber(tableAccounts[key][3])
  1035. -- nejv = tableAccounts[key][2]
  1036. setElementModel(getLocalPlayer(), skinID)
  1037. -- setElementPosition(getLocalPlayer(), 1922.552734375, -2407.791015625, 13.53911781311)
  1038. -- setElementInterior(getLocalPlayer(), 0)
  1039. -- setPedRotation(getLocalPlayer(), 180)
  1040. local rand = math.random(1,6)
  1041. if (rand==1) then
  1042. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "shift", -1, true, true, true)
  1043. elseif (rand==2) then
  1044. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "shldr", -1, true, true, true)
  1045. elseif (rand==3) then
  1046. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "stretch", -1, true, true, true)
  1047. elseif (rand==4) then
  1048. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "strleg", -1, true, true, true)
  1049. elseif (rand==5) then
  1050. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "time", -1, true, true, true)
  1051. elseif (rand==6) then
  1052. exports.global:applyAnimation(getLocalPlayer(), "ON_LOOKERS", "wave_loop", -1, true, true, true)
  1053. end
  1054.  
  1055. setElementAlpha(getLocalPlayer(), 0)
  1056.  
  1057. if (cked==nil) then
  1058. --if (skinID==0) then -- Load CJ's clothes etc.
  1059. -- local charname = tableAccounts[key][2]
  1060. -- triggerServerEvent("spawnClothes", getLocalPlayer(), charname)
  1061. --end
  1062. fading = true
  1063.  
  1064. if (isTimer(tmrFadeIn)) then killTimer(tmrFadeIn) end
  1065.  
  1066. tmrHideMouse = setTimer(unhideCursor, 200, 1)
  1067. tmrFadeIn = setTimer(fadePlayerIn, 50, 10)
  1068.  
  1069. guiSetVisible(bEditChar, true)
  1070. guiSetVisible(bDeleteChar, true)
  1071. else
  1072. local x, y, z = getElementPosition(getLocalPlayer())
  1073. setElementAlpha(getLocalPlayer(), 0)
  1074. tmrFadeIn = setTimer(fadePlayerIn, 50, 10)
  1075. exports.global:applyAnimation(getLocalPlayer(), "WUZI", "CS_Dead_Guy", -1, true, false, true)
  1076.  
  1077. guiSetVisible(bEditChar, false)
  1078. guiSetVisible(bDeleteChar, false)
  1079. end
  1080. end
  1081.  
  1082. else
  1083. if (isTimer(tmrFadeIn)) then killTimer(tmrFadeIn) end
  1084.  
  1085. for key, value in ipairs(paneChars) do
  1086. guiStaticImageLoadImage(paneChars[key][1], "img/charbg0.png")
  1087. end
  1088. selectedChar = nil
  1089.  
  1090. guiBringToFront(lCreateBG)
  1091. guiBringToFront(lCreateFakepane)
  1092. guiBringToFront(lCreateName)
  1093. guiBringToFront(lCreateImage)
  1094. guiStaticImageLoadImage(lCreateBG, "img/charbg1.png")
  1095.  
  1096. -- Player effect
  1097. setElementModel(getLocalPlayer(), 264)
  1098. -- setElementPosition(getLocalPlayer(), 1922.552734375, -2407.791015625, 13.53911781311)
  1099. --setElementInterior(getLocalPlayer(), 0)
  1100. -- setPedRotation(getLocalPlayer(), 180)
  1101. local rand = math.random(1,6)
  1102. if (rand==1) then
  1103. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "shift", -1, true, false, true)
  1104. elseif (rand==2) then
  1105. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "shldr", -1, true, false, true)
  1106. elseif (rand==3) then
  1107. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "stretch", -1, true, false, true)
  1108. elseif (rand==4) then
  1109. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "strleg", -1, true, false, true)
  1110. elseif (rand==5) then
  1111. exports.global:applyAnimation(getLocalPlayer(), "PLAYIDLES", "time", -1, true, false, true)
  1112. elseif (rand==6) then
  1113. exports.global:applyAnimation(getLocalPlayer(), "ON_LOOKERS", "wave_loop", -1, true, false, true)
  1114. end
  1115.  
  1116. -- optomize this
  1117. --triggerServerEvent("stripPlayer", getLocalPlayer())
  1118. setElementAlpha(getLocalPlayer(), 0)
  1119.  
  1120.  
  1121. fading = true
  1122.  
  1123. tmrHideMouse = setTimer(unhideCursor, 200, 1)
  1124. tmrFadeIn = setTimer(fadePlayerIn, 50, 10)
  1125.  
  1126. guiSetVisible(bEditChar, false)
  1127. guiSetVisible(bDeleteChar, false)
  1128. end
  1129. end
  1130. end
  1131.  
  1132. -- /////////////////////////////// CHARACTER CREATION ////////////////////////////////////
  1133. tabPanelCreation, bCancel, bNext, lType, rNormal, rCJ = nil
  1134.  
  1135. -- Step 1
  1136. fatness = 0
  1137. muscles = 0
  1138. name = ""
  1139.  
  1140. tabCreationOne, lName, tName, lRestrictions, bRotate = nil
  1141.  
  1142. creation = false
  1143.  
  1144. function characterCreation()
  1145. local width, height = 400, 400
  1146. bejmenu = 1
  1147. krealva = 1
  1148. local scrWidth, scrHeight = guiGetScreenSize()
  1149. local x = scrWidth/2 - (width/2)
  1150. local y = scrHeight/2 - (height/2)
  1151.  
  1152. tabPanelCreation = guiCreateTabPanel(5, y, width, height, false)
  1153. tabCreationOne = guiCreateTab("Karakterlétrehozás: 1. lépés", tabPanelCreation)
  1154. guiSetAlpha(tabPanelCreation, 0.75)
  1155.  
  1156. rot = 120.0
  1157. -- addEventHandler("onClientRender", getRootElement(), moveCameraToCreation)
  1158. setElementPosition(getLocalPlayer(), 375.61328125, -1963.7919921875, 7.8359375)
  1159. setElementDimension(getLocalPlayer(), 65000 + getElementData(getLocalPlayer(), "gameaccountid"))
  1160. setElementAlpha(getLocalPlayer(), 255)
  1161.  
  1162. setCameraMatrix(370.525390625, -1963.4345703125, 8.2718753814697, 377.8369140625, -1963.041015625, 7.8359375)
  1163. setCameraInterior(0)
  1164.  
  1165. bNext = guiCreateButton(0.05, 0.75, 0.9, 0.1, "Tovább", true, tabCreationOne)
  1166. addEventHandler("onClientGUIClick", bNext, loadNextPage, false)
  1167.  
  1168. bCancel = guiCreateButton(0.05, 0.85, 0.9, 0.1, "Mégse", true, tabCreationOne)
  1169. addEventHandler("onClientGUIClick", bCancel, cancelCreation, false)
  1170.  
  1171. -- Step 1 tab contents
  1172. lName = guiCreateLabel(0.1, 0.05, 0.25, 0.1, "Karakternév:", true, tabCreationOne)
  1173. tName = guiCreateEdit(0.35, 0.05, 0.4, 0.05, "Lompos Frigyes", true, tabCreationOne)
  1174.  
  1175. addEventHandler("onClientGUIChanged", tName, checkName)
  1176. guiSetFont(lName, "default-bold-small")
  1177.  
  1178. lRestrictions = guiCreateLabel(0.0, 0.105, 1.0, 0.3, "Szempontok: \n\n - A nevedet szóközzel válaszd el. \n - A valóságban is létező nevet adj meg \n - Maximum 23 karakter hosszú lehet \n - Legyen egy vezetéknév és egy keresztnév \n - Nem tartalmazhat számokat \n - Nem tartalmazhat speciális karaktereket. pl: $@';", true, tabCreationOne)
  1179. guiLabelSetColor(lRestrictions, 0, 255, 0)
  1180. guiLabelSetHorizontalAlign(lRestrictions, "center")
  1181. guiSetFont(lRestrictions,"default-bold-small")
  1182.  
  1183. showCursor(true)
  1184. guiSetInputEnabled(true)
  1185. end
  1186.  
  1187. function spawnNormal(button, state)
  1188. if (button=="left") and (state=="up") then
  1189. skinint = math.random(1, #blackMales)
  1190. skin = blackMales[skinint]
  1191. setElementModel(getLocalPlayer(), skin)
  1192. curskin = skinint
  1193. end
  1194. end
  1195.  
  1196. function checkName()
  1197. if (source==tName) then
  1198. local theText = guiGetText(source)
  1199.  
  1200. local foundSpace, valid = false, true
  1201. local lastChar, current = ' ', ''
  1202. for i = 1, #theText do
  1203. local char = theText:sub( i, i )
  1204. if char == ' ' then -- it's a space
  1205. if i == #theText then -- space at the end of name is not allowed
  1206. valid = false
  1207. break
  1208. else
  1209. foundSpace = true -- we have at least two name parts
  1210. end
  1211.  
  1212. if #current < 2 then -- check if name's part is at least 2 chars
  1213. valid = false
  1214. break
  1215. end
  1216. current = ''
  1217. elseif lastChar == ' ' then -- this char follows a space, we need a capital letter
  1218. if char < 'A' or char > 'Z' then
  1219. valid = false
  1220. break
  1221. end
  1222. current = current .. char
  1223. elseif ( char >= 'a' and char <= 'z' ) or ( char >= 'A' and char <= 'Z' ) then -- can have letters anywhere in the name
  1224. current = current .. char
  1225. else -- unrecognized char (numbers, special chars)
  1226. valid = false
  1227. break
  1228. end
  1229. lastChar = char
  1230. end
  1231.  
  1232. if valid and foundSpace and #theText < 22 and #current >= 2 then
  1233. guiLabelSetColor(lRestrictions, 0, 255, 0)
  1234. guiSetEnabled(bNext, true)
  1235. else
  1236. guiLabelSetColor(lRestrictions, 255, 0, 0)
  1237. guiSetEnabled(bNext, false)
  1238. end
  1239. end
  1240. end
  1241.  
  1242. function cancelCreation(button, state)
  1243. --triggerServerEvent("stripPlayer", getLocalPlayer())
  1244. removeEventHandler("onClientRender", getRootElement(), moveCameraToCreation)
  1245. krealva = false
  1246. if (isElement(bRotate)) then
  1247. destroyElement(bRotate)
  1248. end
  1249. bRotate = nil
  1250. local playerid = getElementData(getLocalPlayer(), "playerid")
  1251. --[[ setElementInterior(getLocalPlayer(), 14)
  1252. setElementDimension(getLocalPlayer(), 65000+playerid)
  1253. setElementPosition(getLocalPlayer(), 258.43417358398, -41.489139556885, 1002.0234375)
  1254. setPedRotation(getLocalPlayer(), 268.19247436523) --]]
  1255.  
  1256. setElementPosition(getLocalPlayer(), 380.3291015625, -1963.9150390625, 7.8359375)
  1257. setElementDimension(getLocalPlayer(), 65000 + getElementData(getLocalPlayer(), "gameaccountid"))
  1258. setElementInterior(getLocalPlayer(), 0)
  1259. setPedRotation(getLocalPlayer(), 88.29)
  1260. setElementAlpha(getLocalPlayer(), 0)
  1261.  
  1262. creation = false
  1263.  
  1264. if (isElement(tabPanelCreation)) then
  1265. destroyElement(tabPanelCreation)
  1266. end
  1267. tabPanelCreation = nil
  1268.  
  1269.  
  1270. setCameraMatrix(370.525390625, -1963.4345703125, 8.2718753814697, 377.8369140625, -1963.041015625, 7.8359375)
  1271. setCameraInterior(0)
  1272. --fadeCamera(true)
  1273.  
  1274. --addEventHandler("onClientRender", getRootElement(), moveCameraToCreation)
  1275. guiSetVisible(tabPanelCharacter, true)
  1276. end
  1277.  
  1278. rot = 120.0
  1279. function moveCameraToCreation()
  1280. local pX, pY, pZ = getElementPosition(getLocalPlayer())
  1281. local x = pX + math.cos(math.deg(rot))*2
  1282. local y = pY + math.sin(math.deg(rot))*2
  1283.  
  1284. local sight, eX, eY, eZ = processLineOfSight(pX, pY, pZ, x, y, pZ+1, true, true, false)
  1285.  
  1286. -- if (sight) then
  1287. -- setCameraMatrix(eX, eY, eZ, pX, pY, pZ+0.2)
  1288. -- else
  1289. -- setCameraMatrix(x, y, pZ+1, pX, pY, pZ+0.2)
  1290. -- end
  1291. setElementPosition(getLocalPlayer(), 375.61328125, -1963.7919921875, 7.8359375)
  1292. setElementDimension(getLocalPlayer(), 65000 + getElementData(getLocalPlayer(), "gameaccountid"))
  1293. setElementAlpha(getLocalPlayer(), 255)
  1294.  
  1295. setCameraMatrix(370.525390625, -1963.4345703125, 8.2718753814697, 377.8369140625, -1963.041015625, 7.8359375)
  1296. setCameraInterior(0)
  1297. --fadeCamera(true)
  1298.  
  1299. rot = rot + 0.0001
  1300. end
  1301.  
  1302. function loadNextPage(button, state)
  1303. if (button=="left") and (state=="up") then
  1304. triggerServerEvent("doesCharacterExist", getLocalPlayer(), guiGetText(tName))
  1305. end
  1306. end
  1307.  
  1308. function nextPage(exists)
  1309. if (exists) then
  1310. guiSetText(tName, "Ez a név már foglalt!")
  1311. guiLabelSetColor(lRestrictions, 255, 0, 0)
  1312. guiSetEnabled(bNext, false)
  1313. elseif not (exists) then
  1314. --local CJ = guiRadioButtonGetSelected(rCJ)
  1315.  
  1316. name = guiGetText(tName)
  1317. destroyElement(tabCreationOne)
  1318. tabCreationOne = nil
  1319.  
  1320. destroyElement(tabPanelCreation)
  1321. tabPanelCreation = nil
  1322.  
  1323. --if (CJ) then
  1324. -- characterCreationStep2CJ()
  1325. --else
  1326. characterCreationStep2Normal()
  1327. --end
  1328. end
  1329. end
  1330. addEvent("characterNextStep", true )
  1331. addEventHandler("characterNextStep", getRootElement(), nextPage)
  1332.  
  1333. tabCreationTwo, fatInc, fatDec, lFat, lFatDesc, muscleInc, muscleDec, lMuscle, lMuscleDesc = nil
  1334. lDescriptionNormal, lGender, rMale, rFemale, lSkinColour, rBlack, rWhite, rAsian, tempPane, lChangeSkin, nextSkin, prevSkin = nil
  1335. gender = 0
  1336. skincolour = 1
  1337. curskin = 0
  1338.  
  1339. --blackMales = {7, 14, 15, 16, 17, 18, 20, 21, 22, 24, 25, 28, 35, 36, 50, 51, 66, 67, 78, 79, 80, 83, 84, 102, 103, 104, 105, 106, 107, 134, 136, 142, 143, 144, 156, 163, 166, 168, 176, 180, 182, 183, 185, 220, 221, 222, 249, 253, 260, 262 }
  1340. blackMales = {9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 57, 59, 61, 66, 67, 85}
  1341. --whiteMales = {23, 26, 27, 29, 30, 32, 33, 34, 35, 36, 37, 38, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 58, 59, 60, 61, 62, 68, 70, 72, 73, 78, 81, 82, 94, 95, 96, 97, 98, 99, 100, 101, 108, 109, 110, 111, 112, 113, 114, 115, 116, 120, 121, 122, 124, 125, 126, 127, 128, 132, 133, 135, 137, 146, 147, 153, 154, 155, 158, 159, 160, 161, 162, 164, 165, 170, 171, 173, 174, 175, 177, 179, 181, 184, 186, 187, 188, 189, 200, 202, 204, 206, 209, 212, 213, 217, 223, 230, 234, 235, 236, 240, 241, 242, 247, 248, 250, 252, 254, 255, 258, 259, 261, 264 }
  1342. whiteMales = {9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 57, 59, 61, 66, 67, 85}
  1343. --asianMales = {49, 57, 58, 59, 60, 117, 118, 120, 121, 122, 123, 170, 186, 187, 203, 210, 227, 228, 229}
  1344. asianMales = {9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 57, 59, 61, 66, 67, 85}
  1345. --blackFemales = {9, 10, 11, 12, 13, 40, 41, 63, 64, 69, 76, 91, 139, 148, 190, 195, 207, 215, 218, 219, 238, 243, 244, 245, 256 }
  1346. blackFemales = {9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 57, 59, 61, 66, 67, 85}
  1347. --whiteFemales = {12, 31, 38, 39, 40, 41, 53, 54, 55, 56, 64, 75, 77, 85, 86, 87, 88, 89, 90, 91, 92, 93, 129, 130, 131, 138, 140, 145, 150, 151, 152, 157, 172, 178, 192, 193, 194, 196, 197, 198, 199, 201, 205, 211, 214, 216, 224, 225, 226, 231, 232, 233, 237, 243, 246, 251, 257, 263 }
  1348. whiteFemales = {9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 57, 59, 61, 66, 67, 85}
  1349. --asianFemales = {38, 53, 54, 55, 56, 88, 141, 169, 178, 224, 225, 226, 263}
  1350. asianFemales = {9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 57, 59, 61, 66, 67, 85}
  1351.  
  1352. function characterCreationStep2Normal()
  1353. gender = 0
  1354. skincolour = 1
  1355. curskin = 0
  1356.  
  1357. local width, height = 400, 400
  1358.  
  1359. local scrWidth, scrHeight = guiGetScreenSize()
  1360. local x = scrWidth/2 - (width/2)
  1361. local y = scrHeight/2 - (height/2)
  1362.  
  1363. tabPanelCreation = guiCreateTabPanel(5, y, width, height, false)
  1364. tabCreationTwo = guiCreateTab("Karakterlétrehozás: 2. lépés", tabPanelCreation)
  1365. guiSetAlpha(tabPanelCreation, 0.75)
  1366.  
  1367. lDescriptionNormal = guiCreateLabel(0.1, 0.025, 0.9, 0.15, "Válassz kinézetet", true, tabCreationTwo)
  1368. guiSetFont(lDescriptionNormal, "sa-header")
  1369.  
  1370. --/////////////
  1371. -- GENDER
  1372. --/////////////
  1373. lGender = guiCreateLabel(0.1, 0.225, 0.25, 0.15, "Nem:", true, tabCreationTwo)
  1374. guiSetFont(lGender, "default-bold-small")
  1375.  
  1376. rMale = guiCreateRadioButton(0.4, 0.225, 0.15, 0.05, "Férfi", true, tabCreationTwo)
  1377. rFemale = guiCreateRadioButton(0.65, 0.225, 0.15, 0.05, "Nő", true, tabCreationTwo)
  1378. guiRadioButtonSetSelected(rMale, true)
  1379. addEventHandler("onClientGUIClick", rMale, normalSetMale, false)
  1380. addEventHandler("onClientGUIClick", rFemale, normalSetFemale, false)
  1381.  
  1382. --/////////////
  1383. -- SKIN COLOUR
  1384. --/////////////
  1385. tempPane = guiCreateScrollPane(0.05, 0.35, 0.9, 0.4, true, tabCreationTwo)
  1386. lSkinColour = guiCreateLabel(0.1, 0.375, 0.25, 0.15, "Bőrszín:", true, tempPane)
  1387. guiSetFont(lSkinColour, "default-bold-small")
  1388.  
  1389. rBlack = guiCreateRadioButton(0.4, 0.385, 0.15, 0.15, "Fekete", true, tempPane)
  1390. rWhite = guiCreateRadioButton(0.6, 0.385, 0.15, 0.15, "Fehér", true, tempPane)
  1391. rAsian = guiCreateRadioButton(0.8, 0.385, 0.15, 0.15, "Ázsiai", true, tempPane)
  1392. guiRadioButtonSetSelected(rWhite, true)
  1393. addEventHandler("onClientGUIClick", rBlack, normalSetBlack, true, false, false)
  1394. addEventHandler("onClientGUIClick", rWhite, normalSetWhite, false, true, false)
  1395. addEventHandler("onClientGUIClick", rAsian, normalSetAsian, false, false, true)
  1396.  
  1397. --/////////////
  1398. -- SKIN
  1399. --/////////////
  1400. lChangeSkin = guiCreateLabel(0.1, 0.535, 0.25, 0.2, "Skin:", true, tempPane)
  1401. guiSetFont(lChangeSkin, "default-bold-small")
  1402.  
  1403. prevSkin = guiCreateButton(0.3, 0.525, 0.2, 0.15, "<-", true, tempPane)
  1404. addEventHandler("onClientGUIClick", prevSkin, adjustNormalSkin, false)
  1405.  
  1406. nextSkin = guiCreateButton(0.6, 0.525, 0.2, 0.15, "->", true, tempPane)
  1407. addEventHandler("onClientGUIClick", nextSkin, adjustNormalSkin, false)
  1408.  
  1409. -- NEXT/BACK
  1410. bNext = guiCreateButton(0.05, 0.75, 0.9, 0.1, "Tovább", true, tabCreationTwo)
  1411. addEventHandler("onClientGUIClick", bNext, characterCreationStep5, false)
  1412.  
  1413. bCancel = guiCreateButton(0.05, 0.85, 0.9, 0.1, "Mégse", true, tabCreationTwo)
  1414. addEventHandler("onClientGUIClick", bCancel, cancelCreation, false)
  1415. end
  1416.  
  1417. function adjustNormalSkin(button, state)
  1418. if (button=="left") and (state=="up") then
  1419. if (source==nextSkin) then
  1420. local array = nil
  1421. if (skincolour==0) then -- BLACK
  1422. if (gender==0) then -- BLACK MALE
  1423. array = blackMales
  1424. elseif (gender==1) then -- BLACK FEMALE
  1425. array = blackFemales
  1426. end
  1427. elseif (skincolour==1) then -- WHITE
  1428. if (gender==0) then -- WHITE MALE
  1429. array = whiteMales
  1430. elseif (gender==1) then -- WHITE FEMALE
  1431. array = whiteFemales
  1432. end
  1433. elseif (skincolour==2) then -- ASIAN
  1434. if (gender==0) then -- ASIAN MALE
  1435. array = asianMales
  1436. elseif (gender==1) then -- ASIAN FEMALE
  1437. array = asianFemales
  1438. end
  1439. end
  1440.  
  1441. -- Get the next skin
  1442. if (curskin==#array) then
  1443. curskin = 1
  1444. skin = array[1]
  1445. setElementModel(getLocalPlayer(), tonumber(skin))
  1446. else
  1447. curskin = curskin + 1
  1448. skin = array[curskin]
  1449. setElementModel(getLocalPlayer(), tonumber(skin))
  1450. end
  1451. elseif (source==prevSkin) then
  1452. local array = nil
  1453. if (skincolour==0) then -- BLACK
  1454. if (gender==0) then -- BLACK MALE
  1455. array = blackMales
  1456. elseif (gender==1) then -- BLACK FEMALE
  1457. array = blackFemales
  1458. end
  1459. elseif (skincolour==1) then -- WHITE
  1460. if (gender==0) then -- WHITE MALE
  1461. array = whiteMales
  1462. elseif (gender==1) then -- WHITE FEMALE
  1463. array = whiteFemales
  1464. end
  1465. elseif (skincolour==2) then -- ASIAN
  1466. if (gender==0) then -- ASIAN MALE
  1467. array = asianMales
  1468. elseif (gender==1) then -- ASIAN FEMALE
  1469. array = asianFemales
  1470. end
  1471. end
  1472.  
  1473. -- Get the next skin
  1474. if (curskin==1) then
  1475. curskin = #array
  1476. skin = array[1]
  1477. setElementModel(getLocalPlayer(), tonumber(skin))
  1478. else
  1479. curskin = curskin - 1
  1480. skin = array[curskin]
  1481. setElementModel(getLocalPlayer(), tonumber(skin))
  1482. end
  1483.  
  1484. end
  1485. end
  1486. end
  1487.  
  1488. function normalSetMale(button, state)
  1489. if (source==rMale) and (button=="left") and (state=="up") then
  1490. gender = 0
  1491. generateSkin()
  1492. end
  1493. end
  1494.  
  1495. function normalSetFemale(button, state)
  1496. if (source==rFemale) and (button=="left") and (state=="up") then
  1497. gender = 1
  1498. generateSkin()
  1499. end
  1500. end
  1501.  
  1502. function normalSetBlack(button, state)
  1503. if (source==rBlack) and (button=="left") and (state=="up") then
  1504. skincolour = 0
  1505. generateSkin()
  1506. end
  1507. end
  1508.  
  1509. function normalSetWhite(button, state)
  1510. if (source==rWhite) and (button=="left") and (state=="up") then
  1511. skincolour = 1
  1512. generateSkin()
  1513. end
  1514. end
  1515.  
  1516. function normalSetAsian(button, state)
  1517. if (source==rAsian) and (button=="left") and (state=="up") then
  1518. skincolour = 2
  1519. generateSkin()
  1520. end
  1521. end
  1522.  
  1523. function generateSkin()
  1524. local skinint = 0
  1525. if (gender==0) then -- MALE
  1526. if (skincolour==0) then -- BLACK
  1527. skinint = math.random(1, #blackMales)
  1528. skin = blackMales[skinint]
  1529. setElementModel(getLocalPlayer(), skin)
  1530. elseif (skincolour==1) then -- WHITE
  1531. skinint = math.random(1, #whiteMales)
  1532. skin = whiteMales[skinint]
  1533. setElementModel(getLocalPlayer(), skin)
  1534. elseif (skincolour==2) then -- ASIAN
  1535. skinint = math.random(1, #asianMales)
  1536. skin = asianMales[skinint]
  1537. setElementModel(getLocalPlayer(), skin)
  1538. end
  1539. elseif (gender==1) then -- FEMALE
  1540. if (skincolour==0) then -- BLACK
  1541. skinint = math.random(1, #blackFemales)
  1542. skin = blackFemales[skinint]
  1543. setElementModel(getLocalPlayer(), skin)
  1544. elseif (skincolour==1) then -- WHITE
  1545. skinint = math.random(1, #whiteFemales)
  1546. skin = whiteFemales[skinint]
  1547. setElementModel(getLocalPlayer(), skin)
  1548. elseif (skincolour==2) then -- ASIAN
  1549. skinint = math.random(1, #asianFemales)
  1550. skin = asianFemales[skinint]
  1551. setElementModel(getLocalPlayer(), skin)
  1552. end
  1553. end
  1554. curskin = skinint
  1555. end
  1556.  
  1557. function characterCreationStep5(button, state)
  1558. if (button=="left") and (state=="up") and (source==bNext) then
  1559. -- Cleanup
  1560. if (tabCreationFour) then
  1561. destroyElement(tabCreationFour)
  1562. tabCreationFour = nil
  1563. elseif (tabCreationTwo) then
  1564. destroyElement(tabCreationTwo)
  1565. tabCreationTwo = nil
  1566. end
  1567. destroyElement(tabPanelCreation)
  1568. tabPanelCreation = nil
  1569.  
  1570. local width, height = 400, 400
  1571.  
  1572. local scrWidth, scrHeight = guiGetScreenSize()
  1573. local x = scrWidth/2 - (width/2)
  1574. local y = scrHeight/2 - (height/2)
  1575.  
  1576. tabPanelCreation = guiCreateTabPanel(5, y, width, height, false)
  1577. tabCreationFive = guiCreateTab("Karakterlétrehozás: Majdnem kész!", tabPanelCreation)
  1578. guiSetAlpha(tabPanelCreation, 0.75)
  1579.  
  1580. lInformation = guiCreateLabel(0.1, 0.025, 0.8, 0.15, "Információ", true, tabCreationFive)
  1581. guiSetFont(lInformation, "sa-header")
  1582.  
  1583. --/////////////
  1584. -- HEIGHT
  1585. --/////////////
  1586. lHeight = guiCreateLabel(0.1, 0.145, 0.5, 0.15, "Magasság (100 és 200 cm között):", true, tabCreationFive)
  1587. guiSetFont(lHeight, "default-bold-small")
  1588. guiLabelSetColor(lHeight, 0, 255, 0)
  1589.  
  1590. tHeight = guiCreateEdit(0.635, 0.143, 0.15, 0.05, "170", true, tabCreationFive)
  1591. addEventHandler("onClientGUIChanged", tHeight, checkInput)
  1592.  
  1593. --/////////////
  1594. -- WEIGHT
  1595. --/////////////
  1596. lWeight = guiCreateLabel(0.1, 0.215, 0.5, 0.15, "Súly (40 és 200 kg között):", true, tabCreationFive)
  1597. guiSetFont(lWeight, "default-bold-small")
  1598. guiLabelSetColor(lWeight, 0, 255, 0)
  1599.  
  1600. tWeight = guiCreateEdit(0.635, 0.213, 0.15, 0.05, "70", true, tabCreationFive)
  1601. addEventHandler("onClientGUIChanged", tWeight, checkInput)
  1602.  
  1603. --/////////////
  1604. -- AGE
  1605. --/////////////
  1606. lAge = guiCreateLabel(0.1, 0.285, 0.5, 0.15, "Életkor (18 és 80 év között):", true, tabCreationFive)
  1607. guiSetFont(lAge, "default-bold-small")
  1608. guiLabelSetColor(lAge, 0, 255, 0)
  1609.  
  1610. tAge = guiCreateEdit(0.635, 0.283, 0.15, 0.05, "24", true, tabCreationFive)
  1611. addEventHandler("onClientGUIChanged", tAge, checkInput)
  1612.  
  1613. --/////////////
  1614. -- DESCRIPTION
  1615. --/////////////
  1616. lCharDesc = guiCreateLabel(0.1, 0.385, 0.8, 0.15, "Karakter leírása (30 és 100 karakter között):", true, tabCreationFive)
  1617. guiSetFont(lCharDesc, "default-bold-small")
  1618. guiLabelSetColor(lCharDesc, 0, 255, 0)
  1619.  
  1620. tCharDesc = guiCreateMemo(0.1, 0.455, 0.8, 0.25, "A karaktered vizuális megjelenése, stb.", true, tabCreationFive)
  1621. addEventHandler("onClientGUIChanged", tCharDesc, checkInput)
  1622.  
  1623. --/////////////
  1624. -- NEXT/BACK
  1625. --/////////////
  1626. bNext = guiCreateButton(0.05, 0.75, 0.9, 0.1, "Tovább", true, tabCreationFive)
  1627. addEventHandler("onClientGUIClick", bNext, characterCreationStep6, false)
  1628.  
  1629. bCancel = guiCreateButton(0.05, 0.85, 0.9, 0.1, "Mégse", true, tabCreationFive)
  1630. addEventHandler("onClientGUIClick", bCancel, cancelCreation, false)
  1631. end
  1632. end
  1633.  
  1634. heightvalid = true
  1635. weightvalid = true
  1636. descvalid = true
  1637. agevalid = true
  1638. function checkInput()
  1639. if (source==tHeight) then
  1640. if not (tostring(type(tonumber(guiGetText(tHeight)))) == "number") then
  1641. guiLabelSetColor(lHeight, 255, 0, 0)
  1642. heightvalid = false
  1643. elseif (tonumber(guiGetText(tHeight))<100) or (tonumber(guiGetText(tHeight))>200) then
  1644. guiLabelSetColor(lHeight, 255, 0, 0)
  1645. heightvalid = false
  1646. else
  1647. guiLabelSetColor(lHeight, 0, 255, 0)
  1648. heightvalid = true
  1649. end
  1650. elseif (source==tWeight) then
  1651. if not (tostring(type(tonumber(guiGetText(tWeight)))) == "number") then
  1652. guiLabelSetColor(lWeight, 255, 0, 0)
  1653. weightvalid = false
  1654. elseif (tonumber(guiGetText(tWeight))<40) or (tonumber(guiGetText(tWeight))>200) then
  1655. guiLabelSetColor(lWeight, 255, 0, 0)
  1656. weightvalid = false
  1657. else
  1658. guiLabelSetColor(lWeight, 0, 255, 0)
  1659. weightvalid = true
  1660. end
  1661. elseif (source==tAge) then
  1662. if not (tostring(type(tonumber(guiGetText(tAge)))) == "number") then
  1663. guiLabelSetColor(lAge, 255, 0, 0)
  1664. agevalid = false
  1665. elseif (tonumber(guiGetText(tAge))<18) or (tonumber(guiGetText(tAge))>80) then
  1666. guiLabelSetColor(lAge, 255, 0, 0)
  1667. agevalid = false
  1668. else
  1669. guiLabelSetColor(lAge, 0, 255, 0)
  1670. agevalid = true
  1671. end
  1672. elseif (source==tCharDesc) then
  1673. if (string.len(guiGetText(tCharDesc))<30) or (string.len(guiGetText(tCharDesc))>100) then
  1674. guiLabelSetColor(lCharDesc, 255, 0, 0)
  1675. descvalid = false
  1676. else
  1677. guiLabelSetColor(lCharDesc, 0, 255, 0)
  1678. descvalid = true
  1679. end
  1680. end
  1681. end
  1682.  
  1683. tabCreationFive, lTransport, rTrain, rBus, rAeroplane, rBoat, transObject, transVehicle, lastSelected, anim = nil
  1684. language = 1
  1685. function characterCreationStep6(button, state)
  1686. if (button=="left") and (state=="up") and (source==bNext) then
  1687. if (heightvalid) and (weightvalid) and (descvalid) and (agevalid) then
  1688. height = guiGetText(tHeight)
  1689. weight = guiGetText(tWeight)
  1690. age = guiGetText(tAge)
  1691. description = guiGetText(tCharDesc)
  1692.  
  1693. -- Cleanup
  1694. destroyElement(tabCreationFive)
  1695. tabCreationFive = nil
  1696. destroyElement(tabPanelCreation)
  1697. tabPanelCreation = nil
  1698.  
  1699. local width, height = 400, 400
  1700.  
  1701. local scrWidth, scrHeight = guiGetScreenSize()
  1702. local x = scrWidth/2 - (width/2)
  1703. local y = scrHeight/2 - (height/2)
  1704.  
  1705. tabPanelCreation = guiCreateTabPanel(5, y, width, height, false)
  1706. tabCreationSix = guiCreateTab("Karakterlétrehozás: Befejezés!", tabPanelCreation)
  1707. guiSetAlpha(tabPanelCreation, 0.75)
  1708.  
  1709. lInformation = guiCreateLabel(0.1, 0.025, 0.8, 0.15, "A kezdet...", true, tabCreationSix)
  1710. guiSetFont(lInformation, "sa-header")
  1711.  
  1712. --/////////////
  1713. -- TRANSPORT
  1714. --/////////////
  1715. lTransport = guiCreateLabel(0.1, 0.145, 0.8, 0.15, "Érkezés Fine Citybe: Vonattal", true, tabCreationSix)
  1716. guiSetFont(lTransport, "default-bold-small")
  1717.  
  1718. -- rAeroplane = guiCreateRadioButton(0.15, 0.2, 0.6, 0.05, "Repülővel", true, tabCreationSix)
  1719. -- rBus = guiCreateRadioButton(0.15, 0.25, 0.6, 0.05, "Busszal", true, tabCreationSix)
  1720.  
  1721. -- addEventHandler("onClientGUIClick", rBus, busEffect, false)
  1722. -- addEventHandler("onClientGUIClick", rAeroplane, aeroplaneEffect, false)
  1723.  
  1724. lLanguage = guiCreateLabel(0.1, 0.45, 0.8, 0.15, "Mi a karaktered anyanyelve?", true, tabCreationSix)
  1725. guiSetFont(lLanguage, "default-bold-small")
  1726.  
  1727. lCharLanguage = guiCreateLabel(0.3, 0.52, 0.2, 0.05, "Magyar", true, tabCreationSix)
  1728. guiLabelSetHorizontalAlign( lCharLanguage, "center" )
  1729. language = 16
  1730.  
  1731. lLangPrevious = guiCreateButton(0.23, 0.51, 0.07, 0.07, "<-", true, tabCreationSix)
  1732. lLangNext = guiCreateButton(0.5, 0.51, 0.07, 0.07, "->", true, tabCreationSix)
  1733.  
  1734. addEventHandler("onClientGUIClick", lLangPrevious,
  1735. function( button, state )
  1736. if button == "left" and state == "up" then
  1737. if language == 1 then
  1738. language = call( getResourceFromName( "language-system" ), "getLanguageCount" )
  1739. else
  1740. language = language - 1
  1741. end
  1742. guiSetText(lCharLanguage, call( getResourceFromName( "language-system" ), "getLanguageName", language ))
  1743. end
  1744. end, false
  1745. )
  1746.  
  1747. addEventHandler("onClientGUIClick", lLangNext,
  1748. function( button, state )
  1749. if button == "left" and state == "up" then
  1750. if language == call( getResourceFromName( "language-system" ), "getLanguageCount" ) then
  1751. language = 1
  1752. else
  1753. language = language + 1
  1754. end
  1755. guiSetText(lCharLanguage, call( getResourceFromName( "language-system" ), "getLanguageName", language ))
  1756. end
  1757. end, false
  1758. )
  1759.  
  1760. --/////////////
  1761. -- NEXT/BACK
  1762. --/////////////
  1763. bNext = guiCreateButton(0.05, 0.75, 0.9, 0.1, "Kész!", true, tabCreationSix)
  1764. addEventHandler("onClientGUIClick", bNext, characterCreationFinal, false)
  1765.  
  1766. bCancel = guiCreateButton(0.05, 0.85, 0.9, 0.1, "Mégse", true, tabCreationSix)
  1767. addEventHandler("onClientGUIClick", bCancel, cancelCreation, false)
  1768. end
  1769. end
  1770. end
  1771.  
  1772. -- ////////////////
  1773. -- FINAL
  1774. --/////////////////
  1775. function characterCreationFinal(button, state)
  1776. if (source==bNext) and (button=="left") and (state=="up") and not (anim) then
  1777. local train = guiRadioButtonGetSelected(rTrain)
  1778. local bus = guiRadioButtonGetSelected(rBus)
  1779. local aeroplane = guiRadioButtonGetSelected(rAeroplane)
  1780.  
  1781. -- if (train or bus or aeroplane) then
  1782. local transport
  1783. -- if (train) then
  1784. -- transport = 0
  1785. -- elseif (bus) then
  1786. -- transport = 1
  1787. -- elseif (aeroplane) then
  1788. -- transport = 2
  1789. -- else
  1790. transport = 1
  1791. -- end
  1792. local skin = getElementModel(getLocalPlayer())
  1793. creation = false
  1794. destroyElement(tabPanelCreation)
  1795. tabPanelCreation = nil
  1796.  
  1797. -- cleanup
  1798. removeEventHandler("onClientRender", getRootElement(), moveCameraToCreation)
  1799.  
  1800. destroyElement(bRotate)
  1801. bRotate = nil
  1802.  
  1803.  
  1804. local playerid = getElementData(getLocalPlayer(), "playerid")
  1805. setElementInterior(getLocalPlayer(), 14)
  1806. setElementDimension(getLocalPlayer(), 65000+playerid)
  1807. setElementPosition(getLocalPlayer(), 258.43417358398, -41.489139556885, 1002.0234375)
  1808. setPedRotation(getLocalPlayer(), 268.19247436523)
  1809.  
  1810. setCameraMatrix(370.525390625, -1963.4345703125, 8.2718753814697, 377.8369140625, -1963.041015625, 7.8359375)
  1811. setCameraInterior(14)
  1812. -- fadeCamera(true)
  1813. krealva = false
  1814. destroyElement(playerkeee1)
  1815. destroyElement(playerkeee12)
  1816. valkoxUgyesvagyHurra()
  1817. bejmenu = 1
  1818. -- end cleanup
  1819.  
  1820.  
  1821. if (skin==0) then -- CJ
  1822. local clothes = { curhair, curhat, curneck, curface, curupper, curwrist, curlower, curfeet, curcostume, luTattoo, llTattoo, ruTattoo, rlTattoo, bTattoo, lcTattoo, rcTattoo, sTattoo, lbTattoo }
  1823. triggerServerEvent("createCharacter", getLocalPlayer(), name, gender, skincolour, weight, height, fatness, muscles, transport, description, age, skin, language, clothes)
  1824. else
  1825. triggerServerEvent("createCharacter", getLocalPlayer(), name, gender, skincolour, weight, height, fatness, muscles, transport, description, age, skin, language)
  1826. end
  1827. -- end
  1828. end
  1829. end
  1830.  
  1831. addEvent("updateName", true) -- not using it since we send the char list on changing characters, just so it won't pop up with errors
  1832. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement