Jump to content

[HELP] Character Changing System


Recommended Posts

I am working on this 'Duel Character' System and I managed to make it load from the players account but when I make switch characters it doesn't save anything. How the system works is that you have your default login but on mine it will also pop-up which one of your characters you want to play as.

Duel Character Switcher

Client Side

Character Switcher

local screenW, screenH = guiGetScreenSize() 
local localPlayer = getLocalPlayer() 
local getProtagonist = getElementData( localPlayer, "selectedProtagonist") 
local charOption 
  
    char2 = guiCreateStaticImage((screenW - 144) / 1.8169, (screenH - 127) / 2.045, 144, 127, "images/player.png", false) 
    char1 = guiCreateStaticImage((screenW - 144) / 2.231, (screenH - 127) / 2.045, 144, 127, "images/player.png", false) 
    --charOption1 = guiCreateLabel((screenW - 292) / 2, (screenH - 21) / 1.75, 292, 21, "", false) 
  
  
    --guiSetProperty(char2, "ImageColours", "tl:968989FF tr:968989FF bl:968989FF br:968989FF") 
    --guiSetProperty(char1, "ImageColours", "tl:96FE8989 tr:96FE8989 bl:96FE8989 br:96FE8989") 
    guiSetProperty(char2, "ImageColours", "tl:967F7D7D tr:967F7D7D bl:967F7D7D br:967F7D7D") 
    guiSetProperty(char1, "ImageColours", "tl:967F7D7D tr:967F7D7D bl:967F7D7D br:967F7D7D") 
    local font_0 = guiCreateFont(":CRPexplorer/font.ttf") 
    --guiSetFont(charOption, font_0) 
    guiLabelSetColor(charOption, 195, 195, 195) 
    guiLabelSetHorizontalAlign(charOption, "center", false) 
    guiLabelSetVerticalAlign(charOption, "center") 
    guiSetVisible( char2, false) 
    guiSetVisible( char1, false) 
  
function toggleProtagonistViewer( state) 
    charOption = "Play as a Protagonist 1 or Protagonist 2" 
    dxDrawRectangle((screenW - 292) / 2, (screenH - 147) / 2, 292, 147, tocolor(0, 0, 0, 150), false) 
    dxDrawText(charOption, (screenW - 292) / 2, (screenH - 21) / 1.75, ((screenW - 292) / 2) + 292, ( (screenH - 21) / 1.75) + 21, tocolor(195, 195, 195, 150), 1.20, "default", "center", "center", false, false, false, false, false) 
end 
  
addEventHandler( "onClientMouseEnter", root, 
    function() 
        if source == char1 then 
            --guiSetText( charOption, "Protagonist 1") 
            charOption = "Protagonist 1" 
            guiSetProperty(char1, "ImageColours", "tl:96FE8989 tr:96FE8989 bl:96FE8989 br:96FE8989") 
            guiSetProperty(char2, "ImageColours", "tl:967F7D7D tr:967F7D7D bl:967F7D7D br:967F7D7D") 
        elseif source == char2 then 
            charOption = "Protagonist 2" 
            guiSetProperty(char2, "ImageColours", "tl:968989FF tr:968989FF bl:968989FF br:968989FF") 
            guiSetProperty(char1, "ImageColours", "tl:967F7D7D tr:967F7D7D bl:967F7D7D br:967F7D7D") 
            --guiSetText( charOption, "Protagonist 2") 
        else 
            --guiSetText( charOption, "Please Select A Protagonist") 
        end 
    end 
) 
  
addEventHandler( "onClientMouseLeave", root, 
    function() 
        if source == char1 then 
            charOption = "Play as a Protagonist 1 or Protagonist 2" 
            guiSetProperty(char2, "ImageColours", "tl:967F7D7D tr:967F7D7D bl:967F7D7D br:967F7D7D") 
            guiSetProperty(char1, "ImageColours", "tl:967F7D7D tr:967F7D7D bl:967F7D7D br:967F7D7D") 
            --guiSetText( charOption, "") 
            --guiSetText( charOption, "Please Select A Protagonist") 
        elseif source == char2 then 
            charOption = "Play as a Protagonist 1 or Protagonist 2" 
            guiSetProperty(char2, "ImageColours", "tl:967F7D7D tr:967F7D7D bl:967F7D7D br:967F7D7D") 
            guiSetProperty(char1, "ImageColours", "tl:967F7D7D tr:967F7D7D bl:967F7D7D br:967F7D7D") 
            --guiSetText( charOption, "") 
            --guiSetText( charOption, "Please Select A Protagonist") 
        end 
    end 
) 
  
