Tuesday, 21-Nov-2017  00:00:00
Enhanced Coop  
[ New messages · Members · Forum rules · Search · RSS ]
Page 1 of 11
Forum » Enhanced Coop » ECoop Forum » ECoop Development
ECoop Development
CoreDate: Monday, 09-Feb-2009, 7:42 PM | Message # 1
Major
Group: Administrators
Messages: 103
Awards: 1
Reputation: 0
Status: Offline
More details soon.










 
MrLoathsomeDate: Tuesday, 14-Apr-2009, 9:22 PM | Message # 2
Colonel
Group: Moderators
Messages: 151
Awards: 0
Reputation: 0
Status: Offline
More details would hurt my tiny brain....... wacko

Moo

 
NelsonaDate: Wednesday, 08-Feb-2012, 0:08 AM | Message # 3
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
If is permitted I'll ask something for my knowledge.

I was playing a bit in coop servers randomly. I noticed (I don't remember exactly which one) some good looking game, very detailed. Here I'm talking about those flies which spawn over dead bodies of monsters visible in network play.

I don't understand what is missing from a default UT game with monsters or what crappy function is just destroying those flies spawned for dead bodies. I watched more times at UTCoop, MonsterHunt, any UT game with monsters, those carcasses not spawn any fly in Network, only in local games they can be visible. Who is destroying their visibility ?
 
CoreDate: Friday, 10-Feb-2012, 10:36 PM | Message # 4
Major
Group: Administrators
Messages: 103
Awards: 1
Reputation: 0
Status: Offline
Could it be that you just saw a HorseflySwarm added to a decorative carcass by the level designer? Because when a monster is killed, their creature carcasses only spawn flies for themselves in standalone/offline games (look at the function AddFliesAndRats() in "state dead" of the "creaturecarcass" class), that is of cource, if the scriptedpawn uses the standard creaturecarcass classes.

This is actually a good idea. I almost never play offline, except for testing stuff, so I never paid attention to the fact that carcasses actually spawn bugs for themselves. since ECoop already has an option to enforce it's own custom creaturecarcass class, I'll add a clientside implementation of this to my "todo list" for the next update of ecoop, whenever that will be (currently paused).

you can always write a simple mutator that detects scriptedpawns or stock UT monsters in CheckReplacement(..), to swap their CarcassType with your own fixed/enhanced version of the class (will require server package).




 
NelsonaDate: Monday, 13-Feb-2012, 11:35 PM | Message # 5
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Yup, but I saw somewhere those flies at carcasses even on-line. Looking at their code, exist net-code but seems to be heavily accepted by engine in Tournament forms. The same problem was for some Tentacles not really so present in games.

What I did for them to be there, right in map ? Well I just called them in AlwaysKeep and also in CheckReplacement (code sugested for StationaryPawns in DMMutator by EPIC themselves) to be sure about their presence. What was so nasty for those creatures ? Well I'm more than sure about their PeripheralVision that visibility extended for down-view, they are destroyed missing from maps. That default value -2 seems to be a problem for Tournament and need to be called or else they are destroyed. Also I saw somewhere in a code a thing related to OddsOfAppearing, hm, I don't know how it works right now, I don't have editor in this moment to check what is about but seems to be good if is used somewhere. That PeripheralVision seems to be a problem even for monsters spawned later in game if is about classes designed with negative values by default (some Jurrasic package).

I took a break from coding, but in future I think I'll try some AlwaysKeep and CheckReplacement for any Pawn. If this can be a problem for Replacing bad default stuff, I'll attack them directly in class:

function AlwaysKeep()
{
If (Other.IsA('HorseFly...')) return True;
...
}

and so on, I just looked at them, they aren't interested in visibility checks, so, I want them in NetPlay. BiterFish at Gopostal suggestion I did replacement triggered by other School. This replacement worked using default function because this School don't have collision, yea, for this reason worked. The worse thing was Bird1, I redefined a class Bird2 slower to see the difference but first time didn't worked. As long as I was frustrated by this thing I looked at more games including Ecoop how to do such a replacement. If you coded that EcoopGame2 - I say big thanks because you opened my mind with comments like in a tutorial. Not all Birds were replaced, in some maps were bad placed.

Studying those flies I saw their visibility in another bad value -5, heh, some nasty. Engine or whatever Botpack protection will attempt to save bandwidth removing them. I need to try to keep them because they make things to look more realistic.

I had other problem a few months ago when I worked at a new MH version thinking about a completely different done controller or following default Tournament rules. Since I'm not so skilled in designing HUDS I just stopped at Tournament subclass. Onestly I would like to know more things about engine flaws, rules and coding tricks, finally I think I'll try a redone of all things avoiding as much as possible BotPack and its rules. Will need a lot of time, maybe I won't have so much patient but it doesn't hurt if I'll try other kind of game.


Message edited by Nelsona - Monday, 13-Feb-2012, 11:47 PM
 
NelsonaDate: Friday, 23-Mar-2012, 7:11 PM | Message # 6
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Mr. Core, I'm wander how I can deal with constants ? I used umake for compiling and a simple txt editor to work with scripts, seems to be a problem if I try to attack some constants.

I noticed in EcoopGame2 you dealed with fog and PawnShadow. Also I want to see if I can do something with bStatic things. Pls. explain me what I can use to put up some party with constants.
 
CoreDate: Monday, 02-Apr-2012, 6:40 PM | Message # 7
Major
Group: Administrators
Messages: 103
Awards: 1
Reputation: 0
Status: Offline
In most cases, constants are constant for a good reason. They're not meant to be altered at runtime. It's also not possible by normal means, only through certain "hacks". And even then it's not 100% fail safe, and you risk breaking internal dependancies, depending on the context. Sharing such methods, no matter how easy or difficult they may be, feels like opening Pandora's box, which I'd prefer not to. You could also try ask other coders on other forums, hoping they have a different stance on this matter. It wouldn't surprise me if there were.

However, judging from your previous posts, it seems like you have trouble keeping some spawned actors from being deleted. In that case, your approach with trying to alter the bStatic constant on runtime is wrong.

Make sure you have a decent understanding of how the game engine works, from initialization to termination. You'll find in http://wiki.beyondunreal.com/ a good friend in your quest. The public UDN pages are also a good source, eventhough they're mostly for later engine versions.

Specifically, try to have a decent understanding of:

The above links are just examples, Search through the wiki or the UDN public docs and browse through the stock UT script code to get more info. Never assume that someone else's code is "THE way" to do something, or you'll risk incorporating their errors/flaws in your own code. A sceptical attitude is more appropriate. Once you get the basics, you'll be much better equipped to solve problems and bugs.




 
NelsonaDate: Thursday, 05-Apr-2012, 7:38 AM | Message # 8
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Thank you, Sir. I looked at AddFliesAndRats() - and he he, sometimes I'm blind or in a big hurry and I don't pay attention at details. For missing actors ? They just need described in AlwaysKeep or else I guess - BYE... My problem was here:
Code

if ( (flies > 0) && (Bugs == None) && (Level.NetMode == NM_Standalone) )


Spawn small freaks only in StandAlone mode. So, I redefined function to spawn another subclass of ScriptedPawn this time (I'm not interested in FlockPawns for the moment). I callled my class ExFly (in game name - CorpseFly) a small Fly with a better vision around spawning after a few moments from that dead body if player is not destroying that mess, :D.

I rebuiled also conter of monsters to notice new monsters spawned each 5 seconds not like usually for each monster killed a new pawnlist to be rebuilded.

I also solved skill problem, based on logs, when I put in INI MonsterSkill=7, indeed they have level 7 not that fake value unmentioned in any default old version. Difficulty byte was also added. I'm testing now what is bad and what is good. Anyway until this moment I like this new formula.
 
NelsonaDate: Thursday, 05-Apr-2012, 8:04 PM | Message # 9
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
AND back - bad news. Skill 7 is destroying aiming at monsters. I changed formula setting up skill based on difficulty byte 0 to 3 meaning monster's skill at max 3 level and perfect aiming not more.

That MonsterSkill value from MonsterHunt.ini is just for increase some properties of monsters but nothing really related to skill or something like this. Anyway I have now the maximum of level 3 (even in codes some functions are compared with this value, never bigger), and difficulty byte was initialized as needed.
 
MrLoathsomeDate: Saturday, 07-Apr-2012, 1:06 PM | Message # 10
Colonel
Group: Moderators
Messages: 151
Awards: 0
Reputation: 0
Status: Offline
Nelsona.

Hold off on your testing for just a bit.

I think the next thing I am going to post in the next day or 3, will let you test that sort of thing out any way you
want, just by editing an ini file.

It will spawn whatever class you want, and let you change any value on the spawned pawns that you could think of.

It will also let you change default properties for classes that might be in the map or get added by other mutators, with or without
spawning any additional ones, as you wish.

Not sure, but I think it could help you. The optional bDebugMode logging will provide a lot of info regarding any setting
you have changed, and if the pawn that was spawned actually acquired that setting successfully.

This thing will basically let you do anything to a pawn or pawn class that you can do with the Set command at a command prompt in-game. (I think...)

I don't even know how much that is. I don't even know everything you can do with the set command, and it also depends upon the pawn
involved. (and other things, depending upon which one of the pawns variables you are trying to adjust.....)

I think I wrote something that will do stuff that I don't even know how do to. It just reads the ini file and spawns pawns and/or sets values for pawns
and pawn classes. (In several ways....)


Moo

 
NelsonaDate: Sunday, 08-Apr-2012, 7:28 PM | Message # 11
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
I'm agree. For the moment I just used logs delivering in console some parameters. Of course, Gopostal sent me more time ago MindReader2 to see some values right in HUD. I modifed that small tool for debugging, and I made some changes at controller. Currently, my compilation have 3 HUDS configurable 1 to 3 with check to avoid bad values automatically saved at first run. Why I messed with this ? Monster counter and Hunters counter seems to have some troubles (interferring with original old ?) This replication is give me headaches. Anything from HUD related to replications seems to create a few errors. It won't spam client with a ton, but still exist and sometimes randomly. I think I need to completely change the names of variables or else will call old craps. And I have a confirmation using UnrealHUD like in coop games with basic things and no errors.

Triggered by Mr. Core I looked at those links posted before and I got an ideea (maybe is a bad one), to deal with SpawnNotify at replacements. I don't know if will spam server and client but I was thinking at weaponry replacement using SpawnNotify. As I read, an actor cannnot be only tweaked there, can be even replaced with other in a SpawnNotify subclass. Hm, interesting. I have in mind that moment when an assumed armed monster is spawning, immediately is spawning his weapon, in next moment I want to hook that, and to make other weapon with net code to spawn (not original) and doing Touch instruction for our monster. But for these operations I need more time, too much time, I don't know if deserve the effort to try these tricks.
 
NelsonaDate: Monday, 28-May-2012, 8:06 PM | Message # 12
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
For the deal with constants I had other problem (for that reason I asked), a big Monster like a Mercenary in DrawScale 3 or a big Pupae they had the small shadow like a normal sized one. This happened in server not local play. My attempts to solve collision radius failed trying to alter constants (grr).
 
CoreDate: Thursday, 31-May-2012, 11:02 PM | Message # 13
Major
Group: Administrators
Messages: 103
Awards: 1
Reputation: 0
Status: Offline
Call SetCollisionSize(newRad, newHeight) on an actor to change its CollisionRadius and CollisionHeight properties respectively.

Code
// Collision.
native(262) final function SetCollision( optional bool NewColActors, optional bool NewBlockActors, optional bool NewBlockPlayers );
native(283) final function bool SetCollisionSize( float NewRadius, float NewHeight );




 
NelsonaDate: Friday, 15-Jun-2012, 6:06 PM | Message # 14
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
These things with SetCollision works in server. Effects are replicated to client. Client won't change constants. The best prove is the shadow. A Merc in drawscale 3 has a shadow like a normal Merc because is based on CollisionRadius even × Drawscale hooked from client side, and is the same for both of them, for Pupae also is the same (speaking about a client connected to a server not a StandAlone game). Noticing these effects I think I don't need to log them and to check later their default properties because I saw effects. Heck, I'm really stucked now. Anyway I stopped any DrawScale bigger than 2 to be more close to normal. Or, I don't know if is possible to set new Collisions in client before to spawn the Shadow decal. I need to think more... I really need to learn more about triggering client to execute certain operations asked by server.
 
gopostalDate: Tuesday, 03-Jul-2012, 3:34 PM | Message # 15
Private
Group: Checked
Messages: 19
Awards: 0
Reputation: 0
Status: Offline
Core, Loathe please forgive me for such simple questions as a preamble for my deeper ones but I want to make sure I'm not stepping on toes.

I have not looked at the code for the coop mod but I would like to. Are you the author (it appears so) and do you mind if I look at it? Further, do you consider it open, meaning may I borrow some things from it? Honestly I see a few things I really like and a few things I really don't like. I see a couple of handlers you do better in your coop (like the auto translator is better in yours than mine) and my coop mod could use a good cleaning up anyway.

As a way of reciprocating I could offer you back a much better way of doing the monster health overlays that won't slide all over. Example:
http://www.youtube.com/watch?v=7jgJV-_N5_E
and also your radar is a....mess....You are welcome to use mine as a base and make your HUD look better if you like.

And lastly my more technical question. I see your mod also suffers from the weapon glitch in that certain pickups cause the HUD to break. I've been thinking on why this happens but I don't have an easy answer. At first I thought it might be Skaarj related but it also happens with weapons/pickups they don't touch and it also does not happen (at least on my server) every time I hit the same pickup.

I'm seriously debating just going back to Unreal and starting a coop server so I can dispense with all this fixing just to run under UT. Anyway, thanks for reading.

:waves at Nelsona:
 
NelsonaDate: Sunday, 08-Jul-2012, 8:15 AM | Message # 16
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
biggrin Hi Gopo, man. Yeah, I admit, weapons spawned at Skaarj locations seems to not be very linked with replication or a replication code is missing. If Skaarj cannot hold that weapon for some reason weapon has no HUD if a player picked it. I tested a map using OldSkool, each Skaarj from map (not spawned later) was bugged like this - he throwed weapon (a bugged one). This bug seems to move forward even later to MH in Tournament. I suppose to be a problem with weapons. This occured very very rarely in UTSPfix and UTCoop games using Tournament replacements not UIWeapons or Uweapons or other slow code weaponry. I need to develop some skills in weaponry design. I think I need to redo those old weapons (I'll test using one or two subclasses directly from Tournament not any abstract slalom).

I don't know if somebody already has a solution or not, but I have in mind other trick for network.

We aren't using replacements. We spy pawns (any) if are armed or not leaving alone stuff from map. If a pawn is human and is holding a crap will replace weapon in following order:
1) Is a player armed ? If yes, destroy that class;
2) Spawn a new fresh class at location, a better one with net code;
3) Make weapon to touch player or simply give him weapon ?;
4) In case of the beautifull Quadshot we want to see Skaarj with any assumed Quadshot.

I'm thinking at this technology in other version of MH.

I think in this way we can use a slow timer without devastating with replacements the map, we can simply deal only with pawns not with map at all.


Message edited by Nelsona - Sunday, 08-Jul-2012, 8:34 AM
 
NelsonaDate: Saturday, 31-Aug-2013, 9:17 PM | Message # 17
Lieutenant colonel
Group: Checked
Messages: 122
Awards: 0
Reputation: 0
Status: Offline
Bump ? Appologise...

Speaking about client-side decals... my most wanted monster shadow, probably because I was a bit tired playing CTF, something triggered me to have a try to gain a proper shadow for different drawscale(s).

Merc or Krall level 1 - good shadow
Merc or Krall level 3 - identically as level 1 - BAD shadow

Now they seems OK, maybe I'll adjust a bit some values, even to clamp at a point.

SpawnNotification works at insane speed - is a fast code, it is acting before to see the pawn initialized copying... only default values, without to notice rescaling after a few fragments of time. A kind of dumb ideea maybe, is to compute drawscale in tick or even delayed tick section, noticing changes, else shadow won't follow pawn when is rescaled. In coop games where there aren't so many creatures as in MonsterHunt you can load that tick, because client is the only one managing that, not server. Clients now days I presume have computers better than a PIII, right ? wink .
 
Forum » Enhanced Coop » ECoop Forum » ECoop Development
Page 1 of 11
Search:

Copyright MyCorp © 2017
Powered by uCoz