[Linux Lobby] AFLobby Beta 3.9.7 - Page 16

[Linux Lobby] AFLobby Beta 3.9.7

Discuss everything related to running Spring on your chosen distribution of Linux.

Moderator: Moderators

own3d
Posts: 129
Joined: 25 Aug 2006, 16:31

Post by own3d »

When I tried to join a game I got the following error and a crash

Code: Select all

./aflobby.sh
make sure AFLobby and libunitsync.so is in your current working folder
unitsync: Unitsync assertion failed: unitsync.cpp:651: Array index out of bounds. Call GetPrimaryModCount before GetPrimaryModArchive.
java: unitsync.cpp:651: const char* GetPrimaryModArchive(int): Assertion `(unsigned)index < modData.size()' failed.
./aflobby.sh: line 2:  9909 Aborted                
 (core dumped) java -Djava.library.path=. -jar aflobby.jar
When clicking on a map in the maps window i got the following error

Code: Select all

./aflobby.sh
make sure AFLobby and libunitsync.so is in your current working folder
Image loading error for /home/josh/.aflobby/Azure Rampart.smf.jpg: ERRORED
Image loading error for /home/josh/.aflobby/Azure Rampart.smf.jpg: ERRORED

User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Already fixed in alpha 24
own3d
Posts: 129
Joined: 25 Aug 2006, 16:31

Post by own3d »

Yay! Can I try that so I won't waste my time?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

http://www.darkstars.co.uk/randomfiles/AFL.zip

be warned, the script generation has several huge flaws, and I dont understand the code that causes them.

To all linux users, find Rayden and tell him I need to speak with him urgently, he wrote the code I used for script generation sorting, and its not working correctly.
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

There goes my exclusivity :cry:
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

I've fixed scripts for small games such as 1v1 etc, however theres still a big issue with team ordering and large games.

AFLobby script

Code: Select all

[GAME]
{
       Mapname=DeltaSiegeDry.smf;
       StartMetal=1000;
       StartEnergy=1000;
       MaxUnits=1077;
       StartPosType=2;
       GameMode=0;
       GameType=Balanced Annihilation V4.7;
       LimitDGun=0;
       DiminishingMMs=0;
       GhostedBuildings=1;

       HostIP=62.112.6.42;
       HostPort=8452;

       MyPlayerNum=5;

       NumPlayers=10;
       NumTeams=5;
       NumAllyTeams=2;

       [PLAYER0]
       {
               name=firebat_36;
               Spectator=0;
               team=0;
       }
       [PLAYER1]
       {
               name=Kaot;
               Spectator=0;
               team=1;
       }
       [PLAYER2]
       {
               name=mf;
               Spectator=0;
               team=2;
       }
       [PLAYER3]
       {
               name=coolmann;
               Spectator=0;
               team=2;
       }
       [PLAYER4]
       {
               name=[AVG]sekin88;
               Spectator=0;
               team=0;
       }
       [PLAYER5]
       {
               name=Hellcom;
               Spectator=0;
               team=3;
       }
       [PLAYER6]
       {
               name=Digin_DJ;
               Spectator=0;
               team=4;
       }
       [PLAYER7]
       {
               name=vatc;
               Spectator=0;
               team=4;
       }
       [PLAYER8]
       {
               name=[]AF;
               Spectator=1;
       }
       [PLAYER9]
       {
               name=montfort42;
               Spectator=1;
       }

       [TEAM0]
       {
               TeamLeader=0;
               AllyTeam=0;
               RGBColor=0.84313 0.48235 0.00392;
               Side=ARM;
               Handicap=0;
       }
       [TEAM1]
       {
               TeamLeader=1;
               AllyTeam=0;
               RGBColor=0.00000 0.00000 0.00000;
               Side=CORE;
               Handicap=0;
       }
       [TEAM2]
       {
               TeamLeader=2;
               AllyTeam=0;
               RGBColor=0.14901 0.60784 0.12549;
               Side=CORE;
               Handicap=0;
       }
       [TEAM3]
       {
               TeamLeader=5;
               AllyTeam=1;
               RGBColor=0.00000 0.51372 1.00000;
               Side=ARM;
               Handicap=0;
       }
       [TEAM4]
       {
               TeamLeader=6;
               AllyTeam=1;
               RGBColor=0.78431 0.00000 0.00000;
               Side=ARM;
               Handicap=0;
       }
       [ALLYTEAM0]
       {
               NumAllies=0;
               StartRectLeft=0.800;
               StartRectTop=0.000;
               StartRectRight=1.000;
               StartRectBottom=1.000;
       }
       [ALLYTEAM1]
       {
               NumAllies=0;
               StartRectLeft=0.000;
               StartRectTop=0.000;
               StartRectRight=0.210;
               StartRectBottom=1.000;
       }

       NumRestrictions=0;
}
TASClient script

Code: Select all

[GAME]
{
	Mapname=DeltaSiegeDry.smf;
	StartMetal=1000;
	StartEnergy=1000;
	MaxUnits=1077;
	StartPosType=2;
	GameMode=0;
	GameType=BA47.sd7;
	LimitDGun=0;
	DiminishingMMs=0;
	GhostedBuildings=1;

	HostIP=62.112.6.42;
	HostPort=8452;

	MyPlayerNum=8;

	NumPlayers=10;
	NumTeams=8;
	NumAllyTeams=2;

	[PLAYER0]
	{
		name=[AVG]sekin88;
		Spectator=0;
		team=0;
	}
	[PLAYER1]
	{
		name=firebat_36;
		Spectator=0;
		team=1;
	}
	[PLAYER2]
	{
		name=Kaot;
		Spectator=0;
		team=2;
	}
	[PLAYER3]
	{
		name=mf;
		Spectator=0;
		team=3;
	}
	[PLAYER4]
	{
		name=coolmann;
		Spectator=0;
		team=4;
	}
	[PLAYER5]
	{
		name=Hellcom;
		Spectator=0;
		team=5;
	}
	[PLAYER6]
	{
		name=Digin_DJ;
		Spectator=0;
		team=6;
	}
	[PLAYER7]
	{
		name=vatc;
		Spectator=0;
		team=7;
	}
	[PLAYER8]
	{
		name=[]AF;
		Spectator=1;
	}
	[PLAYER9]
	{
		name=montfort42;
		Spectator=1;
	}

	[TEAM0]
	{
		TeamLeader=0;
		AllyTeam=0;
		RGBColor=0.35294 0.35294 1.00000;
		Side=ARM;
		Handicap=0;
	}
	[TEAM1]
	{
		TeamLeader=1;
		AllyTeam=1;
		RGBColor=0.84314 0.48235 0.00392;
		Side=ARM;
		Handicap=0;
	}
	[TEAM2]
	{
		TeamLeader=2;
		AllyTeam=0;
		RGBColor=0.00000 0.00000 0.00000;
		Side=CORE;
		Handicap=0;
	}
	[TEAM3]
	{
		TeamLeader=3;
		AllyTeam=0;
		RGBColor=0.14902 0.60784 0.12549;
		Side=CORE;
		Handicap=0;
	}
	[TEAM4]
	{
		TeamLeader=4;
		AllyTeam=0;
		RGBColor=1.00000 1.00000 0.00000;
		Side=ARM;
		Handicap=0;
	}
	[TEAM5]
	{
		TeamLeader=5;
		AllyTeam=1;
		RGBColor=0.00000 0.51373 1.00000;
		Side=ARM;
		Handicap=0;
	}
	[TEAM6]
	{
		TeamLeader=6;
		AllyTeam=1;
		RGBColor=0.78431 0.00000 0.00000;
		Side=ARM;
		Handicap=0;
	}
	[TEAM7]
	{
		TeamLeader=7;
		AllyTeam=1;
		RGBColor=0.26275 0.98431 0.28235;
		Side=ARM;
		Handicap=0;
	}
	[ALLYTEAM0]
	{
		NumAllies=0;
		StartRectLeft=0.8;
		StartRectTop=0;
		StartRectRight=1;
		StartRectBottom=1;
	}
	[ALLYTEAM1]
	{
		NumAllies=0;
		StartRectLeft=0;
		StartRectTop=0;
		StartRectRight=0.21;
		StartRectBottom=1;
	}
	NumRestrictions=0;
	[RESTRICT]
	{
	}
}
Team re-ordering is borked and starts messing up as the number of players ingame rises. There's no documentation on how tasclient re-orders its player teams in order to prevent spring crashing.

There isnt even documentation telling the user that the teams need re-ordering to prevent spring crashing at all, its conveniently ommitted.

No autohosts have created documentation either, no other lobby makers have done so either.

I do not understand the way these algorithms work, or why the one rayden wrote is not working. I dont know where tasclient performs this or how, and teh autohosts is a simple "just look at the code".

I have struggled with this for months now and its at the point where its been gone at so much I couldnt understand it even if it was very simple because I'm that pissed off with it and nobody seems to want to do anything about it.

You have a 99.9999999999% finished lobby. This is the last thing stopping you from getting that glorious moment of 'omg we have a working linux lobby', this is that big great stumbling block thats preventing the slew of features in the gigantic traffic jam behind it. All those people complaining about betalords lobby, all those wanting a CE server from me, pretty graphics, lobby scripts and widgets, boneyards galactic warfare games, it's all stuck waiting behind this script generation issue.

When this issue is solved, AFLobby beta 1 will be released.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

In order to help here is alpha 24 source code, the full netbeans project including all the dlls necessary for the windows java unitsync to work (in the release folder)

look at the JBattle class in the GetScript function, and look at TeamData and AllyData classes inside the class constructors.

I'm off to finish coursework and revise for exams.
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Post by Kloot »

Haven't looked at it much yet, but TASClient script generation code is in BattleFormUnit.pas (see the procedure called GenerateNormalScriptFile()).
Tobi
Spring Developer
Posts: 4598
Joined: 01 Jun 2005, 11:36

Post by Tobi »

There isnt even documentation telling the user that the teams need re-ordering to prevent spring crashing at all, its conveniently ommitted.
Yeah we conviently omit any documentation that may be of use to you. :roll: :|
User avatar
BvDorp
Posts: 439
Joined: 14 Oct 2005, 12:09

Post by BvDorp »

who AF you go! This lobby thing would be the best thing ever you introduced for Spring!
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

Not you tobi. Ideally this is something spring should do.

Anyways, licensing, AFLobby is not GPL, nor is it creative commons, you can look at the source and modify it in private, as long as I am made aware of all modifications. I reserve all rights unless mentioned here.

You can also submit patches for the main aflobby release in this thread as long as they're directed towards me. Fork projects arent allowed atm. The license will be revised when aflobby beta 1 is released.

(aka I'll pick an established license rather than a precautionary last minute job).

Note that Misc.java is exempt from this as it is mostly Betalords code. AllyData.java AllyEntry.java TeamData.java TeamEntry.java are originally Raydens code with modifications, and Base64Coder is LGPL courtesy of Christian d'Heureuse.
Drezil
Posts: 33
Joined: 08 Mar 2007, 13:32

Post by Drezil »

just a minor issue:
if you host a battle under a case-sensitive filesystem the minimaps are not found.
i.e. ~/.aflobby/mars.smf.jpg is searched for but only ~/.aflobby/Mars.smf.jpg is there.
Also the start of spring aborts with an error (maps/mars.smf) not found but if i join up a game it is found (cause aflobby submits maps/Mars.smf).
The map browser has no problem finding them.

i don't know your todo-list, but the battle-list could need some tuning.. (sorting columns, hide full/ingame battles, etc. pp.)

hth
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

The battle list is due to be removed completely and rewritten after the beta 1 release.

I'll force minimap filenames to lwoercase in beta 1, but I'll have to be reminded as I'm revising atm (forum browsing is a quick distraction).
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

As for licenses:

For noncommercial usage AFLobby is subject to the LGPL, however I as the copyright holder, reserve the right to change this license in the future without notice.

For commercial usage, I reserve all rights, and require authorization to distribute from me the copyright holder.

I doubt this will ever be used commercially, but just incase.
Ifein
Posts: 56
Joined: 23 Mar 2006, 00:44

Post by Ifein »

When starting AFLobby (23b) with the given script I get the following problem:

$ ./aflobby.sh
Unable to access jarfile aflobby.jar

When I remove the "-Djava.library.path=." it start, but of course complains that the libraries can not be found.

Any suggestions?
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

aflobby is in the immediate directory and in the right case? What version of java and what linux distro are you using?
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

Blah blah

Code: Select all

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: No such child: 3
        at java.awt.Container.getComponent(Container.java:281)
        at javax.swing.JComponent.rectangleIsObscured(JComponent.java:4319)
        at javax.swing.JComponent.paint(JComponent.java:1020)
        at javax.swing.JComponent._paintImmediately(JComponent.java:5064)
        at javax.swing.JComponent.paintImmediately(JComponent.java:4862)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:727)
        at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:683)
        at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:663)
        at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Ifein
Posts: 56
Joined: 23 Mar 2006, 00:44

Post by Ifein »

AF wrote:aflobby is in the immediate directory and in the right case? What version of java and what linux distro are you using?

Code: Select all

§ls -lgG
total 5584
-rw-r--r-- 1 1545632 2007-05-20 05:59 AFLobby_alpha23b.zip
-rw-r--r-- 1      21 2007-04-24 23:49 aflobby.bat
-rw-r--r-- 1  584152 2007-04-27 11:48 aflobby.jar
-rwxr--r-- 1     294 2007-05-20 16:41 aflobby.sh
-rw-r--r-- 1  864256 2005-08-21 16:56 DevIL.dll
-rw-r--r-- 1   77824 2007-04-09 17:04 ILU.dll
-rw-r--r-- 1  434176 2007-03-15 22:08 javaunitsync.dll
drwxr-xr-x 2    4096 2007-04-08 07:26 lib
-rw-r--r-- 1 2009988 2007-04-08 07:30 libjavaunitsync.so
-rw-r--r-- 1   74240 2006-03-28 09:02 zlib1.dll
-rw-r--r-- 1   72704 2004-10-07 10:50 zlibwapi.dll

$ ./aflobby.sh 
Unable to access jarfile aflobby.jar
I'm running Debian (unstable).
I tried with Sun Java JDK 1.6.0 and 1.5.0_11. They gave me the error above.

"SableVM version 1.13" (some java shipped with Debain):

Code: Select all

./aflobby.sh 
Error: No MANIFEST.MF or Main-Class: in MANIFEST.MF found in aflobby.jar
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

la la

Code: Select all

n# of sides: 2
side 0 : ARM
side 1 : CORE
/home/rutter/.aflobby/Altored_Divide.smf.jpg
Exception in thread "Timer-3" java.lang.NumberFormatException: For input string: "Hellcom"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
        at java.lang.Integer.parseInt(Integer.java:447)
        at java.lang.Integer.parseInt(Integer.java:497)
        at aflobby.CBattleWindow.NewEvent(CBattleWindow.java:1840)
        at aflobby.LMain.ProcessEvents(LMain.java:541)
        at aflobby.LMain.Update(LMain.java:431)
        at aflobby.UpdateTask.run(LMain.java:38)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
User avatar
Relative
Posts: 1371
Joined: 15 Oct 2006, 13:17

Post by Relative »

PO-KAY-MON!!

Code: Select all

n# of sides: 2
side 0 : ARM
side 1 : CORE
/home/rutter/.aflobby/DeltaSiegeDry.smf.jpg
/home/rutter/.aflobby/DeltaSiegeDry.smf.jpg
/home/rutter/.aflobby/DeltaSiegeDry.smf.jpg
/home/rutter/.aflobby/DeltaSiegeDry.smf.jpg
Exception in thread "Timer-3" java.lang.NullPointerException
        at aflobby.CBattleWindow.NewEvent(CBattleWindow.java:1860)
        at aflobby.LMain.ProcessEvents(LMain.java:541)
        at aflobby.LMain.Update(LMain.java:431)
        at aflobby.UpdateTask.run(LMain.java:38)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)
Post Reply

Return to “Linux”