Danke für den Hinweis. Habe es in meinem Codeschnipsel angepasst.
Ich habe die strval funktionen auch gleich mal weg gemacht.
Danke für den Hinweis. Habe es in meinem Codeschnipsel angepasst.
Ich habe die strval funktionen auch gleich mal weg gemacht.
Versuch es bitte jetzt erneut. Habe nicht richtig gelesen, bzw. interpretiert, was du in der if-Abfrage tust.
Gruß,
Neo
Nachtrag 00:20 Uhr: Habe vergessen, die Variable Geschlecht als "String" zu deklarieren.
Mal eine Frage. Du arbeitest schon mit der Datenbank bevor du überhaupt eine Datenbankabfrage machst (Zeile 4 und Zeile 20). Hast du etwas aus dem Codeschnipsel ausgelassen?
Ich würde das ganze auf jeden Fall anders angehen. Ich würde direkt in der MySQL Anfrage das Passwort mit abfragen:
format(query,sizeof(query),"SELECT * FROM "#DATENBANKTAG"_account_main WHERE Name='%s' AND Passwort='MD5(%s)'",SpielerName(playerid), pass);
Jetzt schau dir bitte diese Seite an und vor allem den Teil mit dem mysql_query (http://wiki.sa-mp.com/wiki/MySQL/R33#mysql_query)
Da hat sich einiges getan.
Gruß,
Neo
Nachtrag: Wenn du dann alles Abgefragt hast überprüfst, ob Zeilen vorhanden sind: cache_get_row_count(), wenn 1, dann stimmt das Passwort mit dem Benutzernamen, alles Andere wäre ein Fehler
Wird denn das Geschlecht mit dem Namen in der Datei gespeichert oder mithilfe eines String, also als Text?
Edit: Frage hat sich von selbst erledigt. Habe meinen vorherigen Quellcode angepasst. Nun sollte es funktionieren.
Zum Einem heißt es dini_Int, wie schon magnussoft gesagt hat und zum Anderen hast du die geschweiften Klammern falsch gesetzt. Bei deinem else-Anweisung hat eine gefehlt.
So sollte es funktionieren:
case Herkunftsauswahl: {
if(response) {
new Geschlecht[16];
Geschlecht = dini_Get(spielerdatei, "Geschlecht");
strcat(SpielerInfo[playerid][Geschlecht], Geschlecht)
if(Geschlecht == "Weiblich") {
SetPlayerSkin(playerid, 12);
}
else {
SetPlayerSkin(playerid, 7);
}
SpawnPlayer(playerid);
}
}
Übersichtliches schreiben ist das A und O in der Programmierung. Variablen am besten immer noch am Anfang von Prozeduren und Funktionen deklarieren, dann passiert so etwas nicht.
Gruß,
Neo
Ich glaube was dir Dark_Shadow angedeutet hat ist folgendes:
stock LoadFAutos()
{
new i, rows, query[64], data[64], frak[4], slot[4], dfrag, dslot;
format(query, sizeof(query), "SELECT * FROM ´Tabelle_FrakAuto´"); // Erzeugt einen MySQL-Querry
mysql_query(query); // Führt den MySQL-Querry aus
mysql_store_result(); // Speichert die Daten im Arbeitsspeicher ab
rows = mysql_num_rows();
if(rows) { // Prüft, ob überhaupt eine Zeile ausgelesen wurde
for(i = 0; i < rows; i++, mysql_retrieve_row()) { // geht das Ergebnis nun Zeile für Zeile durch
mysql_fetch_field_row(frak, "Fraktion");
mysql_fetch_field_row(slot, "FSlot");
dfrak = strval(frak);
dslot = strval(slot);
mysql_fetch_field_row(data, "Model");
FraktionsAutoInfo[dfrak][dslot][fModel] = strval(data);
mysql_fetch_field_row(data, "AutoX");
FraktionsAutoInfo[dfrak][dslotd][fAutoX] = floatstr(data);
mysql_fetch_field_row(data, "AutoY");
FraktionsAutoInfo[dfrak][dslot][fAutoY] = floatstr(data);
mysql_fetch_field_row(data, "AutoZ");
FraktionsAutoInfo[dfrak][dslot][fAutoZ] = floatstr(data);
mysql_fetch_field_row(data, "AutoA");
FraktionsAutoInfo[dfrak][dslot][fAutoA] = floatstr(data);
mysql_fetch_field_row(data, "Color1");
FraktionsAutoInfo[dfrak][dslot][fColor1] = strval(data);
mysql_fetch_field_row(data, "Color2");
FraktionsAutoInfo[dfrak][dslot][fColor2] = strval(data);
}
}
mysql_free_result(); // Leert den Arbeitsspeicher
print("Fraktionsfahrzeuge geladen");
return 0;
}
Ich habe den Codeschnipsel nicht getestet, aber bin ziemlich sicher, dass er funktionieren sollte.
Wenn du etwas nicht verstehst oder ein Fehler dort drinnen ist, dann melde dich. Vielleicht braucht es jemand anderes zu einem späterem Zeitpunkt.
Gruß,
Neo
Hallo zusammen,
das System hat eine Menge Hätte, Wenn und Abers. Dazu kommt ohne ausgereifte Progammiererfahrung ein solides Wissen in der Vektorrechnungen wird das System nicht gut funktionieren.
Es gibt Objekte die bei einer starken Kollision explodieren, da aber SA MP assynchron ist, wird man aber wohl das Flugzeug nie so treffen, dass die Explosion startet oder noch schaden anrichtet.
Möglich wäre es ein Objekt zu erzeugen, dass dann mithilfe von Vektorrechnung auf das Ziel zufliegt und bei einem geringen Abstand eine Explosion auslöst.
Dazu kommt, dass eine Menge Berechnungen vom Server nötig wären und das Serverabstürze verursachen wird.
Das wäre sehr umfangreich und würde Atomfischs Möglichkeiten bei weitem übertreffen.
Um deine Frage ( Atomfisch) zu beantworten: Nein, man kann keine Raketen standartgemäß, wie im Singleplayer aktivieren. Die Miniguns sind auch im Singleplayer nicht aktiv.
Gruß,
Neo
Hallo Mafu,
wird denn der richtige Fahrzeugtyp erstellt?
Gruß,
Neo