Difference between revisions of "Rollers"
m (Reverted edits by Li zing ling2 (talk) to last revision by Uncanny) (Tag: Rollback) |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | The earlier form of the Rollermine, the Roller and its variations are some of the earlier entities present in the Leak's source, and they come accompanied with two early models. | |
− | + | ==Model== | |
− | + | There are two models present in the leak: | |
− | + | <blockquote> | |
− | + | "roller.mdl"<br> | |
− | + | "roller_spikes.mdl" | |
− | + | </blockquote> | |
− | + | ||
− | + | Roller is used by all of the unused Roller variations (including the base class Roller), and appears to be a default sphere, UVed with a cylinder map and two caps. It uses a less-refined texture, which also has its PSD<ref>With color differences from the VTF version</ref> included. In it, there is an alternate base texture which seems to be based on the side of a train. | |
− | + | ||
− | + | The JPG render present in the <code>/models/</code> folder doesn't have the caps of the current model, which would make more sense for the older Roller texture. | |
− | + | ||
− | + | Roller_spikes is only used by the Rollerbull and Rollermine and is swapped out from Roller model when called for. Roller_spikes's sphere is identical UV-wise, but also has several spikes in it. The texture is more refined than Roller's, utilizing normal maps and a more complex base texture. | |
− | + | ||
− | + | Both models have a default bone named "polymsh2", with roller_spikes additionally having one named "polymsh". | |
− | + | ===Gallery=== | |
− | + | <b>Renders</b> | |
− | + | <gallery> | |
− | + | Roller.jpg|Render included in the Leak | |
− | + | roller_oldtex.png | |
− | + | roller_OLDTEX (1).png | |
− | + | Roller_Spikes.jpg|Roller_spikes render included in the leak (with noticeable texture differences) | |
− | + | Roller_spikesrender.png | |
− | 2. | + | </gallery> |
− | 3. | + | <b>Textures</b> |
− | + | <gallery> | |
− | + | Roller_oldtexsheet.png|Roller texture | |
− | 6. | + | roller_old.png|Used area of the alternative PSD Roller texture |
− | 7. | + | Roller_old_Full.png|The full alternative PSD texture |
− | + | rollermine_sheet_noalpha.png|Roller_spikes texture | |
− | + | </gallery> | |
− | 10. | + | |
− | + | ==Code== | |
− | + | There are 5 cut Rollermine variants, with one being a base class that the others inherit from. They all use the Rollermine model as placeholder and some changes to the code may have to be made for them to function correctly. | |
− | + | ||
− | + | The Rollerbull and Rollermine have the earliest copyright starting at 1996-2001, while the rest are 1999. | |
− | + | ||
− | + | === '''Roller''' === | |
− | + | {{Cut_Enemies|title1 = Roller|model = Uses leak roller model|texture = Ditto|ai = Basic; patrols a path}} | |
− | + | Roller is a base class with the ability to patrol around a map using hint nodes. The class also has the ability to "Marco polo" close Rollers towards the one that initiated a Marco but it has been disabled with an Ifdef. | |
− | + | ||
− | + | Upon spawning it, the class generates a randomized unique code that would be used as flavor sound when commanding the roller. Only the Rollerbuddy makes use of this, but does not use the derived version from this class instead using a copy of the code to do so. | |
− | + | ||
− | + | Most inherited classes fall back to this upon being hit to wait until they are not moving for class specific behavior to resume. | |
− | + | ||
− | + | === '''Rollerbuddy''' === | |
− | + | {{Cut_Enemies|title1 = Rollerbuddy|model = Uses the same model as the base roller class|texture = Ditto|ai = Basic; commanded by player}} | |
− | + | The Rollerbuddy follows the player and can be commanded with the roller wand weapon. | |
− | + | ||
− | + | Left click tells the Rollerbuddy to move to a position, and right click toggles between follow mode and command mode. | |
− | + | ||
− | + | Follow mode tells Rollerbuddy to stay close to the player, while command mode would have the Rollerbuddy stay at the position specified. | |
− | + | ||
− | + | Upon being commanded, the Rollerbuddy plays back a series of tones that was randomly generated when it was spawned. Since the Rollerbuddy defaults to its own idle schedule, the inherited roller behavior is never called and may not wait until it has stopped moving to attempt to move to its destination again. | |
− | + | ||
− | + | ==='''Rollerdozer'''=== | |
− | + | {{Cut_Enemies|title1 = Rollerdozer|model = Uses the same model as the base roller class|texture = Ditto|ai = Basic; patrols a path, clears props if valid hint present}} | |
− | + | The Rollerdozer defaults to patrolling behavior, while searching for physics props within a radius of the closest HINT_ROLLER_CLEANUP_POINT hint nodes to it placed on a map. | |
− | + | ||
− | + | Upon locating some props, the Rollerdozer moves to the center of the node, selects the heaviest that it can push, and begins moving them away from the center of the hint node until either 5 seconds have passed or the prop is no longer being pushed away from the center. The Rollerdozer then locates the next prop to doze away, or it returns to patrol. | |
− | + | ||
− | + | ==='''Rollerbull'''=== | |
− | . | + | {{Cut_Enemies|title1 = Rollerbull|model = Uses leak roller and roller_spikes model as placeholder|texture = Ditto|ai = Crashes game}} |
+ | The Rollerbull defaults to patrolling behavior. Judging by its name and the existing source code, it is inferred that the Rollerbull had blades instead of the normal protrusions. | ||
+ | |||
+ | Upon locating an enemy, the Rollerbull would jump in a random direction and attempt to attack the “best enemy” by charging towards it and ramming into it. If the enemy is too close to get up to speed to ram into it, the Rollerbull would back up a distance and try again. | ||
+ | |||
+ | Unlike the rest of the variants, this roller attempts to use base AI to find its enemy. Even the Rollermine does not make use of the “bestenemy” method as it has been commented out in the code. | ||
+ | |||
+ | This NPC has references to squad positions that are seemingly unused, being “guard”, “setup charge” and “charge”. Additionally it has an unused squad interaction that would cause all Rollerbull members of a squad to explode when a new enemy is sighted. | ||
+ | |||
+ | ==='''Rollerturret'''=== | ||
+ | {{Cut_Enemies|title1 = Rollerturret|model = Uses leak roller model as placeholder|texture = Ditto|ai = Basic; patrols and fires at player}} | ||
+ | The Rollerturret defaults to patrolling behavior. Upon acquiring an enemy, the Rollerturret stops patrolling and opens, as it can not attack while closed. | ||
+ | |||
+ | To attack, the Rollerturret fires a laser at its target. If the target is too far away, it will give chase. The Rollerturret's view distance changes based on if it is in an open or closed state. | ||
+ | |||
+ | == Sound == | ||
+ | The usage of sounds with specific naming conventions imply that the Rollerbull and Roller were one in the same at one point and was the first to be made out of the other roller variations in this state. Evidence for this is that the base Roller does not use any rol_ sounds, but the Rollerbull does and much of the rol_ sounds are specifically for Rollerbull behaviours even though there is a bull_ naming convention. Additionally much of the Rollermine code and sound events appear to be carry overs from the Rollerbull. There are no unique sounds for the Rollerdozer. | ||
+ | |||
+ | === Roller === | ||
+ | {|border="1" cellpadding="0" cellspacing="0" class="article-table" style="width:50em; height: 400px; margin: 1px auto;" | ||
+ | !Directory | ||
+ | !Comments | ||
+ | !Creation date | ||
+ | |||
+ | |- | ||
+ | |npc/roller/power_up.wav | ||
+ | |referenced as NPC_Roller.PowerOn | ||
+ | | rowspan="2" |30/05/2001 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/shut_down.wav | ||
+ | |referenced as NPC_Roller.PowerOff | ||
+ | |||
+ | |- | ||
+ | |npc/roller/code1.wav | ||
+ | | rowspan="6" |Referenced in code, also used by the Rollerbuddy | ||
+ | |25/12/1998 | ||
+ | |- | ||
+ | |npc/roller/code2.wav | ||
+ | | rowspan="2" |9/10/2001 | ||
+ | |- | ||
+ | |npc/roller/code3.wav | ||
+ | |||
+ | |- | ||
+ | |npc/roller/code4.wav | ||
+ | |23/12/1998 | ||
+ | |- | ||
+ | |npc/roller/code5.wav | ||
+ | | rowspan="2" |9/10/2001 | ||
+ | |- | ||
+ | |npc/roller/code6.wav | ||
+ | |||
+ | |- | ||
+ | |{{MissingFile | file=npc/roller/call1.wav}} | ||
+ | | rowspan="2" |referenced as NPC_Roller.Marco | ||
+ | | rowspan = "3" | | ||
+ | |- | ||
+ | |{{MissingFile | file=npc/roller/call2.wav}} | ||
+ | |||
+ | |- | ||
+ | |{{MissingFile | file=npc/roller/call3.wav}} | ||
+ | |referenced as NPC_Roller.Polo | ||
+ | |} | ||
+ | |||
+ | === Roller buddy === | ||
+ | {|border="1" cellpadding="0" cellspacing="0" class="article-table" style="width:50em; height: 400px; margin: 1px auto;" | ||
+ | |||
+ | !Condition | ||
+ | !Directory | ||
+ | !Comments | ||
+ | !Creation date | ||
+ | |||
+ | |- | ||
+ | |Miss-used | ||
+ | |npc/roller/remote_no.wav | ||
+ | |NPC_RollerBuddy.RemoteNo uses npc/roller/remote_yes.wav instead | ||
+ | |27/06/2001 | ||
+ | |||
+ | |- | ||
+ | | rowspan="9" |Present | ||
+ | |npc/roller/confirm_move.wav | ||
+ | |referenced as NPC_RollerBuddy.Confirm | ||
+ | | rowspan="3" | 6/09/2001 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/remote_yes.wav | ||
+ | |referenced as NPC_RollerBuddy.RemoteYes | ||
+ | |||
+ | |- | ||
+ | |npc/roller/roll.wav | ||
+ | | rowspan="7" |referenced in code | ||
+ | |||
+ | |- | ||
+ | |npc/roller/code1.wav | ||
+ | |25/12/1998 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/code2.wav | ||
+ | | rowspan="2" |9/10/2001 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/code3.wav | ||
+ | |||
+ | |- | ||
+ | |npc/roller/code4.wav | ||
+ | |23/12/1998 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/code5.wav | ||
+ | | rowspan="2" |9/10/2001 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/code6.wav | ||
+ | |} | ||
+ | |||
+ | === Roller bull === | ||
+ | {|border="1" cellpadding="0" cellspacing="0" class="article-table" style="width:50em; height: 400px; margin: 1px auto;" | ||
+ | |||
+ | !Condition | ||
+ | !Directory | ||
+ | !Comments | ||
+ | !Creation date | ||
+ | |||
+ | |- | ||
+ | |Miss-used | ||
+ | |npc/roller/test/rol_measure1.wav | ||
+ | |NPC_RollerBull.Measure uses npc/roller/test/rol_probe1.wav instead | ||
+ | | rowspan="3" | | ||
+ | |||
+ | |- | ||
+ | | rowspan="16" |Present | ||
+ | |npc/roller/test/rol_tossed1.wav | ||
+ | |referenced as NPC_RollerBull.Tossed | ||
+ | |||
+ | |- | ||
+ | |npc/roller/test/rol_swingbladetaunt1.wav | ||
+ | |referenced as NPC_RollerBull.Taunt | ||
+ | |||
+ | |- | ||
+ | |npc/roller/blade_out.wav | ||
+ | |referenced as NPC_RollerBull.OpenSpikes | ||
+ | | rowspan="2" |22/10/2001 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/blade_in.wav | ||
+ | |referenced as NPC_RollerBull.CloseSpikes | ||
+ | |||
+ | |- | ||
+ | |npc/roller/blade_cut.wav | ||
+ | |referenced as NPC_RollerBull.Cut | ||
+ | |1/11/2001 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/test/rol_summon1.wav | ||
+ | |referenced as NPC_RollerBull.Summon | ||
+ | | rowspan="5" | | ||
+ | |||
+ | |- | ||
+ | |npc/roller/test/rol_idle1.wav | ||
+ | | rowspan="4" |referenced as NPC_RollerBull.Idle | ||
+ | |||
+ | |- | ||
+ | |npc/roller/test/rol_idle2.wav | ||
+ | |||
+ | |- | ||
+ | |npc/roller/test/rol_idle3.wav | ||
+ | |||
+ | |- | ||
+ | |npc/roller/test/rol_idle4.wav | ||
+ | |||
+ | |- | ||
+ | |npc/roller/bark1.wav | ||
+ | | rowspan="3" |referenced as NPC_RollerBull.Bark | ||
+ | | rowspan="3" |29/10/2001 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/bark2.wav | ||
+ | |||
+ | |- | ||
+ | |npc/roller/bark3.wav | ||
+ | |||
+ | |- | ||
+ | |npc/roller/bull_slow.wav | ||
+ | | rowspan="3" |referenced in code | ||
+ | | rowspan="2" |6/11/2001 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/bull_fast.wav | ||
+ | |||
+ | |- | ||
+ | |npc/roller/bull_buzz.wav | ||
+ | |2/11/2001 | ||
+ | |||
+ | |- | ||
+ | | rowspan="2" |Unused | ||
+ | |npc/roller/bull_power_up.wav | ||
+ | | rowspan="2" |related, but unused, same naming scheme as the Roller mine | ||
+ | | rowspan="2" |30/05/2001 | ||
+ | |||
+ | |- | ||
+ | |npc/roller/bull_shut_down.wav | ||
+ | |} | ||
+ | |||
+ | === Roller turret === | ||
+ | {|border="1" cellpadding="0" cellspacing="0" class="article-table" style="width:50em; height: 50px; margin: 1px auto;" | ||
+ | |||
+ | !Directory | ||
+ | !Comments | ||
+ | |||
+ | |- | ||
+ | |{{MissingFile | file=npc/roller/turret_shoot.wav}} | ||
+ | |referenced as NPC_RollerTurret.Shoot | ||
+ | |} | ||
+ | |||
+ | ==References== | ||
+ | {{Reflist}} | ||
+ | [[Category:2003 Leaks]] | ||
+ | [[Category:Combine]] | ||
+ | [[Category:Half-Life 2]] |
Latest revision as of 07:16, 8 October 2021
The earlier form of the Rollermine, the Roller and its variations are some of the earlier entities present in the Leak's source, and they come accompanied with two early models.
Contents
Model
There are two models present in the leak:
"roller.mdl"
"roller_spikes.mdl"
Roller is used by all of the unused Roller variations (including the base class Roller), and appears to be a default sphere, UVed with a cylinder map and two caps. It uses a less-refined texture, which also has its PSD[1] included. In it, there is an alternate base texture which seems to be based on the side of a train.
The JPG render present in the /models/
folder doesn't have the caps of the current model, which would make more sense for the older Roller texture.
Roller_spikes is only used by the Rollerbull and Rollermine and is swapped out from Roller model when called for. Roller_spikes's sphere is identical UV-wise, but also has several spikes in it. The texture is more refined than Roller's, utilizing normal maps and a more complex base texture.
Both models have a default bone named "polymsh2", with roller_spikes additionally having one named "polymsh".
Gallery
Renders
Textures
Code
There are 5 cut Rollermine variants, with one being a base class that the others inherit from. They all use the Rollermine model as placeholder and some changes to the code may have to be made for them to function correctly.
The Rollerbull and Rollermine have the earliest copyright starting at 1996-2001, while the rest are 1999.
Roller
Condition | |
---|---|
Model | Uses leak roller model |
Texture | Ditto |
AI | Basic; patrols a path |
Roller is a base class with the ability to patrol around a map using hint nodes. The class also has the ability to "Marco polo" close Rollers towards the one that initiated a Marco but it has been disabled with an Ifdef.
Upon spawning it, the class generates a randomized unique code that would be used as flavor sound when commanding the roller. Only the Rollerbuddy makes use of this, but does not use the derived version from this class instead using a copy of the code to do so.
Most inherited classes fall back to this upon being hit to wait until they are not moving for class specific behavior to resume.
Rollerbuddy
Condition | |
---|---|
Model | Uses the same model as the base roller class |
Texture | Ditto |
AI | Basic; commanded by player |
The Rollerbuddy follows the player and can be commanded with the roller wand weapon.
Left click tells the Rollerbuddy to move to a position, and right click toggles between follow mode and command mode.
Follow mode tells Rollerbuddy to stay close to the player, while command mode would have the Rollerbuddy stay at the position specified.
Upon being commanded, the Rollerbuddy plays back a series of tones that was randomly generated when it was spawned. Since the Rollerbuddy defaults to its own idle schedule, the inherited roller behavior is never called and may not wait until it has stopped moving to attempt to move to its destination again.
Rollerdozer
Condition | |
---|---|
Model | Uses the same model as the base roller class |
Texture | Ditto |
AI | Basic; patrols a path, clears props if valid hint present |
The Rollerdozer defaults to patrolling behavior, while searching for physics props within a radius of the closest HINT_ROLLER_CLEANUP_POINT hint nodes to it placed on a map.
Upon locating some props, the Rollerdozer moves to the center of the node, selects the heaviest that it can push, and begins moving them away from the center of the hint node until either 5 seconds have passed or the prop is no longer being pushed away from the center. The Rollerdozer then locates the next prop to doze away, or it returns to patrol.
Rollerbull
Condition | |
---|---|
Model | Uses leak roller and roller_spikes model as placeholder |
Texture | Ditto |
AI | Crashes game |
The Rollerbull defaults to patrolling behavior. Judging by its name and the existing source code, it is inferred that the Rollerbull had blades instead of the normal protrusions.
Upon locating an enemy, the Rollerbull would jump in a random direction and attempt to attack the “best enemy” by charging towards it and ramming into it. If the enemy is too close to get up to speed to ram into it, the Rollerbull would back up a distance and try again.
Unlike the rest of the variants, this roller attempts to use base AI to find its enemy. Even the Rollermine does not make use of the “bestenemy” method as it has been commented out in the code.
This NPC has references to squad positions that are seemingly unused, being “guard”, “setup charge” and “charge”. Additionally it has an unused squad interaction that would cause all Rollerbull members of a squad to explode when a new enemy is sighted.
Rollerturret
Condition | |
---|---|
Model | Uses leak roller model as placeholder |
Texture | Ditto |
AI | Basic; patrols and fires at player |
The Rollerturret defaults to patrolling behavior. Upon acquiring an enemy, the Rollerturret stops patrolling and opens, as it can not attack while closed.
To attack, the Rollerturret fires a laser at its target. If the target is too far away, it will give chase. The Rollerturret's view distance changes based on if it is in an open or closed state.
Sound
The usage of sounds with specific naming conventions imply that the Rollerbull and Roller were one in the same at one point and was the first to be made out of the other roller variations in this state. Evidence for this is that the base Roller does not use any rol_ sounds, but the Rollerbull does and much of the rol_ sounds are specifically for Rollerbull behaviours even though there is a bull_ naming convention. Additionally much of the Rollermine code and sound events appear to be carry overs from the Rollerbull. There are no unique sounds for the Rollerdozer.
Roller
Directory | Comments | Creation date |
---|---|---|
npc/roller/power_up.wav | referenced as NPC_Roller.PowerOn | 30/05/2001 |
npc/roller/shut_down.wav | referenced as NPC_Roller.PowerOff | |
npc/roller/code1.wav | Referenced in code, also used by the Rollerbuddy | 25/12/1998 |
npc/roller/code2.wav | 9/10/2001 | |
npc/roller/code3.wav | ||
npc/roller/code4.wav | 23/12/1998 | |
npc/roller/code5.wav | 9/10/2001 | |
npc/roller/code6.wav | ||
![]() |
referenced as NPC_Roller.Marco | |
![]() | ||
![]() |
referenced as NPC_Roller.Polo |
Roller buddy
Condition | Directory | Comments | Creation date |
---|---|---|---|
Miss-used | npc/roller/remote_no.wav | NPC_RollerBuddy.RemoteNo uses npc/roller/remote_yes.wav instead | 27/06/2001 |
Present | npc/roller/confirm_move.wav | referenced as NPC_RollerBuddy.Confirm | 6/09/2001 |
npc/roller/remote_yes.wav | referenced as NPC_RollerBuddy.RemoteYes | ||
npc/roller/roll.wav | referenced in code | ||
npc/roller/code1.wav | 25/12/1998 | ||
npc/roller/code2.wav | 9/10/2001 | ||
npc/roller/code3.wav | |||
npc/roller/code4.wav | 23/12/1998 | ||
npc/roller/code5.wav | 9/10/2001 | ||
npc/roller/code6.wav |
Roller bull
Condition | Directory | Comments | Creation date |
---|---|---|---|
Miss-used | npc/roller/test/rol_measure1.wav | NPC_RollerBull.Measure uses npc/roller/test/rol_probe1.wav instead | |
Present | npc/roller/test/rol_tossed1.wav | referenced as NPC_RollerBull.Tossed | |
npc/roller/test/rol_swingbladetaunt1.wav | referenced as NPC_RollerBull.Taunt | ||
npc/roller/blade_out.wav | referenced as NPC_RollerBull.OpenSpikes | 22/10/2001 | |
npc/roller/blade_in.wav | referenced as NPC_RollerBull.CloseSpikes | ||
npc/roller/blade_cut.wav | referenced as NPC_RollerBull.Cut | 1/11/2001 | |
npc/roller/test/rol_summon1.wav | referenced as NPC_RollerBull.Summon | ||
npc/roller/test/rol_idle1.wav | referenced as NPC_RollerBull.Idle | ||
npc/roller/test/rol_idle2.wav | |||
npc/roller/test/rol_idle3.wav | |||
npc/roller/test/rol_idle4.wav | |||
npc/roller/bark1.wav | referenced as NPC_RollerBull.Bark | 29/10/2001 | |
npc/roller/bark2.wav | |||
npc/roller/bark3.wav | |||
npc/roller/bull_slow.wav | referenced in code | 6/11/2001 | |
npc/roller/bull_fast.wav | |||
npc/roller/bull_buzz.wav | 2/11/2001 | ||
Unused | npc/roller/bull_power_up.wav | related, but unused, same naming scheme as the Roller mine | 30/05/2001 |
npc/roller/bull_shut_down.wav |
Roller turret
Directory | Comments |
---|---|
![]() |
referenced as NPC_RollerTurret.Shoot |
References
- ↑ With color differences from the VTF version