Gast Geplaatst: 7 oktober 2010 Rapport Geplaatst: 7 oktober 2010 (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: 8 oktober 2010 door Gast Reageren
GTAguillaume Geplaatst: 8 oktober 2010 Rapport Geplaatst: 8 oktober 2010 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>"); Reageren
Gast Geplaatst: 8 oktober 2010 Rapport Geplaatst: 8 oktober 2010 (bewerkt) Dom dom dom, ik gebruik helemaal geen temp of wat dan ook! Hartstikke dom, geen wonder dat het niet werkt. Bewerkt: 8 oktober 2010 door Gast Reageren
BoerTijger Geplaatst: 8 oktober 2010 Rapport Geplaatst: 8 oktober 2010 Welke error's heb je eigenlijk Reageren
Gast Geplaatst: 8 oktober 2010 Rapport Geplaatst: 8 oktober 2010 (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: 8 oktober 2010 door Gast Reageren
Morph1 Geplaatst: 9 oktober 2010 Rapport Geplaatst: 9 oktober 2010 •Heb geduld voor het krijgen van een antwoord, ga niet onnodig topics bumpen. ^uit de scripting forum regels^ bumpen is verboden Reageren
Big Boss Geplaatst: 9 oktober 2010 Rapport Geplaatst: 9 oktober 2010 @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. Reageren
Gast Geplaatst: 10 oktober 2010 Rapport Geplaatst: 10 oktober 2010 @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. Reageren
Gast Geplaatst: 12 oktober 2010 Rapport Geplaatst: 12 oktober 2010 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. Reageren
Big Boss Geplaatst: 12 oktober 2010 Rapport Geplaatst: 12 oktober 2010 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; } Reageren
Gast Geplaatst: 12 oktober 2010 Rapport Geplaatst: 12 oktober 2010 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. Reageren
Gast Geplaatst: 14 oktober 2010 Rapport Geplaatst: 14 oktober 2010 Ik heb ernaar gekeken, en het levert inderdaad wat errors op. 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.