In diesem Zustand können keine Animationen ausgeführt werden:
TogglePlayerControllable(playerid, false);
Beiträge von Jeffry
-
-
Poste bitte mal den aktuellen Server Log (leere in vorher, und poste dann alles).
-
Dann hast du was falsch gemacht.
Mindestens dieser print müsste ja kommen:
printf("OnPlayerRequestClass: %d");
Sonst würdest du ja gar nichts sehen.
-
Ok, dann schreibs so und poste dann was im Server Log steht, wenn du den Server betrittst und auf die Textdraws wartest:
public Verbindung(playerid)
{
printf("Verbindung für %d aufgerufen", playerid);
//Verbindung
for(new i; i<MAX_PLAYERS; i++) SendClientMessage(playerid, COLOR_WHITE, " ");
printf("1");
TextDrawHideForPlayer(playerid, Textdraw18), TextDrawHideForPlayer(playerid, Textdraw19);
printf("2");
//Login/Register
TextDrawShowForPlayer(playerid, Textdraw4); TextDrawShowForPlayer(playerid, Textdraw5); TextDrawShowForPlayer(playerid, Textdraw6);
printf("3");
TextDrawShowForPlayer(playerid, Textdraw7); TextDrawShowForPlayer(playerid, Textdraw8); TextDrawShowForPlayer(playerid, Textdraw9);
printf("4");
TextDrawShowForPlayer(playerid, Textdraw10); TextDrawShowForPlayer(playerid, Textdraw11); TextDrawShowForPlayer(playerid, Textdraw12);
printf("5");
TextDrawShowForPlayer(playerid, Textdraw13); TextDrawShowForPlayer(playerid, Textdraw14); TextDrawShowForPlayer(playerid, Textdraw15);
printf("6");
TextDrawShowForPlayer(playerid, Textdraw16); TextDrawShowForPlayer(playerid, Textdraw17);
printf("7");
return 1;
}public OnPlayerRequestClass(playerid, classid)
{
//Verbindung
printf("OnPlayerRequestClass: %d");
SetTimerEx("Verbindung", 10000, false, "d", playerid);
printf("Timer gestartet...");
TogglePlayerSpectating(playerid, 1);
for(new i; i<MAX_PLAYERS; i++){SendClientMessage(playerid, COLOR_WHITE, " ");}
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Die Verbindung zum Server wird aufgebaut...");
InterpolateCameraPos(playerid, 1264.128662, -1531.366088, 54.762935, 1402.836669, -893.413818, 86.809860, 10000);
TextDrawShowForPlayer(playerid, Textdraw0), TextDrawShowForPlayer(playerid, Textdraw1), TextDrawShowForPlayer(playerid, Textdraw2),
TextDrawShowForPlayer(playerid, Textdraw3), TextDrawShowForPlayer(playerid, Textdraw18), TextDrawShowForPlayer(playerid, Textdraw19);
InterpolateCameraLookAt(playerid, 1265.173828, -1526.493408, 55.168743, 1403.261474, -888.433959, 86.665664, 5000);
return 1;
} -
Welche Errors?
Löschst du alle 3 Code-Teile die du gepostet hast? -
Gerne

