Jump to content

Handepsilon

Totem Arts Staff
  • Posts

    2007
  • Joined

  • Last visited

Everything posted by Handepsilon

  1. It's... rather complicated. Destroying the building is easy, but it can only be done if the 'killer' in the kismet node is from the opposing team. Few more thing for the SDK to cover up in the next patch. In fact, we will need an SDK wishlist, preferably with paved path from the community too...
  2. First, make sure your SDK is NOT in the same place as your game Good? Okay, now in the Binaries folder, look for win32 folder, then in UDK.exe, make a shortcut. Open the shortcut's properties, and then in the Start In box, put 'editor' at the end, separated with space. Then just open that shortcut and you're good to go!
  3. First, they need to fix that condition where if your enemy doesn't have the counterpart building, you can't use your own as well... second, I always imagine a Tiberium-infested city to be like this particular UT3 DM map http://ut3.gamebanana.com/maps/53228
  4. Oh yeah forgot about that Or we can go your way and just make the High-Poly from the low-poly. But it seems that psychology from the existance of your low-poly model will hamper your creativity (It sometimes does to me ) Besides, I'm also guilty with the warning, only I told it to Ska-ara on his RA2 model project
  5. Everything seems to have gone back to normal eh? I can already your Constructive Tyranny and Testing Server, and St0rm. No word on TmX's own US server tho
  6. Don't worry about the poly yet. You're gonna need a high-poly version to make the normal map anyway....
  7. TURNS OUT this whole thing is rather teamhampering atm. The guys outside can hear your team messages with an item name (e.g. : Destroy it Now, ) using your local message. sxchmn heard my 'Get in the vehicle, Medium Tank' as 'Get in the vehicle, Tank Sedang'
  8. Okay, so I've experimented with Localization (broke my game after premature exit) and here's what I get from the result So far I only managed to change the weapon name, the class name, and vehicle name, and also the vehicle bound and mystery pickup Building localization is there, but refused to be implemented for some reason. The messages are not localized except for buildings
  9. Ah but I don't think it's just TmX. It felt like a portion of the list was taken away
  10. Why not... class STankMutator extends UTMutator; function bool CheckReplacement(Actor Other) { if (Other.IsA('Rx_Vehicle_StealthTank') && !Other.IsA('Rx_Vehicle_StealthTank_MOD')) { ReplaceWith(Other, "Rx_Vehicle_StealthTank_MOD"); } } ReplaceWith() is a thing btw. Also, the other if is to make sure that the MOD version does not get replaced again, over and over (IsA() also reads children as their parents)
  11. Seems like it also affects some RenX servers, including TmX's US server and the ALL DECK ALL DAY. I see fewer servers running on the list... O well, let's download Carnage Club first
  12. It is such a long and complicated process. You might as well look for the Mastering Unreal Technology book or if you like free, go search UDN for the general basics of mapping, and then you can go lay down the building prefabs and set up the game infos
  13. Did you put the ModEditPackage line of your mod BELOW the ModEditPackage=Renx_Game line? If not, that's the problem
  14. So like.... you'd rather be kept blind and be forced to take time to check what has changed and then scream about who had the atrocity to rebalance your game? I think it's here so peeps can voice their opinion about the balance now and then it can be modified as necessary emphasis 'as necessary'
  15. I'm gonna have to agree with HaTe. It takes skills and good framerate to snipe, you know, unless they move straightforwardly or just stand still, which is almost never the case. I do much better as Soldier, Shotgunner, Officer, or McFarland when it comes to infantry fight, mainly because they need less precise aiming to actually kill people (Even kill more Engis as Soldier than as anything else)
  16. Thanks RypeL. From the looks of it, it might indeed save some time for me
  17. Actually it's just a copy paste. I really don't have that much time, so the progress would be slow indeed. This piece is just to pave path for any dev to include needed feature for the AI I referenced from the UTBot scripts sometimes but... since I'm not really much of a coder, the whole thing felt so complicated to me.
  18. Okay, so I'm working on a more decent bot for RenX. Current Progress : Currently trying to get them to go disarm beacon when one is spotted. class Rx_Bot_Extended extends Rx_Bot; function class BotBuy(Rx_Bot Bot, bool bJustRespawned) { local int PickedVehicle; local int PickedChar; local class PickedCharClass; local Rx_PurchaseSystem PurchaseSystem; PurchaseSystem = Rx_Game(WorldInfo.Game).GetPurchaseSystem(); if(ShouldFindBeacon()) { //Single-minded mode, prioritize Beacon first `log("Enemy Beacon Detected!!!"); if(Bot.GetCredits() >= 350) PickedChar = 14; else PickedChar = 4; } else { if(Bot.TargetMoney == 0 || (Bot.DeathsTillTargetMoneySwitch == 0 && Bot.GetCredits() < Bot.TargetMoney)) { Bot.TargetMoney = Bot.GetNewTargetMoney(); if(FRand() < 0.7) Bot.DeathsTillTargetMoneySwitch = 3; else Bot.DeathsTillTargetMoneySwitch = 2; } if(Bot.GetCredits() >= Bot.TargetMoney) { PickedVehicle = -1; if(Bot.GetOrders() == 'ATTACK' && Bot.GetCredits() >= 350 && ! PurchaseSystem.AreVehiclesDisabled(GetTeamNum(), None) && FRand() <= 0.8) { if(Bot.GetTeamNum() == TEAM_GDI) { PickedVehicle = GetGdiVehicle(); } else { PickedVehicle = GetNodVehicle(); } } else if(Bot.GetOrders() == 'DEFEND' && Bot.GetCredits() >= 350 && FRand() <= 0.4) { PickedChar = 14; } else if(Bot.GetCredits() >= 15000) { PickedChar = 4 + Rand(9); } else if(Bot.GetCredits() >= 800) { PickedChar = 10 + Rand(3); } else if(Bot.GetCredits() >= 800) { PickedChar = 7 + Rand(3); } else if(Bot.GetCredits() >= 750) { PickedChar = 7 + Rand(3); } else if(Bot.GetCredits() >= 500) { PickedChar = 7 + Rand(3); } else if(Bot.GetCredits() >= 225) { PickedChar = 4 + Rand(3); } if(PurchaseSystem.AreHighTierPayClassesDisabled(GetTeamNum())) { PickedChar = Rand(4); } if(PickedVehicle != -1) { if(PurchaseSystem.PurchaseVehicle(Rx_Pri (Bot.PlayerReplicationInfo), Bot.GetTeamNum(), PickedVehicle)) { Bot.SetBaughtVehicle(PickedVehicle); if(Bot.GetCredits() >= 15000) { PickedChar = 4 + Rand(9); } else if(! PurchaseSystem.AreHighTierPayClassesDisabled(GetTeamNum()) && FRand() < 0.25) { if(Bot.GetCredits() >= 1000) { PickedChar = 10 + Rand(3); } else if(Bot.GetCredits() >= 800) { PickedChar = 7 + Rand(3); } else if(Bot.GetCredits() >= 750) { PickedChar = 7 + Rand(3); } else if(Bot.GetCredits() >= 500) { PickedChar = 7 + Rand(3); } else if(Bot.GetCredits() >= 225) { PickedChar = 4 + Rand(3); } } else if(FRand() < 0.5) { PickedChar = 3; } } } if(PickedChar != 0) { if(Bot.GetTeamNum() == TEAM_GDI) { PickedCharClass = PurchaseSystem.GDIInfantryClasses[PickedChar]; Rx_Pri(Bot.PlayerReplicationInfo).RemoveCredits (PurchaseSystem.GDIInfantryPrices[PickedChar]); } else { PickedCharClass = PurchaseSystem.NODInfantryClasses[PickedChar]; Rx_Pri(Bot.PlayerReplicationInfo).RemoveCredits (PurchaseSystem.NODInfantryPrices[PickedChar]); } Bot.TargetMoney = 0; `LogRxPub("GAME" `s "Purchase;" `s "character" `s PickedCharClass.name `s "by" `s `PlayerLog(Bot.PlayerReplicationInfo)); return PickedCharClass; } } else if(Bot.GetCredits() > 0) { Bot.DeathsTillTargetMoneySwitch--; } } if(bJustRespawned) { return PurchaseSystem.GetStartClass(Bot.Pawn.GetTeamNum()); } else { return UTPlayerReplicationInfo (Bot.PlayerReplicationInfo).CharClassInfo; }} function bool AssignSquadResponsibility() { if(Rx_Vehicle(Pawn) != None && Enemy != None && !Rx_Vehicle (Pawn).ValidEnemyForVehicle(Enemy)) { //loginternal("LoseEnemy"); Enemy = None; //LoseEnemy(); } if(bStrafingDisabled && Pawn.Anchor == None) { return false; } if(BaughtVehicleIndex != -1) { if(GoToBaughtVehicle()) { return true; } } if(UTVehicle(Pawn) == None && HasRepairGun()) { if(ShouldFindBeacon()) { `log("Enemy Beacon Detected!!!"); return true; } if(RepairCloseVehicles()) { return true; } } return super(UTBot).AssignSquadResponsibility(); } State Defending { Begin: WaitForLanding(); CampTime = bShortCamp ? 0.3 : 3.0; bShortCamp = false; if ( Pawn.bStationary ) { Goto('Pausing'); } SetRouteGoal(); if ( Pawn.ReachedDestination(RouteGoal) ) { Goto('Pausing'); } else { Moving: Pawn.bWantsToCrouch = false; MoveToward(MoveTarget); if (Pawn.ReachedDestination(RouteGoal)) { ShouldDefendPosition(); // will change state/label if true } } LatentWhatToDoNext(); Disarm: MoveToward(MoveTarget); if (Pawn.ReachedDestination(RouteGoal)) { FireWeaponAt(Focus); `log("Found Enemy Beacon!"); } if(Focus == None) GoTo('Begin'); LatentWhatToDoNext(); Pausing: if (UTVehicle(Pawn) != None && UTVehicle(Pawn).bShouldLeaveForCombat) { UTVehicle(Pawn).DriverLeave(false); } StopMovement(); Pawn.bWantsToCrouch = IsSniping() && !WorldInfo.bUseConsoleInput; if ( DefensePoint != None ) { if ( Pawn.ReachedDestination(DefensePoint) ) { Focus = None; SetFocalPoint( Pawn.Location + vector (DefensePoint.Rotation) * 1000.0 ); } } else if ( (DefensivePosition != None) && Pawn.ReachedDestination (DefensivePosition) ) { SuggestDefenseRotation(); } SwitchToBestWeapon(); Sleep(0.5); if (UTWeapon(Pawn.Weapon) != None && UTWeapon (Pawn.Weapon).ShouldFireWithoutTarget()) Pawn.BotFire(false); Sleep(FMax(0.1,CampTime - 0.5)); LatentWhatToDoNext(); } function bool ShouldFindBeacon() { local Rx_Weapon_DeployedBeacon Beacon; if(Focus.IsA('Rx_Weapon_DeployedBeacon')) { GoToState('Defending','Disarm'); MoveTarget = FindPathToward(Focus); return True; } foreach AllActors(class 'Rx_Weapon_DeployedBeacon', Beacon) { if(CheckIfDisarmNeeded(Beacon)) { Focus = Beacon; GoToState('Defending','Disarm'); MoveTarget = FindPathToward(Beacon); return True; } } return false; } function bool CheckIfDisarmNeeded(Rx_Weapon_DeployedBeacon DisarmTarget) { local RxIfc_SpotMarker SpotMarker; local Rx_Building TempB; local float NearestSpotDist; local RxIfc_SpotMarker NearestSpotMarker; local float DistToSpot; foreach AllActors(class'Rx_Building',TempB,class'RxIfc_SpotMarker') { SpotMarker = RxIfc_SpotMarker(TempB); DistToSpot = VSize(TempB.location - location); if(NearestSpotDist == 0.0 || DistToSpot < NearestSpotDist) { NearestSpotDist = DistToSpot; NearestSpotMarker = SpotMarker; } } if(Rx_Building(NearestSpotMarker) != None && Rx_Building (NearestSpotMarker).GetTeamNum() != GetTeamNum()) return True; return False; } I'd love to hear from the AI maker of this game if possible Current problem... Beacon planted, some peeps go Engi, but none disarm them Rx_GFxHud Transient.Rx_GFxHud_1 Function Renx_Game.Rx_GFxHud:UpdateBuildings:12EB [1138.55] ScriptWarning: Accessed None 'Icon' Rx_GFxHud Transient.Rx_GFxHud_1 Function Renx_Game.Rx_GFxHud:UpdateBuildings:12EB [1138.55] ScriptWarning: Accessed array 'Rx_GFxHud_1.BuildingInfo_Nod' out of bounds (5/5) Rx_GFxHud Transient.Rx_GFxHud_1 Function Renx_Game.Rx_GFxHud:UpdateBuildings:1414 [1138.55] ScriptWarning: Accessed None 'Stats' Rx_GFxHud Transient.Rx_GFxHud_1 Function Renx_Game.Rx_GFxHud:UpdateBuildings:1414 [1138.60] Rx: GAME Spawn; player Nod,b271,Elie Arabian character Rx_FamilyInfo_Nod_Soldier [1138.62] ScriptLog: Enemy Beacon Detected!!! [1138.64] ScriptWarning: Control reached the end of non-void function (make certain that all paths through the function 'return ' Rx_Bot_Extended uedpiecnc-coastalsmall.TheWorld:PersistentLevel.Rx_Bot_Extended_5 Function renx_extension_ai.Rx_Bot_Extended:ShouldFindBeacon:00CC [1138.71] ScriptWarning: Accessed array 'Rx_GFxHud_1.BuildingInfo_Nod' out of bounds (5/5) Rx_GFxHud Transient.Rx_GFxHud_1 Function Renx_Game.Rx_GFxHud:UpdateBuildingInfo_Nod:0027 [1138.71] ScriptWarning: Accessed array 'Rx_GFxHud_1.BuildingInfo_Nod' out of bounds (5/5) Ignore the non-void function warning. I forgot to put return false at the end of the ShouldFindBeacon function
  19. You might want to rejoice. I'm currently trying to get some features inside the current RenX's bots Currently attempting to insert disarm beacon functions
  20. I was about to add coastal turrets on their base and a few turrets to support their base, but probably got lost in the last crash. Obviously Nod is way too defenseless against a hover now Will try fixing Inf Path's collision And I don't know about flying. It feels compact enough you don't actually need to fly, except through the river. Gonna try to scale down the original map, but might take more time to realign everything back to normal....
  21. You can search in Epic Games forum on how to tweak the video through the ini files actually. You can edit it beyond what is provided in the settings Anyway, gonna try out these settings later. Having FPS problems too
  22. The secret of the recipe is the humvees behind him
  23. Sorry B0NG, I was just thinking it will cost me less with Rar files... Anyway, this is already a lot of custom maps....
×
×
  • Create New...