Advertisement
Guest User

Gui Création de personnage

a guest
Dec 30th, 2017
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 22.21 KB | None | 0 0
  1. local gui = {}
  2. local curskin = 1
  3. local dummyPed = nil
  4. local languageselected = 1
  5. local selectedMonth1 = "Janvier"
  6. local scrDay = 1
  7.  
  8. function newCharacter_init()
  9.     guiSetInputEnabled(true)
  10.     setCameraInterior(14)
  11.     setCameraMatrix(254.7190,  -41.1370,  1002, 256.7190,  -41.1370,  1002 )
  12.     dummyPed = createPed(217, 258,  -42,  1002)
  13.     setElementInterior(dummyPed, 14)
  14.     setElementInterior(getLocalPlayer(), 14)
  15.     setPedRotation(dummyPed, 87)
  16.     setElementDimension(dummyPed, getElementDimension(getLocalPlayer()))
  17.     fadeCamera ( true , 1, 0,0,0 )
  18.     local screenX, screenY = guiGetScreenSize()
  19.    
  20.     gui["root_"] = guiCreateStaticImage(299, screenY/2 165, 352, 529, ":resources/window_body.png", false)
  21.                    guiCreateStaticImage(0, 0, 352, 33, ":resources/window_title.png", false, gui["root_"])
  22.                    guiCreateLabel(44, 8, 263, 15, "Création du personnage", false, gui["root_"])
  23.     local font0_ethnocentricrg = guiCreateFont(":guieditor/fonts/ethnocentricrg.ttf", 10)
  24.     guiSetFont(gui["root_"], font0_ethnocentricrg)
  25.  
  26.     gui["lblCharName"] = guiCreateLabel(10, 57, 63, 20, "Nom:", false, gui["root_"])
  27.     guiSetFont(gui["lblCharName"], font0_ethnocentricrg)
  28.    
  29.     gui["txtCharName"] = guiCreateEdit(72, 55, 172, 19, "Prénom Nom", false, gui["root_"])
  30.    
  31.     gui["lblCharNameExplanation"] = guiCreateLabel(20, 84, 226, 15, "Le nom doit être dans le format suivant :", false, gui["root_"])
  32.     gui["lblCharNameExplanation"] = guiCreateLabel(256, 84, 75, 16, "Prénom Nom", false, gui["root_"])
  33.     guiLabelSetColor(GUIEditor.label[4], 60, 254, 0)
  34.     gui["lblCharNameExplanation"] = guiCreateLabel(76, 103, 177, 15, "Les célébrités sont INTERDITE !", false, gui["root_"])
  35.     guiLabelSetColor(GUIEditor.label[5], 253, 0, 0)
  36.     gui["lblCharNameExplanation"] = guiCreateStaticImage(41, 105, 14, 13, ":help/info.png", false, gui["root_"])
  37.    
  38.     --[[    gui["lblCharDesc"] = guiCreateLabel(10, 125, 230, 100, "Lors du premier spawn, fait /editlook et décris ton personnages.", false, gui["_root"])
  39.     guiLabelSetHorizontalAlign(gui["lblCharDesc"], "left", false)
  40.     guiLabelSetVerticalAlign(gui["lblCharDesc"], "center")]]--
  41.     --[[
  42.     gui["memCharDesc"] = guiCreateMemo(10, 145, 231,100, "", false, gui["_root"])
  43.  
  44.     gui["lblCharDescExplanation"] = guiCreateLabel(10, 245, 231, 61, "Remplis la description du personnage, \nson look\nses traits spéciaux (cicatrices, tatouage). Minimum\nof 50 mots.", false, gui["_root"])
  45.     guiLabelSetHorizontalAlign(gui["lblCharDescExplanation"], "left", false)
  46.     guiLabelSetVerticalAlign(gui["lblCharDescExplanation"], "center")]]
  47.    
  48.     gui["lblRace"] = guiCreateLabel(10, 135, 69, 15, "Ethnie:", false, gui["root_"])
  49.     guiSetFont(gui["lblRace"], font0_ethnocentricrg)
  50.    
  51.     gui["chkBlack"] = guiCreateCheckBox(109, 145, 15, 15, "", true, false, gui["root_"])
  52.     addEventHandler("onClientGUIClick", gui["chkBlack"] , newCharacter_raceFix, false)
  53.     gui["chkWhite"] = guiCreateCheckBox(162, 145, 15, 14, "", true, false, gui["root_"])
  54.     addEventHandler("onClientGUIClick", gui["chkWhite"] , newCharacter_raceFix, false)
  55.     gui["chkAsian"] = guiCreateCheckBox(216, 144, 15, 15, "", true, false, gui["root_"])
  56.     addEventHandler("onClientGUIClick", gui["chkAsian"] , newCharacter_raceFix, false)
  57.     gui["chktxtbl"] = guiCreateLabel(103, 124, 21, 16, "Noir", false, gui["root_"])
  58.     gui["chktxtwh"] = guiCreateLabel(156, 124, 31, 16, "Blanc", false, gui["root_"])
  59.     gui["chktxtas"] = guiCreateLabel(205, 124, 48, 16, "Asiatique", false, gui["root_"])
  60.            
  61.     gui["lblGender"] = guiCreateLabel(10, 191, 69, 15, "Sexe:", false, gui["_root"])
  62.     guiSetFont(gui["lblGender"], font0_ethnocentricrg)
  63.     gui["rbMale"] = guiCreateRadioButton(101, 189, 61, 17, "Homme", false, gui["_root"])
  64.     gui["rbFemale"] = guiCreateRadioButton(192, 189, 61, 17, "Femme", false, gui["_root"])
  65.     guiRadioButtonSetSelected ( gui["rbMale"], true)
  66.     addEventHandler("onClientGUIClick", gui["rbMale"], newCharacter_updateGender, false)
  67.     addEventHandler("onClientGUIClick", gui["rbFemale"], newCharacter_updateGender, false)
  68.    
  69.     gui["lblSkin"] = guiCreateLabel(10, 235, 124, 15, "Vêtements:", false, gui["root_"])
  70.     guiSetFont(gui["lblSkin"], font0_ethnocentricrg)
  71.     gui["btnPrevSkin"] = guiCreateButton(146, 232, 75, 18, "Précédent", false, gui["root_"])
  72.     addEventHandler("onClientGUIClick", gui["btnPrevSkin"], newCharacter_updateGender, false)
  73.     gui["btnNextSkin"] = guiCreateButton(236, 232, 75, 18, "Suivant", false, gui["root_"])
  74.     addEventHandler("onClientGUIClick", gui["btnNextSkin"], newCharacter_updateGender, false)      
  75.    
  76.     gui["lblHeight"] = guiCreateLabel(10, 272, 124, 15, "Taille:", false, gui["root_"])
  77.     guiSetFont(gui["lblHeight"], font0_ethnocentricrg)
  78.     gui["scrHeight"] = guiCreateScrollBar(122, 272, 141, 15, true, false, gui["root_"])
  79.     addEventHandler("onClientGUIScroll", gui["scrHeight"], newCharacter_updateScrollBars, false)
  80.     guiSetProperty(gui["scrHeight"], "StepSize", "0.02")
  81.    
  82.     gui["lblWeight"] = guiCreateLabel(10, 301, 124, 15, "Poids:", false, gui["root_"])
  83.     guiSetFont(gui["lblWeight"], font0_ethnocentricrg)
  84.     gui["scrWeight"] = guiCreateScrollBar(122, 301, 141, 15, true, false, gui["root_"])
  85.     addEventHandler("onClientGUIScroll", gui["scrWeight"], newCharacter_updateScrollBars, false)
  86.     guiSetProperty(gui["scrWeight"], "StepSize", "0.01")
  87.    
  88.     gui["lblAge"] = guiCreateLabel(10, 326, 124, 15, "Age:", false, gui["root_"])
  89.     guiSetFont(gui["lblAge"], font0_ethnocentricrg)
  90.     gui["scrAge"] = guiCreateScrollBar(122, 326, 141, 15, true, false, gui["root_"])
  91.     addEventHandler("onClientGUIScroll", gui["scrAge"], newCharacter_updateScrollBars, false)
  92.     guiSetProperty(gui["scrAge"], "StepSize", "0.0120")
  93.    
  94.     gui["lblMonth"] = guiCreateLabel(8, 351, 124, 15, "Mois:", false, gui["root_"])
  95.     guiSetFont(GUIEditor.label[15], font0_ethnocentricrg)
  96.     gui["drpMonth"] = guiCreateComboBox(122, 351, 146, 20, "Janvier", false, gui["root_"])
  97.     guiComboBoxAdjustHeight(gui["drpMonth"], 15)
  98.     guiComboBoxAddItem(gui["drpMonth"], "Janvier")
  99.     guiComboBoxAddItem(gui["drpMonth"], "Fevrier")
  100.     guiComboBoxAddItem(gui["drpMonth"], "Mars")
  101.     guiComboBoxAddItem(gui["drpMonth"], "Avril")
  102.     guiComboBoxAddItem(gui["drpMonth"], "Mai")
  103.     guiComboBoxAddItem(gui["drpMonth"], "Juin")
  104.     guiComboBoxAddItem(gui["drpMonth"], "Juillet")
  105.     guiComboBoxAddItem(gui["drpMonth"], "Aout")
  106.     guiComboBoxAddItem(gui["drpMonth"], "Septembre")
  107.     guiComboBoxAddItem(gui["drpMonth"], "Octobre")
  108.     guiComboBoxAddItem(gui["drpMonth"], "Novembre")
  109.     guiComboBoxAddItem(gui["drpMonth"], "Decembre")
  110.    
  111.     addEventHandler ( "onClientGUIComboBoxAccepted", root,
  112.         function ( comboBox )
  113.             if ( comboBox == gui["drpMonth"] ) then
  114.                 local item = guiComboBoxGetSelected ( gui["drpMonth"] )
  115.                 selectedMonth1 = tostring ( guiComboBoxGetItemText ( gui["drpMonth"] , item ) )
  116.             end
  117.         end, true)
  118.    
  119.     gui["lblDay"] = guiCreateLabel(10, 381, 124, 15, "Jour:", false, gui["root_"])
  120.     guiSetFont(gui["lblDay"], font0_ethnocentricrg)
  121.     gui["scrDay"] = guiCreateScrollBar(122, 381, 141, 15, true, false, gui["root_"])
  122.     addEventHandler("onClientGUIScroll", gui["scrDay"], newCharacter_updateScrollBars, false)
  123.     guiSetProperty(gui["scrDay"], "StepSize", "0.0125")
  124.    
  125.     gui["lblLanguage"] = guiCreateLabel(134, 416, 124, 15, "Langue", false, gui["root_"])
  126.     guiSetFont(gui["lblLanguage"], font0_ethnocentricrg)
  127.     gui["btnLanguagePrev"] = guiCreateButton(82, 441, 21, 19, "<<", false, gui["root_"])
  128.    
  129.     gui["lblLanguageDisplay"] = guiCreateLabel(129, 441, 124, 15, "Anglais", false, gui["root_"])
  130.     guiSetFont(gui["lblLanguageDisplay"], font0_ethnocentricrg)
  131.    
  132.     gui["btnLanguageNext"] = guiCreateButton(237, 441, 21, 19, ">>", false, gui["root_"])
  133.     addEventHandler("onClientGUIClick", gui["btnLanguagePrev"] , newCharacter_updateLanguage, false)
  134.     addEventHandler("onClientGUIClick", gui["btnLanguageNext"] , newCharacter_updateLanguage, false)
  135.    
  136.     gui["btnCancel"] = guiCreateButton(17, 476, 125, 43, "Annuler", false, gui["root_"])
  137.     addEventHandler("onClientGUIClick", gui["btnCancel"], newCharacter_cancel, false)
  138.    
  139.     gui["btnCreateChar"] = guiCreateButton(211, 476, 125, 43, "Créer le personnage", false, gui["root_"])
  140.     addEventHandler("onClientGUIClick", gui["btnCreateChar"], newCharacter_attemptCreateCharacter, false)
  141.     newCharacter_changeSkin()
  142.     newCharacter_updateScrollBars()
  143.     GUIEditor.staticimage[4] = guiCreateStaticImage(154, 482, 47, 37, ":guieditor/images/dx_elements/radio_button.png", false, gui["root_"])    
  144. end
  145.    
  146. function newCharacter_raceFix()
  147.     guiCheckBoxSetSelected ( gui["chkAsian"], false )
  148.     guiCheckBoxSetSelected ( gui["chkWhite"], false )
  149.     guiCheckBoxSetSelected ( gui["chkBlack"], false )
  150. if (source == gui["chkBlack"]) then
  151.     guiCheckBoxSetSelected ( gui["chkBlack"], true )
  152. elseif (source == gui["chkWhite"]) then
  153.     guiCheckBoxSetSelected ( gui["chkWhite"], true )
  154. elseif (source == gui["chkAsian"]) then
  155.     guiCheckBoxSetSelected ( gui["chkAsian"], true )
  156. end
  157.  
  158.     curskin = 1
  159.     newCharacter_changeSkin(0)
  160. end
  161.  
  162. function newCharacter_updateGender()
  163.     local diff = 0
  164.     if (source == gui["btnPrevSkin"]) then
  165.         diff = -1
  166.     elseif (source == gui["btnNextSkin"]) then
  167.         diff = 1
  168.     else
  169.         curskin = 1
  170.     end
  171.     newCharacter_changeSkin(diff)
  172. end
  173.  
  174. function newCharacter_updateLanguage()
  175.  
  176.     if source == gui["btnLanguagePrev"] then
  177.         if languageselected == 1 then
  178.             languageselected = call( getResourceFromName( "language-system" ), "getLanguageCount" )
  179.         else
  180.             languageselected = languageselected - 1
  181.         end
  182.     elseif source == gui["btnLanguageNext"] then
  183.         if languageselected == call( getResourceFromName( "language-system" ), "getLanguageCount" ) then
  184.             languageselected = 1
  185.         else
  186.             languageselected = languageselected + 1
  187.         end
  188.     end
  189.  
  190.     guiSetText(gui["lblLanguageDisplay"], tostring(call( getResourceFromName( "language-system" ), "getLanguageName", languageselected )))
  191. end
  192.  
  193. function newCharacter_updateScrollBars()
  194.     local scrollHeight = guiScrollBarGetScrollPosition(gui["scrHeight"])
  195.     scrollHeight = math.floor((scrollHeight / 2) + 150)
  196.  
  197.     local scrWeight = guiScrollBarGetScrollPosition(gui["scrWeight"])
  198.     scrWeight = math.floor(scrWeight + 50)
  199.  
  200.     local scrAge = guiScrollBarGetScrollPosition(gui["scrAge"])
  201.     scrAge = math.floor( (scrAge * 0.8 ) + 16 )
  202.  
  203.     --local scrollHeight = tonumber(guiGetProperty(gui["scrHeight"], "ScrollPosition")) * 100
  204.     --scrollHeight = math.floor((scrollHeight / 2) + 150)
  205.     guiSetText(gui["lblHeight"], "Taille: "..scrollHeight.." CM")
  206.  
  207.     --local scrWeight = tonumber(guiGetProperty(gui["scrWeight"], "ScrollPosition")) * 310
  208.     --scrWeight = math.floor(scrWeight + 40)
  209.     guiSetText(gui["lblWeight"], "Poids: "..scrWeight.." LB")
  210.  
  211.     --local scrAge = tonumber(guiGetProperty(gui["scrAge"], "ScrollPosition")) * 100
  212.     --scrAge = math.floor( (scrAge * 0.8 ) + 16 )
  213.     guiSetText(gui["lblAge"], "Age: "..scrAge.." ans")
  214.  
  215.     local year = getBirthday(tonumber(scrAge))
  216.     selectedMonth = monthToNumber(selectedMonth1)
  217.     --outputDebugString(selectedMonth)
  218.     local dayCap = daysInMonth(selectedMonth, year) or 31
  219.  
  220.     scrDay = (tonumber(guiScrollBarGetScrollPosition(gui["scrDay"]))+1)/100
  221.     scrDay = math.floor( scrDay*dayCap )
  222.     if scrDay == 0 then
  223.         scrDay = 1
  224.     end
  225.  
  226.     guiSetText(gui["lblDay"], "Jour: "..(scrDay or "1"))
  227. end
  228.  
  229. function newCharacter_changeSkin(diff)
  230.     local array = newCharacters_getSkinArray()
  231.     local skin = 0
  232.     if (diff ~= nil) then
  233.         curskin = curskin + diff
  234.     end
  235.  
  236.     if (curskin > #array or curskin < 1) then
  237.         curskin = 1
  238.         skin = array[1]
  239.     else
  240.         curskin = curskin
  241.         skin = array[curskin]
  242.     end
  243.  
  244.     if skin ~= nil then
  245.         setElementModel(dummyPed, tonumber(skin))
  246.     end
  247. end
  248.  
  249. function newCharacters_getSkinArray()
  250.     local array = { }
  251.     if (guiCheckBoxGetSelected( gui["chkBlack"] )) then -- BLACK
  252.         if (guiRadioButtonGetSelected( gui["rbMale"] )) then -- BLACK MALE
  253.             array = blackMales
  254.         elseif (guiRadioButtonGetSelected( gui["rbFemale"] )) then -- BLACK FEMALE
  255.             array = blackFemales
  256.         else
  257.             outputChatBox("Choisis d'abord le sexe!", 0, 255, 0)
  258.         end
  259.     elseif ( guiCheckBoxGetSelected( gui["chkWhite"] ) ) then -- WHITE
  260.         if ( guiRadioButtonGetSelected( gui["rbMale"] ) ) then -- WHITE MALE
  261.             array = whiteMales
  262.         elseif ( guiRadioButtonGetSelected( gui["rbFemale"] ) ) then -- WHITE FEMALE
  263.             array = whiteFemales
  264.         else
  265.             outputChatBox("Choisis d'abord le sexe!", 0, 255, 0)
  266.         end
  267.     elseif ( guiCheckBoxGetSelected( gui["chkAsian"] ) ) then -- ASIAN
  268.         if ( guiRadioButtonGetSelected( gui["rbMale"] ) ) then -- ASIAN MALE
  269.             array = asianMales
  270.         elseif ( guiRadioButtonGetSelected( gui["rbFemale"] ) ) then -- ASIAN FEMALE
  271.             array = asianFemales
  272.         else
  273.             outputChatBox("Choisis d'abord le sexe!", 0, 255, 0)
  274.         end
  275.     end
  276.     return array
  277. end
  278.  
  279. function newCharacter_cancel(hideSelection)
  280.     guiSetInputEnabled(false)
  281.     destroyElement(dummyPed)
  282.     destroyElement(gui["_root"])
  283.     gui = {}
  284.     curskin = 1
  285.     dummyPed = nil
  286.     languageselected = 1
  287.     if hideSelection ~= true then
  288.         Characters_showSelection()
  289.     end
  290.     clearChat()
  291. end
  292.  
  293. function newCharacter_attemptCreateCharacter()
  294.     local characterName = guiGetText(gui["txtCharName"])
  295.     local nameCheckPassed, nameCheckError = checkValidCharacterName(characterName)
  296.     if not nameCheckPassed then
  297.         LoginScreen_showWarningMessage( "Erreur lors de la vérification du nom:\n".. nameCheckError )
  298.         return
  299.     end
  300.     --[[
  301.     local characterDescription = guiGetText(gui["memCharDesc"])
  302.     if #characterDescription < 50 then
  303.         LoginScreen_showWarningMessage( "Erreur lors de la vérification de la\ndescription: Pas assez long." )
  304.         return
  305.     elseif #characterDescription > 128 then
  306.         LoginScreen_showWarningMessage( "Erreur lors de la vérification de la\ndescription: Trop longue." )
  307.         return
  308.     end]]
  309.  
  310.     local race = 0
  311.     if (guiCheckBoxGetSelected(gui["chkBlack"])) then
  312.         race = 0
  313.     elseif (guiCheckBoxGetSelected(gui["chkWhite"])) then
  314.         race = 1
  315.     elseif (guiCheckBoxGetSelected(gui["chkAsian"])) then
  316.         race = 2
  317.     else
  318.         LoginScreen_showWarningMessage( "Erreur lors de la vérification du sexe:\nAucun selectionner." )
  319.         return
  320.     end
  321.  
  322.     local gender = 0
  323.     if (guiRadioButtonGetSelected( gui["rbMale"] )) then
  324.         gender = 0
  325.     elseif (guiRadioButtonGetSelected( gui["rbFemale"] )) then
  326.         gender = 1
  327.     else
  328.         LoginScreen_showWarningMessage( "Erreur lors de la vérification du sexe:\nAucun selectionner." )
  329.         return
  330.     end
  331.  
  332.     local skin = getElementModel( dummyPed )
  333.     if not skin then
  334.         LoginScreen_showWarningMessage( "Erreur lors de la vérification du skin:\nAucun selectionner." )
  335.         return
  336.     end
  337.  
  338.  
  339.     local scrollHeight = guiScrollBarGetScrollPosition(gui["scrHeight"])
  340.     scrollHeight = math.floor((scrollHeight / 2) + 150)
  341.  
  342.     local scrWeight = guiScrollBarGetScrollPosition(gui["scrWeight"])
  343.     scrWeight = math.floor(scrWeight + 50)
  344.  
  345.     local scrAge = guiScrollBarGetScrollPosition(gui["scrAge"])
  346.     scrAge = math.floor( (scrAge * 0.8 ) + 16 )
  347.  
  348.     if languageselected == nil then
  349.         LoginScreen_showWarningMessage( "Erreur lors de la vérification de la langue:\nAucune selectionner." )
  350.         return
  351.     end
  352.     guiSetEnabled(gui["btnCancel"], false)
  353.     guiSetEnabled(gui["btnCreateChar"], false)
  354.     guiSetEnabled(gui["_root"], false)
  355.     fadeCamera(false, 1)
  356.     setTimer(function ()
  357.         selectStartPointGUI(characterName, characterDescription, race, gender, skin, scrollHeight, scrWeight, scrAge, languageselected, selectedMonth, scrDay) --This is the correct place. /MAXIME
  358.     end, 1000, 1)
  359. end
  360.  
  361. function newCharacter_response(statusID, statusSubID)
  362.     if (statusID == 1) then
  363.         LoginScreen_showWarningMessage( "Oops, il y a eu un problème. Réessaye\nou contacte un administrateur.\nErreur ACC"..tostring(statusSubID) )
  364.     elseif (statusID == 2) then
  365.         if (statusSubID == 1) then
  366.             LoginScreen_showWarningMessage( "Ce nom est déjà\nutilisé, désolé :(!" )
  367.         else
  368.             LoginScreen_showWarningMessage( "Oops, il y a eu un problème. Réessaye\nou contacte un administrateur.\nErreur ACC"..tostring(statusSubID) )
  369.         end
  370.     elseif (statusID == 3) then
  371.         newCharacter_cancel(true)
  372.         triggerServerEvent("accounts:characters:spawn", getLocalPlayer(), statusSubID)
  373.         triggerServerEvent("updateCharacters", getLocalPlayer())
  374.         --selectStartPointGUI(statusSubID) --Turned out this not where we should have started LOL /Max
  375.         return
  376.     end
  377.  
  378.     guiSetEnabled(gui["btnCancel"], true)
  379.     guiSetEnabled(gui["btnCreateChar"], true)
  380.     guiSetEnabled(gui["_root"], true)
  381.  
  382. end
  383. addEventHandler("accounts:characters:new", getRootElement(), newCharacter_response)
  384.  
  385. local wSelectStartPoint = nil
  386. function selectStartPointGUI(characterName, characterDescription, race, gender, skin, scrollHeight, scrWeight, scrAge, languageselected, selectedMonth, scrDay )
  387.     closeSelectStartPoint() -- Make sure the GUI won't get duplicated and stuck on client's screen at any case.
  388.     showCursor(true)
  389.     guiSetInputEnabled(true)
  390.  
  391.     --config
  392.     local locations = {
  393.                     -- x,           y,                   z,             rot         int,    dim     Location Name
  394.         ["default"] = { 1922.9072265625, -1760.6982421875, 13.546875, 0,            0,      0,      "A bus stop next to IGS"},
  395.         ["bus"] = {1749.509765625, -1860.5087890625, 13.578649520874, 359.0744,     0,      0,      "Unity Bus Station"},
  396.         ["metro"] = {808.88671875, -1354.6513671875, -0.5078125, 139.5092,          0,      0,      "Metro Station"},
  397.         ["air"] = {1691.6455078125, -2334.001953125, 13.546875, 0.10711,            0,      0,      "Los Santos International Airport"},
  398.         ["boat"] = {2809.66015625, -2436.7236328125, 13.628322601318, 90.8995,      0,      0,      "Santa Maria Dock"},
  399.     }
  400.  
  401.     wSelectStartPoint = guiCreateWindow(0,0, 300, 250, "How do you arrive in Los Santos?", false)
  402.     exports.global:centerWindow(wSelectStartPoint)
  403.  
  404.     local busButton = guiCreateButton(40, 40, 100, 60, "Bus", false, wSelectStartPoint)
  405.     addEventHandler("onClientGUIClick", busButton, function ()
  406.         newCharacter_cancel(true)
  407.         triggerServerEvent("accounts:characters:new", getLocalPlayer(), characterName, characterDescription, race, gender, skin, scrollHeight, scrWeight, scrAge, languageselected, selectedMonth, scrDay, locations.bus)
  408.         closeSelectStartPoint()
  409.     end)
  410.  
  411.     local metroButton = guiCreateButton(40, 120, 100, 60, "Metro", false, wSelectStartPoint)
  412.     addEventHandler("onClientGUIClick", metroButton, function()
  413.         newCharacter_cancel(true)
  414.         triggerServerEvent("accounts:characters:new", getLocalPlayer(), characterName, characterDescription, race, gender, skin, scrollHeight, scrWeight, scrAge, languageselected, selectedMonth, scrDay, locations.metro)
  415.         closeSelectStartPoint()
  416.     end)
  417.  
  418.     local airButton = guiCreateButton(160, 40, 100, 60, "Airplane", false, wSelectStartPoint)
  419.     addEventHandler("onClientGUIClick", airButton, function()
  420.         newCharacter_cancel(true)
  421.         triggerServerEvent("accounts:characters:new", getLocalPlayer(), characterName, characterDescription, race, gender, skin, scrollHeight, scrWeight, scrAge, languageselected, selectedMonth, scrDay, locations.air)
  422.         closeSelectStartPoint()
  423.     end)
  424.  
  425.     local boatButton = guiCreateButton(160, 120, 100, 60, "Boat", false, wSelectStartPoint)
  426.     addEventHandler("onClientGUIClick", boatButton, function()
  427.         newCharacter_cancel(true)
  428.         triggerServerEvent("accounts:characters:new", getLocalPlayer(), characterName, characterDescription, race, gender, skin, scrollHeight, scrWeight, scrAge, languageselected, selectedMonth, scrDay, locations.boat)
  429.         closeSelectStartPoint()
  430.     end)
  431.  
  432.     --Temporarily disabled new character spawnpoint selector until we set up all the spawnpoint's shops and locations properly. /Maxime
  433.     triggerServerEvent("accounts:characters:new", getLocalPlayer(), characterName, characterDescription, race, gender, skin, scrollHeight, scrWeight, scrAge, languageselected, selectedMonth, scrDay, locations.default)
  434.     closeSelectStartPoint()
  435.     -- end of the disability
  436. end
  437.  
  438. function closeSelectStartPoint()
  439.     if wSelectStartPoint and isElement(wSelectStartPoint) then
  440.         destroyElement(wSelectStartPoint)
  441.         showCursor(false)
  442.         guiSetInputEnabled(false)
  443.     end
  444. end
  445.  
  446. function isThisYearLeap(year)
  447.      if (tonumber(year)%4) == 0 then
  448.           return true
  449.      else
  450.           return false
  451.      end
  452. end
  453.  
  454. function monthToNumber(monthName)
  455.     if not monthName then
  456.         return 1
  457.     else
  458.         if monthName == "Janvier" then
  459.             return 1
  460.         elseif monthName == "Fevrier" then
  461.             return 2
  462.         elseif monthName == "Mars" then
  463.             return 3
  464.         elseif monthName == "Avril" then
  465.             return 4
  466.         elseif monthName == "Mai" then
  467.             return 5
  468.         elseif monthName == "Juin" then
  469.             return 6
  470.         elseif monthName == "Juillet" then
  471.             return 7
  472.         elseif monthName == "Aout" then
  473.             return 8
  474.         elseif monthName == "Septembre" then
  475.             return 9
  476.         elseif monthName == "Octobre" then
  477.             return 10
  478.         elseif monthName == "Novembre" then
  479.             return 11
  480.         elseif monthName == "Decembre" then
  481.             return 12
  482.         else
  483.             return 1
  484.         end
  485.     end
  486. end
  487.  
  488. function monthNumberToName(monthNumber)
  489.     if not monthNumber or not tonumber(monthNumber) then
  490.         return "January"
  491.     else
  492.         monthNumber = tonumber(monthNumber)
  493.         if monthNumber == 1 then
  494.             return "Janvier"
  495.         elseif monthNumber == 2 then
  496.             return "Fevrier"
  497.         elseif monthNumber == 3 then
  498.             return "Mars"
  499.         elseif monthNumber == 4 then
  500.             return "Avril"
  501.         elseif monthNumber == 5 then
  502.             return "Mai"
  503.         elseif monthNumber == 6 then
  504.             return "Juin"
  505.         elseif monthNumber == 7 then
  506.             return "Juillet"
  507.         elseif monthNumber == 8 then
  508.             return "Aout"
  509.         elseif monthNumber == 9 then
  510.             return "Septembre"
  511.         elseif monthNumber == 10 then
  512.             return "Octobre"
  513.         elseif monthNumber == 11 then
  514.             return "Novembre"
  515.         elseif monthNumber == 12 then
  516.             return "Decembre"
  517.         else
  518.             return "January"
  519.         end
  520.     end
  521. end
  522.  
  523. function daysInMonth(month, year)
  524.     if not month or not year or not tonumber(month) or not tonumber(year) then
  525.         return 31
  526.     else
  527.         month = tonumber(month)
  528.         year = tonumber(year)
  529.     end
  530.  
  531.     if month == 1 then
  532.         return 31
  533.     elseif month == 2 then
  534.         if isThisYearLeap(year) then
  535.             return 29
  536.         else
  537.             return 28
  538.         end
  539.     elseif month == 3 then
  540.         return 31
  541.     elseif month == 4 then
  542.          return 30
  543.     elseif month == 5 then
  544.         return 31
  545.     elseif month == 6 then
  546.         return 30
  547.     elseif month == 7 then
  548.         return 31
  549.     elseif month == 8 then
  550.         return 31
  551.     elseif month == 9 then
  552.         return 30
  553.     elseif month == 10 then
  554.         return 31
  555.     elseif month == 11 then
  556.         return 30
  557.     elseif month == 12 then
  558.         return 31
  559.     else
  560.         return 31
  561.     end
  562. end
  563.  
  564. function getBirthday(age)
  565.     if not age or not tonumber(age) then
  566.         return 2015
  567.     else
  568.         age = tonumber(age)
  569.     end
  570.  
  571.     local time = getRealTime()
  572.     time.year = time.year + 1900
  573.     return (time.year - age)
  574. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement