Rot sein sollte zwar immernoch Grün
Ist das Grün zufällig die Farbe der Fraktion in der Liste die vor oder nach der Grove steht?
Rot sein sollte zwar immernoch Grün
Ist das Grün zufällig die Farbe der Fraktion in der Liste die vor oder nach der Grove steht?
Ist das Grün zufällig die Farbe der Fraktion in der Liste die vor oder nach der Grove steht?
Nein, das Grün gehört zur Grove... siehe Liste (unten)
Hier
new fInfo[MAX_FRAKS][fraktEnum] = {
{"Zivilist", 0.0, 0.0, 0.0, 0.0, 0, 0, COLOR_WHITE},//Weiß
{"LSPD", 295.2865,-55.4151,2.7772,293.463, 0, 0, 0, COLOR_BLUE},//Blau
{"Terror", 0.0, 0.0, 0.0, 0.0, 0, 0, 1, 785318},//Bin mir nicht sicher :)
{"Grove Street", 0.0, 0.0, 0.0, 0.0, 0, 0, 1, 0x26FF68A4},//Grün
{"Varrios Los Aztecas", 0.0, 0.0, 0.0, 0.0, 0, 0, 1, 0x0069FFAF},//Hellblau
{"The Smoker Lounge", -295.8035,-2146.9890,28.5814,204.8678, 0, 0, 1, 0xFF0005AB},//Rot
{"MLG",0.0, 0.0, 0.0, 0.0, 0, 0, 1, 0xFF9600BB},//Orange
{"Oamt",757.9287,-1339.2076,13.5301,268.5271, 0, 0, 1, 0xFF9600BB},//Spielt keine Rolle
{"San News",0.0,0.0,0.0,0.0,0,0,1,0xFF8200FF},//Spielt keine Rolle
{"Rettungsdienst",0.0,0.0,0.0,0.0,0,0,1,0x37FF00FF},//Spielt keine Rolle
{"Los Santos Biker",757.9287,-1339.2076,13.5301,268.5271, 0, 0, 1, 0xFF9600BB}//Spielt keine Rolle
};
Alles anzeigen
Jetzt verstehe ich es aber nicht mehr.
Du sagtest, es ist Rot sollte aber Grün sein. Die Grove Street kann es aber angreifen (Grove = grün). Das widerspricht sich für mich.
Du sagtest, es ist Rot sollte aber Grün sein. Die Grove Street kann es aber angreifen (Grove = grün). Das widerspricht sich für mich.
Neee, umgekehrt also es sollte Rot sein aber es ist grün
Was wird dir so ausgegeben?
public GangZonesLoad(id)
{
new rows, field;
cache_get_data(rows, field);
if(!rows)return 1;
cache_get_row(0, 1, gwInfo[id][f_gebiet]);
printf("Gangzoneid: %i = %s",id,gwInfo[id][f_gebiet]);
gwInfo[id][besitzer] = cache_get_row_int(0, 2);
gwInfo[id][minx] = cache_get_row_float(0, 3);
gwInfo[id][miny] = cache_get_row_float(0, 4);
gwInfo[id][maxx] = cache_get_row_float(0, 5);
gwInfo[id][maxy] = cache_get_row_float(0, 6);
gwInfo[id][running] = cache_get_row_int(0, 9);
gwInfo[id][punkteAngreifer] = cache_get_row_int(0, 7);
gwInfo[id][punkteVerteidiger] = cache_get_row_int(0, 8);
gwInfo[id][angreifer] = cache_get_row_int(0, 13);
gwInfo[id][RemainingHour] = cache_get_row_int(0, 10);
gwInfo[id][RemainingMin] = cache_get_row_int(0, 11);
gwInfo[id][RemainingSec] = cache_get_row_int(0, 12);
printf("Besitzer des Gebiets %d ist: %d", id, gwInfo[id][besitzer]);
CreateGangZones(id);
return 1;
}
Welches Gebiet ist das Gebiet, mit der falschen Farbe?
Welches Gebiet ist das Gebiet, mit der falschen Farbe?
Ist bei mehreren Gangzones so das die Farben falsch angzeigt werden. (Achja... mir ist vorhin aufgefallen das ich in der Datenbank 16 Gangzones habe und geladen werden aber bloß 15...)
//Edit:
Mysql Datenbank:
Print: (Serverlog)
[20:19:44] Gangzoneid: 1 = Dillimore
[20:19:44] Besitzer des Gebiets 1 ist: 3
[20:19:44] Gangzoneid: 2 = Blueberry
[20:19:44] Besitzer des Gebiets 2 ist: 5
[20:19:44] Gangzoneid: 3 = Redsands
[20:19:44] Besitzer des Gebiets 3 ist: 4
[20:19:44] Gangzoneid: 4 = Prickle Pine
[20:19:44] Besitzer des Gebiets 4 ist: 5
[20:19:44] Gangzoneid: 5 = Las Barrancas
[20:19:44] Besitzer des Gebiets 5 ist: 4
[20:19:44] Gangzoneid: 6 = Country City
[20:19:44] Besitzer des Gebiets 6 ist: 3
[20:19:44] Gangzoneid: 7 = Las Payasadas
[20:19:44] Besitzer des Gebiets 7 ist: 4
[20:19:44] Gangzoneid: 8 = Ocan Flats
[20:19:44] Besitzer des Gebiets 8 ist: 4
[20:19:44] Gangzoneid: 9 = Doherty
[20:19:44] Besitzer des Gebiets 9 ist: 5
[20:19:44] Gangzoneid: 10 = Glen Park
[20:19:44] Besitzer des Gebiets 10 ist: 3
[20:19:44] Gangzoneid: 11 = East Beach
[20:19:44] Besitzer des Gebiets 11 ist: 5
[20:19:44] Gangzoneid: 12 = Willowfield
[20:19:44] Besitzer des Gebiets 12 ist: 3
[20:19:44] Gangzoneid: 13 = Fortcarson
[20:19:44] Besitzer des Gebiets 13 ist: 6
[20:19:44] Gangzoneid: 14 = Las Colinas
[20:19:44] Besitzer des Gebiets 14 ist: 6
[20:19:44] Gangzoneid: 15 = Downtown
[20:19:44] Besitzer des Gebiets 15 ist: 6
Alles anzeigen
Ich verstehe es nicht mehr der print gibt alles wieder wie in der Datenbank also muss ja der fehler bei einem der stocks liegen:
oder sehe ich das falsch?
stock CreateGangZones(id)
{
gangZone[id] = GangZoneCreate(gwInfo[id][minx],gwInfo[id][miny],gwInfo[id][maxx],gwInfo[id][maxy]);
gwInfo[id][Area] = Area_AddBox(gwInfo[id][minx],gwInfo[id][miny],gwInfo[id][maxx],gwInfo[id][maxy]);
UpdateGangZones(id);
return true;
}
stock UpdateGangZones(sid)
{
GangZoneHideForAll(sid);
GangZoneShowForAll(sid,fInfo[gwInfo[sid][besitzer]][f_color]);
if(gwInfo[sid][running]==1)
{
GangZoneFlashForAll(sid,fInfo[gwInfo[sid][angreifer]][f_color]);
}
return true;
}
Alles anzeigen
MfG
(Achja... mir ist vorhin aufgefallen das ich in der Datenbank 16 Gangzones habe und geladen werden aber bloß 15...)
Erhöhe die Anzahl der Gangzones im Array um eines, da du bei 1 anfängst, anstatt bei 0 (also 17 rein schreiben).
Zur Farbe:
Bei welcher Zonen-ID war die Farbe falsch? Welche Farbe hatte sie, und welche Farbe sollte sie haben?
Wenn es bei zwei oder mehreren so ist, dann nenne bitte alle, vielleicht lässt sich da ein Muster erkennen.
Erhöhe die Anzahl der Gangzones im Array um eines, da du bei 1 anfängst, anstatt bei 0 (also 17 rein schreiben).
Ich habe jetzt MAX_GANGZONES auf 17 gestellt, doch mir ist aufgefallen das die ersten Gangzone also Dillimore nie geladen wird bzw. ist sie auf der Map nicht sichtbar.
Zur Farbe:
Bei welcher Zonen-ID war die Farbe falsch? Welche Farbe hatte sie, und welche Farbe sollte sie haben?
Wenn es bei zwei oder mehreren so ist, dann nenne bitte alle, vielleicht lässt sich da ein Muster erkennen.
Gebietsname (Farbe eigentlich) = Farbe die sie gerade hat
Dillimore ( grün ) = nicht sichtbar
Blueberry ( rot ) = grün
Redsands ( blau ) = rot
Prickle Pine ( rot ) = blau
Las Barrancas ( blau ) = rot
Country City ( grün ) = blau
Las Payasadas ( blau ) = grün
Ocan Flats ( blau ) = blau
Doherty ( rot ) = blau
Glen Park ( grün ) = rot
East Beach ( rot ) = grün
Willowfield ( grün ) = rot
Fortcarson ( orange ) =grün
Las Colinas ( orange ) = orange
Downtown ( orange ) = orange
So wie ich das sehe verschiebt sich das ganze ja immer um eins... also wenn die Gangzone Dillimore geladen werden sollte müsste es ja der Fehler behoben sein oder? (Leider bekomme ich die Gangzones 1 nicht zum laden... bitte um Hilfe)
Nochmal alle Fraktionen die bei den Ganggebieten eine Rolle spielen:
Fraktid : 3 = Grove Street (Grün)
Fraktid : 4 = VLA (Blau)
Fraktid : 5 = The Smoker Lounge (Rot)
Fraktid : 6 = MLG (Orange)
Sehr gut, das war was ich meinte.fInfo[gwInfo[sid][besitzer]][f_color]zu:fInfo[gwInfo[sid][besitzer]+1][f_color]Dann dürfte es passen.
Dann dürfte es passen.
Erstmal ein Super großes Lob an dich Jeffry, das du mir hier hilfst Aber leider funktioniert es immer noch nicht, ich kann zwar in Dillimore ein Gangwar starten aber die Farben sind immer noch falsch. Auch Dillimore ist noch nicht sichtbar... Ich verstehe es selbst nicht mehr. Ich bin echt am verzweifeln.
Ich habe jetzt den Code dort eingefügt:
//passwort richtig
for(new i; i<sizeof(gangZone);i++)
{
GangZoneShowForPlayer(playerid,i,fInfo[gwInfo[i][besitzer]+1][f_color]);
}
stock UpdateGangZones(sid)
{
GangZoneHideForAll(sid);
GangZoneShowForAll(sid,fInfo[gwInfo[sid][besitzer]+1][f_color]);
if(gwInfo[sid][running]==1)
{
GangZoneFlashForAll(sid,fInfo[gwInfo[sid][angreifer]][f_color]);
}
return true;
}
Alles anzeigen
@Jeffry ist das so richtig?
Sorry, das was ich dir zuvor gesagt habe hat nicht gestimmt, das ist mir kurz danach dann auch eingefallen, da war ich aber schon auf dem Weg ins Restaurant, daher erst jetzt die Antwort.
Ich hatte das System von dir zuvor falsch interpretiert.
So sollte es richtig sein:
//passwort richtig
for(new i; i<sizeof(gangZone);i++)
{
GangZoneShowForPlayer(playerid,gangZone[i],fInfo[gwInfo[i][besitzer]][f_color]);
}
Sowie:
stock UpdateGangZones(id)
{
GangZoneHideForAll(gangZone[id]);
GangZoneShowForAll(gangZone[id],fInfo[gwInfo[id][besitzer]][f_color]);
if(gwInfo[id][running]==1)
{
GangZoneFlashForAll(gangZone[id],fInfo[gwInfo[id][angreifer]][f_color]);
}
return true;
}
Wie kann ich dir nur danken? Es klappt ENDLICH
Jetzt habe ich aber noch eine Frage
Undzwar...
Angenommen ich bin in der Fraktion Grove Street und ich möchte das Gebiet der VLA angreifen und jetzt möchte ich abfragen ob die VLA schon ein Gangwar führt wenn ja dann soll returnt werden. Aber wie mache ich das?
Upps habe mich falsch ausgedrückt... Ich meine angenommen ich bin in der Grove Street und ich führe bereits ein Gangwar und möchte ein zweites Gangwar starten, das soll natürlich nicht gehen, aber wie frage ich das ab?
ocmd:gw --> Pastebin
Super! Ein Klick auf den Daumen nach oben genügt voll aus als Wertschätzung.
Zu deiner Frage:
Das wird bereits abgefragt:
return SendClientMessage(playerid,COLOR_RED,"Deine Fraktion führt bereits einen Gangkrieg!");
Selbiges bei dem was du zuvor gefragt hast (paar Zeilen drunter).
//Edit: Problem 1 gelöst... sInfo[playerid][InWar] wurde nirgendwo gesetzt.
Problem 2/3 besteht weiterhin.
[Problem 2]: Die Zeit wird nicht richtig angzeigt (siehe Screen im Spoiler). Und sobald man das Ganggebiet verlässt bleibt die Zeit an der stelle stehen.
Verbleidende Zeit: 24:-1:51
(Wenn die Sekunden Zahl (also in diesem Fall die 51) auf 0 ist, geht die Minutenzahl hoch... also auf 2 .. aber sie sollte ja von 59 runterzählen)
Code ----> Pastebin
[Problem 3]: Gangzone flasht nicht, wenn man /gw eintippt.
Code ---> Pastebin
Wäre echt super wenn ihr mir dabei nochmal helfen könntet, da ich seit ein paar Tagen daraun arbeite... bisher leider ohne Erfolg.
MfG
Problem 2:
Die Zeit bleibt so stehen da der Textdraw nur aktualisiert wird, sobald der Spieler im Gebiet ist.
Schau dir den Code mal genauer an, dann siehst du das.
Problem 3:
Versuch mal meinen Code:
ocmd:gw(playerid)
{
new gangzone = IsPlayerInGangZone(playerid);
new string[101], string1[101], string2[101];//string3[101],string4[101],string5[101];
if(gangzone == -1) return SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Gangzone.");
if(fInfo[sInfo[playerid][fraktion]][gangfightable]==0)
{
if(sInfo[playerid][fraktion]==0)
{
SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Fraktion!");
return 0;
}
else
{
SendClientMessage(playerid,COLOR_RED,"Deine Fraktion kann keine Gangwars führen!");
return 0;
}
}
if(sInfo[playerid][rang] != 5)return SendClientMessage(playerid,COLOR_RED,"Nur der Leader einer Fraktion kann einen Gangwar starten!");
for(new i;i<sizeof(gwInfo);i++)
{
if(gwInfo[i][angreifer] == sInfo[playerid][fraktion]) return SendClientMessage(playerid,COLOR_RED,"Deine Fraktion führt bereits einen Gangkrieg!");
if(gwInfo[i][besitzer] == sInfo[playerid][fraktion]) return SendClientMessage(playerid,C_Gruen,"Dieses Gebiet gehört bereits deiner Fraktion.");
if(gwInfo[i][running] == 1)return SendClientMessage(playerid,COLOR_RED,"Es läuft bereits ein Gangwar in diesem Gebiet!");
if(gwInfo[gwInfo[i][besitzer]][angreifer] > 0) return SendClientMessage(playerid,COLOR_RED,"Der Besitzer dieses Gebietes führt bereits einen Gang-Krieg.");
gwInfo[i][angreifer] = sInfo[playerid][fraktion];
SetTimerEx("GangFight",1000,0,"i",i);
gwInfo[i][remainingTime] = 86400000;
gwInfo[i][running] = 1;
GangZoneFlashForAll(i,fInfo[gwInfo[gangzone][sInfo[playerid][fraktion]]][f_color]);
for(new pl; pl<MAX_PLAYERS;pl++)
{
if(sInfo[pl][fraktion] == gwInfo[i][besitzer])
{
SendClientMessage(pl,COLOR_RED,"Eines deiner Gebiete wird angegriffen!");
format(string,sizeof(string),"~g~Kampf um %s",gwInfo[i][f_gebiet]);
PlayerTextDrawSetString(pl,GangTD[i][GebietName],string);
format(string1,sizeof(string1),"%s",fInfo[gwInfo[i][besitzer]][f_name]);
PlayerTextDrawSetString(pl,GangTD[pl][Fraktion1],string1);
format(string1,sizeof(string1),"%d",gwInfo[i][punkteVerteidiger]);
PlayerTextDrawSetString(pl,GangTD[pl][PunkteFraktion1],string1);
format(string2,sizeof(string2),"%s",fInfo[gwInfo[i][angreifer]][f_name]);
PlayerTextDrawSetString(pl,GangTD[pl][Fraktion2],string2);
format(string2,sizeof(string2),"%d",gwInfo[i][punkteAngreifer]);
PlayerTextDrawSetString(pl,GangTD[pl][PunkteFraktion2],string2);
PlayerTextDrawShow(pl,GangTD[pl][Box]);
PlayerTextDrawShow(pl,GangTD[pl][Fraktion1]);
PlayerTextDrawShow(pl,GangTD[pl][Fraktion2]);
PlayerTextDrawShow(pl,GangTD[pl][PunkteFraktion1]);
PlayerTextDrawShow(pl,GangTD[pl][PunkteFraktion2]);
PlayerTextDrawShow(pl,GangTD[pl][Zeit]);
PlayerTextDrawShow(pl,GangTD[pl][GebietName]);
PlayerTextDrawShow(pl,GangTD[pl][Abstandhalter1]);
PlayerTextDrawShow(pl,GangTD[pl][Abstandhalter2]);
}
else if(sInfo[pl][fraktion] == gwInfo[i][angreifer])
{
SendClientMessage(pl,C_Gruen,"Deine Fraktion greift ein Gebiet an!");
format(string,sizeof(string),"~g~Kampf um %s",gwInfo[i][f_gebiet]);
PlayerTextDrawSetString(pl,GangTD[pl][GebietName],string);
format(string1,sizeof(string1),"%s",fInfo[gwInfo[i][besitzer]][f_name]);
PlayerTextDrawSetString(pl,GangTD[pl][Fraktion1],string1);
format(string1,sizeof(string1),"%d",gwInfo[i][punkteVerteidiger]);
PlayerTextDrawSetString(pl,GangTD[pl][PunkteFraktion1],string1);
format(string2,sizeof(string2),"%s",fInfo[gwInfo[i][angreifer]][f_name]);
PlayerTextDrawSetString(pl,GangTD[pl][Fraktion2],string2);
format(string2,sizeof(string2),"%d",gwInfo[i][punkteAngreifer]);
PlayerTextDrawSetString(pl,GangTD[pl][PunkteFraktion2],string2);
PlayerTextDrawShow(pl,GangTD[pl][Box]);
PlayerTextDrawShow(pl,GangTD[pl][Fraktion1]);
PlayerTextDrawShow(pl,GangTD[pl][Fraktion2]);
PlayerTextDrawShow(pl,GangTD[pl][PunkteFraktion1]);
PlayerTextDrawShow(pl,GangTD[pl][PunkteFraktion2]);
PlayerTextDrawShow(pl,GangTD[pl][Zeit]);
PlayerTextDrawShow(pl,GangTD[pl][GebietName]);
PlayerTextDrawShow(pl,GangTD[pl][Abstandhalter1]);
PlayerTextDrawShow(pl,GangTD[pl][Abstandhalter2]);
}
}
}
return 1;
}
Problem 2:
Die Zeit bleibt so stehen da der Textdraw nur aktualisiert wird, sobald der Spieler im Gebiet ist.
Schau dir den Code mal genauer an, dann siehst du das.
Ja, das habe ich gestern schon entfernt Hab nur das vergessen oben das ganze zu editieren.
Aber die Uhr funktioniert immer noch nicht richtig.
Und zu Problem 3:
warning 213: tag mismatch
GangZoneFlashForAll(i,fInfo[gwInfo[i][angreifer]][f_color]);
Funktioniert leider immer noch nicht.
Erstmal zu Problem 3:
Im originalen Befehl:
GangZoneFlashForAll(gangzone,fInfo[gwInfo[gangzone][angreifer]][f_color]);
zu:
GangZoneFlashForAll(gangZone[gangzone],fInfo[gwInfo[gangzone][angreifer]][f_color]);
Danke Jeffry Klappt jetzt auch.
Jetzt habe ich nur noch das Problem mit der Zeit das diese falsch angezeigt wird.