logo
Main

Forums

Downloads

Unreal-Netiquette

Donate for Oldunreal:
Donate

borderline

Links to our wiki:
Wiki

Walkthrough

Links

Tutorials

Unreal Reference

Usermaps

borderline

Contact us:
Submit News
Page Index Toggle Pages: 1 Send TopicPrint
Hot Topic (More than 10 Replies) Getting an old JCoop5 mutator to work on JCoopZ (Read 4157 times)
Kajgue
Global Moderator
Betatester
*****
Offline


Super-sexy-Kung-Fu-H
obo-sunva-bitch

Posts: 414
Location: Apophizal (T:S:B) Headquarters
Joined: Oct 17th, 2005
Gender: Male
Getting an old JCoop5 mutator to work on JCoopZ
Oct 15th, 2014 at 2:23pm
Print Post  
In the past before I was inactive for health reasons, I used to run an essential mutator on my clans server called jmdm.u, which was a less buggy alternative to MCoop and allowed players to play as some monster classes.

Unfortunately I am not in contact with the author of this mutator, who for some reason won't respond to my messages and in the past expressly stated he would not like to continue support for this mod/mutator in any way.

So I'm in a little bit of a pickle. This mod is essential to the purpose of my clans server. Would there be any way to get it to work with JcoopZ?

I hope I have provided all of the relevant information.

Thanks in advance.
  

AKA - ( T : S : B ) Ice-Lizard


Whistleblower Ted Gunderson
Back to top
IP Logged
 
BobIsUnreal
God Member
*****
Offline


Guy who has too much time
invested to quit now

Posts: 755
Joined: Apr 12th, 2010
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #1 - Oct 15th, 2014 at 3:39pm
Print Post  
can you provide the jmdm file so we can look at it ?

the short answer is probably no tho...
  

[REM_img]http://i.imgur.com/V3OSsDu.gif.disable[/img]http://i.imgur.com/JOu38Gs.gif
Back to top
IP Logged
 
Kajgue
Global Moderator
Betatester
*****
Offline


Super-sexy-Kung-Fu-H
obo-sunva-bitch

Posts: 414
Location: Apophizal (T:S:B) Headquarters
Joined: Oct 17th, 2005
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #2 - Oct 15th, 2014 at 4:48pm
Print Post  
  

AKA - ( T : S : B ) Ice-Lizard


Whistleblower Ted Gunderson
Back to top
IP Logged
 
BobIsUnreal
God Member
*****
Offline


Guy who has too much time
invested to quit now

Posts: 755
Joined: Apr 12th, 2010
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #3 - Oct 15th, 2014 at 7:35pm
Print Post  
decompiled and recompiled the source against jzcoopz1, this may or may not work  as is,
jcoop should allow these playerpawns as there based on jzplayerpawn root.
but I think you may still need to set up class replacments in the jcoopzssf code , witch is a bit more involved.

try this one
https://dl.dropboxusercontent.com/u/18734201/unreal/dev/jMDM.u


edt:
need to create a ssf to allow the classes.

https://dl.dropboxusercontent.com/u/18734201/unreal/dev/jmdmssf.u

this is a demo class it allows only jmdm.KrallPL to play.
I will add the rest later.
all classes are now added
you need to edit your jcoopz1 ini runtime section to relace jczSSGF with jmdmssf.jmdmssf
do not put   jmdmssf.u in server packages , only put jMDM.u !

edit again:
omg It works! sweet  , enjoy!
  

[REM_img]http://i.imgur.com/V3OSsDu.gif.disable[/img]http://i.imgur.com/JOu38Gs.gif
Back to top
IP Logged
 
Kajgue
Global Moderator
Betatester
*****
Offline


Super-sexy-Kung-Fu-H
obo-sunva-bitch

Posts: 414
Location: Apophizal (T:S:B) Headquarters
Joined: Oct 17th, 2005
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #4 - Oct 15th, 2014 at 9:03pm
Print Post  
Unfortunately it doesn't seem to work for me, I expect I must have done something wrong somewhere along the line; I'm not code/mod savvy D:

A few things -

1. There was no JCoopZ.ini on my end, so I assume you mean the runtime section under 'Advanced Coop JCoopZ play' in gametypes, where it says 'JCoopZSSGF'

2. Is hooking the mutator required under the said setting?

Thanks for the fast solution.
  

AKA - ( T : S : B ) Ice-Lizard


Whistleblower Ted Gunderson
Back to top
IP Logged
 
BobIsUnreal
God Member
*****
Offline


Guy who has too much time
invested to quit now

