Nameless303 Geplaatst: 6 november 2009 Rapport Geplaatst: 6 november 2009 Goedemorgn Iedereen (; In mn GM hebk een Float: //Top of the script new Float:SpawnLoc[4] = {1.1, 1.1, 1.1, 1}; Nu wil ik een command maken, waarmee ik die float kan wijzigin in bv 2.2, 2.2, 2.2, 2. Hoe doe ik dit precies? Thanks (: Reageren
Remi-X Geplaatst: 6 november 2009 Rapport Geplaatst: 6 november 2009 Als het goed is kan je nu op elk gewenst punt het volgende doen: SpawnLoc[0] = 2.2; SpawnLoc[1] = 2.2; SpawnLoc[2] = 2.2; SpawnLoc[3] = 2; Het slot [4] word hier niet gebruikt. Reageren
Nameless303 Geplaatst: 6 november 2009 Auteur Rapport Geplaatst: 6 november 2009 Als het goed is kan je nu op elk gewenst punt het volgende doen: SpawnLoc[0] = 2.2; SpawnLoc[1] = 2.2; SpawnLoc[2] = 2.2; SpawnLoc[3] = 2; Het slot [4] word hier niet gebruikt. Zover was ik ook al, maar die lijkt niet te werken... Mn code; //Vanboven in het script new Float:SpawnLocGrove[4] = {1.1,1.1,1.1,1.1}, Float:SpawnLocBallas[4] = {1.1,1.1,1.1,1.1}; new Float:WarLocGrove[2][4] = { {217.7683,1856.1923,13.0176,6.0815}, // loc1 {213.9867,1884.2385,98.3855,1.1} // loc2 }, Float:WarLocBallas[2][4] = { {358.380859375, 2703.884765625, 308.44915771484, 5.4547119140625}, // loc1 {213.9867,1884.2385,98.3855,1.1} // loc2 }; //Onder OnGameModeInit SetWar(1); AddPlayerClassEx(TEAM_GROVE, 105, SpawnLocGrove[0], SpawnLocGrove[1], SpawnLocGrove[2], SpawnLocGrove[3], 0, 0, 0, 0, 0, 0); AddPlayerClassEx(TEAM_GROVE, 106, SpawnLocGrove[0], SpawnLocGrove[1], SpawnLocGrove[2], SpawnLocGrove[3], 0, 0, 0, 0, 0, 0); AddPlayerClassEx(TEAM_GROVE, 107, SpawnLocGrove[0], SpawnLocGrove[1], SpawnLocGrove[2], SpawnLocGrove[3], 0, 0, 0, 0, 0, 0); AddPlayerClassEx(TEAM_BALLAS, 102, SpawnLocBallas[0], SpawnLocBallas[1], SpawnLocBallas[2], SpawnLocBallas[3], 0, 0, 0, 0, 0, 0); AddPlayerClassEx(TEAM_BALLAS, 103, SpawnLocBallas[0], SpawnLocBallas[1], SpawnLocBallas[2], SpawnLocBallas[3], 0, 0, 0, 0, 0, 0); AddPlayerClassEx(TEAM_BALLAS, 104, SpawnLocBallas[0], SpawnLocBallas[1], SpawnLocBallas[2], SpawnLocBallas[3], 0, 0, 0, 0, 0, 0); //En ten slotte stock SetWar(i) stock SetWar(i) { switch(i) { case 1: { SpawnLocGrove[0] = WarLocGrove[0][0]; SpawnLocGrove[1] = WarLocGrove[0][1]; SpawnLocGrove[2] = WarLocGrove[0][2]; SpawnLocGrove[3] = WarLocGrove[0][3]; SpawnLocBallas[0] = WarLocBallas[0][0]; SpawnLocBallas[1] = WarLocBallas[0][1]; SpawnLocBallas[2] = WarLocBallas[0][2]; SpawnLocBallas[3] = WarLocBallas[0][3]; for(new p = 0; p <= MAX_PLAYERS; p++) { if(IsPlayerConnected(i) && GetPlayerTeam(p) == Ballas) { SetPlayerPos(p,WarLocBallas[0][0], WarLocBallas[0][1], WarLocBallas[0][2], WarLocBallas[0][3]); } } SetTimerEx("SetWar",8000,false,"i",2); } case 2: { SpawnLocGrove[0] = WarLocGrove[1][0]; SpawnLocGrove[1] = WarLocGrove[1][1]; SpawnLocGrove[2] = WarLocGrove[1][2]; SpawnLocGrove[3] = WarLocGrove[1][3]; SpawnLocBallas[0] = WarLocBallas[1][0]; SpawnLocBallas[1] = WarLocBallas[1][1]; SpawnLocBallas[2] = WarLocBallas[1][2]; SpawnLocBallas[3] = WarLocBallas[1][3]; SetTimerEx("SetWar",8000,false,"i",1); } } return 1; } Dus ik verwacht dat de spawn locatie iedere 8 seconden wordt gewijzigd... Maar dat doet ie dus niet... Thanks! Reageren
Remi-X Geplaatst: 6 november 2009 Rapport Geplaatst: 6 november 2009 (bewerkt) De fout zijn de floats niet, de fout is je functie. Een stock functie kan je namelijk onmogelijk timen. Het zal dan gewoon niks doen. Een stock functie is het vereenvoudigen van een stuk code. Wat jij moet doen is een callback gebruiken. Die gebruik je om een stuk code uit te voeren. Dus doe het volgende: forward SetWar(i); //Bovenaan je script, onder je defines, includes en nieuwe variablen, maar boven main() //stock SetWar(i) word public SetWar(i) { ... } Daarnaast zou ik IsPlayerConnected(i) uit if(IsPlayerConnected(i) && GetPlayerTeam(p) == Ballas) nog even veranderen in IsPlayerConnected(p) omdat jij een loop maakt met de variable "p" die alle spelers moet doorlopen Bewerkt: 6 november 2009 door Remi-X Reageren
Nameless303 Geplaatst: 6 november 2009 Auteur Rapport Geplaatst: 6 november 2009 De fout zijn de floats niet, de fout is je functie. Een stock functie kan je namelijk onmogelijk timen. Het zal dan gewoon niks doen. Een stock functie is het vereenvoudigen van een stuk code. Wat jij moet doen is een callback gebruiken. Die gebruik je om een stuk code uit te voeren. Dus doe het volgende: forward SetWar(i); //Bovenaan je script, onder je defines, includes en nieuwe variablen, maar boven main() //stock SetWar(i) word public SetWar(i) { ... } Daarnaast zou ik IsPlayerConnected(i) uit if(IsPlayerConnected(i) && GetPlayerTeam(p) == Ballas) nog even veranderen in IsPlayerConnected(p) omdat jij een loop maakt met de variable "p" die alle spelers moet doorlopen Werkt Perfect!! Thanks!! (: Remi-X is super 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.