Ich persönlich würde keinen externen Dienst dafür benutzen.
Wenn, dann soll das auch auf meinem Server sein.
Gruß.
Ich persönlich würde keinen externen Dienst dafür benutzen.
Wenn, dann soll das auch auf meinem Server sein.
Gruß.
Zwei Verbindungen gleichzeitig. Die Verbindung brauchst du nur beim disconnect vom Server auch beenden.
Beides ist möglich, die Variante mit zwei Verbindungen (also zwei Datenbanken) finde ich besser. Bessere Ordnung/Übersicht.
Das man sich im Forum Registriert und dann auch in der SA:MP Tabelle ein Spieler mit dem Namen und das Passwort eingetragen wird.
Wie ich ja sagte, macht das auch Sinn. Aber den Namen und das Passwort extra nochmals in einer Tabelle zu haben nicht. Du kannst doch deine Login-Funktion in SAMP mit den Funktionen über das Forum laufen lassen.
Daten wie: Fraktion, Waffen usw. speicherst du dann eben ganz normal ab, wie wenn du eine normale Spielertabelle hättest, eben ohne Name und Passwwort usw. Stattdessen aber die UserID vom Forum.
Du hast also in der Tabelle für jede Spalte eine UserID, welche einem Benutzeraccount im Forum zugewiesen ist. Beim einloggen auf dem Server bekommst du die UserID (oder fragst sie eben an), damit kannst du dann die Daten aus der Datenbank laden.
Ich weiß nicht genau wie du das alles machen möchtest. Aber es würde doch mehr Sinn machen, die AddUser Funktion innerhalb der Registration zu benutzen.
Was ich die auch empfehlen kann, ist die Registration komplett über das Forum laufen zu lassen.
Mit der CheckPassword-Funktion kannst du beim Login die Eingaben mit dem Forum abgleichen. Die UserID
aus dem Forum benutzt du dann für ingame-relevante Daten, welche du dann in extra Tabellen abspeicherst.
Du musst nämlich bedenken: Wenn der Spieler das Passwort ändert musst du diese synchronisieren (ggf. auch den Namen).
Wir lassen alle Accounts über das Forum verwalten. Wobei unsere Accounts über das UCP erstellt werden. (Hat seine Gründe)
In der Include hast du ja Beispiele, welche Funktionen so existieren. Bedenke auch, dass das ganze über HTTP-Requests läuft, also A-synchron.
Das ganze ist sehr einfach zu überblicken, wenn dir Funktionen fehlen, dann könntest du diese erweitern/hinzufügen.
// Zu deiner eigentlichen Frage: Ja.
// Edit 2: Nicht in deiner SAMP, sondern in deiner WBB-Tabelle.
Immerhin kopieren die kein Westcoast
Mal davon abgesehen, dass Westcoast Michas, Kobras und mein Projekt war:
Das einzige was wir von Westcoast übernommen haben sind einige Teammitglieder.
Was heißt den "Map lädt neu"?
Könnte möglicherweise an DestroyDynamicObject liegen.
Wurde diese Funktion gehooked o.ä.?
Ich gehe davon aus, dass du ein Array mit den IP's und der ID (o.ä.) des Admins hast?
Du baust dir dein Dialog über eine Schleife diesen Array auf (hast du denke ich auch mal schon erledigt).
Mit der gleichen Schleife, nur eben ohne der Zusammensetzung des Dialogs, kannst du dann mit einem Counter abfragen, welches IP angeklickt wurde.
Hier ein Beispiel:
enum ip_list_enum {
userip[24],
adminid
};
new ipList[][ip_list_enum] = { // Oder eben aus deiner DB auslesen
{"127.0.0.1", 1},
{"127.0.0.2", 3},
{"127.0.0.3", 6},
{"127.0.0.4", 4},
{"127.0.0.5", 1},
{"127.0.0.6", 1}
};
stock showDialog(playerid) {
new string[128];
for(new i; i < sizeof ipList; i++) {
if(ipList[i][adminid] != getPlayerAdminID(playerid)) continue; // Nur eigene Bans anzeigen
format(string, sizeof string, "%s\n", ipList[i][userip]);
}
return ShowPlayerDialog(playerid, diaIPList, DIALOG_STYLE_LIST, "IP Bans", string, "Bestätigen", "Schließen");
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == diaIPList) {
if(!response) return 0;
new counter, index = -1;
for(new i; i < sizeof ipList; i++) {
if(ipList[i][adminid] != getPlayerAdminID(playerid)) continue; // Nur eigene Bans anzeigen
if(listitem == counter) {
index = i;
break;
}
counter++;
}
if(index != -1) {
// Aktion ausführen mit:
// ipList[index][userip]
// ipList[index][adminid]
}
}
return 1;
}
Alles anzeigen
Ist schnell abgetippt. Sollte so aussehen.
Alles basiert irgendwo drauf
Es gibt einen Unterschied zwischen kopieren und auf etwas basieren.
Was genau werden denn für Aktionen ausgeführt, wenn man welchen Datensatz auswählt?
Sind die immer unterschiedlich oder für bestimmte Gruppen gleich?
, so bleibt die Form aber im Hintergrund ist dennoch diese grau-weißen quadratischen Felder.
Damit visualisiert man Transparenz. Wenn du das Bild dann als PNG exportierst, hat es keinen Hintergrund:
http://img.cireyses.de/5oVcB529746.gif
Resultat: