shaio Posted November 10, 2016 Share Posted November 10, 2016 (edited) 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 November 10, 2016 by shaio Link to comment
Gravestone Posted November 10, 2016 Share Posted November 10, 2016 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)}) I don't see any table named as 'ped' and 'marker'. Do they exist? Link to comment
shaio Posted November 10, 2016 Author Share Posted November 10, 2016 (edited) 27 minutes ago, Gravestone said: 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)}) I don't see any table named as 'ped' and 'marker'. Do they exist? u make a table here.. table called 'peds' exists, this is just creating a sub-table in the peds table.. Edited November 10, 2016 by shaio Link to comment
shaio Posted November 12, 2016 Author Share Posted November 12, 2016 Could anyone help me with this? Link to comment
pa3ck Posted November 12, 2016 Share Posted November 12, 2016 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)}}) Try that one. Link to comment
shaio Posted November 14, 2016 Author Share Posted November 14, 2016 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
Tails Posted November 14, 2016 Share Posted November 14, 2016 (edited) 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 November 14, 2016 by Tails Link to comment
Tails Posted November 14, 2016 Share Posted November 14, 2016 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 1 Link to comment
shaio Posted November 15, 2016 Author Share Posted November 15, 2016 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
shaio Posted November 16, 2016 Author Share Posted November 16, 2016 Could anyone help me with this? Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now