Klassenauswahl nur wenn Spieler Tod

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
  • Hallo,
    ich bin noch ziiiemlich neu bei Pawn und komme bei einem Problem nicht weiter.
    Ich will es hinbekommen, dass die Klassenauswahl bei keinem Connect mehr kommt, sondern nur noch wenn man Tod ist.
    Hat da jemand ne Idee?
    Vielen Dank schonmal :)

  • Ich weiß nicht ob du mein Problem richtig verstanden hast. Wenn ich Connecte komme ich immernoch in die Skinauswahl. Das soll aber NUR passieren, wenn ich Tod bin. Sonst soll automatisch der alte Skin gewählt werden.
    Crossline

  • OnPlayerConnect und da


    SetSpawnInfo(playerid,0,15,1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
    SpawnPlayer(playerid);


    Die einzelnen Parameter:



    Gruß


    //EDIT parameter Liste eingefpügt

  • In einer lokalen .ini, frag mich nicht, was das ist (dann ja nicht Mysql :D)
    Die Positionen werden dort gespeichert in einer "Name.ini". Kann man weitere Parameter da einfach hinzufügen? (wie?)
    Crossline

  • Okay, ich habe gerade den überblick verloren x:


    Was mache ich falsch?
    public OnPlayerConnect(playerid)
    {
    SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
    SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
    LoadStats(playerid);
    SpawnPlayer(playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);
    {
    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));


    new Float:x;
    new Float:y;
    new Float:z;


    GetPlayerPos(playerid,x,y,z);
    positionx = x;
    positiony = y;
    positionz = z;
    if (!dini_Exists(FileStats(playerid)))
    {
    dini_Create(FileStats(playerid));
    }


    SaveStats(playerid);
    return 1;
    }


  • public OnPlayerConnect(playerid)
    {
    public OnPlayerDisconnect(playerid, reason)
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);
    SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
    SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
    LoadStats(playerid);
    SpawnPlayer(playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);


    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));


    new Float:x;
    new Float:y;
    new Float:z;


    GetPlayerPos(playerid,x,y,z);
    positionx = x;
    positiony = y;
    positionz = z;
    if (!dini_Exists(FileStats(playerid)))
    {
    dini_Create(FileStats(playerid));
    }


    SaveStats(playerid);
    return 1;
    }

  • Habs implementiert + getestet, aber es wird nichts in die .ini geschrieben.
    Noch irgendwelche fehler?


    public OnPlayerConnect(playerid)
    {
    SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
    SetSpawnInfo(playerid,0,dini_Int("/scriptfiles/%s.ini","skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
    LoadStats(playerid);
    SpawnPlayer(playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);


    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));


    new Float:x;
    new Float:y;
    new Float:z;


    GetPlayerPos(playerid,x,y,z);
    positionx = x;
    positiony = y;
    positionz = z;
    if (!dini_Exists(FileStats(playerid)))
    {
    dini_Create(FileStats(playerid));
    }


    SaveStats(playerid);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    SetPlayerPos(playerid,positionx,positiony,positionz);
    return 1;
    }


    Ich wollte mich noch mal bei dir bedanken, dass du dir so lange Zeit nimmst! Super :)

  • Geschrieben sollte schon was werden, jedoch ist bei OnPlayerConnect ein Fehler.


    Und zwar liest Du den Skin immer aus der "%s.ini" aus.


    Du musst das in ein Format machen:


    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);//hier ersetzt Du "%s" mit dem Namen


    SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0)


    Dann sollte es funktionieren.

  • public OnPlayerConnect(playerid)
    {
    SendClientMessage(playerid,0x00A93CFF,"Herzlich Willkommen auf Crosslines GTA SA RL Server!");
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);//hier ersetzt Du "%s" mit dem Namen


    SetSpawnInfo(playerid,0,dini_Int(pfad,"skin"),1765.6999511719, -1921.0999755859, 13.60000038147,212.2234,0,0,0,0,0,0);
    LoadStats(playerid);
    SpawnPlayer(playerid);
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pfad[50], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));


    format(pfad,sizeof(pfad),"/scriptfiles/%s.ini",name);


    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));


    new Float:x;
    new Float:y;
    new Float:z;


    GetPlayerPos(playerid,x,y,z);
    positionx = x;
    positiony = y;
    positionz = z;
    if (!dini_Exists(FileStats(playerid)))
    {
    dini_Create(FileStats(playerid));
    }


    SaveStats(playerid);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    SetPlayerPos(playerid,positionx,positiony,positionz);
    return 1;
    }


    Bei diesem Code wird nichts in die ini geschrieben.
    Wenn ich das %s in Crossline abändere kann es doch gar nicht mehr funktionieren wie ich will, oder?
    Wir nehmen doch extra das %s damit es mit jedem User klappt?

  • Ja, sie existiert, allerdings ohne einen Punkt "skin" oder ähnliches.
    Was muss ich dir schicken, dass ich dir helfen kann?
    Und was ist wenn (z.B.) User1 joint, seine Daten müssen ja in User1.ini gespeichert werden, nicht Crossline.ini

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen