Jump to content

I'd love to help develop some stuff


Funplayer

Recommended Posts

Always kind of wanted to rebalance the shops, modify the inventory a bit, add some new features to the menus, include a few new interfaces for weapon modifications, that sort of stuff. Maybe rebalance some of the core mechanics of androids, such as firing forward traps, or even possibly new types of traps.

Not really sure how to get started though. I have plenty of coding experience, so that's not really much of an issue.

Link to comment
Share on other sites

Sadly most of the things you suggested are either impossible or pretty difficult to do.
I don't know if you are aware, there is no source code for the client, so most changes that we do have to be done in assembly and that limits a lot what we can do (either by time or complexity, I have been doing a bunch of things but mostly modifications, rather than "new" things).

To talk specifically about what you suggest:
Shops rebalancing doesn't even require coding, old Tethealla the items are "hardcoded" in some config file (binary, a bit hard to change) while in Aselia (my server implementation) they are a configuration text (json) file.

Modifying inventory? If you mean increasing it's limit (the only thing I can think of), it's limited by data structures and code which would be a total pain to change, it has been suggested before and it has been turned down, I don't think any sane developer would attempt that.

Adding features to menus, some menus can be changed to add options but in the end, at least for me, is just easier to implement "text commands", just as I have already done with certain things in Aselia and Tethealla in Ultima too.

Interfaces for weapon modifications, I don't know what you mean with that. Certain types of modification to weapons or items in general are done in quests, like adding attributes to weapons, adding specials to sranks, wrapping items into presents.

New traps and new ways to set traps, coding, animations, textures, particles, etc.. If you have any idea, please let me know.

 

With all that said, I am always all ears.
Feel free to discuss anything you could implement or suggest to be implemented, as I said up there, I have done a bunch of things already (all getting into the client through psobb.dll) but also have turned down a bunch of other things for different reasons, anything too extreme or difficult to do will probably not see the light, at least in the version of teth we use or Aselia.
 

  • Like 1
Link to comment
Share on other sites

Is there any sort of active entity manipulation? Such as, mutating entities mid-game by altering statistics, adding monsters not designated to the main roster of a quest, or creating entities based on templates of entities in the middle of a quest? This concept intrigues me.

Active manipulation would open a door to things like spawning player allied monsters.

Edited by Funplayer
Link to comment
Share on other sites

7 minutes ago, Funplayer said:

Is there any sort of active entity manipulation? Such as, mutating entities mid-game by altering statistic

If you can figure out why load_enemy_data, get_physical_data, get_attack_data, get_resist_data, or get_movement_data quest opcodes don't work in BB, I'd love you forever.  They're opcodes 0xF891, 0xF892, 0xF893, 0xF894, and 0xF895 respectively.  Though 0xF890, 0xF889, 0xF896, and 0xF897 are all unknown, so there could be more monster altering opcodes.  If so I can give you some test material.  I tried to do it, but I don't have time nor understanding of the game to decipher the assembly.

7 minutes ago, Funplayer said:

adding monsters not designated to the main roster of a quest,

Someone did this, but it's not very practical.  The game only loads up certain data when you create a game, so as it was described to me, you need to fake the load to a different address.  Seemed like too much work for the rewards to me.

7 minutes ago, Funplayer said:

creating entities based on templates of entities in the middle of a quest?

What do you mean by this? Like changing how monsters function?

Link to comment
Share on other sites

24 minutes ago, Lemon said:

If you can figure out why load_enemy_data, get_physical_data, get_attack_data, get_resist_data, or get_movement_data quest opcodes don't work in BB, I'd love you forever.  They're opcodes 0xF891, 0xF892, 0xF893, 0xF894, and 0xF895 respectively.  Though 0xF890, 0xF889, 0xF896, and 0xF897 are all unknown, so there could be more monster altering opcodes.  If so I can give you some test material.  I tried to do it, but I don't have time nor understanding of the game to decipher the assembly.

I'm unfamiliar with the system, but it sounds to me like potential either debug data, or possibly dynamic data allocation. I'm hoping its dynamic data allocation, however if it is debug data, its possible to use this as a gateway to something else. It's possible these are simply scrapped or deprecated functions, or possible there is quests in the main story using these functions in a certain fashion, with certain parameters involved. In any case, I don't have any clue where to start, so any sort of test material would give me a foothole into more information.

24 minutes ago, Lemon said:

Someone did this, but it's not very practical.  The game only loads up certain data when you create a game, so as it was described to me, you need to fake the load to a different address.  Seemed like too much work for the rewards to me.

