Hallo, habe administrativ mal einen Befehl gebaut wo man einige Infos ändern kann wie z.B auch den Namen und das Alter
Leider wird mir nur der 1. Dialog aufgerufen, alle weiteren leider nicht
dann habe ich versucht es zu debuggen mit Prints aber es wird nicht geprintet
vlt könnt ihr mir helfen Jeffry ne Nuss für dich
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_CHANGE_ANY)
{
new string[256],pID;
pID = GetPVarInt(playerid,"changeID");
if(response)
{
//SpielerName(pID),sInfo[pID][alter],sInfo[playerid][rang],sInfo[playerid][fraktion],sInfo[pID][treue]
if(listitem == 0)
{
format(string,sizeof(string),"Gib bitte den neuen Namen von %s, Playerid %i ein!",SpielerName(pID),pID);
ShowPlayerDialog(playerid,DIALOG_NAME_CHANGE,DIALOG_STYLE_INPUT,"Name ändern",string,"OK","Abbruch");
printf("Namechange 1");
return 1;
}
if(listitem == 1)
{
format(string,sizeof(string),"Gib bitte das neue Alter von %s, Playerid %i ein!",SpielerName(pID),pID);
ShowPlayerDialog(playerid,DIALOG_AGE_CHANGE,DIALOG_STYLE_INPUT,"Alterswechsel",string,"OK","Abbruch");
printf("Namechange 2");
return 1;
}
}
printf("Namechange Abbruch");
}
if(dialogid == DIALOG_NAME_CHANGE)
{
if(response)
{
//
new string[256],pID;
format(string,sizeof(string),"Du hast den Namen zu %s geändert!",inputtext);
SendClientMessage(playerid,CL_GREEEN,string);
SetPlayerName(pID,inputtext);
changename(pID,inputtext);
return 1;
}
else
{
return 1;
}
}
if(dialogid == DIALOG_AGE_CHANGE)
{
if(response)
{
//
new string[256],pID;
pID = GetPVarInt(playerid,"changeID");
new input = strval(inputtext);
if(input <= 3) {
format(string,sizeof(string),"Du hast das Alter zu %i geändert",input);
SendClientMessage(playerid,CL_GREEEN,string);
format(string,sizeof(string),"%s hat dein Alter aktualisiert;%i",input);
SendClientMessage(pID,CL_GREEEN,string);
sInfo[pID][alter] = inputtext[256];
format(string,sizeof(string),"UPDATE user SET alter='%i' WHERE username='%s' AND id='%i'",input,SpielerName(pID),sInfo[pID][db_id]);
mysql_function_query(dbhandle,string,false,"","");
return 1;
}
else
{
format(string,sizeof(string),"Gib bitte das neue Alter von %s, Playerid %i ein! MAX 2 stellig!",SpielerName(pID),pID);
ShowPlayerDialog(playerid,DIALOG_AGE_CHANGE,DIALOG_STYLE_INPUT,"Alterswechsel",string,"OK","Abbruch");
}
}
else
{
return 1;
}
}
und der befehl
ocmd:changeme(playerid,params[])
{
new pID,string[1024];
if(!isAdmin(playerid,9))
{
if(sscanf(params,"i",pID)) return SendClientMessage(playerid,RED,"Benutze /changeme [PID vom Spieler]");
SetPVarInt(playerid,"changeID",pID);
format(string,sizeof(string),"Name ändern (Aktuell %s)\nAlter ändern (Aktuell %i)\nFraktionsrang (Aktuell %i)\nFraktion (Aktuell %i)\nTreuepunkte (Aktuell %i)",
SpielerName(pID),sInfo[pID][alter],sInfo[playerid][rang],sInfo[playerid][fraktion],sInfo[pID][treue]);
ShowPlayerDialog(playerid,DIALOG_CHANGE_ANY,DIALOG_STYLE_LIST,"Ändern allgemeiner Statistiken",string,"OK","Abbruch");
}
else
{
SendClientMessage(playerid,RED,"ACHTUNG, das Ändern einer Einstellung kostet dich 50.000$, ausgenommen ist das Alter!");
format(string,sizeof(string),"Name ändern (Aktuell %s)\nAlter ändern (Aktuell %i)",
SpielerName(pID),sInfo[pID][alter]);
ShowPlayerDialog(playerid,DIALOG_CHANGE_ME,DIALOG_STYLE_LIST,"Ändern eigener Statistiken",string,"OK","Abbruch");
return 1;
}
return 1;
}