Server Help Forum Index Server Help
Community forums for Subgame, ASSS, and bots
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   StatisticsStatistics   RegisterRegister 
 ProfileProfile   Login to check your private messagesLogin to check your private messages   LoginLogin (SSL) 

Server Help | ASSS Wiki (0) | Shanky.com
Can ASSS do this?
Goto page 1, 2  Next
 
Post new topic   Reply to topic Printable version
 View previous topic  Problems with asss on win 98? Post :: Post SSC biller and asss  View next topic  
Author Message
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Fri Mar 10, 2006 10:18 pm    Post subject: Can ASSS do this? Reply to topic Reply with quote

We are looking at ASSS now for PB. I am very concerned about the design of modules. It seems they fall far short of the convenience of pbot behaviors. I'll explain by showing how our setup works.

pub: bottype1 modules: A B C D E F pub.ini
scrim: bottype2 modules: A B C D E scrim.ini
league1: bottype3 modules: A B C D E G H league.ini
league2: bottype3 modules: A B C D E G H league.ini
league3: bottype3 modules: A B C D E G H league.ini

1. I can stop the pub bot, including all its modules, change its module list and restart it without affecting any other bot.

2. I can change a setting in pub.ini that will affect the behavior of module B in pub, but will not affect any other bot.

3. I can change a setting in league.ini that will affect the behavior of module C in all league arenas only.

4. I can do all of the above without unloading modules completely, and without recompiling. Arenas are not hard-coded in modules or in INI files.

It seems that any attempt to make an INI (or equivalent) for an ASSS module is a huge headache since a module acts as a single instance that handles all arenas it is in. The settings would have to be hard-coded per arena, and could not be generically applied to new arenas without recompiling. In fact, making all PB modules work as we need under ASSS seems impossibly daunting.

Please tell me my understanding is incorrect.
_________________
4,691 irradiated haggis!
Back to top
View users profile Send private message Add User to Ignore List
Dr Brain
Flip-flopping like a wind surfer


Age:39
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Fri Mar 10, 2006 11:44 pm    Post subject: Reply to topic Reply with quote

Your understanding is incorrect.

The solution is to add entries into the arena.conf. I, for example, put all of my ship's buy prices into the arena.conf.

Code: Show/Hide

Warbird:BuyPrice = 500


Then all I do is use the cfg module to check the price in the arena I'm interacting with.

This extends well to most other settings.

Please let me know if my explanation is incomplete. It's been a long day icon_smile.gif
_________________
Hyperspace Owner

Smong> so long as 99% deaths feel lame it will always be hyperspace to me
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Fri Mar 10, 2006 11:48 pm    Post subject: Reply to topic Reply with quote

That is per arena, hard-coded. That is far from convenient.
Back to top
View users profile Send private message Add User to Ignore List
Dr Brain
Flip-flopping like a wind surfer


Age:39
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Sat Mar 11, 2006 12:01 am    Post subject: Reply to topic Reply with quote

It's a failure of me to convey what I'm talking about,
not a failure of ASSS, so stick with me.

I think the crucial idea you're missing is module attaching.

ASSS can have modules attach per arena. You can attach them, detach them and reattach them as needed.

Attaching is not the same as loading.

Attaching is usually performed on arena creation, so no staff involvement is needed. Someone goes into a duel arena, that arena attaches the duel module and the player gets to use all the special things that module allows. Don't need to load in a bot for it.
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Dr Brain
Flip-flopping like a wind surfer


Age:39
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Sat Mar 11, 2006 12:08 am    Post subject: Reply to topic Reply with quote

Let me give you a concrete example.

I have a module called foo. Foo has three functions:
It sends players a greeting message when they enter the arena.
It lets players use the ?bar command.
It grants a prize every X minutes.

Arenas that want to use foo would need to do a few things:
They need to put foo in their auto attach setting
They need to set Foo:GreetingMessage
and they need to set Foo:PrizeMessage and Foo:PrizeInterval

Side note: You can also set default settings in foo, so that only arenas that want non-standard settings need to specify them.

