Jump to content

[WIPz:Oblivion] AFK_Arena


Dwip

Recommended Posts

It appears to be something else. Some of the time it works fine, then not so much. Compiles fine in the OBSE CS and everything. Also the goddamned announcer doesn't seem to be firing for no reason I can see.Remember those pillars we dealt with that overlapped between AFK_Arena and the UOP? That seems to have either stopped working, or I'm forgetting something somewhere.OTOH, I haven't quite figured out how I want to texture this yet, but:AFKArenaFlambergeWIP.jpg

Link to comment
Share on other sites

  • Replies 70
  • Created
  • Last Reply

Top Posters In This Topic

  • Dwip

    28

  • Conner

    26

  • Arthmoor

    12

  • Hana

    3

Top Posters In This Topic

Hmm, sounds like some conditional check, in that case. I don't know the format for Oblivion scripts nor their capabilities/limitations, but falling back to what I know of C, I'd check for stuff that's set to not happen under X circumstances.Regarding the pillars, I'll defer to Samson.Beautiful flammenschwerts, Dwip, I trust you are setting those to both be strictly two-handed...

Link to comment
Share on other sites

I'm sure it is a conditional somewhere, I just can't figure out what.The one of those is a stock daedric claymore, by the by. The other will, indeed, be a two-hander.

Link to comment
Share on other sites

It appears to be something else. Some of the time it works fine' date=' then not so much. Compiles fine in the OBSE CS and everything. Also the goddamned announcer doesn't seem to be firing for no reason I can see.[/quote']You could always upload the current incarnation. Perhaps fresh eyes will spot the problem?
Remember those pillars we dealt with that overlapped between AFK_Arena and the UOP? That seems to have either stopped working, or I'm forgetting something somewhere.
Ugh. You know. I wonder if something got botched in the UOP itself then because someone else was whining the other day about duplicate chapels in OCR Anvil which shouldn't be happening. Can't really see how though because I go to Anvil and see one chapel right where it belongs.
Link to comment
Share on other sites

AFK_Arena.esp on the server.I actually fixed the announcer bug I was having, but am now having other, more fun bugs.- See above re: pillars.- The announcing at the end of 3v3 fights is fucked. Either I biffed a variable check somewhere, or I dunno what. Hey self, you dumbass. Increment your variables. Fixed.- Aggression for XvX fights is fucked. Pretty sure I'll need to resolve this via factions and aggression settings on the NPCs. Too, sometimes in multiple combatant fights, some of the combatants just won't move for some reason. Probably fixed. BlueCombatant02 and BlueCombatant01 are not the same thing. There may be something more at work here.- I keep getting announcer voice spam on the second round. No idea what the deal there is.- ArenaSpectators gets its stage set to 10...somewhere. For all I can tell, space aliens are doing this. I can't find it in any logical spot. This isn't really important, except that I kind of want to know.If you happen to figure out any of that, do let me know. Meanwhile, I will continue to slave away.Oh, and there are various print to console commands in various spots in the scripting, which will hopefully help track things down.

Link to comment
Share on other sites

Sounds like it's still being a bit of a pain in the ass, but at least you've basically got it down to 5 bugs left. :shrug:Could the two announcer bugs be related?Combatants being completely frozen sounds like a pretty serious issue, but the spectator stage setting really shouldn't be a big deal or that hard to track down. Can you do a search for 10 and see if you can find it that way?

Link to comment
Share on other sites

5 bugs...for now.Announcers...maybe. I tend to think not, since different sections of the script, but.If only searching worked in the way that you describe. I could in theory check out the script dump, but if it's a dialogue or stage result somewhere, I'm SOL. Too, I've had other priorities.

Link to comment
Share on other sites

No option to grep your code, eh? ;)Hmm, you've got a point, if it's getting set to 10 by a calculation rather than directly it could be VERY hard to track down, you'd have to go line by line of everything that impacts the stage setting backwards until you'd found the calculations involved. :(

Link to comment
Share on other sites

Well, I fixed a couple of things. The announcer voice bug is proving to be ellusive, however. MOAR printc!As to finding things, it's even worse than that - the code is split up over several different scripts, some of which aren't searchable. Some of which I don't even know what they are or where they are. Joys of working in the CS.

Link to comment
Share on other sites

- ArenaSpectators gets its stage set to 10...somewhere. For all I can tell' date=' space aliens are doing this. I can't find it in any logical spot. This isn't really important, except that I kind of want to know.[/quote']INFO record 0002ADDC "You won! Congratulations! Here are your winnings, my friend -- 200 gold pieces. Come back and bet on the matches as often as you like!" has a result script:
player.additem gold001 200set ArenaSpectator.ChorrolMatch to 0StopQuest ArenaAnnouncerSetStage ArenaSpectator 10

Part of the "Arena Dialogue" quest, and other "you won" INFOs in there also set the stage to 10. Some of the "you lost" INFOs also do this. Sort of looks like maybe you might want to reconsider how you're using stage 10?Since you fixed quite a bit before I could look at it (I'm assuming the pillars are fixed too) you might want to put another ESP up on the server.

Link to comment
Share on other sites

Oh right, duh.No, the stage 10 thing is fine, if pointless. As I say, curiosity.New esp on server.May or may not have fixed the announcer bug just now.Pillars not even looked at, much less fixed.I seem to have a possible if rare endless loop somewhere in my combatant setup code. In this case it triggered for a 3v3 match, but I can't tell much beyond that.It may also crash Oblivion on load, but that may also be my virus scanner interfering. Hard to tell. What would be doing that I have no idea.

Link to comment
Share on other sites

Damn, that sounds like a real pain in the ass. That's a bit like the problem QSFP had with it's templated html being contained all within fields of the database. :(Way to go, Samson! :biggrin:Hmm, nevermind? :(

Link to comment
Share on other sites

Ok. Did some poking around. First match seems to go fine. No issues.When I went to bet on a second match, things broke.

Picking CombatantPicking Blue Team CombatantPicked Blue Combatant 6Combatant SetupDetermining Match Type.  Percent 79Match Type 1v1Combatant SetupFinding combatants for 1v1Combatant SetupMoving stuff to position and enablingBC1 movedYC1 movedReadyMatch is 1End SetupCome in.  ReadyMatch is 1Door locked, first announcerSecond announcer, open gatesBlueDeadCount 1 BlueMaxDead 1 BlueDead 1Yellow Team wins! 

Before the gates had been lowered, the announcer began his speech about how the yellow team had just won and to go collect my winnings. Except I bet on the blue team and nobody had actually started to fight yet. The announcer was also delivering the "welcome to the arena" speech [i]at the same time[/i]. The gates then lowered, at which point the yellow team's gladiator did in fact kill the blue team's gladiator.One will note the end of the log sequence says "ready to rumble" but then no fight results. So.... yeah... something broken. Now to find what.I didn't see the issue with the pillars. A screenshot would help.

Link to comment
Share on other sites

Well ok, one thing: You're not resetting BlueDeadCount or YellowDeadCount back to zero once the cleanup routine is called. I'm sure that's going to have something to do with why the second match was fubared.ACK, Another issue: A 3x3 match was picked. Fought to the finish, all worked. Went to bet on another match, it picked a 2x2 this time. What was obvious right away was that it botched the pick because both teams had 3 people. Only two from each side rushed in when the gates came down, but as soon as they started fighting, the 3rd person on each side joined in. Yellow lost two people, the match was declared over. However the remaining yellow team guy killed the remaining blue team guy and the announcer was spamming over himself that yellow won, even though he was also saying blue won. Certainly looks like the cleanup from the legit 3x3 match didn't quite work out.Good news at least is that fixing the *DeadCount fubar has so far kept the announcer sequence in line when the matches start.

Link to comment
Share on other sites

Ok, you may be an esp behind then. Do you have the one with:

if CombatantCleanup == 1	ArenaPlayerGateRef.Lock 100	YellowGateRef.Lock 100	ArenaBlueComRef.Kill	ArenaBlueComRef.Resurrect	ArenaBlueComRef.Disable	AFKArenaBlueCom02Ref.Kill	AFKArenaBlueCom02Ref.Resurrect	AFKArenaBlueCom02Ref.Disable	AFKArenaBlueCom03Ref.Kill	AFKArenaBlueCom03Ref.Resurrect	AFKArenaBlueCom03Ref.Disable	AFKArenaBlueCom04Ref.Kill	AFKArenaBlueCom04Ref.Resurrect	AFKArenaBlueCom04Ref.Disable	AFKArenaBlueCom05Ref.Kill	AFKArenaBlueCom05Ref.Resurrect	AFKArenaBlueCom05Ref.Disable	AFKArenaBlueCom06Ref.Kill	AFKArenaBlueCom06Ref.Resurrect	AFKArenaBlueCom06Ref.Disable	AFKArenaBlueCom07Ref.Kill	AFKArenaBlueCom07Ref.Resurrect	AFKArenaBlueCom07Ref.Disable	AFKArenaBlueCom08Ref.Kill	AFKArenaBlueCom08Ref.Resurrect	AFKArenaBlueCom08Ref.Disable	AFKArenaBlueCom09Ref.Kill	AFKArenaBlueCom09Ref.Resurrect	AFKArenaBlueCom09Ref.Disable	AFKArenaBlueCom010Ref.Kill	AFKArenaBlueCom010Ref.Resurrect	AFKArenaBlueCom010Ref.Disable	AFKArenaBlueChamp01Ref.Kill	AFKArenaBlueChamp01Ref.Resurrect	AFKArenaBlueChamp01Ref.Disable	AFKArenaBlueChamp02Ref.Kill	AFKArenaBlueChamp02Ref.Resurrect	AFKArenaBlueChamp02Ref.Disable	AFKArenaBlueChamp03Ref.Kill	AFKArenaBlueChamp03Ref.Resurrect	AFKArenaBlueChamp03Ref.Disable	AFKArenaBlueChamp04Ref.Kill	AFKArenaBlueChamp04Ref.Resurrect	AFKArenaBlueChamp04Ref.Disable	ArenaYellowComRef.Kill	ArenaYellowComRef.Resurrect	ArenaYellowComRef.Disable	AFKArenaYellowCom02Ref.Kill	AFKArenaYellowCom02Ref.Resurrect	AFKArenaYellowCom02Ref.Disable	AFKArenaYellowCom03Ref.Kill	AFKArenaYellowCom03Ref.Resurrect	AFKArenaYellowCom03Ref.Disable	AFKArenaYellowCom04Ref.Kill	AFKArenaYellowCom04Ref.Resurrect	AFKArenaYellowCom04Ref.Disable	AFKArenaYellowCom05Ref.Kill	AFKArenaYellowCom05Ref.Resurrect	AFKArenaYellowCom05Ref.Disable	AFKArenaYellowCom06Ref.Kill	AFKArenaYellowCom06Ref.Resurrect	AFKArenaYellowCom06Ref.Disable	AFKArenaYellowCom07Ref.Kill	AFKArenaYellowCom07Ref.Resurrect	AFKArenaYellowCom07Ref.Disable	AFKArenaYellowCom08Ref.Kill	AFKArenaYellowCom08Ref.Resurrect	AFKArenaYellowCom08Ref.Disable	AFKArenaYellowCom09Ref.Kill	AFKArenaYellowCom09Ref.Resurrect	AFKArenaYellowCom09Ref.Disable	AFKArenaYellowCom010Ref.Kill	AFKArenaYellowCom010Ref.Resurrect	AFKArenaYellowCom010Ref.Kill	AFKArenaYellowCom010Ref.Resurrect	AFKArenaYellowCom010Ref.Disable	AFKArenaYellowChamp01Ref.Kill	AFKArenaYellowChamp01Ref.Resurrect	AFKArenaYellowChamp01Ref.Disable	AFKArenaYellowChamp02Ref.Kill	AFKArenaYellowChamp02Ref.Resurrect	AFKArenaYellowChamp02Ref.Disable	AFKArenaYellowChamp03Ref.Kill	AFKArenaYellowChamp03Ref.Resurrect	AFKArenaYellowChamp03Ref.Disable	AFKArenaYellowChamp04Ref.Kill	AFKArenaYellowChamp04Ref.Resurrect	AFKArenaYellowChamp04Ref.Disable	set FightOver to 0	set BlueMaxDead to 0	set BlueDead to 0	set YellowMaxDead to 0	set YellowDead to 0	set GateDownFight to 0	set GateDown to 0	set Announce to 0	set CityAnnounced to 0	set OpenTimer to 0	set ReadyMatch to 0	set Enabled to 0	set ReadyToRumble to 0	set DoOnce to 0	set Lucky to 0	set BlueCombatant01 to 0	set BlueCombatant02 to 0	set BlueCombatant03 to 0	set YellowCombatant01 to 0	set YellowCombatant02 to 0	set YellowCombatant03 to 0	set Blue01Picked to 0	set Blue02Picked to 0	set Blue03Picked to 0	set Blue04Picked to 0	set Blue05Picked to 0	set Blue06Picked to 0	set Blue07Picked to 0	set Blue08Picked to 0	set Blue09Picked to 0	set Blue10Picked to 0	set Yellow01Picked to 0	set Yellow02Picked to 0	set Yellow03Picked to 0	set Yellow04Picked to 0	set Yellow05Picked to 0	set Yellow06Picked to 0	set Yellow07Picked to 0	set Yellow08Picked to 0	set Yellow09Picked to 0	set Yellow10Picked to 0	set CombatantCleanup to 0	printc "End Cleanup"	StopQuest ArenaSpectatorendif

At the end of ArenaSpectatorScript? That should have fixed the issue with the combatants. I see that you are very correct about the DeadCount variables. Durr, me.

Link to comment
Share on other sites

Pulled from the server this morning, this is the section you're talking about:

if CombatantCleanup == 1	ArenaPlayerGateRef.Lock 100	YellowGateRef.Lock 100	ArenaBlueComRef.Kill	ArenaBlueComRef.Resurrect	ArenaBlueComRef.Disable	AFKArenaBlueCom02Ref.Kill	AFKArenaBlueCom02Ref.Resurrect	AFKArenaBlueCom02Ref.Disable	AFKArenaBlueCom03Ref.Kill	AFKArenaBlueCom03Ref.Resurrect	AFKArenaBlueCom03Ref.Disable	AFKArenaBlueCom04Ref.Kill	AFKArenaBlueCom04Ref.Resurrect	AFKArenaBlueCom04Ref.Disable	AFKArenaBlueCom05Ref.Kill	AFKArenaBlueCom05Ref.Resurrect	AFKArenaBlueCom05Ref.Disable	AFKArenaBlueCom06Ref.Kill	AFKArenaBlueCom06Ref.Resurrect	AFKArenaBlueCom06Ref.Disable	AFKArenaBlueCom07Ref.Kill	AFKArenaBlueCom07Ref.Resurrect	AFKArenaBlueCom07Ref.Disable	AFKArenaBlueCom08Ref.Kill	AFKArenaBlueCom08Ref.Resurrect	AFKArenaBlueCom08Ref.Disable	AFKArenaBlueCom09Ref.Kill	AFKArenaBlueCom09Ref.Resurrect	AFKArenaBlueCom09Ref.Disable	AFKArenaBlueCom010Ref.Kill	AFKArenaBlueCom010Ref.Resurrect	AFKArenaBlueCom010Ref.Disable	AFKArenaBlueChamp01Ref.Kill	AFKArenaBlueChamp01Ref.Resurrect	AFKArenaBlueChamp01Ref.Disable	AFKArenaBlueChamp02Ref.Kill	AFKArenaBlueChamp02Ref.Resurrect	AFKArenaBlueChamp02Ref.Disable	AFKArenaBlueChamp03Ref.Kill	AFKArenaBlueChamp03Ref.Resurrect	AFKArenaBlueChamp03Ref.Disable	AFKArenaBlueChamp04Ref.Kill	AFKArenaBlueChamp04Ref.Resurrect	AFKArenaBlueChamp04Ref.Disable	ArenaYellowComRef.Kill	ArenaYellowComRef.Resurrect	ArenaYellowComRef.Disable	AFKArenaYellowCom02Ref.Kill	AFKArenaYellowCom02Ref.Resurrect	AFKArenaYellowCom02Ref.Disable	AFKArenaYellowCom03Ref.Kill	AFKArenaYellowCom03Ref.Resurrect	AFKArenaYellowCom03Ref.Disable	AFKArenaYellowCom04Ref.Kill	AFKArenaYellowCom04Ref.Resurrect	AFKArenaYellowCom04Ref.Disable	AFKArenaYellowCom05Ref.Kill	AFKArenaYellowCom05Ref.Resurrect	AFKArenaYellowCom05Ref.Disable	AFKArenaYellowCom06Ref.Kill	AFKArenaYellowCom06Ref.Resurrect	AFKArenaYellowCom06Ref.Disable	AFKArenaYellowCom07Ref.Kill	AFKArenaYellowCom07Ref.Resurrect	AFKArenaYellowCom07Ref.Disable	AFKArenaYellowCom08Ref.Kill	AFKArenaYellowCom08Ref.Resurrect	AFKArenaYellowCom08Ref.Disable	AFKArenaYellowCom09Ref.Kill	AFKArenaYellowCom09Ref.Resurrect	AFKArenaYellowCom09Ref.Disable	AFKArenaYellowCom010Ref.Kill	AFKArenaYellowCom010Ref.Resurrect	AFKArenaYellowCom010Ref.Kill	AFKArenaYellowCom010Ref.Resurrect	AFKArenaYellowCom010Ref.Disable	AFKArenaYellowChamp01Ref.Kill	AFKArenaYellowChamp01Ref.Resurrect	AFKArenaYellowChamp01Ref.Disable	AFKArenaYellowChamp02Ref.Kill	AFKArenaYellowChamp02Ref.Resurrect	AFKArenaYellowChamp02Ref.Disable	AFKArenaYellowChamp03Ref.Kill	AFKArenaYellowChamp03Ref.Resurrect	AFKArenaYellowChamp03Ref.Disable	AFKArenaYellowChamp04Ref.Kill	AFKArenaYellowChamp04Ref.Resurrect	AFKArenaYellowChamp04Ref.Disable	set FightOver to 0	set BlueMaxDead to 0	set BlueDead to 0	set YellowMaxDead to 0	set YellowDead to 0	set GateDownFight to 0	set GateDown to 0	set Announce to 0	set CityAnnounced to 0	set OpenTimer to 0	set ReadyMatch to 0	set Enabled to 0	set ReadyToRumble to 0	set DoOnce to 0	set Lucky to 0	set CombatantCleanup to 0	printc "End Cleanup"	StopQuest ArenaSpectatorendif

It's definitely still got something broken because the 3x3 followed by a 1x1 also had the same problem - extra guys behind the gates that rushed into the fight once the opposite team landed a blow.

Link to comment
Share on other sites

There's a new esp on the server. Fights should work pretty much flawlessly now, and I went ahead and enabled the random crowd code, so you should see some variance in the number and color of spectators.In theory, the only remaining problem that I know of is that sometimes there's an endless loop that happens during 3v3 matches somewhere. I'm not sure what's going on there.Also, I need to sit down and re-pathgrid parts of the arena, and hook up some barrier walls so that guys aren't fighting under the balcony so you can't see them. I already did that for the tunnels.Oh, and the deal with the pillars is because I'm a dumbass. I had a really old UOPS version. Thought I'd upgraded, but hadn't. So no worry there.

Link to comment
Share on other sites

That's a lot of very similar entries to compare, but it looks like you were both quoting the same code block...Endless loops are a pain in the butt, but if you can track down where it is, they're not usually that hard to fix, particularly if you can figure out what's causing them.Nice to hear you resolved the pillars issue... whistle.gif

Link to comment
Share on other sites

Just ran into your endless loop issue. Pretty severe. Severe enough I could no longer get a response from the game and had to force reset the computer to get out.

Link to comment
Share on other sites

That's orders of magnitude worse than I get it. Of course, I keep tdt on so I can tell when it's happening and quit out. But.

Link to comment
Share on other sites

Wow, that's a seriously severe loop, I've got a copy of Quicken that's about that bad too, but I thought only commercial software ever messed up that badly. ;)

Link to comment
Share on other sites

So, for the scripters in the audience, ConScribe and the printc OBSE command are pretty awesome.On that note, a log of the 3v3 endless loop:

Combatant Setup 1Determining Match Type.  Percent 88Match Type 3v3Combatant Setup 2Finding combatants for 3v3Finding Blue Combatant 1Picking CombatantPicking Blue Team CombatantPicked Blue Combatant 7Finding Yellow Combatant 1Picking CombatantPicking Yellow Team CombatantPicked Yellow Combatant 10Combatant Setup 2Finding combatants for 3v3Finding Blue Combatant 2Picking CombatantPicking Blue Team CombatantPicked Blue Combatant 1Finding Yellow Combatant 2Picking CombatantPicking Yellow Team CombatantCombatant Setup 2Combatant Setup 2Combatant Setup 2Combatant Setup 2Combatant Setup 2Combatant Setup 2

The problem with messy parts of your code is that they're, well, messy.Second time through with some more stuff exposed.

Combatant Setup 1Determining Match Type.  Percent 15Match Type 3v3Combatant Setup 2Finding First Blue CombatantPicking CombatantPicking Blue Team Combatant.  Percent 4Picked Blue Combatant 4Finding First Yellow CombatantPicking CombatantPicking Yellow Team Combatant.  Percent 2Picked Yellow Combatant 2Combatant Setup 2Finding Second Blue CombatantPicking CombatantPicking Blue Team Combatant.  Percent 2Picked Blue Combatant 2Finding Second Yellow CombatantPicking CombatantPicking Yellow Team Combatant.  Percent 3Picked Yellow Combatant 3Combatant Setup 2Finding Third Blue CombatantPicking CombatantPicking Blue Team Combatant.  Percent 5Picked Blue Combatant 5Finding Third Yellow CombatantPicking CombatantPicking Yellow Team Combatant.  Percent 8Picked Yellow Combatant 8Combatant Setup 2Combatant Setup 3Moving stuff to position and enablingBC1 movedBC2 movedBC3 movedYC1 movedYC2 movedYC3 movedEnabling CrowdCrowd 3 EnabledReadyMatch is 1End SetupCome in.  ReadyMatch is 1Door locked, first announcerSecond announcer, open gatesOpening gatesStarting CombatStarting Combat 3v3Ready to RumbleYellowDeadCount 3 YellowMaxDead 3 YellowDead 1Blue Team wins!YellowDead 2 ChorrolMatch 1Starting CleanupEnd CleanupCombatant Setup 1Determining Match Type.  Percent 53Match Type 3v3Combatant Setup 2Finding First Blue CombatantPicking CombatantPicking Blue Team Combatant.  Percent 10Picked Blue Combatant 10Finding First Yellow CombatantPicking CombatantPicking Yellow Team Combatant.  Percent 1Picked Yellow Combatant 1Combatant Setup 2Finding Second Blue CombatantPicking CombatantPicking Blue Team Combatant.  Percent 5Picked Blue Combatant 5Finding Second Yellow CombatantPicking CombatantPicking Yellow Team Combatant.  Percent 1Combatant Setup 2Combatant Setup 2Combatant Setup 2

For some reason it works great the first time, fails the second.

Link to comment
Share on other sites

Got it finally.So, the way my code works is roughly this:1. Pass through, determine what sort of match is being fought - 1v1, 2v2, 3v3, etc.2. Pass through to get combatants for each, calling an external script to do so.3. Repeat step 2 until all combatants picked.4. Move everyone into position and get everything ready for the fight.In that external script, there's code in there to prevent picking the same combatant twice on a team. What should happen in that case is the code just makes another pass and picks again. The problem was that if it failed, I wasn't reseting a critical variable, so it just wouldn't run the entire block.One line of code later, we're totally in business. As far as I can tell, this entire section of the mod now works flawlessly. 3v3 combats for everyone!Which I guess means it's time to move on to the next part, although I might stick in a brief bit of code so that in 2v2 and 3v3 matches, the combatants will all pick targets at random instead of how it is now. We'll see.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...