addEventHandler( "onClientGUIClick", root, 
    function() 
        if source == char1 then 
            triggerServerEvent( "setProfile1Data", localPlayer) 
            triggerServerEvent( "setProfile2Data", localPlayer) 
            setTimer( triggerServerEvent, 100, 1, "getProfile1Data", localPlayer) 
            guiSetVisible( char2, false) 
            guiSetVisible( char1, false) 
            removeEventHandler("onClientRender", root, toggleProtagonistViewer) 
            showCursor( false) 
            --charOption = "You are now a Antagonist" 
            --setElementData( localPlayer, "selectedProtagonist", "prot1") 
        elseif source == char2 then 
            triggerServerEvent( "setProfile1Data", localPlayer) 
            triggerServerEvent( "setProfile2Data", localPlayer) 
            setTimer( triggerServerEvent, 100, 1, "getProfile2Data", localPlayer) 
            guiSetVisible( char2, false) 
            guiSetVisible( char1, false) 
            removeEventHandler("onClientRender", root, toggleProtagonistViewer) 
            showCursor( false) 
            --charOption = "You are now a Protagonist" 
            --setElementData( localPlayer, "selectedProtagonist", "prot2") 
        end 
    end 
) 
  

Server Side

1st Player Account Data

    function playerLogin (thePreviousAccount, theCurrentAccount, autoLogin) 
      if  not (isGuestAccount (getPlayerAccount (source))) then
        local accountData = getAccountData (theCurrentAccount, "CRP-Wealth")
        if (accountData) then
          local playerMoney = getAccountData (theCurrentAccount, "CRP-Wealth")
          local playerSkin = getAccountData (theCurrentAccount, "CRP-PlayerSkin")
          local jobSkin = getAccountData (theCurrentAccount, "CRP-JobSkin")
          local playerHealth = getAccountData (theCurrentAccount, "CRP-Health")
          local playerArmor = getAccountData (theCurrentAccount, "CRP-Armor")
          local playerX = getAccountData (theCurrentAccount, "CRP-x")
          local playerY = getAccountData (theCurrentAccount, "CRP-y")
          local playerZ = getAccountData (theCurrentAccount, "CRP-z")
          local playerInt = getAccountData (theCurrentAccount, "CRP-Interior")
          local playerDim = getAccountData (theCurrentAccount, "CRP-Dimension")
          local playerWanted = getAccountData (theCurrentAccount, "CRP-Wanted")
          local playerTeam = getAccountData (theCurrentAccount, "CRP-Team")
          local job = getAccountData (theCurrentAccount, "CRP-Occupation")
          local advanced_health = getAccountData (theCurrentAccount, "Extra-Health")
          local playerVIP = getAccountData (theCurrentAccount, "VIPplayer")
          local playerDeathsaving = getAccountData (theCurrentAccount, "CRP-DeathstatSaver")
          local playerWeapBudgetSave = getAccountData (theCurrentAccount, "CRP-WeaponBudget")
          local WeaponStat1 = getAccountData (theCurrentAccount, "CRP-GunStat1")
          local WeaponStat2 = getAccountData (theCurrentAccount, "CRP-GunStat2")
          local WeaponStat3 = getAccountData (theCurrentAccount, "CRP-GunStat3")
          local WeaponStat4 = getAccountData (theCurrentAccount, "CRP-GunStat4")
          local WeaponStat5 = getAccountData (theCurrentAccount, "CRP-GunStat5")
          local WeaponStat6 = getAccountData (theCurrentAccount, "CRP-GunStat6")
          local WeaponStat7 = getAccountData (theCurrentAccount, "CRP-GunStat7")
          local WeaponStat8 = getAccountData (theCurrentAccount, "CRP-GunStat8")
          local WeaponStat9 = getAccountData (theCurrentAccount, "CRP-GunStat9")
          local WeaponStat10 = getAccountData (theCurrentAccount, "CRP-GunStat10")
          local WeaponStat11 = getAccountData (theCurrentAccount, "CRP-GunStat11")
          local playerWeaponID0 = getAccountData (theCurrentAccount, "CRP-weaponID0")
          local playerWeaponID1 = getAccountData (theCurrentAccount, "CRP-weaponID1")
          local playerWeaponID2 = getAccountData (theCurrentAccount, "CRP-weaponID2")
          local playerWeaponID3 = getAccountData (theCurrentAccount, "CRP-weaponID3")
          local playerWeaponID4 = getAccountData (theCurrentAccount, "CRP-weaponID4")
          local playerWeaponID5 = getAccountData (theCurrentAccount, "CRP-weaponID5")
          local playerWeaponID6 = getAccountData (theCurrentAccount, "CRP-weaponID6")
          local playerWeaponID7 = getAccountData (theCurrentAccount, "CRP-weaponID7")
          local playerWeaponID8 = getAccountData (theCurrentAccount, "CRP-weaponID8")
          local playerWeaponID9 = getAccountData (theCurrentAccount, "CRP-weaponID9")
          local playerWeaponID10 = getAccountData (theCurrentAccount, "CRP-weaponID10")
          local playerWeaponID11 = getAccountData (theCurrentAccount, "CRP-weaponID11")
          local playerWeaponID12 = getAccountData (theCurrentAccount, "CRP-weaponID12")
          local playerWeaponAmmo0 = getAccountData (theCurrentAccount, "CRP-weaponAmmo0")
          local playerWeaponAmmo1 = getAccountData (theCurrentAccount, "CRP-weaponAmmo1")
          local playerWeaponAmmo2 = getAccountData (theCurrentAccount, "CRP-weaponAmmo2")
          local playerWeaponAmmo3 = getAccountData (theCurrentAccount, "CRP-weaponAmmo3")
          local playerWeaponAmmo4 = getAccountData (theCurrentAccount, "CRP-weaponAmmo4")
          local playerWeaponAmmo5 = getAccountData (theCurrentAccount, "CRP-weaponAmmo5")
          local playerWeaponAmmo6 = getAccountData (theCurrentAccount, "CRP-weaponAmmo6")
          local playerWeaponAmmo7 = getAccountData (theCurrentAccount, "CRP-weaponAmmo7")
          local playerWeaponAmmo8 = getAccountData (theCurrentAccount, "CRP-weaponAmmo8")
          local playerWeaponAmmo9 = getAccountData (theCurrentAccount, "CRP-weaponAmmo9")
          local playerWeaponAmmo10 = getAccountData (theCurrentAccount, "CRP-weaponAmmo10")
          local playerWeaponAmmo11 = getAccountData (theCurrentAccount, "CRP-weaponAmmo11")
          local playerWeaponAmmo12 = getAccountData (theCurrentAccount, "CRP-weaponAmmo12")
          local playerHUDElement = getAccountData (theCurrentAccount, "CRP-HUDElement")
          local lsd = getAccountData (theCurrentAccount, "CRP-LSD")
          local playerVIPTime = getAccountData (theCurrentAccount, "CRP-VIPtime")
          exports.CRPdrug:giveLSD( source, lsd)
          spawnPlayer (source, playerX, playerY, playerZ +1, 0, playerSkin, playerInt, playerDim)
          setPlayerMoney (source, playerMoney)
          setTimer (setElementHealth, 50, 1, source, playerHealth)
          setTimer (setPedArmor, 50, 1, source, playerArmor)
          setTimer (setPlayerWantedLevel, 500, 1, source, playerWanted)
          setElementData(source, "Occupation", job)
          setPedStat(source, 24, advanced_health)
          setElementData(source, "isPlayerVIP", playerVIP)
          setElementData(source, "CustomHUD", playerHUDElement)
          if playerVIPTime > 0 then
            setElementData(source, "CRPvip.VIPtime", playerVIPTime-1)
          else
          end
          setPedStat(source, 135, playerDeathsaving)
          setPedStat(source, 69, WeaponStat1)
          setPedStat(source, 70, WeaponStat2)
          setPedStat(source, 71, WeaponStat3)
          setPedStat(source, 72, WeaponStat4)
          setPedStat(source, 73, WeaponStat5)
          setPedStat(source, 74, WeaponStat6)
          setPedStat(source, 75, WeaponStat7)
          setPedStat(source, 76, WeaponStat8)
          setPedStat(source, 77, WeaponStat9)
          setPedStat(source, 78, WeaponStat10)
          setPedStat(source, 79, WeaponStat11)
          giveWeapon(source, playerWeaponID0, playerWeaponAmmo0, false)
          giveWeapon(source, playerWeaponID1, playerWeaponAmmo1, false)
          giveWeapon(source, playerWeaponID2, playerWeaponAmmo2, false)
          giveWeapon(source, playerWeaponID3, playerWeaponAmmo3, false)
          giveWeapon(source, playerWeaponID4, playerWeaponAmmo4, false)
          giveWeapon(source, playerWeaponID5, playerWeaponAmmo5, false)
          giveWeapon(source, playerWeaponID6, playerWeaponAmmo6, false)
          giveWeapon(source, playerWeaponID7, playerWeaponAmmo7, false)
          giveWeapon(source, playerWeaponID8, playerWeaponAmmo8, false)
          giveWeapon(source, playerWeaponID9, playerWeaponAmmo9, false)
          giveWeapon(source, playerWeaponID10, playerWeaponAmmo10, false)
          giveWeapon(source, playerWeaponID11, playerWeaponAmmo11, false)
          giveWeapon(source, playerWeaponID12, playerWeaponAmmo12, false)
          setCameraTarget (source, source)
          fadeCamera(source, true, 2.0)
          exports.CRPtrophies:unlockTrophy( source, "Welcome to CRP")
        else
          spawnPlayer (source, 1684.4, -2243.3, 14.8, 0,78, 0, 0)
          setPlayerMoney (source, 50000)
          setCameraTarget (source, source)
          fadeCamera(source, true, 5.0)
          setPedStat(source, 69, 0)
          setPedStat(source, 70, 0)
          setPedStat(source, 71, 0)
          setPedStat(source, 72, 0)
          setPedStat(source, 73, 0)
          setPedStat(source, 74, 0)
          setPedStat(source, 75, 0)
          setPedStat(source, 76, 0)
          setPedStat(source, 77, 0)
          setPedStat(source, 78, 0)
          setPedStat(source, 79, 0)
          exports.CRPtrophies:unlockTrophy( source, "Welcome to CRP")
          setTimer (setElementHealth, 50, 1, source, 100)
        end
      end
    end
    addEvent( "getProfile1Data", true)
    addEventHandler( "getProfile1Data", getRootElement(), playerLogin)
 
    function onLogout ()
        kickPlayer (source, nil, "Logging out is not allowed")
    end
    addEventHandler ("onPlayerLogout", getRootElement(), onLogout)
 
    function onQuit (quitType, reason, responsibleElement)
      if not (isGuestAccount (getPlayerAccount (source))) then
        account = getPlayerAccount (source)
        if (account) then
          local x,y,z = getElementPosition (source)
          setAccountData (account, "CRP-Wealth", tostring (getPlayerMoney (source)))
          setAccountData (account, "CRP-PlayerSkin", tostring (getPedSkin (source)))
          setAccountData (account, "CRP-jobSkin", tostring (getPedSkin (source)))
          setAccountData (account, "CRP-Health", tostring (getElementHealth (source)))
          setAccountData (account, "CRP-Armor", tostring (getPedArmor (source)))
          setAccountData (account, "CRP-R", r)
          setAccountData (account, "CRP-G", g)
          setAccountData (account, "CRP-B", b)
          setAccountData (account, "CRP-x", x)
          setAccountData (account, "CRP-y", y)
          setAccountData (account, "CRP-z", z)
          setAccountData (account, "CRP-Interior", getElementInterior (source))
          setAccountData (account, "CRP-Dimension", getElementDimension (source))
          setAccountData (account, "CRP-Wanted", getPlayerWantedLevel (source))
          setAccountData (account, "CRP-Team", getPlayerTeam (source))
          setAccountData (account, "CRP-Occupation", getElementData(source, "Occupation"))
          setAccountData (account, "Extra-Health", getPedStat(source, 24))
          setAccountData (account, "VIPplayer", getElementData(source, "isPlayerVIP"))
          setAccountData (account, "CRP-DeathstatSaver", getPedStat(source, 135))
          setAccountData (account, "CRP-WeaponBudget", getPedStat(source, 13))
          setAccountData (account, "CRP-GunStat1", getPedStat(source, 69))
          setAccountData (account, "CRP-GunStat2", getPedStat(source, 70))
          setAccountData (account, "CRP-GunStat3", getPedStat(source, 71))
          setAccountData (account, "CRP-GunStat4", getPedStat(source, 72))
          setAccountData (account, "CRP-GunStat5", getPedStat(source, 73))
          setAccountData (account, "CRP-GunStat6", getPedStat(source, 74))
          setAccountData (account, "CRP-GunStat7", getPedStat(source, 75))
          setAccountData (account, "CRP-GunStat8", getPedStat(source, 76))
          setAccountData (account, "CRP-GunStat9", getPedStat(source, 77))
          setAccountData (account, "CRP-GunStat10", getPedStat(source, 78))
          setAccountData (account, "CRP-GunStat11", getPedStat(source, 79))
          setAccountData (account, "CRP-weaponID0", getPedWeapon (source, 0))
          setAccountData (account, "CRP-weaponID1", getPedWeapon (source, 1))
          setAccountData (account, "CRP-weaponID2", getPedWeapon (source, 2))
          setAccountData (account, "CRP-weaponID3", getPedWeapon (source, 3))
          setAccountData (account, "CRP-weaponID4", getPedWeapon (source, 4))
          setAccountData (account, "CRP-weaponID5", getPedWeapon (source, 5))
          setAccountData (account, "CRP-weaponID6", getPedWeapon (source, 6))
          setAccountData (account, "CRP-weaponID7", getPedWeapon (source, 7))
          setAccountData (account, "CRP-weaponID8", getPedWeapon (source, -- s8) -->)
          setAccountData (account, "CRP-weaponID9", getPedWeapon (source, 9))
          setAccountData (account, "CRP-weaponID10", getPedWeapon (source, 10))
          setAccountData (account, "CRP-weaponID11", getPedWeapon (source, 11))
          setAccountData (account, "CRP-weaponID12", getPedWeapon (source, 12))
          setAccountData (account, "CRP-weaponAmmo0", getPedTotalAmmo (source, 0))
          setAccountData (account, "CRP-weaponAmmo1", getPedTotalAmmo (source, 1))
          setAccountData (account, "CRP-weaponAmmo2", getPedTotalAmmo (source, 2))
          setAccountData (account, "CRP-weaponAmmo3", getPedTotalAmmo (source, 3))
          setAccountData (account, "CRP-weaponAmmo4", getPedTotalAmmo (source, 4))
          setAccountData (account, "CRP-weaponAmmo5", getPedTotalAmmo (source, 5))
          setAccountData (account, "CRP-weaponAmmo6", getPedTotalAmmo (source, 6))
          setAccountData (account, "CRP-weaponAmmo7", getPedTotalAmmo (source, 7))
          setAccountData (account, "CRP-weaponAmmo8", getPedTotalAmmo (source, -- s8) -->)
          setAccountData (account, "CRP-weaponAmmo9", getPedTotalAmmo (source, 9))
          setAccountData (account, "CRP-weaponAmmo10", getPedTotalAmmo (source, 10))
          setAccountData (account, "CRP-weaponAmmo11", getPedTotalAmmo (source, 11))
          setAccountData (account, "CRP-weaponAmmo12", getPedTotalAmmo (source, 12))
          setAccountData (account, "CRP-HUDElement", getElementData(source, "CustomHUD", true))
          setAccountData (account, "CRP-LSD", getElementData(source, "PlayerLSD", true))
          setAccountData (account, "CRP-VIPtime", getElementData(source, "CRPvip.VIPtime", true))
        end
      end
    end
    addEventHandler ("onPlayerQuit", getRootElement(), onQuit)
    addEventHandler ("onPlayerLogout", getRootElement(), onQuit)
    addEvent( "setProfile1Data", true)
    addEventHandler( "setProfile1Data", getRootElement(), onQuit)
