Jump to content

[help] Wat is het probleem?(script, housename)


Recommended Posts

Geplaatst: (bewerkt)

Oke, nou, ik heb een error bij deze script, ik vermoed dat het heeft te maken met "str" bij deze line:

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

dini_IntSet(str,"Housess", housename);

Error: error 035: Argument type mismatch (argument 3)

Bewerkt: door Gast
Geplaatst:

Al een heel tijdje geleden dat ik nog in Pawno heb gescript, maar...

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

d staat voor een integer, en jij hebt een string nodig, ik dacht dat de letter s voor een string stond.

*even opgezocht in men oude server*

Ja, inderdaad, dus je moet die lijn veranderen in:

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

Geplaatst: (bewerkt)

Dom dom dom, ik gebruik helemaal geen temp of wat dan ook! Hartstikke dom, geen wonder dat het niet werkt.

Bewerkt: door Gast
Geplaatst: (bewerkt)

Oke, nou, ik heb een error bij deze script, ik vermoed dat het heeft te maken met "str" bij deze line:

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

dini_IntSet(str,"Housess", housename);

Error: error 035: Argument type mismatch (argument 3)

Edit:(oops, pardon, sorry voor de dubbel post)

Edit2: Ik ben erachter gekomen dat hij compiled zonder problemen als ik new housename[24]; verander naar new housename;. Maarrr, dan werkt het dus niet.

Edit3: Ik heb nu Dini_set geprobeert, ik krijg geen errors als ik compile, maar dan werkt hij dus ook niet.

Bewerkt: door Gast
Geplaatst:

•Heb geduld voor het krijgen van een antwoord, ga niet onnodig topics bumpen.

^uit de scripting forum regels^

bumpen is verboden

Geplaatst:

@Hierboven:

Moderator gedrag ook. :{

@Het probleem:

Om tekst (string) op te slaan heb je in ieder geval dini_Set nodig, aangezien dini_IntSet alleen maar gehele getallen (integers) kan opslaan.

En zo te zien lijkt het alsof je bent vergeten een waarde toe te kennen aan housename, waardoor je dus een lege string in de file zet.

Ik ga er vanuit dat je zoiets wilt maken? /housename [name]

In dat geval heb je de params wel nodig, dus haal die pragma alvast weg. De variabele heb je dan eigenlijk ook niet meer nodig, aangezien je die kan vervangen door params zelf.

Geplaatst:

@Hierboven:

Moderator gedrag ook. :{

@Het probleem:

Om tekst (string) op te slaan heb je in ieder geval dini_Set nodig, aangezien dini_IntSet alleen maar gehele getallen (integers) kan opslaan.

En zo te zien lijkt het alsof je bent vergeten een waarde toe te kennen aan housename, waardoor je dus een lege string in de file zet.

Ik ga er vanuit dat je zoiets wilt maken? /housename [name]

In dat geval heb je de params wel nodig, dus haal die pragma alvast weg. De variabele heb je dan eigenlijk ook niet meer nodig, aangezien je die kan vervangen door params zelf.

Ik heb dat zojuist gedaan, maar het werkt nog niet.

Geplaatst:

Dit is mijn code:

dcmd_housename(playerid,params[])
{
new pname[24],housenumber;
housenumber = GetHouseID(playerid);
GetPlayerName(playerid, pname, 24);
//Housess = (houseid, Housess, 24);
new tmp[256], Index; tmp = strtok(params,Index);
new housename = strval(tmp), str[256];
format(str, sizeof(str), "Houses/houseid%d", housenumber);
if(strcmp(hInfo[housenumber][Name],pname,true)==0)
{
SendClientMessage(playerid, c_y, "House name set!");
dini_Set(str,"Housess", housename);
hInfo[housenumber][Housess] = housename;
}
else if(strcmp(hInfo[housenumber][Renter],pname,true)==0)
{
     SendClientMessage(playerid, c_y, "House name set.");
     dini_Set(str,"Housess", housename);
     hInfo[housenumber][Housess] = housename;
}
else
{
    SendClientMessage(playerid, c_r, "This house isn't yours!");
}
return 1;
}

Ik krijg nu alweer "argument type mismatch" bij de 2 dini_Set's.

Geplaatst:

Wacht even hoor, want volgens mij snap je het zelf niet.

Eerst doe je een strtok op params, wat nergens goed voor is. Daarna maak je een variabele housename, waar je vervolgens weer een getal in steekt.

dcmd_housename(playerid, params[])
{
   if(!strlen(params))
       return SendClientMessage(playerid, COLOR_RED, "Usage: /housename [new name]");

   new
       file[32],
       pname[24], 
       housenumber;

   GetPlayerName(playerid, pname, sizeof(pname))
   housenumber = GetHouseID(playerid);

   format(file, sizeof(file), "Houses/houseid%d", housenumber);

   if( !strcmp(hInfo[housenumber][Name], pname) || !strcmp(hInfo[housenumber][Renter], pname) )
   {
       strmid(hInfo[housenumber][Housess], params, 0, sizeof(hInfo[housenumber][Housess]))
       dini_Set(file, "Housess", hInfo[housenumber][Housess]);
       SendClientMessage(playerid, c_y, "House name set.");
   }
   else
   {
       SendClientMessage(playerid, c_r, "This house isn't yours!");
   }
   return 1;
}

Geplaatst:

Wacht even hoor, want volgens mij snap je het zelf niet.

Eerst doe je een strtok op params, wat nergens goed voor is. Daarna maak je een variabele housename, waar je vervolgens weer een getal in steekt.

dcmd_housename(playerid, params[])
{
   if(!strlen(params))
       return SendClientMessage(playerid, COLOR_RED, "Usage: /housename [new name]");

   new
       file[32],
       pname[24], 
       housenumber;

   GetPlayerName(playerid, pname, sizeof(pname))
   housenumber = GetHouseID(playerid);

   format(file, sizeof(file), "Houses/houseid%d", housenumber);

   if( !strcmp(hInfo[housenumber][Name], pname) || !strcmp(hInfo[housenumber][Renter], pname) )
   {
       strmid(hInfo[housenumber][Housess], params, 0, sizeof(hInfo[housenumber][Housess]))
       dini_Set(file, "Housess", hInfo[housenumber][Housess]);
       SendClientMessage(playerid, c_y, "House name set.");
   }
   else
   {
       SendClientMessage(playerid, c_r, "This house isn't yours!");
   }
   return 1;
}

Ik kan er momenteel niet naar kijken, maar ik weet zeker dat

strmid(hInfo[housenumber][Housess], params, 0, sizeof(hInfo[housenumber][Housess]))

een paar errors gaat geven. Ik ben niet echt bekend met dcmd, maar toch weet ik wel dat die wat errors gaat geven.

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