Hat deine Tabelle bei der ID kein Auto_Incerment aktiviert? Dann musst du die Bearbeiten und Aktivieren.
Beiträge von SLaYz
-
-
Normal müsstest du bei OnPlayerConnet sowas haben:
GetPlayerName(playerid, cP->cName[playerid], 24);
Das kannst du in der unter der Zeile "ResetSpielerDatei(playerid);" bei OnPlayerConnect machen:
GetPlayerName(playerid, sInfo[playerid][sName], 24);Dann hat er den Namen in der Variabele
-
[list=1][*]if(dialogid == DIALOG_SUPPORTERAUTO)
[*]{
[*] switch(listitem)
[*] {
[*] case 0:
[*] {
[*] SupporterAutoErstellen(playerid,487);
[*] }
[*] case 1:
[*] {
[*] SupporterAutoErstellen(playerid,522);
[*] }
[*] case 2:
[*] {
[*] SupporterAutoErstellen(playerid,560);
[*] }
[*] case 3:
[*] {
[*] SupporterAutoErstellen(playerid,541);
[*] }
[*] case 4:
[*] {
[*] ShowPlayerDialog(playerid,DIALOG_SUPPORTERAUTO_CARID,DIALOG_STYLE_INPUT,"Wähle dein Supportfahrzeugtyp","Bitte gebe hier die CarID des Fahrzeuges an,\n das du als Supporterfahrzeug nutzen möchtest:","Erstellen","Zurück");
[*] }
[*] }
[*]}
[/list]zu:
if(dialogid == DIALOG_SUPPORTERAUTO)
{
if(response)
{
switch(listitem)
{
case 0:
{
SupporterAutoErstellen(playerid,487);
}
case 1:
{
SupporterAutoErstellen(playerid,522);
}
case 2:
{
SupporterAutoErstellen(playerid,560);
}
case 3:
{
SupporterAutoErstellen(playerid,541);
}
case 4:
{
ShowPlayerDialog(playerid,DIALOG_SUPPORTERAUTO_CARID,DIALOG_STYLE_INPUT,"Wähle dein Supportfahrzeugtyp","Bitte gebe hier die CarID des Fahrzeuges an,\n das du als Supporterfahrzeug nutzen möchtest:","Erstellen","Zurück");
}
}
}
}Dann sollte es Klappen
-
Wo setzt du der Variabele: sInfo[playerid][sName] den Wert?
Bei dir wird mysql_format ausgeführt, jedoch Escaped er dein Namen nicht. Kann es sein, das deine Variabele leer ist? Dann ist es klar, wieso er auch im Errorlog dann "Query was empty" ausgibt.
-
Hast du es auch unter dem mysql_format getan? Sonst ist es klar, das er Leer ist^^. Ansonsten sollte dies nicht kommen.
-
Printe mal deine Query, ich habe das Gefühl, dort Stimmt was nicht.
Also bei OnPlayerConnect
printf("Query: %s", query); -
Schau mal da: (Pfad Anpassen) D:\Program Files (x86)\Steam\steamapps
-
Du kannst das Fahrrad auch als Neukunden finanzieren. Das geht Problemlos. Bei Billpay kannst du auch den Tag der Abbuchung verändern und z.B. sagen du kannst erst nächsten Monat bezahlen.
-
Die Dateiendung spielt ja keine Rolle
Du meinst mit dem anderen Compiler funktionierts problemlos, wieso benutzt du nicht einfach den mit dem es funktioniert?Weil der mit dem es Funktioniert nicht das mit ins Script nimmt. Er Compiliert ohne Probleme, jedoch ist der Code dann nicht Nutzbar.
Ich habe das Problem gelöst, ich bin auf Sublime Text 3 umgestiegen. Funkt Perfekt. Danke für den Screen^^
-
Hmm der Spuckt den:
CodeC:\Users\SLY\Desktop\selfmade\gamemodes\NewOne.pwn(1) : fatal error 100: cannot read from file: "../../../Source/Header"
Der andere Compiler macht es Problemlos.
Gibt's soweit ich weiß nicht. Mein Gamemode ist z.B. in Modules aufgeteilt und dort gab es auch noch nie Probleme. KLICK
Hast du auch dein Editor vom Ordner aus gestartet wo sich die Includes befinden?Ich habs auch Aufgeteilt. jedoch als .inc (Includes) jedes System für sich. jedoch Compiliert er ab einer bestimmten Anzahl nicht mehr.
-
Moin, gibt es eine Limitierung für Includes? Ich habe keine Gefunden, jedoch beim Compilieren erkennt der Compiler nicht das Include. Pfade etc. sind Richtig. Bei einem falschen Pfad sagt er, das er das Include nicht Finden konnte.
-
RuneScape ;D
-
-
Sollte ja eig. so sein oder nicht? Nur mit Admin Level 4 und Rcon, wenn nicht hat man keinen Zugriff.
-
War mein Fehler sorry. Sollte nun gehen.
C
Alles anzeigendcmd_setadminlevel(playerid, params[]) { new Spieler[100], Spieler2[100], SName[MAX_PLAYER_NAME], Sname2[MAX_PLAYER_NAME], id, alevel, str[128]; GetPlayerName(playerid, Sname, sizeof(Sname)); format(Spieler, sizeof(Spieler), "/Accounts/%s.txt", Sname); if(!IsPlayerAdmin(playerid) || dini_Int(Spieler, "Adminlevel") >= 4) return SendClientMessage(playerid, WEISS, "Du kannst diesen Befehl nicht Benutzen."); if(sscanf(params, "ud", id, alevel)) return SendClientMessage(playerid, WEISS, "/setadminlevel [ID/NAME] [0-4]"); GetPlayerName(id, Sname2, sizeof(Sname2)); format(Spieler2, sizeof(Spieler2), "/Accounts/%s.txt", Sname2); if(dini_Int(Spieler2, "Adminlevel") > alevel) { dini_IntSet(Spieler2, "Adminlevel", alevel); format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin degradiert!", alevel); SendClientMessage(id, HELLROT, str); format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d degradiert!", Sname2, alevel); SendClientMessage(playerid, HELLROT, str); } else if(dini_Int(Spieler2, "Adminlevel") < alevel) { dini_IntSet(Spieler2, "Adminlevel", alevel); format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin befördert!", alevel); SendClientMessage(id, HELLROT, str); format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d befördert!", Sname2, alevel); SendClientMessage(playerid, HELLROT, str); } else if(dini_Int(Spieler2, "Adminlevel") == alevel) { SendClientMessage(playerid, HELLROT, "Der Spieler hat bereits dieses Adminlevel."); } return 1; }
-
Versuch es mal mit dem Code.
C
Alles anzeigendcmd_setadminlevel(playerid, params[]) { new Spieler[100], Spieler2[100], SName[MAX_PLAYER_NAME], Sname2[MAX_PLAYER_NAME], id, alevel, str[128]; GetPlayerName(playerid, Sname, sizeof(Sname)); format(Spieler, sizeof(Spieler), "/Accounts/%s.txt", Sname); if(!IsPlayerAdmin(playerid) || dini_Int(Spieler, "Adminlevel") >= 4) return SendClientMessage(playerid, WEISS, "Du kannst diesen Befehl nicht Benutzen."); if(sscanf(params, "ud", id, alevel)) return SendClientMessage(playerid, WEISS, "/setadminlevel [ID/NAME] [0-4]"); GetPlayerName(id, Sname2, sizeof(Sname2)); format(Spieler2, sizeof(Spieler2), "/Accounts/%s.txt", Sname2); if(dini_Int(Spieler2, "Adminlevel" > alevel)) { dini_IntSet(Spieler2, "Adminlevel", alevel); format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin degradiert!", alevel); SendClientMessage(id, HELLROT, str); format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d degradiert!", Sname2, alevel); SendClientMessage(playerid, HELLROT, str); } else if(dini_Int(Spieler2, "Adminlevel" < alevel)) { dini_IntSet(Spieler2, "Adminlevel", alevel); format(str, sizeof(str), "A: Du wurdest zu einem Level %d Admin befördert!", alevel); SendClientMessage(id, HELLROT, str); format(str, sizeof(str), "A: Du hast den Spieler %s zum Admin mit dem Level %d befördert!", Sname2, alevel); SendClientMessage(playerid, HELLROT, str); } else if(dini_Int(Spieler2, "Adminlevel" == alevel)) { SendClientMessage(playerid, HELLROT, "Der Spieler hat bereits dieses Adminlevel."); } return 1; }
-
Hey, das Bild ist nicht Verfügbar. Könntest du es erneut Hochladen?
-
Vorerst soll nur die Funktion eine beliebige Taste zu drücken, diese dann ausgelesen und gespeichert wird.
Dies kannst du in C++ mit GetAsyncKeyState machen, wie Madd92 schon gesagt hat. Ich weiß nicht wieso du die Taste speichern willst. Aber hier mal ein Beispiel
-
Wenn ich nun den Button drücke, regt sich garnichts mehr. Manchmal friert das Programm ein.
Ich habe es mal auf einen anderen Computer getestet und keinen Fehler gefunden. Sobald ich auf den Button Klicke wird GTA mit SAMP Geladen.
-
Den Namen holt sich SAMP aus der Registry du könntest beim Starten den Wert in der Registry ändern. Mit den Usernamen als Startargument müsste man testen.
Aber kann man dann nicht mehr einen Namen angeben?
Ich habe es mal Getestet und es hat so nicht Geklappt. Ich habe dein OpenFile Dialog mal Entfernt und dir die Daten aus der Registry geholt, so muss man nicht immer erneut den GTA-Pfad angeben.
C
Alles anzeigenprivate void button1_Click(object sender, EventArgs e) { if (textBoxUsername.TextLength < 3) { MessageBox.Show("Der Username muss mindestens 3 Zeichen lang sein!", "SA:MP - Launcher", MessageBoxButtons.OK, MessageBoxIcon.Error); textBoxUsername.Focus(); } else { try { //SAMP Registry öffnen RegistryKey RegKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\SAMP"); //Eingegebenen Benutzernamen in der Registry Speichern RegistryKey RegKey2 = Registry.CurrentUser.CreateSubKey("SOFTWARE\\SAMP"); RegKey2.SetValue("PlayerName", textBox1.Text); //Process Erstellen Process process = new Process(); //GTA Installations Pfad process.StartInfo.FileName = RegKey.GetValue("gta_sa_exe").ToString().Replace("GTA_SA.exe", "samp.exe"); //Start Argumente Formatieren string Arguments = string.Format("127.0.0.1:7777"); //Argumente Übergeben process.StartInfo.Arguments = Arguments; //Process Starten process.Start(); while (!process.HasExited) { //Prozess wurde nicht Beendet. } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
Wenn du beim Start des Programms haben willst, das der Benutzername schom in dem Eingabefeld ist fügst du Folgenden Code ein / bearbeitest ihn.