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?
(e): Falls noch was benötigt wird, kann ich es auch noch schicken..