Advertisement
Guest User

pickups_sys

a guest
Feb 15th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.22 KB | None | 0 0
  1. #define MAX_SERVER_PICKUPS                  (10000) // магическое число
  2.  
  3. #define PICKUP_TYPE_HOUSE                   (0)
  4. #define PICKUP_TYPE_BUSINESS                (1)
  5.  
  6. #define PICKUP_SUBTYPE_HOUSE_ENTER          (2)
  7. #define PICKUP_SUBTYPE_HOUSE_EXIT           (3)
  8. #define PICKUP_SUBTYPE_HOUSE_GARA_DOOR      (4)
  9. #define PICKUP_SUBTYPE_HOUSE_ENTER_GARA     (5)
  10. #define PICKUP_SUBTYPE_HOUSE_EXIT_GARA      (6)
  11. #define PICKUP_SUBTYPE_BUSINESS_ENTER       (7)
  12. #define PICKUP_SUBTYPE_BUSINESS_EXIT        (8)
  13. #define PICKUP_SUBTYPE_BUSINESS_MENU        (9)
  14.  
  15. enum e_PICKUP_INFO
  16. {
  17.     pickup_type,
  18.     pickup_subtype,
  19.  
  20.     pickup_object_id
  21. }
  22.  
  23. new
  24.     gPickupInfo[MAX_PICKUPS][e_PICKUP_INFO];
  25.  
  26. public OnPlayerPickUpDynamicPickup(playerid, pickupid)
  27. {
  28.     switch(gPickupInfo[pickupid][pickup_type])
  29.     {
  30.         case PICKUP_TYPE_HOUSE:
  31.         {
  32.             new
  33.                 houseId = gPickupInfo[pickup][pickup_object_id],
  34.                 playerState = GetPlayerState(playerid);
  35.  
  36.             switch(gPickupInfo[pickupid][pickup_subtype])
  37.             {
  38.                 case PICKUP_SUBTYPE_HOUSE_ENTER:
  39.                 {
  40.                     if(playerState != PLAYER_STATE_ONFOOT)
  41.                         return 1;
  42.  
  43.                     new
  44.                         string[256];
  45.  
  46.                     if(h_info[i][h_user_id] != INVALID_ACCOUNT_ID)
  47.                     {
  48.                         format(string, sizeof(string), ""W"Владелец:\t"I"%s\n"W"Номер дома:\t"I"%d\n\n"W"[1] Войти в дом [%s"W"]",
  49.                             h_info[i][h_owner], i, h_info[i][h_lock] == 0 ? ("{008000}Открыт"):("{FF0000}Закрыт"));
  50.  
  51.                         if(h_info[i][h_squar] > 1)
  52.                             format(string, sizeof(string), "%s\n[2] Войти в гараж [%s"W"]", string, h_info[i][h_garage_lock] == 0 ? ("{008000}Открыт"):("{FF0000}Закрыт"));
  53.  
  54.                         return ShowPlayerDialog(playerid, D_HOUSE_DOOR,DIALOG_STYLE_INPUT,"Дом куплен", string,"Выбрать","Отмена");
  55.                     }
  56.                     else
  57.                     {
  58.                         static const
  59.                             house_class[][] = {"15 кв.м", "36 кв.м", "72 кв.м", "120 кв.м"};
  60.  
  61.                         format(string, sizeof(string), ""W"Площадь:\t"I"%s\n"W"Номер дома:\t"I"%d\n\n"W"Стоимость:\t"S"%d$\n\n"I"Для приобретения дома нажмите кнопку "I"\"Купить\"",
  62.                             house_class[h_info[i][h_squar]-1],i,h_info[i][h_value]);
  63.  
  64.                         return ShowPlayerDialog(playerid,D_HOUSE_DOOR,DIALOG_STYLE_MSGBOX,"Дом свободен",string,"Купить","Отмена");
  65.                     }
  66.                 }
  67.                 case PICKUP_SUBTYPE_HOUSE_EXIT:
  68.                 {
  69.                     if(playerState != PLAYER_STATE_ONFOOT)
  70.                         return 1;
  71.  
  72.                     if(h_info[i][h_squar] > 1)
  73.                         return ShowPlayerDialog(playerid, D_HOUSE_DOOR,DIALOG_STYLE_INPUT,"Выход из дома","Куда вы хотите выйти из дома?\n\n[1] На улицу\n[2] В гараж","Выбрать","Отмена");
  74.                     else
  75.                         return ShowPlayerDialog(playerid, D_HOUSE_DOOR,DIALOG_STYLE_MSGBOX,"Выход из дома","Вы хотите выйти из дома?","Выйти","Отмена");
  76.                 }
  77.                 case PICKUP_SUBTYPE_HOUSE_GARA_DOOR:
  78.                 {
  79.                     if(playerState == PLAYER_STATE_ONFOOT)
  80.                         return ShowPlayerDialog(playerid, D_GARAGE_DOOR,DIALOG_STYLE_INPUT,"Выход из гаража","Куда вы хотите выйти из гаража?\n\n[1] На улицу\n[2] В дом","Выбрать","Отмена");
  81.                 }
  82.                 case PICKUP_SUBTYPE_HOUSE_ENTER_GARA:
  83.                 {
  84.                     if(playerState == PLAYER_STATE_DRIVER)
  85.                         return ShowPlayerDialog(playerid, D_GARAGE_AREA, DIALOG_STYLE_MSGBOX,"Заехать в гараж?","Вы хотите заехать в гараж?","Выбрать","Отмена");
  86.                 }
  87.                 case PICKUP_SUBTYPE_HOUSE_EXIT_GARA:
  88.                 {
  89.                     if(playerState == PLAYER_STATE_DRIVER)
  90.                         return ShowPlayerDialog(playerid, D_GARAGE_AREA, DIALOG_STYLE_MSGBOX,"Выехать из гаража?","Вы хотите выехать из гаража?","Выбрать","Отмена");
  91.                 }
  92.             }
  93.         }
  94.         case PICKUP_TYPE_BUSINESS:
  95.         {
  96.             if(playerState != PLAYER_STATE_ONFOOT)
  97.                 return 1;
  98.  
  99.             new
  100.                 businessId = gPickupInfo[pickup][pickup_object_id],
  101.                 pickupSubtype = gPickupInfo[pickupid][pickup_subtype];
  102.  
  103.             if(pickupSubtype == PICKUP_SUBTYPE_BUSINESS_ENTER)
  104.             {
  105.                 if(b_info[businessId][_owned] == 0)
  106.                 {
  107.                     STRING_GLOBAL[0] = EOS;
  108.  
  109.                     format(STRING_GLOBAL,sizeof(STRING_GLOBAL),""W"Цена: %d$\nЕсли вы действительно хотите приобрести данный бизнес, нажмите "I"Купить",b_info[businessId][_price]);
  110.                     return ShowPlayerDialog(playerid,36,DIALOG_STYLE_MSGBOX,"Покупка бизнеса",STRING_GLOBAL,"Купить","Отмена");
  111.                 }
  112.  
  113.                 if(b_info[businessId][_tip] == 4)
  114.                     return 1;
  115.  
  116.                 if(b_info[businessId][_lock] == 1 && businessId != p_info[playerid][key_bizz])
  117.                     return SendClientMessage(playerid,error,"Бизнес закрыт");
  118.  
  119.                 SetPlayerPos(playerid, b_info[businessId][b_exit][0],b_info[businessId][b_exit][1],b_info[businessId][b_exit][2]);
  120.                 SetPlayerInterior(playerid, b_info[businessId][_int]), SetPlayerVirtualWorld(playerid, b_info[businessId][_world]);
  121.                 SetCameraBehindPlayer(playerid);
  122.  
  123.                 SetPVarInt(playerid, "bID", businessId);
  124.                 return 1;
  125.             }
  126.             else if(pickupSubtype == PICKUP_SUBTYPE_BUSINESS_EXIT)
  127.             {
  128.                 if(b_info[businessId][_tip] == 2 && p_info[playerid][member] == 0)
  129.                 {
  130.                     SetPlayerSkin(playerid, p_info[playerid][skin]);
  131.                     DeletePVar(playerid,"@clothes");
  132.                     SendClientMessage(playerid, info, "Жаль, что вам ничего не подошло. Приходите к нам еще.");
  133.                 }
  134.                 if(b_info[businessId][_tip] == 5 && GetPVarInt(playerid,"CasinoRank"))
  135.                 {
  136.                     DeletePVar(playerid,"CasinoRank");
  137.                     SetPlayerSkin(playerid, p_info[playerid][skin]);
  138.                 }
  139.  
  140.                 SetPlayerPos(playerid, b_info[GetPVarInt(playerid, "bID")][b_enter][0], b_info[GetPVarInt(playerid, "bID")][b_enter][1], b_info[GetPVarInt(playerid, "bID")][b_enter][2]);
  141.  
  142.                 SetPlayerInterior(playerid, 0);
  143.                 SetPlayerVirtualWorld(playerid, 0);
  144.                 return 1;
  145.             }
  146.             else // PICKUP_SUBTYPE_BUSINESS_MENU
  147.             {
  148.                 if(b_info[GetPVarInt(playerid, "bID")][_owned] == 0)
  149.                     return SendClientMessage(playerid,error,"Магазин не работает");
  150.  
  151.                 MENU_BIZ(playerid, b_info[GetPVarInt(playerid, "bID")][_tip]);
  152.                 return 1;
  153.             }
  154.         }
  155.     }
  156.     return 1;
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement