[Wunsch] Fraknamen im Skript definieren.

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 Leute,


    ich habe einen Wunsch, bzw weiß ich nicht wie ich das machen kann.


    ich habe ein Statssystem:



    public StatsSystem(playerid)
    {
    new String[128], Name[MAX_PLAYER_NAME], Geld = GetPlayerMoney(playerid), Score = GetPlayerScore(playerid);
    GetPlayerName(playerid,Name,sizeof Name);
    format(String, sizeof(String), "Spielername:\t\t\t%s\nBargeld:\t\t\t%d\nLevel:\t\t\t\t%d\nTeam:\t\t\t\t%d\nLeader:\t\t\t\t%d\nRang:\t\t\t\t%d\nSpielzeit:\t\t\t(%dmin)(%dh)(%dTage)", Name, Geld, Score,pInfo[playerid][team],pInfo[playerid][leader],pInfo[playerid][rang],pInfo[playerid][spielzeitminuten],pInfo[playerid][spielzeitstunden],pInfo[playerid][spielzeittage]);
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Statistiken", String, "OK", "");
    return 1;
    }


    In meinem Skript werden die Teams, Leader, Ränge per Zahlen gespeichert:
    Beispiel:


    Team:
    1 - LSPD
    2- Yakuza
    usw.


    Leader:
    1 -- LSPD Leader
    2-- Yakuza Leader
    usw...


    Ränge:
    1 - 6 = LLSPD Ränge
    7 - 13 = Yakuza Ränge
    13 - 19 = Lcn Ränge
    usw...


    Nun möchte ich es so haben, das das Skript dies erkennt und ausließt und dann in den Stats die Namen darein schreibt.
    Zurzeit kann man nur die Zahlen abrufen. User wissen dann nicht welcher Fraktion sie angehören.


    Ich weiß nicht was ihr noch so braucht.

    pInfo[playerid][team] = dini_Int(path, "team");
    pInfo[playerid][leader] = dini_Int(path, "leader");
    pInfo[playerid][rang] = dini_Int(path, "rang");


    Ich hoffe ihr könnt mir dabei helfen und versteht was ich meine :D


    MFG
    Danger34


  • new frakname[28];
    new var = pInfo[playerid][team];
    switch(var)
    {
    case 0:{//hier das für den Wert 0}
    case 1:{frakname = "Beispiel- dein Frakname";}
    //Usw case Ziffer die Ziffer heisst der Wert
    }
    new string[128];
    format(string,sizeof(string),"Der Name der Fraktion lautet: %s",frakname);
    SendClientMessage(playerid,WHITE,string);



    Kapierst du?


    Edit frajname zu frakname

  • Ich verstehe das nicht -.-


    vorallem weiß ich nicht wozu das hier ist:

    new string[128];
    format(string,sizeof(string),"Der Name der Fraktion lautet: %s",frakname);
    SendClientMessage(playerid,WHITE,string);




    Edit: -------------------------------
    Folgende Fehler treten nun auf:

    C:\Users\Adrian\Desktop\Own SAMP\gamemodes\Skript.pwn(1008) : error 037: invalid string (possibly non-terminated string)
    C:\Users\Adrian\Desktop\Own SAMP\gamemodes\Skript.pwn(1008) : error 017: undefined symbol "Obdachlos"
    C:\Users\Adrian\Desktop\Own SAMP\gamemodes\Skript.pwn(1009) : error 047: array sizes do not match, or destination array is too small


    public StatsSystem(playerid)
    {
    new frakname[28];
    new var = pInfo[playerid][team];
    switch(var)
    {
    case 0:{frakname = "Obdachlos}
    case 1:{frakname = "Los Santos Police Department"}
    //Usw case Ziffer die Ziffer heisst der Wert
    }
    new String[128], Name[MAX_PLAYER_NAME], Geld = GetPlayerMoney(playerid), Score = GetPlayerScore(playerid);
    GetPlayerName(playerid,Name,sizeof Name);
    format(String, sizeof(String), "Spielername:\t\t\t%s\nBargeld:\t\t\t%d\nLevel:\t\t\t\t%d\nTeam:\t\t\t\t%d\nLeader:\t\t\t\t%d\nRang:\t\t\t\t%d\nSpielzeit:\t\t\t(%dmin)(%dh)(%dTage)", Name, Geld, Score,pInfo[playerid][team],pInfo[playerid][leader],pInfo[playerid][rang],pInfo[playerid][spielzeitminuten],pInfo[playerid][spielzeitstunden],pInfo[playerid][spielzeittage]);
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Statistiken", String, "OK", "");
    return 1;
    }

    Einmal editiert, zuletzt von Danger34 ()

  • Meine Stats sollen wissen welchen Beruf der Spieler hat wenn in seiner Spieler datei.ini steht das der Spieler im Team 1 ist.
    Und dann sollen die Stats nicht Team : 1 schreiben sondern: Team: LSPD. :thumbup:



    Random:


    Hab ich gemacht, es erscheinen folgende Fehler:

    C:\Users\Adrian\Desktop\Own SAMP\gamemodes\Skript.pwn(1008) : error 001: expected token: ";", but found "}"
    C:\Users\Adrian\Desktop\Own SAMP\gamemodes\Skript.pwn(1009) : error 047: array sizes do not match, or destination array is too small



    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Gut so, ich hab jetzt die Fehler behoben und das ganze sieht so aus:

    public StatsSystem(playerid)
    {
    new frakname[128];
    new var = pInfo[playerid][team];
    switch(var)
    {
    case 0:{frakname = "Obdachlos";}
    case 1:{frakname = "Los Santos Police Department";}
    //Usw case Ziffer die Ziffer heisst der Wert
    }
    new String[128], Name[MAX_PLAYER_NAME], Geld = GetPlayerMoney(playerid), Score = GetPlayerScore(playerid);
    GetPlayerName(playerid,Name,sizeof Name);
    format(String, sizeof(String), "Spielername:\t\t\t%s\nBargeld:\t\t\t%d\nLevel:\t\t\t\t%d\nTeam:\t\t\t\t%d\nLeader:\t\t\t\t%d\nRang:\t\t\t\t%d\nSpielzeit:\t\t\t(%dmin)(%dh)(%dTage)", Name, Geld, Score,pInfo[playerid][team],pInfo[playerid][leader],pInfo[playerid][rang],pInfo[playerid][spielzeitminuten],pInfo[playerid][spielzeitstunden],pInfo[playerid][spielzeittage]);
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Statistiken", String, "OK", "");
    return 1;
    }


    Abbbbeeer wenn /stats mache kommt immernoch :


    Team: 1


    -.- :cursing:

    2 Mal editiert, zuletzt von Danger34 ()

  • Erstelle doch einfach einen Array mit den Fraktionsnamen bzw. Ranknamen und gebe sie aus? Index entspricht Rank - 1 bzw. Fraktion - 1 - fertig.

  • Gehts vllt so?


    public StatsSystem(playerid)
    {
    new frakname[28];
    new var = pInfo[playerid][team];
    switch(var)
    {
    case 0:{frakname = "Obdachlos";}
    case 1:{frakname = "Los Santos Police Department";}
    }
    new String[128], Name[MAX_PLAYER_NAME], Geld = GetPlayerMoney(playerid), Score = GetPlayerScore(playerid);
    GetPlayerName(playerid,Name,sizeof Name);
    format(String, sizeof(String), "Spielername:\t\t\t%s\nBargeld:\t\t\t%d\nLevel:\t\t\t\t%d\nTeam:\t\t\t\t%s\nLeader:\t\t\t\t%d\nRang:\t\t\t\t%d\nSpielzeit:\t\t\t(%dmin)(%dh)(%dTage)", Name, Geld, Score, frakname,pInfo[playerid][leader],pInfo[playerid][rang],pInfo[playerid][spielzeitminuten],pInfo[playerid][spielzeitstunden],pInfo[playerid][spielzeittage]);
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Statistiken", String, "OK", "");
    return 1;
    }

    Einmal editiert, zuletzt von varrez ()

  • Gut so, ich hab jetzt die Fehler behoben und das ganze sieht so aus:

    public StatsSystem(playerid)
    {
    new frakname[128];
    new var = pInfo[playerid][team];
    switch(var)
    {
    case 0:{frakname = "Obdachlos";}
    case 1:{frakname = "Los Santos Police Department";}
    //Usw case Ziffer die Ziffer heisst der Wert
    }
    new String[128], Name[MAX_PLAYER_NAME], Geld = GetPlayerMoney(playerid), Score = GetPlayerScore(playerid);
    GetPlayerName(playerid,Name,sizeof Name);
    format(String, sizeof(String), "Spielername:\t\t\t%s\nBargeld:\t\t\t%d\nLevel:\t\t\t\t%d\nTeam:\t\t\t\t%d\nLeader:\t\t\t\t%d\nRang:\t\t\t\t%d\nSpielzeit:\t\t\t(%dmin)(%dh)(%dTage)", Name, Geld, Score,pInfo[playerid][team],pInfo[playerid][leader],pInfo[playerid][rang],pInfo[playerid][spielzeitminuten],pInfo[playerid][spielzeitstunden],pInfo[playerid][spielzeittage]);
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, "Statistiken", String, "OK", "");
    return 1;
    }


    Abbbbeeer wenn /stats mache kommt immernoch :


    Team: 1


    -.- :cursing:




    Edit:
    ____________________________________________________________________________________________________________________________________________-
    Plötzlich mach ich /stats und dort steht nicht Obdachlos, sondern "76" fragt mich nicht wo die her kommt :D

  • Warum so umständlich?



    #include <a_samp>


    #define FRAKTIONEN 2


    new FraktionsInfo[FRAKTIONEN][] = {
    "Los Santos Police Department", "Los Santos Fire Department"
    };


    new RankInfo[FRAKTIONEN][8][30] = {
    {"Officer 1", "Officer 2", "Officer 3", "Officer 4", "Officer 5", "Officer 6", "Officer 7", "Officer 8"},
    {"Firefighter 1", "Firefighter 2", "Firefighter 3", "Firefighter 4", "Firefighter 5", "Firefighter 6", "Firefighter 7", "Firefighter 8"}
    };



    main() {
    new pFraktion = 2,
    pRank = 3;


    printf("Fraktion: %s | Rank: %s", FraktionsInfo[pFraktion - 1], RankInfo[pFraktion - 1][pRank - 1]);
    }


  • Es ist zwar einfacher ich habe jedoch switch genommen da dies verständlicher ist ;)

  • GeForce.


    Perfekt :)


    Ich versuch das auch mal mit den rängen :)



    Edit:


    Kann mir einer sagen wieso das unten plötzlich alles weg ist?
    Das bei der Spielzeit....
    Normalerweise kommt da ja noch was drunter :O


    Ok hat sich erledigt.
    String höher machen.

    Einmal editiert, zuletzt von Danger34 ()