It sounds to me, like we need a dynamic loader! Something to produce the required data, as well as modify data while the games are running. This sounds quite complex, as the dll file is sealed, and the code is locked. If this is unlocked, it should be possible to allow for more than 4 players, break the enemy and item limit, and so on. Possible gateway to new enemies, new levels, new stages, and so on. Not to mention, access to a higher level language such as Lua, Python, Javascript, etc.

24 minutes ago, Lemon said:

What do you mean by this? Like changing how monsters function?

This is just more dynamic loading concept. If there is no dynamic loader, there would be no way for this to function. Dynamic loader would need to basically replace the PSO quest data loader, and store stated data based on the old style of pso quest data loader, while still maintaining the integrity of the original struct and functionality, completely bypassing the limitations of the system.

Practical example would be: Booma A has the swing of a delsaber on VHARD, while Booma B has the HP of dark falz on Ultimate, and Booma C looks exactly like a C-bringers with HP of a Booma. All Booma in the same room on the same map, created with the same idea. As the quest began, the data was loaded based on quest data, template forms were overwritten to be formed into a dynamic structure in which the game can understand. From what I can tell however, this doesn't seem possible currently.

Edited by Funplayer
Link to comment
Share on other sites

This link might be of interest to you: http://sharnoth.com/psodevwiki/

 

2 minutes ago, Funplayer said:

Practical example would be: Booma A has the swing of a delsaber on VHARD, while Booma B has the HP of dark falz on Ultimate, and Booma C looks exactly like a C-bringers with HP of a Booma. All Booma in the same room on the same map, created with the same idea. As the quest began, the data was loaded based on quest data, template forms were overwritten to be formed into a dynamic structure in which the game can understand. From what I can tell however, this doesn't seem possible currently.

This sounds like what those opcodes did in DCv1, DCv2, and Gamecube\xbox versions.  Though the only example I have of their used loaded them at start, so Idk if they'd behave like you listed.

Link to comment
Share on other sites

I have some stuff in the back burner, to modify monster stats at runtime, but it most likely wouldn't be able to be used on the spot, only when entering a room.
This in Aselia, since it would be just too painful in Tethealla.

Using animations of other monsters, I don't know, if the animations are baked into the models then it most likely wouldn't work.

"Spawning" monsters, as in adding new ones not defined in the monster data, it might get tricky.
I have not looked how the game parses and ends up using the monster data from quest but ¯\_ツ_/¯

Link to comment
Share on other sites

Perhaps you can just load up all the data, then create a table structure on the spot based on all the data and its parameters. Then provide opcodes to redirect to new positions! This sounds kinda fun actually, and would help with those baked in animations.

 

Forest booma spawn opcode, will provide say forest int, booma int, and so on. Pointing at the booma model, in the forest template of monsters.

Forming this into a single opcode, could make it possible to create new monsters JUST by pointing at new positions in your own table! EXCELSIOR! Honestly not sure how well it would run though. Should be okay in C.

Standard Booma opcode > extra parameters in quest for single booma > table cobbles together new booma using sub table of parameters. Completed booma fed into the room.

How does the quest data work anyway?

Edited by Funplayer
Link to comment
Share on other sites

Quest spawns file structure : http://sharnoth.com/psodevwiki/doku.php?id=format:dat

Quest metadata & code file structure : http://sharnoth.com/psodevwiki/doku.php?id=format:bin

These two files are combined into a qst carrier file defined here : http://sharnoth.com/psodevwiki/doku.php?id=format:qst

Link to comment
Share on other sites

There is no "opcode to spawn monster", monsters are defined in the "dat" part of the quests, which Lemon linked to.

I assume everything is parsed at startup, changing how all that works would be a lot of work, both for server and obviously worse for client.

Link to comment
Share on other sites

58 minutes ago, Soly said:

What for?

It was a joke, you recently said : 

 

1r4r1t.jpg

  • Like 1
Link to comment
Share on other sites

4 minutes ago, chuk said:

It was a joke, you recently said : 

1r4r1t.jpg

Dammit Chuk!!!

I get it now... :rf-08:

59 minutes ago, DiosGX said:

The ID calculator for BB over on PSO-World is accurate for Ultima server, isn't it? o3o

We have our own anyway.
It shows all classes at once and updates in real time (no need to click "find your ID").
Also most of the calculators out there are missing some extra code required to calculate certain JP names correctly (including pso-w one).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...