Foo would register the ?bar command once for every arena it attaches to. So arenas that don't have it attached would ignore a player's ?bar.
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Sat Mar 11, 2006 12:25 am    Post subject: Reply to topic Reply with quote

In pbot, each bot type has a list of modules and all the associated settings for all of them. You can send a bot of this type to any arena, and it will behave the way it's been defined. We do not hard code modules or settings per arena. And when any setting of a given bot type is changed, it changes for all bots of that type immediately, even if they are already running.
Back to top
View users profile Send private message Add User to Ignore List
Dr Brain
Flip-flopping like a wind surfer


Age:39
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Sat Mar 11, 2006 12:47 am    Post subject: Reply to topic Reply with quote

In ASSS, each arena has a list of modules and all the associated settings for all of them. We do not hard code modules or settings per arena. And when any global setting of a given module is changed, it changes for all arenas running that module. And when any local setting of a given module is changed, it changes for just that arena.

EDIT: For this discussion, my definition of hard coded is something that needs to be recompiled to update.
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Sat Mar 11, 2006 1:11 am    Post subject: Reply to topic Reply with quote

That is what I call hard coded. Either your arenas have settings attached to them or your modules have settings compiled into them (or they have to be manually changed).
Back to top
View users profile Send private message Add User to Ignore List
Muskrat
Server Help Squatter


Age:38
Joined: Aug 24 2004
Posts: 829
Location: Swamp
Offline

PostPosted: Sat Mar 11, 2006 1:22 am    Post subject: Reply to topic Reply with quote

A single type of module could still look at it's same "arenatype" folder for settings, no matter how many arenas it is attached to, and apply them when attached. Could even make some sort of template.
Back to top
View users profile Send private message Add User to Ignore List AIM Address
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Sat Mar 11, 2006 2:29 am    Post subject: Reply to topic Reply with quote

That's exactly what I don't want.
Back to top
View users profile Send private message Add User to Ignore List
Smong
Server Help Squatter


Joined: 1043048991
Posts: 0x91E
Offline

PostPosted: Sat Mar 11, 2006 7:08 am    Post subject: Reply to topic Reply with quote

Do you want to be able to use some specific arbitrary settings (such as league) in any arena with minimum messing about.

Obviously you'll need an attach module so you can store state per arena. You can put the settings such as league.ini in the conf directory so they are easily accessable. Next code the module to read an initial setting from arena.conf, General:SettingsFile = conf/public.ini. Then say you want to play league in the current arena, just do:
?seta -t general:settingsfile=conf/league.ini

You then code the settings change callback to read this arena setting and reload the rest of the league settings. No module de/attach cycling, arena recycling or recompiling needed.

One thing to be careful about is ?seta in a random arena, it will write the changes to arenas/(default)/arena.conf which will then affect all random arenas. Just make sure you use ?seta -t or make arena.conf read only.
Back to top
View users profile Send private message Add User to Ignore List Visit posters website MSN Messenger
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Sat Mar 11, 2006 9:44 am    Post subject: Reply to topic Reply with quote

Been over all this with Arnk and Brain. ASSS just wasn't designed to be as useful as pbot.
Back to top
View users profile Send private message Add User to Ignore List
i88gerbils
Oldbie Server Help


Gender:Gender:Male
Joined: Dec 13 2002
Posts: 423
Location: OH
Offline

PostPosted: Sat Mar 11, 2006 12:57 pm    Post subject: Reply to topic Reply with quote

So you want one module to attach/load several other modules in any given arena? It doesn't sound like that is very convenient in ASSS. However what your goal is can probably be done differently and yield the same result.

you have all your toggles for various components stored in an "INI" or mypb.conf file. arena.conf includes mypb.conf for any given arena. It may have your mypb module attached or it may not. In order to change behavior you would just need to replace the mypb.conf file in the given arena (i.e. change what is toggled & what is not).

So what you want is a set of commands in a separate module that will toggle a setting on or off for a given mypb.conf in a given arena?

ex:
Quote:

