goudewup Geplaatst: 12 november 2011 Rapport Geplaatst: 12 november 2011 Hey daar! Ik ben bezig met een project en moet daarvoor van een string losse variabelen maken, ik moet de string exploden dus. Ik heb nu dus ook geen idee hoe ik dit voor elkaar zou moeten krijgen? Het gaat om de string 405,2499.1084,1247.9514,10.6000,88.2925,-1,-1 Deze cijfers moeten uiteindelijk argumenten worden voor AddStaticVehicle... Ik krijg het maar niet voor elkaar om de argumenten goed te scheiden... Reageren
Basssss Geplaatst: 12 november 2011 Rapport Geplaatst: 12 november 2011 Je kunt het beste de losse ID's eruit vissen met strmid of iets dergelijks. De losse strings met enkel één nummer erin kun je omzetten naar een integer met strval of omzetten naar een float met floatstr. Reageren
goudewup Geplaatst: 12 november 2011 Auteur Rapport Geplaatst: 12 november 2011 Daar ligt het probleem ook niet, maar de string scheiden lukt me niet. Dus ieder argument in een los variabele o.i.d. krijgen... Reageren
Basssss Geplaatst: 12 november 2011 Rapport Geplaatst: 12 november 2011 new string[64] = "405,2499.1084,1247.9514,10.6000,88.2925,-1,-1"; new id[4], x[8], y[8], z[8], r[8], c1[4], c2[4]; // alles in een losse string stoppen. strmid(id, string, 0, 3); // pakt de id strmid(x, string, 4, 13); // pakt de x strmid(y, string, 14, 23); // pakt de y strmid(z, string, 24, 31); // pakt de z strmid(r, string, 32, 39); // pakt de r strmid(c1, string, 40, 42); // pakt de color 1 strmid(c2, string, 43, 45); // pakt de color 2 // Weet niet zeker of de posities exact zijn.. // Bovendien moeten álle strings hierbij even lang zijn,! // Heb je ergens langere coördinaten, dan moet je 0 toevoegen bij de korte coördinaten zodat ze even lang blijven. // Nu kun je ze gewoon omzetten: new iID = strval(id); new Float: fX = floatstr(x); new Float: fY = floatstr(y); // ect... Er zijn vast wel andere manieren, maar dit is wat ik zo snel even kon bedenken. Reageren
goudewup Geplaatst: 12 november 2011 Auteur Rapport Geplaatst: 12 november 2011 Het nadeel van jouw manier is dat zodra een float bijvoorbeeld een kommagetal meer heeft hij al niet meer werkt... En dit is voor een dynamisch script dus dat gaat hem niet worden, maar toch bedankt! Ik heb ondertussen zelf al wat gezocht en ben toen op sscanf gekomen, hiermee ik heb geprobeerd en het werkt! Voor wie nog met ditzelfde probleem zit: new modelid, Float:spawnx, Float:spawny, Float:spawnz, Float:spawna, col1, col2; sscanf(string, "p<,>iffffii", modelid, spawnx, spawny, spawnz, spawna, col1, col2); printf("DEBUG:AddStaticVehicle(%i, %f, %f, %f, %f, %i, %i);", modelid, spawnx, spawny, spawnz, spawna, col1, col2); Reageren
Recommended Posts
Een reactie plaatsen
Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.