Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GameEvent =
- {
- Properties = {
- nId = 1,
- nAllowedDeaths = 3,
- sUniqueName = "",
- bRespawnAtTagpoint=0,
- },
- Editor = { Model="Objects/Editor/Anchor.cgf", },
- }
- function GameEvent:OnInit()
- end
- function GameEvent:OnShutDown()
- end
- function GameEvent:Event_Save(sender)
- self:EnableSave(nil);
- self.bSaveNow = nil;
- self:SetTimer(100);
- end
- function GameEvent:OnTimer()
- if (_localplayer.timetodie) then return end
- if (self.bSaveNow) then
- self.bSaveNow = nil;
- -- if in the vehicle - can't save at respawnPoint pos/angles
- if (self.Properties.bRespawnAtTagpoint==1 and _localplayer.theVehicle==nil ) then
- _LastCheckPPos = new (self:GetPos());
- _LastCheckPAngles = new(self:GetAngles());
- else
- _LastCheckPPos = new (_localplayer:GetPos());
- _LastCheckPAngles = new(_localplayer:GetAngles(1));
- end
- self:KillTimer();
- AI:Checkpoint();
- if (self.Properties.sUniqueName ~= "") then
- if (ALLOWED_DEATHS) then
- if (ALLOWED_DEATHS[self.Properties.sUniqueName]) then
- AI:SetAllowedDeathCount(ALLOWED_DEATHS[self.Properties.sUniqueName].deaths);
- end
- end
- else
- AI:SetAllowedDeathCount(self.Properties.nAllowedDeaths);
- end
- --Game:TouchCheckPoint(self.Properties.nId, _LastCheckPPos, _LastCheckPAngles);
- local cp_savbasename = Game:GetLevelName();
- if (Mission) and (Mission.save_mission) then
- cp_savbasename = cp_savbasename.."_"..Mission.save_mission;
- else
- cp_savbasename = cp_savbasename.."_"..Game:GetMapDefaultMission(cp_savbasename);
- end
- cp_savbasename = strlower("checkpoint_"..cp_savbasename.."_"..self.Properties.nId);
- Game:Save(cp_savbasename);
- -- Mixer: make entry in save base
- local savbase_date = "";
- for i, val in Game:GetModsList() do
- if (val.CurrentMod) then
- if (val.Folder~="") then
- savbase_date = val.Folder.."/";
- break;
- end
- end
- end
- local sav_datetime = date("%Y%m%d%H%M%S")..strlower(Game:GetLevelName());
- if (UI) then
- UI:Ecfg(savbase_date.."Levels/sav_base.ini",cp_savbasename,sav_datetime);
- end
- if (Game.OnAfterSave) then
- Game:OnAfterSave();
- end
- else
- if (Game.OnBeforeSave) then
- Game:OnBeforeSave();
- end
- self.bSaveNow = 1;
- self:SetTimer(1);
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment