Beiträge von Grapefruit

    Hallo,


    die Zone die ich ingame löschen möchte, löscht sich nicht aus der Datenbank.


    ocmd:destroyzone(playerid, params[])
    {
    new zone = M_GetPlayerCurrentZone(playerid), query[100];
    if(SpielerInfo[playerid][sAdminlevel] < 3) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du bist nicht berechtigt diesen Befehl zu benutzen!");
    if(SpielerInfo[playerid][sAdminduty] == 0) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du befindest dich nicht im Administrator Dienst!");
    if(!M_IsPlayerInAnyZone(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Zone!");
    GZ[zone][flagge_x] = 0, GZ[zone][flagge_y] = 0, GZ[zone][flagge_z] = 0,
    GZ[zone][min_x] = 0, GZ[zone][min_y] = 0, GZ[zone][max_x] = 0, GZ[zone][max_y] = 0;
    DisableZone(zone);
    DestroyPickup(GZ[zone][pickup]);
    Delete3DTextLabel(GZ[zone][label]);
    if(GF[zone][started] >= 1) GF[zone][zeit] = GFTime;
    GZ[zone][erstellt] = 0;
    format(query, sizeof(query), "DELETE FROM gangfight WHERE id=%d", zone);
    mysql_pquery(handle, query);
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast die Zone erfolgreich gelöscht.");
    }


    Mit freundlichen Grüßen
    Grapefruit

    Dankeschön das wäre dann behoben. Aber die Zeile in der Datenbank löscht sich nicht.


    ocmd:destroyzone(playerid, params[])
    {
    new zone = M_GetPlayerCurrentZone(playerid), query[100];
    if(SpielerInfo[playerid][sAdminlevel] < 3) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du bist nicht berechtigt diesen Befehl zu benutzen!");
    if(SpielerInfo[playerid][sAdminduty] == 0) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du befindest dich nicht im Administrator Dienst!");
    if(!M_IsPlayerInAnyZone(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Zone!");
    GZ[zone][flagge_x] = 0, GZ[zone][flagge_y] = 0, GZ[zone][flagge_z] = 0,
    GZ[zone][min_x] = 0, GZ[zone][min_y] = 0, GZ[zone][max_x] = 0, GZ[zone][max_y] = 0;
    DisableZone(zone);
    DestroyPickup(GZ[zone][pickup]);
    Delete3DTextLabel(GZ[zone][label]);
    if(GF[zone][started] >= 1) GF[zone][zeit] = GFTime;
    GZ[zone][erstellt] = 0;
    format(query, sizeof(query), "DELETE FROM gangfight WHERE id=%d", zone);
    mysql_pquery(handle, query);
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast die Zone erfolgreich gelöscht.");
    }

    [22:03:50] [DEBUG] mysql_pquery - connection: 1, query: "DELETE FROM gangfight WHERE id=0", callback: "(null)", format: "(null)"
    [22:03:50] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [22:03:50] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 0.280 milliseconds
    [22:03:50] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving
    [22:03:51] [DEBUG] mysql_escape_string - source: "TaigX", connection: 1, max_len: 24
    [22:03:51] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE Accounts SET Geld='0', Level='0', Adminlevel='3', Logout=", callback: "(null)", format: "(null)"
    [22:03:51] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [22:03:51] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TaigX'' at line 1
    [22:03:51] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError


    stock SavePlayer(playerid)
    {
    new query[500];
    if(SpielerInfo[playerid][sEingeloggt] == 0) return 1;
    mysql_escape_string(pName(playerid), pName(playerid));
    format(query, sizeof(query), "UPDATE Accounts SET Geld='%i', Level='%i', Adminlevel='%i', Logout='%i', Gang='%i WHERE Spielername='%s'", GetPlayerMoney(playerid), GetPlayerScore(playerid), SpielerInfo[playerid][sAdminlevel], SpielerInfo[playerid][sLogout], SpielerInfo[playerid][sGang], pName(playerid));
    mysql_pquery(handle, query);
    return 1;
    }

    Wird immer noch nicht gelöscht. bekomme aber diesen Error in der Log.


    [22:03:51] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TaigX'' at line 1

    Hab das nun so gemacht, aber die Zeile verschwindet nicht.


    ocmd:destroyzone(playerid, params[])
    {
    new zone = M_GetPlayerCurrentZone(playerid), query[100];
    if(!IsPlayerAdmin(playerid)) return 1;
    if(!M_IsPlayerInAnyZone(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Zone!");
    GZ[zone][flagge_x] = 0, GZ[zone][flagge_y] = 0, GZ[zone][flagge_z] = 0,
    GZ[zone][min_x] = 0, GZ[zone][min_y] = 0, GZ[zone][max_x] = 0, GZ[zone][max_y] = 0;
    DisableZone(zone);
    DestroyPickup(GZ[zone][pickup]);
    Delete3DTextLabel(GZ[zone][label]);
    if(GF[zone][started] >= 1) GF[zone][zeit] = GFTime;
    GZ[zone][erstellt] = 0;
    format(query, sizeof(query), "DELETE FROM gangfight WHERE id=%s", zone);
    mysql_pquery(handle, query);
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast die Zone erfolgreich gelöscht.");
    }

    Okay klappt nun. Hätte noch eine Frage, und zwar wie kann man aus der Datenbank Spalten löschen. Wollte es für diesen Command benutzen.


    ocmd:destroyzone(playerid, params[])
    {
    new zone = M_GetPlayerCurrentZone(playerid);
    if(!IsPlayerAdmin(playerid)) return 1;
    if(!M_IsPlayerInAnyZone(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Zone!");
    GZ[zone][flagge_x] = 0, GZ[zone][flagge_y] = 0, GZ[zone][flagge_z] = 0,
    GZ[zone][min_x] = 0, GZ[zone][min_y] = 0, GZ[zone][max_x] = 0, GZ[zone][max_y] = 0;
    DisableZone(zone);
    DestroyPickup(GZ[zone][pickup]);
    Delete3DTextLabel(GZ[zone][label]);
    if(GF[zone][started] >= 1) GF[zone][zeit] = GFTime;
    GZ[zone][erstellt] = 0;
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast die Zone erfolgreich gelöscht.");
    }

    [17:05:48] [debug] Run time error 4: "Array index out of bounds"
    [17:05:48] [debug] Accessing element at negative index -1
    [17:05:48] [debug] AMX backtrace:
    [17:05:48] [debug] #0 00018f28 in public ocmd_cflagge (0, 347144) from NLG.amx
    [17:05:48] [debug] #1 native CallLocalFunction () from samp-server.exe
    [17:05:48] [debug] #2 00000528 in public OnPlayerCommandText (0, 347108) from NLG.amx

    danke :)


    Hab gerade noch ein problem bemerkt, wenn ich den Befehl /cflagge ingame eingebe sagt er mir das er diesen Command nicht kennt. Aber auf mein test Script funktioniert er.


    ocmd:cflagge(playerid, params[])
    {
    new query[500], Float:x, Float:y, Float:z;
    if(CZ[playerid][create] != 1) return SendClientMessage(playerid, COLOR_WHITE, "Um eine Gangzone zu erstellen, benutze '/creategangzone'!");
    if(!M_IsPlayerInAnyZone(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Gangzone!");
    GetPlayerPos(playerid, x, y, z);
    GZ[CZ[playerid][zid]][flagge_x] = x, GZ[CZ[playerid][zid]][flagge_y] = y, GZ[CZ[playerid][zid]][flagge_z] = z, CZ[playerid][create] = 0;
    GZ[CZ[playerid][zid]][pickup] = CreatePickup(1314, 1, x, y, z, 0);
    GZ[CZ[playerid][zid]][label] = Create3DTextLabel("Tippe '/angriff', um das Gebiet anzugreifen.\nTippe '/flagge' | Y/Z, um die Flagge zu erobern.", COLOR_WHITE, x, y, z, 20, 0);
    format(query, sizeof(query), "INSERT INTO gangfight (owner, maxX, maxY, minX, minY, flaggeX, flaggeY, flaggeZ, erstellt) VALUES ('%s', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%d')",
    GZ[CZ[playerid][zid]][owner], GZ[CZ[playerid][zid]][max_x], GZ[CZ[playerid][zid]][max_y], GZ[CZ[playerid][zid]][min_x], GZ[CZ[playerid][zid]][min_y], GZ[CZ[playerid][zid]][flagge_x], GZ[CZ[playerid][zid]][flagge_y], GZ[CZ[playerid][zid]][flagge_z], CZ[playerid][zid]);
    mysql_pquery(handle, query);
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast die Zone erfolgreich erstellt.");
    }

    Hi,


    wie soll ich das ändern damit es Sinn ergibt?


    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(2034) : warning 215: expression has no effect
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    stock GetFraktion(playerid)
    {
    //GetPVarInt(playerid, "Fraktion"); Vorher
    SpielerInfo[playerid][sGang]; //Nachher <- Warning
    return 1;
    }


    Mfg

    Hi, hab ein problem bei OnPlayerKeyStateChange.


    #define PRESSED(%0) \ (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))


    if(adruecken[playerid] == true && PRESSED(KEY_FIRE))


    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(1200) : error 029: invalid expression, assumed zero
    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(1200) : warning 215: expression has no effect
    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(1200) : error 001: expected token: ";", but found ")"
    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(1200) : error 029: invalid expression, assumed zero
    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(1200) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    Hi, hab oben die Include <m_zones> eingetragen und auch in den Ordner getan. Aber bekomme 2 Errors obwohl ich mit der Include noch nichts gemacht hab. Benutze die neuste version die ich gefunden hab.


    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\pawno\include\m_zones.inc(113) : error 004: function "M_OnPlayerEnterZone" is not implemented
    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\pawno\include\m_zones.inc(122) : error 004: function "M_OnPlayerLeaveZone" is not implemented
    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(1226) : warning 203: symbol is never used: "M_Connect"
    C:\Users\Eddy\Desktop\GTA\GTA - Selfmade\gamemodes\NLG.pwn(1226) : warning 203: symbol is never used: "M_Init"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.