Beiträge von Allrounder18

    Ufff, dann kannst du das nicht so machen, da ja accountid immer gleich wäre pro Spieler (also hätten 4 Charaktere die selbe accountid jeweils).

    Bei character_pos beziehst du dich auf die accountid, was ja aber nicht mehr funktioniert, da wir nun 4x die Gleiche accountid hätten.


    Da muss der Primary Key z.B. aus 2 Spalten wie accountid & slot bestehen, damit das eindeutig referenzierbar wäre.

    Du meinst jeder der 4 Characktere die selbe Accountid? Aktuell hat in meiner DB jeder Charackter eines Accounts die selbe Accountid, heißt ein Account z. B. (Allrounder18) = 4 Charactere z. B. (Luis_Bauer, Susi_Saier, ... , ...).

    Dann solltest du daraus 2 Querys machen...


    1x Insert in die eine Tabelle

    und 1x insert in die andere Tabelle...

    Jetzt habe ich es wie folgt gemacht aber wenn die Registrierung durch ist ist die Char auswahl leer.


    Hier updatest du character und alles Andere ist doch immer character_pos? Du kommst glaube bei den Tabellen etwas durcheinander.

    Danke, der Fehler ist behoben.


    Aber die Felder findet das Script immer noch nicht.


    Wie muss ich das hier schreiben, damit er in die Tabellen accounts und account_pos insertet?

    Code
    mysql_format(handle, string, sizeof(string), "INSERT INTO `character` (`accountid`,`name`,`slot`, `skin`,`gender`,`x`,`y`,`z`,`r`,`interior`,`world`,`register`,`lastlogin`) VALUES ('%d','Keiner','1','0','0','1480.5341','-1770.5804','18.7958','0.3109','0','0','00.00.0000 | 00:00:00','00.00.0000 | 00:00:00')",AccountInfo[playerid][account_ID]);
        mysql_tquery(handle, string);

    Du musst die Daten dann natürlich auch aus der anderen Tabelle holen.

    Ich habe jetzt

    Code
    mysql_format(handle, string, sizeof(string), "SELECT * FROM `character_pos` WHERE `accountid` = '%d'", AccountInfo[playerid][account_ID]);
        mysql_tquery(handle, string);

    beim registrieren, aber die oben genannte Fehler kommen immer noch.


    Edit:

    Ein anderer Error ist der folgende, obwohl das Feld in MYSQL vorhanden ist.

    Code
    [16:38:31] [ERROR] error #1054 while executing query "UPDATE `character` SET `skin` = '187', `x` = '0.000000', `y` = '0.000000', `z` = '0.000000', `r` = '0.000000', `interior` = '0', `world` = '0' WHERE `id` = '51'": Unknown column 'x' in 'field list'

    Moin,


    ich habe meine Character Positionen in einer anderen Tabelle als den Characternamen, abr alle im selben Enum, leider kommt immer folgendes, woran kann das liegen?


    Code
    [15:47:04] [ERROR] cache_get_value_name_float: field 'x' not found
    [15:47:04] [ERROR] cache_get_value_name_float: field 'y' not found
    [15:47:04] [ERROR] cache_get_value_name_float: field 'z' not found
    [15:47:04] [ERROR] cache_get_value_name_float: field 'r' not found
    [15:47:04] [ERROR] cache_get_value_name_int: field 'interior' not found
    [15:47:04] [ERROR] cache_get_value_name_int: field 'world' not found

    Danke im Voraus.


    MfG


    Allrounder18

    Was muss ich ändern, damit wenn account_MaxChars =1 auch ein Char im Dialog angezeigt wird anstatt garkeiner?

    Wenn es anders sein soll, musst du es natürlich entsprechend aufbauen, mit einem Array in dem die Chars stehen und gespeichert werden.

    Was meinst du mit anders, bzw. was meinst du mit Array wo die Chars gespeichert werden?

    Du musst mit einer Schleife arbeiten.

    Ich hab es jetzt so versucht.

    Wenn sich jetzt jemand registriert und nen Character erstellen möchte geht dies nicht, da "Neuen Character erstellen" erst garnicht im Dialog steht.


    Im Teil von MaxChars > 1:

    format(c1,512,"{FFFFFF}Neuen Charakter anlegen");

    zu:

    format(c1,512,"%s\n{FFFFFF}Neuen Charakter anlegen",c1);

    Danke, ich habe jetzt noch was geändert aber es werden irgendwie nicht die eingestellten maxchars angezeigt


    Angenommen der Spieler hat account_MaxChars = 2 dann sollte da z. B. stehen Herman_Bauer\nNeuen Character anlegen bei account_MaxChars = Herman_Bauer\nNeuen Character anlegen\nNeuen Character anlegen solgange bis server_MaxChars voll ist z. B. server_MaxChars =4.


    Akutell hat ein Spieler account_MaxChars = 2 und es wird nur einmal "Neuen Charaktre anlegen" angezeigt und biem zweiten Spieler welcher account_MaxChars = 4 hat wird zweimal "Neuen Charaktre anlegen" angezeigt.


    Was mache ich falsch?

    Moin,


    ich möchte wie folgt machen.


    Ein Dialog wo die Charactere aufgelistet sind, aber wenn "MaxChars" auf 1 steht das dann sofern kein Char mit der Accountid in der DB steht da steht "Neuen Character erstellen". Sollte "MaxChars" auf 2 stehn sollte darunter auch ein "Neuen Character erstellen! auftauchen.


    So habe ich es bisher, aber mein Gefühl sagt mir ich hab was falsch gemacht da es nicht funktionert. Wie bekomme ich meinen Wunsch hin?


    Danke im Voraus.


    MfG


    Allrounder18

    Guten Abend,


    ist es mir möglich, dass ich eine Charackter auswahl erstelle so ähnlich wie AddPlayerClass?

    Also ich log mich ein geb mein PW ein und seh dann einen Character wo ich auf Spielen klicken kann bzw. wenn ich mehrere Charactere besitze diese mit einem Pfeil durchblättern kann.


    Danke im Voraus.


    MfG


    Allrounder18

    Setze Zeile 10 vor Zeile 37 ein.

    Danke geht, jetzt besteht nen anderer Fehler und zwar funktioniert der Befehl nichtg mehr wenn ich

    if(spalte < 0 || spalte > 3)return SendFehler(playerid,"Die angegebene Spalte existiert nicht"); mache und jemanden auf Spalte 4 nen Rang geben will kommt das die Spalte 4 nicht existiert. Muss ich da das spalte-- in Zeile 10 lasen oder wie bekomme ich das gefixt? Weil 3 is ja eigentlich 4.


    Edit: Wenn ich spalte > 4 mache gehts auch nicht.

    Ich möchte /makeverwalter 0 6 4 machen heißt id 0 rang 6 auf spalte 4.

    Wie sieht dein Code jetzt aus?

    Nutze anstatt <||>: !=

    Das steht für ungleich, was nicht größer und nicht kleiner entspricht.

    Danke.


    Wie bekomme ich hier die Spalte raus? Aktuell wird immer die Spalte 1 angzeigt was aber nicht so sein sollte.

    Moin,


    Code
    if(AccountInfo[playerid][account_Verwalter][0] < | | > VerwalterCommandInfo[1][command_Verwalter] && AccountInfo[playerid][account_Verwalter][1] < | | >VerwalterCommandInfo[1][command_Verwalter] && AccountInfo[playerid][account_Verwalter][2] < | | > VerwalterCommandInfo[1][command_Verwalter] && AccountInfo[playerid][account_Verwalter][3] < | | > VerwalterCommandInfo[1][command_Verwalter])return SendFehler_noRights(playerid)

    Ich möchte, dass die Meldung bezüglich keine Rechte dann kommt wenn der Verwalterrang kleiner bzw. größer als der Rang ist mit dem man den Befehl ausführen kann.


    < | | > geht wohl nicht, da kommt error 029: invalid expression, assumed zero.


    Was muss ich machen, damit es funktioniert?



    Danke im Voraus.



    MfG



    Allrounder18

    Das kannst du dann einfach so machen:

    Code
    stock GetAdminName(adminlevel, playerid, bool:colored = false)
    {
        #pragma unused adminlevel
        new lvName[64];
        if(colored) strcat(lvName, GetColoredName(playerid));
        else strcat(lvName, AccountInfo[playerid][account_Name]);
        return lvName;
    }

    oder:

    Code
    stock GetAdminName(playerid, bool:colored = false)
    {
        new lvName[64];
        if(colored) strcat(lvName, GetColoredName(playerid));
        else strcat(lvName, AccountInfo[playerid][account_Name]);
        return lvName;
    }

    Bei letzterem musst du dann das Admin Level noch aus den Funktionsaufrufen von GetAdminName entfernen.

    Danke, könnte ich bei folgendem aufch mit GetAdminRang arbeiten, damit die Rangfarbe kommt damit ich net immer mit den definierten Farben durchswitchen muss?


    case 8:  Alabel[playerid] = Create3DTextLabel(alabel,Projektleiter,0.0, 0.0, 40.0, 20.0, -1, 1),SetPlayerColor(playerid, Projektleiter);


    GetAdminRang sollte z. B, Projektleiter ersetzen.


    Edit: Es muss net unbedingt GetAdminRang sein, aber irgendeine Funktion damit das die selbe Farben sind wie die Ränge.

    Aufzurufen:

    Code
    if(GetPVarInt(playerid,"aduty") == 1)
    {
        format(message, 145,"(( [{33CCFF}Helferchat{FFFFFF}] %s [%s]%s[%d]:  %s ))",GetAdminRang(AccountInfo[playerid][account_Admin],true),ServerInfo[0][server_Tag],GetColoredName(playerid),playerid, string);
    }
    else
    {
        format(message, 145,"(( [{33CCFF}Helferchat{FFFFFF}] %s %s[%s]:  %s ))",GetAdminRang(AccountInfo[playerid][account_Admin],true),GetColoredName(playerid),playerid, string);
    }

    Übrigens kann eine SendClientMessage nur 145 Zeichen lang sein (144 sichtbare Zeichen + das EOS Zeichen).

    Danke erstmal, sieht bisher sehr gut aus, aber mein GetAdminName funktioniert nicht.


    Was muss hier geändert werden?


    Danke im Voraus.


    MfG


    Allrounder18