Hallo Community,
Ich arbeite an einem GangWarSystem und muss nur noch die GangZone.cfg bearbeiten, doch ich kenne mich fast gar nicht aus.
Ich weiß nicht genau was ich wo einsetzen muss..ein teil habe ich jedoch richtig..denke ich..
Ich habe die GangZone.cfg(wie hier gepostet) getestet und das Problem ist, wenn ich /invade(GangZone einnehmen) mache, dann werde ich auf einmal aus dem Gebiet weg geportet und dann steht da: Du hast noch XX Sekunden, um wieder zur Gangzone zurückzukehren. Doch ich bin gefreezt und bin knapp außerhalb der Zone..wenn die Sekunden abgelaufen sind, werde ich automatisch zu meiner jeweiligen Base geportet und kann mich dann nicht mehr bewegen.
Der Server ist ein GF-Edit..
Hier steht, welche Zahlen für was stehen, doch ich weiß nicht genau, was ich wo einsetzen soll:
public LoadGangZoneInfo()
{
new arrCoords[17][128];
new strFromFile2[256];
new File: file = fopen("gangzone.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(GangZoneInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
GangZoneInfo[idx][zID] = strval(arrCoords[0]);
GangZoneInfo[idx][zOwned] = strval(arrCoords[1]);
GangZoneInfo[idx][zGang] = strval(arrCoords[2]);
strmid(GangZoneInfo[idx][zOwner], arrCoords[3], 0, strlen(arrCoords[3]), 255);
GangZoneInfo[idx][zMinX] = floatstr(arrCoords[4]);
GangZoneInfo[idx][zMinY] = floatstr(arrCoords[5]);
GangZoneInfo[idx][zMaxX] = floatstr(arrCoords[6]);
GangZoneInfo[idx][zMaxY] = floatstr(arrCoords[7]);
GangZoneInfo[idx][zMoney] = strval(arrCoords[8]);
GangZoneInfo[idx][zAttackAgain] = strval(arrCoords[9]);
strmid(GangZoneInfo[idx][zZName], arrCoords[10], 0, strlen(arrCoords[10]), 255);
GangZoneInfo[idx][zSpawn1X] = floatstr(arrCoords[11]);
GangZoneInfo[idx][zSpawn1Y] = floatstr(arrCoords[12]);
GangZoneInfo[idx][zSpawn1Z] = floatstr(arrCoords[13]);
GangZoneInfo[idx][zSpawn2X] = floatstr(arrCoords[14]);
GangZoneInfo[idx][zSpawn2Y] = floatstr(arrCoords[15]);
GangZoneInfo[idx][zSpawn2Z] = floatstr(arrCoords[16]);
printf("Name: %s | MinX: %f | MinY: %f | MaxX: %f | MaxY: %f",
GangZoneInfo[idx][zZName],
GangZoneInfo[idx][zMinX],
GangZoneInfo[idx][zMinY],
GangZoneInfo[idx][zMaxX],
GangZoneInfo[idx][zMaxY]);
idx++;
}
fclose(file);
}
printf("** Gang Zones successfully loaded **");
return 1;
}
Und hier die GangZone.cfg:
1|0|0|Niemand|2181.905761|-121.477943|2549.905761|238.522064|250|0|Yakuzastammgebiet
|0.000000|0.000000|0.000000|0.000000|0.000000|0.000000
0|0|0|0.000000|0.000000|0.000000|0.000000|238.522064|250|0|Yakuzastammgebiet
|0.000000|0.000000|0.000000|0.000000|0.000000|0.000000
0|0|0|0.000000|0.000000|0.000000|0.000000|238.522064|250|0|Yakuzastammgebiet
|0.000000|0.000000|0.000000|0.000000|0.000000|0.000000
0|0|0|0.000000|0.000000|0.000000|0.000000|238.522064|250|0|Yakuzastammgebiet
|0.000000|0.000000|0.000000|0.000000|0.000000|0.000000
0|0|0|0.000000|0.000000|0.000000|0.000000|238.522064|250|0|Yakuzastammgebiet
|0.000000|0.000000|0.000000|0.000000|0.000000|0.000000
0|0|0|0.000000|0.000000|0.000000|0.000000|238.522064|250|0|Yakuzastammgebiet
|0.000000|0.000000|0.000000|0.000000|0.000000|0.000000
Hier die Koordinaten einer Zone:
Yakuzastammgebiet = GangZoneCreate(2181.905761, -121.477943, 2549.905761, 238.522064);
if(strcmp(cmd, "/invade", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(GangZoneWar == 0 && GangZoneWait == 0)
{
if(Invade[playerid] != 255)
{
SendClientMessage(playerid, COLOR_GRAD2, " Du bist bereits in einem GangWar.");
return 1;
}
if(IsAMember(playerid))
{
if(PlayerInfo[playerid][pJailed] == 0)
{
if(allowedgangwar[playerid] == 0)
{
{
for(new z = 0; z < sizeof(GangZoneInfo); z++)
{
if(PlayerInZone(playerid, GangZoneInfo[z][zMinX], GangZoneInfo[z][zMinY], GangZoneInfo[z][zMaxX], GangZoneInfo[z][zMaxY]))
{
if(GangZoneInfo[z][zAttackAgain] == 0)
{
if(GangZoneInfo[z][zGang] == 0)
{
FirstInvade = 1;
format(string, sizeof(string), " Du hast einen GangWar gestartet. Du greifst das Gebiet %s an.",GangZoneInfo[z][zZName]);
SendClientMessage(playerid, COLOR_LIGHTRED, string);
Invade[playerid] = z;
GangWarMember[playerid] = 1;
new frak;
if(IsALeader(playerid)) frak = PlayerInfo[playerid][pLeader];
else frak = PlayerInfo[playerid][pMember];
AttackerGang = frak;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), " %s hat ein GangWar um das Gebiet: %s gestartet. Helfe ihm! (/accept war)", sendername, GangZoneInfo[z][zZName]);
SendRadioMessage(frak, COLOR_LIGHTRED, string);
AttackedGangZone = z;
GangZoneWait = 1;
GangZoneWaitTime = 180;
GangZoneFlashForAll(z, COLOR_RED2);
for(new s = 0; s < MAX_PLAYERS; s++)
{
if(IsPlayerConnected(s))
{
if(IsAMember(s))
{
new ftext[60];
if(frak == 1) ftext = "La Cosa Nostra";
else if(frak == 2) ftext = "Yakuza";
else if(frak == 3) ftext = "Grove Street Family";
else if(frak == 4) ftext = "Saint Jefferson Ballas";
else if(frak == 5) ftext = "Triaden";
else if(frak == 6) ftext = "Varrios Los Aztecas";
else if(frak == 7) ftext = "Los Vagos";
if(frak == 1 || frak == 2)
{
format(string, sizeof(string), " Die %s Mafia greift das Gebiet %s an. Verteidige es oder lass es! (/accept war)", ftext, GangZoneInfo[z][zZName]);
SendClientMessage(s, COLOR_LIGHTRED, string);
}
else if(frak == 3 || frak == 4 || frak == 5 || frak == 6 || frak == 7)
{
format(string, sizeof(string), " Die %s Gang greift das Gebiet %s an. Verteidige es oder lass es! (/accept war)", ftext, GangZoneInfo[z][zZName]);
SendClientMessage(s, COLOR_LIGHTRED, string);
}
}
}
}
SetPlayerPos(playerid, GangZoneInfo[Invade[playerid]][zSpawn1X], GangZoneInfo[Invade[playerid]][zSpawn1Y],GangZoneInfo[Invade[playerid]][zSpawn1Z]);
SetPlayerVirtualWorld(playerid, 1);
SetPlayerInterior(playerid, 0);
TogglePlayerControllable(playerid, 0);
Attackers ++;
return 1;
}
else
{
if(GangZoneInfo[z][zGang] == GetPlayerGang(playerid))
{
SendClientMessage(playerid, COLOR_GRAD2, " Euch gehört dieses Gebiet !");
return 1;
}
else
{
new gangs;
for(new s = 0; s < MAX_PLAYERS; s++)
{
if(IsPlayerConnected(s))
{
if(PlayerInfo[s][pMember] == GangZoneInfo[z][zGang] || PlayerInfo[s][pLeader] == GangZoneInfo[z][zGang])
{
gangs ++;
}
}
}
if(gangs < 2)
{
SendClientMessage(playerid, COLOR_GRAD2, "Es sind keine 2 Member der feindlichen Gang Online.");
return 1;
}
new frak, enemyfrak;
for(new g = 0; g < MAX_PLAYERS; g++)
{
if(IsPlayerConnected(g))
{
if(PlayerInfo[g][pMember] == GangZoneInfo[z][zGang] || PlayerInfo[g][pLeader] == GangZoneInfo[z][zGang])
{
if(IsALeader(g)) enemyfrak = PlayerInfo[g][pLeader];
else enemyfrak = PlayerInfo[g][pMember];
DefenderGang = enemyfrak;
}
}
}
format(string,sizeof(string)," Euer Ganggebiet: %s wird angegriffen. Verteidige es ! (/accept war)", GangZoneInfo[z][zZName]);
SendRadioMessage(enemyfrak, COLOR_LIGHTRED, string);
format(string, sizeof(string), " Du hast einen GangWar gestartet. Du greifst das Gebiet %s an.",GangZoneInfo[z][zZName]);
SendClientMessage(playerid, COLOR_LIGHTRED, string);
Invade[playerid] = z;
GangWarMember[playerid] = 1;
if(IsALeader(playerid)) frak = PlayerInfo[playerid][pLeader];
else frak = PlayerInfo[playerid][pMember];
AttackerGang = frak;
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), " %s hat ein GangWar um das Gebiet: %s gestartet. Helfe ihm! (/accept war)", sendername, GangZoneInfo[z][zZName]);
SendRadioMessage(frak, COLOR_LIGHTRED, string);
AttackedGangZone = z;
GangZoneWait = 1;
GangZoneWaitTime = 60;
GangZoneFlashForAll(z, COLOR_RED2);
SetPlayerPos(playerid, GangZoneInfo[Invade[playerid]][zSpawn1X], GangZoneInfo[Invade[playerid]][zSpawn1Y],GangZoneInfo[Invade[playerid]][zSpawn1Z]);
SendClientMessage(playerid, COLOR_RED,"Warte bitte 1 Minute, danach wird der Gangwar gestartet!");
SetPlayerVirtualWorld(playerid, 1);
SetPlayerInterior(playerid, 0);
TogglePlayerControllable(playerid, 0);
Attackers ++;
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Du kannst dieses Gebiet noch nicht einnehmen.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Du bist in keinem Ganggebiet.");
return 1;
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Du darfst keinen GangWar führen.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2," Du kannst in deinem jetzigen Zustand keinen GangWar führen.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Du bist in der falschen Fraktion.");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Es läuft bereits ein GangWar.");
return 1;
}
}// notconnected
return 1;
}
Ich hoffe ihr könnt mir helfen..
Danke im Voraus
MfG[/s][/s]