Fraktions Verwaltung System

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,


    ich arbeite derzeit an einem System, wobei es den Leader möglich ist alle Informationen seiner Fraktion InGame zu ändern.
    Halt die Rangnamen 1-6, sowie die Spawn Nachricht.


    In meiner Tabelle wird es so gespeichert:

    Die ID's der Zeilen sind die gleichen ID's wie im Script, sprich Fraktion 1 ist das SAPD, Fraktion 2 das FBI und so weiter.


    Ich habe hier jetzt z.B einen Befehl um Rang 1 umzuändern, wie frage ich die Fraktion des Spielers ab der den Befehl ausführt, sodass nur die Informationen der Fraktion geändert wird, in welche er drin ist?
    ocmd:rang1(playerid,params[])
    {

    return 1;
    }

  • Habe das nun so, aber der Rang wird nicht gespeichert/gesetzt.
    In der Nachricht wird der Rang sprich inputtext richtig wiedergeben.


    if(dialogid == DIALOG_RANG1)
    {
    if(response)
    {
    if(strlen(inputtext) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_RANG1,DIALOG_STYLE_INPUT,"{00AFFF}"#SERVERNAME" {FFFFFF}- Rang 1","Bitte gebe nun den neuen Namen für Rang 1 ein.","Auswählen","Abbrechen");
    return 1;
    }
    else
    {
    new query[128],string[128];
    format(query,128,"UPDATE `Fraktionen` SET `Rang1`='%s' WHERE `ID`='%d'",inputtext,SpielerInfo[playerid][pFraktion]);
    format(string,sizeof(string),"Rang 1 heißt nun: %s",inputtext);
    SendClientMessage(playerid,COLOR_BLAU,string);
    return 1;
    }
    }
    }

  • Einmal muss ich noch stören, wie kann ich den Kassenstand der Fraktion auslesen aus der Tabelle? (Nur den Kassenstand der Fraktion wo der Spieler ist)
    new string[128];
    format(string,sizeof(string),"Möchtest du Geld in die Kasse einzahlen oder abheben?\nKassenstand: %i$","
    ShowPlayerDialog(playerid,DIALOG_KASSE, DIALOG_STYLE_MSGBOX, string,"Einzahlen", "Abheben");

  • Du liest doch beim Login auch Dinge eines Spielers aus oder?
    So machst du das auch bei der Kasse .__.

    Habe das jetzt so, funktioniert aber nicht :whistling:
    new query[128],string[128];
    format(query, 128, "SELECT `Kasse` FROM `Fraktionen` WHERE `ID`='%d'",SpielerInfo[playerid][pFraktion]);
    mysql_store_result();
    new anzahl = mysql_num_rows();
    printf("%d", anzahl);
    format(string,sizeof(string),"Kassenstand: %d",anzahl);
    SendClientMessage(playerid,COLOR_BLAU,string);


    //edit:Code eingefügt
    //edit:Code eingefügt


    2 Mal editiert, zuletzt von SA:MP-Designs () aus folgendem Grund: //edit:Code eingefügt //edit:Code eingefügt


  • Was spuckt der Debug aus ? & achte auf die Rechtschreibung, genauso könntest du auch mal in die mysql log rein schauen ^^

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich rate dir mal die Funktionen von MySQL zu lernen, bzw. von dem Plugin...
    mysql_num_rows -> zeigt dir nur, wieviele datensätze da sind, mehr nicht.
    Ebenfalls musst du den query auch absenden sonst kannst dir den format auch sparen.. So sollte es funktionieren.

    new query[128];
    format(query, 128, "SELECT `Kasse` FROM `Fraktionen` WHERE `ID`='%d'",SpielerInfo[playerid][pFraktion]);
    mysql_query(query);
    mysql_store_result();
    new anzahl = mysql_fetch_int();
    printf("%d", anzahl);
    format(query,sizeof(query),"Kassenstand: %d",anzahl);
    SendClientMessage(playerid,COLOR_BLAU,query);