Hyper.nl Unreal Services Forum Index Hyper.nl Unreal Services
The forum of Hyper.nl Unreal Services and the semi-offical resource for Winged Unicorn's Unreal mods
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

JCoopZ1 - Build 120 Public Release

 
Post new topic   Reply to topic    Hyper.nl Unreal Services Forum Index -> News
View previous topic :: View next topic  
Author Message
Zombie



Joined: 27 Jan 2004
Posts: 295

PostPosted: Tue Oct 23, 2007 2:48 am    Post subject: JCoopZ1 - Build 120 Public Release Reply with quote

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
View user's profile Send private message Send e-mail
Zelk0wy[PL]



Joined: 19 Apr 2006
Posts: 110
Location: War Saw, Poland

PostPosted: Wed Oct 24, 2007 12:08 pm    Post subject: Reply with quote

Zombie did it again!
_________________
Beware the lollipop of mediocrity - lick it once and you suck forever.

Back to top
View user's profile Send private message MSN Messenger
mental-HunteR



Joined: 05 May 2006
Posts: 363
Location: The Netherlands

PostPosted: Fri Oct 26, 2007 10:10 pm    Post subject: Reply with quote

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
View user's profile Send private message Yahoo Messenger MSN Messenger
Zombie



Joined: 27 Jan 2004
Posts: 295

PostPosted: Sat Oct 27, 2007 12:26 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
mental-HunteR



Joined: 05 May 2006
Posts: 363
Location: The Netherlands

PostPosted: Sat Oct 27, 2007 11:29 pm    Post subject: Reply with quote

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
View user's profile Send private message Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Hyper.nl Unreal Services Forum Index -> News All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
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