Jump to content

ajuda


Recommended Posts

Bom eu pegei aquele spawn do 50p spanw menu editei tudo certin mas um negocio e que quando morre volta pro menu para escolher outro time e eu queria tirar isso e por para spanwnar na sede do mesmo time que escolheu e essa parte do script tah akie

g_root = getRootElement( ); 
classGroups = { }; 
  
  
addEvent( "spawn_clientRequestSpawn", true ); 
addEventHandler( "spawn_clientRequestSpawn", g_root, 
    function( categoryIndex, classIndex, skinIndex, password ) 
        if skinIndex then 
            local class = classGroups[ categoryIndex ].classes[ classIndex ]; 
            if class.password then 
                if not password or password == "" then 
                    triggerClientEvent( client, "spawn_requestPassword", root, class.name ); 
                    return; 
                elseif password ~= class.password then 
                    outputChatBox( "The password you typed in is incorrect! Try again or cancel to choose different class.", client, 200, 50, 50 ); 
                    triggerClientEvent( client, "spawn_requestPassword", root, class.name ); 
                    return; 
                end 
            end 
            local skin = class.skinMngr.skins[ skinIndex ]; 
            local spawn = true; 
            local spawned; 
            --[[if not classGroups[ cetegoryIndex ].owner then -- if there is NO owner of the clan/gang spawn player 
                spawn = true; 
            else -- if there IS owner of the clan/gang then check if he's member of the clan/gang 
                 
            end]] 
             
            if spawn then 
                if not class.team then 
                    class.team = createTeam( class.name, class.color.red, class.color.green, class.color.blue ); 
                end 
                 
                local plrTeam = getPlayerTeam( client ); 
                if ( ( plrTeam ) and ( plrTeam ~= class.team ) and ( countPlayersInTeam( plrTeam ) == 1 ) ) then 
                    destroyElement( plrTeam ); 
                end 
                 
                spawned = spawnPlayer( 
                    client, 
                    skin.spawnLoc.x, 
                    skin.spawnLoc.y, 
                    skin.spawnLoc.z, 
                    skin.spawnLoc.rot, 
                    skin.modelId, 
                    0, 0, 
                    class.team 
                ); 
            end 
             
            if spawned then 
                setElementData( client, "team", class.name ) 
                setElementData( client, "skin", skin.name ) 
                fadeCamera( client, true ); 
                setCameraTarget( client, client ); 
                setTimer( setCameraTarget, 200, 1, client, client ); 
                 
                triggerClientEvent( client, "spawn_SpawnedSuccessfully", client ); 
                 
                --setPlayerMoney( client, 500 ); 
                for _, weapon in ipairs( class.weaponMngr.weapons ) do 
                    giveWeapon( client, weapon.id, weapon.ammo, false ); 
                end 
                createBlipAttachedTo( client, 0, 2, class.color.red, class.color.green, class.color.blue ) 
            else 
                triggerClientEvent( client, "spawn_FailedToSpawn", client ); 
                if countPlayersInTeam( class.team ) == 0 then 
                    destroyElement( class.team ); 
                    class.team = nil; 
                end 
            end 
        end 
    end 
); 
  
addEvent( "spawn_receivePassword", true ); 
addEventHandler( "spawn_receivePassword", g_root, 
    function( ) 
     
    end 
); 
  
  
addEventHandler( "onPlayerSpawn", g_root, 
    function ( ) 
     
    end 
); 
  
addEventHandler( "onPlayerWasted", g_root, 
    function( ) 
        fadeCamera( source, false, 4 ); 
        setTimer( onPlayerSpawn, 5000, 1, source ); 
        deleteAllPlayerBlips( source ) 
    end 
); 
  
  
  
addCommandHandler( "kill", 
    function( plr ) 
        killPed( plr ); 
    end 
    addEventHandler(onPlayerSpawn) 
) 
  
  
  
function preloadClassesInfo( ) 
    local groups = getElementsByType( "category" ); 
    for _, group in ipairs( groups ) do 
        table.insert( classGroups, Group:New( group ) ); 
    end 
end 
addEventHandler( "onResourceStart", getResourceRootElement(), preloadClassesInfo ) 
  
  
function deleteAllPlayerBlips(player) 
    local elements = getAttachedElements(player) 
    if (elements) then 
        for i, element in ipairs(elements) do 
            if (getElementType(element) == "blip") then 
                destroyElement(element) 
            end 
        end 
    end 
    print( "number of players in team: " .. tostring( countPlayersInTeam( getPlayerTeam( player ) ) ) ); 
end 
  
addEventHandler( "onPlayerQuit", g_root, function() deleteAllPlayerBlips(source) end ); 
  
  
------------------------------------------------------------------------------------------ 
------------------------------------------------------------------------------------------ 
function callClientFunc( player, funcName, ... ) 
    if #{ ... } ~= 0 then 
        triggerClientEvent( player, "_clientCallFunction", root, funcName, ... ) 
    else 
        triggerClientEvent( player, "_clientCallFunction", root, funcName ) 
    end 
end 
  
addEvent( "_serverCallFunction", true ) 
addEventHandler( "_serverCallFunction", root,  
    function( funcName, ... ) 
        _G[ funcName ](...) 
    end 
) 

Link to comment

onPlayerSpawn é uma função? Se não for, isso tá errado.

No evento onPlayerWasted na linha 90, Você precisa chamar uma função que o jogador 'spawna' em sua base.

Defina as bases pelo nome do time. E na função que irá gerar ele na base, use o nome do time que ele está, para obter os dados do respawn.

Link to comment

Crie uma tabela e defina as chaves com o nome do time. Dentro dessas chaves, coloque os dados do spawn.

Assim:

local teams = 
{ 
    ["Time1"] =  
    { 
        baseLoc = {x, y, z} 
    }, 
    ["Time2"] =  
    { 
        baseLoc = {x, y, z} 
    }, 
    ["Time3"] =  
    { 
        baseLoc = {x, y, z} 
    } 
} 

E faça a função que será chamada quando, por exemplo, o jogador morrer:

function respawnPlayerAtBase(thePlayer) 
    local team getPlayerTeam(thePlayer) 
    if isElement(thePlayer) and team then 
        local spawnX,spawnY,spawnZ = unpack( teams[getTeamName(team)].baseLoc ) 
        spawnPlayer(thePlayer, spawnX,spawnY,spawnZ, 0, getElementModel(thePlayer) 
    end 
end 

Essa função, você irá chamar no evento "onPlayerWasted".

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