Jump to content

Probleempje


Recommended Posts

Geplaatst:

Hey hallo :D

ik heb een klein probleempje bij me /paycheck command.

het is dus dat hij de string niet wilt uitvoeren maar weet niet waarom.

if (strcmp("/paycheck", cmdtext, true, 10) == 0)
{
    if (IsPlayerAdmin(playerid))
    {
    new string[128];
    new count;
    new PaycheckMoney;
    new givescore;
	givescore = GetPlayerScore(playerid) + 1;
    PaycheckMoney = 1500+random(5000);
    SetPlayerScore(playerid, givescore);
	for(count = 0; count <= 100; count++)
	{
	GivePlayerMoney((count), PaycheckMoney);
	}
	SendClientMessageToAll(COLOR_RED,"*****************************************************************");
	SendClientMessageToAll(COLOR_LBLUE, "You have recived a paycheck from the Government.");
	format(string, sizeof(string), "Recived %d dollar.", PaycheckMoney);
   	SendClientMessageToAll(COLOR_LBLUE, string);
   	format(string, sizeof(string), "Level : &d", GetPlayerScore(playerid));
   	SendClientMessageToAll(COLOR_LBLUE, string);
	SendClientMessageToAll(COLOR_RED,"*****************************************************************");
	}
	else SendClientMessage(playerid, COLOR_RED, "Only admins can use this command!");
	return 1;
}

erg bedankt als je het kan oplossen. :D

Geplaatst: (bewerkt)

wat is precies je bedoeling want eerst zie je dat alleen de speler die /paycheck geld en een punt krijgt en verderop ga je iedereen vertellen dat ze geld hebben gekregen :?

edit: ow wacht bij giveplayermoney heb je geen playerid, maar hoe heb je count gedefined?

srry ben even te snel aan het kijken, playerid's kan je niet in de gewone cmdtext gebruiken. je zou stock of dcmd of zcmd moeten gebruiken. heb er nu geen tijd voor om te maken want ik moet morgen tot half 6 werken en zaterdag tot half 4 en in die avonden moet ik ook nog ff een surprise in elkaar flansen:S

Bewerkt: door Morph1
Geplaatst:

er was geen probleem met playerid ofzo want dat werkte bij me andere command ook gewoon goed

het probleem was dat hij hem fout opsloeg :D

Geplaatst:

maar als je hem op wilt slaan in een bestandje zit de fout niet in het commando, misschien geeft hij het wel maar zit er een fout in het gedeelte waar hij hem opslaat.

Geplaatst: (bewerkt)

       if (strcmp("/paycheck", cmdtext, true, 10) == 0)
       {
           if (IsPlayerAdmin(playerid))
           {
           new string[128];
           new count;
           new PaycheckMoney;
           new givescore;
               givescore = GetPlayerScore(playerid) + 1;
           PaycheckMoney = 1500+random(5000);
           SetPlayerScore(playerid, givescore);
               for(count = 0; count <= 100; count++)
               {
               GivePlayerMoney((count), PaycheckMoney);
               }
               SendClientMessageToAll(COLOR_RED,"*****************************************************************");
               SendClientMessageToAll(COLOR_LBLUE, "You have recived a paycheck from the Government.");
               format(string, sizeof(string), "Recived %d dollar.", PaycheckMoney);
       SendClientMessageToAll(COLOR_LBLUE, string);
       format(string, sizeof(string), "Level : &d", GetPlayerScore(playerid));
       SendClientMessageToAll(COLOR_LBLUE, string);
               SendClientMessageToAll(COLOR_RED,"*****************************************************************");
               }
               else SendClientMessage(playerid, COLOR_RED, "Only admins can use this command!");
               return 1;
       }

Zoals ik al eerder heb gezegt in vorige topic van jou, waarom tel je de 'letters'(symbolen) die in /paycheck zitten. Hiermee zorg je dat CMDText gaat functioneren. Dat heb je in deze command niet nodig.

Voor jouw probleem, je geprijkt 'string' twee keer voor twee verschillende berichten. Dat kan niet.

Doe boven aan je command

new string2[128];

Dan vervang je

format(string, sizeof(String), "Level : %d", GetPlayerScore(playerid));

met

format(string2, sizeof(String2), "Level : %d", GetPlayerScore(playerid));

Dus dan wordt het:

       if (strcmp("/paycheck", cmdtext, true) == 0)
       {
           if (IsPlayerAdmin(playerid))
           {
           new string[128], string2[128];
           new count;
           new PaycheckMoney;
           new givescore;
               givescore = GetPlayerScore(playerid) + 1;
           PaycheckMoney = 1500+random(5000);
           SetPlayerScore(playerid, givescore);
               for(count = 0; count <= 100; count++)
               {
               GivePlayerMoney((count), PaycheckMoney);
               }
               SendClientMessageToAll(COLOR_RED,"*****************************************************************");
               SendClientMessageToAll(COLOR_LBLUE, "You have recived a paycheck from the Government.");
               format(string, sizeof(string), "Recived %d dollar.", PaycheckMoney);
       SendClientMessageToAll(COLOR_LBLUE, string);
       format(string2, sizeof(string2), "Level : &d", GetPlayerScore(playerid));
       SendClientMessageToAll(COLOR_LBLUE, string2);
               SendClientMessageToAll(COLOR_RED,"*****************************************************************");
               }
               else SendClientMessage(playerid, COLOR_RED, "Only admins can use this command!");
               return 1;
       }

Bewerkt: door Gast
Geplaatst:

Voor jouw probleem, je geprijkt 'string' twee keer voor twee verschillende berichten. Dat kan niet.

Kan perfect. Voorbeeldje:

new
   string[128];

format(string, sizeof(string), "Bericht %d", 1);
SendClientMessage(playerid, COLOR_WHITE, string);

// Dit bericht is nu verzonden, dus we hebben de waarde die in string zit niet meer nodig
// Dus kunnen we string hier opnieuw gebruiken

format(string, sizeof(string), "Bericht %d", 2);
SendClientMessage(playerid, COLOR_WHITE, string);

Wat NIET zal werken is dit:

format(string, sizeof(string), "Bericht %d", 1);
format(string, sizeof(string), "Bericht %d", 2);

SendClientMessage(playerid, COLOR_WHITE, string);
SendClientMessage(playerid, COLOR_WHITE, string);

Hier zal string enkel Bericht 2 bevatten en bovendien tweemaal verzonden worden.

In dit voorbeeld kan je jouw manier wel toepassen.


Dan, omtrent het probleem. Je zal de berichten naar iedereen apart moeten versturen, aangezien je een player variabele wil verzenden. Dit houdt in dat je SendClientMessages ook in de loop moeten geplaatst worden.

for(new i; i < MAX_PLAYERS; i++)
{
   if(!IsPlayerConnected(i) || IsPlayerNPC(i)) continue;

   SendClientMessage(i, COLOR_RED,"*****************************************************************");
   SendClientMessage(i, COLOR_LBLUE, "You have recived a paycheck from the Government.");

   format(string, sizeof(string), "Recieved %d dollar.", PaycheckMoney);
   SendClientMessage(i, COLOR_LBLUE, string);

   format(string, sizeof(string), "Level : &d", GetPlayerScore(i));
   SendClientMessage(i, COLOR_LBLUE, string2);

   SendClientMessage(i, COLOR_RED,"*****************************************************************");

   GivePlayerMoney(i, PaycheckMoney);
   SetPlayerScore(i, GetPlayerScore(i)+1);
}

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...