Jump to content

kyleg001

Junior Defender
  • Content Count

    31
  • Joined

  • Last visited

    Never

Community Reputation

0 Neutral

About kyleg001

  1. I've noticed this lag occurs when I place auras or traps in areas that contact very large portions of the map especially areas that contain a great amount of vertical resolution. My system does not lag on ANY game nor when running multiple games at the same time. It probably comes down to the routine that maps the area of an aura or trap onto the objects within the map. It probably takes to long processing this information before returning to the calling function and not allowing the the engine to update the view. I've run across things like this in other projects and this usually tends to be the case. Its more than likely the case with the city in the cliffs map as well. Any way, just my two cents. Cheers.
  2. kyleg001

    Item Check Thread

    Can i get an IC on these two, I don't remember where I got them from. Thank You
  3. kyleg001

    Item Check Thread

    It's with set bonus... it's 600 damage w/o. AFAIK the tower stats are possible by themselves, iunno about the items overall tho. Ya i just noticed, thanks
  4. kyleg001

    Item Check Thread

    Could someone IC these 2 pieces being sold on the forum, I didn't think regular ult could cap that high. http://dungeondefenders2.com/forum/showthread.php?99800-WTA-2-Ult-Towers-Capping-Pristine-Helm-and-Leather-Boots EDit: nevermind its in a set
  5. kyleg001

    Item Check Thread

    I spawned this mega myself so I know there is no problem, but here is a better pic. I was gonna auction it, but I think Im going to take a break from dd for a little while, maybe see if the extent of hacking goes down. Also nice to still see you around classic. [ATTACH=CONFIG]330[/ATTACH]
  6. kyleg001

    Item Check Thread

    Hacked like 10 different ways Looked legit to me when I spent all those dang cubes on it. I think I'll quit playing again for awhile, I just lost like 30 cubes worth of gear today:( I've had other people tell me the sparus I posted was fine. I'm just hoping your right cause I already got rid of it. :(
  7. kyleg001

    Item Check Thread

    Both pics the same mate. fixed
  8. kyleg001

    Item Check Thread

    IC on ult++ chest pls [ATTACH=CONFIG]325[/ATTACH] IC on mega for auction [ATTACH=CONFIG]326[/ATTACH] IC on Diamonds please [ATTACH=CONFIG]327[/ATTACH][ATTACH=CONFIG]328[/ATTACH][ATTACH=CONFIG]329[/ATTACH]
  9. kyleg001

    Item Check Thread

    Hacked :( sold to bank
  10. kyleg001

    Item Check Thread

    IC on sparus please http://cloud.steampowered.com/ugc/633033939582222053/F7288670BF42B6F002FD0F3A69AEF07C993F5220/
  11. I'm not really working on this anymore, just have to much on my plate, all the code should be posted in a post I had a little bit back
  12. Good to see some new interest. Unfortunately I've been to busy to do much of anything lately. Good luck
  13. I see now how the items that will be displayed onscreen and minimap will need to be based on the lowest filter settings for all players in game Its not possible to render them separably in spiltscreen mode this seems to be the reason for your changing of the opacity on the minimap. I'm still working on combining both the minimap and onscreen filters, but I need to find where to update them once a player enters or leaves. I'm almost thinking that we would want to have the two bools and minQauality as global vars because of this. It would lessen the hassel of having to set them up on all of the characters. Edit: Should have everything working now. Was having issues removing items from display when a player quits because garbage collection is crap :( Full writeup on code changes and links to all altered files are posted below. Class: DunDefHero Notes: addition of two bools and an int under variable- //NEWSTUFF var bool bShowWorse, bShowEqual; var int MinQualityFilter; under defaults- //NEWSTUFF bShowWorse=false bShowEqual=false MinQualityFilter=13 Class: DunDefHeroManager Notes: Added 'Actor fromActor' to theDroppedEquipment.InitMyEquipmentObject call function DunDefDroppedEquipment ServerCreateDroppedEquipment(HeroEquipment equipment, Actor fromActor, optional float equipmentQuality, optional bool useEquipmentObjectAsTemplate, optional bool spawnFromDir, optional Rotator dirToSpawn, optional float AngleAllowance, optional bool useSpawnPos, optional Vector spawnAtPos, optional int RemoteUserID=-2, optional bool backupOldItemNames, optional bool bDontCheckForDuplicates) { local WorldInfo theWorldInfo; local DunDefDroppedEquipment theDroppedEquipmentTemplate; local DunDefDroppedEquipment theDroppedEquipment; local EquipmentNetInfo netInfo; if((!useSpawnPos && fromActor == none) || equipment == none) return none; if(equipment.DroppedEquipmentTemplates.Length > 0) theDroppedEquipmentTemplate = equipment.DroppedEquipmentTemplates[Rand(equipment.DroppedEquipmentTemplates.Length)]; if(theDroppedEquipmentTemplate == none) theDroppedEquipmentTemplate = DroppedEquipmentTemplates[equipment.EquipmentType]; netInfo = equipment.GetNetInfo(useEquipmentObjectAsTemplate,true); if(!bDontCheckForDuplicates) ServerCheckForDuplicateDroppedEquipment(netInfo.EquipmentID1,netInfo.EquipmentID2); theWorldInfo = class'Engine'.static.GetCurrentWorldInfo(); if(fromActor != none) { if(DunDefEnemy(fromActor) == none && DunDefTreasureChest(fromActor) == none) { theDroppedEquipment = theWorldInfo.Spawn(class'DunDefDroppedEquipment',,,fromActor.Location + ((vect(160,0,150) + ToVector(Frand()*0.6,FrandSigned(),0)*130.0)>>fromActor.Rotation), ToRotator(spawnFromDir?int(dirToSpawn.Yaw + (FRand()*2.0-1.0)*AngleAllowance*DegToRad*RadToUnrRot): RotRand().Yaw,0,0),theDroppedEquipmentTemplate,true); theDroppedEquipment.Velocity = ((210.0 + 140.0*FRand())*(normal(ToVector(FRand(),FRandSigned(),0))+vect(0,0,1.47)))>>fromActor.Rotation; } else { theDroppedEquipment = theWorldInfo.Spawn(class'DunDefDroppedEquipment',,,fromActor.Location + ((vect(30,0,30) + ToVector(0,FrandSigned(),0)*100.0)>>fromActor.Rotation), ToRotator(spawnFromDir?int(dirToSpawn.Yaw + (FRand()*2.0-1.0)*AngleAllowance*DegToRad*RadToUnrRot): RotRand().Yaw,0,0),theDroppedEquipmentTemplate,true); theDroppedEquipment.Velocity = ((210.0 + 140.0*FRand())*(normal(ToVector(1,FRandSigned()*2.0,0))+vect(0,0,1.575)))>>fromActor.Rotation; } } else theDroppedEquipment = theWorldInfo.Spawn(class'DunDefDroppedEquipment',,,spawnAtPos,rot(0,0,0),theDroppedEquipmentTemplate,true); theDroppedEquipment.ReplicatedEquipmentInfo = netInfo; theDroppedEquipment.DroppedByPlayerID = RemoteUserID; //NEWSTUFF theDroppedEquipment.InitMyEquipmentObject(equipmentQuality>0,equipmentQuality,(equipmentQuality>0 && equipment.bForceUseParentTemplate)?equipment:none, fromActor); if(equipmentQuality>0) theDroppedEquipment.ReplicatedEquipmentInfo = theDroppedEquipment.MyEquipmentObject.GetNetInfo(); if(backupOldItemNames) { if(Len(theDroppedEquipment.ReplicatedEquipmentInfo.UserEquipmentName) < 3) theDroppedEquipment.ReplicatedEquipmentInfo.UserEquipmentName = equipment.BackupUserEquipmentName; if(Len(theDroppedEquipment.ReplicatedEquipmentInfo.UserForgerName) < 3) theDroppedEquipment.ReplicatedEquipmentInfo.UserForgerName = equipment.BackupUserForgerName; } theDroppedEquipment.DroppedByPlayer = DunDefPlayer(fromActor) != none; return theDroppedEquipment; } Class: UI_SwapHero Notes: Added code to refresh onscreen dropped equipment on hero swap function SwapHero() { local DataListEntryInterface selectedItem; local DunDefHero aHero; //NEWSTUFF local DunDefDroppedEquipment droppedEquipment; if(DunDefGameReplicationInfo(GetWorldInfo().GRI).DoUseBuildTimer() && GetViewportClient().GetActiveUISceneFromClass(class'UI_BuildTimer') != none && UI_BuildTimer(GetViewportClient().GetActiveUISceneFromClass(class'UI_BuildTimer')).TotalBuildTime < 1) //don't allow hero swapping with less than 2s on the clock return; selectedItem = HeroDataList.GetSelectedEntry(); if(selectedItem == none || selectedItem == GetHeroManager().GetActiveHero(GetPlayerOwner())) return; aHero = selectedItem; if(aHero.ActivePlayer != none && aHero.ActivePlayer != PlayerOwner) return; bDontRefreshHeroList=true; // we swapped heroes! Tell the server! DunDefPlayerController(PlayerOwner.Actor).ServerSwappedHeroes(); GetHeroManager().SetActiveHero(DunDefHero(selectedItem),PlayerOwner); DunDefHero(selectedItem).HeroLevelUp(); //NEWSTUFF // Update Diplayed Items foreach class'Engine'.static.GetCurrentWorldInfo().DynamicActors(class'DunDefDroppedEquipment',droppedEquipment) droppedEquipment.RefreshQualityColor(); CloseWithAnimation(); } Class: DunDefPlayerControler Notes:Added bool bLoggedOut and added code to refresh onscreen dropped equipment on hero enter under variable- //NEWSTUFF var bool bLoggedOut; under defaults- //NEWSTUFF bLoggedOut=false; reliable server function ServerRestartPlayer() { //NEWSTUFF local DunDefDroppedEquipment droppedEquipment; if(Pawn != none) return; `log("RESTART PLAYER!"); if ( WorldInfo.NetMode == NM_Client ) return; if ( !WorldInfo.Game.PlayerCanRestart( Self ) || Pawn != none ) return; if(`TimeSince(LastDiedTime) < DunDefGameReplicationInfo(WorldInfo.GRI).GetPlayerRespawnTime(self)) return; if(class'DunDefGameReplicationInfo'.static.GetIsInCombatPhase()) AddManaPower(-ManaPower); AddManaPower(main(WorldInfo.Game).AddManaAfterRespawn(self)); `log("RESTART PLAYER 2!"); if(DunDefGameReplicationInfo(WorldInfo.GRI).AllowPlayerSpawn(self)) WorldInfo.Game.RestartPlayer(self); //NEWSTUFF // Update Diplayed Items foreach class'Engine'.static.GetCurrentWorldInfo().DynamicActors(class'DunDefDroppedEquipment',droppedEquipment) droppedEquipment.RefreshQualityColor(); } Class: Main Notes: Added code to Logout() to set PC.bLoggedOut to true and to refresh onscreen dropped equipment on hero exit - Garbage collection doesn't destroy the playercontroller right away so a loggedout bool had to be setup. function Logout( Controller Exiting ) { local DunDefPlayerController PC; local array theEvents; local SequenceObject theEvent; //NEWSTUFF local DunDefDroppedEquipment droppedEquipment; PC = DunDefPlayerController(Exiting); //NEWSTUFF // Tell player controller the player has logged out PC.bLoggedOut = true; if(!SwappingPlayerControllers) { `log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); `log("Exiting " @ PC.Player); DoPlayerLeaving(DunDefPlayerController(Exiting)); } super.Logout(Exiting); WorldInfo.ForceGarbageCollection( TRUE ); Heartbeat(); WorldInfo.GetGameSequence().FindSeqObjectsByClass(class'DunDef_SeqEvent_PlayerLeft',true,theEvents); foreach theEvents(theEvent) DunDef_SeqEvent_PlayerLeft(theEvent).CheckActivate(self,self,false); //NEWSTUFF // Update Diplayed Items foreach class'Engine'.static.GetCurrentWorldInfo().DynamicActors(class'DunDefDroppedEquipment',droppedEquipment) droppedEquipment.RefreshQualityColor(); } Class: DunDefDroppedEquipment Notes: added 'constant' and two bools; integrated filter for DrawMiniMapIcon function; Altered InitMyEquipmentObject function to check if item was dropped by a player; Altered RefreshQualityColor function to filter Items; altered AllowPickupByHero function; Altered PostBeginPlay function to properly report good equipment. under variable- //NEWSTUFF var int minQualityDisplay; var bool bDroppedbyHero; var bool bShowItem; under defaults- //NEWSTUFF MinQualityDisplay=16 bDroppedbyHero=false; bShowItem=false; simulated function DrawMiniMapIcon(Canvas Canvas, DunDefMiniMap MiniMap) { local Vector MapPos; local float IconSize; local bool bIsBetter; local int reasonForDenial; local DunDefPlayerController PC; //NEWSTUFF local bool bIsEqual, bShowEqual, bShowWorse, bMeetsMinQuality; local float Opacity; minQualityDisplay = 16; //Set to Ultimate before grabbing any settings. May need to find a way to default this to the highest quality existing //In case Trendy ever introduce quality 17? foreach WorldInfo.LocalPlayerControllers(class'DunDefPlayerController',PC) { //NEWSTUFF //Flags for logic. Grabs settings (currently stored in hero data for lack of a better home, but these can be moved eventually) //Takes into account each splitscreen player's personal settings. "Show X" settings take precedence. if(!bShowEqual && PC.GetHero().bShowEqual) bShowEqual = true; if(!bShowWorse && PC.GetHero().bShowWorse) bShowWorse = true; //Lower min quality in splitscreen takes precedence. The quality minimum should default to 0 if no player has it set, //which'll display everything minQualityDisplay = Min(minQualityDisplay, PC.GetHero().MinQualityFilter); if(!DunDefInput(PC.PlayerInput).WantsMiniMap() || (!PC.GetHero().AllowEquipmentPickup(MyEquipmentObject,reasonForDenial) && reasonForDenial != 1)) continue; if(PC.GetHero().GetEquipmentComparisonIndex(MyEquipmentObject) == 1) { bIsBetter=true; break; } //NEWSTUFF //Set a flag for if it's equal rating too if(PC.GetHero().GetEquipmentComparisonIndex(MyEquipmentObject) == 0) { bIsEqual=true; break; } } //NEWSTUFF //More logic. First check quality against min quality to display; make local storage of Opacity to make later color changes simpler if(MyEquipmentObject.NameIndex_QualityDescriptor >= minQualityDisplay) bMeetsMinQuality = true; Opacity=MiniMap.Opacity; //Case 1: Is item equal comparison index? Do we show equal comparison items? //Display if both true and it meets our min quality to display if(!bShowEqual && bIsEqual && !bMeetsMinQuality) Opacity=0.0; //Case 2: Is item worse (not better and not equal)? Do we show worse items? //Display only if it still meets our minimum quality requirement. if(!bShowWorse && !(bIsEqual || bIsBetter) && !bMeetsMinQuality) Opacity=0.0; //if(!bIsBetter && DunDefGameReplicationInfo(WorldInfo.GRI).IsInCombatPhase) // return; IconSize = MiniMap.CurrentDrawMapScale*MiniMapGoodEquipmentIconSize; MapPos = MiniMap.ConvertCenterMapCoordToCanvasCoord(MiniMap.ConvertWorldCoordToCenterMapCoord(Location)); Canvas.SetPos(MapPos.X - IconSize/2.0,MapPos.Y - IconSize/2.0); if(MyEquipmentObject.NameIndex_QualityDescriptor >= 16) Canvas.DrawColor = ColorScaleAlpha(UltimateIconColor, Opacity); else if(MyEquipmentObject.NameIndex_QualityDescriptor >= 15) Canvas.DrawColor = ColorScaleAlpha(SupremeIconColor,Opacity); else if(MyEquipmentObject.NameIndex_QualityDescriptor >= 14) Canvas.DrawColor = ColorScaleAlpha(TranscendentIconColor,Opacity); else if(!bIsBetter) { if(MyEquipmentObject.NameIndex_QualityDescriptor >= 13) Canvas.DrawColor = ColorScaleAlpha(MythicalIconColor,Opacity); else Canvas.DrawColor = ColorScaleAlpha(bIsBetter?MiniMapGoodEquipmentIconColor:MiniMapNotGoodEquipmentIconColor,Opacity); } else Canvas.DrawColor = ColorScaleAlpha(bIsBetter?MiniMapGoodEquipmentIconColor:MiniMapNotGoodEquipmentIconColor,Opacity); Canvas.DrawTexture(MiniMapGoodEquipmentIcon,IconSize/MiniMapGoodEquipmentIcon.SizeX); //`log(Dead @ "Drawing Tile with Opacity" @ string(MiniMapIconOpacity*MiniMap.Opacity) @ ", Icon Texture" @ GetMiniMapIconTexture() @ ", Map Pos" @ MapPos @ IconSize); } simulated event PostBeginPlay() { super.PostBeginPlay(); if(bUseDroppedEquipmentSkelMeshComp) { AttachComponent(DroppedEquipmentLightEnvironmentComp); DroppedEquipmentSkelMeshComp.SetLightEnvironment(DroppedEquipmentLightEnvironmentComp); DroppedEquipmentSkelMeshComp.SetTickGroup(TG_DuringAsyncWork); DroppedEquipmentSkelMeshComp.bUpdateSkelWhenNotRendered=false; DroppedEquipmentSkelMeshComp.bIgnoreControllersWhenNotRendered=true; DroppedEquipmentSkelMeshComp.bTickAnimNodesWhenNotRendered=false; AttachComponent(DroppedEquipmentSkelMeshComp); SetTimer(0.01,true,'RotateSkelMesh'); } if(EquipmentInstanceMeshMaterial != none) { MyMeshMaterialInstance= new class'MaterialInstanceConstant'; MyMeshMaterialInstance.SetParent(EquipmentInstanceMeshMaterial); MyParticleComponent.SetMaterialParameter(EquipmentMaterialName,MyMeshMaterialInstance); if(bUseDroppedEquipmentSkelMeshComp) DroppedEquipmentSkelMeshComp.SetMaterial(SkelMeshCompColorMICIndex,MyMeshMaterialInstance); } if(Role == ROLE_Authority) { if(GRIHostRandomID == -1) GRIHostRandomID=DunDefGameReplicationInfo(worldinfo.GRI).GRIHostRandomID; if(EquipmentTemplate != none) { ReplicatedEquipmentInfo = EquipmentTemplate.GetNetInfo(true); InitMyEquipmentObject(ForceRandomizationQuality > 0,ForceRandomizationQuality); } //NEWSTUFF // check to see how useful I am, and report the statistic thusly: if(bShowItem) ReportEquipmentToStats(); //increment global number of dropped items main(WorldInfo.Game).NumberOfDroppedEquipment++; main(WorldInfo.Game).CheckForExcessiveDroppedEquipment(); } SetTimer(0.01,false,'PlayDroppedSound'); if(class'WorldInfo'.static.IsConsoleBuild(CONSOLE_Xbox360)) SetTimer(DisableCollisionTimer,false,'DisableCollision'); WorldInfo.SpecialActorsLists[AL_MINIMAPICONS].Actors.AddItem(self); WorldInfo.FastOverlapListThree.AddItem(self); worldinfo.FastOverlapListSix.AddItem(self); OctreeCollectionGroup+=DROPPED_EQUIPMENT_COLLECTIONGROUP+class'DunDefPlayer'.const.ACTIVATABLE_COLLECTIONGROUP; } //NEWSTUFF // added optional actor prama simulated function InitMyEquipmentObject(optional bool AddRandomValues, optional float RandomEquipmentQuality, optional HeroEquipment CopyRandomizerValuesFromTemplate, optional Actor fromActor) { if(MyEquipmentObject != none) return; if(ReplicatedEquipmentInfo.EquipmentTemplate == none) { `log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); `log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); `log("ATTEMPTED TO INITIALIZE DROPPED EQUIPMENT WITH NO EQUIPMENT TEMPLATE!!!!"); `log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); `log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); } MyEquipmentObject = class'HeroEquipment'.static.CreateEquipmentFromNetInfo(ReplicatedEquipmentInfo,,,self); if(AddRandomValues && RandomEquipmentQuality > 0) { if(CopyRandomizerValuesFromTemplate != none) { MyEquipmentObject.CopyRandomizersFromTemplate(CopyRandomizerValuesFromTemplate); } MyEquipmentObject.AddRandomizeValues(RandomEquipmentQuality); ReplicatedEquipmentInfo = MyEquipmentObject.GetNetInfo(); } //NEWSTUFF // Checks if Item was dropped by a player if(fromActor != none && DunDefEnemy(fromActor) == none && DunDefTreasureChest(fromActor) == none) bDroppedbyHero = true; RefreshQualityColor(); //HACK: WHY DOES EQUIPMENT SOMETIMES GET INITIALIZED WITHOUT A WEAPON EQUIPMENT TEMPLATE??? if(MyEquipmentObject.EquipmentType == EQT_WEAPON && MyEquipmentObject.EquipmentWeaponTemplate == none) { `log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); `log("ATTEMPTED TO INITIALIZE DROPPED WEAPON WITH NO WEAPON TEMPLATE!!!!"); `log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); if(Role == ROLE_Authority) Destroy(); } } simulated function RefreshQualityColor() { local DunDefPlayerController PC; local float ratingPercent; local EquipmentColorSet colorSet; if(MyParticleComponent.bIsActive) { MyParticleComponent.KillParticlesForced(); MyParticleComponent.DeactivateSystem(); } ratingPercent = MyEquipmentObject.GetEquipmentRatingPercent()*class'main'.default.EquipmentQualityOverlayMultiplier; MyParticleComponent.SetColorParameter('Color',LinearColorToColorDD(ToLinearColor(1,1,1,ratingPercent))); if(MyEquipmentObject.UsesColorSets() && MyMeshMaterialInstance != none) { colorSet = MyEquipmentObject.GetEquipmentColorSet(); MyMeshMaterialInstance.SetVectorParameterValue('PrimaryColor_G',colorSet.PrimaryColor); MyMeshMaterialInstance.SetVectorParameterValue('SecondaryColor_R',colorSet.SecondaryColor); } if(bUseMaterialEquipmentRating && MyMeshMaterialInstance != none) MyMeshMaterialInstance.SetScalarParameterValue('EquipmentRating',ratingPercent); if(MyEquipmentObject.UseEquipmentDrawScale()) MyParticleComponent.SetVectorParameter('WeaponScale',(ExtraMeshScaleMultiplier*MyEquipmentObject.GetEquipmentDrawScale()+AdditionalMeshScale)*vect(1.0,1.0,1.0)); if(bUseDroppedEquipmentSkelMeshComp) DroppedEquipmentSkelMeshComp.SetScale((ExtraMeshScaleMultiplier*MyEquipmentObject.GetEquipmentDrawScale()+AdditionalMeshScale)*default.DroppedEquipmentSkelMeshComp.Scale); //NEWSTUFF // If the Item was dropped by a player, is an egg(pet), or accesory show it bshowItem = false; if (bDroppedByHero || MyEquipmentObject.EquipmentType > 4) bShowItem = true; else { // For lowest value settings foreach WorldInfo.LocalPlayerControllers(class'DunDefPlayerController',PC) { // Do not show Items for logged out players if(!PC.bLoggedOut) { // If show worse bool set or Item meets min quality show it if(PC.GetHero().bShowWorse || MyEquipmentObject.NameIndex_QualityDescriptor >= PC.GetHero().MinQualityFilter) bShowItem = true; else { if(PC.GetHero().bShowEqual) { // If showEqual bool is set show Items of equal or greater quality if(PC.GetHero().GetEquipmentComparisonIndex(MyEquipmentObject) >= 0) { bShowItem = true; break; } } else { // If showEqual not set only show Items of greater quality if(PC.GetHero().GetEquipmentComparisonIndex(MyEquipmentObject) == 1) { bShowItem = true; break; } } } } } } // Render Item if(bShowItem) MyParticleComponent.ActivateSystem(); } simulated function int AllowPickupByHero(DunDefHero hero, float MaxPickupRange, optional int activationType=1, optional bool ignoreClassRequirement, optional out int reasonForDenial) { if(bDeleteMe || LifeSpan == -1 || MyEquipmentObject == none || hero == none || bAutoDestroyed) return -4; if(hero.ActivePlayer == none || hero.ActivePlayer.Actor == none || hero.ActivePlayer.Actor.Pawn == none || (activationType == 0 && LocalPlayer(hero.ActivePlayer) != none && !class'DunDefHeroManager'.static.GetHeroManager().CanStoreInItemBox(MyEquipmentObject,hero.UserID))) return -3; if(!ignoreClassRequirement && !hero.AllowEquipmentPickup(MyEquipmentObject,reasonForDenial) && activationType != 0) { if((!DunDefGameReplicationInfo(WorldInfo.GRI).bAllowNonOwnerItemPickups && (DroppedByPlayerID != -2 || Role < ROLE_Authority) && DunDefPlayerController(hero.ActivePlayer.Actor).RemoteUserID != DroppedByPlayerID) || VSize(Location - hero.ActivePlayer.Actor.Pawn.Location) > MaxPickupRange) return -2; return -1; } //NEWSTUFF // Item is hidden by filter if(!bShowItem) return -1; if(DunDefPlayer(hero.ActivePlayer.Actor.Pawn) != none && !DunDefPlayer(hero.ActivePlayer.Actor.Pawn).AllowDropPickups()) return 0; if((!DunDefGameReplicationInfo(WorldInfo.GRI).bAllowNonOwnerItemPickups && (DroppedByPlayerID != -2 || Role < ROLE_Authority) && DunDefPlayerController(hero.ActivePlayer.Actor).RemoteUserID != DroppedByPlayerID) || VSize(Location - hero.ActivePlayer.Actor.Pawn.Location) > MaxPickupRange && !DunDefPlayerController(hero.ActivePlayer.Actor).bServerRunningRequestActivationCheck) return 0; return 1; } Here are links to the full files to make everything easier: DuDefHero.uc - http://pastebin.com/NyAWk517 DunDefHeroManager.uc - http://pastebin.com/qKbYnPrc UI_SwapHero.uc - http://pastebin.com/4Hj3aqzA DunDefPlayerController.us - http://pastebin.com/jhxGWvW3 main.uc - http://pastebin.com/hUzhNAJb DunDefDroppedEquipment.uc - http://pastebin.com/aXrr0SHk Plese let me know if you disagree with anything here, we still need to get the greatly improved quality filter blended into this, which I'm hoping you will be able to work on. I'm going to be rather busy this week so I'll have very limited time to work on this. I'll try to find some time to sit down and get the UI going. Let me know what you think. One thing I noticed is that the onscreen items won't update when a player changes equipment in between waves.
  14. I agree, don't really think we need an option for it. I think the shield being displayed was a random glitch on my part. They do still follow in line with the rest of the equipment which may cause a concern when filtering them both on screen and on the mini map. I went ahead and changed DunDefDroppedEquipment - RefreshQualityColor() to if(MyEquipmentObject.NameIndex_QualityDescriptor >= qualityFilterNameIndex || bDroppedByHero || MyEquipmentObject.EquipmentType > 4) so that all accessories and eggs (pets) will be displayed. I'll see about trying to combine the 2 tomorrow, and posting all of the code so that we can agree/work on the same set of code in a step towards a finished TC.
×
×
  • Create New...