Jump to content

Eigen radio command.


Recommended Posts

Geplaatst: (bewerkt)

Ik ben bezig geweest met een eigen radio command voor de mensen die politie zijn.

Maar ik krijg het niet voor elkaar om de clientmessage naar iedereen te sturen die politie is.

Dit is wat ik gebruikte, waarvan ik zeker wist dat het niet zou werken, maar ik had geen enkel idee hoe ik het anders had kunnen doen.

new cops = job[giveplayerid] == 1 || job[giveplayerid] == 2 || job[giveplayerid] == 3 || job[giveplayerid] == 4 || job[giveplayerid] == 5 || job[giveplayerid] == 6 || job[giveplayerid] == 7 || job[giveplayerid] == 8;

   format(string,sizeof(string),"Police radio %s(%i): %s, over.", sendername, playerid, cmdtext[3]);
   SendClientMessage(cops, COLOR_LIGHTBLUE, string);

Het rare is, dat als iemand anders /r gebruikt, hij/zij de string zelf niet kan lezen, maar ik wel. Als ik /r gebruik, dan kan ik mijn eigen string wel lezen maar de andere niet.

Wat hulp zou ik erg waarderen :)

Edit: ik heb i.p.v giveplayerid ook gewoon playerid geprobeert te gebruiken. Maar dat werkte niet.

Bewerkt: door Gast
Geplaatst:

Je moet een loop gebruiken. Een loop - of 'lus', in het Nederlands - herhaalt een stuk code een bepaald aantal keer.

Als je het aantal keren dat de loop herhaald moet worden niet weet, gebruik je doorgaans while of do-while. Als je het wel weet kan je ook de for-loop gaan gebruiken.

Hier kan je meer lezen over loops.

format(string,sizeof(string),"Police radio %s (%i): %s, over.", sendername, playerid, cmdtext[3]);
// Sommige mensen plaatsen deze format ook in de loop, maar dat is niet nodig. Het bericht is immers toch steeds hetzelfde

for(new i; i < MAX_PLAYERS; i++)
{
   if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
   if(!(1 <= job[i] <= ) continue;

   SendClientMessage(i, COLOR_LIGHTBLUE, string);
}

Geplaatst: (bewerkt)

Je moet een loop gebruiken. Een loop - of 'lus', in het Nederlands - herhaalt een stuk code een bepaald aantal keer.

Als je het aantal keren dat de loop herhaald moet worden niet weet, gebruik je doorgaans while of do-while. Als je het wel weet kan je ook de for-loop gaan gebruiken.

Hier kan je meer lezen over loops.

format(string,sizeof(string),"Police radio %s (%i): %s, over.", sendername, playerid, cmdtext[3]);
// Sommige mensen plaatsen deze format ook in de loop, maar dat is niet nodig. Het bericht is immers toch steeds hetzelfde

for(new i; i < MAX_PLAYERS; i++)
{
   if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;
   if(!(1 <= job[i] <= ) continue;

   SendClientMessage(i, COLOR_LIGHTBLUE, string);
}

Oke, bedankt. Ik zou toch graag willen weten waarom ik een loop moet gebruiken. Dat doe ik zodat ik weet wat ik in mijn script zorg. Je snapt vast wel waarom.

Edit: Weet je ook hoe ik deze command zo kan maken dat /r hetzelfde effect heeft als /radio? Ik heb niet echt een idee hoe ik dit doe, want ik gebruik cmdtext.

if(strcmp(cmd, "/r", true, 2) == 0) {

&

if(strcmp(cmd, "/radio", true, 6) == 0) {

Je ziet het al, als je /radio gebruikt zal er ingame je tekst komen testaan. Maar het word 2x verstuurd op deze manier:

/radio hi :

Police radio Biesmen (0): hi, over.

Police radio Biesmen (0): adio hi, over."

Negeer het rode! Ik heb het gefixed dmv result te gebruiken bij mijn /local command. (Dat is ook een loop geloof ik, ik moet echt even die dingen bestuderen)

Bewerkt: door Gast
Geplaatst:

Oke, bedankt. Ik zou toch graag willen weten waarom ik een loop moet gebruiken. Dat doe ik zodat ik weet wat ik in mijn script zorg. Je snapt vast wel waarom.

Dan gaat de server alle spelers langs en kijkt hij of de speler het bericht moet krijgen of niet.

Geplaatst:

Oke, bedankt. Ik zou toch graag willen weten waarom ik een loop moet gebruiken. Dat doe ik zodat ik weet wat ik in mijn script zorg. Je snapt vast wel waarom.

Dan gaat de server alle spelers langs en kijkt hij of de speler het bericht moet krijgen of niet.

Ah, oké!

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.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...