Beiträge von Jeffry

    Mahlzeit, habe wieder einen Denkfehler... in 3 Zeilen kommt folgendes.

    Wieso nutzt du denn immer mysql_query_file? Das ist zum auslesen von Daten aus Dateien.


    So ist es korrekt:
    mysql_format(handle, tmpdas, sizeof(tmpdas), "SELECT usr_name FROM `som_timeban` WHERE `usr_name` = '%e' AND status = 0", tmp);
    mysql_pquery(handle, tmpdas, "checktimeban_execute", "is", playerid,tmp);

    Versuche
    if(sscanf(params,"s[64]",item))return SendClientMessage(playerid,ROT,"INFO: /accept [invite]");
    zu:
    if(sscanf(params,"s",item))return SendClientMessage(playerid,ROT,"INFO: /accept [invite]");


    Wenn du die sscanf Funktion anstatt dem Plugin nutzt, darfst du die Längenangabe nicht dabei haben.

    Die Funktion cache_num_rows gibt es da nicht mehr.
    for(new i=0; i<cache_num_rows(); i++)
    zu:
    new rows;
    cache_get_row_count(rows);
    for(new i=0; i<rows; i++)


    Außerdem kannst du die Funktion so schreiben:
    LoadFrakCars()
    {
    mysql_pquery(handle,"SELECT * FROM fautos","OnFrakCarsLoad"); //Hier musste das "i" weg
    return 1;
    }

    Welche MySQL Version nutzt du?


    Ist es außerdem korrekt, dass du einmal das LoadFrakCars mit großem L geschrieben hast, und einmal mit kleinem L? Prüfe das mal im Code. Das muss nämlich gleich sein, also beides mal LoadFrakCars oder beides mal loadFrakCars.

    OCMD statt DCMD davor war es halt DCMD und nun kriege ich keine Warnings/Errors beim Compilen aber Ingame

    Das liegt daran, dass die Befehle vom Compiler ignoriert werden, da du wahrscheinlich die ocmd Include nicht oder nicht richtig inkludiert hast.
    Daher sind auch die Warnungen weg, da der Code für den Compiler nicht existiert, und damit auch ingame nicht existiert.


    Den richtigen Code habe ich dir im vorherigen Thread gepostet: Problem mit /invite Befehl | DCMD

    Auf ocmd parallel umzustellen macht keinen Sinn und behebt das Problem auch nicht.
    So sehen die Befehle korrekt aus:
    dcmd_invite(playerid, params[])
    {
    if(IstSpielerInFraktion(playerid, 0)) return SendClientMessage(playerid,ROT,"Du bist in keiner Fraktion.");
    if(sSpieler[playerid][Rang] < 6) return SendClientMessage(playerid,ROT,"Dein Rang ist zu niedrig.");
    new pID, fID;
    fID = sSpieler[playerid][Fraktion];
    if(sscanf(params, "u", pID)) return SendClientMessage(playerid,ROT,"INFO: /invite [ID]");
    if(!IstSpielerInFraktion(pID, 0))return SendClientMessage(playerid,ROT,"Spieler ist bereits in einer Fraktion!");
    new string[128];
    format(string,sizeof(string),"%s hat dich in die Fraktion %s eingeladen.", PlayerName(playerid), fInfo[fID][f_name]);
    SendClientMessage(pID,GELB, string);
    SendClientMessage(pID,GELB,"Um die einladung anzunehmen /accept invite eingeben.");
    SetPVarInt(pID, "inv_fraktid", fID);
    SetPVarInt(pID, "inv_inviter", playerid);
    return 1;
    }
    dcmd_accept(playerid, params[])
    {
    new item[64];
    if(sscanf(params,"s[64]",item))return SendClientMessage(playerid,ROT,"INFO: /accept [invite]");
    if(!strcmp(item, "invite", false))
    {
    if(GetPVarInt(playerid, "inv_fraktid") == 0) return SendClientMessage(playerid,ROT," Du wurdest in keine Fraktion eingeladen!");
    new fID = GetPVarInt(playerid, "inv_fraktid");
    sSpieler[playerid][Fraktion] = fID;
    sSpieler[playerid][Rang] = 1;
    new string[128];
    format(string,sizeof(string), "Du bist der Fraktion %s beigetreten.", fInfo[fID][f_name]);
    SendClientMessage(playerid,GELB, string);
    format(string,sizeof(string), "%s ist der Fraktion beigetreten!", PlayerName(playerid));
    SendClientMessage(GetPVarInt(playerid, "inv_inviter"),ROT,string);
    return 1;
    }
    return 1;
    }


    Und füge diesen stock ganz unten in deinem Gamemode ein:
    stock PlayerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    return name;
    }


    Du hast nämlich immer GetPlayerName direkt im format verwendet, das geht aber nicht.
    Nutze jetzt stattdessen "PlayerName", damit kannst du es direkt nutzen (siehe Code).

    Das kannst du mit format machen:
    if(strcmp("/clearchat", cmdtext, true) == 0)
    {
    for(new i = 0; i < 100; i++) SendClientMessageToAll(HELLBLAU," ");
    new string[128];
    GetPlayerName(playerid, string, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Der Spieler %s (ID: %d) hat den Chat gecleart.", string, playerid);
    SendClientMessageToAll(ROT,string);
    return 1;
    }

    Dafür habe ich dir diese Meldung hinzugefügt:
    SendClientMessage(playerid, 0xFF0000FF, "Dieses Fahrzeug gehört nicht dir.");
    Die kannst du bearbeiten, auf den Text den du willst.


    Entferne Zeile 109 und 110 (SendClientMessage und return 1) in obigem Code, sonst wird die Schleife immer nach dem ersten Fahrzeug beendet.