Jump to content
Bekijk in de app

Een betere weg om onze GTA community te volgen. Leer meer.

GTAGames.nl - De Nederlandse Grand Theft Auto Community!

Een volledig scherm app op het beginscherm inclusief notificaties, badges en meer.

Om deze app op je iPhone en iPad te installeren
  1. Druk op het icoon in Safari
  2. Scroll in het menu en druk op Zet op beginscherm.
  3. Druk op Voeg toe rechts bovenaan.
Om deze app op je Android toe te voegen
  1. Druk op het 3-punten menu (⋮) rechts bovenaan in de browser.
  2. Druk op Toevoegen aan beginscherm of Installeer app.
  3. Druk op Toevoegen om te bevestigen.
Geplaatst:
comment_1626916

Daar ben ik weer,

Ik heb een probleempje met mijn GameTextForPlayer met het aHouse systeem.

Dit was de code:

stock GetHouseStats(playerid, hid)
{
new str2[256];
format(str2, sizeof(str2), "Owned by: %s", hInfo[hid][Name]);
SendClientMessage(playerid, c_y, str2);
if(strcmp(hInfo[hid][Renter],"ForRent",true))
{
	format(str2, sizeof(str2), "Rented by: %s", hInfo[hid][Renter]);
	SendClientMessage(playerid, c_y, str2);
}
format(str2,sizeof(str2),"Cost: %i",hInfo[hid][Cost]);
SendClientMessage(playerid, c_y, str2);
}

Dit is de code nu:

stock GetHouseStats(playerid, hid)
{
new str2[256];
format(str2, sizeof(str2), "Owned by: %s", hInfo[hid][Name]);
GameTextForPlayer(playerid, str2, 3000, 6);
if(strcmp(hInfo[hid][Renter],"ForRent",true))
{
	format(str2, sizeof(str2), "Rented by: %s", hInfo[hid][Renter]);
	GameTextForPlayer(playerid, str2, 3000, 6);
}
format(str2,sizeof(str2),"Cost: %i",hInfo[hid][Cost]);
GameTextForPlayer(playerid, str2, 3000, 6);
}

Waarschijnlijk kunnen een paar van jullie de fout al zien, maar ik niet.

Als eerst dee hij het met SendClientMessage, maar dat spamt te veel en ik vind GameTextForPlayer mooier.

Maar, hij laat alleen maar de Cost zien, de owner of rent doet ie alsof het niet bestaat.

Eerst dacht ik dat ik nieuwe strings aan moet maken (str3,str4) maar dat had ook geen enkel effect. Naja, nu dee Owned by: alleen.

Enig idee hoe ik dit kan fixen?

Featured Replies

Geplaatst:
comment_1630295

Jouw code:

if(strcmp(hInfo[housenumber][Name],pname,true)==0)
new housename
{
SendClientMessage(playerid, c_y, "House name has been set!");
hInfo[housenumber][Housess] = housename;
}
else {
    SendClientMessage(playerid, c_r, "This house isn't yours!");
}
return 1;
}

De eerste regel is een if.

Alleen is deze helemaal niet van toepassing, dit komt door new housename.

Want zoals het er nu staat zou je die bovenste regel weg kunnen laten, en dan zie je de fout.

new housename
{
SendClientMessage(playerid, c_y, "House name has been set!");
hInfo[housenumber][Housess] = housename;
}
else {
    SendClientMessage(playerid, c_r, "This house isn't yours!");
}
return 1;
}

Een { moet (bijna?) altijd achter een if.

Dat ik dat niet heb gezien.

Bedankt!

Geplaatst:
comment_1630304

Weet iemand misschien wat er aan de hand is?

dcmd_housename(playerid,params[])
{
   #pragma unused params
new str1[256],pname[24],housenumber;
housenumber = GetHouseID(playerid);
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
new housename;
if(strcmp(hInfo[housenumber][Name],pname,true)==0)
{
SendClientMessage(playerid, c_y, "House name has been set!");
hInfo[housenumber][Housess] = housename;
}
else {
    SendClientMessage(playerid, c_r, "This house isn't yours!");
}
return 1;
}

Deze command doet niks.

edit:

Ik heb de command nu anders gemaakt maar hij geeft bij deze else { een error 008

dcmd_housename(playerid,params[])
{
   #pragma unused params
new str[256],str1[256],pname[24],housenumber;
housenumber = GetHouseID(playerid);
GetPlayerName(playerid, pname, 24);
format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
str = dini_Get(str1,"Name");
if (strcmp(str,pname,true)) return SendClientMessage(playerid, c_r, "This house isn't yours!");
new housename;
if (sscanf(params, "dd", housename)) return SendClientMessage(playerid, c_r, "USAGE: /housename <name of the house>");	
else if {
SendClientMessage(playerid, c_y, "House name has been set!");
hInfo[housenumber][Housess] = housename;
dini_IntSet(str1, "Housess", housename);
return 1;
}

Error: Bij de SendClientMessage zegt hij: error 008: Must be a constant expression; assumed zero.

Als ik die verwijder, gaat ie naar hInfo.

En als ik die verwijder gaat ie naar dini_IntSet

Bewerkt: door Gast

Geplaatst:
comment_1630406

bij een else if moet er wel (net als bij gewoon een if) een check staan

bijvoorbeeld:

else if(1==1){dingen}

oh, ik wist niet dat ik 'if' had.

Maar de command doet nog steeds niks ingame..

Bewerkt: door Gast

Geplaatst:
comment_1633980

Even reconstrueren.

dcmd_housename(playerid,params[])
{
   new 
       str[128],
       str1[128],
       pname[24],
       housenumber,
       housename;

   housenumber = GetHouseID(playerid);
   GetPlayerName(playerid, pname, 24);
   format(str1, sizeof(str1), "Houses/houseid%d", housenumber);
   str = dini_Get(str1,"Name");

   if (strcmp(str,pname,true)) return SendClientMessage(playerid, c_r, "This house isn't yours!");

   if (sscanf(params, "d", housename)) return SendClientMessage(playerid, c_r, "USAGE: /housename <name of the house>");  

   SendClientMessage(playerid, c_y, "House name has been set!");
   hInfo[housenumber][Housess] = housename;
   dini_IntSet(str1, "Housess", housename);

   return 1;
}

- Jij had #pragma unused params, terwijl je params wel degelijk gebruikt.

- strings van 256 cells zijn veel te groot. Die gebruik je bijna nooit. Voor zover ik weet alleen in MySQL voor lange queries.

- else if heb je niet nodig in dit geval. Het commando wordt automatisch afgekapt als het huis niet van de speler is, of bij verkeerd gebruik.

- Verder snap ik de bedoeling niet echt ... Housename. En jij wil er een nummer aan toekennen.

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

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.

Configureer push berichten

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.