FlacoBey

Untitled

Mar 2nd, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.01 KB | None | 0 0
  1. #include <sourcemod>
  2. #include <sdktools>
  3. #include <sdkhooks>
  4.  
  5. int iNum = 0;
  6. char sCharMap[64];
  7. char sDataFilePath[PLATFORM_MAX_PATH];
  8.  
  9. public OnPluginStart()
  10. {
  11.     RegAdminCmd("sm_boxmenu", BoxRedactor, ADMFLAG_ROOT)
  12.    
  13.     BuildPath(Path_SM, sDataFilePath, sizeof(sDataFilePath), "data/box_position.ini");
  14.     if (!FileExists(sDataFilePath))
  15.     {
  16.         new Handle:open_path = OpenFile(sDataFilePath, "w");
  17.         WriteFileLine(open_path, "");
  18.         CloseHandle(open_path);
  19.         PrintToServer("Error Code: WSP-EC-01A");
  20.     }
  21. }
  22.  
  23. public OnMapStart()
  24. {
  25.     iNum = 0;
  26.    
  27.     GetCurrentMap(sCharMap, sizeof(sCharMap));
  28.     KeyValues kv = new KeyValues("PosionsFake");
  29.     KvRewind(kv);
  30.     if (kv.ImportFromFile(sDataFilePath))
  31.     {
  32.         if (KvJumpToKey(kv, sCharMap, true))
  33.         {
  34.             KeyValuesToFile(kv, sDataFilePath);
  35.             decl Float:fPos[3], String:sBuffer[32];
  36.             while(KvGotoNextKey(kv))
  37.             {
  38.                 FormatEx(sBuffer, sizeof(sBuffer), "crate %i", iNum++);
  39.                 KvGetVector(kv, sBuffer, fPos);
  40.                 if(IsVectorEmpty(fPos))
  41.                 {
  42.                     break;
  43.                 }
  44.                 ++iNum;
  45.             }
  46.         }
  47.     }
  48. }
  49.  
  50. bool:IsVectorEmpty(const Float:fPos[3])
  51. {
  52.     for (new i = 0; i < 3; ++i)
  53.     {
  54.         if(fPos[i])
  55.         {
  56.             return false;
  57.         }
  58.     }
  59.     return true;
  60. }
  61.  
  62. public Action:BoxRedactor(client, args)
  63. {
  64.     DisplayBoxMenu(client)
  65. }
  66.  
  67. public MenuBox(Handle:menu, MenuAction:action, client, symbol)
  68. {
  69.     if (action == MenuAction_Select)
  70.     {
  71.         if(symbol == 0)
  72.         {
  73.             DisplayAddBox(client);
  74.         }
  75.         else if(symbol == 1)
  76.         {
  77.            
  78.         }
  79.     }
  80.     else if (action == MenuAction_End)
  81.     {      
  82.         CloseHandle(menu);
  83.     }
  84. }
  85.  
  86. DisplayBoxMenu(client)
  87. {  
  88.     new Handle:menu = CreateMenu(MenuBox); 
  89.     SetMenuTitle(menu, "Редактор ящиков:");
  90.     AddMenuItem(menu, "0", "Добавить ящик");
  91.     AddMenuItem(menu, "1", "Убрать");
  92.     DisplayMenu(menu, client, MENU_TIME_FOREVER);
  93. }
  94.  
  95. DisplayAddBox(client)
  96. {
  97.     new Handle:menu = CreateMenu(MenuAddBox);  
  98.     SetMenuTitle(menu, "Добавление ящика:");
  99.     AddMenuItem(menu, "0", "По вашему местоположению.");
  100.     AddMenuItem(menu, "1", "Место, куда направлен ваш прицел.");
  101.     DisplayMenu(menu, client, MENU_TIME_FOREVER);
  102. }
  103.  
  104. public MenuAddBox(Handle:menu, MenuAction:action, client, symbol)
  105. {
  106.     if (action == MenuAction_Select)
  107.     {
  108.         if(symbol == 0)
  109.         {
  110.             float vPos[3]
  111.             GetClientAbsOrigin(client, vPos);
  112.            
  113.             KeyValues kv = new KeyValues("PosionsFake");
  114.             if (kv.ImportFromFile(sDataFilePath))
  115.             {
  116.                 KvRewind(kv);
  117.                 if (KvJumpToKey(kv, sCharMap, true))
  118.                 {
  119.                     char sBuffer[32];
  120.                     FormatEx(sBuffer, sizeof(sBuffer), "crate %i", iNum);
  121.                     KvSetVector(kv, sBuffer, vPos)
  122.                     DisplayAddBox(client);
  123.                     KeyValuesToFile(kv, sDataFilePath);
  124.                 }
  125.             }
  126.            
  127.         }
  128.         else if(symbol == 1)
  129.         {
  130.            
  131.         }
  132.     }
  133.     else if (action == MenuAction_End)
  134.     {      
  135.         CloseHandle(menu);
  136.     }
  137. }
Advertisement
Add Comment
Please, Sign In to add comment