Donations
|
If you wish to make a donation you can by clicking the image below.
|
|
|
|
|
23rd September, 2011, 02:17 PM
|
Killing Spree
|
|
Join Date: Feb 2008
Posts: 21
|
|
i found one } error, and i fixed it, but now i get this message:
GetPlayerIndex conflicts with Function System.MutDyingSpree.GetPlayerIndex.
Parsing MutDyingSpree
Error in MutDyingSpree.uc (57): 'GetPlayerIndex' conflicts with 'Function System.MutDyingSpree.GetPlayerIndex'
here is the code:
Code:
class MutDyingSpree extends Mutator;
defaultproperties
{
FriendlyName="Dying Sprees"
Description="Announce when a player dies multiple times in a row without making any kills."
}
function PostBeginPlay()
{
Level.Game.AddGameModifier(Spawn(class'DyingSpreeR ules'));
}
function ScoreKill(Controller Killer, Controller Killed)
{
local int PlayerIndex, SpreeLevel;
Super.ScoreKill(Killer, Killed);
PlayerIndex = GetPlayerIndex(Killed);
DyingSprees[PlayerIndex].SpreeCount++;
if (DyingSprees[PlayerIndex].SpreeCount % 5 == 0)
{
SpreeLevel = DyingSprees[PlayerIndex].SpreeCount / 5;
if (SpreeLevel < ArrayCount(class'DyingSpreeMessage'.default.SpreeN ote))
BroadcastLocalizedMessage(class'DyingSpreeMessage' , SpreeLevel - 1, Killed.PlayerReplicationInfo);
}
if (Killer != None && Killer != Killed)
{
PlayerIndex = GetPlayerIndex(Killer);
if (DyingSprees[PlayerIndex].SpreeCount >= 5)
BroadcastLocalizedMessage(class'DyingSpreeMessage' , 0, Killer.PlayerReplicationInfo, Killed.PlayerReplicationInfo);
DyingSprees[PlayerIndex].SpreeCount = 0;
}
}
function int GetPlayerIndex(Controller Player)
{
local int PlayerIndex;
for (PlayerIndex = 0; PlayerIndex < DyingSprees.Length && DyingSprees[PlayerIndex].Player != Player; PlayerIndex++);
if (PlayerIndex == DyingSprees.Length)
{
DyingSprees.Length = PlayerIndex + 1; // adds entry at end of list with zero spree count and empty player
DyingSprees[PlayerIndex].Player = Player;
}
return PlayerIndex;
}
function int GetPlayerIndex(Pawn Player)
{
local int PlayerIndex, FirstEmptySlot;
FirstEmptySlot = -1;
for (PlayerIndex = 0; PlayerIndex < ArrayCount(DyingSprees); PlayerIndex++)
{
if (DyingSprees[PlayerIndex].Player == Player)
break;
else if (DyingSprees[PlayerIndex].Player == None && FirstEmptySlot == -1)
FirstEmptySlot = PlayerIndex;
}
if (PlayerIndex == ArrayCount(DyingSprees))
{
PlayerIndex = FirstEmptySlot;
DyingSprees[PlayerIndex].Player = Player;
DyingSprees[PlayerIndex].SpreeCount = 0;
}
return PlayerIndex;
}
class DyingSpreeMessage extends KillingSpreeMessage;
defaultproperties
{
EndSpreeNote=" ended the dying spree by killing"
EndSpreeNoteTrailer=""
SpreeNote(0)="is on a dying spree!"
SpreeNote(1)="is being bullied!"
SpreeNote(2)="is being dominated!"
SpreeNote(3)="is being annihilated!"
SpreeNote(4)="no longer seems to be playing!"
SpreeNote(5)="is synonymous for 'being dead'!"
SelfSpreeNote(0)="Dying Spree!"
SelfSpreeNote(1)="Bullied!"
SelfSpreeNote(2)="Dominated!"
SelfSpreeNote(3)="Annihilated!"
SelfSpreeNote(4)="Are you still playing?"
SelfSpreeNote(5)="You like being dead, right?"
SpreeSound(0)=None
SpreeSound(1)=None
SpreeSound(2)=None
SpreeSound(3)=None
SpreeSound(4)=None
SpreeSound(5)=None
}
static function string GetString(optional int MessageSwitch, optional PlayerReplicationInfo RelatedPRI1, optional PlayerReplicationInfo RelatedPRI2, optional Object OptionalObject)
{
if (RelatedPRI1 == OptionalObject && ReplatedPRI2 == None)
return default.SelfSpreeNote[MessageSwitch];
return Super.GetString(MessageSwitch, RelatedPRI1, RelatedPRI2, OptionalObject);
}
|
23rd September, 2011, 02:27 PM
|
|
Dominating
|
|
Join Date: Apr 2010
Posts: 111
|
|
maybe because of this:
Code:
function int GetPlayerIndex(Controller Player)
{
local int PlayerIndex;
for (PlayerIndex = 0; PlayerIndex < DyingSprees.Length && DyingSprees[PlayerIndex].Player != Player; PlayerIndex++);
if (PlayerIndex == DyingSprees.Length)
{
DyingSprees.Length = PlayerIndex + 1; // adds entry at end of list with zero spree count and empty player
DyingSprees[PlayerIndex].Player = Player;
}
return PlayerIndex;
}
function int GetPlayerIndex(Pawn Player)
{
local int PlayerIndex, FirstEmptySlot;
FirstEmptySlot = -1;
for (PlayerIndex = 0; PlayerIndex < ArrayCount(DyingSprees); PlayerIndex++)
{
if (DyingSprees[PlayerIndex].Player == Player)
break;
else if (DyingSprees[PlayerIndex].Player == None && FirstEmptySlot == -1)
FirstEmptySlot = PlayerIndex;
}
if (PlayerIndex == ArrayCount(DyingSprees))
{
PlayerIndex = FirstEmptySlot;
DyingSprees[PlayerIndex].Player = Player;
DyingSprees[PlayerIndex].SpreeCount = 0;
}
return PlayerIndex;
}
you using 2 times the same functions name
|
23rd September, 2011, 03:01 PM
|
Killing Spree
|
|
Join Date: Feb 2008
Posts: 21
|
|
wich one os the right one then?
|
23rd September, 2011, 03:05 PM
|
Killing Spree
|
|
Join Date: Feb 2008
Posts: 21
|
|
ok now i got this message:
Error in MutDyingSpree.uc (65): Unexpected 'class'
Code:
class MutDyingSpree extends Mutator;
defaultproperties
{
FriendlyName="Dying Sprees"
Description="Announce when a player dies multiple times in a row without making any kills."
}
function PostBeginPlay()
{
Level.Game.AddGameModifier(Spawn(class'DyingSpreeR ules'));
}
function ScoreKill(Controller Killer, Controller Killed)
{
local int PlayerIndex, SpreeLevel;
Super.ScoreKill(Killer, Killed);
PlayerIndex = GetPlayerIndex(Killed);
DyingSprees[PlayerIndex].SpreeCount++;
if (DyingSprees[PlayerIndex].SpreeCount % 5 == 0)
{
SpreeLevel = DyingSprees[PlayerIndex].SpreeCount / 5;
if (SpreeLevel < ArrayCount(class'DyingSpreeMessage'.default.SpreeN ote))
BroadcastLocalizedMessage(class'DyingSpreeMessage' , SpreeLevel - 1, Killed.PlayerReplicationInfo);
}
if (Killer != None && Killer != Killed)
{
PlayerIndex = GetPlayerIndex(Killer);
if (DyingSprees[PlayerIndex].SpreeCount >= 5)
BroadcastLocalizedMessage(class'DyingSpreeMessage' , 0, Killer.PlayerReplicationInfo, Killed.PlayerReplicationInfo);
DyingSprees[PlayerIndex].SpreeCount = 0;
}
}
function int GetPlayerIndex(Pawn Player)
{
local int PlayerIndex, FirstEmptySlot;
FirstEmptySlot = -1;
for (PlayerIndex = 0; PlayerIndex < ArrayCount(DyingSprees); PlayerIndex++)
{
if (DyingSprees[PlayerIndex].Player == Player)
break;
else if (DyingSprees[PlayerIndex].Player == None && FirstEmptySlot == -1)
FirstEmptySlot = PlayerIndex;
}
if (PlayerIndex == ArrayCount(DyingSprees))
{
PlayerIndex = FirstEmptySlot;
DyingSprees[PlayerIndex].Player = Player;
DyingSprees[PlayerIndex].SpreeCount = 0;
}
return PlayerIndex;
}
class DyingSpreeMessage extends KillingSpreeMessage;
defaultproperties
{
EndSpreeNote=" ended the dying spree by killing"
EndSpreeNoteTrailer=""
SpreeNote(0)="is on a dying spree!"
SpreeNote(1)="is being bullied!"
SpreeNote(2)="is being dominated!"
SpreeNote(3)="is being annihilated!"
SpreeNote(4)="no longer seems to be playing!"
SpreeNote(5)="is synonymous for 'being dead'!"
SelfSpreeNote(0)="Dying Spree!"
SelfSpreeNote(1)="Bullied!"
SelfSpreeNote(2)="Dominated!"
SelfSpreeNote(3)="Annihilated!"
SelfSpreeNote(4)="Are you still playing?"
SelfSpreeNote(5)="You like being dead, right?"
SpreeSound(0)=None
SpreeSound(1)=None
SpreeSound(2)=None
SpreeSound(3)=None
SpreeSound(4)=None
SpreeSound(5)=None
}
function ScoreKill(Controller Killer, Controller Killed)
{
local int PlayerIndex, SpreeLevel;
Super.ScoreKill(Killer, Killed);
// increment Killed's dying spree count
PlayerIndex = GetPlayerIndex(Killed);
DyingSprees[PlayerIndex].SpreeCount++;
if (DyingSprees[PlayerIndex].SpreeCount % 5 == 0)
{
SpreeLevel = DyingSprees[PlayerIndex].SpreeCount / 5;
if (SpreeLevel < ArrayCount(class'DyingSpreeMessage'.default.SpreeNote))
BroadcastLocalizedMessage(class'DyingSpreeMessage', SpreeLevel - 1, Killed.PlayerReplicationInfo);
}
if (Killer != None && Killer != Killed)
{
// one player killed another
// reset Killer's dying spree count
PlayerIndex = GetPlayerIndex(Killer);
if (DyingSprees[PlayerIndex].SpreeCount >= 5)
BroadcastLocalizedMessage(class'DyingSpreeMessage', 0, Killer.PlayerReplicationInfo, Killed.PlayerReplicationInfo);
DyingSprees[PlayerIndex].SpreeCount = 0;
}
}
static function string GetString(optional int MessageSwitch, optional PlayerReplicationInfo RelatedPRI1, optional PlayerReplicationInfo RelatedPRI2, optional Object OptionalObject)
{
if (RelatedPRI1 == OptionalObject && ReplatedPRI2 == None)
return default.SelfSpreeNote[MessageSwitch];
return Super.GetString(MessageSwitch, RelatedPRI1, RelatedPRI2, OptionalObject);
}
i guess its the class DyingSpreeMessage extends KillingSpreeMessage
but why is it unexpected and how do i fix that?
|
23rd September, 2011, 03:39 PM
|
|
Dominating
|
|
Join Date: Apr 2010
Posts: 111
|
|
Quote:
Originally Posted by monkeybutt
ok now i got this message:
Error in MutDyingSpree.uc (65): Unexpected 'class'
Code:
class MutDyingSpree extends Mutator;
defaultproperties
{
FriendlyName="Dying Sprees"
Description="Announce when a player dies multiple times in a row without making any kills."
}
function PostBeginPlay()
{
Level.Game.AddGameModifier(Spawn(class'DyingSpreeR ules'));
}
function ScoreKill(Controller Killer, Controller Killed)
{
local int PlayerIndex, SpreeLevel;
Super.ScoreKill(Killer, Killed);
PlayerIndex = GetPlayerIndex(Killed);
DyingSprees[PlayerIndex].SpreeCount++;
if (DyingSprees[PlayerIndex].SpreeCount % 5 == 0)
{
SpreeLevel = DyingSprees[PlayerIndex].SpreeCount / 5;
if (SpreeLevel < ArrayCount(class'DyingSpreeMessage'.default.SpreeN ote))
BroadcastLocalizedMessage(class'DyingSpreeMessage' , SpreeLevel - 1, Killed.PlayerReplicationInfo);
}
if (Killer != None && Killer != Killed)
{
PlayerIndex = GetPlayerIndex(Killer);
if (DyingSprees[PlayerIndex].SpreeCount >= 5)
BroadcastLocalizedMessage(class'DyingSpreeMessage' , 0, Killer.PlayerReplicationInfo, Killed.PlayerReplicationInfo);
DyingSprees[PlayerIndex].SpreeCount = 0;
}
}
function int GetPlayerIndex(Pawn Player)
{
local int PlayerIndex, FirstEmptySlot;
FirstEmptySlot = -1;
for (PlayerIndex = 0; PlayerIndex < ArrayCount(DyingSprees); PlayerIndex++)
{
if (DyingSprees[PlayerIndex].Player == Player)
break;
else if (DyingSprees[PlayerIndex].Player == None && FirstEmptySlot == -1)
FirstEmptySlot = PlayerIndex;
}
if (PlayerIndex == ArrayCount(DyingSprees))
{
PlayerIndex = FirstEmptySlot;
DyingSprees[PlayerIndex].Player = Player;
DyingSprees[PlayerIndex].SpreeCount = 0;
}
return PlayerIndex;
}
class DyingSpreeMessage extends KillingSpreeMessage;
defaultproperties
{
EndSpreeNote=" ended the dying spree by killing"
EndSpreeNoteTrailer=""
SpreeNote(0)="is on a dying spree!"
SpreeNote(1)="is being bullied!"
SpreeNote(2)="is being dominated!"
SpreeNote(3)="is being annihilated!"
SpreeNote(4)="no longer seems to be playing!"
SpreeNote(5)="is synonymous for 'being dead'!"
SelfSpreeNote(0)="Dying Spree!"
SelfSpreeNote(1)="Bullied!"
SelfSpreeNote(2)="Dominated!"
SelfSpreeNote(3)="Annihilated!"
SelfSpreeNote(4)="Are you still playing?"
SelfSpreeNote(5)="You like being dead, right?"
SpreeSound(0)=None
SpreeSound(1)=None
SpreeSound(2)=None
SpreeSound(3)=None
SpreeSound(4)=None
SpreeSound(5)=None
}
function ScoreKill(Controller Killer, Controller Killed)
{
local int PlayerIndex, SpreeLevel;
Super.ScoreKill(Killer, Killed);
// increment Killed's dying spree count
PlayerIndex = GetPlayerIndex(Killed);
DyingSprees[PlayerIndex].SpreeCount++;
if (DyingSprees[PlayerIndex].SpreeCount % 5 == 0)
{
SpreeLevel = DyingSprees[PlayerIndex].SpreeCount / 5;
if (SpreeLevel < ArrayCount(class'DyingSpreeMessage'.default.SpreeNote))
BroadcastLocalizedMessage(class'DyingSpreeMessage', SpreeLevel - 1, Killed.PlayerReplicationInfo);
}
if (Killer != None && Killer != Killed)
{
// one player killed another
// reset Killer's dying spree count
PlayerIndex = GetPlayerIndex(Killer);
if (DyingSprees[PlayerIndex].SpreeCount >= 5)
BroadcastLocalizedMessage(class'DyingSpreeMessage', 0, Killer.PlayerReplicationInfo, Killed.PlayerReplicationInfo);
DyingSprees[PlayerIndex].SpreeCount = 0;
}
}
static function string GetString(optional int MessageSwitch, optional PlayerReplicationInfo RelatedPRI1, optional PlayerReplicationInfo RelatedPRI2, optional Object OptionalObject)
{
if (RelatedPRI1 == OptionalObject && ReplatedPRI2 == None)
return default.SelfSpreeNote[MessageSwitch];
return Super.GetString(MessageSwitch, RelatedPRI1, RelatedPRI2, OptionalObject);
}
i guess its the class DyingSpreeMessage extends KillingSpreeMessage
but why is it unexpected and how do i fix that?
|
you have to create a new *.uc file with the name of this class and then move all from "class DyingSpreeMessage extends KillingSpreeMessage;" to the end in this new file.
|
23rd September, 2011, 04:15 PM
|
Killing Spree
|
|
Join Date: Feb 2008
Posts: 21
|
|
ok i did it, now the class error is gone, but i got a new one
Error in MutDyingSpree.uc (66): 'ScoreKill' conflicts with 'Function System.MutDyingSpree.ScoreKill'
|
23rd September, 2011, 04:25 PM
|
Killing Spree
|
|
Join Date: Feb 2008
Posts: 21
|
|
i cant make this, im just too stupid
|
23rd September, 2011, 04:39 PM
|
Killing Spree
|
|
Join Date: Feb 2008
Posts: 21
|
|
ok i remade the whole thing
here is the codes:
first MutDyingSpree.uc
Code:
class MutDyingSpree extends Mutator;
defaultproperties
{
FriendlyName="Dying Sprees"
Description="Announce when a player dies multiple times in a row without making any kills."
}
function PostBeginPlay()
{
Level.Game.AddGameModifier(Spawn(class'DyingSpreeRules'));
}
function ScoreKill(Controller Killer, Controller Killed)
{
local int PlayerIndex;
Super.ScoreKill(Killer, Killed);
PlayerIndex = GetPlayerIndex(Killed);
DyingSprees[PlayerIndex].SpreeCount++;
if (Killer != None && Killer != Killed)
{
PlayerIndex = GetPlayerIndex(Killer);
DyingSprees[PlayerIndex].SpreeCount = 0;
}
}
function int GetPlayerIndex(Pawn Player)
{
local int PlayerIndex, FirstEmptySlot;
FirstEmptySlot = -1;
for (PlayerIndex = 0; PlayerIndex < ArrayCount(DyingSprees); PlayerIndex++)
{
if (DyingSprees[PlayerIndex].Player == Player)
break;
else if (DyingSprees[PlayerIndex].Player == None && FirstEmptySlot == -1)
FirstEmptySlot = PlayerIndex;
}
if (PlayerIndex == ArrayCount(DyingSprees))
{
PlayerIndex = FirstEmptySlot;
DyingSprees[PlayerIndex].Player = Player;
DyingSprees[PlayerIndex].SpreeCount = 0;
}
return PlayerIndex;
}
then DyingSpreeMessage.uc
Code:
class DyingSpreeMessage extends KillingSpreeMessage;
defaultproperties
{
EndSpreeNote=" ended the dying spree by killing"
EndSpreeNoteTrailer=""
SpreeNote(0)="is on a dying spree!"
SpreeNote(1)="is being bullied!"
SpreeNote(2)="is being dominated!"
SpreeNote(3)="is being annihilated!"
SpreeNote(4)="no longer seems to be playing!"
SpreeNote(5)="is synonymous for 'being dead'!"
SelfSpreeNote(0)="Dying Spree!"
SelfSpreeNote(1)="Bullied!"
SelfSpreeNote(2)="Dominated!"
SelfSpreeNote(3)="Annihilated!"
SelfSpreeNote(4)="Are you still playing?"
SelfSpreeNote(5)="You like being dead, right?"
SpreeSound(0)=None
SpreeSound(1)=None
SpreeSound(2)=None
SpreeSound(3)=None
SpreeSound(4)=None
SpreeSound(5)=None
}
function ScoreKill(Controller Killer, Controller Killed)
{
local int PlayerIndex, SpreeLevel;
Super.ScoreKill(Killer, Killed);
PlayerIndex = GetPlayerIndex(Killed);
DyingSprees[PlayerIndex].SpreeCount++;
if (DyingSprees[PlayerIndex].SpreeCount % 5 == 0)
{
SpreeLevel = DyingSprees[PlayerIndex].SpreeCount / 5;
if (SpreeLevel < ArrayCount(class'DyingSpreeMessage'.default.SpreeNote))
BroadcastLocalizedMessage(class'DyingSpreeMessage', SpreeLevel - 1, Killed.PlayerReplicationInfo);
}
if (Killer != None && Killer != Killed)
{
PlayerIndex = GetPlayerIndex(Killer);
if (DyingSprees[PlayerIndex].SpreeCount >= 5)
BroadcastLocalizedMessage(class'DyingSpreeMessage', 0, Killer.PlayerReplicationInfo, Killed.PlayerReplicationInfo);
DyingSprees[PlayerIndex].SpreeCount = 0;
}
}
static function string GetString(optional int MessageSwitch, optional PlayerReplicationInfo RelatedPRI1, optional PlayerReplicationInfo RelatedPRI2, optional Object OptionalObject)
{
if (RelatedPRI1 == OptionalObject && ReplatedPRI2 == None)
return default.SelfSpreeNote[MessageSwitch];
return Super.GetString(MessageSwitch, RelatedPRI1, RelatedPRI2, OptionalObject);
}
and i got this error now:
Error in MutDyingSpree.uc (35): Bad or missing expression in 'ArrayCount'
|
23rd September, 2011, 07:04 PM
|
|
Dominating
|
|
Join Date: Apr 2010
Posts: 111
|
|
Quote:
Originally Posted by monkeybutt
first MutDyingSpree.uc
Code:
class MutDyingSpree extends Mutator;
defaultproperties
{
FriendlyName="Dying Sprees"
Description="Announce when a player dies multiple times in a row without making any kills."
}
function PostBeginPlay()
{
Level.Game.AddGameModifier(Spawn(class'DyingSpreeRules'));
}
function ScoreKill(Controller Killer, Controller Killed)
{
local int PlayerIndex;
Super.ScoreKill(Killer, Killed);
PlayerIndex = GetPlayerIndex(Killed);
DyingSprees[PlayerIndex].SpreeCount++;
if (Killer != None && Killer != Killed)
{
PlayerIndex = GetPlayerIndex(Killer);
DyingSprees[PlayerIndex].SpreeCount = 0;
}
}
function int GetPlayerIndex(Pawn Player)
{
local int PlayerIndex, FirstEmptySlot;
FirstEmptySlot = -1;
for (PlayerIndex = 0; PlayerIndex < ArrayCount(DyingSprees); PlayerIndex++)
{
if (DyingSprees[PlayerIndex].Player == Player)
break;
else if (DyingSprees[PlayerIndex].Player == None && FirstEmptySlot == -1)
FirstEmptySlot = PlayerIndex;
}
if (PlayerIndex == ArrayCount(DyingSprees))
{
PlayerIndex = FirstEmptySlot;
DyingSprees[PlayerIndex].Player = Player;
DyingSprees[PlayerIndex].SpreeCount = 0;
}
return PlayerIndex;
}
and i got this error now:
Error in MutDyingSpree.uc (35): Bad or missing expression in 'ArrayCount'
|
i have no big knowledge about ut2k3 & ut2k4 scripting... is the "DyingSprees" var in any parent class located? if not you have to set at the top, after "class MutDyingSpree extends Mutator;" something like this:
Code:
struct Sprees {
var Pawn Player;
var int SpreeCount;
};
var Sprees DyingSprees[<your array size>];
|
23rd September, 2011, 07:19 PM
|
Killing Spree
|
|
Join Date: Feb 2008
Posts: 21
|
|
ok thats it, now i dont understand a shit, so i give up thx for your help (G)ott
|
30th September, 2011, 03:28 AM
|
|
Godlike
|
|
Join Date: Sep 2002
Location: USA.gif
Posts: 384
|
|
Get in touch with a guy named HOOK over at:
http://hooksutplace.freeforums.org/i...bbe67d63db8fc0
He has a mod that has a message that pops up telling everyone that you're on a lamer-spree when you die too much. It may not be exactly what you want but it may put you on the right track. It already works too so give him a shout.
Wait a sec. My bad. He runs UT servers and not UT2004 servers. I'd still talk to him though.
__________________
~Peace~
Hermskii
Last edited by Hermskii : 30th September, 2011 at 03:31 AM.
|
2nd October, 2011, 07:52 AM
|
|
Rampage
|
|
Join Date: Sep 2011
Posts: 63
|
|
Great of you to make a tutorial Wormbo.
I do not have time to learn utscript and compile.
Do you have the mutator ready made for ut99?
Thanks!
BTW Wormbo I like your UT Rockets mod!
Only downside for me is that it is single fire.
Still great work though.
Last edited by Toruk_Makto : 2nd October, 2011 at 08:21 AM.
|
2nd October, 2011, 08:59 AM
|
|
out of order
|
|
Join Date: Sep 2003
Posts: 3,383
|
|
Quote:
Originally Posted by Toruk_Makto
Great of you to make a tutorial Wormbo.
I do not have time to learn utscript and compile.
Do you have the mutator ready made for ut99?
Thanks!
|
Quote:
Originally Posted by me in the tutorial
(I didn't compile a single line of code for this article, so in case of errors or problems, please leave a note on the discussion page.)
|
Quote:
Originally Posted by Toruk_Makto
BTW Wormbo I like your UT Rockets mod!
Only downside for me is that it is single fire.
Still great work though.
|
The various rocket launchers are all different. some have single fire, some can load up to 3, others up to 6 rockets. (But this is so far off-topic now...)
|
2nd October, 2011, 09:54 AM
|
|
Rampage
|
|
Join Date: Sep 2011
Posts: 63
|
|
Quote:
Originally Posted by Wormbo
The various rocket launchers are all different. some have single fire, some can load up to 3, others up to 6 rockets. (But this is so far off-topic now...)
|
Ow sorry! I had to investigate it further.
Awesome rockets
Thanks and sorry for being offtopic.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|