Jump to content

[HELP]Spawn problem


||BuLLeT||

Recommended Posts

call(getResourceFromName("scoreboard"),"addScoreboardColumn","Money",root,20) 
call(getResourceFromName("scoreboard"),"addScoreboardColumn","Class",root,100) 
  
function update() 
   for k, v in ipairs(getElementsByType('player')) do 
       local money = getPlayerMoney(v) 
       setElementData(v,"Money",money ) 
   end 
  
        for g, v in ipairs(getElementsByType('player')) do 
        local gang = getElementData(v,"spawnedAs") or "N/A" 
        setElementData(v,"Class",gang ) 
    end 
end 
setTimer(update, 100, 0) 
  
  
  
  
  
playerBlips = {} 
function startup () 
    local xml = xmlLoadFile("spawns.xml")             -- open the XML file 
    local cityNodes = xmlNodeGetChildren(xml)       -- get all child nodes of the root node () 
    local cities = {}                             -- create a new global variable to store the welcome messages 
    for i,node in ipairs(cityNodes) do 
        local classnodes = xmlNodeGetChildren(node) 
        for i2,node2 in ipairs(classnodes) do 
            local name = xmlNodeGetAttribute(node2, "name") 
            local r = xmlNodeGetAttribute(node2, "r") 
            local g = xmlNodeGetAttribute(node2, "g") 
            local b = xmlNodeGetAttribute(node2, "b") 
            if not getTeamFromName(name) then 
                createTeam( name , r , g , b) 
            end 
        end 
    end 
    xmlUnloadFile(xml) 
    -- Logout all players for safety. 
    local players = getElementsByType ( "player" ) -- Get every player 
    for k, player in ipairs ( players ) do -- For every player do the following... 
        account = getPlayerAccount ( player ) -- Get every player's account 
            if ( not isGuestAccount ( account ) ) then -- For every player that's logged in.... 
                logOut ( player ) -- Log them out. 
            end 
    end 
    addEventHandler("onPlayerLogout",getRootElement(),loggedOut) 
end 
  
addEventHandler("onResourceStart", resourceRoot, startup) 
  
function playerSpawn (spawnX, spawnY, spawnZ, team, permission, skin, weapons, player, skinName, sR, sG, sB ) 
    local playerAccountName = getAccountName(getPlayerAccount(player)) 
    --outputConsole("user." .. playerAccountName .. ", " .. permission) 
    if isObjectInACLGroup ("user." .. playerAccountName, aclGetGroup(permission)) then 
        spawnTeam = getTeamFromName(team) 
        spawnPlayer (player, spawnX , spawnY, spawnZ, 0, skin, 0, 0, spawnTeam) -- spawns player with random skin 
        fadeCamera (player, true) 
        setCameraInterior (player, 0 ) 
        setCameraTarget (player, player) 
        local tR , tG , tB = getTeamColor(spawnTeam) 
        local r = sR or tR 
        local g = sG or tG 
        local b = sB or tB 
        playerBlips[player] = createBlipAttachedTo(player, 0, 2, r, g, b, 255, 0, 65535, getRootElement()) 
        setPlayerNametagColor(player, r, g, b) 
        if(weapons) then 
            local weps = split(weapons, ",") 
            for i, node in ipairs(weps) do 
                --outputConsole(node) 
                local wepinfo = split(node, ".") 
                local wepid = wepinfo[1] 
                --outputConsole(wepid) 
                local wepammo = wepinfo[2] 
                --outputConsole(wepammo) 
                giveWeapon ( player, wepid, wepammo ) 
            end 
        end 
        setAccountData(getPlayerAccount(player), "skinName", skinName) 
        setElementData(player, "spawnedAs", skinName) 
        triggerClientEvent(player, "onSpawnSuccessful", getRootElement()) 
    else 
        triggerClientEvent(player, "onSpawnError", getRootElement() , "You Dont Have Permission .") 
    end 
end 
  
addEvent("onPlayerSpawnButton", true) 
addEventHandler("onPlayerSpawnButton", getRootElement(), playerSpawn) 
  
  
function playerDespawn() 
    local player = source 
    if playerBlips[player] then 
        if getElementType(playerBlips[player]) == "blip" then 
            destroyElement(playerBlips[player]) 
        end 
    end 
