[Hilfe]freundschafftssystem

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, alle zusammen


    ich habe versucht ein freundschaffts system zu machen aber es will nicht so wie ich das will


    er speichert die Variable nicht,
    ich arbeite mit dini


    Script:
    #include <a_samp>
    #include <sscanf2>
    #include <dini>
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    #define MAX_FRAKS 9
    #define COLOR_YELLOW 0xFFFF00AA
    //Freundschafftssys
    new gTeam[MAX_PLAYERS];
    new gRank[MAX_PLAYERS];
    enum FREUNDSCHAFT
    {
    SFPD,
    Cobra,
    Suddendeath,
    OAMTC,
    Bundesheer,
    PCC,
    Arzt,
    LCN,
    ORF,
    };
    new FrakS[MAX_FRAKS][FREUNDSCHAFT];



    stock strget(strx[], pos, search = ' ') {
    new arg, ret[128], idxx;
    for (new i = 0; i < strlen(strx); i++) {
    if(strx[i] == search || i == strlen(strx) || strx[i + 1] == 10) {
    arg++;
    if (arg == pos + 1){
    ret[i-idxx] = EOS;
    return ret;
    } else if (arg == pos)
    idxx= i+1;
    }
    else if (arg == pos)
    ret[i - idxx] = strx[i];
    }
    return ret;
    }


    stock GetPlayerGTeam(playerid)
    {
    new teamid;
    teamid = gTeam[playerid];
    return teamid;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(freundlich, 10, cmdtext);
    return 0;
    }


    dcmd_freundlich(playerid,params[])
    {
    new save[512];
    new fraktion[512];
    new frakid = GetPlayerGTeam(playerid);
    format(save, sizeof(save), "/frak/%i_Frak.ini", frakid);
    if(sscanf(params, "s[512]", fraktion))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Benutzung: /freundlich [Frakname]");
    SendClientMessage(playerid,COLOR_YELLOW,"Fraknamen: SFPD, Cobra, Suddendeath, OAMTC, Bundesheer, PCC, Arzt, LCN, ORF");
    return 1;
    }
    if(gRank[playerid] == 4)
    {
    if(!strcmp(fraktion,"SFPD",true))
    {
    FrakS[frakid][SFPD]=1;
    dini_IntSet(save, "SFPD" ,FrakS[frakid][SFPD]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast das SFPD auf die Freundesliste gesetzt!");
    return 1;
    }
    else if(!strcmp(fraktion,"Cobra",true))
    {
    FrakS[frakid][Cobra]=1;
    dini_IntSet(save, "Cobra" ,FrakS[frakid][Cobra]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast die Cobra auf die Freundesliste gesetzt!");
    return 1;
    }
    else if(!strcmp(fraktion,"Suddendeath",true))
    {
    FrakS[frakid][Suddendeath]=1;
    dini_IntSet(save, "Suddendeath" ,FrakS[frakid][Suddendeath]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast die Suddendeath auf die Freundesliste gesetzt!");
    return 1;
    }
    else if(!strcmp(fraktion,"OAMTC",true))
    {
    FrakS[frakid][OAMTC]=1;
    dini_IntSet(save, "OAMTC" ,FrakS[frakid][OAMTC]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast das ÖAMTC auf die Freundesliste gesetzt!");
    return 1;
    }
    else if(!strcmp(fraktion,"Bundesheer",true))
    {
    FrakS[frakid][Bundesheer]=1;
    dini_IntSet(save, "Bundesheer" ,FrakS[frakid][Bundesheer]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast die Bundesheer auf die Freundesliste gesetzt!");
    return 1;
    }
    else if(!strcmp(fraktion,"PCC",true))
    {
    FrakS[frakid][PCC]=1;
    dini_IntSet(save, "PCC" ,FrakS[frakid][PCC]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast die PCC auf die Freundesliste gesetzt!");
    return 1;
    }
    else if(!strcmp(fraktion,"Arzt",true))
    {
    FrakS[frakid][Arzt]=1;
    dini_IntSet(save, "Arzt" ,FrakS[frakid][Arzt]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast die Ärzte auf die Freundesliste gesetzt!");
    return 1;
    }
    else if(!strcmp(fraktion,"LCN",true))
    {
    FrakS[frakid][LCN]=1;
    dini_IntSet(save, "LCN" ,FrakS[frakid][LCN]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast die LCN auf die Freundesliste gesetzt!");
    return 1;
    }
    else if(!strcmp(fraktion,"ORF",true))
    {
    FrakS[frakid][ORF]=1;
    dini_IntSet(save, "ORF" ,FrakS[frakid][ORF]);
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast das ORF auf die Freundesliste gesetzt!");
    return 1;
    }
    }
    return 1;
    }



    Bitte um eure Hilfe


    MFG
    runner23

  • arbeite doch evtl mit "LOG" dateien un welche Variable soll den gespeichert werden ?!


    :thumbup:

  • in der jenigen frak ini gespeichert werden , das zb SFPD=1 ist usw. weil dann das muss ich bei den toren amchen if(SFPD==1) dann gehst auf usw


    verstehst was ich meine

  • ehm aso is das :D naja dann brauchste kein LOG sondern musst ma glaube ich mit :


    PlayerInfo[playerid][pSFPD] == 1


    so iwi sowas ... kann ich dir aba net helfen frag ma wen anders oda schau dir Tutorials an ;)


    mfg:[SGS]Krypton

  • ich wills ja nicht für den spieler sondern für die frak, also nur für die frak und für keinen spieler

  • Aso k ja du hast es ja schon mit frakid gemacht, sry habe ich net gesehen ^^ ok, du musst das halt überall einfügen jetze halt z.B. :


    enum FREUNDSCHAFT
    {
    SFPD,
    Cobra,
    Suddendeath,
    OAMTC,
    Bundesheer,
    PCC,
    Arzt,
    LCN,
    ORF,
    };
    public OnPlayerConnect()
    {
    PlayerInfo[frakid][LCN] = 0;
    }
    public OnPlayerRegister(playerid, password[])
    {
    if(IsPlayerConnected(playerid))
    {
    new string3[32];
    new playername3[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername3, sizeof(playername3));
    format(string3, sizeof(string3), "%s.ini", playername3);
    new File: hFile = fopen(string3, io_write);
    if (hFile)
    {
    strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
    new var[32];
    format(var, 32, "Schlüssel=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
    format(var, 32, "LCN=%d\n",PlayerInfo[frakid][LCN]);fwrite(hFile, var);
    }
    //halt so überall alles einfügen, dann müsste der das automatisch speichern so wie alles andere


    mfg:[SGS]Krypton :thumbup:

  • ne es sol in keiner spieler ini gespeichert werden sondern in die frak inis, nur wenn ich das kommando mache, speichert er das einfach nicht ab das ist der einzige fehle