thuron Geplaatst: 15 mei 2009 Rapport Geplaatst: 15 mei 2009 ik wil er voor zorgen dat een definitie, bijvoorbeeld #define Jobmoney 1500 kan veranderen op basis van het aantal mensen dat online is. ik heb het geprobeerd met GetMaxPlayers, maar dat krijg ik niet voor elkaar omdat het niet in een public staat. hoe kan ik er voor zorgen dat dat wel werkt? Reageren
Remi-X Geplaatst: 15 mei 2009 Rapport Geplaatst: 15 mei 2009 (bewerkt) Ik denk dat jij wilt weten hoe je het aantal spelers online wilt laten weergeven? Ik denk dat ik wel wet hoe dat moet new PlayersOnline; forward PlayerCount() OnGameModeInit { SetTimer("PlayerCount", 500, true); } public PlayerCount() for(new i = 0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { PlayersOnline ++; //Doe iets, met een TextDrawSetString ofzo } return 1; } Wat je ook kan doen: public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/ponline", cmdtext, true) == 0) { for(new i = 0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { new PlayersOnline; new string[256]; PlayersOnline ++; format(string, sizeof(string), "%d players online!", PlayersOnline); SendClientMessage(playerid, COLOR, string); return 1; } } } return 1; } Als dit niet is wat je bedoelt, zeg het dan even EDIT: Hmm, uitlijning werkt niet lekker Bewerkt: 15 mei 2009 door Remi-X Reageren
thuron Geplaatst: 15 mei 2009 Auteur Rapport Geplaatst: 15 mei 2009 (bewerkt) nee, dat is niet wat ik bedoel. stel je voor: ik heb een definitie: #define lol 1000 ik wil die definitie op 1000 hebben als er minder dan 10 mensen zijn, als er 10-20 mensen zijn wil ik bijvoorbeeld: #define lol 2000 hoe kan ik daar voor zorgen? Bewerkt: 15 mei 2009 door thuron Reageren
Remi-X Geplaatst: 15 mei 2009 Rapport Geplaatst: 15 mei 2009 (bewerkt) new PlayersOnline; forward Defines(); OnGameModeInit() { SetTimer("Defines", 500, true); } public Defines() { for(new i = 0; i <= MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { PlayersOnline ++; //Aantal spelers tellen } } if(PlayersOnline <= 10) //dus 10 en minder { #undef NAME //Zorgen dat de vorige define word uitgeschakeld #define NAME 10 //En zet hem opnieuw } else if(PlayersOnline > 10 || PlayersOnline <= 20) //Van 11 tot en met 20 { #undef NAME #define NAME 20 } return 1; } Bedoel je zoeits? Gaat veel code worden, maa ik weet zo snel even geen andere manier. Bewerkt: 15 mei 2009 door Remi-X Reageren
toenie Geplaatst: 15 mei 2009 Rapport Geplaatst: 15 mei 2009 Dan moet je gewone variabelen gebruiken en geen definities. Definities behoor je niet te kunnen wijzigen, want daarom worden het definities genoemd. Werk bij veranderende waardes gewoon met variabelen Reageren
Remi-X Geplaatst: 15 mei 2009 Rapport Geplaatst: 15 mei 2009 Lees de hoofdpost nou eens Hij wil JUIST dat die definities kunnen worden veranderd, dus wat ik doe is goed. En 'Definitie' betekent niet dat het maar 1 betekenis heeft. Het weer, en alweer, 2 verschillende 'definities' van 'weer'. Ik defineer hier ook verschillende waarden, voor 1 ding. Reageren
Big Boss Geplaatst: 15 mei 2009 Rapport Geplaatst: 15 mei 2009 Als je het zo doet word het alleen lokaal gedefiniëerd, en dat gaat dus niet werken. Je hebt een globale define nodig. Variabelen zijn in dit geval gewoon de beste keus. Reageren
thuron Geplaatst: 15 mei 2009 Auteur Rapport Geplaatst: 15 mei 2009 dat zal best, maar dat kan in dit geval niet. Reageren
D-V-D-K Geplaatst: 16 mei 2009 Rapport Geplaatst: 16 mei 2009 dat zal best, maar dat kan in dit geval niet. Dan kunnen wij jouw ook niet helpen 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.