pub: mypb attached; settings: A B D E G H mypb.conf
scrim: mypb attached; settings: A B C D E G H mypb.conf
league1: mypb attached; settings: A B C D E G H mypb.conf
league2: ; settings: A B C D E G H mypb.conf
league3: ; settings: A B C D E G H mypb.conf


1. I want to toggle some settings in pub. I change pub's mypb.conf via module or upload.

So maybe the arena has to recycle. So what if it is "hard-coded" to use your terminology? It looks like it has the same behavior. Maybe you need a module to accept commands to create a mypb.conf in a NEW arena or change settings in an existing arena?

.......

Basically the first post reminds me of how much I hate all these bots. I want to make a War Zone (ASWZ) module but I don't have any of the specifications of what it actually does. So I have to make it all up as I go along.
_________________
Oldbie Server Help
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website Yahoo Messenger
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Sat Mar 11, 2006 3:01 pm    Post subject: Reply to topic Reply with quote

i88gerbils wrote:
Basically the first post reminds me of how much I hate all these bots.


With pbot it is simple. I want a set of behaviors in an arena. I have a bot already defined to implement these behaviors. I send it there with a single command. Done.

With ASSS if I want to do the same thing, I have to go to the arena, load/unload the modules I want there, and modify the conf file for that arena. many many steps to do what was a single command in pbot.

Your post reminds me of how much asss lacks.
Back to top
View users profile Send private message Add User to Ignore List
Solo Ace
Yeah, I'm in touch with reality...we correspond from time to time.


Age:37
Gender:Gender:Male
Joined: Feb 06 2004
Posts: 2583
Location: The Netherlands
Offline

PostPosted: Sat Mar 11, 2006 3:10 pm    Post subject: Reply to topic Reply with quote

Gentlemen, gentlemen, let us avoid turning this thread into a flame war.
Back to top
View users profile Send private message Add User to Ignore List
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Sat Mar 11, 2006 3:33 pm    Post subject: Reply to topic Reply with quote

Solo Ace wrote:
Gentlemen, gentlemen, let us avoid turning this thread into a flame war.


I am trying to determine if ASSS is going to be able to handle our needs for PB without jumping through hoops. All you people who currently use it or advocate have to stop being zealots for a second and be scientists. ASSS is open source. I am poking and prodding to test it. Let it be tested, and stop being so defensive.
Back to top
View users profile Send private message Add User to Ignore List
Smong
Server Help Squatter


Joined: 1043048991
Posts: 0x91E
Offline

PostPosted: Sat Mar 11, 2006 6:21 pm    Post subject: Reply to topic Reply with quote

Mr Ekted wrote:
I send it there with a single command. Done.
My solution would have a single command, ?seta. The module that copies the old bot behaviour would have to be attached to every arena, but would possibly lie dormant. Either activating when a setting is in arena.conf (suitable for pub) or until a staff member types ?seta (suitable for playing league in an arbitrary arena), which by the way you can alias to something like:
?seta -t general:settingsfile=conf/ -> ?load
and then you can do ?load league.ini instead of !go league or whatever you do with pbot. Only downside is this is jumping through hoops since it's not how asss operates.
Back to top
View users profile Send private message Add User to Ignore List Visit posters website MSN Messenger
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Sat Mar 11, 2006 6:32 pm    Post subject: Reply to topic Reply with quote

Then all behaviors (modules) need to be recoded to know if they are supposed to be active or not per arena. Again extra unnecessary code to do what pbot does naturally.
Back to top
View users profile Send private message Add User to Ignore List
Solo Ace
Yeah, I'm in touch with reality...we correspond from time to time.


Age:37
Gender:Gender:Male
Joined: Feb 06 2004
Posts: 2583
Location: The Netherlands
Offline

PostPosted: Sat Mar 11, 2006 7:48 pm    Post subject: Reply to topic Reply with quote

Yeah Ekted, but what I said actually wasn't related to ASSS in any way.