---
 
function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth)
    account = getPlayerAccount (source)
    if not( isGuestAccount (getPlayerAccount(source)) ) then
    local theWeapon = getPedWeapon (source)
    local weaponAmmo = getPedTotalAmmo (source)
    local hud = getElementData( source, "CustomHUD", true)
    --fadeCamera (source, false)
    setTimer (giveWeapon, 2000, 1, source, theWeapon, weaponAmmo, true)
        if hud == "On" then
            setElementData( source, "CustomHUD", "On")
        elseif hud == "Off" then
            setElementData( source, "CustomHUD", "Off")
        end
    end
end
addEventHandler ("onPlayerWasted", getRootElement(), onWasted)
 
---
 
local playerWeapons = { }
 
addEventHandler ( "onPlayerWasted", root,
    function ( )
        if ( not playerWeapons [ source ] ) then
            playerWeapons [ source ] = { }
        end
        for slot = 0, 12 do
            local weapon = getPedWeapon ( source, slot )
            if ( weapon > 0 ) then
                local ammo = getPedTotalAmmo ( source, slot )
                if ( ammo > 0 ) then
                    playerWeapons [ source ] [ weapon ] = ammo
                end
            end
        end
    end
)
 
addEventHandler ( "onPlayerSpawn", root,
    function ( )
        if ( playerWeapons [ source ] ) then
            for weapon, ammo in pairs ( playerWeapons [ source ] ) do
                giveWeapon ( source, tonumber ( weapon ), tonumber ( ammo ) )
            end
        end
 
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...