Hallo!
Und zwar versuche ich gerade beim Befehl Invite auf die Antwort des Benutzers zu warten, bevor er ausgeführt wird.
Ich habe dafür folgenden Code:
ocmd:invite(playerid, params[])
{
if(!FrakRAbfrage(playerid,6))return SendClientMessage(playerid,ERROR,"Dieser Befehl existiert nicht.");
new pID,string1[256],string2[128],string3[128];
new fname1[128];
switch(GetPVarInt(playerid,"Fraktion"))
{
case 0:{fname1="Der Staat";}
case 1:{fname1="Das F.B.I.";}
case 2:{fname1="Das LSPD";}
case 3:{fname1="Die Ballas Familie";}
case 4:{fname1="Die Grove Familie";}
case 5:{fname1="Das Militär";}
}
format(string1,sizeof(string1),"Sehr geehrter %s,\n%s würde sich sehr über Ihre Mitgliedschaft freuen!\n gez. %s\nWillst du dieses Angebot annehmen?", UserName(pID),fname1,UserName(playerid));
ShowPlayerDialog(pID,DIALOG_INVITE,DIALOG_STYLE_MSGBOX,"Einladung",string1,"Annehmen","Ablehnen");
if(GetPVarInt(pID,"Einladung")==2)
{
format(string2,sizeof(string2),"%s hat die Einladung abgelehnt", UserName(pID));
SendClientMessage(playerid,ERROR,string2);
SetPVarInt(pID,"Einladung",0);
SaveUser(pID);
}
if(GetPVarInt(pID,"Einladung")==1)
{
SetPVarInt(pID,"Fraktion",GetPVarInt(playerid,"Fraktion"));
SetPVarInt(pID,"Frakrang",1);
SaveUser(pID);
format(string3,sizeof(string3),"%s hat die Einladung angenommen.", UserName(pID));
SendClientMessage(playerid,ERROR,string3);
SetPVarInt(pID,"Einladung",0);
SaveUser(pID);
}
In der Response setzt jetzt der Button 1 "Einladung" auf 1 und Button 2 "Einladung" auf 2.
Somit wollte ich umgehen das nicht Standartmäßig in der Variable 0 drin steht und es daher nicht funktioniert.
Allerdings passiert jetzt beim erstmaligen Absenden noch gar nichts, schicke ich direkt danach noch mal eine Anfrage funktioniert es.
Wo ist denn mein Fehler?
EDIT: Entschuldigung, ich bin ins falsche Forum gerutscht! Könnte es bitte jemand löschen ich poste es gleich richtig