Hallo Brotfische,
Ich habe ein Problem mit meinem Gangwarsystem, undzwar werden die Punkte nicht übergeben... woran kan das liegt ?
Codes:
enum gangZones{
besitzer,
Float:minx,
Float:miny,
Float:maxx,
Float:maxy,
punkteAngreifer,
punkteVerteidiger,
running,
angreifer,
f_gebiet[258]
}
new PlayerText:gwlabel1[MAX_PLAYERS];
new PlayerText:gwlabel2[MAX_PLAYERS];
new PlayerText:gwlabel3[MAX_PLAYERS];
new PlayerText:gwlabel4[MAX_PLAYERS];
new PlayerText:gwlabel5[MAX_PLAYERS];
new PlayerText:gwlabel6[MAX_PLAYERS];
new PlayerText:gwlabel7[MAX_PLAYERS];
new gangZone[sizeof(gwInfo)];
new gwInfo[5][gangZones] = {
{3,593.2632,-618.4024,838.8503,-478.7002,0,0,0,0,"Dillimore"},
{5,123.3492,-221.4593,339.9560,-1.5144,0,0,0,0,"Blueberry"},
{4,1519.7825,2012.1333,1717.2280,2169.8792,0,0,0,0,"Redsands"},
{5,1239.8197,2580.0684,1597.4327,2722.8813,0,0,0,0,"Prickle Pine"},
{4,-915.6179,1461.0907,-733.4062,1622.4524,0,0,0,0,"Las Barrancas"}
};
//OngameModeInit
for(new i;i<sizeof(gwInfo); i++)
{
new id=GetFreeGangZoneID();
gangZone[id] = GangZoneCreate(gwInfo[i][minx],gwInfo[i][miny],gwInfo[i][maxx],gwInfo[i][maxy]);
}
public updateGangZone(playerid)
{
for(new ii=0; ii<sizeof(gwInfo);ii++)
{
GangZoneHideForAll(ii);
GangZoneShowForAll(ii,fInfo[gwInfo[ii][besitzer]][f_color]);
if(gwInfo[ii][running]==1)
{
GangZoneFlashForAll(ii,fInfo[gwInfo[ii][angreifer]][f_color]);
}
}
return 1;
}
IsPlayerInGangZone(playerid)
{
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
for(new i;i<sizeof(gwInfo);i++)
{
if(x>gwInfo[i][minx]&&x<gwInfo[i][maxx]&&y>gwInfo[i][miny]&&y<gwInfo[i][maxy])
{
return i;
}
}
return -1;
}
forward GangFight(gangzone);
public GangFight(gangzone)
{
if(gwInfo[gangzone][punkteAngreifer]>gwInfo[gangzone][punkteVerteidiger])
{
for(new i;i<MAX_PLAYERS;i++)
{
if(sInfo[i][fraktion]==gwInfo[gangzone][angreifer]) SendClientMessage(i,C_Gruen,"Dein Team hat ein Gebiet erobert.");
else if(sInfo[i][fraktion]==gwInfo[gangzone][besitzer]) SendClientMessage(i,COLOR_RED,"Eines deiner Gebiete wurde erobert.");
}
gwInfo[gangzone][besitzer]=gwInfo[gangzone][angreifer];
}
gwInfo[gangzone][punkteAngreifer]=0;
gwInfo[gangzone][punkteVerteidiger]=0;
gwInfo[gangzone][angreifer]=-1;
return 1;
}
ocmd:gw(playerid)
{
new gangzone = IsPlayerInGangZone(playerid);
new string[100], string1[100], string2[100],string3[100],string4[100],string5[100];
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;
}
}
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[gangzone][besitzer]==sInfo[playerid][fraktion]) return SendClientMessage(playerid,C_Gruen,"Dieses Gebiet gehört bereits deiner Fraktion.");
if(gwInfo[gangzone][running]==1) return SendClientMessage(playerid,COLOR_RED,"Es läuft bereits ein Gangwar in diesem Gebiet!");
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][besitzer]==gwInfo[gangzone][besitzer] && gwInfo[i][angreifer]>0) return SendClientMessage(playerid,COLOR_RED,"Der Besitzer dieses Gebietes führt bereits einen Gang-Krieg.");
}
gwInfo[gangzone][angreifer]=sInfo[playerid][fraktion];
SetTimerEx("GangFight",86400000,0,"i",gangzone);
gwInfo[gangzone][running]=1;
GangZoneFlashForAll(gangzone,fInfo[gwInfo[gangzone][angreifer]][f_color]);
for(new i; i<MAX_PLAYERS;i++)
{
if(sInfo[i][fraktion]==gwInfo[gangzone][besitzer])
{
SendClientMessage(i,COLOR_RED,"Eines deiner Gebiete wird angegriffen!");
format(string,sizeof(string),"Kampf um %s",gwInfo[gangzone][f_gebiet]);
PlayerTextDrawSetString(i,gwlabel2[i],string);
format(string1,sizeof(string1),"%s: %i",fInfo[gwInfo[gangzone][besitzer]][f_name],gwInfo[gangzone][punkteVerteidiger]);
PlayerTextDrawSetString(i,gwlabel4[i],string1);
format(string2,sizeof(string2),"%s: %i",fInfo[gwInfo[gangzone][angreifer]][f_name],gwInfo[gangzone][punkteAngreifer]);
PlayerTextDrawSetString(i,gwlabel5[i],string2);
PlayerTextDrawShow(i,gwlabel1[i]);
PlayerTextDrawShow(i,gwlabel2[i]);
PlayerTextDrawShow(i,gwlabel3[i]);
PlayerTextDrawShow(i,gwlabel4[i]);
PlayerTextDrawShow(i,gwlabel5[i]);
PlayerTextDrawShow(i,gwlabel6[i]);
PlayerTextDrawShow(i,gwlabel7[i]);
}
else if(sInfo[i][fraktion]==gwInfo[gangzone][angreifer])
{
SendClientMessage(i,C_Gruen,"Deine Fraktion greift ein Gebiet an!");
format(string3,sizeof(string3),"Kampf um %s",gwInfo[gangzone][f_gebiet]);
PlayerTextDrawSetString(i,gwlabel2[i],string3);
format(string4,sizeof(string4),"%s: %i",fInfo[gwInfo[gangzone][angreifer]][f_name],gwInfo[gangzone][punkteAngreifer]);
PlayerTextDrawSetString(i,gwlabel4[i],string4);
format(string5,sizeof(string5),"%s: %i",fInfo[gwInfo[gangzone][besitzer]][f_name],gwInfo[gangzone][punkteVerteidiger]);
PlayerTextDrawSetString(i,gwlabel5[i],string5);
PlayerTextDrawShow(i,gwlabel1[i]);
PlayerTextDrawShow(i,gwlabel2[i]);
PlayerTextDrawShow(i,gwlabel3[i]);
PlayerTextDrawShow(i,gwlabel4[i]);
PlayerTextDrawShow(i,gwlabel5[i]);
PlayerTextDrawShow(i,gwlabel6[i]);
PlayerTextDrawShow(i,gwlabel7[i]);
}
}
return 1;
}
//OnPlayerConnect
for(new i; i<sizeof(gangZone);i++)
{
new gangZoneColor = fInfo[gwInfo[i][besitzer]][f_color];
GangZoneShowForPlayer(playerid,i,gangZoneColor);
}
//OnPlayerDeath
if(IsPlayerInGangZone(playerid) > -1)
{
new zone = IsPlayerInGangZone(playerid) ;
if(gwInfo[zone][running] == 1)
{
if(sInfo[playerid][rang]==gwInfo[zone][besitzer])
{
if(sInfo[killerid][rang] == gwInfo[zone][angreifer])
{
gwInfo[zone][punkteAngreifer] +=10;
}
}
if(sInfo[playerid][rang]==gwInfo[zone][angreifer])
{
if(sInfo[killerid][rang] == gwInfo[zone][besitzer])
{
gwInfo[zone][punkteVerteidiger] +=10;
}
}
}
}
}
Ich hoffe es kann mir jemand helfen
MFG German_ScripterHD