Jump to content

Teams


shaio

Recommended Posts

I'm making a team system where when a player enters the marker near the ped it changes the peds skin and team. But it says error on line 18. } expected near =. Help me with this please.

teams = {
	{team = "No Team",pedID = 0,x = 409.55225,y = -2205.87939,z = 10.87813,r = 255,g = 0,b = 0,skins = {0,1,2,7,13,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,36,37,43,44,45,46,47,48,49,50,51,52,57,58,61,62,66,68,72,78,79,80,81,82,83,84,94,95,96,97,98,99,101,128,132,133,134,135,136,142,143,144,146,153,154,155,156,158,159,160,161,162,167,168,170,171,176,177,179,180,181,182,183,184,185,186,187,188,189,200,202,203,204,206,209,210,212,213,220,221,222,227,228,229,230,231,234,235,236,239,240,241,242,249,250,252,253,254,255,258,259,260,261,262,264,272,278,279,290,291,295,297,299,302,303,305,306,308,309,310}},
	{team = "Medic",pedID = 275,x = 409.34235,y = -2208.22314,z = 10.87813,r = 0,g = 255,b = 255,skins = {274,275,276,70}},
	{team = "Vagos",pedID = 108,x = 409.32993,y = -2210.71582,z = 10.87813,r = 255,g = 255,b = 0,skins = {108,109,110}},
	{team = "Triads",pedID = 118,x = 409.33679,y = -2201.01514,z = 10.87813,r = 100,g = 100,b = 100,skins = {118,120,117,118,120}},
	{team = "Sidnacoo",pedID = 124,x = 409.33578,y = -2196.91724,z = 10.87813,r = 113,g = 201,b = 90,skins = {120,124}},
	{team = "Grove",pedID = 106,x = 409.33737,y = -2216.90210,z = 10.87813,r = 50,g = 220,b = 60,skins = {105,106,107,269,270,300,301,311}},
	{team = "Bikers",pedID = 254,x = 409.33804,y = -2213.61621,z = 10.87813,r = 220,g = 170,b = 40,skins = {100,247,248,254}},
	{team = "Ballas",pedID = 104,x = 409.33844,y = -2195.09155,z = 10.87813,r = 130,g = 37,b = 132,skins = {102,103,104,293}},
	{team = "Aztecas",pedID = 114,x = 409.33960,y = -2199.03662,z = 10.87813,r = 10,g = 180,b = 177,skins = {114,115,116,292}},
	{team = "Police",pedID = 285,x = 409.33051,y = -2203.03003,z = 10.87813,r = 0,g = 0,b = 0,skins = {71,73,163,164,165,166,265,266,267,280,281,282,283,284,285,286,287,288,312}}
}

peds = {}

for i,t in pairs(teams) do
	createTeam(t.team,t.r,t.g,t.b)
	table.insert(peds,{ped[i] = createPed(t.pedID,t.x,t.y+1,t.z,270),marker[i] = createMarker(t.x,t.y,t.z,"cylinder",0.7,t.r,t.g,t.b,255)})
end

 

Edited by shaio
Link to comment

I have this and the error is with the event.. It cannot call the function, and yes, the function does exist..

for i,t in pairs(teams) do
	createTeam(t.team,t.r,t.g,t.b)
	ped[i] = createPed(t.pedID,t.x,t.y+1,t.z,270)
	marker[i] = createMarker(t.x,t.y,t.z,"cylinder",0.7,t.r,t.g,t.b,255)
	setElementData(marker[i],"team",t.team)
	addEventHandler("onMarkerHit",marker[i],markerEnter)
	table.insert(teamSelectors,{p = ped[i],mark = marker[i]})
end

 

Link to comment
for i,t in pairs(teams) do
	createTeam(t.team,t.r,t.g,t.b)
	table.insert(peds,{
		ped = createPed(t.pedID,t.x,t.y+1,t.z,270),
		marker = createMarker(t.x,t.y,t.z,"cylinder",0.7,t.r,t.g,t.b,255)
	})
end

ped and marker instead.

1 hour ago, shaio said:

I have this and the error is with the event.. It cannot call the function, and yes, the function does exist..


for i,t in pairs(teams) do	createTeam(t.team,t.r,t.g,t.b)	ped[i] = createPed(t.pedID,t.x,t.y+1,t.z,270)	marker[i] = createMarker(t.x,t.y,t.z,"cylinder",0.7,t.r,t.g,t.b,255)	setElementData(marker[i],"team",t.team)	addEventHandler("onMarkerHit",marker[i],markerEnter)	table.insert(teamSelectors,{p = ped[i],mark = marker[i]})end

 

Why do you try to index ped and marker here? Do you have ped = {} and marker = {} defined somewhere?

If not, just remove the i and brackets.

for i,t in pairs(teams) do
	createTeam(t.team,t.r,t.g,t.b)
	local ped = createPed(t.pedID,t.x,t.y+1,t.z,270)
	local marker = createMarker(t.x,t.y,t.z,"cylinder",0.7,t.r,t.g,t.b,255)
	setElementData(marker,"team",t.team)
	addEventHandler("onMarkerHit",marker,markerEnter)
	table.insert(teamSelectors,{p = ped,mark = marker})
end

 

Edited by Tails
Link to comment

Btw, you can also store your pos and colors like this: pos = {x,y,z}. In example:

teams = {
	{name = "Medic",pos = {2024.141,2045.144,22.240}},
	{name = "Vagos",pos = {2024.141,2045.144,22.240}},
}

for _,v in pairs(teams) do
	local x,y,z = unpack(v.pos)
	outputChatBox("Team "..v.name.."'s spawn coords are: "..x..", "..y..", "..z)
end

-- or

for _,v in pairs(teams) do
	outputChatBox("Team "..v.name.."'s spawn coords are: "..table.concat(v.pos,", "))
end

It's easier to work with :)

  • Like 1
Link to comment

Here is full script, I got everything to work. But there are a few bugs. When two players enter the skin selection at the same time, the player ends up joining a different team, some skins combine with other team skins, and after a while if using the skin selector I found that it quits working, you aren't able to use the bindkeys to change skins anymore. So please help me with this.

 

local root = getRootElement()
defaultSkin = 0
defaultTeam = ""
currentskin = 1
mak = ""

-------------------------------------------------- Configuration --------------------------------------------------
teams = {
        {team = "No Team",pedID = 0,x = 409.55225,y = -2205.87939,z = 10.87813,r = 255,g = 0,b = 0},
        {team = "Medic",pedID = 275,x = 409.34235,y = -2208.22314,z = 10.87813,r = 0,g = 255,b = 255},
        {team = "Vagos",pedID = 108,x = 409.32993,y = -2210.71582,z = 10.87813,r = 255,g = 255,b = 0},
        {team = "Triads",pedID = 118,x = 409.33679,y = -2201.01514,z = 10.87813,r = 100,g = 100,b = 100},
        {team = "Sidnacoo",pedID = 124,x = 409.33578,y = -2196.91724,z = 10.87813,r = 113,g = 201,b = 90},
        {team = "Grove",pedID = 106,x = 409.33737,y = -2216.90210,z = 10.87813,r = 50,g = 220,b = 60},
        {team = "Bikers",pedID = 254,x = 409.33804,y = -2213.61621,z = 10.87813,r = 220,g = 170,b = 40},
        {team = "Ballas",pedID = 104,x = 409.33844,y = -2195.09155,z = 10.87813,r = 130,g = 37,b = 132},
        {team = "Aztecas",pedID = 114,x = 409.33960,y = -2199.03662,z = 10.87813,r = 10,g = 180,b = 177},
        {team = "Police",pedID = 285,x = 409.33051,y = -2203.03003,z = 10.87813,r = 0,g = 0,b = 0}
}

skins = {}
skins["No Team"] = {0,1,2,7,13,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,36,37,43,44,45,46,47,48,49,50,51,52,57,58,61,62,66,68,72,78,79,80,81,82,83,84,94,95,96,97,98,99,101,128,132,133,134,135,136,142,143,144,146,153,154,155,156,158,159,160,161,162,167,168,170,171,176,177,179,180,181,182,183,184,185,186,187,188,189,200,202,203,204,206,209,210,212,213,220,221,222,227,228,229,230,231,234,235,236,239,240,241,242,249,250,252,253,254,255,258,259,260,261,262,264,272,278,279,290,291,295,297,299,302,303,305,306,308,309,310}
skins["Medic"] = {274,275,276,70}
skins["Vagos"] = {108,109,110}
skins["Triads"] = {118,120,117,118,120}
skins["Sidnacoo"] = {120,124}
skins["Grove"] = {105,106,107,269,270,300,301,311}
skins["Bikers"] = {100,247,248,254}
skins["Ballas"] = {102,103,104,293}
skins["Aztecas"] = {114,115,116,292}
skins["Police"] = {71,73,163,164,165,166,265,266,267,280,281,282,283,284,285,286,287,288,312}
-------------------------------------------------------------------------------------------------------------------

