einige probleme

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
  • 1. wie kann ich machen, dass wenn ich den server aus mache bzw. gmx mache das da die account daten von dem spieler gespeichert werden ?
    hier mal meine OnPlayerDisconnect funktion:


    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof (name));
    format (Spielerdatei, sizeof (Spielerdatei), "/Accounts/%s.ini", name);
    dini_IntSet(Spielerdatei, "Geld", (GetPlayerMoney(playerid)));
    dini_IntSet(Spielerdatei, "Skin", (GetPlayerSkin(playerid)));
    dini_IntSet(Spielerdatei, "muted", 0);
    return 1;
    }
    //Player verlässt Server
    public OnPlayerDisconnect(playerid,reason)
    {
    if (GetPVarInt(playerid, "eingeloggt") == 1)
    {
    SpielerSpeichern(playerid);
    return 1;
    }
    return 1;
    }


    2. passiert folgendes bin ich im server drinne:
    registriert sich dann ein neuer kann ich ja auswählen ob ich tut machen will oder nich:
    klick ich auf nein ist ja alles ok
    bei ja wechselt er ja mit der camera zu verschiedenen gebäuden:


    also pd un so
    also wenn ich bei tut machen ? auf ja klicke, wechselt bei dem neu registrierten die camera zum ersten gebäude
    und dann wenn es zum 2. wechselt, wechselt es nicht bei dem neu registrierten zum nächsten gebäude, sondern bei allen spielern die schon drinne sind
    un das tut von dem registrierten friert ein.
    aber das von den anderen spielern die schon drinne sind da läuft das tut bis zu ende durch


    hier meine tut code:


    public tut2(playerid)
    {
    TextDrawHideForPlayer(playerid, tut1_zeile1);
    TextDrawHideForPlayer(playerid, tut1_zeile2);
    TextDrawHideForPlayer(playerid, tut1_zeile3);
    TextDrawShowForPlayer(playerid, tut2_zeile1);
    TextDrawShowForPlayer(playerid, tut2_zeile2);
    TextDrawShowForPlayer(playerid, tut2_zeile3);
    SetSpawnInfo(playerid,0,26,1209.2809,-1323.8219,13.3984,1.3277,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid,26);
    TogglePlayerControllable(playerid,0);
    SetPlayerCameraPos(playerid,1209.2809,-1323.8219,13.3984);
    SetPlayerCameraLookAt(playerid, 1172.0898,-1323.2286,15.4027);
    SetTimer("tut3", 10000, false);
    return 1;
    }


    public tut3(playerid)
    {
    TextDrawHideForPlayer(playerid, tut2_zeile1);
    TextDrawHideForPlayer(playerid, tut2_zeile2);
    TextDrawHideForPlayer(playerid, tut2_zeile3);
    TextDrawShowForPlayer(playerid, tut3_zeile1);
    TextDrawShowForPlayer(playerid, tut3_zeile2);
    TextDrawShowForPlayer(playerid, tut3_zeile3);
    SetSpawnInfo(playerid,0,26,1481.0909,-1166.6974,24.0891,1.3277,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid,26);
    TogglePlayerControllable(playerid,0);
    SetPlayerCameraPos(playerid,1481.0909,-1166.6974,24.0891);
    SetPlayerCameraLookAt(playerid, 1458.7700,-1140.0200,24.0692);
    SetTimer("tut4",10000,false);
    return 1;
    }


    public tut4(playerid)
    {
    TextDrawHideForPlayer(playerid, tut3_zeile1);
    TextDrawHideForPlayer(playerid, tut3_zeile2);
    TextDrawHideForPlayer(playerid, tut3_zeile3);
    TextDrawShowForPlayer(playerid, tut4_zeile1);
    TextDrawShowForPlayer(playerid, tut4_zeile2);
    TextDrawShowForPlayer(playerid, tut4_zeile3);
    SetSpawnInfo(playerid,0,26,1472.6868,-1048.3533,23.8290,1.3277,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid,26);
    TogglePlayerControllable(playerid,0);
    SetPlayerCameraPos(playerid,1472.6868,-1048.3533,23.8290);
    SetPlayerCameraLookAt(playerid, 1462.3735,-1010.1993,26.8438);
    SetTimer("tut5",10000,false);
    return 1;
    }


    public tut5(playerid)
    {
    TextDrawHideForPlayer(playerid, tut4_zeile1);
    TextDrawHideForPlayer(playerid, tut4_zeile2);
    TextDrawHideForPlayer(playerid, tut4_zeile3);
    TextDrawShowForPlayer(playerid, tut5_zeile1);
    TextDrawShowForPlayer(playerid, tut5_zeile2);
    SetSpawnInfo(playerid,0,26,1204.3558,-954.0793,42.9260,1.3277,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid,26);
    TogglePlayerControllable(playerid,0);
    SetPlayerCameraPos(playerid, 1204.3558,-954.0793,42.9260);
    SetPlayerCameraLookAt(playerid, 1200.7501,-927.4736,42.9671);
    SetTimer("tut6",10000,false);
    return 1;
    }


    public tut6(playerid)
    {
    TextDrawHideForPlayer(playerid, tut5_zeile1);
    TextDrawHideForPlayer(playerid, tut5_zeile2);
    TextDrawShowForPlayer(playerid, tut6_zeile1);
    TextDrawShowForPlayer(playerid, tut6_zeile2);
    TextDrawShowForPlayer(playerid, tut6_zeile3);
    SetSpawnInfo(playerid,0,26,556.6799,-1255.1632,17.0741,1.3277,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid,26);
    TogglePlayerControllable(playerid,0);
    SetPlayerCameraPos(playerid, 556.6799,-1255.1632,17.0741);
    SetPlayerCameraLookAt(playerid, 544.6072,-1293.7593,17.2422);
    SetTimer("tut7",10000,false);
    return 1;
    }


    public tut7(playerid)
    {
    TextDrawHideForPlayer(playerid, tut6_zeile1);
    TextDrawHideForPlayer(playerid, tut6_zeile2);
    TextDrawHideForPlayer(playerid, tut6_zeile3);
    TextDrawShowForPlayer(playerid, tut7_zeile1);
    TextDrawShowForPlayer(playerid, tut7_zeile2);
    TextDrawShowForPlayer(playerid, tut7_zeile3);
    SetSpawnInfo(playerid,0,26,1479.7684,-1721.1296,13.5469,1.3277,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid,26);
    TogglePlayerControllable(playerid,0);
    SetPlayerCameraPos(playerid, 1479.7684,-1721.1296,20.5469);
    SetPlayerCameraLookAt(playerid, 1481.1078,-1770.0000,18.7958);
    SetTimer("tut_end",10000,false);
    return 1;
    }


    public tut_end(playerid)
    {
    TextDrawHideForPlayer(playerid, tut7_zeile1);
    TextDrawHideForPlayer(playerid, tut7_zeile2);
    TextDrawHideForPlayer(playerid, tut7_zeile3);
    SetSpawnInfo(playerid,0,26,1484.5742,-1742.8270,13.5469,1.3277,0,0,0,0,0,0);
    TogglePlayerControllable(playerid,1);
    AccountLaden(playerid);
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof (name));
    format (Spielerdatei, sizeof (Spielerdatei), "/Accounts/%s.ini", name);
    dini_IntSet(Spielerdatei, "Tutorial", 1);
    ShowPlayerDialog(playerid, DIA_TUT_END, DIALOG_STYLE_MSGBOX, "Tutorial-Ende", "Du hast nun eine Überblick über die wichtigsten Gebäude/Standorte erhalten. \nUm dich mit den Befehlen vertraut zu machen, \ngebe /help ein. \nDu beginnst mit 30000$. \nTIPP: Du solltest dir als erstes einen Skin kaufen. \nNun aber viel Spaß beim Spielen.","Play","");
    return 1;
    }


    3. problem
    wenn ich auf meinem laptop meinen spieler anguck auf meinem pc hat der einen anderen skin als der den ich auf meinem pc steuere
    und das gleiche auch anders rum


    wieso bloß :(



    4. ich habe das problem das bei mir wenn ich schreibe kein text ausgegeben wird:


    public OnPlayerText(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof (name));
    format (Spielerdatei, sizeof (Spielerdatei), "/Accounts/%s.ini", name);
    new ooc[64];
    new text[64];
    if (playerid, dini_Int(Spielerdatei, "Admin") == 0)
    {
    if (playerid, dini_Int(Spielerdatei, "muted") == 1)
    {
    SendClientMessage(playerid, ROT, "Du bist gemuted und kannst nicht reden.");
    return 0;
    }
    else
    {
    format(ooc, sizeof(ooc), "{FFFFFF}%s: %s", name, text);
    SendClientMessageToAll(CHATCOLOR, ooc);
    return 0;
    }
    }
    if (playerid, dini_Int(Spielerdatei, "Admin") == 1)
    {
    if (playerid, dini_Int(Spielerdatei, "muted") == 1)
    {
    SendClientMessage(playerid, ROT, "Du bist gemuted und kannst nicht reden.");
    return 0;
    }
    else
    {
    format(ooc, sizeof(ooc), "{0099FF}Supporter {FFFFFF}%s: %s", name, text);
    SendClientMessageToAll(CHATCOLOR, ooc);
    return 0;
    }
    }
    if (playerid, dini_Int(Spielerdatei, "Admin") == 2)
    {
    if (playerid, dini_Int(Spielerdatei, "muted") == 1)
    {
    SendClientMessage(playerid, ROT, "Du bist gemuted und kannst nicht reden.");
    return 0;
    }
    else
    {
    format(ooc, sizeof(ooc), "{009900}Scripter {FFFFFF}%s: %s", name, text);
    SendClientMessageToAll(CHATCOLOR, ooc);
    return 0;
    }
    }
    if (playerid, dini_Int(Spielerdatei, "Admin") == 3)
    {
    if (playerid, dini_Int(Spielerdatei, "muted") == 1)
    {
    SendClientMessage(playerid, ROT, "Du bist gemuted und kannst nicht reden.");
    return 0;
    }
    else
    {
    format(ooc, sizeof(ooc), "{FF0000}Admin {FFFFFF}%s: %s", name, text);
    SendClientMessageToAll(CHATCOLOR, ooc);
    return 0;
    }
    }
    return 1;
    }


    wird steht zwar dann z.b. da Admin meinname: da aber es steht dann nichts hinter dem doppelpunkt egal was ich schreibe. also ich drück normal t geb irwas ein und es steht dann nur da Admni meiname:


    was is da los ?


    EDIT:// keiner ne idee ?

    Einmal editiert, zuletzt von rocco95 ()

  • Bei OnGameModeExit, ne schleife reinpacken und Speichern ;)

  • GMX Befehl mit den user spaeichern:


    ocmd:gmx(playerid,params[])
    {
    #pragma unused params
    if(SpielerInfo[playerid][pAdmin]>=2)
    {
    SendClientMessageToAll(cYellow,"Bitte gedulde dich einen Moment");
    SendClientMessageToAll(cYellow,"Wir sind gleich wieder da");
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(GetPVarInt(i,"loggedin")==1)
    {
    SpielerSpeichern(i);
    }
    }
    SendRconCommand("gmx");
    printf("%s hat den Server restartet",SpielerName(playerid));
    return 1;
    }
    else
    {
    SendClientMessage(playerid,cRed,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: {00FF5A}Moderator");
    }
    return 1;
    }



    achtung!! Anpassung auf eigene Gefahr

  • Bavor du ihn ausmachst machst du einfach nen Command


    /kickall ;)


    Schon wird er gespeichert ^^


    if(strcmp(cmdtext, "/kickall", true) == 0)
    {
    if (PlayerInfo[playerid][pAdmin] >= 1337)
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    Kick(i);
    }
    }
    return 1;
    }

  • Techno_Bass?
    Und wie willst du /gmx eingeben, wenn du gekickst wirst? xD
    Wie wäre es mit:

    if(strcmp(cmdtext, "/kickall", true) == 0)
    {
    if (PlayerInfo[playerid][pAdmin] >= 1337)
    {
    for(new i; i<MAX_PLAYERS; i++)
    {
    if(i != playerid)
    {
    Kick(i);
    }
    }
    }
    return 1;
    }


    //edit: Zitat weg, steht ja direkt über mir xD
    //edit2: Verbesserung.
    //edit3: Außerdem werden dann deine eigenen Daten nicht gespeichert. Ist also, wie du unter mir sagst, tatsächlich eine blöde Antwort :D

    Einmal editiert, zuletzt von Shine ()

  • xP naja ^^


    Warn Tipp nur :D


    Habe dana uch gecheckt das dass ne doofe Antwort drauf war ;)

  • for(new i; i<MAX_PLAYERS; i++)
    {
    //Deine Speicher Funktion.. z.b.
    Speichern(i);
    }

  • Er hat seine Speicherfunktion schon im ersten Post genannt,


    Deine Schleife muss so aussehen:
    for(new i; i<MAX_PLAYERS; i++)
    {
    SpielerSpeichern(i);
    }


    Wollte es dir per PN schreiben, aber du ''möchtest keine Nachrichten empfangen'' ...

  • Hier mal der Befehl aus unserem Selfmade.


    if (strcmp("/restart", cmdtext, true, 10) == 0)
    { if(SpielerInfo[playerid][sAdmin] == 2000)
    {
    for(new i=0; i< GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    SpielerSpeichern(i);
    SendClientMessageToAll(COLOR_YELLOW,"Der Server wird neu gestartet!");
    Kick(i);
    }
    }
    SendRconCommand("gmx");
    return 1;
    }
    else SendClientMessage(playerid,COLOR_INFO,"Du bist kein Administrator 2000!");
    return 1;
    }

    Aus Herz & Leidenschaft ein Pawn Scripter :love:


  • public OnGameModeExit()
    {
    for(new i; i<MAX_PLAYERS; i++)
    SpielerSpeichern(i);
    return 1;
    }


    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof (name));
    format (Spielerdatei, sizeof (Spielerdatei), "/Accounts/%s.ini", name);
    dini_IntSet(Spielerdatei, "Geld", (GetPlayerMoney(playerid)));
    dini_IntSet(Spielerdatei, "Skin", (GetPlayerSkin(playerid)));
    dini_IntSet(Spielerdatei, "muted", 0);
    return 1;
    }


    das i mein gmx zeugs also fürs account speichern aber er speichert meinen skin trotzdem nich beim gmx :(

  • stock AccountLaden(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof (name));
    format (Spielerdatei, sizeof (Spielerdatei), "/Accounts/%s.ini", name);
    SetPVarInt(playerid, "eingeloggt", 1);
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid, dini_Int(Spielerdatei,"Skin"));
    SetPlayerColor(playerid, CHATCOLOR);
    SetTimer("hunger1",1000,false);
    return 1;
    }


    wenn ich mich disconnecte geht alles
    un beim connecten is der skin auch da der gespeichert wurde aber beim gmx geht das nich irwie