sean5874 Geplaatst: 14 maart 2010 Rapport Geplaatst: 14 maart 2010 (bewerkt) Hallo, Ik maak een cellphone script en daar moet natuurlijk een sms-functie bij. Ik heb de onderstaande code al: new cmd[256], idx, tmp[256]; cmd = strtok(cmdtext, idx); if(strcmp(cmd, "/sms", true)==0) { new giveplayerid, text; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_RED, "USAGE: /sms [playerid] (text)"); return 1; } giveplayerid = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, 0xFF0000AA, "USAGE: /sms [playerid] (text)"); return 1; } text = strval(tmp); if(!IsPlayerConnected(giveplayerid)) { SendClientMessage(playerid, COLOR_RED, "That player is offline"); return 1; } new pname[MAX_PLAYER_NAME]; new string[256]; GetPlayerName(playerid, pname, sizeof (pname)); format(string, sizeof(string), "* SMS: %s Sender %s (%d)",text,pname,playerid); SendClientMessage(giveplayerid, COLOR_WHITE, string); return 1; } Stel dat je sms't: eikel! naar id 0. Dan zie ik * SMS: Sender: sean5874. Kortom, het lukt dus niet om de text te verzenden/te laten zien. Misschien omdat multi-param normaal met cijfers werkt? Weet iemand hier een oplossing voor?? Greetz, sean5874 Bewerkt: 14 maart 2010 door sean5874 Reageren
goudewup Geplaatst: 14 maart 2010 Rapport Geplaatst: 14 maart 2010 stel je command is /sms [id] [text] dan moet je eerst met strtok eerst het id ophalen en dan voor de text gebruik je het variabele cmdtext[8], dit is dus wat er ingevoerd is zonder de eerste acht tekens (/sms id). Reageren
Sandra Geplaatst: 14 maart 2010 Rapport Geplaatst: 14 maart 2010 @Goudewup: Dat gaat niet lukken omdat 'id' kan bestaan uit 1, 2, of 3 getallen dus in sommige gevallen werkt 'cmdtext[8]' niet. Reageren
sean5874 Geplaatst: 14 maart 2010 Auteur Rapport Geplaatst: 14 maart 2010 @Goudewup: ik krijg het er niet error-loos in, en als het gaat doet ie het nog steeds niet. @Megadreams: dcmd vond ik altijd al ingewikkeld, heb een paar tuts gelezen. Zou dit niet met strcmp mogelijk zijn? Reageren
Megadreams Geplaatst: 14 maart 2010 Rapport Geplaatst: 14 maart 2010 @Goudewup: ik krijg het er niet error-loos in, en als het gaat doet ie het nog steeds niet. @Megadreams: dcmd vond ik altijd al ingewikkeld, heb een paar tuts gelezen. Zou dit niet met strcmp mogelijk zijn? Geloof mij dcmd is vele makkelijker, handiger en sneller dan strcmp Reageren
goudewup Geplaatst: 14 maart 2010 Rapport Geplaatst: 14 maart 2010 if (strcmp("/sms", cmd, true) == 0) { new string[128], id; //variabelen aanmaken tmp = strtok(cmdtext, idx); //het id vinden id = strval(tmp); //het id bruikbaar maken if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_RED, "USAGE: /sms [id] [text]"); //checken of er een id is ingevuld format(string, sizeof(string), "(([sMS] %s: %s ))", name, cmdtext[7]); //het bericht maken SendClientMessage(id, 0xFFFFFFFF, string); //het bericht verzenden return 1; } Dit zou moeten werken Reageren
Remcconen Geplaatst: 14 maart 2010 Rapport Geplaatst: 14 maart 2010 @Goudewup: Dat gaat niet lukken omdat 'id' kan bestaan uit 1, 2, of 3 getallen dus in sommige gevallen werkt 'cmdtext[8]' niet. Reageren
goudewup Geplaatst: 14 maart 2010 Rapport Geplaatst: 14 maart 2010 (Sandra's post is verdwenen? :|) Vaak zijn het maar 2 getallen, en als je echt zeker wil zijn maak je er cmdtext[9] van, nadeel is dan wel dat er bij 1-getal-ids letters worden afgesneden... En ik weet eigenlijk geen andere manier met strcmp Reageren
Megadreams Geplaatst: 14 maart 2010 Rapport Geplaatst: 14 maart 2010 (Sandra's post is verdwenen? :|) Vaak zijn het maar 2 getallen, en als je echt zeker wil zijn maak je er cmdtext[9] van, nadeel is dan wel dat er bij 1-getal-ids letters worden afgesneden... En ik weet eigenlijk geen andere manier met strcmp Sandra's post is er nog En via strcmp is het veel te moeilijk, hij kan beter dcmd of zcmd gebruiken en die zijn echt makkelijker 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.