Problem mit Gangwarsystem

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
  • 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 :D


    MFG German_ScripterHD


    Mit freundlichen Grüßen
    German_ScripterHD