Beiträge von KazutoSensei


    [13:27:31] [WARNING] CMySQLConnection::Disconnect - no connection available
    [13:27:31] [WARNING] CMySQLConnection::Disconnect - no connection available

    Bei OnGameModeExit habe ich nur das mysql_close, nichts weiter.


    Und die einzige weitere SafeFunktion bzw Mysql Funktion, die nicht von dir ist, ist hier vorzufinden.


    Jedoch hat diese Funktion nichts damit zu tun dass es nicht funktioniert, meine Überlegung war, dass die Sae Funktion nicht richtig funktioniert, je mehr Dinge du nachher übergibst.
    Weil wenn der Server alles speichern soll, macht er das ja nicht, aber laden, check usw funktioniert ja. Daher wundert mich das.


    lg

    Das ist alles was ich da bekommen habe ^^.

    Versuch mal folgendes...

    Code
    else if(IsPlayerInFrac(playerid,5)) {
        if(IsPlayerInRangeOfPoint(playerid,15,2107.46973, 1385.40234, 12.59370)) {
            MoveObject(LCM,2107.46973, 1385.40234, 3.59370,3);
            SetTimer("CloseLCM",5000,0);
        }
        if(IsPlayerInRangeOfPoint(playerid,15,2089.63452, 1433.21313, 12.59370)) {
            MoveObject(LCM1,2089.63452, 1433.21313, 3.59370,3);
            SetTimer("CloseLCM1",5000,0);
        }
    }

    lg

    Ich versuche nun dein Speichern public in meinn restart Befehl auszuführen.

    Dazu das public zum Timer...

    Code
    public Server_Restart(playerid){    
        return SendRconCommand("gmx");
    }

    und die Speicher Public ^^...

    Code
    public Save_Player_Data(playerid){
        new query[1028];
        if(!pData[playerid][pLoggedIn]) return 1;
        mysql_format(dbhandle, query, sizeof(query), "UPDATE accounts SET level = '%d', money = '%d', adminlevel = '%d', banned = 'd' WHERE id = '%d'", pData[playerid][pLevel], pData[playerid][pMoney], pData[playerid][pAdminLevel], pData[playerid][pIsBanned], pData[playerid][p_ID]);
        mysql_pquery(dbhandle, query);
        return 1;
    }

    Und mein Mysql Log sagt folgendes....

    Code
    [WARNING] CMySQLConnection::Disconnect - no connection available

    Nur hat es normal geklappt und jetzt speichert er nicht einmal wenn ich so disconnect'e.
    Wobei beim normalen disonnect kein Warning kommt.


    lg

    Ist auch nicht ganz richtig, du musst natürlich i nehmen und nicht playerid oder pID

    Code
    for(new i = 0; i < MAX_PLAYERS; i++){
        if(IsPlayerConnected(i)){
             format(text,sizeof(text), "\nID: %i, Name: %s, Geld: %i", i, pData[i][pName], pData[i][pMoney]);
        }
    }

    Wäre folgendes denn auch richtig?

    Code
    for(new i = 0; i < MAX_PLAYERS; i++){
        if(!IsPlayerConnected(playerid)) continue; //Die Variante sollte ja eig auch durchgehen
        format(text,sizeof(text), "\nID: %i, Name: %s, Geld: %i", pID, pData[pID][pName], pData[pID][pMoney]);
    }

    Aber vom Prinzip habe ich alles richtig gemacht oder?


    lg

    Haha, und wieder ein Problem, gut ich bin alleine mit meinem Script, daher ist diese function zu testen schwierig, aber das Grundprinzip funktioniert.
    Jedoch sehe ich meinen eigenen Logikfehler und wo ich ansetzen muss, doch fehlt mir der Ansatz und ich bin blöd beim Googeln oder Googel mag mich nicht
    mit richtigen Ergebnissen segnen :P


    Code
    ocmd:showplayers(playerid, params){
        new text[256], pID;
        for(new i = 0; i < MAX_PLAYERS; i++){
             if(!IsPlayerConnected(playerid)) return 1;
    	 format(text,sizeof(text), "\nID: %i, Name: %s, Geld: %i", pID, pData[pID][pName], pData[pID][pMoney]);
        }
        ShowPlayerDialog(playerid, DIALOG_SHOWPLAYERS, DIALOG_STYLE_MSGBOX, "ALLE ONLINE SPIELER", text, "Schliessen", "");
        return 1;
    }

    Mein Fehler liegt glaube ich bei dem Inhalt der for-Schleife und IsPlayerConnected.
    Ein paar richtige Tipps/Hinweise wären gut ^^.


    lg

    Gibt es keine Möglichkeit die Objekte dauerhaft zu entfernen sobald der Server gestartet ist?
    Ich meine wenn man über 200 Spieler hat und über 200 mal die Objecte entfernt werden, müsste doch auf dauer anstrengend werden.
    Dazu kommt ja auch das disconnecten und reconnecten oder ist das schon die effizienteste Lösung?


    lg

    Hallöle,
    ich möchte gerne, dass meine Befehle nicht nur andere Spieler per ID, sondern auch mit Ihren Namen ansprechen kann.
    Mein versuch war bisher gescheitert und sah bisher so aus.


    Code
    ocmd:makeadmin(playerid, params[]){
        new text[128], pID;
        if(pData[playerid][pAdminLevel] < 4) return SendClientMessage(playerid, COLOR_RED, "Du darfst diesen Befehl nicht nutzen!");
        if(sscanf(params, "d", pID) || sscanf(params, "s", pData[pID][pName])) return SendClientMessage(playerid, COLOR_GREY, "Nutze: /setadmin [SpielerID/Name]");
        SendClientMessage(playerid, COLOR_GREY, "Du wurdest zu Adminlevel 4.");
        return 1;
    }


    Jedoch war es leider falsch, nun würde ich gerne einen Hint/Hinweis bekommen,
    ich lerne lieber durch ausprobrieren, aber ich verzweifle gerade und eine kleine Hilfe wäre super ^^.


    lg

    So, ich habe den Fehler behoben. Dank deines Hinweises habe ich es gesehen :D .
    Super Tutorial, ich bedanke mich ^^. Vor allem die Erklärungen dazu waren sehr hilfreich.


    Falls du wissen möchtest wo mein Fehler lag, er war recht simpel :P. Over here...


    Code
    mysql_pquery(dbhandle, query, "Player_Login", "d", playerid);
    /* Mein Fehler lag darin, dass ich "%d" vorher drinzusetehen hatte, statt "d". */

    Manchmal übersieht man die kleinen Dinge. Danke nochmals und ich freue mich über weitere TuTs von dir :).


    lg

    Guten Tag/Nachmittag alle zusammen,
    kleine Frage am Rande, da ich eure Hilfe gebrauchen könnte.


    Ich habe vom Prinzip alles identisch mit deinem Code "Jeffry".
    Die einzigen unterschiede sind die Benennung der Tabelle (accounts),
    das enum lautet anders ( new pData[playerid][PlayerData] )
    die Anzahl der Spalten (id, name, password, level, money) und die jeweiligen
    publics heißen bei mir anders. Kleine Veränderungen habe ich z.B. hier unternommen...


    Code: text.pwn
    forward Player_Register(playerid);
    public Player_Register(playerid) {
        pData[playerid][p_ID] = cache_insert_id();
        SetPlayerScore(playerid, 1);
        GivePlayerMoney(playerid, 10000);
        SendClientMessage(playerid, farbe, "text");
        return 1;
    }


    Ich bekomme keine Errors und er verbindet sich laut Console mit meiner Datenbank,
    jedoch funktioniert das Login-/Registersystem nicht wirklich, da ich wenn ich ein Passwort
    von 3 oder mehr Zeichen/Zahlen einfüge, er nicht die Money und Score funktion ausführt.
    Daraufhin bekomme ich in meiner mysql.log Datei folgende Meldung. Das speichern
    functkioniert auch nicht, geschweige das INSERT.


    Zitat von mysql.log

    [ERROR] mysql_pquery - callback parameter count does not match format specific


    Dabei ist der rest identisch und oder angepasst.


    MfG KazutoSensei

    Ich könnte dir nur einige Let's Plays und Tutorials von mir schicken, Editor Videos sind derzeitig keine in Upload.
    Ich würde sie dir per PN schicken, wäre wie erwähnt auch ein versuch und kostenlos von mir da ich sowas gerne tue ^^.