Ymosky Geplaatst: 12 juni 2009 Rapport Geplaatst: 12 juni 2009 Heej all, kzit met een probleempje, is een beetje moeilijk uit te leggen, maar kzal het proberen: Ik heb op het moment een DM-systeem draaien, waarin verschillende Deathmatch's in een rotatie staan. Nu heeft iedere DM zijn eigen coördinaten waar je bij het commando /dmjoin en bij de OnPlayerSpawn naar toe word geteleporteerd. Die coordinaten staan netjes in een float, zodat er verschillende positie's zijn waar de spelers gespawnd worden. Zo'n float ziet er dan dus zo uit: new Float:DmPlayerSpawns[3][3] = { {1895.9885,1627.8905,75.7188}, {1960.5907,1661.8385,75.7188}, {1960.2485,1594.9419,75.7188} }; Zo heb ik er verschillende instaan, naar welke positie je geteleport word is afhankelijk van welke DM actief is. Maar dat levert uiteindelijk een chaos op bij zowel het /dmjoin commando als bij de OnPlayerSpawn. Want daar heb ik nu iets als dit: if (IsDM1Allowed == 1) { SetPlayerPos(playerid,DmPlayerSpawns[rand][0],DmPlayerSpawns[rand][1],DmPlayerSpawns[rand][2]); // de rest } if (IsDM2Allowed == 1) SetPlayerPos(playerid,DmPlayerSpawns2[rand][0],DmPlayerSpawns2[rand][1],DmPlayerSpawns2[rand][2]); // de rest } // enz. enz. Werkt allemaal prima, daar niet van, maar geweldig is het niet Nu is het idee om 1 nieuwe float te maken, die bij het starten van een deathmatch "gewijzigd" word, zodat ik bij de dmjoin en bij de OnPlayerSpawn eenvoudig 1 teleport kan plaatsen. Een stuk makkelijker met het toevoegen van meerdere DM's, en qua script ook een stuk effecienter, overzichtelijker enz. Alleen wil dat eigenlijk nog niet zo lukken. :$ Wat volgens mij mogelijk is is het volgende: new Float: DMpos[3][3] = { {0.0 , 0.0 , 0.0}, {0.0 , 0.0 , 0.0}, {0.0 , 0.0 , 0.0} }; En daarmee kan ik bij iedere nieuwe DM alle coordinaten in "DMpos" aanpassen, maar dan krijg ik dus iets in deze richting: DMpos[0][0] = 1895.9885; DMpos[0][1] = 1627.8905; DMpos[0][2] = 75.7188; DMpos[1][0] = 1960.5907; DMpos[1][1] = 1661.8385; DMpos[1][2] = 75.7188; DMpos[2][0] = 1960.2485; DMpos[2][1] = 1594.9419; DMpos[2][2] = 75.7188; Kan er mee door opzich, maar geweldig vind ik het nog steeds niet.. weet iemand hiervoor een betere/makkelijkere/efficinetere manier? Reageren
David22 Geplaatst: 12 juni 2009 Rapport Geplaatst: 12 juni 2009 (bewerkt) Zelf heb ik een spawnscript wat op ongeveer dezelfde manier werkt, maar dan nog met een enum erbij. Ik zal je de code even laten zien. enum HOUSE { naam[128], Float:x, Float:y, Float:z, Float:angle } new Huizen[][HOUSE] = { {"Gastenlocatie", 313.4830,-121.4031,3.5354,85.8133}, {"Huis 1", 313.5813,-92.2738,3.5354,88.5361}, {"Huis 2", 295.1910,-55.1505,2.7772,8.6621}, {"Huis 3", 271.6314,-49.2375,2.7772,5.8654}, {"Huis 4", 252.2988,-92.4656,3.5354,272.5665}, {"Huis 5", 252.0185,-121.4574,3.5354,267.7662}, {"Huis 6", 344.1266,-71.0004,2.4308,267.9598}, {"Huis 7", 330.9611,-39.9015,2.2255,266.4325}, {"Huis 8", 342.1291,62.4529,3.8460,100.5979}, {"Huis 9", 340.3252,33.7847,6.4104,123.4464}, {"Huis 10", 317.3200,54.8695,3.3750,234.5096}, {"Huis 11", 309.3769,43.9577,2.8880,30.2144}, {"Huis 12", 285.7070,41.4808,2.5295,203.2775}, {"Huis 13", 316.5920,17.5423,4.5156,12.7549}, {"Caravan 1", 261.1513, -270.4709, 1.5781, 314.4856}, {"Caravan 2", 264.3391, -288.3199, 1.5781, 263.9758}, {"Caravan 3", 259.7169, -302.4626, 1.9184, 234.0459}, {"Caravan 4", 235.1489, -308.9238, 1.5836, 183.4591} }; Hierdoor word je script een stuk duidelijker, omdat je ook gewoon bijvoorbeeld de x-waarde van de 3e rij simpel kan opvragen (3e rij = huis 3), op de volgende manier: SetPlayerPos(playerid, Huizen[3][x], Huizen[3][y], Huizen[3][z]); Maar nu wil jij weten hoe je per DM een andere spawn kan hebben. Stel, je maakt nog een extra variabele, en die noem je "WelkeDMIsActief". Gewoon een integer, want het word een geheel getal. Daar sla je dan in op welke DM er actief is, van 1 t/m het aantal DM's wat je wil hebben. Probleem is nu alleen dat je DM bij 1 begint, en je variabele bij 0. Gelukkig simpel op te lossen, want je kan er ook op deze manier naar verwijzen: SetPlayerPos(playerid, Huizen[WelkeDMIsActief - 1][x], Huizen[WelkeDMIsActief - 1][y], Huizen[WelkeDMIsActief - 1][z]); Enzovoorts. Ik hoop dat je hier wat aan hebt, zo niet moet je het maar even zeggen Bewerkt: 12 juni 2009 door David22 Reageren
Ymosky Geplaatst: 23 juni 2009 Auteur Rapport Geplaatst: 23 juni 2009 (bewerkt) Een beetje heel erg laat, maar alsnog bedankt! Het hele spul heb ik inmiddels draaiend, al heb ik het wel (toch) op mn eigen manier gedaan. Werkt in ieder geval en is voor simpele zielen als ik tenminste te begrijpen... :$ Maaruh... die enum lijkt me wel best handig, maar om eerlijk te zijn kom ik bij de sampwiki er niet echt aan uit. Misschien tip voor iemand die tijd/zin heeft om een Nederlandstalig tut te schrijven? Bewerkt: 23 juni 2009 door Ymosky Reageren
David22 Geplaatst: 23 juni 2009 Rapport Geplaatst: 23 juni 2009 Een beetje heel erg laat, maar alsnog bedankt! Het hele spul heb ik inmiddels draaiend, al heb ik het wel (toch) op mn eigen manier gedaan. Werkt in ieder geval en is voor simpele zielen als ik tenminste te begrijpen... :$ Maaruh... die enum lijkt me wel best handig, maar om eerlijk te zijn kom ik bij de sampwiki er niet echt aan uit. Misschien tip voor iemand die tijd/zin heeft om een Nederlandstalig tut te schrijven? Ik zal een dezer dagen wel eens wat schrijven Reageren
Crusher!! Geplaatst: 8 juli 2009 Rapport Geplaatst: 8 juli 2009 David is dat ook te gebruiken voor map icons en pickups? Reageren
David22 Geplaatst: 9 juli 2009 Rapport Geplaatst: 9 juli 2009 David is dat ook te gebruiken voor map icons en pickups? Ja, want het enige wat je doet is in feite het opslaan van coördinaten in een variabele 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.