The reason I don't like bots is the idea behind them (needing a client for server tasks is just silly), but then again I don't even play the game we're talking about so whatever.
Back to top
View users profile Send private message Add User to Ignore List
i88gerbils
Oldbie Server Help


Gender:Gender:Male
Joined: Dec 13 2002
Posts: 423
Location: OH
Offline

PostPosted: Sat Mar 11, 2006 8:03 pm    Post subject: Reply to topic Reply with quote

Mr Ekted wrote:

With ASSS if I want to do the same thing, I have to go to the arena, load/unload the modules I want there, and modify the conf file for that arena. many many steps to do what was a single command in pbot.
.


I don't think you have a big enough imagination to do this anyway. The skies the limit and nobody's limiting you but yourself.

You keep saying 'not good enough', but you don't give any suggestions yourself. If you want to come up with an idea, then come up with one. If you don't, then you better not disrespect one idea just because you lacked the will to think through your own.

If you had read my post you would have realized that one of the additional questions/comments I asked was whether or not you wanted a module devoted to handling commands for your pb modules. Such as what Smong has said a few posts above - ?pbset arena:param:value.
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website Yahoo Messenger
Mr Ekted
Movie Geek


Gender:Gender:Male
Joined: Feb 09 2004
Posts: 1379
Offline

PostPosted: Sat Mar 11, 2006 8:38 pm    Post subject: Reply to topic Reply with quote

i88gerbils wrote:
You keep saying 'not good enough', but you don't give any suggestions yourself. If you want to come up with an idea, then come up with one. If you don't, then you better not disrespect one idea just because you lacked the will to think through your own.


Again, I am describing what pbot does, and asking if asss can do the same as is. If someone would have simply said "no it can't" rather than get all defensive then the conversation would have taken 2 posts.

i88gerbils wrote:
If you had read my post you would have realized that one of the additional questions/comments I asked was whether or not you wanted a module devoted to handling commands for your pb modules. Such as what Smong has said a few posts above - ?pbset arena:param:value.


Pbot has its own command system, per bot per module. I don't need to add a special module to handle it. It also has its own settings system, per bot type.

I would never want to associate a bot/module setting with an arena. The bot gets the settings, not the arena. Those settings take affect in any arena the bot is in.
Back to top
View users profile Send private message Add User to Ignore List
i88gerbils
Oldbie Server Help


Gender:Gender:Male
Joined: Dec 13 2002
Posts: 423
Location: OH
Offline

PostPosted: Sat Mar 11, 2006 8:41 pm    Post subject: Reply to topic Reply with quote

So let me clarify:

You built pbot from the groundup. You don't want to buildup pbot the asss module from the groundup. Okay. I think I was right then.
Back to top
View users profile Send private message Add User to Ignore List Send email Visit posters website Yahoo Messenger
Mine GO BOOM
Hunch Hunch
What What
Hunch Hunch<br>What What


Age:41
Gender:Gender:Male
Joined: Aug 01 2002
Posts: 3615
Location: Las Vegas
Offline

PostPosted: Sat Mar 11, 2006 9:39 pm    Post subject: Re: Can ASSS do this? Reply to topic Reply with quote

Mr Ekted wrote:
  1. I can stop the pub bot, including all its modules, change its module list and restart it without affecting any other bot.
  2. I can change a setting in pub.ini that will affect the behavior of module B in pub, but will not affect any other bot.
  3. I can change a setting in league.ini that will affect the behavior of module C in all league arenas only.
  4. I can do all of the above without unloading modules completely, and without recompiling. Arenas are not hard-coded in modules or in INI files.

I have not played with nor touched ASSS in around a year. Things may have changed since I last done things with it, but most of it should be sitting the same as it was then.

To get what you want, you don't need to do too many changes. Sure, you could make a MasterBot module to implement all the old powerbot dlls as fake clients and do everything the exact same old way, but when you jump from one system to another, you will need to change the way you think. My ideas on how to convert over:

As your bots use modules, you'll need to convert them over. In most cases, they will be very similar conversions, just changing the I/O of each function. The big part of the conversion is how they will interact.

