Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const float RESPTIME = 1000f;
- public class PlayerData{
- public IPlayer Body = null;
- public IUser User = null;
- public PlayerTeam Team = PlayerTeam.Independent;
- public float RespTime = 8000f;
- public bool Dead = true;
- public Vector2 Spawn = Start;
- public PlayerData(IPlayer ply){
- this.Body = ply;
- this.User = ply.GetUser();
- this.Team = ply.GetTeam();
- }
- }
- static Vector2 Start = Vector2.Zero;
- List <PlayerData> DataList = new List<PlayerData>();
- public void OnStartup(){
- Start = ((IObject)Game.GetSingleObjectByCustomId("Start")).GetWorldPosition();
- IObjectTimerTrigger TimerHund = (IObjectTimerTrigger)Game.CreateObject("TimerTrigger");
- TimerHund.SetScriptMethod("RespawnCheck");
- TimerHund.SetIntervalTime(100);
- TimerHund.SetRepeatCount(0);
- TimerHund.Trigger();
- foreach(IPlayer ply in Game.GetPlayers()){
- DataList.Add(new PlayerData(ply));
- ply.Remove();
- }
- }
- public void RespawnCheck(TriggerArgs args){
- foreach(PlayerData data in DataList){
- if (data.Dead && (data.RespTime < Game.TotalElapsedGameTime || Game.TotalElapsedGameTime < 1000f)){
- Respawn(data);
- }
- if ((data.Body.IsRemoved || data.Body.IsDead)&& !data.Dead){
- data.RespTime = Game.TotalElapsedGameTime + RESPTIME;
- data.Dead = true;
- }
- }
- }
- public void Respawn(PlayerData data){
- IPlayer ply = Game.CreatePlayer(data.Spawn);
- data.Dead = false;
- if (data.Body != null) data.Body.Remove();
- ply.SetProfile(data.User.GetProfile());
- ply.SetUser(data.User);
- ply.SetTeam(data.Team);
- data.Body = ply;
- }
- public PlayerData GetData(IUser user){
- foreach(PlayerData data in DataList){
- if (user.UserId == data.User.UserId) return data;
- }
- return null;
- }
- public void gameover(TriggerArgs args)
- {
- Game.SetGameOver("GREAT JOB! YOU WON!");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement