Hey, brauche Hilfe bei 2 Sachen.
1. Dialog:
Habe versucht n Banksystem mit einem Dialog zu erstellen. Jedoch stimmt irgendwas mit meiner OnDialogResponse public...
Ich habe auch so etwas wie /showme gemacht, das hat funktioniert, aber das Banksystem und mein BSN-Bestellen Dialog funktionieren nicht.
Code:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_Farben)
{
if(listitem == 0)
{
SetPlayerColor(playerid,Rot);
}
if(listitem ==1)
{
SetPlayerColor(playerid,Blau);
}
if(listitem ==2)
{
SetPlayerColor(playerid,Gelb);
}
if(listitem ==3)
{
SetPlayerColor(playerid,Orange);
}
if(listitem ==4)
{
SetPlayerColor(playerid,HGruen);
}
if(listitem ==5)
{
SetPlayerColor(playerid,HBlau);
}
if(listitem ==6)
{
SetPlayerColor(playerid,DBlau);
}
if(listitem ==7)
{
SetPlayerColor(playerid,Schwarz);
}
if(listitem ==8)
{
SetPlayerColor(playerid,Weiss);
}
if(listitem ==9)
{
if(!isPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,Rot,"Du bist kein 4*Admin!");
SetPlayerColor(playerid,Gold);
}
/*
if(dialogid == DIALOG_Bank)
{
if(response)
{
if(listitem == 0) // Einzahlen
{
ShowPlayerDialog(playerid,DIALOG_BankEinzahlen,DIALOG_STYLE_INPUT,"Einzahlen","Bitte gebe die Summe ein, die du einzahlen willst.","Weiter","Abbrechen");
}
if(listitem == 1) // Auszahlen
{
ShowPlayerDialog(playerid,DIALOG_BankAuszahlen,DIALOG_STYLE_INPUT,"Auszahlen","Bitte gebe die Summe ein, die du auszahlen willst.","Weiter","Abbrechen");
}
if(listitem == 2) // Kontostand
{
new str[128];
format(str,sizeof(str),"Kontostand: %d$",GetPVarInt(playerid,"Bankgeld"));
ShowPlayerDialog(playerid,DIALOG_BankKontostand,DIALOG_STYLE_MSGBOX,"Kontostand",str,"Schließen","");
}
if(listitem == 3) // Überweisen
{
ShowPlayerDialog(playerid,DIALOG_BankUeberweisen,DIALOG_STYLE_INPUT,"Überweisung","Name des Empfängers:","Bestätigen","Verlassen");
}
}
}
*/
/*
if(dialogid == DIALOG_BankEinzahlen)
{
new str[128];
if(!response)return ShowPlayerDialog(playerid,DIALOG_Bank,DIALOG_STYLE_LIST,"Bankkonto","Einzahlen\nAuszahlen\nUeberweisen\nKontostand","Abbrechen","");
if(GetPlayerMoney(playerid) < strval(inputtext))return SendClientMessage(playerid,Rot,"Du hast nicht genug Geld dabei!");
GivePlayerMoney(playerid, - strval(inputtext));
SetPVarInt(playerid,"Bankgeld",GetPVarInt(playerid,"Bankkonto") + strval(inputtext));
format(str,sizeof(str),"Du hast %d$ auf dein Konto eingezahlt",strval(inputtext));
SendClientMessage(playerid,Weiss,str);
SpielerSpeichern(playerid);
}
if(dialogid == DIALOG_BankAuszahlen)
{
new str2[128];
if(!response)return ShowPlayerDialog(playerid,DIALOG_Bank,DIALOG_STYLE_LIST,"Bankkonto","Einzahlen\nAuszahlen\nUeberweisen\nKontostand","Abbrechen","");
if(GetPVarInt(playerid,"Bankgeld") < strval(inputtext))return SendClientMessage(playerid,Rot,"Du hast nicht genug Geld auf deinem Konto!");
GivePlayerMoney(playerid,strval(inputtext));
SetPVarInt(playerid,"Bankgeld",GetPVarInt(playerid,"Bankgeld") - strval(inputtext));
format(str2,sizeof(str2),"Du hast %d$ von deinem Konto ausgezahlt.",strval(inputtext));
SendClientMessage(playerid,Weiss,str2);
SpielerSpeichern(playerid);
}
if(dialogid == DIALOG_BankKontostand)
{
new str3[128];
format(str3,sizeof(str3),"Du hast %d$ auf deinem Konto",GetPVarInt(playerid,"Bankgeld"));
SendClientMessage(playerid,Weiss,str3);
SpielerSpeichern(playerid);
}*/
/*
if(dialogid==DIALOG_Essen)
{
if(response == 0)
{
return 1;
}
if(response == 1)
{
if(listitem ==0)
{
SetPlayerHealth(playerid,100);
SendClientMessage(playerid,Weiss,"Du hast dir ein Cheeseburger bestellt.");
GivePlayerMoney(playerid,-1);
return 1;
}
if(listitem ==1)
{
SetPlayerHealth(playerid,100);
SendClientMessage(playerid,Weiss,"Du hast dir ein Hamburger bestellt.");
GivePlayerMoney(playerid,-1);
return 1;
}
if(listitem ==2)
{
SetPlayerHealth(playerid,100);
SendClientMessage(playerid,Weiss,"Du hast dir ein Bic Mac bestellt.");
GivePlayerMoney(playerid,-3);
return 1;
}
if(listitem ==3)
{
SetPlayerHealth(playerid,100);
SendClientMessage(playerid,Weiss,"Du hast dir ein Salat bestellt.");
GivePlayerMoney(playerid,-4);
return 1;
}
if(listitem ==4)
{
SetPlayerHealth(playerid,100);
SendClientMessage(playerid,Weiss,"Du hast dir eine Cola bestellt.");
GivePlayerMoney(playerid,-1);
return 1;
}
}
}
*/
return 1;
}
//------------------
if(dialogid==DIALOG_LOGIN) //Wenn der Dialog-Login aufgerufen wird
{
if(response==0) //Falls er auf Abbrechen drückt, dann
{
SendClientMessage(playerid,Rot,"Du hast den Login Vorgang abgebrochen und wirst deshalb vom Server gekickt!"); //Nachricht an ihn
Kick(playerid); //Er wird gekickt
return 1;
}
if(response==1) //Falls er aber auf Login drückt, dann...
{
if(!strlen(inputtext)) //Hier prüft man ob er überhaupt was eingegeben hat, sonst müsste er ja nichts eingeben und würde sich einloggen koennen...
{
SendClientMessage(playerid,Rot,"Dein angegebenes Passwort war nicht lang genug!"); //Nachricht
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login Vorgang","Dein Account wurde in unserer Datenbank gefunden!\nBitte gib nun dein Passwort ein! ","Login", "Abbrechen"); //Dialog erneut zeigen
return 1;
}
else
{
Login(playerid,MD5_Hash(inputtext)); //Falls es aber was eingegeben wurde wird der Stock Login aufgerufen und ausgeführt.. MD5_Hash bedeutet dass das Passwort nicht wortwürtlich in die Spielerdatei gesetzt wird sondern als String und dann wieder ins richtige umformatiert wird. So schützt man eueren Server vor Hackern, weil Sie dann das PW von diesen nicht wissen...
return 1;
}
}
}
if(dialogid==DIALOG_REGISTER) //Falls der DIALOG_REGISTER aufgerufen wird
{
if(response==0) //Falls er auf abrrechen drückt..
{
SendClientMessage(playerid,Rot,"Du hast den Registrierungs Vorgang abgebrochen und wirst deshalb vom Server gekickt!"); //Nachricht
Kick(playerid); //WIrd gekickt
return 1;
}
if(response==1)
{
if(!strlen(inputtext)) //überprüft ob was eingegeben wird...
{
SendClientMessage(playerid,HGruen,"Dein eingegebenes Passwort war nicht lang genug!"); //Wenn er wieder nichts eingibt
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Willkommen auf [GSL]GermanSpeedLife!\n bitte gib nun dein gewünschtes Passwort ein","Register","Abbrechen"); //Dann Dialog erneut anzeigen....
return 1;
}
else //Falls aber was eingegeben wurde , dann....
{
Register(playerid,MD5_Hash(inputtext)); //Wir die Funktion Register von Vorhin aufgerufen und ausgeführt und das PW wird erneut gehasht...
return 1;
}
}
}
return 1;
}
PS: Das Login ding da funzt auch...
Mein Banksystem ohne Dialog funzt...
2. Frakhelp:
Wenn ich /frakhelp eingebe, kommen alle Fraktionshilfen. Es sollte nur die kommen, in der der User auch ist.
Code:
ocmd:frakhelp(playerid)
{
if(isPlayerInFrak(playerid,1))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Präsi: /pt1, /pt2, /plift");
}
if(isPlayerInFrak(playerid,2))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"LSPD: /lspdtor1, /lspdtor2, /lspdlift");
}
if(isPlayerInFrak(playerid,3))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"FBI: /fbitor");
SendClientMessage(playerid,Weiss,"LSPD: /lspdtor1, /lspdtor2, /lspdlift");
}
if(isPlayerInFrak(playerid,4))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Army: ");
SendClientMessage(playerid,Weiss,"LSPD: /lspdtor1, /lspdtor2, /lspdlift");
}
if(isPlayerInFrak(playerid,5))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Medic: /mt");
}
if(isPlayerInFrak(playerid,6))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Ordnungsamt: ");
}
if(isPlayerInFrak(playerid,7))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Fahrlehrer: /ft1, /ft2, /ft3");
}
if(isPlayerInFrak(playerid,8))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Newsreporter: /nrt1, /nrt2");
}
if(isPlayerInFrak(playerid,9))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Hitman: /ht");
}
if(isPlayerInFrak(playerid,10))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Groove Street: /gst");
}
if(isPlayerInFrak(playerid,11))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Ballas: ");
}
if(isPlayerInFrak(playerid,12))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Vagos: ");
}
if(isPlayerInFrak(playerid,13))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Aztecas:");
}
if(isPlayerInFrak(playerid,14))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Yakuza:");
}
if(isPlayerInFrak(playerid,15))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Triaden:");
}
if(isPlayerInFrak(playerid,16))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Russenmafia:");
}
if(isPlayerInFrak(playerid,17))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Red Soldiers:");
}
if(isPlayerInFrak(playerid,18))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"CripZ: /ct1, /ct2");
}
if(isPlayerInFrak(playerid,19))
{
SendClientMessage(playerid,Grau,"===============Frakhelp===============");
SendClientMessage(playerid,Weiss,"Terroristen:");
}
return 1;
}
Wenn ich überall return 1; mache kommt ja nur das erste...
Hoffe ihr könnt mir helfen!