Guest User

Untitled

a guest
Aug 14th, 2025
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. GameEvent =
  2. {
  3. Properties = {
  4. nId = 1,
  5. nAllowedDeaths = 3,
  6. sUniqueName = "",
  7. bRespawnAtTagpoint=0,
  8. },
  9.  
  10. Editor = { Model="Objects/Editor/Anchor.cgf", },
  11. }
  12.  
  13. function GameEvent:OnInit()
  14. end
  15.  
  16. function GameEvent:OnShutDown()
  17. end
  18.  
  19. function GameEvent:Event_Save(sender)
  20. self:EnableSave(nil);
  21. self.bSaveNow = nil;
  22. self:SetTimer(100);
  23. end
  24.  
  25. function GameEvent:OnTimer()
  26.  
  27. if (_localplayer.timetodie) then return end
  28. if (self.bSaveNow) then
  29. self.bSaveNow = nil;
  30. -- if in the vehicle - can't save at respawnPoint pos/angles
  31. if (self.Properties.bRespawnAtTagpoint==1 and _localplayer.theVehicle==nil ) then
  32. _LastCheckPPos = new (self:GetPos());
  33. _LastCheckPAngles = new(self:GetAngles());
  34. else
  35. _LastCheckPPos = new (_localplayer:GetPos());
  36. _LastCheckPAngles = new(_localplayer:GetAngles(1));
  37. end
  38.  
  39. self:KillTimer();
  40. AI:Checkpoint();
  41.  
  42. if (self.Properties.sUniqueName ~= "") then
  43. if (ALLOWED_DEATHS) then
  44. if (ALLOWED_DEATHS[self.Properties.sUniqueName]) then
  45. AI:SetAllowedDeathCount(ALLOWED_DEATHS[self.Properties.sUniqueName].deaths);
  46. end
  47. end
  48. else
  49. AI:SetAllowedDeathCount(self.Properties.nAllowedDeaths);
  50. end
  51.  
  52. --Game:TouchCheckPoint(self.Properties.nId, _LastCheckPPos, _LastCheckPAngles);
  53. local cp_savbasename = Game:GetLevelName();
  54. if (Mission) and (Mission.save_mission) then
  55. cp_savbasename = cp_savbasename.."_"..Mission.save_mission;
  56. else
  57. cp_savbasename = cp_savbasename.."_"..Game:GetMapDefaultMission(cp_savbasename);
  58. end
  59.  
  60. cp_savbasename = strlower("checkpoint_"..cp_savbasename.."_"..self.Properties.nId);
  61. Game:Save(cp_savbasename);
  62. -- Mixer: make entry in save base
  63. local savbase_date = "";
  64. for i, val in Game:GetModsList() do
  65. if (val.CurrentMod) then
  66. if (val.Folder~="") then
  67. savbase_date = val.Folder.."/";
  68. break;
  69. end
  70. end
  71. end
  72.  
  73. local sav_datetime = date("%Y%m%d%H%M%S")..strlower(Game:GetLevelName());
  74. if (UI) then
  75. UI:Ecfg(savbase_date.."Levels/sav_base.ini",cp_savbasename,sav_datetime);
  76. end
  77.  
  78. if (Game.OnAfterSave) then
  79. Game:OnAfterSave();
  80. end
  81. else
  82. if (Game.OnBeforeSave) then
  83. Game:OnBeforeSave();
  84. end
  85.  
  86. self.bSaveNow = 1;
  87. self:SetTimer(1);
  88. end
  89. end
Advertisement
Add Comment
Please, Sign In to add comment