Das bedeutet einfach, dass du "GetPlayerAdmin" schon vorher im Script deklariert hast. Das heißt du versuchst an der angegeben Zeile beim Error "GetPlayerAdmin" zum 2. Mal zu definieren.
Beiträge von Artus
-
-
Es muss unter OnPlayerCommandText und nicht unter OnPlayerText oder war das jetzt nur falsch in den Post hier geschrieben?
Oder verstehe ich hier gerade das Ganze falsch?
-
format(FraktionInfo[Rang1],12,dini_Get(Datei,"Rang1"));
Müsste so funktionieren. -
Morgen
Ich weiß nicht ganz aber meines Wissens wird onplayerconnect trotzdem aufgerufen
Da dies beim Connecten abgerufen wird//Edit
printf("OnPlayerConnect");Trag das mal unter onplayerconnect ein und Start den Server neu dies das
Joint und dann muss in den Server Logs stehen was in Printe stehtBy Handy
Ich habe es mit "print" ausprobiert und auch bei der Funktion, dass er bei OnPlayerRequestClass gespawnt wird eingefügt.
Alle prints, welche bei OnPlayerConnect drin waren, waren NICHT in der ServerLog, dafür aber der print von der Funktion
-
Mein Problem ist, dass bei mir OnPlayerConnect nicht ausgeführt wird, sondern sofort OnPlayerRequestClass.
Da ich das OnPlayerRequestClass mit einem Spawn überspringe wird der Spieler dann nur sofort gespawnt ohne sich einloggen zu müssen.
Der Login-Dialog befindet sich nämlich in OnPlayerConnect.
Wie kann ich das beheben?
-
Was ich aber nicht verstehe, wieso lässt du ihn Spawnen,
wenn er doch garkein Account hat ?
Habe bei OnPlayerSpawn auch eine Abfrage. Wenn die Datei nicht existiert, dann wird er automatisch registriert. Weil davor hat das ganze nicht funktioniert, als ich es da hatte und so wie es jetzt ist finde ich es gut. Bis auf, dass das Loginsystem nicht funktioniert.Edit:
Es liegt daran, dass die OnPlayerRequestClass vor dem OnPlayerConnect ausgeführt wird und ich gemacht habe, dass die Skinauswahl übersprungen wird.
Wie mache ich, dass das OnPlayerConnect vor dem OnPlayerRequestClass ausgeführt wird? Oder wie mache ich, dass OnPlayerConnect überhaupt ausgeführt wird?
-
new name[MAX_PLAYER_NAME], Spielerdatei[64];
GetPlayerName(playerid, name, sizeof(name));
format(Spielerdatei, sizeof(Spielerdatei), "/Accounts/%s.ini", name);
format(Spieler[playerid][Wohnort],64,inputtext);
dini_Set(Spielerdatei,"Wohnort",Spieler[playerid][Wohnort]);
So dürfte das funktionieren.Edit1.: Sachen wie "Spielerdatei" und dem Pfad zur Accountdatei musst du halt noch anpassen.
-
Dreh das mal um.
if(!dini_Exists(Spielerdatei))
{
SpawnPlayer(playerid);
}
else
{
ShowPlayerDialog(playerid ,DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00BFFF}Login", "{FFFFFF}Willkommen zurück auf {FF8000}[LPR] Las Payasadas Reallife{FFFFFF}.\n\nBitte gib deinen Code ein, um dich einzuloggen","Login","Beenden");
}
Funktioniert auch nicht. Habe das wenn sie existiert, dass dann der Dialog kommt und sonst wird der Spieler gespawnt. -
Das Registrierungssystem funktioniert ohne Probleme, nur das Loginsystem funktioniert nicht.
Wenn ich registriert bin und ich den Server betrete werde ich ohne, dass die Daten geladen werden einfach gespawnt, obwohl die Spielerdatei besteht.
public OnPlayerConnect(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(Spielerdatei, sizeof(Spielerdatei), "/Accounts/%s.ini", name);if(!dini_Exists(Spielerdatei))
{
SpawnPlayer(playerid);
}
else
{
ShowPlayerDialog(playerid ,DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00BFFF}Login", "{FFFFFF}Willkommen zurück auf {FF8000}[LPR] Las Payasadas Reallife{FFFFFF}.\n\nBitte gib deinen Code ein, um dich einzuloggen","Login","Beenden");
}
return 1;
}case DIALOG_LOGIN:
{
if(!response)
{
SendClientMessage(playerid, Rot, "Du hast die Verbindung zum Server unterbrochen.");
Kick(playerid);
}
else
{
new pwlaenge = strlen(inputtext);
if(pwlaenge > 0)
{
new code[16];
format(code, sizeof(code), "%s", dini_Get(Spielerdatei, "Password"));
if(strcmp(inputtext, code) == 0)
{
SpielerLaden(playerid);
}
else
{
SendClientMessage(playerid, Rot, "Deine Eingabe war ungültig. Bitte versuche es erneut.");
ShowPlayerDialog(playerid ,DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00BFFF}Login", "{FFFFFF}Willkommen zurück auf {FF8000}[LPR] Las Payasadas Reallife{FFFFFF}.\n\nBitte gib deinen Code ein, um dich einzuloggen","Login","Beenden");
}
}
else
{
SendClientMessage(playerid, Rot, "Deine Eingabe war ungültig. Bitte versuche es erneut.");
ShowPlayerDialog(playerid ,DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{00BFFF}Login", "{FFFFFF}Willkommen zurück auf {FF8000}[LPR] Las Payasadas Reallife{FFFFFF}.\n\nBitte gib deinen Code ein, um dich einzuloggen","Login","Beenden");
}
}
}
Bei "Spielerladen(playerid);" werden logischerweise die Daten des Accounts geladen. -
Habe gerade die Koordinaten von den erstellten Objekten durchgeschaut. Es gibt keine Gleichen. Oder meinst du, dass es einfach zu viele in einem bestimmten Bereich sind?
Habe die komplette Map in ein Filterscript geschrieben. Jetzt wird alles geladen und entfernt.
Aber woran könnte es denn liegen, dass es im Gamemode nicht akzeptiert wird?
-
Ich verwende das Streamer Plugin v2.6.1 von Incognito
-
Nein. Die sind an der richtigen Stelle. Gerade nochmal überprüft.
Server rebootet und trotzdem kein Effekt.
Es muss irgendwie am Script liegen. Nur was könnte es blocken?
-
Nein habe ich nicht. Ich probiere es nochmal. Habe auch mal mit der 0.3e Version getestet. Kein Unterschied
-
Keine Wirkung :o Also habe jetzt den Prozess gekillt und dann neu gestartet und eingeloggt.
-
Auch schon getan.
Ohne Wirkung
-
Wurde erkannt.
Habe auch schon mit "print" mir Rückmeldung geben lassen, dass es ausgeführt wurde. Die Rückmeldung funktioniert. Nur halt die Map nicht.
Mindestens 10-mal, weil ich noch andere Funktionen getestet habe
-
Hat er das script auch erkkant?
Wie meinst du das? -
Ich habe Objekte mit RemoveBuildingForPlayer (unter OnPlayerConnect) entfernt und neue mit CreateDynamicObject (unter OnGamemodeInit) ginzugefügt.
Der Streamer ist im Gamemode mit includiert und auch in der Server.cfg als Plugin enthalten.
Der Gamemode kompiliert ohne Warning und Errors.
Wenn ich dann den Server betrete ist aber immer noch die originale Map vorhanden und nicht mein gemapptes Zeugs.
Streamer habe ich auch nochmal erneut heruntergeladen und neu kompiliert und getestet. Keine Veränderung.
Wie bekomme ich es hin, dass meine Mapveränderungen wirksam werden?
Edit: Ich habe nirgendwo SetPlayerVirtualWorld verwendet.
-
Strings solltest du (zumindest in Pawn) nicht mit einem = zuweisen, sondern mit format.
Sprich so:
format(SpielerDaten[playerid][pPasswort],64,inputtext);
Bei den anderen genauso
mfg.
Hiermit funktioniert alles!Vielen Dank!
-
SpielerDaten[playerid][pPasswort] = inputtext;
pPasswort ist als String deklariert und da kommt --> error 047: array sizes do not match, or destination array is too smallAußerdem gibt er mir denselben Fehler nochmal bei folgendem Code:
SpielerDaten[playerid][pPasswort] = dini_Get(Spielerdatei,"Passwort");Oben bei der enum SpielerDaten ist pPasswort[64]