Top 10 Tafelsystem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Top 10 Tafelsystem

    Hey Liebe Community,
    habe ein Problem, undzwar wollte ich von einem Script die MySQL Version ändern

    Wollte die Funktionen auf die neueste Version von BlueG umschreiben
    Da es bei der BlueG Version kein mysql_free_result oder mysql_store_result gibt brauche ich eure hilfe..


    Quellcode

    1. if(status == 9 || status == 999)//Reichster Spieler
    2. {
    3. format(query, sizeof(query), "SELECT * FROM `"#SERVERTAG"_account_main` WHERE `Tutorial` = '1' ORDER BY `Bankguthaben` DESC LIMIT 10;");
    4. mysql_query(sqlHandle, query);
    5. mysql_store_result();
    6. while(mysql_retrieve_row())
    7. {
    8. cache_get_field_content("Name", TopTenName[counter]);
    9. cache_get_field_content("Bankguthaben", data), TopTenValue[counter] = strval(data);
    10. counter++;
    11. }
    12. mysql_free_result();
    13. counter = 0;
    14. format(string, sizeof(string), "{FFBF00}1. %s", TopTenName[0]), SetDynamicObjectMaterialText(TOPTENSchilder[8], 4, string, 120, "Arial", 40, 1, -32256, 0xFF121212, 1);
    15. format(string, sizeof(string), "{0080FF}2. {FFFFFF}%s\n{0080FF}3. {FFFFFF}%s\n{0080FF}4. {FFFFFF}%s", TopTenName[1], TopTenName[2], TopTenName[3]), SetDynamicObjectMaterialText(TOPTENSchilder[8], 3, string, 120, "Arial", 41, 0, -32256, 0xFF121212, 1);
    16. format(string, sizeof(string), "{0080FF}5. {FFFFFF}%s\n{0080FF}6. {FFFFFF}%s\n{0080FF}7. {FFFFFF}%s", TopTenName[4], TopTenName[5], TopTenName[6]), SetDynamicObjectMaterialText(TOPTENSchilder[8], 2, string, 120, "Arial", 41, 0, -32256, 0xFF121212, 1);
    17. format(string, sizeof(string), "{0080FF}8. {FFFFFF}%s\n{0080FF}9. {FFFFFF}%s\n{0080FF}10. {FFFFFF}%s", TopTenName[7], TopTenName[8], TopTenName[9]), SetDynamicObjectMaterialText(TOPTENSchilder[8], 1, string, 120, "Arial", 41, 0, -32256, 0xFF121212, 1);
    18. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tayson87 ()

  • Schau dir doch mal die Include in der Wiki an, wie die Funktionen dort ungefähr aufgebaut sind.
    Probiere dich ebenfalls z.B an dem 'Login-Register' Tutorial von @Jeffry zu orientieren, ist sowieso besser dass du probierst die neuste SQL Version zu benutzen. Arbeitet auf Datenmenge sowieso schneller und zuverlässiger als die R5.

    Anleitung für die Versionen

    Jeffrys Tutorial


    Grüße :rolleyes:
    У страха глаза велики =O
  • Szertockz schrieb:

    BTW:
    Ich selber benutze die von Strickenkid ist zwar schon etwas älter, aber funktioniert! :)

    BTT:
    Falls du bei den dynamischen Sachen nicht weiterkommst schaue dir das SOM 0.6 an, da sind die Sachen auch auf R41-2
    Ja, mit großer Datenmenge meinte ich aber einen Server der mit aktiven 150-300 Spielern läuft.
    Dafür sind einfach die neueren Plugins viel praktischer.
    У страха глаза велики =O
  • Bin schon weiter gekommen hab alles umgeschrieben. Es funktioniert. Muss nur noch paar Sachen umändern ^^

    //Edit:

    Habe ein kleines Problem bei der Fraktion. Ich wollte das man den Namen der Fraktion lesen kann.

    Habe zum auslesen cache_get_field_content(counter,"fID", TopTenName[counter]); geschrieben aber bekomme das nicht gebacken mit der Funktion :



    Quellcode

    1. stock FraktionsName(fraktid)
    2. {
    3. new fraktname[50];
    4. switch(fraktid)
    5. {
    6. case 0:{fraktname="Keine";}
    7. case 1:{fraktname="S.A.P.D";}
    8. case 2:{fraktname="F.B.I";}
    9. case 3:{fraktname="San Andreas Emergency Department";}
    10. case 4:{fraktname="Las Venturas Vagos";}
    11. case 5:{fraktname="Grove Street";}
    12. case 6:{fraktname="San Andreas Army";}
    13. case 7:{fraktname="Saint Jefferson Ballas";}
    14. case 8:{fraktname="Terroristen";}
    15. case 9:{fraktname="Yakuza";}
    16. case 10:{fraktname="San Andreas News Corporation";}
    17. case 11:{fraktname="Traffic Authority of San Andreas";}
    18. case 12:{fraktname="La Cosa Nostra";}
    19. case 13:{fraktname="Varrios Los Aztecas";}
    20. case 14:{fraktname="San Andreas Driving School";}
    21. case 15:{fraktname="San Andreas Electrical Service";}
    22. case 16:{fraktname="Goverment of San Andreas";}
    23. case 17:{fraktname="Russische Mafia";}
    24. case 18:{fraktname="United Turks";}
    25. case 19:{fraktname="Hitman Agency";}
    26. default:{fraktname="ERROR";}
    27. }
    28. return fraktname;
    29. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tayson87 ()

  • Bei einer Switch-Funktion musst du bei case immer einen break nutzen.
    Wenn du am Ende der Anweisung kein break setzt, so wird die Ausführung mit dem nächsten case fortgesetzt.
    Dadurch wird dir der letzte case ausgegeben.

    Quellcode

    1. stock FraktionsName(fraktid)
    2. {
    3. new fraktname[50];
    4. switch(fraktid)
    5. {
    6. case 0:{fraktname="Keine"; break;}
    7. case 1:{fraktname="S.A.P.D"; break;}
    8. case 2:{fraktname="F.B.I"; break;}
    9. case 3:{fraktname="San Andreas Emergency Department"; break;}
    10. case 4:{fraktname="Las Venturas Vagos"; break;}
    11. case 5:{fraktname="Grove Street"; break;}
    12. case 6:{fraktname="San Andreas Army"; break;}
    13. case 7:{fraktname="Saint Jefferson Ballas"; break;}
    14. case 8:{fraktname="Terroristen"; break;}
    15. case 9:{fraktname="Yakuza"; break;}
    16. case 10:{fraktname="San Andreas News Corporation"; break;}
    17. case 11:{fraktname="Traffic Authority of San Andreas"; break;}
    18. case 12:{fraktname="La Cosa Nostra"; break;}
    19. case 13:{fraktname="Varrios Los Aztecas"; break;}
    20. case 14:{fraktname="San Andreas Driving School"; break;}
    21. case 15:{fraktname="San Andreas Electrical Service"; break;}
    22. case 16:{fraktname="Goverment of San Andreas"; break;}
    23. case 17:{fraktname="Russische Mafia"; break;}
    24. case 18:{fraktname="United Turks"; break;}
    25. case 19:{fraktname="Hitman Agency"; break;}
    26. default:{fraktname="ERROR"; break;}
    27. }
    28. return fraktname;
    29. }
    Alles anzeigen
  • J0a9 schrieb:

    Bei einer Switch-Funktion musst du bei case immer einen break nutzen.
    Wenn du am Ende der Anweisung kein break setzt, so wird die Ausführung mit dem nächsten case fortgesetzt.
    Dadurch wird dir der letzte case ausgegeben.
    Er muss nicht immer break hinzufügen, das beendet dann nur das Fragen der anderen Sachen, was nicht unbedingt dumm ist wenn er eh schon sein Ergebnis hat, aber zwingend ist es nicht.

    Wäre das gleiche wie :

    PAWN-Quellcode

    1. stock Datencheck(datacheck[])
    2. {
    3. new abgleich[40] = "Banane";
    4. if(!strcmp(datacheck, abgleich, true))
    5. {
    6. print("Datenabgleich erfolgt, stimmt überein!");
    7. }
    8. if(strcmp(datacheck, abgleich, true))
    9. {
    10. print("Datenablgleich erfolgt, stimmt nicht überein!");
    11. }
    12. return 1;
    13. }
    Alles anzeigen

    Auch wenn datacheck "Banane" wäre, würde er unten nochmal prüfen ob datacheck nicht "Banane" ist, und dass weil man das ganze nicht stoppt, sobald eine Übereinstimmung statt findet. Aber die funktion an sich, kann er so lassen eigentlich.
    У страха глаза велики =O

  • Würde für die Fraktionen am besten eine Spalte in der Datenbank hinzufügen, wo du alles rundum Spieleraccount verwaltest.

    simple - Erklärung

    schritt 2:


    Natürlich musst du den Wert 'Fraktion' auch speichern und auslesen lassen.


    PAWN-Quellcode

    1. //auslesen
    2. PlayerInfo[playerid][pFraktion] = cache_get_field_content_int(0, "Fraktion", dbhandle); //Muss natürlich auf dein Script angepasst werden


    Auf jeden Fall um zur Funktion zu kommen die den Fraktionsnamen ausgibt.


    PAWN-Quellcode

    1. stock FraktionsName(playerid)
    2. {
    3. new fraktname[50];
    4. switch(PlayerInfo[playerid][pFraktion])
    5. {
    6. case 0:{fraktname="Keine";}
    7. case 1:{fraktname="S.A.P.D";}
    8. case 2:{fraktname="F.B.I";}
    9. case 3:{fraktname="San Andreas Emergency Department";}
    10. case 4:{fraktname="Las Venturas Vagos";}
    11. case 5:{fraktname="Grove Street";}
    12. case 6:{fraktname="San Andreas Army";}
    13. case 7:{fraktname="Saint Jefferson Ballas";}
    14. case 8:{fraktname="Terroristen";}
    15. case 9:{fraktname="Yakuza";}
    16. case 10:{fraktname="San Andreas News Corporation";}
    17. case 11:{fraktname="Traffic Authority of San Andreas";}
    18. case 12:{fraktname="La Cosa Nostra";}
    19. case 13:{fraktname="Varrios Los Aztecas";}
    20. case 14:{fraktname="San Andreas Driving School";}
    21. case 15:{fraktname="San Andreas Electrical Service";}
    22. case 16:{fraktname="Goverment of San Andreas";}
    23. case 17:{fraktname="Russische Mafia";}
    24. case 18:{fraktname="United Turks";}
    25. case 19:{fraktname="Hitman Agency";}
    26. default:{fraktname="ERROR";}
    27. }
    28. return fraktname;
    29. }
    Alles anzeigen
    У страха глаза велики =O