Beiträge von Jeffry

    Das nativechecker Plugin wird genau das Gleiche ausgeben. ;)
    Problem ist, dass er ein falsches MySQL Plugin verwendet, ein zu neues. Er muss, so zumindest den Funktionsnamen nach, eine ältere Version verwenden. Welche genau kann ich nicht sagen, möglicherweise die die R7. Laut der Wiki wird ab R33 mysql_log verwendet, daher muss es eine davor sein.


    Am besten du schaust mal in die MySQL-Include die du hast, dort steht ganz oben die Version. Dieses Plugin benötigst du dann. Welche Version steht da?

    Unter den Includes:
    new inDuel[MAX_PLAYERS];


    ocmd:annehmen1o1(playerid,params[])
    {
    new id,str[128];
    if(sscanf(params,"u",id))return SendClientMessage(playerid,COLOR_GREY,"/annehmen1o1 [ID / Teil des Namens]");
    if(Einladung[playerid] != 1)return SendClientMessage(playerid,COLOR_GREY,"Du wurdes zu keinem 1o1 Invitet");
    if(Einladung[id] != 1)return SendClientMessage(playerid,COLOR_GREY,"Der Spieler hat dich nicht Invitet");
    format(str,sizeof(str),"{00B2EE}%s hat dein 1o1 Invite angenommen",PlayerName(playerid));
    SendClientMessage(id,COLOR_GREY,str);
    format(str,sizeof(str),"{00B2EE}Du hast %s´s Invite angenommen",PlayerName(id));
    SendClientMessage(playerid,COLOR_GREY,str);
    GivePlayerWeapon(playerid, 24, 1337);
    GivePlayerWeapon(playerid, 25, 1337);
    GivePlayerWeapon(playerid, 33, 1337);
    GivePlayerWeapon(id, 24, 1337);
    GivePlayerWeapon(id, 25, 1337);
    GivePlayerWeapon(id, 33, 1337);
    SetPlayerVirtualWorld(playerid, playerid+10);
    SetPlayerVirtualWorld(id, playerid+10);
    SetPlayerInterior(playerid, 6);
    SetPlayerInterior(id, 6);
    SetPlayerPos(playerid, 774.213989,-48.924297,1000.585937);
    SetPlayerPos(id, 774.213989,-48.924297,1000.585937);
    inDuel[playerid] = playerid+10;
    inDuel[id] = playerid+10;
    return 1;
    }


    Beim Beenden des Duels:
    inDuel[playerid] = 0;
    inDuel[id] = 0;


    Und bei OnPlayerSpawn:
    if(inDuel[playerid] > 0)
    {
    GivePlayerWeapon(playerid, 24, 1337);
    GivePlayerWeapon(playerid, 25, 1337);
    GivePlayerWeapon(playerid, 33, 1337);
    SetPlayerVirtualWorld(playerid, inDuel[playerid]);
    SetPlayerInterior(playerid, 6);
    SetPlayerPos(playerid, 774.213989,-48.924297,1000.585937);
    }

    Dann musst du wahrscheinlich überall dort wo du ein query zwecks Fraktionen sendest die frakid um eins erhöhen, weil in deiner Tabelle fängt es mit 1 an, die Arrays aber mit 0, entsprechend ist frakid 0 im Code in der Tabelle die 1.
    Oder du änderst deine Tabelle so ab, dass die IDs bei 0 anfangen.

    Dann musst du überall wo
    PlayerInfo[playerid][pBan]
    Steht die PVar hinschreiben, allerdings kann ich dir dazu nicht raten, da PVars für sowas eigentlich keinen Sinn geben, eine normale Variable reicht es völlig.

    format(query,sizeof(query),"UPDATE "#DATENBANK"_fraktionen SET frakmaterial = '%d', frakgeld = '%d', marihuana = '%d', koks = '%d', crystle = '%d', lsd = '%d', gras = '%d' WHERE id = '%d'",FrakInfo[frak][frakmaterial],FrakInfo[frak][frakgeld],FrakInfo[frak][fMarihuana],FrakInfo[frak][fKoks],FrakInfo[frak][fCrystle],FrakInfo[frak][fLSD],FrakInfo[frak][fGras],frak);
    zu:
    format(query,sizeof(query),"UPDATE "#DATENBANK"_fraktionen SET frakmaterial = '%d', frakgeld = '%d', marihuana = '%d', koks = '%d', crystle = '%d', lsd = '%d', gras = '%d' WHERE id = '%d'",FrakInfo[frak][frakmaterial],FrakInfo[frak][frakgeld],FrakInfo[frak][fMarihuana],FrakInfo[frak][fKoks],FrakInfo[frak][fCrystle],FrakInfo[frak][fLSD],FrakInfo[frak][fGras],frak+1);


    Dann dürfte es klappen.

    Versuch mal ob du damit klar kommst:
    ocmd:inviteannehmen(playerid,params[])
    {
    if(clanEinladung[playerid] != 1)return SendClientMessage(playerid,COLOR_GREY,"Du wurdes zu keinem Clan Invitet");
    clanEinladung[playerid] = 0;
    new clan = clanEinladungID[playerid];
    //Hier dann das was passiert, wenn der Spieler dem Clan beitritt (Stats setzen etc)
    return 1;
    }


    ocmd:invite(playerid,params[])
    {
    if(clanstate[playerid] < 3) return SendClientMessage(playerid,COLOR_RED, "Du bist nicht der Leader eines Clans");
    new pinvite;
    if(sscanf(params,"u",pinvite)) return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /invite [ID / Teil des Namens]");
    if(!IsPlayerConnected(pinvite)) return SendClientMessage(playerid,COLOR_RED, "Spieler nicht online");
    if(clanstate[pinvite] == 0)
    {
    if(GetPlayerScore(pinvite) >9)
    {
    clanEinladungID[pinvite] = clanID[playerid]; //Wie es eben heißt
    clanEinladung[pinvite] = 1;
    //Nachricht senden...
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED, "Der Spieler benötigt das Level 10");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED, "Der Spieler befindet sich bereits in einem Clan");
    }
    return 1;
    }

    mysql_pquery(dbHandle,query);
    zu:
    mysql_pquery(dbHandle,q);


    Dann dürfte es klappen.


    EDIT: Ich sehe grade, das war in dem Code oben auch schon so, hab ich gar nicht gesehen.


    EDIT2:

    Zitat

    /e: Warte mal wie bekloppt bin ich eigentlich?
    Ich formatiere "q", aber führe "query" aus.....


    Passiert :D

    Anscheinend nicht:

    Zitat

    Warning: Include file version (0x26104) does not match plugin version (0x27101)


    Lade dir gegebenenfalls die neuste Version nochmal herunter. Achte darauf, wenn du die Include eingefügt hast, den Code über die pawno.exe zu öffnen, und nicht über einen Doppelklick auf die .pwn Datei, sonst kann es sein, dass er ein anderen pawno.exe nimmt, in dessen Pfad die Include nicht drin ist.

    Zwecks den mehreren Verbindungen: Vom Code her siehst das normal aus, daran scheint es nicht zu liegen. Ein direktes Problem ist das aber auch nicht, solange es funktioniert.
    Wenn du dir sicher bist, dass du nirgends die Verbindung nochmal herstellst, dann kannst du das auch so lassen.


    Zu den leeren Queries:
    Nicht der Code, der danach. ;)

    Eigentlich musst du nur den Einladungs-Teil vom /duell - Befehl übernehmen, fast genau gleich wie der /duell Befehl ist dann der /invite Befehl (musst das "Einladung" eben umbenennen, gibt es ja schon). Der /inviteannehmen Befehl ist dann in etwa so aufgebaut, wie dein jetziger /invite Befehl.

    Warum sagt die mysql_log, dass ich 3x eine Verbindung zur DB aufbaue?


    Möglicherweise steht das mysql_connect in einer Schleife? Oder ist in mehreren Filterscripts geladen?


    Wie kann ich herausfinden, welche Querys leer (empty) sind?


    Irgendwo nach

    SQL
    "CREATE TABLE IF NOT EXISTS `Frak` (`ID` int(11) NOT NULL UNIQUE...


    werden die sein. dort musst du nachschauen.

    Du könnest beide in eine andere Virtuelle Welt setzen.
    SetPlayerVirtualWorld(playerid, playerid+10);
    SetPlayerVirtualWorld(id, playerid+10);


    So kommt es nie vor, dass zu viele am gleichen Platz sind.