Advertisement
Guest User

Untitled

a guest
Aug 25th, 2013
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.59 KB | None | 0 0
  1. #include <a_samp>
  2. #include <capture>
  3. #define MAX_ZONES_POINTS 20//кол-во очков для захвата
  4. new ZoneID[2];
  5. new ColorZones[2] = {0xFF49BF1B,0xFFFF0808};//Цвета зонв
  6. new PlayersColor[2] = {0x49BF1BFF,0xFF0808FF};//цвета игроков той или иной банды?
  7. new PlayerGangSkin[2] = {160,284};//скины банд
  8. new ZonePoits[2];//кол-во очков
  9. new PlayerTeam[MAX_PLAYERS];//банда
  10. new timer_id;//таймер
  11. forward CheckZonePlayers();
  12. public OnGameModeInit()
  13. {
  14.     AddPlayerClass(134,1958.3783,1343.1572,15.3746,270.1425,0,0,0,0,-1,-1);
  15.     ZoneID[0] = CreateCaptureZone(2225.8860,-1384.8231,23.8319-0.8,5,ColorZones[0],0,1);//зона 1
  16.     ZoneID[1] = CreateCaptureZone(2285.9993,-1383.9907,24.1097-0.8,5,ColorZones[1],1,1);//зона 2
  17.     timer_id = SetTimer("CheckZonePlayers",1000,true);//таймер
  18.     SetGameModeText("CZM");
  19.     ShowPlayerMarkers(1);
  20.     ShowNameTags(1);
  21.     return true;
  22. }
  23. public CheckZonePlayers()
  24. {
  25.     new string[144];
  26.     for(new i; i < MAX_PLAYERS; i++)
  27.     {
  28.         if(!IsPlayerConnected(i))continue;//если игрок не подключен
  29.         new zone_id = GetPlayerCaptureZoneIn(i);//получим ид зоны на который находиться игрок
  30.         printf("playerid %d zone id %d player zone %d",i,zone_id,PlayerTeam[i]);
  31.         if(zone_id == INVALID_CAPTURE_ZONE_ID|| GetZoneOwnerID(zone_id) == ZoneID[PlayerTeam[i]])continue;//если нет зоны, либо игрок ее владеет, то пропустим
  32.         ZonePoits[zone_id]++;//увеличим кол-во очков на 1
  33.         if(ZonePoits[zone_id] >= MAX_ZONES_POINTS)//если очков больше, чем надо
  34.         {
  35.             SendClientMessage(i,0x5CABFAFF,"Поздравляем! Вы успешно захватили зону!");
  36.             SetCaptureZoneColor(zone_id,ColorZones[PlayerTeam[i]]);////Сменим цвет
  37.             SetCaptureZoneOwner(zone_id,PlayerTeam[i]);//Установим нового владеьца
  38.             ZonePoits[zone_id] = 0;//обнулим очки
  39.         }
  40.         else
  41.         {
  42.             format(string, sizeof string,"~w~CAPTURE ZONE: ]~g~%d~w~/~r~"#MAX_ZONES_POINTS"~w~]",ZonePoits[zone_id]);
  43.             GameTextForPlayer(i,string,1000,4);//Выведем кол-во очков ввиде текста
  44.         }
  45.        
  46.     }
  47. }
  48. public OnGameModeExit()
  49. {
  50.     KillTimer(timer_id);//удаление таймера
  51.     DeleteCaptureZone(ZoneID[0]);//зоны1
  52.     DeleteCaptureZone(ZoneID[1]);//зоны2
  53.     return true;
  54. }
  55. public OnPlayerConnect(playerid)
  56. {
  57.     GameTextForPlayer(playerid,"~w~WELCOME TO ~n~~g~CAPTURE ~r~ZONE ~b~MOD",5000,4);
  58.     return 1;
  59. }
  60. public OnPlayerRequestSpawn(playerid)
  61. {
  62.     return true;
  63. }
  64. public OnPlayerRequestClass(playerid, classid)
  65. {
  66.     SetPlayerInterior(playerid,14);
  67.     SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
  68.     SetPlayerFacingAngle(playerid, 270.0);
  69.     SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
  70.     SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
  71.     return 1;
  72. }
  73. public OnPlayerSpawn(playerid)
  74. {
  75.     new team_id = random(2);
  76.     PlayerTeam[playerid] = team_id;//присвоим игроку тиму
  77.     SetPlayerColor(playerid,PlayersColor[team_id]);//установим цвет
  78.     SetPlayerCaptureZonePos(playerid,team_id);////переместим на зону
  79.     SetPlayerSkin(playerid,PlayerGangSkin[team_id]);//дадим скин
  80.     TogglePlayerClock(playerid,0);
  81.     SetPlayerInterior(playerid,0);
  82.     SetPlayerVirtualWorld(playerid,0);
  83.     GivePlayerWeapon(playerid,24,100);
  84.     GivePlayerWeapon(playerid,16,3);
  85.     GivePlayerWeapon(playerid,31,300);
  86.     return true;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement