|
Hyper.nl Unreal Services The forum of Hyper.nl Unreal Services and the semi-offical resource for Winged Unicorn's Unreal mods
|
View previous topic :: View next topic |
Author |
Message |
Zombie
Joined: 27 Jan 2004 Posts: 295
|
Posted: Tue Oct 23, 2007 2:48 am Post subject: JCoopZ1 - Build 120 Public Release |
|
|
This is the third update to JCoopZ1 since initial release. Only the server side file jCoopZ1SSF.u was in need to be updated. This update fixes those admin login/logout crashes that some users may have had. I would have released a fix sooner to that, but plans and events changed. :/ Also, there has been a number of other general improvements and additions listed below. I recammend updating for the improved user experience and control.
The Update List (10/22/07):
Quote: | -Fixed the 'adminlogin' and 'adminlogout' commands after success to avoid an unreal memory management bug that might crash a server (apology to this being late).
-Fixed pawn interpolation online to avoid an unreal bug that could crash a server.
-Fixed a custom bot incompatibility from Zora's maps that would crash a server.
-Fixed mutated DefaultWeapon bug that can cause more then one default weapon to spawn for a player at start while bRetainInventory is enabled.
-Fixed creaturecarcass safety handler bug that caused replacements by a mutator to be destroyed.
-Fixed weapon deathmessages for pawns when bClassicDeathMessages is false.
-Added 'admin Addbots' command support that can be enabled by the 'bTeamGameMode' option.
The bTeamGameMode option forces a single default team restriction on players and bots.
A custom BotConfigSSF class can be specified from the game control if desired.
-Added IsBossScoreBonus setting to the game control to change the amount of extra score points a player may receive for killing a scriptedpawn that is set as bIsBoss.
-Added bAllowPrivateSay option so that users can choose to disable the 'PSay' command.
-Added support to load obscure player skins on the server from the Unreali package.
Players must use option "?Skin=" in an 'open' command or specify the skin in the User.ini file.
FemaleTwo: Unreali.F2Female2, Unreali.F2Female4
MaleOne: Unreali.JMale2, Unreali.JMale3, Unreali.JMale4, Unreali.JMale5
Unreali.JMale6, Unreali.JMale7, Unreali.JMale8
MaleTwo: Unreali.JMale22
-Changed 'advance' command to be able to initiate level travel even when a minimum map timer or bVoteEnding is enabled.
-Changed PlayerReplicationInfo handling for bots to use JCoopZ's replacement if they have the default.
-Changed mover block detection so that users can choose to disable it by configuring AllowedMoverBlocks to -1.
-Improved client check routines to better detect anomalies.
-Improved some server side routines.
-Updated Readme for Build 120 and to included more 'Bugs and Issues' information such advice to solve mod incompatibility problems, and supporting custom PlayerPawn classes. |
EDIT: JCoopZ1 has been updated (11/30/12). Follow this link: http://pvso.net/~hypernl/viewtopic.php?t=1028
Download: JCoopZ1 - Build 137
-Zombie _________________ GameType: JCoopZ1 - Build137 (11/30/12)
Mutator: DZMapM - 2.34 (12/15/11)
Last edited by Zombie on Sat Dec 01, 2012 3:55 am; edited 3 times in total |
|
Back to top |
|
|
Zelk0wy[PL]
Joined: 19 Apr 2006 Posts: 110 Location: War Saw, Poland
|
Posted: Wed Oct 24, 2007 12:08 pm Post subject: |
|
|
Zombie did it again! _________________ Beware the lollipop of mediocrity - lick it once and you suck forever.
|
|
Back to top |
|
|
mental-HunteR
Joined: 05 May 2006 Posts: 363 Location: The Netherlands
|
Posted: Fri Oct 26, 2007 10:10 pm Post subject: |
|
|
Zombie? About that custom playerpawn thing, does it mean you can put in your custom models in some ini or so? i couldn't read anything about it in the readme. Unless i didn't readed it to well and might have missed something. Is it in the readme? _________________
|
|
Back to top |
|
|
Zombie
Joined: 27 Jan 2004 Posts: 295
|
Posted: Sat Oct 27, 2007 12:26 am Post subject: |
|
|
I left a note in the 'Bugs and Issues' section of the readme about supporting custom playerpawn mods. I did not give a tutorial there because there are some some additional complexities that may still lead to requiring contact.
Right now, I still leave it to 3rd party developers to implement their own method of supporting custom playerpawn mods for their servers. Since there are regulations that need to be followed to load a custom playerpawn it wouldn't be sensible to have class configuration settings for the average user.
In the 'jCoopZ1SSF.jCoopZSSGF' source I added extra comments for those that want to make changes to ModifyLogin() for proper playerpawn class loading. After trying to help Mental-Hunter before I realized others may be trying to compile their playerpawn mods to be dependant on jCoopZ1SSF.u or their own server-side add-on runtime package, which is not advised since they're a serverside-only package.
Custom playerpawn support guidelines are as follows:
1. Compile your JCoopZ supported custom playerpawn classes as a child of jCoopZ1.jzPlayerPawn. It can be from any subclass as long as the root parent is jzPlayerPawn.
2. Keep the custom playerpawn classes compiled separately from your serverside add-on runtime package. This is necessary to prevent undesired package dependancy that could lead to client-server conflicts.
3. Do NOT try to load custom playerpawn classes that are a child of jzPlayerPawn from an offline game start. Instead, you may want to keep universal custom playerpawn classes compiled separetely from JCoopZ-required classes, and only use those universal classes offline. The JCoopZ-required classes can then be made dependant on the universal package to keep mods sizes low. Developers can choose to match both class versions from ModifyLogin() so that it wouldn't matter whichever class a player attempted to join with.
ModifyLogin Pseudo-Example:
Code: | if (DesiredClass ~= "AlienFemale" || DesiredClass ~= "jzAlienFemale")
{
SpawnClass = Class<PlayerPawn>(DynamicLoadObject("jzcAliens.jzAlienFemale", class'Class'));
} |
Working Example and source: Addon Example
Hope that helps some of you. What I said may not be in clear wording so those that are attempting to implement their own custom playerpawn support should post questions. I'll try to give help for that within reasonable bounds.
-Zombie _________________ GameType: JCoopZ1 - Build137 (11/30/12)
Mutator: DZMapM - 2.34 (12/15/11) |
|
Back to top |
|
|
mental-HunteR
Joined: 05 May 2006 Posts: 363 Location: The Netherlands
|
Posted: Sat Oct 27, 2007 11:29 pm Post subject: |
|
|
For some more realistic dying you can put gibs in your playerpawn's class that will fit the best to him. Like that Xan thing from ut99 i exported from ut and made my playerpawn version and changed his gibs. Just copy the takedamage part of the script and put in your changes like i did and which would look like this:
Code: |
function PlayDying(name DamageType, vector HitLoc)
{
local vector X,Y,Z, HitVec, HitVec2D;
local float dotp;
local carcass carc;
BaseEyeHeight = Default.BaseEyeHeight;
PlayDyingSound();
if ( DamageType == 'Suicided' )
{
PlayAnim('Dead7', 0.7, 0.1);
return;
}
if ( FRand() < 0.15 )
{
PlayAnim('Dead2',0.7,0.1);
return;
}
// check for big hit
if ( (Velocity.Z > 250) && (FRand() < 0.7) && ((Level.Game == None) || !Level.Game.bVeryLowGore) )
{
if ( (hitLoc.Z > Location.Z) && (FRand() < 0.65) )
{
PlayAnim('Dead5',0.7,0.1);
if ( Level.NetMode != NM_Client )
{
carc = Spawn -> (class 'BossHeadM',,, Location + CollisionHeight * vect(0,0,0.8), Rotation + rot(3000,0,16384) );
if (carc != None)
{
carc.Initfor(self);
carc.Velocity = Velocity + VSize(Velocity) * VRand();
carc.Velocity.Z = FMax(carc.Velocity.Z, Velocity.Z);
ViewTarget = carc;
}
carc = Spawn(class 'CreatureChunks');
if (carc != None)
{
->carc.Mesh = mesh 'BossThighM';
carc.Initfor(self);
carc.Velocity = Velocity + VSize(Velocity) * VRand();
carc.Velocity.Z = FMax(carc.Velocity.Z, Velocity.Z);
}
carc = Spawn->(class 'bossArmM',,, Location + CollisionHeight * vect(0,0,0.8), Rotation + rot(3000,0,16384) );
if (carc != None)
{
carc.Initfor(self);
carc.Velocity = Velocity + VSize(Velocity) * VRand();
carc.Velocity.Z = FMax(carc.Velocity.Z, Velocity.Z);
}
}
}
else
PlayAnim('Dead1', 0.7, 0.1);
return;
}
// check for head hit
if ( ((DamageType == 'Decapitated') || (HitLoc.Z - Location.Z > 0.6 * CollisionHeight))
&& !Level.Game.bVeryLowGore )
{
DamageType = 'Decapitated';
PlayAnim('Dead4', 0.7, 0.1);
if ( Level.NetMode != NM_Client )
{
carc = Spawn(class 'Bossheadm',,, Location + CollisionHeight * vect(0,0,0.8), Rotation + rot(3000,0,16384) );
if (carc != None)
{
carc.Initfor(self);
carc.Velocity = Velocity + VSize(Velocity) * VRand();
carc.Velocity.Z = FMax(carc.Velocity.Z, Velocity.Z);
ViewTarget = carc;
}
}
return;
}
GetAxes(Rotation,X,Y,Z);
X.Z = 0;
HitVec = Normal(HitLoc - Location);
HitVec2D= HitVec;
HitVec2D.Z = 0;
dotp = HitVec2D dot X;
if (Abs(dotp) > 0.71) //then hit in front or back
PlayAnim('Dead3', 0.7, 0.1);
else
{
dotp = HitVec dot Y;
if (dotp > 0.0)
PlayAnim('Dead8', 0.7, 0.1);
else
PlayAnim('Dead7', 0.7, 0.1);
}
}
|
_________________
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|