Erneute Hilfe ^^

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Abend / Guten Moin zusammen,


    Ich komm gleich zur Sache, in der MySQL Datenbank meines Servers, sind die Gangzonen ganz normal eingetragen: (siehe Bild)



    Die publics im Gamemode:
    public LoadZones()
    {
    new query[265],string[64],szReturn[12],idx;
    while (idx < sizeof(Gebiete))
    {
    format(query,sizeof(query),"SELECT `besitzer` FROM `gangzones` WHERE `gzid`='%i'",idx);
    mysql_query(query);
    mysql_store_result();
    Gebiete[idx][gOwner] = mysql_fetch_int();
    mysql_free_result();
    format(query,sizeof(query),"SELECT `minx` FROM `gangzones` WHERE `gzid`='%i'",idx);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(szReturn);
    mysql_free_result();
    Gebiete[idx][gMinX] = floatstr(szReturn);
    format(query,sizeof(query),"SELECT `miny` FROM `gangzones` WHERE `gzid`='%i'",idx);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(szReturn);
    mysql_free_result();
    Gebiete[idx][gMinY] = floatstr(szReturn);
    format(query,sizeof(query),"SELECT `maxx` FROM `gangzones` WHERE `gzid`='%i'",idx);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(szReturn);
    mysql_free_result();
    Gebiete[idx][gMaxX] = floatstr(szReturn);
    format(query,sizeof(query),"SELECT `maxy` FROM `gangzones` WHERE `gzid`='%i'",idx);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(szReturn);
    mysql_free_result();
    Gebiete[idx][gMaxY] = floatstr(szReturn);
    Gebiet[idx] = M_CreateZone(Gebiete[idx][gMinX],Gebiete[idx][gMinY],Gebiete[idx][gMaxX],Gebiete[idx][gMaxY],0xFFFFFFAA," ",COLOR_WHITE); // Hier wird eine Zone erstellt die in der Variable Gebiet gespeichert wird !
    format(string,sizeof(string),"Zone: %i | %i | %f | %f | %f | %f",idx,Gebiete[idx][gOwner],Gebiete[idx][gMinX],Gebiete[idx][gMinY],Gebiete[idx][gMaxX],Gebiete[idx][gMaxY]);
    print(string);
    idx++;
    }
    return 1;
    }
    public SaveZones()
    {
    new idx,query[256];
    while (idx < sizeof(Gebiete))
    {
    format(query,sizeof(query),"UPDATE `gangzones` SET `besitzer`='%i', `minx`='%f', `miny`='%f', `maxx`='%f', `maxy`='%f' WHERE `gzid`='%i'",Gebiete[idx][gOwner],Gebiete[idx][gMinX],Gebiete[idx][gMinY],Gebiete[idx][gMaxX],Gebiete[idx][gMaxY],idx);
    mysql_query(query);
    idx++;
    }
    mysql_free_result();
    return 1;
    }


    public UpdateZones()
    {
    for(new player; player < MAX_PLAYERS; player++)
    {
    for(new i; i<sizeof(Gebiete); i++)
    {
    GangZoneHideForPlayer(player,Gebiet[i]);
    new color;
    if(Gebiete[i][gOwner] == 999){color=COLOR_WHITE;}
    if(Gebiete[i][gOwner] == 5){color=COLOR_GREY;}
    if(Gebiete[i][gOwner] == 6){color=COLOR_WHITE;}
    if(Gebiete[i][gOwner] == 12){color=TEAM_GROVE_COLOR;}
    if(Gebiete[i][gOwner] == 13){color=TEAM_BALLAS_COLOR;}
    if(Gebiete[i][gOwner] == 14){color=TEAM_VAGOS_COLOR;}
    if(Gebiete[i][gOwner] == 15){color=COLOR_RED;}
    if(Gebiete[i][gOwner] == 16){color=COLOR_BLUE;}
    if(Gebiete[i][gOwner] == 17){color=COLOR_PURPLE;}
    if(Gebiete[i][gOwner] == 20){color=COLOR_LIGHTBLUE;}
    if(Gebiete[i][gOwner] == 21){color=COLOR_YELLOW2;}
    GangZoneShowForPlayer(player, Gebiet[i], color);
    if(Gebiete[i][gOn] == 1)
    {
    if(Gebiete[i][gAngreifer] == 999){color=COLOR_WHITE;}
    if(Gebiete[i][gAngreifer] == 5){color=COLOR_GREY;}
    if(Gebiete[i][gAngreifer] == 6){color=COLOR_WHITE;}
    if(Gebiete[i][gAngreifer] == 12){color=TEAM_GROVE_COLOR;}
    if(Gebiete[i][gAngreifer] == 13){color=TEAM_BALLAS_COLOR;}
    if(Gebiete[i][gAngreifer] == 14){color=TEAM_VAGOS_COLOR;}
    if(Gebiete[i][gAngreifer] == 15){color=COLOR_RED;}
    if(Gebiete[i][gAngreifer] == 16){color=COLOR_BLUE;}
    if(Gebiete[i][gAngreifer] == 17){color=COLOR_PURPLE;}
    if(Gebiete[i][gAngreifer] == 20){color=COLOR_LIGHTBLUE;}
    if(Gebiete[i][gAngreifer] == 21){color=COLOR_YELLOW2;}
    GangZoneFlashForPlayer(player,Gebiet[i],color);
    }
    }
    }
    return 1;
    }
    pub


    Jetzt noch der Befehl:
    if(strcmp(cmd,"/gw",true) == 0)
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /gw [start/info]");
    return 1;
    }
    if(strcmp(tmp,"start",true) == 0)
    {
    if(SpielerInfo[playerid][sMember] == 5 || SpielerInfo[playerid][sMember] == 6 || (SpielerInfo[playerid][sMember] >= 12 && SpielerInfo[playerid][sMember] <= 17) || SpielerInfo[playerid][sMember] == 20 || SpielerInfo[playerid][sMember] == 21)//Hier wird abefragt welche Fraktion einen Gangfight starten darf
    {
    if(SpielerInfo[playerid][pRank] < 12) return SendClientMessage(playerid, COLOR_GREY, "Gangwar ab Rang 12 startbar!");
    // GangwarGerade
    //MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
    new Hour,Minute,Sec;
    gettime(Hour,Minute,Sec);
    if(Hour > 1 && Hour < 21)
    {
    if(M_GetPlayerCurrentZone(playerid) > -1)//Ob der Spieler in einem Gebiet ist.
    {
    if(GangwarGerade[SpielerInfo[playerid][sMember]] == true) return SendClientMessage(playerid, COLOR_GREY, "Deine Fraktion veranstaltet gerade ein Gangwar!");
    new gzone = M_GetPlayerCurrentZone(playerid);//Die Gebietsid wird in der Variable zone gespeichert.
    if(Gebiete[gzone][gOn] == 1) return SendClientMessage(playerid,COLOR_BLUE,"Das Gebiet wird schon Umkämpft!");//Hier wird abgefragt ob das Gebiet schon bekämpft wird
    if(Gebiete[gzone][gOwner] == SpielerInfo[playerid][sMember]) return SendClientMessage(playerid,COLOR_BLUE," Deine Fraktion ist im Besitzt dieses Gebietes");//Hier wird abgefragt ob die Fraktion schon im besitzt dieser Funktion ist
    Gebiete[gzone][gAngreifer] = SpielerInfo[playerid][sMember];//Hier wird der Angreifer gesetzt.
    Gebiete[gzone][gOn] = 1;//Das der Gangfight für dieses Gebiet läuft
    SetTimerEx("GangFight",1800000,0,"i",gzone); // 1800000 Dies startet einen Timer der eine Stunde läuft , damit beenden wir den Gangifght. Die Zoneid wird mit übergeben
    format(string,sizeof(string),"=============== [ Gangwar in der Zone %i ] ===============",gzone);
    SendClientMessageToAll(COLOR_LIGHTBLUE,string);
    if(Gebiete[gzone][gOwner] == 999) {
    format(string,sizeof(string),"Angreifer: %s Verteidiger: Niemand",Fracs[Gebiete[gzone][gAngreifer]-1]);
    } else {
    format(string,sizeof(string),"Angreifer: %s Verteidiger: %s",Fracs[Gebiete[gzone][gAngreifer]-1],Fracs[Gebiete[gzone][gOwner]-1]);
    }
    GangwarGerade[Gebiete[gzone][gAngreifer]] = true;
    GangwarGerade[Gebiete[gzone][gOwner]] = true;
    SendClientMessageToAll(COLOR_LIGHTBLUE,string);
    Gebiete[gzone][gStand2] ++;
    Gebiete[gzone][gStand1] ++;
    for(new i; i<MAX_PLAYERS; i++)//Damit jeder Spieler abgefragt wird
    {
    if(SpielerInfo[i][sMember] == Gebiete[gzone][gOwner])//Ob spieler oder Leader in dieser Fraktion ist
    {
    SendClientMessage(i,COLOR_RED,"Eines ihrer Gebiete wird angegriffen.");//Sendet eine Mitteilung
    }
    if(SpielerInfo[i][sMember] == Gebiete[gzone][gAngreifer])//siehe oben
    {
    SendClientMessage(i,COLOR_RED,"Dein Leader hat ein Gangwar gestartet!");
    SendClientMessage(i,COLOR_RED,"Ihr bekommt dafür den ersten Punkt.");
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Gangwars nur in der Zeit von 16Uhr bis 21Uhr.");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Gangwars dürfen nur die Gangs oder Mafien machen!");
    }
    }


    wenn ich jetzt Ingame in einer Fraktion bin und fahre zu einen der Gangwar Gebiete und gebe anschließend /gw start ein, passiert rein garnichts ...
    Die Zonen werden auch nicht auf der Map angezeigt also passiert rein garnichts ...


    Bin jetzt gerade seit ca. schon 1 Stunde an diesen Fehler dran, habe ihn bis jetzt einfach nicht gefunden, habt ihr eine Idee? :love:


    (e): Falls noch was benötigt wird, kann ich es auch noch schicken.. ;)

    Einmal editiert, zuletzt von ReborN ()

  • enum gebiet//Dies leitet eine genauere Beschreibung für einen Array ein.
    {
    gOwner,
    Float:gMinX,
    Float:gMinY,
    Float:gMaxX,
    Float:gMaxY,
    gOn,
    gStand1,
    gStand2,
    gAngreifer,
    gAWar[MAX_FRACS],
    gOWar[MAX_FRACS],
    gTimer,
    };

  • Erstmal die Update Abfrage,
    danach kommt das mit print :P
    Bin grad noch was machen am Script ..
    forward UpdateZones();
    public UpdateZones()
    {
    for(new player; player < MAX_PLAYERS; player++)
    {
    for(new i; i<sizeof(Gebiete); i++)
    {
    GangZoneHideForPlayer(player,Gebiet[i]);
    new color;
    if(Gebiete[i][gOwner] == 999){color=COLOR_WHITE;}
    if(Gebiete[i][gOwner] == 5){color=COLOR_GREY;}
    if(Gebiete[i][gOwner] == 6){color=COLOR_WHITE;}
    if(Gebiete[i][gOwner] == 12){color=TEAM_GROVE_COLOR;}
    if(Gebiete[i][gOwner] == 13){color=TEAM_BALLAS_COLOR;}
    if(Gebiete[i][gOwner] == 14){color=TEAM_VAGOS_COLOR;}
    if(Gebiete[i][gOwner] == 15){color=COLOR_RED;}
    if(Gebiete[i][gOwner] == 16){color=COLOR_BLUE;}
    if(Gebiete[i][gOwner] == 17){color=COLOR_PURPLE;}
    if(Gebiete[i][gOwner] == 20){color=COLOR_LIGHTBLUE;}
    if(Gebiete[i][gOwner] == 21){color=COLOR_YELLOW2;}
    GangZoneShowForPlayer(player, Gebiet[i], color);
    if(Gebiete[i][gOn] == 1)
    {
    if(Gebiete[i][gAngreifer] == 999){color=COLOR_WHITE;}
    if(Gebiete[i][gAngreifer] == 5){color=COLOR_GREY;}
    if(Gebiete[i][gAngreifer] == 6){color=COLOR_WHITE;}
    if(Gebiete[i][gAngreifer] == 12){color=TEAM_GROVE_COLOR;}
    if(Gebiete[i][gAngreifer] == 13){color=TEAM_BALLAS_COLOR;}
    if(Gebiete[i][gAngreifer] == 14){color=TEAM_VAGOS_COLOR;}
    if(Gebiete[i][gAngreifer] == 15){color=COLOR_RED;}
    if(Gebiete[i][gAngreifer] == 16){color=COLOR_BLUE;}
    if(Gebiete[i][gAngreifer] == 17){color=COLOR_PURPLE;}
    if(Gebiete[i][gAngreifer] == 20){color=COLOR_LIGHTBLUE;}
    if(Gebiete[i][gAngreifer] == 21){color=COLOR_YELLOW2;}
    GangZoneFlashForPlayer(player,Gebiet[i],color);
    }
    }
    }
    return 1;
    }

    Einmal editiert, zuletzt von ReborN ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wenn ich schon dein aufbau von den Laden sehe könnte ich das Kotzen kriegen um es wörtlich zu sagen
    Ich habe es dir mal so gemacht, da ich es nur mit 1 Query mache und nicht mit so vielen wie du da hast
    public LoadZones()
    {
    new query[265],string[64],szReturn[12],idx;
    while (idx < sizeof(Gebiete))
    {
    format(query,sizeof(query),"SELECT * FROM `gangzones` WHERE `gzid`='%i'",idx);
    mysql_query(query);
    mysql_store_result();
    if(!mysql_num_rows())mysql_free_result();
    if(mysql_retrieve_row())
    {
    mysql_fetch_field_row(string,"besitzer");
    format(Gebiete[idx][gOwner],64,"%s",string);
    mysql_fetch_field_row(string,"minx");
    Gebiete[idx][gMinX] = floatstr(string);
    mysql_fetch_field_row(string,"miny");
    Gebiete[idx][gMinY] = floatstr(string);
    mysql_fetch_field_row(string,"maxx");
    Gebiete[idx][gMaxX] = floatstr(string);
    mysql_fetch_field_row(string,"maxy");
    Gebiete[idx][gMaxY] = floatstr(string);
    }
    mysql_free_result();
    Gebiet[idx] = M_CreateZone(Gebiete[idx][gMinX],Gebiete[idx][gMinY],Gebiete[idx][gMaxX],Gebiete[idx][gMaxY],0xFFFFFFAA," ",COLOR_WHITE); // Hier wird eine Zone erstellt die in der Variable Gebiet gespeichert wird !
    format(string,sizeof(string),"Zone: %i | %i | %f | %f | %f | %f",idx,Gebiete[idx][gOwner],Gebiete[idx][gMinX],Gebiete[idx][gMinY],Gebiete[idx][gMaxX],Gebiete[idx][gMaxY]);
    print(string);
    idx++;
    }
    return 1;
    }
    Teste mal den und sag mir ob sich was getan hat

    All in all it's just another brick in the wall

  • for(new i; i<sizeof(Gebiete); i++)//Damit alle gebiete durchlaufen werden
    {
    new color;//Erstellt eine neue Variable
    if(Gebiete[i][gOwner] == 999){color=COLOR_WHITE;}
    if(Gebiete[i][gOwner] == 5){color=COLOR_GREY;}
    if(Gebiete[i][gOwner] == 6){color=COLOR_WHITE;}
    if(Gebiete[i][gOwner] == 12){color=TEAM_GROVE_COLOR;}
    if(Gebiete[i][gOwner] == 13){color=TEAM_BALLAS_COLOR;}
    if(Gebiete[i][gOwner] == 14){color=TEAM_VAGOS_COLOR;}
    if(Gebiete[i][gOwner] == 15){color=COLOR_RED;}
    if(Gebiete[i][gOwner] == 16){color=COLOR_BLUE;}
    if(Gebiete[i][gOwner] == 17){color=COLOR_PURPLE;}
    if(Gebiete[i][gOwner] == 20){color=COLOR_LIGHTBLUE;}
    if(Gebiete[i][gOwner] == 21){color=COLOR_YELLOW2;}
    GangZoneShowForPlayer(playerid, Gebiet[i], color);


    Ist unter dem Public OnPlayerSpawn, also ist drin