/gmx Spawn Bug

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Heyho liebe Community,


    ich habe irgendwie einen Bug in meinem Sciprt das wenn ich /gmx oder auch über Rcon gmx mache das die spieler die noch auf den server sind dann in der lluft spawnen dann auf den standart spawn von samp ich glaube 0 0 0 gesetzt werden (an der Farm da bei Fleischberg).


    Allerdings wenn man nciht auf den server ist und mach über die samp rcon console gmx läuft alles normal. und man spawnt wie gewollt da wo man sich ausgeloggt hat.


    Kann wer helfen?


    MfG
    Mischi

    Einmal editiert, zuletzt von Mischi ()

  • Du hast Spawn Save System oder?


    wenn nicht, hast du GmxSaveSpawn oder du wirst als gecrascht erkannt!


    poste mal dein


    Public SetPlayerSpawn(playerid)


    MfG Kevin

  • public OnPlayerSpawn(playerid)
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName, sizeof(SpielerName));
    new SpielerDatei[128];
    format(SpielerDatei, sizeof(SpielerDatei), Acc_Ordner, SpielerName);


    if (SpielerInfo[playerid][Eingeloggt] == 0)
    {
    SendClientMessage(playerid, ADMIN_RED, " Du musst dich davor einloggen um zu Spawnen!!!");
    Kick(playerid);
    }
    else
    {
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, SpielerInfo[playerid][Geld]);
    SetPlayerScore(playerid, SpielerInfo[playerid][Level]);
    SetPlayerFightingStyle(playerid, SpielerInfo[playerid][FightStyle]);
    SetPlayerDrunkLevel(playerid, SpielerInfo[playerid][DrunkLevel]);
    SetPlayerPos(playerid, SpielerInfo[playerid][PositionX], SpielerInfo[playerid][PositionY], SpielerInfo[playerid][PositionZ]);
    SetPlayerFacingAngle(playerid, SpielerInfo[playerid][Angle]);
    SetPlayerInterior(playerid, SpielerInfo[playerid][Interior]);
    //SetPlayerHealth(playerid, SpielerInfo[playerid][Leben]);
    }
    return 1;
    }


    hab nur das und kein


    Public SetPlayerSpawn(playerid)


    ^^

  • SetPlayerPos(playerid, X,Y,Z);
    //mit X,Y,Z.... Du weißt das oder? - sieht mir wie ein selfmade aus, mache ich auch gerade! :D



    Außerdem solltest du alles für die einzelnen Fraktionen machen!


    z.B


    if(SpielerInfo[playerid][sBoss] == 1 || SpielerInfo[playerid][sAngestellter] == 1)
    {
    WAFFNE GEBEN ECT.
    DEINE POSIS
    USW.
    }
    else
    {
    BLAAAAAAAAAAAAAAA
    }

  • weis ich klar aber
    SpielerInfo[playerid][PositionX], SpielerInfo[playerid][PositionY], SpielerInfo[playerid][PositionZ] ist X Y und Z^^


    Sonst noch ein Tipp^^


    PS: Jap ist mein Selfmade was ich zz scripte :)


    Edit:
    naja bisjetzt brauch ich das mti den anderen Faktoren nicht da ich noch keine Teams drinne hab^^


    Edit2: Wer ne Idee was ich dagegen machen kann?

    2 Mal editiert, zuletzt von Mischi ()

  • Einfach die Pos Selber einfügen und nich von der ini abfragen! :)

  • Denn erstellst du Neuen PlayerInfo!


    pGmx
    pGmxX
    pGmxY
    pGmxZ


    also wenn du GMX machst...
    Wird die PlayerPos in den variablen gespeichert
    aber vergess nicht einen kleinen Timer zu machen!
    so 2sek, bis zum restart, sonst landest du wieder bei der Farm!


    Und beim SetPlayerSpawn
    if(PlayerInfo[playerid][Gmx] == 1)
    {
    SetPlayerPos(playerid, PlayerInfo[playerid][GmxX], PlayerInfo[playerid][GmxY],PlayerInfo[playerid][GmxZ]);
    //Und die anderen Funktionen!
    return 1;
    }

  • oder du machst einfach in den GMX befehl rein, dass alle posis gesaved werden, und fertig ;)
    das is viel einfacher als das ganze umständliche xD

    ja das hab ich ja schon... ich hab vor dem "gmx" befehl meine Funktion SpielerSpeichern(); drinne aber k.A. an was es liegt ...


    Ps: ist das mit dem pGmx undso nicht das gleich wie ich jetzt drinne hab?^^


    EDIT: was ist das für ein Callback "SetPlayerSpawn"? ich hab den net... hab nur "public OnPlayerSpawn(playerid)".

    2 Mal editiert, zuletzt von Mischi ()

  • Oben Bei PlayerInfo

    pGmx,
    GmxX,
    GmxY,
    GmxZ,//Einfach irgendwo einfügen!(bei enum PlayerInfo)


    if(strcmp(cmd, "/gmx", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 4 || IsPlayerAdmin(playerid))
    {
    SetTimer("gmx123",5000,0);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(i,x,y,z);
    PlayerInfo[i][pGmx] = 1;
    PlayerInfo[i][GmxX] = x;
    PlayerInfo[i][GmxY] = y;
    PlayerInfo[i][GmxZ] = z;
    OnPlayerUpdate(i);
    }
    }
    return 1;
    }


    foward gmx123();
    public gmx123()
    {
    SendRconCommand("gmx");
    return 1;
    }
    unter:
    public OnPlayerSpawn(playerid)


    if(PlayerInfo[playerid][pGmx] == 1)
    {
    SetPlayerPos(playerid,PlayerInfo[playerid][GmxX],PlayerInfo[playerid][GmxY],PlayerInfo[playerid][GmxZ])
    PlayerInfo[playerid][pGmx] = 1;
    }


    Vergesse nicht beim OnPlayerLogin
    die posis zu laden, und beim OnPlayerUpdate zu speichern!


    Mfg Kevin