Posts: 755
Joined: Apr 12th, 2010
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #5 - Oct 15th, 2014 at 9:13pm
Print Post  
Yes the runtime section in Advanced Coop JCoopZ play is correct. need to replace that setting

its actually in the unreal.ini file under

[JCoopZ1.jCoopZGame]
JCoopZGameSSGF=jmdmssf.jmdmssf

its not a mutator tho , its just a collection of playable players.

it should have come with a .int for the clients to use to select the pawns in there skin selection before they join ,
alternatively you can join the server using a command line using the monster players class name as such

open serveripadress:port?class=jmdm.WarlordPL

there is probably a complex more elegant way to do this , such as a mutatar  watching for the playername.

  

[REM_img]http://i.imgur.com/V3OSsDu.gif.disable[/img]http://i.imgur.com/JOu38Gs.gif
Back to top
IP Logged
 
Kajgue
Global Moderator
Betatester
*****
Offline


Super-sexy-Kung-Fu-H
obo-sunva-bitch

Posts: 414
Location: Apophizal (T:S:B) Headquarters
Joined: Oct 17th, 2005
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #6 - Oct 15th, 2014 at 9:32pm
Print Post  
I can't seem to join as a skaarjlord (haven't checked the other classes yet), does the classname have to be in the correct cases?

And in the past when we had this running, naming yourself to the name of that monster is all it would need, I don't think I missed any files when providing the link.
  

AKA - ( T : S : B ) Ice-Lizard


Whistleblower Ted Gunderson
Back to top
IP Logged
 
BobIsUnreal
God Member
*****
Offline


Guy who has too much time
invested to quit now

Posts: 755
Joined: Apr 12th, 2010
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #7 - Oct 15th, 2014 at 9:45pm
Print Post  
else if (DesiredClass ~= "BlobletPL")
                 SpawnClass = class'BlobletPL';
else if (DesiredClass ~= "GasbagPL")
                 SpawnClass = class'GasbagPL';
else if (DesiredClass ~= "GiantGasbagPL")
                 SpawnClass = class'GiantGasbagPL';
else if (DesiredClass ~= "IceSkaarjPL")
                 SpawnClass = class'IceSkaarjPL';
else if (DesiredClass ~= "KrallElitePL")
                 SpawnClass = class'KrallElitePL';
else if (DesiredClass ~= "QueenPL")
                 SpawnClass = class'QueenPL';
else if (DesiredClass ~= "SkaarjAssPL")
                 SpawnClass = class'SkaarjAssPL';
else if (DesiredClass ~= "SkaarjBerPL")
                 SpawnClass = class'SkaarjBerPL';
else if (DesiredClass ~= "SkaarjGunPL")
                 SpawnClass = class'SkaarjGunPL';
else if (DesiredClass ~= "SkaarjInfPL")
                 SpawnClass = class'SkaarjInfPL';
else if (DesiredClass ~= "SkaarjLoPL")
                 SpawnClass = class'SkaarjLoPL';
else if (DesiredClass ~= "SkaarjOffPL")
                 SpawnClass = class'SkaarjOffPL';
else if (DesiredClass ~= "SkaarjPL")
                 SpawnClass = class'SkaarjPL';
else if (DesiredClass ~= "SkaarjScPL")
                 SpawnClass = class'SkaarjScPL';      
else if (DesiredClass ~= "SkaarjSniPL")
                 SpawnClass = class'SkaarjSniPL';      
else if (DesiredClass ~= "SkaarjTPL")
                 SpawnClass = class'SkaarjTPL';      
else if (DesiredClass ~= "SkaarjWPL")
                 SpawnClass = class'SkaarjWPL';      
else if (DesiredClass ~= "StoneTitanPL")
                 SpawnClass = class'StoneTitanPL';      
else if (DesiredClass ~= "TitanPL")
                 SpawnClass = class'TitanPL';      
else if (DesiredClass ~= "WarlordPL")
                 SpawnClass = class'WarlordPL';      



so skarlord would be  jmdm.SkaarjLoPL
it worked for me


i saw nothing in the mod that  would let you select a pawn by simply changing your name , so maybe somthing is missing , but it could be done as a separate mutate easily probably , i would have to look into that


also to note there is a nasty access none script error in the monsterplayer class that i need to look into as some point
ScriptWarning: SkaarjLoPL thesunspire.SkaarjLoPL (Function JCoopZ1.jzPlayerPawn.=:001C) Accessed None 'jCoopZGame' but other then spam , shoulnt be a big issue atm it stems from the fact that jcoopz1 is obfuscated..
  

[REM_img]http://i.imgur.com/V3OSsDu.gif.disable[/img]http://i.imgur.com/JOu38Gs.gif
Back to top
IP Logged
 
