RollTheDice [Alpha] Version 2/14/15

KKyleKKyle Michigan Join Date: 2005-07-01 Member: 55067Members
edited February 2015 in Modding
Though currently in a pre-alpha state, it's working. Made for Shine as a plugin/extension. Basically saying "/rtd" or "/rollthedice" in chat (with an press m > rtd feature soon, maybe) emits a random positive or negative effect based on chance and luck. There's a cooldown in between rolls for the sake of balance (although the rolls are meant to break balance) that can be changed via sh_rtddelay. If RTD rolls something that'snot eligable for, it effectively re-rolls until it finds something, and only when it finds something eligable, it will then add the delay for the player.

Currently, this is packed together with "SiegeModCommands" shine extension found inside of SiegeMod, and not converted into a single plugin used standalone.

Currently these are the rolls available:

Marines:
1: Gain random amount of resources (Only eligable if owned 90 or less res. Total amount of res to give does not go above 100. Gets the currents players resources and subtracts that number minus 100 to get the max amount of res available to give. Also displays this number in chat. "Name has won X amount of resources")
2. Lose random amount of resources (Only eligable if owning 10 or more resources. Does not go below 0, gets players current res and sets the max amount of res available to take and advertises how much res has been lost in chat)
3. Switch to a random weapon (This one was tricky because it rolls a number then based on that number it checks the current slow if it's empty or taken up, if taken up then checks to make sure the weapon to give isnt the same weapon in the slot, and if it matches these circumstances then it deletes that weapon in the current slot (because you dont want the weapon to drop on the floor and be able to pick it up, it would ruin the point of this), then it gives said weapon. Or if it's a grenade, it drops an active grenade where the marine is at (cluster, nerve, electric).
4. Become stomped for 10 seconds (no visual display for this yet, just an annoying roll altogether).

Aliens:
1: Gain random amount of resources (Only eligable if owned 90 or less res. Total amount of res to give does not go above 100. Gets the currents players resources and subtracts that number minus 100 to get the max amount of res available to give. Also displays this number in chat. "Name has won X amount of resources")
2. Lose random amount of resources (Only eligable if owning 10 or more resources. Does not go below 0, gets players current res and sets the max amount of res available to take and advertises how much res has been lost in chat)
3. As an alien, If you are a skulk, you win gore. If you are a lerk, you win bile bomb/spikes. If you are a gorge, you win primal scream/spikes (The messiest of the bunch as each class had to be modified to add the weapons to these classes. Which is somewhat okay because these weapons aren't attained via biomass or upgrades or any other way than cheats or RTD, though the animations are glitchy, the convars for them are glitchy such as fire rate /attack speed / animation display / chances of attaining biomass overriding these slots. It may be better to do this from scratch down the line and specifically modify each weapon for each class to get it 100% right with animations/convars/firerates/delays/right click abilities etc etc.
4. Gain enzyme for 10 seconds (no visual display for this yet/cancels out with flamethrower) ~ would prefer this to be 30 seconds where flamethrower doesn't cancel it, and where there is a visual display countdown timer.
5. Redeem/teleport back to the hive (Requires the redemption addition found in ns2c/siegemod, though can be be rewritten not to)


All in all just wanted to post this current progress here as it's been something I wanted to do for a while. From NS1, back on the "School of Darwinism", RTD was enabled every weekend to goof things up. And in TF2 where I managed a server I also wrote RTD for the server to expand it from being a serious server, to a server where players can let off some steam. I plan to do the same with the siege server every weekend and have RTD enabled only on the weekends, that is if the server stays alive with playercounts and such.


Comments

  • KKyleKKyle Michigan Join Date: 2005-07-01 Member: 55067Members
    edited February 2015
    Here's the current code that's taken from server.lua of siegemodcommands shine extension (Not in correct order here. Just the RTD portions from the file)

    P.s - I know it may be messy and there may be better ways to write everything. But it works, so it works. Currently.

    self.users = {}
    self.rtd_succeed_cooldown = 900
    self.rtd_failed_cooldown = self.rtd_succeed_cooldown
    
    function Plugin:NotifyMarine( Player, String, Format, ... )
    /*
    local ColorBucket = {"40, 248, 255", "250, 235, 215"}
    local TableRandom = table.ChooseRandom
    local Color = TableRandom( ColorBucket )
    local NameBucket = {"Avoca", "lhvwb", "HSMA"}
    local Name = TableRandom{NameBucket}
    */
    Shine:NotifyDualColour( Player, 250, 235, 215,  "[RTD] [Pre-Alpha]",  40, 248, 255, String, Format, ... )
    end
    function Plugin:NotifyAlien( Player, String, Format, ... )
    /*
    local ColorBucket = {"40, 248, 255", "250, 235, 215"}
    local TableRandom = table.ChooseRandom
    local Color = TableRandom( ColorBucket )
    local NameBucket = {"Avoca", "lhvwb", "HSMA"}
    local Name = TableRandom{NameBucket}
    */
    Shine:NotifyDualColour( Player, 250, 235, 215,  "[RTD] [Pre-Alpha]", 144, 238, 144, String, Format, ... )
    end
    
    function Plugin:AddDelayToPlayer(Player)
     return true
    end
    
    function Plugin:RollPlayer(Player)
    //self:NotifyMarine( nil, "%s Attempting to roll. Getting Qualifications.", true, Player:GetName())
    if Player:GetIsAlive() and Player:GetTeamNumber() == 1 and not Player:isa("Commander") then 
    //self:NotifyMarine( nil, "%s Player is an alive marine, not commander. Could be marine, jetpack, or exo. Getting random number.", true, Player:GetName())
       local MarineorJetpackMarineorExoRoll = math.random(1, 4)
        //self:NotifyMarine( nil, "%s Random number calculated, now applying.", true, Player:GetName())
         if MarineorJetpackMarineorExoRoll == 1 then
         //self:NotifyMarine( nil, "%s Random number is 1. Checking resource gain qualifications)", true, Player:GetName())
               if Player:GetResources() >= 90 then self:RollPlayer(Player) return end //self:NotifyMarine( nil, "%s Resources are 90 or greater. No need to add. ReRolling.", true, Player:GetName()) self:RollPlayer(Player) return end
               local OnlyGiveUpToThisMuch = 100 - Player:GetResources()
               local GiveResRTD = math.random(1, OnlyGiveUpToThisMuch)
               Player:SetResources(Player:GetResources() + GiveResRTD) 
               self:NotifyMarine( nil, "%s won %s resource(s)", true, Player:GetName(), GiveResRTD)
               self:AddDelayToPlayer(Player)
          return
         end//End of roll 1
          if MarineorJetpackMarineorExoRoll == 2 then 
                //self:NotifyMarine( nil, "%s roll number 2. Calcualting how much res the player has.", true, Player:GetName()) 
                 if Player:GetResources() <= 9 then self:RollPlayer(Player) return end //self:NotifyMarine( nil, "%s Player has 9 or less res. No need to remove. ReRolling Player.", true, Player:GetName()) self:RollPlayer(Player)  end
              if Player:GetResources() >= 10 then   
                 //self:NotifyMarine( nil, "%s Player has 10 or greater res. Calculating how much to randomly take away. ", true, Player:GetName()) 
                 local OnlyRemoveUpToThisMuch = Player:GetResources() 
                 local LoseResRTD = math.random(1, OnlyRemoveUpToThisMuch) 
                 Player:SetResources(Player:GetResources() - LoseResRTD)
                 self:NotifyMarine( nil, "%s lost %s resource(s)", true, Player:GetName(),  LoseResRTD)
             self:AddDelayToPlayer(Player)
             return
             end
          end//roll 2
    if MarineorJetpackMarineorExoRoll == 3 then
                 //self:NotifyMarine( nil, "%s Rolled a 3. Determining Qualifications.", true, Player:GetName())
              if Player:isa("Exo") then self:RollPlayer(Player) return end //self:NotifyMarine( Player, "Rolled a 3, though is not eligable. Re-Rolling.") self:RollPlayer(Player)  end  //self:NotifyMarine( nil, "%s Player is an exo and not qualified for roll 3 (yet). ReRolling", true, Player:GetName()) self:RollPlayer(Player)  end 
          if not Player:isa("Exo") then 
              //self:NotifyMarine( nil, "%s Player is not an exo, so is qualified for roll 3 (Maybe roll 3 WILL have exo alternative later :))", true, Player:GetName())             
               local WeaponRoll = math.random(1, 11) 
              // self:NotifyMarine( nil, "%s Attaining weapon to switch to", true, Player:GetName())       //Destroy the entity so it's not dropped, and can be picked up, which is espcially annoyign with ns2+ autopicking it up, rendering this useless unless deleted
               if WeaponRoll == 1 and Player:GetWeaponInHUDSlot(1) ~= nil and not Player:GetWeaponInHUDSlot(1):isa("GrenadeLauncher") then DestroyEntity(Player:GetWeaponInHUDSlot(1)) Player:GiveItem(GrenadeLauncher.kMapName) self:NotifyMarine( nil, "%s switched to a GrenadeLauncher", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
                         if WeaponRoll == 1 and Player:GetWeaponInHUDSlot(1) == nil then Player:GiveItem(GrenadeLauncher.kMapName) self:NotifyMarine( nil, "%s switched to a GrenadeLauncher", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 2 and Player:GetWeaponInHUDSlot(1) ~= nil and not Player:GetWeaponInHUDSlot(1):isa("HeavyRifle") then DestroyEntity(Player:GetWeaponInHUDSlot(1)) Player:GiveItem(HeavyRifle.kMapName) self:NotifyMarine( nil, "%s switched to a HMG.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
                          if WeaponRoll == 2 and Player:GetWeaponInHUDSlot(1) == nil then Player:GiveItem(HeavyRifle.kMapName) self:NotifyMarine( nil, "%s switched to a HMG.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 3 and Player:GetWeaponInHUDSlot(1) ~= nil and not Player:GetWeaponInHUDSlot(1):isa("Flamethrower") then DestroyEntity(Player:GetWeaponInHUDSlot(1)) Player:GiveItem(Flamethrower.kMapName) self:NotifyMarine( nil, "%s switched to a flamethrower.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
                          if WeaponRoll == 3 and Player:GetWeaponInHUDSlot(1) == nil then Player:GiveItem(Flamethrower.kMapName) self:NotifyMarine( nil, "%s switched to a flamethrower.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 4 and Player:GetWeaponInHUDSlot(1) ~= nil and not Player:GetWeaponInHUDSlot(1):isa("Rifle") then DestroyEntity(Player:GetWeaponInHUDSlot(1)) Player:GiveItem(Rifle.kMapName) self:NotifyMarine( nil, "%s switched to a rifle.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
                          if WeaponRoll == 4 and Player:GetWeaponInHUDSlot(1) == nil then Player:GiveItem(Rifle.kMapName) self:NotifyMarine( nil, "%s switched to a rifle.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 5 and not Player:GetWeaponInHUDSlot(3):isa("Welder") then Player:GiveItem(Welder.kMapName) self:NotifyMarine( nil, "%s switched to a welder.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 6 and not Player:GetWeaponInHUDSlot(3):isa("Axe") then DestroyEntity(Player:GetWeaponInHUDSlot(3)) Player:GiveItem(Axe.kMapName) self:NotifyMarine( nil, "%s switched to a axe.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 7 and Player:GetWeaponInHUDSlot(2) ~= nil and not Player:GetWeaponInHUDSlot(2):isa("Pistol") then DestroyEntity(Player:GetWeaponInHUDSlot(2)) Player:GiveItem(Pistol.kMapName) self:NotifyMarine( nil, "%s switched to a pistol", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
                         if WeaponRoll == 7 and Player:GetWeaponInHUDSlot(2) == nil then Player:GiveItem(Pistol.kMapName) self:NotifyMarine( nil, "%s switched to a pistol", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 8 and Player:GetWeaponInHUDSlot(2) ~= nil and not Player:GetWeaponInHUDSlot(2):isa("Shotgun") then DestroyEntity(Player:GetWeaponInHUDSlot(2)) Player:GiveItem(Shotgun.kMapName) self:NotifyMarine( nil, "%s switched to a shotgun.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
                         if WeaponRoll == 8 and Player:GetWeaponInHUDSlot(2) == nil then Player:GiveItem(Shotgun.kMapName) self:NotifyMarine( nil, "%s switched to a shotgun.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 9 then Player:GiveItem(GasGrenade.kMapName) self:NotifyMarine( nil, "%s dropped an active gas grenade.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 10 then Player:GiveItem(ClusterGrenade.kMapName) self:NotifyMarine( nil, "%s dropped an active cluster grenade.", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               if WeaponRoll == 11 then Player:GiveItem(PulseGrenade.kMapName) self:NotifyMarine( nil, "%s dropped an activepulse grneade", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
               //if WeaponRoll == 12 then Player:DeleteAllWeapons() self:NotifyMarine( nil, "%s deleted all currently held weapons!", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
              //self:NotifyMarine( nil, "%s Rolled to switch to a weapon that's already owned. Therefore re-rolling.", true, Player:GetName())
              self:RollPlayer(Player)
              //Weaponroll == 13 spawn enemy spores/umbra on target?
              return
          end// end of player exo
    end //end of rol l3  
          if MarineorJetpackMarineorExoRoll == 4 then
                //self:NotifyMarine( nil, "%s Rolled a 4", true, Player:GetName())
                if Player:isa("Exo") or not Player:GetIsOnGround() or Player:GetIsStunned() then self:RollPlayer(Player) return end //self:NotifyMarine( nil, "%s Not qualified for roll 4. Re-rolling", true, Player:GetName()) self:RollPlayer(Player) return end
                Player:SetStun(10)
                //Timer: Set Camera distance to third person and back to first person
                //Add stun safeguard to either this roll or rtd in general? prohibit it?
                self:NotifyMarine( nil, "%s Has been stunned for 10 seconds (no countdown timer for this yet)", true, Player:GetName())
                self:AddDelayToPlayer(Player) 
                return 
          end//End of roll 4            
    end //End of marine roll
     if Player:GetIsAlive() and Player:GetTeamNumber() == 2 and not Player:isa("Commander") then
      //self:NotifyAlien( nil, "%s Player is an alive alien, not commander.", true, Player:GetName())
          local AlienRoll = math.random(1,5)
          //self:NotifyAlien( nil, "%s Random number calculated, now applying.", true, Player:GetName())
          if AlienRoll == 1 then
         //self:NotifyAlien( nil, "%s Random number is 1. Checking resource gain qualifications)", true, Player:GetName())
                  if Player:GetResources() >= 90 then self:RollPlayer(Player) return end //self:NotifyAlien( nil, "%s Resources are 90 or greater. No need to add. ReRolling.", true, Player:GetName()) self:RollPlayer(Player) return end
                  local OnlyGiveUpToThisMuch = 100 - Player:GetResources()
                  local GiveResRTD = math.random(1, OnlyGiveUpToThisMuch)
                  Player:SetResources(Player:GetResources() + GiveResRTD)
                  self:NotifyAlien( nil, "%s won %s resource(s)", true, Player:GetName(), GiveResRTD)
                  self:AddDelayToPlayer(Player)
                  return
          end//Alien roll 1
          if AlienRoll == 2 then
                //self:NotifyAlien( nil, "%s roll number 2. Calcualting how much res the player has.", true, Player:GetName()) 
                     if Player:GetResources() <= 9 then self:RollPlayer(Player) return end //self:NotifyAlien( nil, "%s Player has 9 or less res. No need to remove. ReRolling Player.", true, Player:GetName()) self:RollPlayer(Player)  end
                 if Player:GetResources() >= 10 then   
                 //self:NotifyAlien( nil, "%s Player has 10 or greater res. Calculating how much to randomly take away. ", true, Player:GetName()) 
                 local OnlyRemoveUpToThisMuch = Player:GetResources() 
                 local LoseResRTD = math.random(1, OnlyRemoveUpToThisMuch)  
                 Player:SetResources(Player:GetResources() - LoseResRTD)
                 self:NotifyAlien( nil, "%s lost %s resource(s)", true, Player:GetName(),  LoseResRTD)
                 self:AddDelayToPlayer(Player)
                 return
                 end
                 
          end//Alien roll 2
          if AlienRoll == 3 then //Maybe better to add a whole new class and replace the class/respawn the player in the current location
                                 //Would REQUIRE Alot alot of work, especially for each class and each weapon to give. THough don't know any alternative
                                 //Aside from sticking to the glitchy animation/damage/energy. Which considers this into the state of alpha :)
                                 //The above may be required for secondary attccks from classes. OR can be possibly edited the weapon files them self such as LeapGORE(rtd) rather than LeapBite, or visa versa
                                 //Seems fine so far having the weapons this way because the game is not told to give the classes these weapons, even thought the hudslots match. 
          //self:NotifyAlien( nil, "%s Rolled a 3.", true, Player:GetName())                
          if Player:isa("Skulk") then DestroyEntity(Player:GetWeaponInHUDSlot(1)) Player:GiveItem(Gore.kMapName) self:NotifyAlien( nil, "%s is a skulk and traded bite/leap for gore (DO NOT GESTATE)", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
          if Player:isa("Gorge") and Player:GetWeaponInHUDSlot(4) ~= nil then DestroyEntity(Player:GetWeaponInHUDSlot(4)) Player:GiveItem(Primal.kMapName) self:NotifyAlien( nil, "%s is a gorge and won Primal Scream and spikes!! (Slot 4/DO NOT GESTATE)", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
                if Player:isa("Gorge") and Player:GetWeaponInHUDSlot(4) == nil then Player:GiveItem(Primal.kMapName) self:NotifyAlien( nil, "%s is a gorge and won Primal Scream and spikes!! (Slot 4/DO NOT GESTATE)", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
          if Player:isa("Lerk") and Player:GetWeaponInHUDSlot(3) ~= nil  then DestroyEntity(Player:GetWeaponInHUDSlot(3)) Player:GiveItem(BileBomb.kMapName) self:NotifyAlien( nil, "%s is a lerk and traded Spores & Spikes for Bile Bomb & Heal Spray!! (DO NOT GESTATE)", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
                 if Player:isa("Lerk") and Player:GetWeaponInHUDSlot(3) == nil  then Player:GiveItem(BileBomb.kMapName) self:NotifyAlien( nil, "%s is a lerk and traded Spores & Spikes for Bile Bomb & Heal Spray!! (DO NOT GESTATE)", true, Player:GetName()) self:AddDelayToPlayer(Player) return end
          //self:NotifyAlien( nil, "%s Not eligable for weapon switch roll. Re-Rolling.", true, Player:GetName())
          self:RollPlayer(Player)
          // add if not weapon:gethudslot weapon:isa to prevent getting the same duplicate, rather reroll // Add in if not weaponslot then because if alien does not have the biomass for it then nothging happens, or biomass may overrwrite it?
          return
          end//End of alien roll 3
          if AlienRoll == 4 then //Trigger effects as a miniroll here? 
          //self:NotifyAlien( nil, "%s Rolled a 4", true, Player:GetName())   
          //Make the enzyme immune to flamethrowers, and for 30 seconds  
          //Phantom, Mucousright n
          Player:TriggerEnzyme(10)
          self:NotifyAlien( nil, "%s has been enzymed for 10 seconds (or until set on fire) (No display countdown yet)", true, Player:GetName())  
          self:AddDelayToPlayer(Player) 
          return 
          end//alien roll 4
          if AlienRoll == 5 then
          //self:NotifyAlien( nil, "%s Rolled a 5", true, Player:GetName())    
          Player:TeleportToHive()
          self:NotifyAlien( nil, "%s Redeemed/Teleported back to an hive", true, Player:GetName())  
          self:AddDelayToPlayer(Player) 
          return 
          end  //alien roll 5
     end //end of alien roll
     return false
    end //End of rollplayer
    
    
    
    local function RTDDelay(Client, Number)
    local oldvalue = self.rtd_succeed_cooldown
    self.rtd_succeed_cooldown = Number
    if oldvalue > Number then self.Users = {} end //So that changing the convar mid game also updates those who rolled before hand rather than it not being updated after. 
                                                  //Probably an alternate way that doesn't reset the playerlist, but rather subtract from the total based on the difference.
                                                  //But until or if this becomes a problem, then..
    self:NotifyMarine( nil, "RTD Cooldown delay changed to %s seconds", true, Number)
    end
    
    local RTDDelayCommand = self:BindCommand("sh_rtddelay", "rtddelay", RTDDelay)
    RTDDelayCommand:Help("Sets the successful rtd delay cooldown with the failed cooldown 30 seconds less than that.")
    RTDDelayCommand:AddParam{ Type = "number" }
    
    local function RollTheDice( Client )
    //Do something regarding pre-game?
    local Player = Client:GetControllingPlayer()
    
             if Player:isa("Egg") or Player:isa("Embryo") then
             Shine:NotifyError( Player, "You cannot gamble while an egg/embryo (Yet)" )
             return
             end
             
             if Player:isa("ReadyRoomPlayer") or (Player:GetTeamNumber() ~= 1 and Player:GetTeamNumber() ~= 2) then
             Shine:NotifyError( Player, "You must be an alien or marine to gamble (In this version, atleast)" )
             return
             end
             
             if Player:isa("Commander") then
             Shine:NotifyError( Player, "You cannot gamble while a commander (Yet)" )
             return
             end
             
              if Player:isa("Spectator") then
             Shine:NotifyError( Player, "You cannot gamble while spectating (Yet)" )
             return
             end
             
             if not Player:GetIsAlive() then
             Shine:NotifyError( Player, "You cannot gamble when you are dead (Yet)" )
             return
             end
             
    local Time = Shared.GetTime()
    local NextUse = self.Users[ Client ]
    
    
          if NextUse and NextUse > Time then
           Shine:NotifyError( Player, "You must wait %s before gambling again.", true, string.TimeToString( NextUse - Time ) )
          return
           end
    
    self:RollPlayer(Player) //Differentiate the Delay and the re-rolling to prevent duplicate chat messages of delay during the re-rolling process.
    
    local Success = self:AddDelayToPlayer(Player)
    if Success then
    self.Users[ Client ] = Time + self.rtd_succeed_cooldown
    else
    Shine:NotifyError( Player, "Unable to gamble. Try again in %s.", true, string.TimeToString( self.rtd_failed_cooldown ) )
    self.Users[ Client ] = Time + self.rtd_failed_cooldown
    end
    
    end
    
    local RollTheDiceCommand = self:BindCommand( "sh_rtd", { "rollthedice", "rtd" }, RollTheDice, true)
    RollTheDiceCommand:Help( "Gamble and emit a positive or negative effect") 
    
    
  • GhoulofGSG9GhoulofGSG9 Join Date: 2013-03-31 Member: 184566Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Reinforced - Supporter, WC 2013 - Supporter, Pistachionauts
    Please use in the future code sharing platforms like Github, Bitbuckit, SourceForge, Google Code or LaunchPad to share code.

    This forum is really not the right format for it.

    If you still want to share certain snippets please use Pastebin or Gist or at least put a spoiler around it ;)
  • BeigeAlertBeigeAlert Texas Join Date: 2013-08-08 Member: 186657Members, Super Administrators, Forum Admins, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, NS2 Map Tester, Reinforced - Diamond, Reinforced - Shadow, Subnautica Playtester, Pistachionauts
    I'm just happy to see emoticons in the comments.
  • CarNagE1CarNagE1 Poland Join Date: 2003-05-14 Member: 16298Members, NS2 Playtester, Reinforced - Shadow, WC 2013 - Supporter, Subnautica Playtester
    Realy interesting plugin :) maybe you could make it as a group only, so server regs could use it as a reward for being part of a server community. 100 res is a litle to much. Add nanoshield as an option? if it would be just shine plugin i would add it to my server. Looks fun :)
  • KKyleKKyle Michigan Join Date: 2005-07-01 Member: 55067Members
    edited February 2015
    CarNagE1 wrote: »
    Realy interesting plugin :) maybe you could make it as a group only, so server regs could use it as a reward for being part of a server community. 100 res is a litle to much. Add nanoshield as an option? if it would be just shine plugin i would add it to my server. Looks fun :)

    Thanks. Maybe a group only one day. At the moment I plan on making it a single plugin outside of siegemod once it's ready enough.

    Here's todays changelog. Lots of positives -.- (no point in posting the sourcecode right now either)
    RTD Update


    added:
    Marines:
    Win/lose hp
    win/lose armor
    win scan
    win 30 seconds of catpack
    win nanoshield 30 seconds
    win nano + catpack 30 seconds
    win bonewall
    win/lose jetpack
    toggle flashlight on/off 30 seconds
    respawn instantly if dead within 30 secon timespan

    added

    aliens:
    win fireproof umbra 30 seconds
    win respawn instantlyif dead within 30 second timespan
    win hallucination cloud
    win ink cloud
    win 30 seconds of spore clouds spawning on location
    win 30 seconds of mucous membrane
    win/lose health
    win/lose armor
    changed
    aliens:


    10 secondnon fireproof enzyme to 30 second fireproof




    Brainstormed these convars/config yet not implemented


    kRTDEnabled 1
    kRTDDelay = 90
    kRTDDontGiveMarinesResIfOwnedThisMuchOrMore = 90
    kRTDMarineMinimumAmountOfRandomResToWin = 9 (Minus the above convar is this convars max)
    kRTDDontTakeMarineResIfOwnedthisMuchOrLess = 9 // Must be 1 or less then below
    kRTDTakeMarineResIfOwnedThisMuchOrMore = 10 // Must be 1 or more then above
    kRTDMarineStunDuration = 10
    kRTDCatPackDuration = 30
    kRTDNanoShieldDuration = 30
    kRTDMarineFlashLightToggleDuration = 30
    kRTDMarineInstantRespawnInsuranceDuration = 30
    kRTDMarineCatPackANDNanoShieldComboDuration = 30
    kRTDMarineDontGiveHPIfAtThisNumberOrLess = 90
    kRTDGiveMarineHPIfAtThisNumberOrMmore = 89
    kRDDDontTakeAwayHPIfAtThisNumberOrLess = 10
    kRTDTakeAwayHPIfAtThisNumberOrMore = 11
    kRTDDontTakeAwayArmorIfAtThisPercentOrMore = 90
    kRTDTakeAwayArmorIfAtThisPercentOrMore = 89
    kRTDMarineDontTakeAwayArmorIfAtThisPercentOrLess = 10
    kRTDMarineTakeAwayArmorIfAtThisPercentOrMore = 11

  • IeptBarakatIeptBarakat The most difficult name to speak ingame. Join Date: 2009-07-10 Member: 68107Members, Constellation, NS2 Playtester, Squad Five Blue, NS2 Map Tester, Reinforced - Diamond, Reinforced - Shadow
    Looks fun, if possible would you be able to scale player size alongside a hp increase/reduction?

    It would be pretty funny to have a giant gorge and a tiny onos running around the place.
  • NordicNordic Long term camping in Kodiak Join Date: 2012-05-13 Member: 151995Members, NS2 Playtester, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow
    Looks fun, if possible would you be able to scale player size alongside a hp increase/reduction?

    It would be pretty funny to have a giant gorge and a tiny onos running around the place.

    I remember awhile back gibs made a mod that every time a gorge spit landed the gorge grew in size. It had a problem that the gorge hit box remained the same no matter how big the gorge got. If you fix that it would be pretty cool. Tiny onos would be OP.
  • Soul_RiderSoul_Rider Mod Bean Join Date: 2004-06-19 Member: 29388Members, Constellation, Squad Five Blue
    It was xDragon that made the mod, and the hit box always changed size, as the hitbox is determined from the model, it was the collisions that didn't.

    I however fixed this and released the ScaleModelMixin which enables you to scale any model and it's collision box. It is used in GorgeCraft and was used in the videos I made with the tiny players mod. It is simple to incorporate and is available on steam as open source for anyone to use in open source projects.
  • KKyleKKyle Michigan Join Date: 2005-07-01 Member: 55067Members
    Welp I posted a standalone alpha version on the workshop for those interested.

    Link
Sign In or Register to comment.