Beiträge von Grapefruit

    1.) Server eingeschaltet
    2.) In Account eingeloggt
    3.) Aduty gegangen
    4.) /createzone1
    5.) Zur nächsten Position und /createzone 2
    6.) In die Mitte der Zone gegangen und /createflag (Zone fertig)
    7.) /setfrak
    8.) /angriff damit die Zonen einen Besitzer hat


    Was vllt. noch anzumerken ist, wenn die Zone keinen Besitzer hat, verschwindet die Zonen nach einem Serverrestart.

    ocmd:createzone(playerid, params[])
    {
    new Float:x, Float:y, Float:z;
    if(SpielerInfo[playerid][sEingeloggt] == 0) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du musst dich erst einloggen, um den Befehl zu benutzen!");
    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 kannst hier keine Gangzone erstellen!");
    GetPlayerPos(playerid, x, y, z);
    CZ[playerid][min_x] = x, CZ[playerid][min_y] = y, CZ[playerid][create] = 1;
    SendClientMessage(playerid, COLOR_WHITE, "Bitte überquere jetzt die Zone um die Zone zu erstellen.");
    return SendClientMessage(playerid, COLOR_WHITE, "Wenn du die Zone überquert hast tippe '/createzone2'.");
    }


    ocmd:createzone2(playerid, params[])
    {
    new Float:x, Float:y, Float:z, i,string[64];
    if(SpielerInfo[playerid][sEingeloggt] == 0) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du musst dich erst einloggen, um den Befehl zu benutzen!");
    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(CZ[playerid][create] != 1) return SendClientMessage(playerid, COLOR_WHITE, "Um eine Gangzone zu erstellen, benutze '/createzone'!");
    GetPlayerPos(playerid, x, y, z);
    CZ[playerid][max_x] = x, CZ[playerid][max_y] = y;
    for(; i<MAX_GZ; i++)
    {
    new zone = M_GetPlayerCurrentZone(playerid);
    if(GZ[i][erstellt] == 1) continue;
    GZ[i][min_x] = CZ[playerid][min_x], GZ[i][min_y] = CZ[playerid][min_y], GZ[i][max_x] = CZ[playerid][max_x], GZ[i][max_y] = CZ[playerid][max_y];
    GZ[i][erstellt] = 1, GZ[i][owner] = 0;
    format(string, sizeof(string), "%i| Besitzer: '%s'", GZ[i][zid], FrakName(GZ[i][owner]));
    M_CreateZone(GZ[i][min_x], GZ[i][min_y], GZ[i][max_x], GZ[i][max_y], FrakColor(GZ[i][owner]), string, FrakColor(GZ[i][owner]));
    GZ[i][zid] = zone, CZ[playerid][zid] = zone;
    break;
    }
    return SendClientMessage(playerid, COLOR_WHITE, "Nun gehe zum Angriffspunkt hin und tippe '/createflag'.");
    }


    ocmd:createflag(playerid, params[])
    {
    new query[500], Float:x, Float:y, Float:z;
    if(SpielerInfo[playerid][sEingeloggt] == 0) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du musst dich erst einloggen, um den Befehl zu benutzen!");
    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(CZ[playerid][create] != 1) return SendClientMessage(playerid, COLOR_WHITE, "Um eine Gangzone zu erstellen, benutze '/createzone'!");
    CZ[playerid][zid] = M_GetPlayerZone(playerid);
    if(!M_IsPlayerInAnyZone(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Gangzone!");
    if(CZ[playerid][zid] < 0) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner CZ!");
    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("{0099FF}[Gangfight]{FFFFFF}\nTippe {0099FF}/angriff{FFFFFF} um das Gebiet anzugreifen.\nTippe {0099FF}/flagge{FFFFFF} um die Flagge zu erobern.", COLOR_WHITE, x, y, z, 20, 0);
    format(query, sizeof(query), "INSERT INTO gangfight (zoneid, owner, maxX, maxY, minX, minY, flaggeX, flaggeY, flaggeZ, erstellt) VALUES ('%s', '%f', '%f', '%f', '%f', '%f', '%f', '%f', '%d')",
    CZ[playerid][zid], 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], 1);
    mysql_pquery(handle, query);
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast die Zone erfolgreich erstellt.");
    }

    Jetzt ist es wieder 0, keine ahnung warum er mir gerade was anderes gesagt hat.


    [18:37:32] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:32] Player: 2038.736083 / 1335.517333 / 10.671875
    [18:37:34] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:34] Player: 2038.837402 / 1331.456298 / 10.671875
    [18:37:36] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:36] Player: 2039.821777 / 1329.722534 / 10.671875
    [18:37:37] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:37] Player: 2039.996093 / 1327.646362 / 10.671875
    [18:37:38] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:38] Player: 2043.304443 / 1327.771972 / 10.671875
    [18:37:39] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:39] Player: 2046.486694 / 1327.654785 / 10.671875
    [18:37:41] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:41] Player: 2050.703613 / 1327.498779 / 10.671875
    [18:37:43] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:43] Player: 2055.597656 / 1327.318359 / 10.813357
    [18:37:44] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:44] Player: 2059.304199 / 1327.182250 / 10.803987
    [18:37:45] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:45] Player: 2062.950439 / 1327.046875 / 10.671875
    [18:37:47] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:47] Player: 2063.338378 / 1330.786010 / 10.671875
    [18:37:49] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:49] Player: 2063.490234 / 1334.939208 / 10.671875
    [18:37:50] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:50] Player: 2066.843261 / 1335.068847 / 10.679658
    [18:37:52] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:52] Player: 2068.351806 / 1335.013183 / 10.679658
    [18:37:57] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:37:57] Player: 2062.895507 / 1340.344482 / 10.671875
    [18:38:03] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:38:03] Player: 2052.535156 / 1346.557983 / 10.671875
    [18:38:04] zone: 1 / 0.000000 / 0.000000 / 0.000000
    [18:38:04] Player: 2051.174804 / 1343.610473 / 10.671875

    public Gangwar(zoneid)
    {
    if(GF[zoneid][started] != 1) return KillTimer(GF[zoneid][timer]);
    GF[zoneid][zeit] ++;
    new string[128];
    format(string, sizeof(string), "Punkte (Owner): %d~n~ ~n~Punkte (Angreifer): %d~n~ ~n~Zeit: %d/%d Minute(n)", GF[zoneid][punkte_o], GF[zoneid][punkte_a], GF[zoneid][zeit], GFTime);
    TextDrawSetString(GFInfo, string);
    if(GF[zoneid][punkte_a] >= MaxPoints || GF[zoneid][punkte_o] >= MaxPoints)
    {
    ImGF[GF[zoneid][owner]] = 0, ImGF[GF[zoneid][angreifer]] = 0;
    if(GF[zoneid][punkte_o] > GF[zoneid][punkte_a])format(string, sizeof(string), "Die Gang '%s' hat den Gangfight gegen die Fraktion '%s' mit %i / %i gewonnen.", FrakName(GF[zoneid][owner]), FrakName(GF[zoneid][angreifer]), GF[zoneid][punkte_o],GF[zoneid][punkte_a]);
    else if(GF[zoneid][punkte_a] > GF[zoneid][punkte_o])
    {
    format(string, sizeof(string), "Die Gang '%s' hat den Gangfight gegen die Fraktion '%s' mit %i / %i gewonnen.", FrakName(GF[zoneid][angreifer]), FrakName(GF[zoneid][owner]), GF[zoneid][punkte_a], GF[zoneid][punkte_o]);
    GZ[zoneid][owner] = GF[zoneid][angreifer];
    }
    SendClientMessageToAll(COLOR_WHITE, string);
    GF[zoneid][punkte_o] = 0,GF[zoneid][punkte_a] = 0;
    M_ZoneStopFlashForAll(zoneid);
    GZ[zoneid][ruhe] = GFRuhe;
    GZ[zoneid][ruhetimer] = SetTimerEx("GFRuheTimer", 888*60, true, "i", zoneid);
    format(string, sizeof(string), "%i| Besitzer: '%s'", GZ[zoneid][zid], FrakName(GZ[zoneid][owner]));
    M_ZoneSetTextDraw(zoneid, string, FrakColor(GZ[zoneid][owner]));
    M_ZoneSetColor(zoneid, FrakColor(GZ[zoneid][owner]));
    TextDrawHideForAll(GFUeber),
    TextDrawHideForAll(GFInfo),
    TextDrawHideForAll(GFBox),
    TextDrawHideForAll(GFFlagge);
    return SaveGZ_(zoneid);
    }
    else if(GF[zoneid][zeit] >= GFTime)
    {
    GF[zoneid][started] = 0;
    if(GF[zoneid][punkte_o] > GF[zoneid][punkte_a]) format(string, sizeof(string), "Die Gang '%s' hat den Gangfight gegen die Fraktion '%s' mit %i / %i gewonnen.", FrakName(GF[zoneid][owner]), FrakName(GF[zoneid][angreifer]), GF[zoneid][punkte_o], GF[zoneid][punkte_a]);
    else if(GF[zoneid][punkte_a] > GF[zoneid][punkte_o])
    {
    format(string, sizeof(string), "Die Gang '%s' hat den Gangfight gegen die Fraktion '%s' mit %i / %i gewonnen.", FrakName(GF[zoneid][angreifer]), FrakName(GF[zoneid][owner]), GF[zoneid][punkte_a], GF[zoneid][punkte_o]);
    GZ[zoneid][owner] = GF[zoneid][angreifer];
    }
    SendClientMessageToAll(COLOR_WHITE, string);
    GF[zoneid][punkte_o] = 0,GF[zoneid][punkte_a] = 0;
    M_ZoneStopFlashForAll(zoneid);
    GZ[zoneid][ruhe] = GFRuhe;
    GZ[zoneid][ruhetimer] = SetTimerEx("GFRuheTimer", 888*60, true, "i", zoneid);
    format(string, sizeof(string), "%i| Besitzer: '%s'", GZ[zoneid][zid], FrakName(GZ[zoneid][owner]));
    M_ZoneSetTextDraw(zoneid, string, FrakColor(GZ[zoneid][owner]));
    M_ZoneSetColor(zoneid, FrakColor(GZ[zoneid][owner]));
    TextDrawHideForAll(GFUeber),
    TextDrawHideForAll(GFInfo),
    TextDrawHideForAll(GFBox),
    TextDrawHideForAll(GFFlagge);
    return SaveGZ_(zoneid), LoadGZ_(zoneid);
    }
    return 1;
    }

    Also das hier hab ich unter OnGameModeInit


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    GetPlayerName(i, PlayerName[i], MAX_PLAYER_NAME);
    }
    for(new i = 0; i < MAX_FRAKTIONEN; i++) ImGF[i] = 0;
    mysql_tquery(handle, "SELECT * FROM `gangfight` ORDER BY id ASC", "LoadGZ");


    public LoadGZ()
    {
    new rows, fields, string[128], string2[128], Counter = 0, id;
    cache_get_data(rows, fields);
    for(new i = 0; i < rows; i++)
    {
    id = cache_get_field_content_int(i, "zoneid", handle);
    if(id > -1 && id < sizeof(GZ))
    {
    GZ[id][zid] = id;
    GZ[id][owner] = cache_get_field_content_int(i, "owner", handle);
    GZ[id][max_x] = cache_get_field_content_float(i, "maxX", handle);
    GZ[id][max_y] = cache_get_field_content_float(i, "maxY", handle);
    GZ[id][min_x] = cache_get_field_content_float(i, "minX", handle);
    GZ[id][min_y] = cache_get_field_content_float(i, "minY", handle);
    GZ[id][flagge_x] = cache_get_field_content_float(i, "flaggeX", handle);
    GZ[id][flagge_y] = cache_get_field_content_float(i, "flaggeY", handle);
    GZ[id][flagge_z] = cache_get_field_content_float(i, "flaggeZ", handle);
    GZ[id][erstellt] = true;
    M_CreateZone(GZ[id][min_x], GZ[id][min_y], GZ[id][max_x], GZ[id][max_y], FrakColor(GZ[id][owner]), string, FrakColor(GZ[id][owner]));
    GZ[id][pickup] = CreatePickup(1314,1,GZ[id][flagge_x],GZ[id][flagge_y],GZ[id][flagge_z],0);
    GZ[id][label] = Create3DTextLabel("{0099FF}[Gangfight]{FFFFFF}\nTippe {0099FF}/angriff{FFFFFF} um das Gebiet anzugreifen.\nTippe {0099FF}/flagge{FFFFFF} um die Flagge zu erobern.", COLOR_WHITE, GZ[id][flagge_x], GZ[id][flagge_y], GZ[id][flagge_z], 20, 0);
    format(string2, sizeof(string2), "%i| Besitzer: '%s'", GZ[id][zid], FrakName(GZ[id][owner]));
    M_ZoneSetTextDraw(i, string2, FrakColor(GZ[id][owner]));
    Counter++;
    }
    }
    return printf("(%d) Gangzone(n) wurde(n) erfolgreich erstellt und geladen.", Counter);
    }



    stock LoadGZ_(zoneid)
    {
    new string[128];
    GZ[zoneid][zid] = zoneid;
    GZ[zoneid][owner] = cache_get_field_content_int(0, "owner", handle);
    GZ[zoneid][max_x] = cache_get_field_content_float(0, "maxX", handle);
    GZ[zoneid][max_y] = cache_get_field_content_float(0, "maxY", handle);
    GZ[zoneid][min_x] = cache_get_field_content_float(0, "minX", handle);
    GZ[zoneid][min_y] = cache_get_field_content_float(0, "minY", handle);
    GZ[zoneid][flagge_x] = cache_get_field_content_float(0, "flaggeX", handle);
    GZ[zoneid][flagge_y] = cache_get_field_content_float(0, "flaggeY", handle);
    GZ[zoneid][flagge_z] = cache_get_field_content_float(0, "flaggeZ", handle);
    GZ[zoneid][erstellt] = cache_get_field_content_int(0, "erstellt", handle);
    M_CreateZone(GZ[zoneid][min_x], GZ[zoneid][min_y], GZ[zoneid][max_x], GZ[zoneid][max_y], FrakColor(GZ[zoneid][owner]), string, FrakColor(GZ[zoneid][owner]));
    GZ[zoneid][pickup] = CreatePickup(1314, 1, GZ[zoneid][flagge_x], GZ[zoneid][flagge_y], GZ[zoneid][flagge_z], 0);
    GZ[zoneid][label] = Create3DTextLabel("{0099FF}[Gangfight]{FFFFFF}\nTippe {0099FF}/angriff{FFFFFF} um das Gebiet anzugreifen.\nTippe {0099FF}/flagge{FFFFFF} um die Flagge zu erobern.", COLOR_WHITE, GZ[zoneid][flagge_x], GZ[zoneid][flagge_y], GZ[zoneid][flagge_z], 20, 0);
    return 1;
    }

    Zonen hab ich nur 2


    stock M_GetPlayerCurrentZone(playerid)
    {
    for(new zoneid=0; zoneid<MAX_ZONES; zoneid++)
    {
    if(M_IsValidZone(zoneid))
    {
    if(M_IsPlayerInZone(playerid,zoneid))
    {
    return zoneid;
    }
    }
    }
    return -1;
    }


    stock M_GetPlayerZone(playerid)
    {
    for(new zoneid=0; zoneid<MAX_ZONES; zoneid++)
    {
    if(M_IsValidZone(zoneid))
    {
    if(M_IsPlayerInZone(playerid,zoneid))
    {
    return zoneid;
    }
    }
    }
    return -1;
    }

    Jetzt hab ich das problem, wenn ich /angriff mach steht dort "Du stehst nicht an der Flagge dieser Zone!".


    ocmd:angriff(playerid, params[])
    {
    new zone = M_GetPlayerCurrentZone(playerid), string[128];
    if(SpielerInfo[playerid][sEingeloggt] == 0) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du musst dich erst einloggen, um den Befehl zu benutzen!");
    if(NoGang(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Gang / Mafia!");
    if(!M_IsPlayerInAnyZone(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Zone!");
    if(GZ[zone][owner] == GetFraktion(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du kannst deine eigene Zone nicht angreifen!");
    if(GZ[zone][ruhe] >= 1) return SendClientMessage(playerid, COLOR_WHITE, "Die Zone kann noch nicht angegriffen werden!");
    if(!IsPlayerInRangeOfPoint(playerid, 5, GZ[zone][flagge_x], GZ[zone][flagge_y], GZ[zone][flagge_z])) return SendClientMessage(playerid, COLOR_WHITE, "Du stehst nicht an der Flagge dieser Zone!");
    if(GF[zone][started] == 1) return SendClientMessage(playerid, COLOR_WHITE, "Der Gangfight wurde bereits gestartet!");
    if(ImGF[GF[zone][owner]] >= 1) return SendClientMessage(playerid, COLOR_WHITE, "Diese Gang ist bereits in einem Gangfight!");
    if(GZ[zone][owner] <= 0)
    {
    GZ[zone][owner] = GetFraktion(playerid);
    format(string, sizeof(string), "%d |Besitzer: '%s'", zone, FrakName(GZ[zone][owner]));
    M_ZoneSetTextDraw(zone, string, FrakColor(GetFraktion(playerid)));
    M_ZoneSetColor(zone, FrakColor(GetFraktion(playerid)));
    return SaveGZ_(zone);
    }
    M_ZoneFlashForAll(zone, FrakColor(GetFraktion(playerid)));
    GF[zone][angreifer] = GetFraktion(playerid);
    GF[zone][owner] = GZ[zone][owner], GF[zone][flaggewerobert] = 0;
    GF[zone][started] = 1, GF[zone][punkte_o] = 0, GF[zone][punkte_a] = 0,GF[zone][zeit] = 0;
    ImGF[GetFraktion(playerid)] = 1,ImGF[GF[zone][owner]] = 1;
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if((GetFraktion(i) != GF[zone][owner]) && (GetFraktion(i) != GF[zone][angreifer])) continue;
    TextDrawShowForPlayer(i, GFBox);
    TextDrawShowForPlayer(i, GFUeber);
    TextDrawShowForPlayer(i, GFInfo);
    }
    TextDrawShowForPlayer(playerid, GFBox);
    TextDrawShowForPlayer(playerid, GFUeber);
    TextDrawShowForPlayer(playerid, GFInfo);
    format(string, sizeof(string), "Punkte (Owner): %d~n~ ~n~Punkte (Angreifer): %d~n~ ~n~Zeit: %d/%d Minute(n)", GF[zone][punkte_o], GF[zone][punkte_a], GF[zone][zeit], GFTime);
    TextDrawSetString(GFInfo, string);
    SendClientMessage(playerid, COLOR_WHITE, "Du hast den Gangfight gestartet!");
    return GF[zone][timer] = SetTimerEx("Gangwar", 888*60, true, "i", zone);
    }

    ocmd:destroyzone(playerid, params[])
    {
    new zone = M_GetPlayerCurrentZone(playerid), query[100];
    if(SpielerInfo[playerid][sEingeloggt] == 0) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du musst dich erst einloggen, um den Befehl zu benutzen!");
    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 zoneid = %d", zone);
    mysql_pquery(handle, query);
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast die Zone erfolgreich gelöscht.");
    }



    http://fs1.directupload.net/images/150530/gynw566d.png



    http://fs2.directupload.net/images/150530/arffibsb.png

    Hallo breadfish, (2 Probleme siehe weiter unten)


    wenn ich ingame eine Zone lösche, löscht sich nur die Zone in der ich mich gerade befinde. Nach einem Serverrestart sind alle Zonen weg. Die werden komischerweise alle mit der Zonenid 0 erstellt.


    ocmd:createflag(playerid, params[])
    {
    new query[500], Float:x, Float:y, Float:z;
    if(SpielerInfo[playerid][sEingeloggt] == 0) return SendClientMessage(playerid, COLOR_LIGHTGREY, "[Warnung]: Du musst dich erst einloggen, um den Befehl zu benutzen!");
    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(CZ[playerid][create] != 1) return SendClientMessage(playerid, COLOR_WHITE, "Um eine Gangzone zu erstellen, benutze '/createzone'!");
    CZ[playerid][zid] = M_GetPlayerZone(playerid);
    if(!M_IsPlayerInAnyZone(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner Gangzone!");
    if(CZ[playerid][zid] < 0) return SendClientMessage(playerid, COLOR_WHITE, "Du bist in keiner CZ!");
    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("{0099FF}[Gangfight]{FFFFFF}\nTippe {0099FF}/angriff{FFFFFF} um das Gebiet anzugreifen.\nTippe {0099FF}/flagge{FFFFFF} 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.");
    }


    Wenn ich eine Zone ingame erstelle, gehört sie noch keiner Gang an. Wenn ich die Zone dann angreife damit die Zone einer Gang angehört und einen Serverrestart mache, erstellt sich noch eine Zone die niemanden gehört und die Zone die der Gang angehört.


    public LoadGZ()
    {
    new rows, fields, string[128], string2[128], Counter = 0;
    cache_get_data(rows, fields);
    for(new i = 0; i < rows; i++)
    {
    GZ[i][zid] = i;
    GZ[i][owner] = cache_get_field_content_int(i, "owner", handle);
    GZ[i][max_x] = cache_get_field_content_float(i, "maxX", handle);
    GZ[i][max_y] = cache_get_field_content_float(i, "maxY", handle);
    GZ[i][min_x] = cache_get_field_content_float(i, "minX", handle);
    GZ[i][min_y] = cache_get_field_content_float(i, "minY", handle);
    GZ[i][flagge_x] = cache_get_field_content_float(i, "flaggeX", handle);
    GZ[i][flagge_y] = cache_get_field_content_float(i, "flaggeY", handle);
    GZ[i][flagge_z] = cache_get_field_content_float(i, "flaggeZ", handle);
    GZ[i][erstellt] = true;
    M_CreateZone(GZ[i][min_x], GZ[i][min_y], GZ[i][max_x], GZ[i][max_y], FrakColor(GZ[i][owner]), string, FrakColor(GZ[i][owner]));
    GZ[i][pickup] = CreatePickup(1314,1,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],0);
    GZ[i][label] = Create3DTextLabel("{0099FF}[Gangfight]{FFFFFF}\nTippe {0099FF}/angriff{FFFFFF} um das Gebiet anzugreifen.\nTippe {0099FF}/flagge{FFFFFF} um die Flagge zu erobern.", COLOR_WHITE, GZ[i][flagge_x], GZ[i][flagge_y], GZ[i][flagge_z], 20, 0);
    format(string2, sizeof(string2), "%i| Besitzer: '%s'", GZ[i][zid], FrakName(GZ[i][owner]));
    M_ZoneSetTextDraw(i, string2, FrakColor(GZ[i][owner]));
    Counter++;
    }
    return printf("(%d) Gangzone(n) wurde(n) erfolgreich erstellt und geladen.", Counter);
    }


    Mit freundlichen Grüßen
    Grapefruit

    Bin auf der suche nach einem Lied, was ich heute um ca 12.32 Uhr auf housetime.fm gehört habe.


    Im Lied singt eine Weibliche Person und dort kommt sowas vor wie z.B.


    - On the floor
    - take the past
    - dance dance dance
    - dance dance to the..... (hell?)


    Ich hoffe ihr könnt mir weiterhelfen, danke :)


    Mit freundlichen Grüßen
    Grapefruit

    Schönen Abend,


    ich wollte mal fragen ob jemand ein ausführliches Tutorial zum Rechtesystem kennt. Finde nichts gutes auf Youtube. Wäre euch dankbar, wenn ihr was für mich habt. :)


    Mit freundlichen Grüßen
    Grapefruit

    public LoadGZ()
    {
    new rows, fields, string[128], Counter = 0;
    cache_get_data(rows, fields);
    for(new i = 0; i < rows; i++)
    {
    GZ[i][zid] = i;
    GZ[i][owner] = cache_get_field_content_int(i, "owner", handle);
    GZ[i][max_x] = cache_get_field_content_float(i, "maxX", handle);
    GZ[i][max_y] = cache_get_field_content_float(i, "maxY", handle);
    GZ[i][min_x] = cache_get_field_content_float(i, "minX", handle);
    GZ[i][min_y] = cache_get_field_content_float(i, "minY", handle);
    GZ[i][flagge_x] = cache_get_field_content_float(i, "flaggeX", handle);
    GZ[i][flagge_y] = cache_get_field_content_float(i, "flaggeY", handle);
    GZ[i][flagge_z] = cache_get_field_content_float(i, "flaggeZ", handle);
    GZ[i][erstellt] = true;
    M_CreateZone(GZ[i][min_x], GZ[i][min_y], GZ[i][max_x], GZ[i][max_y], FrakColor(GZ[i][owner]), string, FrakColor(GZ[i][owner]));
    GZ[i][pickup] = CreatePickup(1314,1,GZ[i][flagge_x],GZ[i][flagge_y],GZ[i][flagge_z],0);
    GZ[i][label] = Create3DTextLabel("{0099FF}[Gangfight]{FFFFFF}\nTippe {0099FF}/angriff{FFFFFF} um das Gebiet anzugreifen.\nTippe {0099FF}/flagge{FFFFFF} um die Flagge zu erobern.", COLOR_WHITE, GZ[i][flagge_x], GZ[i][flagge_y], GZ[i][flagge_z], 20, 0);
    Counter++;
    }
    return printf("(%d) Gangzone(n) wurde(n) erfolgreich erstellt und geladen.", Counter);
    }

    Hallo,


    wenn ich ingame eine Gangzone erstelle, wird noch angezeigt wem die Zone gehört(Fraktion). Nach einem Serverneustart ist die Zone noch da, aber das Textdraw wird nicht mehr angezeigt. Er soll nur angezeigt warden wenn man in der Zone ist.


    format(string, sizeof(string), "%i| Besitzer: '%s'", GZ[zoneid][zid], FrakName(GZ[zoneid][owner]));
    M_ZoneSetTextDraw(zoneid, string, FrakColor(GZ[zoneid][owner]));


    stock M_ZoneSetTextDraw(zoneid,text[]="",textcolor=0xFFFFFFFF)
    {
    if(M_IsValidZone(zoneid))
    {
    if(text[0] != '\0')
    {
    ZoneInfo[zoneid][zTextDraw] = TextDrawCreate(600.0,380.0,text);
    TextDrawFont(ZoneInfo[zoneid][zTextDraw],1);
    TextDrawAlignment(ZoneInfo[zoneid][zTextDraw],3);
    TextDrawLetterSize(ZoneInfo[zoneid][zTextDraw],0.35,1.4);
    TextDrawSetShadow(ZoneInfo[zoneid][zTextDraw],0);
    TextDrawSetOutline(ZoneInfo[zoneid][zTextDraw],1);
    TextDrawColor(ZoneInfo[zoneid][zTextDraw],textcolor);
    TextDrawBackgroundColor(ZoneInfo[zoneid][zTextDraw],0x000000FF);
    }
    strmid(ZoneInfo[zoneid][zText],text,0,strlen(text),255);
    return 1;
    }
    return 0;
    }


    //edit


    public ShowZoneText()
    {
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    for(new zoneid=0; zoneid<MAX_ZONES; zoneid++)
    {
    if(M_IsValidZone(zoneid))
    {
    if(M_IsPlayerInZone(i,zoneid) && InZone[i][zoneid] == 0)
    {
    if(ZoneInfo[zoneid][zText][0] != '\0')
    {
    TextDrawShowForPlayer(i,ZoneInfo[zoneid][zTextDraw]);
    }
    InZone[i][zoneid] = 1;
    M_OnPlayerEnterZone(i,zoneid);
    }
    if(!M_IsPlayerInZone(i,zoneid) && InZone[i][zoneid] == 1)
    {
    if(ZoneInfo[zoneid][zText][0] != '\0')
    {
    TextDrawHideForPlayer(i,ZoneInfo[zoneid][zTextDraw]);
    }
    InZone[i][zoneid] = 0;
    M_OnPlayerLeaveZone(i,zoneid);
    }
    }
    }
    }
    }
    return 1;
    }


    Und das wird bei OnGameModeInit aufgerufen. Mit der Funktion:


    M_Init()
    {
    SetTimer("ShowZoneText",999,1);
    for(new zoneid=0; zoneid<MAX_ZONES; zoneid++)
    {
    ZoneInfo[zoneid][zGangZoneID] = -1;
    ZoneInfo[zoneid][zValid] = 0;
    ZoneInfo[zoneid][zMinX] = 0.0;
    ZoneInfo[zoneid][zMinY] = 0.0;
    ZoneInfo[zoneid][zMaxX] = 0.0;
    ZoneInfo[zoneid][zMaxY] = 0.0;
    strmid(ZoneInfo[zoneid][zText],"",0,100);
    }
    return 1;
    }


    Mit freundlichen Grüßen
    Grapefruit

    Schuldigung bin durcheinander gekommen :/


    [22:46:43] [DEBUG] mysql_errno - connection: 1
    [22:46:43] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM `gangfight` ORDER BY id ASC", callback: "LoadGZ", format: "(null)"
    [22:46:43] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [22:46:43] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [22:46:43] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [22:46:43] [DEBUG] CMySQLConnection::Connect - connection was successful
    [22:46:43] [DEBUG] CMySQLConnection::Connect - connection was successful
    [22:46:43] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [22:46:43] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [22:46:43] [DEBUG] CMySQLQuery::Execute[LoadGZ] - starting query execution
    [22:46:43] [DEBUG] CMySQLConnection::Connect - connection was successful
    [22:46:43] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [22:46:43] [DEBUG] CMySQLQuery::Execute[LoadGZ] - query was successfully executed within 0.345 milliseconds
    [22:46:43] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
    [22:46:43] [DEBUG] Calling callback "LoadGZ"..
    [22:46:43] [DEBUG] cache_get_data - connection: 1
    [22:46:43] [DEBUG] cache_get_field_content_int - row: 0, field_name: "owner", connection: 1
    [22:46:43] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "owner", data: "1"
    [22:46:43] [DEBUG] cache_get_field_content_float - row: 0, field_name: "maxX", connection: 1
    [22:46:43] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "maxX", data: "2064.98"
    [22:46:43] [DEBUG] cache_get_field_content_float - row: 0, field_name: "maxY", connection: 1
    [22:46:43] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "maxY", data: "1344.08"
    [22:46:43] [DEBUG] cache_get_field_content_float - row: 0, field_name: "minX", connection: 1
    [22:46:43] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "minX", data: "2025.21"
    [22:46:43] [DEBUG] cache_get_field_content_float - row: 0, field_name: "minY", connection: 1
    [22:46:43] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "minY", data: "1304.88"
    [22:46:43] [DEBUG] cache_get_field_content_float - row: 0, field_name: "flaggeX", connection: 1
    [22:46:43] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "flaggeX", data: "2051.65"
    [22:46:43] [DEBUG] cache_get_field_content_float - row: 0, field_name: "flaggeY", connection: 1
    [22:46:43] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "flaggeY", data: "1318.56"
    [22:46:43] [DEBUG] cache_get_field_content_float - row: 0, field_name: "flaggeZ", connection: 1
    [22:46:43] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "flaggeZ", data: "10.6719"
    [22:46:43] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
    [22:47:33] [DEBUG] mysql_escape_string - source: "TaigX", connection: 1, max_len: 24
    [22:47:33] [DEBUG] mysql_pquery - connection: 1, query: "SELECT * FROM Accounts WHERE Spielername='TaigX'", callback: "CheckUser", format: "i"
    [22:47:33] [DEBUG] CMySQLQuery::Execute[CheckUser] - starting query execution
    [22:47:33] [DEBUG] CMySQLQuery::Execute[CheckUser] - query was successfully executed within 0.429 milliseconds
    [22:47:33] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
    [22:47:33] [DEBUG] Calling callback "CheckUser"..
    [22:47:33] [DEBUG] cache_get_data - connection: 1
    [22:47:33] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
    [22:47:36] [DEBUG] mysql_escape_string - source: "TaigX", connection: 1, max_len: 24
    [22:47:36] [DEBUG] mysql_escape_string - source: "995756", connection: 1, max_len: 128
    [22:47:36] [DEBUG] mysql_pquery - connection: 1, query: "SELECT * FROM Accounts WHERE Spielername = 'TaigX' AND Passwort ", callback: "OnPasswordResponse", format: "i"
    [22:47:36] [DEBUG] CMySQLQuery::Execute[OnPasswordResponse] - starting query execution
    [22:47:36] [DEBUG] CMySQLQuery::Execute[OnPasswordResponse] - query was successfully executed within 0.319 milliseconds
    [22:47:36] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
    [22:47:36] [DEBUG] Calling callback "OnPasswordResponse"..
    [22:47:36] [DEBUG] cache_get_data - connection: 1
    [22:47:36] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Logout", connection: 1
    [22:47:36] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "Logout", data: "0"
    [22:47:36] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Geld", connection: 1
    [22:47:36] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "Geld", data: "0"
    [22:47:36] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Level", connection: 1
    [22:47:36] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "Level", data: "0"
    [22:47:36] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Adminlevel", connection: 1
    [22:47:36] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "Adminlevel", data: "3"
    [22:47:36] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Logout", connection: 1
    [22:47:36] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "Logout", data: "0"
    [22:47:36] [DEBUG] cache_get_field_content_int - row: 0, field_name: "Gang", connection: 1
    [22:47:36] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "Gang", data: "0"
    [22:47:36] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
    [22:47:56] [DEBUG] mysql_pquery - connection: 1, query: "DELETE FROM gangfight WHERE id=0", callback: "(null)", format: "(null)"
    [22:47:56] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [22:47:56] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 0.263 milliseconds
    [22:47:56] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving
    [22:47:58] [DEBUG] mysql_escape_string - source: "[NLG]TaigX", connection: 1, max_len: 24
    [22:47:58] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE Accounts SET Geld='0', Level='0', Adminlevel='3', Logout=", callback: "(null)", format: "(null)"
    [22:47:58] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [22:47:58] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 0.278 milliseconds
    [22:47:58] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving
    [22:48:29] [DEBUG] mysql_errno - connection: 1
    [22:48:29] [DEBUG] mysql_tquery - connection: 1, query: "SELECT * FROM `gangfight` ORDER BY id ASC", callback: "LoadGZ", format: "(null)"
    [22:48:29] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [22:48:29] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [22:48:29] [DEBUG] CMySQLConnection::Connect - establishing connection to database...
    [22:48:29] [DEBUG] CMySQLConnection::Connect - connection was successful
    [22:48:29] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [22:48:29] [DEBUG] CMySQLConnection::Connect - connection was successful
    [22:48:29] [DEBUG] CMySQLConnection::Connect - connection was successful
    [22:48:29] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [22:48:29] [DEBUG] CMySQLConnection::Connect - auto-reconnect has been enabled
    [22:48:29] [DEBUG] CMySQLQuery::Execute[LoadGZ] - starting query execution
    [22:48:29] [DEBUG] CMySQLQuery::Execute[LoadGZ] - query was successfully executed within 0.299 milliseconds
    [22:48:29] [DEBUG] CMySQLResult::CMySQLResult() - constructor called
    [22:48:29] [DEBUG] Calling callback "LoadGZ"..
    [22:48:29] [DEBUG] cache_get_data - connection: 1
    [22:48:29] [DEBUG] cache_get_field_content_int - row: 0, field_name: "owner", connection: 1
    [22:48:29] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "owner", data: "1"
    [22:48:29] [DEBUG] cache_get_field_content_float - row: 0, field_name: "maxX", connection: 1
    [22:48:29] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "maxX", data: "2064.98"
    [22:48:29] [DEBUG] cache_get_field_content_float - row: 0, field_name: "maxY", connection: 1
    [22:48:29] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "maxY", data: "1344.08"
    [22:48:29] [DEBUG] cache_get_field_content_float - row: 0, field_name: "minX", connection: 1
    [22:48:29] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "minX", data: "2025.21"
    [22:48:29] [DEBUG] cache_get_field_content_float - row: 0, field_name: "minY", connection: 1
    [22:48:29] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "minY", data: "1304.88"
    [22:48:29] [DEBUG] cache_get_field_content_float - row: 0, field_name: "flaggeX", connection: 1
    [22:48:29] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "flaggeX", data: "2051.65"
    [22:48:29] [DEBUG] cache_get_field_content_float - row: 0, field_name: "flaggeY", connection: 1
    [22:48:29] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "flaggeY", data: "1318.56"
    [22:48:29] [DEBUG] cache_get_field_content_float - row: 0, field_name: "flaggeZ", connection: 1
    [22:48:29] [DEBUG] CMySQLResult::GetRowDataByName - row: '0', field: "flaggeZ", data: "10.6719"
    [22:48:29] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called