Kajgue
Global Moderator
Betatester
*****
Offline


Super-sexy-Kung-Fu-H
obo-sunva-bitch

Posts: 414
Location: Apophizal (T:S:B) Headquarters
Joined: Oct 17th, 2005
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #8 - Oct 15th, 2014 at 9:54pm
Print Post  
Excellent. It works, although with a few issues.

Mainly being that when I connect as a skaarjlord the server log gets flooded with -

ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:001C) Accessed None 'jCoopZGame'
ScriptWarning: SkaarjLoPL noork.SkaarjLoPL (Function jCoopz1.jzPlayerPawn.=

:0024) Accessed None
JCoopZAMsg: Client information check timed out on: (T:S:B)IceLizard -- Possible clientside anomaly!

And the weaponhand is still visible.

Thank you for your assistance, it is highly appreciated.
  

AKA - ( T : S : B ) Ice-Lizard


Whistleblower Ted Gunderson
Back to top
IP Logged
 
BobIsUnreal
God Member
*****
Offline


Guy who has too much time
invested to quit now

Posts: 755
Joined: Apr 12th, 2010
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #9 - Oct 15th, 2014 at 11:37pm
Print Post  
script error seems to stem from the fact that the mod was built on jcoopz1's obfuscated source code , The script error specifies a character that cant even be properly pasted here. and the error also appears to come from
the Function JCoopZ1.jzPlayerPawn.?? , witch is a class that source code is not provided for.
decompiling results in a useless mess that seems to interact with the int "LIRPCPS" witch probably relates to  some checking in jcoopz, witch is somehow related to why the both of use are getting kicked , due to a  check failure. dont think i can do anything about it or if i can , it is not immediately obvious.

the weaponhand thing could probably be fixed be simply removing all weapons from the player when they join as a custom class.


for the name thing to work all you need is a gamerule actor mutator.

class mcoopGR expands GameRules;

function ModifyPlayerSpawnClass( string Options, out Class<PlayerPawn> AClass )
{
local string usedname;
if(instr(options,"Name=gasbag?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.GasbagPL", class'Class'));
     usedname = "gasbag";
     }
     
     if(instr(options,"name=warlord?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.WarlordPL", class'Class'));
     usedname = "warlord";
     }
     
     if(instr(options,"name=bloblet?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.BlobletPL", class'Class'));
     usedname = "bloblet";
     }
     
     if(instr(options,"name=giantgasbag?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.GiantGasbagPL", class'Class'));
     usedname = "gaintgasbag";
     }
     
     if(instr(options,"name=Iceskaarj?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.IceSkaarjPL", class'Class'));
     usedname = "iceskaarj";
     }
     
     if(instr(options,"name=krallelite?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.KrallElitePL", class'Class'));
     usedname = "krallelite";
     }
     
     if(instr(options,"name=queen?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.QueenPL", class'Class'));
     usedname = "queen";
     }
     
     if(instr(options,"name=stonetitan?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.StoneTitanPL", class'Class'));
     usedname = "stonetitan";
     }
     
     if(instr(options,"name=titan?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.TitanPL", class'Class'));
    usedname = "titan";
     }
     
     if(instr(options,"name=warlord?")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.WarlordPL", class'Class'));
     usedname = "warlord";
     }
     
     // if usedname  = names in use  then options.name = usedname $ #++;
     // do some stuff here to allow for the fact that multiple players may use the same "name"
     
}


defaultproperties
{
bNotifyLogin=True
}





  

[REM_img]http://i.imgur.com/V3OSsDu.gif.disable[/img]http://i.imgur.com/JOu38Gs.gif
Back to top
IP Logged
 
Kajgue
Global Moderator
Betatester
*****
Offline


Super-sexy-Kung-Fu-H
obo-sunva-bitch

Posts: 414
Location: Apophizal (T:S:B) Headquarters
Joined: Oct 17th, 2005
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #10 - Oct 16th, 2014 at 6:57pm
Print Post  
Damn :/

So would there be no way to work around this problem?

(Do I paste this code somewhere?)
  

AKA - ( T : S : B ) Ice-Lizard


Whistleblower Ted Gunderson
Back to top
IP Logged
 
[]KAOS[]Casey
Developer Team
Betatester
Offline


nedm

Posts: 3180
Joined: Aug 7th, 2011
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #11 - Oct 17th, 2014 at 4:19am
Print Post  
Maybe I should try to write a deobfuscator some day. So that names in the nametable actually can "make sense" instead of be complete incomprehensible garbage. This accessed none is a great example of why obfuscating the nametable is really annoying for an end user.
  
Back to top
 
