Poste bitte den Code.
Und unter welchem callback hast du das stehen?
Beiträge von Jeffry
-
-
Du musst auch beim Erstellen der Textdraws das playerid Array nutzen.
Textdraw0[playerid] = TextDrawCreate...
Bei allen das playerid Array.
-
Du musst die TextDraws für jeden Spieler erstellen.
Textdraw0[playerid] = TextDrawCreate(488.000000, 163.000000, "Payday %d/60 ");
//...So musst du sie dem Spieler auch anzeigen:
TextDrawSetString(Textdraw3[playerid], string);Deklarierung:
new Text:Textdraw0[MAX_PLAYERS]; -
Kannst du einfach mal die rec Datei und die pwn Datei aus den NPC Modes hochladen? Dann könnten wir das mal bei uns testen, und dir ggf. den entsprechenden Lösungsvorschlag geben.
-
Problem wurde über TeamViewer behoben. Problem war unter anderem eine Funktion die sich selbst aufgerufen hat (Rekursion), aber keinen Ausstieg hatte.
-
Dann entferne doch in deinem spec Befehl einfach die Abfrage, ob der Spieler eingeloggt ist, kannst ja danach wieder rein machen. Kommentiere die Zeile einfach aus und kompiliere es.
Ist ja nur zum testen, damit du vielleicht siehst wo das Ding sich rumtreibt. -
Zeig mal deinen Code.
-
wie groß musste der String den sein?
Und welchen hattest du als erstes?Hab da auch ab und an nen Hänger mit
Ein Datumsstring sollte eine Länge von mindestens 10 haben. Wenn deiner auf Grund deiner Formatierung mehr braucht, musst du ihn natürlich größer machen. -
Ich schätze, dass das wohl das Beste ist. Schau, dass du heute Abend zwischen 20 und 22 Uhr da bist, dann melde ich mich kurz bei dir. Ich denke, dass du einfach was vermacht hast, die Frage ist nur was.
-
Dann sind das zwei unterschiedliche Fehler.
Du musst was an der Datei falsch gemacht haben, anders kann ich mir das nicht erklären, da ich es selbst getestet habe, und er ohne Probleme 1 ausgegeben hat.
Steht in der .ini was drin? Wenn nicht, schreib mal was rein.
Ich hoffe, du startest auch den richtigen Server, und nicht über eine Verknüpfung ständig den falschen Pfad.Um das Problem mit der Registration kümmern wir uns wenn das Problem mit der Datei aus der Welt ist. Ich schätze, dass der Code einfach nicht erreicht wird.
-
Ja, das ist ok so.
Warum kommt die FS Meldung zwei mal? Hast du den print im GameMode auch geändert?
Allerdings erkennt er ja die Datei auch hier nicht. Bist du dir wirklich sicher, dass du die Datei richtig erstellt hast?
Entferne jetzt, wenn du dir sicher bist, dass es nicht an der Datei liegt, das anti Cheat und schaue ob dann 1 geprintet wird. Das kann ich mir nur schwer vorstellen. (oder einfach mal einen leeren GM starten).
-
Das Ganze macht für mich noch immer keinen wirklichen Sinn.
Versuche es mal so:Erstelle einen neuen Filterscript und füge das bei OnPlayerConnect ein:
public OnPlayerConnect(playerid)
{
new string[64], plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "Accounts/%s.ini", plname);
print(string);
if(!fexist(string))return print("PlayerAccount FS 0");
print("PlayerAccount FS 1");
return 1;
}Funktioniert das wenigstens?
(Füge den FS auch in server.cfg ein.)Wenn ja, dann müssten wir ein wenig tricksen. Ist zwar nicht gerade schön, aber der Fehler macht wirklich keinen Sinn.
-
Warum machst du es nicht einfach so?
forward AC_OnPlayerConnect(playerid);
public AC_OnPlayerConnect(playerid)
{
new string[64], plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "Accounts/%s.ini", plname);
print(string);
if(!dini_Exists(string))return gPlayerAccount[playerid] = 0, print("PlayerAccount 0");
gPlayerAccount[playerid] = 1, print("PlayerAccount 1");
return 1;
}
Function OnPlayerConnect(playerid)
{
AC_start[playerid] = 0,Desk[playerid] = 0;
switched[playerid] = 0,EnterLockedV[playerid] = 0;
Shot[playerid] = 0, ShotTime[playerid] = 0;
SetPlayerHealthEx(playerid,100);
AC_Desktop_Check[playerid] = 0,AC_Desktop_Timer_Started[playerid] = 0,AC_Desktop_Status[playerid] = 0;
}zu:
Function OnPlayerConnect(playerid)
{
AC_start[playerid] = 0,Desk[playerid] = 0;
switched[playerid] = 0,EnterLockedV[playerid] = 0;
Shot[playerid] = 0, ShotTime[playerid] = 0;
SetPlayerHealthEx(playerid,100);
AC_Desktop_Check[playerid] = 0,AC_Desktop_Timer_Started[playerid] = 0,AC_Desktop_Status[playerid] = 0;new string[64], plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "Accounts/%s.ini", plname);
print(string);
if(!dini_Exists(string))return gPlayerAccount[playerid] = 0, print("PlayerAccount 0");
gPlayerAccount[playerid] = 1, print("PlayerAccount 1");
}Ich sehe hier nirgends, dass du diesen Timer von vorhin startest. Und an dem Code liegt es ja nicht...
Oder kann es sein, dass der Anti-Cheat den du da hast irgendwelche dini Funktionen überschreibt?
Versuch es auch mal so:
if(!fexist(string))return gPlayerAccount[playerid] = 0, print("PlayerAccount 0"); -
Versuche es mit http://wiki.sa-mp.com/wiki/TextDrawBackgroundColor
Zu: 0xFFFFFF00 (also 100% durchsichtig). -
Das Einzige was mir dann noch in den Sinn kommt ist, dass du den NPC falsch aufgenommen hast.
Wenn's das auch nicht ist, weiß ich nicht was es noch ein könnte. -
if(dialogid == DIALOG_GESCHLECHT)
{
if(response)
{
switch(listitem)
{
case 0: SendClientMessage(playerid,-1,"OK"),SpielerLaden(playerid), sInfo[playerid][sGeschlecht]=1;
case 1: SendClientMessage(playerid,-1,"OK"),SpielerLaden(playerid), sInfo[playerid][sGeschlecht]=2;
}
}
}Dann erst Laden, und dann setzen. Danach musst du es eben irgendwann speichern.
-
if(dialogid == DIALOG_GESCHLECHT)
{
if(response)
{
new SpielerDatei[64];
format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
switch(listitem)
{
case 0: dini_Set(SpielerDatei,"Geschlecht", "1"),SendClientMessage(playerid,-1,"OK"),SpielerLaden(playerid);
case 1: dini_Set(SpielerDatei,"Geschlecht", "2"),SendClientMessage(playerid,-1,"OK"),SpielerLaden(playerid);
}
}
}Dann geht's.
@NicoWiss: Nur macht es wenig Sinn Daten zu setzen und dann erst zu laden. Ist doch logisch, dass die dann überschrieben werden. Wenn, dann muss man es direkt (wie oben) in die Datei speichern, wenn man die Datei danach lädt.
-
SpielerLaden? Müsste da nicht SpielerSpeichern stehen?
Wenn nein, dann poste mal dein SpielerLaden, ich gehe stark davon aus, dass du es dort wieder zu 0 setzt, bzw. lädst. -
Setze das Interior zum Test auch mal auf 0.
Hast du alle Dateien vorhanden? Connecten die Bots? Hast du zu Fuß in der npcmodes .pwn eingestellt und kompiliert? -
Das SetPlayerVirtualWorld bei den Nutten entfernen, natürlich.
Oder zu 0 setzen.