The structure you are looking for seems to be a) total control over other bots through one source, which can be access remotely, b) a grouping of modules, which an overriding group of settings for all of these (league bots, duel bots, etc), and c) to be able to change around groups without effecting individual modules. Correct me if I'm wrong here.

For A, you'll need to create this. I believe ASSS's module loading/unloading only effects the current arena, though it shouldn't be hard to add a parser to allow remote arena control. To get completely remote, such as from another zone, you'll have to add in code somewhere in the text handler from the Billing modules to intercept commands.

For B, you have two choices. The hardest is to create groupings which would replicate exactly what you need, but would effect code all over ASSS or make a new hack somewhere to add new keywords to create groupings. The second is to use ASSS's ability to include configuration files inside other configuration files. For the arenas League1, League2, etc, you can just #include 'leaguesettings.conf' and that will contain all the configuration files that those modules will read from. This is working with the idea that server.cfg is not the same as arena.conf in ASSS. Each module should load/store configurations inside the arena settings or have their old special way of loading configurations.

If you'd want to create a new league bot in another arena, you could create a new command in which an arena could temporarily include a configuration file. Thus, in ?go #leagueprac, an operator (or user) could run ?loadconf leaguesettins.conf which would include those settings into that arena, without effecting the file itself. This has the problem that to clear out these settings, you'd need to either override them or empty out the arena.

And for C, ASSS was designed with the system that modules would change rarely during runtime. Sure, you could disable a module or unhook a module from an arena, but almost all the time it would happen with either a zone recycling, or manually disabling the module everywhere and reloading it. This means that it isn't user friendly.

To customize ASSS, you need to stop thinking in the way that a group of modules is a single instance. A group of modules is just that, a group. And to have them linked together, either use the #include feature in configuration settings, or create a new settings loading system. ASSS's advantage is that it is very dynamic at compile time, with some effect in place at runtime. Powerbot's advantage is its dynamic runtime capabilities. Something has to give, or you'll have to code a new system into place.
Back to top
View users profile Send private message Add User to Ignore List Send email
Dr Brain
Flip-flopping like a wind surfer


Age:39
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Sun Mar 12, 2006 1:30 am    Post subject: Reply to topic Reply with quote

Mr Ekted wrote:
Pbot has its own command system, per bot per module. I don't need to add a special module to handle it. It also has its own settings system, per bot type.


ASSS doesn't have bots, so it can't give you commands per bot. Seems kind of silly for you to hold that against it though.

Mr Ekted wrote:
I would never want to associate a bot/module setting with an arena. The bot gets the settings, not the arena. Those settings take affect in any arena the bot is in.


That severely limits your flexability, but you're certainly welcome to associate settings per module. ASSS does give you that ability.

Ekted, seriously, programming with ASSS involves shifting your way of thinking. You're a subborn asshole, and it's going to be a pain for you to change your way of thinking. Don't take that pain out on us. Just do it and move on.

ASSS can do everything you want in the broadest sense. It might do things differently, but there's usually a reason for that. Get over it. As long as the finished product works, it DOESN'T FUCKING MATTER.
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Dr Brain
Flip-flopping like a wind surfer


Age:39
Gender:Gender:Male
Joined: Dec 01 2002
Posts: 3502
Location: Hyperspace
Offline

PostPosted: Sun Mar 12, 2006 1:32 am    Post subject: Reply to topic Reply with quote

In summary: ASSS can do what you want. If you want to make it work exactly like your precious PBot, then you can do it, but it'll involve contorting the core.

If you decide to open your mind to the possibility of doing things the ASSS way, you'll find everything will mesh better.

Either way, it can do what you want.
Back to top
View users profile Send private message Add User to Ignore List AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Server Help Forum Index -> ASSS Questions All times are GMT - 5 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum
View online users | View Statistics | View Ignored List


Software by php BB © php BB Group
Server Load: 152 page(s) served in previous 5 minutes.

phpBB Created this page in 0.618584 seconds : 50 queries executed (79.1%): GZIP compression disabled