ja hallo Liebe user
ich habe ein problem meine gangzonen werden nicht gespeicher nach dem server
restart könnte mir vllt jemand helfen ich wurde mich für die hilfe fruen
Gangzonen
- GinJon
- Geschlossen
- Erledigt
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
-
-
Wie gespeichert?
Die werden doch erst beim GameModeInit() erstellt?
Und wenn du sie während dem Ablauf des Modes veränderst, musst du sie natürlich irgendwo in einer Datei / Datenbank speichern und beim Init daraus wieder laden. -
also das problem ist wenn ich server restar mach werden nicht gespeicher
Weis du warum -
Du musst die gangzonen auch in dein script packen...
-
Du musst die gangzonen auch in dein script packen...
Im Script wird er sie doch haben..
Poste mal dein OnGameModeInit(). -
public Fight_Close(){
KillTimer(FightTimer[0]);
KillTimer(FightTimer[1]);
if(fexist("Fightzones.cfg")) fremove("Fightzones.cfg");
new File:fFile=fopen("Fightzones.cfg",io_append),Content[64];
for(new fs;fs<sizeof(FightSystem);fs++){
if(FightSystem[fs][fsAttackFaction] != -255 && FightSystem[fs][fsFightTime]){
GangZoneStopFlashForAll(FightSystem[fs][fsZoneID]);
for(new i;i<MAX_PLAYERS;i++){
if(IsPlayerConnected(i)){
if(GetPlayerFaction(i) == FightSystem[fs][fsOwnerFaction] GetPlayerFaction(i) == FightSystem[fs][fsAttackFaction]){
TextDrawHideForPlayer(i,Fight);
TextDrawHideForPlayer(i,FightUnderline);
TextDrawHideForPlayer(i,FightSystem[fs][fsWinFaction]);
TextDrawHideForPlayer(i,FightSystem[fs][fsLoseFaction]);
TextDrawHideForPlayer(i,FightSystem[fs][fsWinKills]);
TextDrawHideForPlayer(i,FightSystem[fs][fsLoseKills]);
TextDrawHideForPlayer(i,FightSystem[fs][fsTime]);
}
}
}
}
TextDrawDestroy(FightSystem[fs][fsWinFaction]);
TextDrawDestroy(FightSystem[fs][fsLoseFaction]);
TextDrawDestroy(FightSystem[fs][fsWinKills]);
TextDrawDestroy(FightSystem[fs][fsLoseKills]);
TextDrawDestroy(FightSystem[fs][fsTime]);
GangZoneHideForAll(FightSystem[fs][fsZoneID]);
GangZoneDestroy(FightSystem[fs][fsZoneID]);
DestroyPickup(FightSystem[fs][fsFlag]);
format(Content,sizeof(Content),"%d %d %d %d %d\r\n",FightSystem[fs][fsOwnerFaction],FightSystem[fs][fsAttackFaction],FightSystem[fs][fsKillsOfOwner],FightSystem[fs][fsKillsOfAttack],FightSystem[fs][fsFightTime]);
fwrite(fFile,Content);
}
fclose(fFile);
TextDrawDestroy(Fight);
TextDrawDestroy(FightUnderline);
return 1;
} -
Fight_Close() ist aber nicht die OnGameModeInit() -_-.
-
brauchs du fight_update
oder welches -
OnGameModeInit()!
-
Ich habe nicht auf gamemode int
public Fight_Init(){
Fight = TextDrawCreate(88.000000,244.000000,"Fight:~n~_~n~_~n~_~n~_~n~_");
TextDrawUseBox(Fight,1);
TextDrawBoxColor(Fight,0x00000066);
TextDrawTextSize(Fight,102.000000,124.000000);
TextDrawAlignment(Fight,2);
TextDrawBackgroundColor(Fight,0xff000033);
TextDrawFont(Fight,2);
TextDrawLetterSize(Fight,0.499999,1.000000);
TextDrawColor(Fight,0xffffffff);
TextDrawSetOutline(Fight,1);
TextDrawSetProportional(Fight,1);
FightUnderline = TextDrawCreate(91.000000,274.000000,".");
TextDrawAlignment(FightUnderline,2);
TextDrawBackgroundColor(FightUnderline,0x000000ff);
TextDrawFont(FightUnderline,3);
TextDrawLetterSize(FightUnderline,14.799997,1.000000);
TextDrawColor(FightUnderline,0xffffffff);
TextDrawSetProportional(FightUnderline,1);
TextDrawSetShadow(FightUnderline,1);
if(!fexist("Fightzones.cfg")){
new File:fFile=fopen("Fightzones.cfg",io_write);
for(new fs;fs fwrite(fFile,"14 -255 0 0 0\r\n");
fclose(fFile);
}
new File:fFile=fopen("Fightzones.cfg",io_read),Content[64],fs;
while(fread(fFile,Content) && fs < sizeof(FightSystem)){
FightSystem[fs][fsWinFaction] = TextDrawCreate(26.000000,256.000000," ");
TextDrawSetProportional(FightSystem[fs][fsWinFaction],1);
TextDrawAlignment(FightSystem[fs][fsWinFaction],0);
TextDrawBackgroundColor(FightSystem[fs][fsWinFaction],0x000000ff);
TextDrawFont(FightSystem[fs][fsWinFaction],2);
TextDrawLetterSize(FightSystem[fs][fsWinFaction],0.199999,1.000000);
TextDrawColor(FightSystem[fs][fsWinFaction],0xffffffff);
TextDrawSetOutline(FightSystem[fs][fsWinFaction],1);
FightSystem[fs][fsLoseFaction] = TextDrawCreate(26.000000,267.000000," ");
TextDrawSetProportional(FightSystem[fs][fsLoseFaction],1);
TextDrawSetOutline(FightSystem[fs][fsLoseFaction],1);
TextDrawColor(FightSystem[fs][fsLoseFaction],0xffffffff);
TextDrawFont(FightSystem[fs][fsLoseFaction],2);
TextDrawLetterSize(FightSystem[fs][fsLoseFaction],0.199999,0.899999);
TextDrawBackgroundColor(FightSystem[fs][fsLoseFaction],0x000000ff);
TextDrawAlignment(FightSystem[fs][fsLoseFaction],0);
FightSystem[fs][fsWinKills] = TextDrawCreate(107.000000,256.000000," ");
TextDrawSetProportional(FightSystem[fs][fsWinKills],1);
TextDrawSetOutline(FightSystem[fs][fsWinKills],1);
TextDrawColor(FightSystem[fs][fsWinKills],0xffffffff);
TextDrawSetShadow(FightSystem[fs][fsWinKills],1);
TextDrawFont(FightSystem[fs][fsWinKills],2);
TextDrawLetterSize(FightSystem[fs][fsWinKills],0.199999,1.000000);
TextDrawBackgroundColor(FightSystem[fs][fsWinKills],0x000000ff);
TextDrawAlignment(FightSystem[fs][fsWinKills],0);
FightSystem[fs][fsLoseKills] = TextDrawCreate(107.000000,267.000000," ");
TextDrawSetProportional(FightSystem[fs][fsLoseKills],1);
TextDrawSetShadow(FightSystem[fs][fsLoseKills],1);
TextDrawSetOutline(FightSystem[fs][fsLoseKills],1);
TextDrawColor(FightSystem[fs][fsLoseKills],0xffffffff);
TextDrawFont(FightSystem[fs][fsLoseKills],2);
TextDrawLetterSize(FightSystem[fs][fsLoseKills],0.199999,1.000000);
TextDrawBackgroundColor(FightSystem[fs][fsLoseKills],0x000000ff);
TextDrawAlignment(FightSystem[fs][fsLoseKills],0);
FightSystem[fs][fsTime] = TextDrawCreate(26.000000,286.000000," ");
TextDrawColor(FightSystem[fs][fsTime],0xffffffff);
TextDrawAlignment(FightSystem[fs][fsTime],0);
TextDrawBackgroundColor(FightSystem[fs][fsTime],0x000000ff);
TextDrawFont(FightSystem[fs][fsTime],2);
TextDrawLetterSize(FightSystem[fs][fsTime],0.199999,0.899999);
TextDrawSetProportional(FightSystem[fs][fsTime],1);
StripNewLine(Content);
sscanf(Content,"ddddd",FightSystem[fs][fsOwnerFaction],FightSystem[fs][fsAttackFaction],FightSystem[fs][fsKillsOfOwner],FightSystem[fs][fsKillsOfAttack],FightSystem[fs][fsFightTime]);
FightSystem[fs][fsCTF][0] = -255;
FightSystem[fs][fsCTF][1] = 0;
FightSystem[fs][fsCTF][2] = 0;
FightSystem[fs][fsLastFight] = 0;
FightSystem[fs][fsZoneID] = GangZoneCreate(FightSystem[fs][fsMinX],FightSystem[fs][fsMinY],FightSystem[fs][fsMaxX],FightSystem[fs][fsMaxY]);
FightSystem[fs][fsFlag] = CreatePickup(1314,1,FightSystem[fs][fsCTFx],FightSystem[fs][fsCTFy],FightSystem[fs][fsCTFz],-1);
if(FightSystem[fs][fsFightTime] && FightSystem[fs][fsAttackFaction] != -255){
new fsText[64];
format(fsText,sizeof(fsText),"Verbl. Zeit: %d Minuten",FightSystem[fs][fsFightTime]);
TextDrawSetString(FightSystem[fs][fsTime],fsText);
if(FightSystem[fs][fsKillsOfOwner] > FightSystem[fs][fsKillsOfAttack]){
format(fsText,sizeof(fsText),"~g~%s",GetFactionNameOfFaction(FightSystem[fs][fsOwnerFaction]));
TextDrawSetString(FightSystem[fs][fsWinFaction],fsText);
format(fsText,sizeof(fsText),"~g~%d Kills",FightSystem[fs][fsKillsOfOwner]);
TextDrawSetString(FightSystem[fs][fsWinKills],fsText);
format(fsText,sizeof(fsText),"~r~%s",GetFactionNameOfFaction(FightSystem[fs][fsAttackFaction]));
TextDrawSetString(FightSystem[fs][fsLoseFaction],fsText);
format(fsText,sizeof(fsText),"~r~%d Kills",FightSystem[fs][fsKillsOfAttack]);
TextDrawSetString(FightSystem[fs][fsLoseKills],fsText);
}
else if(FightSystem[fs][fsKillsOfAttack] > FightSystem[fs][fsKillsOfOwner]){
format(fsText,sizeof(fsText),"~g~%s",GetFactionNameOfFaction(FightSystem[fs][fsAttackFaction]));
TextDrawSetString(FightSystem[fs][fsWinFaction],fsText);
format(fsText,sizeof(fsText),"~g~%d Kills",FightSystem[fs][fsKillsOfAttack]);
TextDrawSetString(FightSystem[fs][fsWinKills],fsText);
format(fsText,sizeof(fsText),"~r~%s",GetFactionNameOfFaction(FightSystem[fs][fsOwnerFaction]));
TextDrawSetString(FightSystem[fs][fsLoseFaction],fsText);
format(fsText,sizeof(fsText),"~r~%d Kills",FightSystem[fs][fsKillsOfOwner]);
TextDrawSetString(FightSystem[fs][fsLoseKills],fsText);
}else{
format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(FightSystem[fs][fsOwnerFaction]));
TextDrawSetString(FightSystem[fs][fsWinFaction],fsText);
format(fsText,sizeof(fsText),"~y~%d Kills",FightSystem[fs][fsKillsOfOwner]);
TextDrawSetString(FightSystem[fs][fsWinKills],fsText);
format(fsText,sizeof(fsText),"~y~%s",GetFactionNameOfFaction(FightSystem[fs][fsAttackFaction]));
TextDrawSetString(FightSystem[fs][fsLoseFaction],fsText);
format(fsText,sizeof(fsText),"~y~%d Kills",FightSystem[fs][fsKillsOfAttack]);
TextDrawSetString(FightSystem[fs][fsLoseKills],fsText);
}
} -
Willst du es nicht verstehen?
Du sollst die OnGameModeInit() posten!
GangZones können nur da erstellt werden!http://wiki.sa-mp.com/wiki/GangZoneCreate
http://wiki.sa-mp.com/wiki/GangZoneShowForPlayer -
des sind die zonen
new FightSystem[][fsSyS]={
/*MinX, MinY, MaxX, MaxY, CTFx, CTFy, CTFz*/
{1040.630615, -1716.315795, 1144.630615, -1580.315795,1072.4016,-1619.3834,20.4583},//Kaufhaus
{1853.246826,-1463.734863,1981.246826,-1351.734863,1893.2468,-1423.7349,10.3594},//stunt
{2500.743652,-1443.229003,2580.743652,-1267.229003,2545.4724,-1434.2423,24.0019},//park
{1828.318,-1938.465,2071.699,-1760.817,1958.6156,-1853.2424,4.3392},//Tanke
{1828.0573,-2161.2705,1956.4136,-2057.7964,1924.0941,-2125.0146,13.5826},//Airport(LS)
{1164.348388,-1153.130004,1260.348388,-1033.130004,1213.9235,-1080.2028,28.8640}, //neben bsn
{812.488098,-2080.804199,852.488098,-1896.804199,836.4881,-2064.8042,12.8672}, //bei STRAND
{791.747436,-1492.617797,919.747436,-1412.617797,831.7474,-1452.6178,13.6261}, //neben autohaus
{333.171264,-1597.453491,437.171264,-1485.453491,397.2343,-1525.5581,32.2734}//Gucke
};
aber bei mir ist nur das problem wenn die zonen ein genommen werde nach dem server restart sind wie vor her bs balls gewinnt die zone aber ges gehört groven nach dem server restart geht
des wieder groven street -
Ich brauch keine Zeile. Es geht darum das bei dir die GangZones nicht erstellt werden.
Diese müssten aber eigentlich in OnGameModeInit stehen, damit sie erstellt werden.
Sobald du sie created hast (mit GangZoneCreate) musst du sie noch anzeigen (GangZoneShowForAll / ShowForPlayer).Schau einfach mal ob du das machst.
-
des sind die zonen
new FightSystem[][fsSyS]={
/*MinX, MinY, MaxX, MaxY, CTFx, CTFy, CTFz*/
{1040.630615, -1716.315795, 1144.630615, -1580.315795,1072.4016,-1619.3834,20.4583},//Kaufhaus
{1853.246826,-1463.734863,1981.246826,-1351.734863,1893.2468,-1423.7349,10.3594},//stunt
{2500.743652,-1443.229003,2580.743652,-1267.229003,2545.4724,-1434.2423,24.0019},//park
{1828.318,-1938.465,2071.699,-1760.817,1958.6156,-1853.2424,4.3392},//Tanke
{1828.0573,-2161.2705,1956.4136,-2057.7964,1924.0941,-2125.0146,13.5826},//Airport(LS)
{1164.348388,-1153.130004,1260.348388,-1033.130004,1213.9235,-1080.2028,28.8640}, //neben bsn
{812.488098,-2080.804199,852.488098,-1896.804199,836.4881,-2064.8042,12.8672}, //bei STRAND
{791.747436,-1492.617797,919.747436,-1412.617797,831.7474,-1452.6178,13.6261}, //neben autohaus
{333.171264,-1597.453491,437.171264,-1485.453491,397.2343,-1525.5581,32.2734}//Gucke
};
aber bei mir ist nur das problem wenn die zonen ein genommen werde nach dem server restart sind wie vor her bs balls gewinnt die zone aber ges gehört groven nach dem server restart geht
des wieder groven street -
aber bei mir ist nur das problem wenn die zonen ein genommen werde nach dem server restart sind wie vor her bs balls gewinnt die zone aber ges gehört groven nach dem server restart geht
des wieder groven streetSag das doch gleich.. Dann musst du eben beim Einnehmen speichern, wer sie eingenommen hat und beim Laden dann wieder richtig setzen.
(Die Farbe z.B.)Einfach geht es, indem du die Daten in einer Datei speicherts (Dini, SII, DJson).
Es geht natürlich auch mit einer Datenbank.
Sieh dir dazu die Tutorials in der Tutorial-Section an. -
also das problem ist nur wenn ich server restart mache werden die nicht gespeichert
des ist mein fraktionenzone.cfg da werden degebiete gespeichert aber des passier nicht
13 -255 0 0 0 // die 13 heist groven street id
13 -255 0 0 0
13 -255 0 0 0
13 -255 0 0 0
13 -255 0 0 0
6 -255 0 0 0
13 -255 0 0 0
13 -255 0 0 0
13 -255 0 0 0 -
Und wir sollen schmecken warum die nicht gespeichert werden?
Poste halt die Funktion zum speichern der Gebiete. -
wie verstehe ich gerade nicht was fehlt dir
-
Dein Algorithmus zum Speichern der GangZone's.
-
da
if(!fexist("Fightzones.cfg")){
new File:fFile=fopen("Fightzones.cfg",io_write);
for(new fs;fs<sizeof(FightSystem);fs++)
fwrite(fFile,"14 -255 0 0 0\r\n");
fclose(fFile);
} -