Offline Leader auslesen

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
  • Guten Tag,


    Mein kollege benutzt ein Dini Script und wollte fragen wie man dort Offline Leader auselesen kann. Denn er möchte eine Leaderliste machen wo alle Leader angezeigt werden
    egal ob Online oder Offline. Hier ist derzeit sein Code, hier werden nur jetzt die Online Leader angezeigt.


    ocmd:leaders(playerid,params[])
    {
    new string[500],name[100], vz[100],FraktionsText[20];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pLeader] == 1)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"LSPD Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 2)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"SFPD Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 3)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Armee Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 4)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Rettungsdienst Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 5)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"La Cosa Nostra Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 6)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Yakuza Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 7)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Regierungs Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 8)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Hitman Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 9)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"News Reporter Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 10)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Taxi Company Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 11)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Fahrschul Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 12)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Groove Street Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 13)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Ballas Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 14)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Hells Angels Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 15)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Aztecas Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 16)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"LVPD Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 17)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"Terroristen Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    if(PlayerInfo[i][pLeader] == 18)
    {
    GetPlayerName(i, name, 24);
    format(vz, 32,"ADAC Leader: (%d)%s\n",i,name);
    strcat(string, vz);
    }
    ShowPlayerDialog(playerid,325,DIALOG_STYLE_LIST,"Leaders",string,"Bestätigen","");
    }
    }
    }

    MfG
    Acer


  • new Spielerdatei[128];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",i); //datei auslesen
    if(!dini_Exists(Spielerdatei)) return SendClientMessage(playerid,ROT,"Spieleraccount wurde nicht gefunden!"); //datei wird gefunden/oder auch nicht
    format(vz, 32,"LSPD Leader: (%d)%s\n",i,dini_Get(Spielerdatei,"Leader"));

  • Firestorm alles klar bei dir? XD
    Also mit dini is das eher schwer, weil du die Spieler wahrscheinlich als spielername.txt speicherst. Hast du in einer Art fraktionsdatei nochmal den leader eingespeichert?

  • Firestorm alles klar bei dir? XD
    Also mit dini is das eher schwer, weil du die Spieler wahrscheinlich als spielername.txt speicherst. Hast du in einer Art fraktionsdatei nochmal den leader eingespeichert?


    Auch wenn es mit dini schwerer ist, das script ist derzeit auf dini und er möchte es derzeit nicht auf mysql schreiben deswegen brauche ichs in dini
    und da hat firestorm doch recht und beantwortet meine frage ?


    MfG
    Acer

  • das is mir klar, dass er das nicht umschreiben will. Deswegen ja meine Frage ob du die leader nochmal extra, außerhalb von der Spielerdatei gespeichert hast?


    Achja und wenn du meinst, dass firestorm dir geholfen hat dann mal viel Spaß mit seinem Code. Das hätte n Affe wahrscheinlich besser hingebracht. Mit dem Code is es noch nicht mal so unwahrscheinlich, dass der Server abstürzt.
    Sorry, aber solche Hilfe verwirrt Neulinge dann noch mehr.

  • new Spielerdatei[128];
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",i); //datei auslesen
    if(!dini_Exists(Spielerdatei)) return SendClientMessage(playerid,ROT,"Spieleraccount wurde nicht gefunden!"); //datei wird gefunden/oder auch nicht
    format(vz, 32,"LSPD Leader: (%d)%s\n",i,dini_Get(Spielerdatei,"Leader"));


    Funktion des Codes:


    Gucken ob Spieleraccount existiert, wenn nicht Chatmeldung
    Wenn existiert: Egal ob er Leader ist oder nicht, egal ob er Yakuza Leader ist oder Ballas Leader : Er ist LSPD Leader.


    Zitat

    Achja und wenn du meinst, dass firestorm dir geholfen hat dann mal viel
    Spaß mit seinem Code. Das hätte n Affe wahrscheinlich besser hingebracht



    Dazu muss man sich nicht äussern oder?

  • War ein Vorschlag ^^

  • Also das hauptproblem bei dir ist das du erstmal die namen brauchst von den Leadern diese solltest du in ihrgend einer ini speichern.
    Weil du bist auf den datei name angewiesen da es keine möglichkeit gibt alle files einfach so auszulesen mit den Namen.


    Also kleine Anmerkung wenn du den Fraktionsname über eine Funktion zurück gibst ist das ganze viel übersichtlicher dazu braucht man keine 100 if abfragen, zu dem solltest du deinen dialog anzeigen lassen wenn die schleife beendet ist also außerhalb der schleife.


    stock GetFraktion(playerid){
    new fName[20]="Unbekannt";
    switch(PlayerInfo[playerid][pLeader]){
    case 1: fName="LSPD";
    case 2: fName="SFPD";
    case 3: fName="Armee";
    case 4: fName="Rettungsdienst";
    case 5: fName="La Cosa Nostra";
    case 6: fName="Yakuza";
    case 7: fName="Regierungs";
    case 8: fName="Hitman";
    case 9: fName="News Reporter";
    case 10: fName="Taxi Company";
    case 11: fName="Fahrschul";
    case 12: fName="Groove Street";
    case 13: fName="Ballas";
    case 14: fName="Hells Angels";
    case 15: fName="Aztecas";
    case 16: fName="LVPD";
    case 17: fName="Terroristen";
    case 18: fName="ADAC";
    }
    return fname;


    }


    ocmd:leaders(playerid,params[])
    {
    new string[500],name[100], vz[50],FraktionsText[20];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i) || PlayerInfo[i][pLeader] == 0)continue;
    GetPlayerName(i, name, 24);
    format(vz, 50,"%s Leader: (%d)%s\n",GetFraktion(i),i,name);
    strcat(string, vz);
    }
    ShowPlayerDialog(playerid,325,DIALOG_STYLE_LIST,"Leaders",string,"Bestätigen","");
    }

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

  • Auch wenn es mit dini schwerer ist, das script ist derzeit auf dini und er möchte es derzeit nicht auf mysql schreiben deswegen brauche ichs in dini
    und da hat firestorm doch recht und beantwortet meine frage ?


    MfG
    Acer


    naja in dini ist es schlecht machbar außerdem wissen wir nichts von der struktur,...

  • Achja, gewohnt euch bei MySQL gleich an, dass ihr die spieler mit einer eindeutigen id speichert und nicht nur mit dem namen als primarschlussel. Das macht durchlaufe und auch Verknüpfungen mit weiteren Tabellen einfacher.