Jump to content

getPlayerTeam not working for me


bradio10

Recommended Posts

Hi guys. I have used this to get my scripting only working for the people in this team and for some reason, it doesn't work and I have no clue why.

At time to time, if I change something, somtimes I get a stack overflow

Here is the script:

Server:

locations = { 
    {459.93146, 888.78650, -27.64281}, 
    {507.28488, 971.90436, -24.47141}, 
    {664.53302, 721.46564, -4.02670}, 
} 
  
  
function create() 
local x, y, z = unpack ( locations [ math.random ( #locations ) ] )  
   if getTeamName (getPlayerTeam(thePlayer)) == "Workers" then 
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
   end 
end 
addEventHandler ("onResourceStart", root, create) 
addEvent ("createLoc", true) 
addEventHandler ("createLoc", root, create) 
  
function onHit() 
   if getTeamName (getPlayerTeam(thePlayer)) == "Workers" then 
       triggerEvent ("pay", getRootElement(), onHit) 
       destroyElement (blip) 
       destroyElement (marker) 
       triggerEvent ("createLoc", root, onHit) 
   end 
end 
addEventHandler ("onMarkerHit", root, onHit) 

And yes, I have created the team, I just at the moment, need to set myself to it via the admin panel.

function team() 
    team = createTeam ("Workers", 255, 255, 0) 
end 
addEventHandler ("onResourceStart", resourceRoot, team) 

Thanks.

Link to comment
locations = { 
    {459.93146, 888.78650, -27.64281}, 
    {507.28488, 971.90436, -24.47141}, 
    {664.53302, 721.46564, -4.02670}, 
} 
addEvent ("createLoc", true) 
addEventHandler ("createLoc", root, create) 
function create(thePlayer) -- you forget to define element 
local x, y, z = unpack ( locations [ math.random ( #locations ) ] ) 
   if getTeamName (getPlayerTeam(thePlayer)) == "Workers" then 
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
   end 
end 
addEventHandler ("onResourceStart", root, create) 
function onHit(thePlayer) -- you forget to define element 
   if getTeamName (getPlayerTeam(thePlayer)) == "Workers" then 
       triggerEvent ("pay", getRootElement(), onHit) 
       destroyElement (blip) 
       destroyElement (marker) 
       triggerEvent ("createLoc", root, onHit) 
   end 
end 
addEventHandler ("onMarkerHit", root, onHit) 

Link to comment
locations = { 
    {459.93146, 888.78650, -27.64281}, 
    {507.28488, 971.90436, -24.47141}, 
    {664.53302, 721.46564, -4.02670}, 
} 
addEvent ("createLoc", true) 
addEventHandler ("createLoc", root, create) 
function create(thePlayer) -- you forget to define element 
local x, y, z = unpack ( locations [ math.random ( #locations ) ] ) 
   if getTeamName (getPlayerTeam(thePlayer)) == "Workers" then 
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
   end 
end 
addEventHandler ("onResourceStart", root, create) 
function onHit(thePlayer) -- you forget to define element 
   if getTeamName (getPlayerTeam(thePlayer)) == "Workers" then 
       triggerEvent ("pay", getRootElement(), onHit) 
       destroyElement (blip) 
       destroyElement (marker) 
       triggerEvent ("createLoc", root, onHit) 
   end 
end 
addEventHandler ("onMarkerHit", root, onHit) 

Doesn't work. It says bad "player" pointer @ "getPlayerTeam" (1)

Link to comment

well you have to write element name at client side too. if you dont want you can use this one;

locations = { 
    {459.93146, 888.78650, -27.64281}, 
    {507.28488, 971.90436, -24.47141}, 
    {664.53302, 721.46564, -4.02670}, 
} 
addEvent ("createLoc", true) 
addEventHandler ("createLoc", root, create) 
function create() 
local x, y, z = unpack ( locations [ math.random ( #locations ) ] ) 
   if getTeamName (getPlayerTeam(source)) == "Workers" then 
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
   end 
end 
addEventHandler ("onResourceStart", root, create) 
function onHit() 
   if getTeamName (getPlayerTeam(source)) == "Workers" then 
       triggerEvent ("pay", getRootElement(), onHit) 
       destroyElement (blip) 
       destroyElement (marker) 
       triggerEvent ("createLoc", root, onHit) 
   end 
end 
addEventHandler ("onMarkerHit", root, onHit) 

Link to comment
well you have to write element name at client side too. if you dont want you can use this one;
locations = { 
    {459.93146, 888.78650, -27.64281}, 
    {507.28488, 971.90436, -24.47141}, 
    {664.53302, 721.46564, -4.02670}, 
} 
addEvent ("createLoc", true) 
addEventHandler ("createLoc", root, create) 
function create() 
local x, y, z = unpack ( locations [ math.random ( #locations ) ] ) 
   if getTeamName (getPlayerTeam(source)) == "Workers" then 
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
   end 
end 
addEventHandler ("onResourceStart", root, create) 
function onHit() 
   if getTeamName (getPlayerTeam(source)) == "Workers" then 
       triggerEvent ("pay", getRootElement(), onHit) 
       destroyElement (blip) 
       destroyElement (marker) 
       triggerEvent ("createLoc", root, onHit) 
   end 
end 
addEventHandler ("onMarkerHit", root, onHit) 

Even with source, it still doesn't work.

Link to comment
locations = { 
    {459.93146, 888.78650, -27.64281}, 
    {507.28488, 971.90436, -24.47141}, 
    {664.53302, 721.46564, -4.02670}, 
} 
addEvent ("createLoc", true) 
addEventHandler ("createLoc", root, create) 
function create() 
local x, y, z = unpack ( locations [ math.random ( #locations ) ] ) 
   if getTeamName (getPlayerTeam(source)) == "Workers" then 
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
   end 
end 
addEventHandler ("onResourceStart", root, create) 
function onHit(hitElement) 
   if getElementType(hitElement) =="player" and getTeamName (getPlayerTeam(hitElement)) == "Workers" then 
       triggerEvent ("pay", getRootElement(), onHit) 
       destroyElement (blip) 
       destroyElement (marker) 
       triggerEvent ("createLoc", root, onHit) 
   end 
end 
addEventHandler ("onMarkerHit", root, onHit) 

I'm suggesting to have a re-look on your script, it's a real mess and I just helped with your error...

Link to comment

Ok, none of those fixed it and Fury, the reason why I have root, is because I am using a table, so if I put the marker name, it comes up with a bad argument. And Samer, the team thing didn't work. So here is my full script. Once this gets fixed, I will then make it abit neater like you said Samer.

function giveMoney () 
    cash = math.random (500, 1000) 
    givePlayerMoney (source, cash) 
    outputChatBox ( "You have just received $ " ..cash , source, 0, 255, 0, true) 
    fadeCamera (source, false, 0.8, 0, 0, 0) 
    setTimer ( fadeCamera, 3000, 1, source, true, 1 ) 
end 
addEvent ("pay", true) 
addEventHandler ("pay", root, giveMoney) 
  
  
locations = { 
    {459.93146, 888.78650, -27.64281}, 
    {507.28488, 971.90436, -24.47141}, 
    {664.53302, 721.46564, -4.02670}, 
} 
  
  
function create() 
local x, y, z = unpack ( locations [ math.random ( #locations ) ] )  
   if getTeamName (getPlayerTeam(source)) == "Miners" then 
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
   end 
end 
addEventHandler ("onResourceStart", root, create) 
addEvent ("createLoc", true) 
addEventHandler ("createLoc", root, create) 
  
function onHit(hitElement) 
   if getElementType(hitElement) =="player" and getTeamName (getPlayerTeam(source)) == "Miners" then 
       triggerEvent ("pay", getRootElement(), onHit) 
       destroyElement (blip) 
       destroyElement (marker) 
       triggerEvent ("createLoc", root, onHit) 
   end 
end 
addEventHandler ("onMarkerHit", marker, onHit) 

Link to comment

Still is not working. If this is ment to fix it, then I have no clue what is going on.

Do I have to do anything with the first getPlayerTeam at the part where it starts when the resource starts?

function create() 
local x, y, z = unpack ( locations [ math.random ( #locations ) ] )  
   if getTeamName (getPlayerTeam(source)) == "Miners" then 
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
   end 
end 
addEventHandler ("onResourceStart", root, create) 
addEvent ("createLoc", true) 
addEventHandler ("createLoc", root, create) 

Link to comment
Try this
if (getPlayerTeam(hitElement) == getTeamFromName("Miners")) then 

Nope, not working. The markers won't appear when I get moved to it.

onResourceStart source is not a player.... just saying ^^.

You cannot really make that script onResourceStart due to lack of players oto

Reason I put it like that is because it works fine without the team, it's just when I put the team, it doesn't work.

Is that the reason why? Because if so, then how would I go about setting it out?

Edited by Guest
Link to comment

I was about to ask him about the onResourceStart but forgot...

onResourceStart source is not a player.... just saying ^^.

You cannot really make that script onResourceStart due to lack of players oto

Why are you using onResourceStart anyways? as you did add an event to it..

Link to comment

Am,Back try this :

locations = { 
    {459.93146, 888.78650, -27.64281}, 
    {507.28488, 971.90436, -24.47141}, 
    {664.53302, 721.46564, -4.02670}, 
} 
  
  
function create() 
    local x, y, z = unpack ( locations [ math.random ( #locations ) ] )  
    marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
    blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
    setElementVisibleTo ( marker, getRootElement ( ), false ) 
    setElementVisibleTo ( blip, getRootElement ( ), false ) 
        local players = getPlayersInTeam ( getTeamFromName ( "Miners" ) ) 
        for k, v in ipairs ( players ) do 
            setElementVisibleTo ( marker, v, true ) 
            setElementVisibleTo ( blip, v, true )        
        end 
end 
  
create() 
  
function onHit(hitElement) 
   if getElementType(hitElement) =="player" and getPlayerTeam(hitElement) and getTeamName (getPlayerTeam(hitElement)) == "Miners" then 
        cash = math.random (500, 1000) 
        givePlayerMoney (hitElement, cash) 
        outputChatBox ( "You have just received $ " ..cash , hitElement, 0, 255, 0, true) 
        fadeCamera (hitElement, false, 0.8, 0, 0, 0) 
        setTimer ( fadeCamera, 3000, 1, hitElement, true, 1 ) 
        if isElement(bilp) then destroyElement (blip) end 
        removeEventHandler ("onMarkerHit", marker, onHit) 
        destroyElement(source) 
        setTimer( function( player )         
        local x, y, z = unpack ( locations [ math.random ( #locations ) ] )  
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 )  
        setElementVisibleTo ( marker, getRootElement ( ), false ) 
        setElementVisibleTo ( blip, getRootElement ( ), false ) 
        local players = getPlayersInTeam ( getTeamFromName ( "Miners" ) ) 
        for k, v in ipairs ( players ) do 
            setElementVisibleTo ( marker, v, true ) 
            setElementVisibleTo ( blip, v, true )                
        end 
        addEventHandler ("onMarkerHit", marker, onHit) 
        end, 1200, 1, hitElement);       
   end 
end 
addEventHandler ("onMarkerHit", marker, onHit) 
Link to comment
Am,Back try this :

locations = { 
    {459.93146, 888.78650, -27.64281}, 
    {507.28488, 971.90436, -24.47141}, 
    {664.53302, 721.46564, -4.02670}, 
} 
  
  
function create() 
    local x, y, z = unpack ( locations [ math.random ( #locations ) ] )  
    marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
    blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 ) 
    setElementVisibleTo ( marker, getRootElement ( ), false ) 
    setElementVisibleTo ( blip, getRootElement ( ), false ) 
        local players = getPlayersInTeam ( getTeamFromName ( "Miners" ) ) 
        for k, v in ipairs ( players ) do 
            setElementVisibleTo ( marker, v, true ) 
            setElementVisibleTo ( blip, v, true )        
        end 
end 
  
create() 
  
function onHit(hitElement) 
   if getElementType(hitElement) =="player" and getPlayerTeam(hitElement) and getTeamName (getPlayerTeam(hitElement)) == "Miners" then 
        cash = math.random (500, 1000) 
        givePlayerMoney (hitElement, cash) 
        outputChatBox ( "You have just received $ " ..cash , hitElement, 0, 255, 0, true) 
        fadeCamera (hitElement, false, 0.8, 0, 0, 0) 
        setTimer ( fadeCamera, 3000, 1, hitElement, true, 1 ) 
        if isElement(bilp) then destroyElement (blip) end 
        removeEventHandler ("onMarkerHit", marker, onHit) 
        destroyElement(source) 
        setTimer( function( player )         
        local x, y, z = unpack ( locations [ math.random ( #locations ) ] )  
        marker = createMarker (x, y, z, "cylinder", 2, 255, 255, 0, 255) 
        blip = createBlipAttachedTo( marker, 0, 2, 0, 250, 0, 170 )  
        setElementVisibleTo ( marker, getRootElement ( ), false ) 
        setElementVisibleTo ( blip, getRootElement ( ), false ) 
        local players = getPlayersInTeam ( getTeamFromName ( "Miners" ) ) 
        for k, v in ipairs ( players ) do 
            setElementVisibleTo ( marker, v, true ) 
            setElementVisibleTo ( blip, v, true )                
        end 
        addEventHandler ("onMarkerHit", marker, onHit) 
        end, 1200, 1, hitElement);       
   end 
end 
addEventHandler ("onMarkerHit", marker, onHit) 

Nope, doesn't work at all

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