Brauchst du das überhaupt? Du hattest doch sowas ähnliches schonmal.
Wenn du es nicht brauchst, lösche das einfach. -
Poste bitte nochmal dein OnPlayerRequestClass, wie es jetzt ist.
-
Das passt schon, du hast ja diese Abfrage drin:
if(PlayerInfo[i][pPayDay] >= 60){Wenn du dir unsicher bist, kannst du es ja auch so schreiben:
public paydaytimer()
{
ForAllPlayers(i)
{
if(PlayerInfo[i][pJailed] != 2)
{
PlayerInfo[i][pPayDay] += 1;
if(PlayerInfo[i][pPayDay] >= 60) PayDay(i);
}
}
return 1;
}
Macht keinen Unterschied. -
public paydaytimer()
{
ForAllPlayers(i)
{
if(PlayerInfo[i][pJailed] != 2)
{
PlayerInfo[i][pPayDay] += 1;
PayDay(i);
}
}
return 1;
}Dann sollte es klappen, sofern paydaytimer() korrekt aufgerufen wird.
-
Suche einfach mal wie gesagt nach SpawnPlayer, dort wo dir die Registrierung angezeigt wird. Zeigt es dir die Registrierung in der normalen class selection an, oder nicht? Wenn nicht, und du wirst dann gekickt, dann liegt es am dem wie ich gesagt habe.
Zwecks dem ackslimit, schau mal in dem Server Log was da steht wenn du gekickt wirst. Steht da was?
-
Das ist wahrscheinlich ein älterer Code, daher wird sicherlich dort wo du dich registrierst SpawnPlayer aufgerufen, aber ohne dass davor SetSpawnInfo steht. Das musst du entsprechend davor schreiben, vor SpawnPlayer.
http://wiki.sa-mp.com/wiki/SetSpawnInfo -
Wird der Chat bei dem zweiten Spieler geleert?
-
SetTimerEx("Verbindung", 10000, false, "d", playerid);
-
Sind das Textdraws die für jeden Spieler anders aussehen, also einen anderen Text haben? Wenn ja, erstelle sie als PlayerTextDraw.
Ansonsten, zeig mal wie du den Timer startest, also das Verbindung Callback aufrufst.
-
Wie sieht es aus, wenn du das Textdraw mit Index 8 mit dem mit Index 9 (welches nicht angezeigt wird) mal vertauschst?
TextDraws[TDSpeedClock][8] = TextDrawCreate(548.000000,401.000000,".");
TextDraws[TDSpeedClock][9] = TextDrawCreate(534.000000,396.000000,"~g~/ ");und:
TextDrawLetterSize(TextDraws[TDSpeedClock][8], 0.73, -2.60);
TextDrawLetterSize(TextDraws[TDSpeedClock][9], 1.059999, 2.100000);(Und natürlich sonst noch bei allem, wo die beiden verwendet werden, 8->9 und 9->8.)
Fehlt dann der Strich, oder noch immer der Punkt? -
Edit: mit += funktionierts o.0. Naja dachte immer das floatadd ein muss ist. Da habe ich mich wohl
Zum Teil funktionieren diese "float"-Funktionen nicht, oder nicht richtig, wie so vieles in SA-MP.
Generell kannst du aber auf alle dieser Funktionen verzichten, da alles (auch mit Floats) mit den mathematischen Operatoren machbar ist. Nur floatround macht manchmal Sinn, wenn man eben eine Zahl runden möchte.
Aber wenn es klappt, passt es ja!
-
Wie hast du _guthaben und pHandyGuthaben deklariert?
Beide als "Float:"? Wenn nicht, macht das.PlayerInfo[playerid][pHandyGuthaben] += _guthaben;
Dann würde es auch so gehen.
-
Dann dürfte es so passen:
public OnPlayerEnterRaceCheckpoint(playerid)
{
if (IsPlayerInAnyVehicle(playerid))
{
if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
{
if(Praxis[playerid] == 1)
{
CheckpointStatus[playerid]++;
new string[128];
if(CheckpointStatus[playerid] < MAX_RACE_POINTS-1)
{
format(string, sizeof(string),"Status: %d/22", CheckpointStatus[playerid]);
PlayerTextDrawSetString(playerid,Textstatus[playerid],string);
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]+1][0],racecheckpoints[CheckpointStatus[playerid]+1][1],racecheckpoints[CheckpointStatus[playerid]+1][2],3.0);
}
else if(CheckpointStatus[playerid] == MAX_RACE_POINTS-1)
{
format(string, sizeof(string),"Status: %d/22", CheckpointStatus[playerid]);
PlayerTextDrawSetString(playerid,Textstatus[playerid],string);
DisablePlayerRaceCheckpoint(playerid);
SetPlayerRaceCheckpoint(playerid,1,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],3.0);
}
else
{
Praxis[playerid]= 0;
CheckpointStatus[playerid] = 0;
KillTimer(speedTimer[playerid]);
format(string,sizeof(string),"Du hast %d / 3 Verwarnungen!",playerWarn[playerid]);
SendClientMessage(playerid, warn,string);
DisablePlayerRaceCheckpoint(playerid);
}
}
}
}
return 1;
} -
Dann müsstest du eben das hier ändern zu sowas in der Art:
if(Spieler[p][pFraktion] == FrakInfo[Spieler[playerid][pFraktion]][Gegner])Je nach dem wie das bei dir heißt.
-
Lade dir hier das aktuelle MySQL Plugin herunter:
http://forum.sa-mp.com/showthread.php?t=56564Lade dir außerdem das aktuelle sscanf Plugin herunter, sowie das neuste Streamer Plugin.