1. ВКонтакте
  2. Facebook

TeleportSystem

Супер Админ
  1. Оффлайн
  2. VIP
  3. 117 сообщений
  4. Сообщение
  5. Личные данные
Полезность: 0 | сообщение № 1 отправлено 09:01, 19.10.2011
TeleportSystem


php code:
  1. -- =============================================================================
  2. -- File: Patriot/Extensions.lua
  3. -- Date: 23/11/09
  4. -- =============================================================================
  5. -- This file is maintained as part of the SSM Patriot project. All additions
  6. -- are the sole work of their authors with whom all copyright and ownership
  7. -- resides. However, each author grants license for the use of his or her
  8. -- work to be a part of the SSM Patriot project.
  9. --
  10. --      Developers:     Richard 'DarkLite' May          -(Development Lead)
  11. --              Daniel 'Rod-Serling' Phelps             -(Creator)
  12. --                              Fraser 'Sitting-Duc' Molyneux   -(Developer)
  13. -- =============================================================================
  14.  
  15. TeleportSystem = {Data = {}};
  16.  
  17. function TeleportSystem:SavePos(pos)
  18.     local mapname = string.lower(g_gameRules.game:GetCurrentLevel());
  19.     self.Data[mapname] = self.Data[mapname] or {};
  20.     for i, position in ipairs(self.Data[mapname]) do
  21.         if (position.x == pos.x and position.y == pos.y and position.z == pos.z) then
  22.             return false, "position already saved";
  23.         end
  24.     end
  25.     local index = #self.Data[mapname] + 1;
  26.    self.Data[mapname][index] = pos;
  27.     FileHnd, Err = io.open(Patriot.rootDir.."Patriot/Server/Teleports.txt", "a+");
  28.     if (FileHnd) then
  29.         FileHnd:write("Mapname: \""..mapname.."\" | X: \""..pos.x.."\" | Y: \""..pos.y.."\" | Z: \""..pos.z.."\"\n");
  30.         FileHnd:close();
  31.     end
  32.     return true;
  33. end
  34.  
  35. function TeleportSystem:Load()
  36.     self.Data = {};
  37.         FileHnd, Err = io.open(Patriot.rootDir.."Patriot/Server/Teleports.txt", "r")
  38.         if (FileHnd) then
  39.         for line in FileHnd:lines() do
  40.             System.LogAlways("Line: "..line)
  41.             local m, x, y, z = string.match(line, "Mapname: \"(.*)\" | X: \"(.*)\" | Y: \"(.*)\" | Z: \"(.*)\"");
  42.             if (m and x and y and z) then
  43.                 self.Data[m] = self.Data[m] or {};
  44.                 local index = #self.Data[m] + 1;
  45.                self.Data[m][index] = {x = tonumber(x), y = tonumber(y), z = tonumber(z)};
  46.             end
  47.         end
  48.         FileHnd:close();
  49.     end
  50. end
  51.  
  52. TeleportSystem:Load();
  53.  
  54. AddChatCommand("savepos", {premium=true, info="save your position"}, function (player)
  55.     local success, err = TeleportSystem:SavePos(player:GetWorldPos());
  56.     if (success) then
  57.         g_gameRules.game:SendTextMessage(TextMessageCenter, "Position saved!", TextMessageToClient, player.id);
  58.     end
  59.     return success, err
  60. end);
  61.  
  62.  
  63. AddChatCommand("listpos", {premium=true, info="list saved positions"}, function (player)
  64.     local mapname = string.lower(g_gameRules.game:GetCurrentLevel());
  65.     if (TeleportSystem.Data[mapname]) then
  66.         ConsoleMessage:ToPlayer(player, "$9=================={$6POSITION LIST$9}==================")
  67.         ConsoleMessage:ToPlayer(player, "$9Positions for map: $8\""..mapname.."\":");
  68.         for i, pos in ipairs(TeleportSystem.Data[mapname]) do
  69.             ConsoleMessage:ToPlayer(player, "$9[$6"..i.."$9] X: $6"..pos.x.."$9 Y:$6 "..pos.y.."$9 Z:$6 "..pos.z);
  70.         end
  71.         ConsoleMessage:ToPlayer(player, "$9=======================================================")
  72.     else
  73.         ConsoleMessage:ToPlayer(player, "$9=================={$6POSITION LIST$9}==================")
  74.         ConsoleMessage:ToPlayer(player, "$9Positions for map: $8\""..mapname.."\":");
  75.         ConsoleMessage:ToPlayer(player, "$9No positions found! Feel free to save some...");
  76.         ConsoleMessage:ToPlayer(player, "$9=======================================================")
  77.     end
  78.     g_gameRules.game:SendTextMessage(TextMessageCenter, "Open console with [^] or [~] to view position data!", TextMessageToClient, player.id);
  79.     return true;
  80. end);
  81.  
  82. AddChatCommand("loadpos", {premium=true, info="jump to a specified location", args={"index"}}, function (player, index)
  83.     local mapname = string.lower(g_gameRules.game:GetCurrentLevel());
  84.     index = tonumber(index);
  85.     if (not index) then
  86.         return false, "specify an index!"
  87.     end
  88.     if (TeleportSystem.Data[mapname]) then
  89.         local pos = TeleportSystem.Data[mapname][index];
  90.         if (pos) then
  91.             pos.z = pos.z + 1;
  92.             g_gameRules:CreateExplosion(player.id,weaponId,1,player:GetWorldPos(),g_Vectors. up,1,1,1,1,"misc.emp.sphere",0.3, 0.3, 0.3, 0.3);
  93.             g_gameRules.game:SetInvulnerability(player.id, true, 3);
  94.                 g_gameRules.game:MovePlayer(player.id, pos, player:GetWorldAngles());
  95.                 return true;
  96.         end
  97.                 return false, "invalid index specified"
  98.     end
  99.     return false, "No positions saved for this map!"
  100. end);

У Вас недостаточно прав для скачивания файлов.


------------------------------------------
DDR3 8G (4*2G), 1600МГц Это мало?
 
Поделиться темой:
Перейти

Доступ закрыт.

  1. Вам запрещено отвечать в темах данного форума.

Последние темы

  1. Настройка серверного мода Crysis
    Автор: dimas824 18:04, 12.01.2013
  2. Crysis 2 обсуждение
    Автор: PGJA44 23:01, 07.01.2013
  3. Crysis 2 Настройка Servera (Вопросы)
    Автор: seregas 13:18, 29.12.2012
  4. Crysis Wars обсуждение
    Автор: coody55 12:22, 21.11.2012
  5. AEGISX Как убрать бесконечные (40) патро...
    Автор: coody55 12:10, 21.11.2012
  6. Pioneer
    Автор: coody55 18:05, 08.11.2012

Изменения статуса

  1. профиль Воин будущего 20:35, 10.12.2012
  2. профиль ИЩЮ КЛЮЧЬ НА CRYSIS 2 ЕСЛИ ЕСТЬ ТО ДАЙ 23:39, 04.05.2012
  3. профиль как делать серийный номер ключ 23:56, 24.02.2012
  4. профиль ыца! 11:04, 30.01.2012
  5. профиль DDR3 8G (4*2G), 1600МГц Это мало? 22:56, 29.01.2012
  6. профиль i5-2500k gigabyte z68x GTX 580 msi 8 гб оперативной памят... 23:14, 21.12.2011

За последние 10 минут эту тему посетило 1 человек (0 пользователей, 1 гостей, 0 скрытых пользователей)
Полный список по: последнему действию или именам пользователей