Posts: 6,129
Threads: 36
Joined: Jan 2009
It's an input type dialog, which would return into the 'inputtext' variable (which is a string, not an integer).
Use this as it's a hell of a lot neater and your problem is fixed:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1 && response)
{
new age = strval(inputtext);
if(strlen(inputtext) < 1 && !IsNumeric(inputtext))
{
SendClientMessage(playerid, COLOR_RED, "You must enter a numeric string!");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Please enter your characters age", "Please enter your characters' age!" , "Continue", "Cancel");
}
else
{
if(age < 120 || age >= 1)
{
new string[128];
PlayerInfo[playerid][pAge] = age;
format(string, sizeof(string), "Hooray! Your age has been set to %d!", age);
SendClientMessage(playerid, COLOR_RED, string);
}
else
{
SendClientMessage(playerid, COLOR_RED, "You must enter an age, from between 1 to 120!");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Please enter your characters age", "Please enter your characters' age!" , "Continue", "Cancel");
}
}
}
return 1;
}
Posts: 6,129
Threads: 36
Joined: Jan 2009
Quote:
Originally Posted by MisterTickle
Thanks, I'm fairly new to scripting and I kept trying to get it to work thats why its so sloppy and fucked up.
How can I make it not allow text strings cause I can enter like "lol" and it will say I set my age to 0
I think this...
Код:
if(strlen(inputtext) < 1 || !IsNumeric(inputtext))
{
SendClientMessage(playerid, COLOR_RED, "You must enter a numeric age between 1 and 120 Ex: 56");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Questionare", "Please enter your age", "Continue", "Cancel");
}
Was supposed to stop it but it didn't
My IsNumeric is this if its messed up
Код:
stock IsNumeric(string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string[i] > '9' || string[i] < '0') return 0;
}
return 1;
}
|
Код:
if(strlen(inputtext) < 1 || !IsNumeric(inputtext))
{
SendClientMessage(playerid, COLOR_RED, "You must enter a numeric age between 1 and 120 Ex: 56");
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Questionare", "Please enter your age", "Continue", "Cancel");
}
My bad. That'll work for ye'.