IP Logged
 
Zombie
Forum Administrator
The One Who Wanted To Have A Special Title In Forum
*****
Offline


Living Dead

Posts: 323
Joined: May 9th, 2002
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #12 - Jan 24th, 2015 at 7:42am
Print Post  
The reason for getting kicked is related to the script warnings. Usually, calling the Super of overrided PlayerPawn functions whenever possible will avoid a negative reaction from JCoopZ (namely PreBeginPlay, Possess, PostRender). However, in this case jzPlayerPawn.JCoopZGame variable is probably not being assigned on the custom PlayerPawn. It must be assigned in order to call the functions moved to the server-side jCoopZ1SSF.u package. If it is not, everything may break.

Class jCoopZ1.jzPlayerPawn:
Code
Select All
event PreBeginPlay()
{
	JCoopZGame = JCoopZGame(Level.Game);
        super.PreBeginPlay();
} 



You may try recompiling IsUnreal's jMDM.u package with the following change to the MonsterPlayer class. Make sure to load jCoopZ1.u in UEd first and then load jMDM.u package.
Code
Select All
function PreBeginPlay()
{
	if ( MyWeapon==None )
		MyWeapon = Class'MonsterGun';

	Super.PreBeginPlay();
	JCoopZGame = JCoopZGame(Level.Game);
} 


If that does not help, try commenting out the function override entirely to see if you no longer get script warnings or kicked.

As for joining with the custom PlayerPawn it is probably better at this point to exclusively use a GameRules server-side mutator overriding ModifyPlayerSpawnClass function instead of sub-classing jCoopZSSGF. GameRules has been supported since build 130, and back-ported as jczGameRules for older patches since build 135.


-Zombie
  
Back to top
 
IP Logged
 
BobIsUnreal
God Member
*****
Offline


Guy who has too much time
invested to quit now

Posts: 755
Joined: Apr 12th, 2010
Gender: Male
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #13 - Feb 11th, 2015 at 1:03am
Print Post  
having problems now.

i cant figure how it worked before.

i rebuild eveerything with your changes , and installed jcoopz and 225 to test and used the ssf i built :
I spawned as a warlord with almost no script errors.

I do same thing in 227  like i originally did , and i get female2 everytime i spawn

i tried using using mutatemodifyspawn :


function ModifyPlayerSpawnClass( string Options, out Class<PlayerPawn> AClass )
{
local string usedname;
log (options);
    
     if(instr(options,"warlord")!=-1)      
     {
     AClass =  class<playerpawn>(DynamicLoadObject("jmdm.WarlordPL", class'Class'));
     usedname = "warlord";
      log ("warlord");
     }

}


my code detected the desired pawnclass and passes it to the game , whitch goes ahead and spawns me as female2.

ScriptLog: ?Password=v?Class=UnrealShare.FemaleOne?Name=warlord?Skin=Female1Skins.Drace?Fac
e=?Team=1
ScriptLog: warlord
JCoopZ: Incoming Player named warlord desired FemaleOne and got WarlordPL
JCoopZ: Administrator logged in
ScriptLog: bcast warlord entered the game.
JCoopZ: Logging in to Sacred Passage
Log: Possessed PlayerPawn: jzFemaleTwo passage.jzFemaleTwo

this happend in both jzssf or gamerules - same effecf ,  works in 225 with ssf but fails completly in 227

  

[REM_img]http://i.imgur.com/V3OSsDu.gif.disable[/img]http://i.imgur.com/JOu38Gs.gif
Back to top
IP Logged
 
Zombie
Forum Administrator
The One Who Wanted To Have A Special Title In Forum
*****
Offline


Living Dead

Posts: 323
Joined: May 9th, 2002
Re: Getting an old JCoop5 mutator to work on JCoopZ
Reply #14 - Feb 12th, 2015 at 1:08am
Print Post  
So you joined using UnrealShare.FemaleOne, and your player name as 'warlord' to activate the modified replacement. JCoopZ logged that you got WarlordPL, but finished login by having you possess jzFemaleTwo instead.

The jzFemaleTwo class is the DefaultPlayerClass in JCoopZ so a condition must have rejected the WarlordPL class much later in the login process. There is a check to see if the SpawnClass is not a human when the server is set to 'bHumansOnly'. WarlordPL is not human so it probably does not have 'bIsHuman' set in its properties.

See if 'bHumansOnly' option is properly set in your 227 server INI file in the [Engine.GameInfo] and [jCoopZ1.jCoopZGame] sections.


-Zombie
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint
Bookmarks: del.icio.us Digg Facebook Google Google+ Linked in reddit StumbleUpon Twitter Yahoo