Skin speichern bei Befehl Eingabe

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
  • Function AdminDienst(playerid)
    {
    new sendername[MAX_PLAYER_NAME],string[128];
    if(AdminDuty[playerid] == 0)
    {
    if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2 || PlayerInfo[playerid][pAdmin] == 3)
    {
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich zum Support angemeldet. Bei Fragen /sup",sendername,playerid);
    SendClientMessageToAll(COLOR_GREEN, string);
    SetPlayerSkin(playerid, 278);
    SetPlayerAttachedObject(playerid, 3, 18646, 2, 0.290, -0.02, 0.01, 5.50, 84.60, 84.7, 1, 1, 1, 0xFF000000);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,0xFF5A00FF);
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] == 4 || PlayerInfo[playerid][pAdmin] == 5)
    {
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich zum Support angemeldet. Bei Fragen /sup",sendername,playerid);
    SendClientMessageToAll(COLOR_GREEN, string);
    SetPlayerSkin(playerid, 278);
    SetPlayerAttachedObject(playerid, 3, 18646, 2, 0.290, -0.02, 0.01, 5.50, 84.60, 84.7, 1, 1, 1, 0xFF000000);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,0xFF5A00FF);
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] >=6)
    {
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich zum Support angemeldet. Bei Fragen /sup",sendername,playerid);
    SendClientMessageToAll(COLOR_GREEN, string);
    SetPlayerSkin(playerid, 278);
    SetPlayerAttachedObject(playerid, 3, 18646, 2, 0.290, -0.02, 0.01, 5.50, 84.60, 84.7, 1, 1, 1, 0xFF000000);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,0xFF5A00FF);
    return 1;
    }
    }
    if(AdminDuty[playerid] == 1)
    {
    new Fraktion;
    AdminDuty[playerid] = 0;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich vom Support abgemeldet.",sendername,playerid);
    SendClientMessageToAll(COLOR_RED, string);
    for(new i=0; i<MAX_PLAYER_ATTACHED_OBJECTS; i++)
    if(IsPlayerAttachedObjectSlotUsed(playerid,i)) RemovePlayerAttachedObject(playerid,i);
    SkinZuweisen(playerid,Fraktion);
    SetPlayerArmour(playerid, 0);
    SetPlayerColor(playerid,0xFEFEFEFF);
    }
    return 1;
    }


    Hallo Leute, ich komme gerade nicht weiter. Ich möchte das der Spieler sobald er ofduty ist seinen Skin zurück bekommt denn er davor hatte als er noch nicht aduty gegangen ist.
    Nun wollte ich fragen wie ich das ganze so speichere? Ebenso wollte ich fragen wie ich das mache, wenn der Spieler offline geht das er dann automatisch den Skin wie zuvor hat.

  • 1. Musst du das ganze in eine Variable setzen lassen.
    2. Falls du dini hast:


    dini_IntSet(pfad, "skin", variable);


    3. Falls du MySQL hast:


    format(string; 128, "UPDATE tabellenname SET skin='%i' WHERE ..='%s'",variable, name);
    mysql_query(string);

  • Damit wird doch der Skin ausgelesen?
    dini_IntSet(pfad, "skin", variable);


    Also heißt das so oder?
    Function AdminDienst(playerid)
    {
    new sendername[MAX_PLAYER_NAME],string[128];
    if(AdminDuty[playerid] == 0)
    {
    if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2 || PlayerInfo[playerid][pAdmin] == 3)
    {
    AdminDuty[playerid] = 1;
    dini_IntSet(pfad, "skin", variable);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich zum Support angemeldet. Bei Fragen /sup",sendername,playerid);
    SendClientMessageToAll(COLOR_GREEN, string);
    SetPlayerSkin(playerid, 278);
    SetPlayerAttachedObject(playerid, 3, 18646, 2, 0.290, -0.02, 0.01, 5.50, 84.60, 84.7, 1, 1, 1, 0xFF000000);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,0xFF5A00FF);
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] == 4 || PlayerInfo[playerid][pAdmin] == 5)
    {
    AdminDuty[playerid] = 1;
    dini_IntSet(pfad, "skin", variable);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich zum Support angemeldet. Bei Fragen /sup",sendername,playerid);
    SendClientMessageToAll(COLOR_GREEN, string);
    SetPlayerSkin(playerid, 278);
    SetPlayerAttachedObject(playerid, 3, 18646, 2, 0.290, -0.02, 0.01, 5.50, 84.60, 84.7, 1, 1, 1, 0xFF000000);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,0xFF5A00FF);
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] >=6)
    {
    AdminDuty[playerid] = 1;
    dini_IntSet(pfad, "skin", variable);
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich zum Support angemeldet. Bei Fragen /sup",sendername,playerid);
    SendClientMessageToAll(COLOR_GREEN, string);
    SetPlayerSkin(playerid, 278);
    SetPlayerAttachedObject(playerid, 3, 18646, 2, 0.290, -0.02, 0.01, 5.50, 84.60, 84.7, 1, 1, 1, 0xFF000000);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,0xFF5A00FF);
    return 1;
    }
    }
    if(AdminDuty[playerid] == 1)
    {
    new Fraktion;
    AdminDuty[playerid] = 0;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich vom Support abgemeldet.",sendername,playerid);
    SendClientMessageToAll(COLOR_RED, string);
    for(new i=0; i<MAX_PLAYER_ATTACHED_OBJECTS; i++)
    if(IsPlayerAttachedObjectSlotUsed(playerid,i)) RemovePlayerAttachedObject(playerid,i);
    SkinZuweisen(playerid,Fraktion);
    SetPlayerArmour(playerid, 0);
    SetPlayerColor(playerid,0xFEFEFEFF);
    }
    return 1;
    }


    Sobald er sich anmeldet, wird sein Skin damit "dini_IntSet(pfad, "skin", variable);" geschpeichert oder?
    Und wenn er wieder offduty geht dann wird der Skin wieder hergegeben, wie heißt der Befehl?

  • new Duty[MAX_PLAYERS];


    ocmd:skin(playerid,params[])
    {
    if(!Duty[playerid]){
    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));
    SetPlayerSkin(playerid,275);
    return Duty[playerid]=1,1;
    }
    else if(Duty[playerid]==1){
    SetPlayerSkin(playerid,dini_Int(pfad,"skin"));
    return Duty[playerid]=0,1;
    }
    return 1;
    }


    Hier hast du ein kleines Beispiel anhand eines Befehles.


    Grüße,
    PAWN

  • Nein z.B. so etwas ;)


    new pfad[30];
    format(pfad,30,"/ORDNERWODERSKINGESPEICHERTWERDENSOLL/%s.txt",Name(playerid));
    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));


    Halt das noch anpassen ;)

  • Nein z.B. so etwas ;)


    new pfad[30];
    format(pfad,30,"/ORDNERWODERSKINGESPEICHERTWERDENSOLL/%s.txt",Name(playerid));
    dini_IntSet(pfad,"skin",GetPlayerSkin(playerid));


    Halt das noch anpassen ;)


    Speicher doch den alten Skin in eine Variabel.
    Nachdem er Offduty geht wieder den Skin setzen der in der Variabel ist.


    Speicher doch den alten Skin in eine Variabel.
    Nachdem er Offduty geht wieder den Skin setzen der in der Variabel ist.



    Bekomme Fehlermeldungen aber danke schon mal für deine Antwort: folgende Meldung error 017: undefined symbol "Name"
    Und könnte ich einen Codebeispiel für Version 2 haben.

  • Ich habe dir auch gesagt, das du das anpassen sollst.


    Wie liest du deinen Namen denn aus, das musst du einfach ersetzen mit Name(playerid)

  • Bekomme Fehlermeldungen aber danke schon mal für deine Antwort: folgende Meldung error 017: undefined symbol "Name"
    Und könnte ich einen Codebeispiel für Version 2 haben.


    Ich würde es so machen


    im Duty Befehl

    new alterskin = GetPlayerSkin(playerid);
    Dann den Skin für Duty setzen also z.b die Skin ID 97


    Wenn er OffDuty geht

    SetPlayerSkin(playerid,alterskin); Müsst eigentlich klappen

  • Function AdminDienst(playerid)
    {
    new alterskin = GetPlayerSkin(playerid);
    new sendername[MAX_PLAYER_NAME],string[128];
    if(AdminDuty[playerid] == 0)
    {
    if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2 || PlayerInfo[playerid][pAdmin] == 3)
    {
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich zum Support angemeldet. Bei Fragen /sup",sendername,playerid);
    SendClientMessageToAll(COLOR_GREEN, string);
    SetPlayerSkin(playerid, 278);
    SetPlayerAttachedObject(playerid, 3, 18646, 2, 0.290, -0.02, 0.01, 5.50, 84.60, 84.7, 1, 1, 1, 0xFF000000);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,0xFF5A00FF);
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] == 4 || PlayerInfo[playerid][pAdmin] == 5)
    {
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich zum Support angemeldet. Bei Fragen /sup",sendername,playerid);
    SendClientMessageToAll(COLOR_GREEN, string);
    SetPlayerSkin(playerid, 278);
    SetPlayerAttachedObject(playerid, 3, 18646, 2, 0.290, -0.02, 0.01, 5.50, 84.60, 84.7, 1, 1, 1, 0xFF000000);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,0xFF5A00FF);
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] >=6)
    {
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich zum Support angemeldet. Bei Fragen /sup",sendername,playerid);
    SendClientMessageToAll(COLOR_GREEN, string);
    SetPlayerSkin(playerid, 278);
    SetPlayerAttachedObject(playerid, 3, 18646, 2, 0.290, -0.02, 0.01, 5.50, 84.60, 84.7, 1, 1, 1, 0xFF000000);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,0xFF5A00FF);
    return 1;
    }
    }
    if(AdminDuty[playerid] == 1)
    {
    AdminDuty[playerid] = 0;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* %s hat sich vom Support abgemeldet.",sendername,playerid);
    SendClientMessageToAll(COLOR_RED, string);
    for(new i=0; i<MAX_PLAYER_ATTACHED_OBJECTS; i++)
    if(IsPlayerAttachedObjectSlotUsed(playerid,i)) RemovePlayerAttachedObject(playerid,i);
    SetPlayerSkin(playerid,alterskin);
    SetPlayerArmour(playerid, 0);
    SetPlayerColor(playerid,0xFEFEFEFF);
    }
    return 1;
    }


    So gemacht, aber es funktioniert nicht. Warum?