объясните что тут происходит..
#1

pawn Код:
forward StopAttack(gang, attacker, zoneid);
public StopAttack(gang, attacker, zoneid)
{
    new str[150];
    ThisGangWar[gang] = false; // война закончена
    ThisGangWar[attacker] = false; // война закончена
    ThisGangWarAgainst[attacker] = 0;
    ThisGangWarAgainst[gang] = 0;
    ZoneInfo[zoneid][zAttacked] = 0; // зона не атакована
    GangZoneStopFlashForAll(ZoneInfo[zoneid][zID]);
    if(KillPoint[gang] > KillPoint[attacker]) // У кого сколько убийств
    {
        new conter;
        for(new i; i < MAX_PLAYERS; i++)
        {
            if(!IsPlayerConnected(i)) continue;
            if( GetPVarInt(i, "Team") == gang &&
                AFKText[i] < 4 && GetPlayerInterior(i) == 0 &&
                GetPlayerVirtualWorld(i) == 0 &&
                IsPlayerInArea(i, ZoneInfo[zoneid][zoneX], ZoneInfo[zoneid][zoneY], ZoneInfo[zoneid][zoneX2], ZoneInfo[zoneid][zoneY2]))
            {
                conter++;
            }
        }
        if(conter < 3) // Если небыло защитников
        {
            for(new i; i < MAX_PLAYERS; i++)
            {
                if(!IsPlayerConnected(i)) continue;
                if(GetPVarInt(i, "Team") == attacker && GetPlayerState(i) == PLAYER_STATE_ONFOOT && IsPlayerInArea(i, ZoneInfo[zoneid][zoneX], ZoneInfo[zoneid][zoneY], ZoneInfo[zoneid][zoneX2], ZoneInfo[zoneid][zoneY2]))
                {
                    //=============V1================
                    GiveAC(i, "Achievement_Gangwar", 0);
                    //===============================
                }
            }
            ZoneInfo[zoneid][zOwner] = attacker; // Зона принадлежит тем кто напал
            GangZoneShowForAll(ZoneInfo[zoneid][zID], GetFactionColor(ZoneInfo[zoneid][zOwner]));
            SaveZone(zoneid);
            format(str, sizeof(str), RGB_LAZUREGREY"%s покинули защищаемую территорию(%d) и отдали её %s", OrganizationsInfo[gang-1][orgName], zoneid, OrganizationsInfo[attacker-1][orgName]);

        }
        else
        {
            ZoneInfo[zoneid][zOwner] = gang; // Осталась у кого и была...
            format(str, sizeof(str), RGB_LAZUREGREY"Территория %d осталась под контролем %s, счет %d:%d!", zoneid, OrganizationsInfo[gang-1][orgName], KillPoint[gang],KillPoint[attacker]);
        }
    }
    else
    {
        new attack;

        for(new i; i < MAX_PLAYERS; i++)
        {
            if(!IsPlayerConnected(i)) continue;
            if( GetPVarInt(i, "Team") == attacker &&
                AFKText[i] < 4 &&
                GetPlayerInterior(i) == 0 &&
                GetPlayerVirtualWorld(i) == 0 &&
                IsPlayerInArea(i, ZoneInfo[zoneid][zoneX], ZoneInfo[zoneid][zoneY], ZoneInfo[zoneid][zoneX2], ZoneInfo[zoneid][zoneY2]))
            {
                attack++;
            }
        }
        if(attack < 3)
        {
            ZoneInfo[zoneid][zOwner] = gang; // Осталась у кого и была...
            format(str, sizeof(str), RGB_LAZUREGREY"%s покинули захватываемую территорию(%d)", OrganizationsInfo[attacker-1][orgName], zoneid);

        }
        else
        {
            for(new i; i < MAX_PLAYERS; i++)
            {
                if(!IsPlayerConnected(i)) continue;
                if(GetPVarInt(i, "Team") == attacker && GetPlayerState(i) == PLAYER_STATE_ONFOOT && IsPlayerInArea(i, ZoneInfo[zoneid][zoneX], ZoneInfo[zoneid][zoneY], ZoneInfo[zoneid][zoneX2], ZoneInfo[zoneid][zoneY2]))
                {
                    //=============V1================
                    GiveAC(i, "Achievement_Gangwar", 0);
                    //===============================
                }
            }
            format(str, sizeof(str), RGB_LAZUREGREY"%s отвоевали территорию у '%s'(%d) счет %d:%d!", OrganizationsInfo[attacker-1][orgName], OrganizationsInfo[gang-1][orgName], zoneid, KillPoint[attacker], KillPoint[gang]);
            ZoneInfo[zoneid][zOwner] = attacker; // Зона принадлежит тем кто напал
            GangZoneShowForAll(ZoneInfo[zoneid][zID], GetFactionColor(ZoneInfo[zoneid][zOwner]));
            SaveZone(zoneid);
        }
    }
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(!IsPlayerConnected(i)) continue;
        if(GetPVarInt(i,"Team") == gang || GetPVarInt(i,"Team") == attacker)
        {
            SendClientMessage(i, COLOR_WHITE, str);
            PlayerTextDrawHide(i, GangWarTextdraw[i]);
        }
    }
    KillPoint[gang] = 0; // обнулили счетчик убийств
    KillPoint[attacker] = 0;  // обнулили счетчик убийств
   
    if(ZoneInfo[zoneid][zTimer])
    {
        KillTimer(ZoneInfo[zoneid][zTimer]);
        ZoneInfo[zoneid][zTimer] = 0;
    }
    return 1;
}
Reply
#2

мод Crime-Streets RPG у вас происходит, автор которого не давал согласия на его продажу. хватит пинать труп 2013 года)
Reply
#3

как система работает ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)