teamSelectors = {}
ped = {}
marker = {}

function markerEnter(element,dim)
        if getElementType(element) == "player" then
				mak = getElementData(source,"team")
                defaultSkin = getElementModel(element)
				defaultTeam = getPlayerTeam(element)
                team = getElementData(source,"team")
                for i,plr in pairs(getElementsByType("player")) do
                        setElementVisibleTo(element,plr,false)
                        setElementVisibleTo(plr,element,false)
                end
				if currentskin == #skins[tostring(mak)] then
                        currentskin = 1
                else
                        currentskin = currentskin + 1
                end
				update(element)
                setElementPosition(element,451.033203125,-2207.3427734375,10.878125190735)
                setCameraMatrix(element,440.205078125,-2206.6123046875,12,451.033203125,-2207.3427734375,10.878125190735,0,30)
                setElementFrozen(element,true)
                bindKey(element,"arrow_l","down",changeSkin)
                bindKey(element,"arrow_r","down",changeSkin)
                bindKey(element,"enter","down",finishSelection)
                bindKey(element,"backspace","down",exitSelection)
				toggleAllControls(element,false)
        end
end

for i,t in pairs(teams) do
        createTeam(t.team,t.r,t.g,t.b)
        ped[i] = createPed(t.pedID,t.x,t.y+1,t.z)
        marker[i] = createMarker(t.x+1,t.y+1,t.z-0.9,"cylinder",1,t.r,t.g,t.b,130)
        setElementData(marker[i],"team",t.team)
        table.insert(teamSelectors,{p = ped[i],mark = marker[i]})
        for i,p in pairs(teamSelectors) do
            setElementRotation(p.p,0,0,-90)
            setElementFrozen(p.p,true)
        end
        addEventHandler("onMarkerHit",marker[i],markerEnter)
end

for i,ped in pairs(teamSelectors) do
        setTimer(function()
                setElementCollisionsEnabled(ped.p,false)
        end,1000,1)
end

function changeSkin(player,key)
        if key == "arrow_l" then
                if currentskin == 1 then
                        currentskin = #skins[tostring(mak)]
                else
                        currentskin = currentskin - 1
                end
        elseif key == "arrow_r" then
                if currentskin == #skins[tostring(mak)] then
                        currentskin = 1
                else
                        currentskin = currentskin + 1
                end
        end
        update(player)
end

function update(player)
    for i,s in pairs(skins[tostring(mak)]) do
        if i == currentskin then
            setElementModel(player,tonumber(s))
        end
    end
end

function finishSelection(player,key)
        if key == "enter" then
            setCameraTarget(player,player)
            setElementFrozen(player,false)
			toggleAllControls(player,true)
			setPlayerTeam(player,getTeamFromName(mak))
            unbindKey(player,"arrow_l","down",changeSkin)
            unbindKey(player,"arrow_r","down",changeSkin)
            unbindKey(player,"enter","down",finishSelection)
            unbindKey(player,"backspace","down",exitSelection)
            for i,plr in pairs(getElementsByType("player")) do
                    setElementVisibleTo(player,plr,true)
                    setElementVisibleTo(plr,player,true)
            end
        end
end

function exitSelection(player,key)
        if key == "backspace" then
                setElementModel(player,tonumber(defaultSkin))
				setPlayerTeam(player,defaultTeam)
                setCameraTarget(player,player)
                setElementFrozen(player,false)
				toggleAllControls(player,true)
                unbindKey(player,"arrow_l","down",changeSkin)
                unbindKey(player,"arrow_r","down",changeSkin)
                unbindKey(player,"enter","down",finishSelection)
                unbindKey(player,"backspace","down",exitSelection)
                for i,plr in pairs(getElementsByType("player")) do
                        setElementVisibleTo(player,plr,true)
                        setElementVisibleTo(plr,player,true)
                end
        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...