shaio Posted November 10, 2016 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
Gravestone Posted November 10, 2016 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?
shaio Posted November 10, 2016 Author 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
pa3ck Posted November 12, 2016 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.
shaio Posted November 14, 2016 Author 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
Tails Posted November 14, 2016 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
Tails Posted November 14, 2016 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
shaio Posted November 15, 2016 Author 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
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