end 
addEventHandler("onPlayerWasted", getRootElement(), playerDespawn) 
addEventHandler("onPlayerQuit", getRootElement(), playerDespawn) 
  
function saveProperty(a, b, c, playah) 
    local player = playah or source 
    local playeraccount = getPlayerAccount(player) 
    if not isPedDead(player) then 
        local x, y, z = getElementPosition(player) 
  
        setAccountData(playeraccount, "x", x) 
        setAccountData(playeraccount, "y", y) 
        setAccountData(playeraccount, "z", z) 
  
        local skin = getElementModel(player) 
        setAccountData(playeraccount, "skin", skin) 
  
        local team = getTeamName(getPlayerTeam(player)) 
        setAccountData(playeraccount, "team", team) 
  
        local permission = "spawn.spawn" 
        setAccountData(playeraccount, "permission", permission) 
  
        local weaponsarray = {} 
        for i=1, 12 do 
            if(getPedWeapon(player, i) ~= 0 and getPedTotalAmmo(player, i) > 0) then 
                table.insert(weaponsarray, getPedWeapon(player, i) .. "." .. getPedTotalAmmo(player, i)) 
            end 
        end 
  
        local weaponstring = table.concat(weaponsarray,",") 
        setAccountData(playeraccount, "weapons", weaponstring) 
        setAccountData(playeraccount, "aliveonquit", true) 
    else 
        setAccountData(playeraccount, "aliveonquit", false) 
        setAccountData(playeraccount, "x", nil) 
        setAccountData(playeraccount, "y", nil) 
        setAccountData(playeraccount, "z", nil) 
        setAccountData(playeraccount, "permission", nil) 
        setAccountData(playeraccount, "team", nil) 
        setAccountData(playeraccount, "skin", nil) 
        setAccountData(playeraccount, "weapons", nil) 
    end 
end 
addEventHandler("onPlayerQuit", getRootElement(), saveProperty) 
  
function wasPlayerAlive() 
    if getAccountData(getPlayerAccount(source), "aliveonquit") then 
        --outputConsole("Seems like playah wus alive!") 
        local playerAccount = getPlayerAccount(source) 
        local x = getAccountData(playerAccount, "x") 
        local y = getAccountData(playerAccount, "y") 
        local z = getAccountData(playerAccount, "z") 
        local team = getAccountData(playerAccount, "team") 
        local permission = getAccountData(playerAccount, "permission") 
        local skin = getAccountData(playerAccount, "skin") 
        local weps = getAccountData(playerAccount, "weapons") 
        local skinName = getAccountData(playerAccount, "skinName") 
  
        playerSpawn(x , y , z, team, permission, skin, weps, source, skinName) 
    else 
        triggerClientEvent(source, "onPlayerWasntAlive", source) 
    end 
end 
  
addEvent("wasPlayerAliveEvent", true) 
addEventHandler("wasPlayerAliveEvent", getRootElement(), wasPlayerAlive) 
  
function loggedOut() 
    cancelEvent() 
    outputChatBox("You can't log out!", source, 255, 0 ,0) 
end 
  
function stopdown() 
    local players = getElementsByType("player") 
    for i, player in ipairs(players) do 
        saveProperty(nil, nil, nil, player) 
        killPed(player) 
        logOut(player) 
    end 
end 
  
addEventHandler("onResourceStop", resourceRoot, stopdown) 

So you would ask wheres problem here? hmm, its when i start script, spawn is not showing,it just log players out and when they login nothing, i want that when script starts that spawn menu is showing to players so they can spawn! Anybody could help? DO NOT COPY THIS PLEASE!

Link to comment
function update() 
   for k, v in ipairs(getElementsByType('player')) do 
       local money = getPlayerMoney(v) 
       setElementData(v,"Money",money ) 
   end 
  
        for g, v in ipairs(getElementsByType('player')) do 
        local gang = getElementData(v,"spawnedAs") or "N/A" 
        setElementData(v,"Class",gang ) 
    end 
end 
setTimer(update, 100, 0) 

That function is really inefficient, reasons:

1: You are looping twice, that's not required, you can use the same loop for both.

2: You are using a 100 ms timer, that's not efficient at all.

About your problem, where's the login part?

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...