Commit graph

42 commits

Author SHA1 Message Date
riperiperi
2b5dda5b8c [VM, Server] Various collision fixes. configuration
- Fixed small bug with fence objects joining across floors.
2019-02-18 21:16:30 +00:00
riperiperi
2bc513ea2b [Nhoods, LotView, VM] Mod tools and various improvements
- Fixed a bug with routing where doing an action while sitting would
report destinations within objects as valid.
- Fixed a lot of UI nits with nhood page.
- Search now works for nhoods.
- 3D fences are slightly shorter than wall height to avoid seams in MSAA
mode.
2019-02-16 16:04:46 +00:00
riperiperi
19b0b3bfd7 Up to testing level
- Rating List
- More work on lighting
- donation discount
2018-11-28 19:28:09 +00:00
Sim
efdf80c913 Save last_login when users login through AuthLoginController (#115)
* Save last_login when users login through AuthLoginController

I don't think this data is obtainable from anywhere in the database at this time. I think it can be pretty useful.
2018-07-25 09:23:32 +01:00
RHY3756547
d1cab0c630 [API] Some API updates.
/userapi/city/{shard_id}/l{lot_location}.json for some more info on
properties.
2018-04-22 01:50:14 +01:00
Sim
a85232a7c4 [API] Registration and Password Reset + SMTP Mailing + misc. admin features (#90)
* [Server] Allow users to be banned from admin API

- Make the API able to ban users and disconnect them.
- Show the INV-150 banned message instead of INV-110 message when a banned user tries to login.

* Forgot ToolRunServer.cs

* [API] SMTP Mailer, misc. admin API features

- Send ingame emails and notify the client.
- Unban users.
- Kick users.
- SMTP Mailer added with optional configuration in config.json. For now it only sends emails asynchronously upon banning a user.

* [Hotfix] Fixes that are hot

- Disable texture compression in cases where it would break on OpenGL 3D
mode and would turn most textures black (monogame issue, may be
re-enabled in future)
- Directional lighting setting is now ignored on minimum lighting.
(fixes black sims, minimum lighting in 3d)
- Fixed key shortcuts for live mode activating when typing. You can now
click or right click on the lot to remove focus from a textbox, letting
you use these commands.
- Skill Gameplay can no longer be disabled for NPCs.
- Audio crashfix for simulation pause.
- Fix newspaper possibly crashing for systems with non-english or
modified date strings.
- Fix an assumption where some systems did not understand "./update.exe"
for launching the updater

* [PIFF] Spotlight patch

- Stops spotlight advertising itself as a table
- Not sure how the original game was fine with this (multiple objects do
the same thing). There must have been some tell to ignore it.

* [API] Began Work on Email Confirmation

- Made optional registration routes for email confirmation.
- Created HTML Mail template files for token sending and
- Created new database table `fso_email_confirm` to store tokens.
- Added new config.json configuration variables.
- Created Database objects for email confirmations.

* [API] Finished Email Confirmation for Registration

- Finished Email Confirmation. Now server admins can choose if they want
  registration to require email confirmation by adding
  `forceEmailConfirmation: true` in config.json

* [API] Implemented Password Reset (w/ Email Confirmation)

- Added password reset handling to API. Usable with or without SMTP enabled.
- When not using SMTP, it asks the user for their old password and if it is correct the password is changed.
- Created necessary Mail templates.

* [API] Added SQL to Manifest, removed forceEmailConfirmation.

If SMTP is enabled and configured, registration will force the use of emails without having to set `forceEmailConfirmation: true`.

* [API] Removed unnecessary routes

Forgot to remove these (they are included in the controllers).
2018-01-29 13:46:59 +00:00
RHY3756547
0c15e30215 [VM, Server, Gameplay] Many Changes
- Dynamic Money Object Tuning
- Models a supply/demand market for all of the single money objects.
- Less popular objects pay out more. More popular objects pay out less.
- One "bonus" skill may be selected each day to have a higher payout.
- (note: all payout scales factor out the differing times for each
object type to complete)
- More information on the blog, and a future announcement.
- "Read City News" Interaction on Newspaper
- Shows recent/current news and upcoming events.
- Shows the bonus object, and the current payout percentage for each
object.
- Graphs the trend in object payouts over the last week.
- Skill Gameplay Disable
- Lets a lot owner disable skill decay, skill gain and money object
payouts on their lot at will. Useful for casual lot types.
- Can keep enabled for roommates only, or disable entirely.
- Skill gameplay is disabled for visitors by default for services,
entertainment and romance lots.
- Secure Trading
- Trade objects, money and lots... possibly all in one go!
- Revamped system to improve user awareness of possible scams.
- Supports extreme cases such as lot swapping.
- (needs further testing, that's why we beta)
- The snow covering Sunrise Crater has melted due to rain showers.
- Directional Lighting
- Adds an extra pass to the advanced lighting to store light direction.
- Objects and Sims now respect the light direction at their location.
- (in 2D mode, this currently only affects sims. more info coming soon)
- Uses an additional 4x4 pixel per tile half-float buffer
- DXT5 Texture Compression
- Prevents crashes on machines with low VRAM at the cost of visual
quality. (quarters sprite VRAM usage)
- Enabled by default for now, can be disabled from graphics options.
- Will eventually only be enabled by default on intel GPUs.
- Server performance improvements
- Objects that are for sale no longer simulate every tick (5x
performance improvement on extreme store lots, 2.5x increase on a
typical lot)
- ~25% improvement to single core performance on typical lots (and
reduced locking)
- Data service serializer cache
- Restaurant exceptions on round end are fixed.
- (now all you have to deal with is weird routing)
- Lot thumbnails smartly mask out ground colour when it is not sloped or
dead.
- Your lot won't have an ugly green diamond under it in the thumbnail.
(aka the ground)
- Fixed a bug with pets where they would consider their own interactions
more important than getting back in the cage.
- In 3D mode, the catalog thumbnail is now a rotating 3D model, rather
than the usually broken render seen before.
- Premultiplication is now the same between OpenGL and DirectX.
- Discord rich presence now uses lot category icons from Alex.
- Pets crates now show their breed as part of the name, where
applicable.
- Lot server now attempts to log simantics state when aborting a thread
in an infinite loop.
- Actually fix light permissions
- Many minor changes.
2018-01-12 21:40:09 +00:00
RHY3756547
072d25cc31 [Various] Many changes
- Added transaction logging in preparation for dynamic tuning
- Added database-soured tuning system
- Added motive overfill (see blog)
- Added weather and particle system. Currently set to rotate levels of
snow based on time.
- The city's ground is now entirely snow!
- Many misc shader and graphics changes.
2017-12-15 21:54:49 +00:00
RHY3756547
fe9bae103d [Various] Many changes
- Added transaction logging in preparation for dynamic tuning
- Added database-soured tuning system
- Added motive overfill (see blog)
- Added weather and particle system. Currently set to rotate levels of snow based on time.
- The city's ground is now entirely snow!
- Many misc shader and graphics changes.
2017-12-15 21:51:51 +00:00
RHY3756547
e82abe5ad0 [Server] Events system, inbox, more.
See discord or ingame mail for more information.
2017-10-31 16:49:16 +00:00
RHY3756547
afe07dbf87 [LotView, VM, Server] New Features
- Experimental Ultra Lighting mode with 3D object shadows. Enabled in 3D
mode.
- Object Wear: objects now accumulate at 1% per sim day
- Break & Repair: Objects over 50% wear now have a chance of breaking
that increases with the object's wear
- Price depreciation: Object sale price is now tied to its wear. As a
result of this change, existing objects will lower in value more than
usual, but newly bought objects should be fine.
- Light Management: Roommates can now change lights to stay on
permanently, and change light color.
- Dialog and TSO primitive descriptors for IDE.
- Add Shutdown task for automated shutdown.
- Cleanup and bugfix various areas.
2017-10-31 16:49:10 +00:00
RHY3756547
2bb7cfcfa2 [Server] Rehaul roommate protocol, avatar retire
You MUST run server.exe db-init after this version.
- Re-enabled and fixed returning non-roommate objects to their
inventories
- Implemented opening a property just to cycle database actions, eg.
roommate object sendback.
- Implemented Sim Retire. Even works when a lot is open - all of the
objects for the removed avatar will be deleted from the lot, just as if
they moved out.
- Implemented lot deletion. When the last avatar leaves a lot, its owner
becomes null. The next time this lot opens, it is deleted from db and
nfs. (opens instantly to close, though a purge task will be implemented
in the future to do this when some lots are missed)
- You can no longer buy a lot when you are the owner of a lot. You must
first move out of your existing lot.
- Lot move out has centralised functionality to stop weird data service
bugs.
- Center sim now considers terrain height
- Quitting to Select-A-Sim now attempts to re-obtain avatar data. If it
fails, you are sent back to the login screen.
2017-07-20 22:26:50 +01:00
RHY3756547
b698c5a4b2 [VM, Server] Minor Changes
- Fix objects being on sale after you buy them
- Object deletion is now deferred til after tick execution (fixes some
object crashes)
- Floor pattern 1 no longer sells for greater than 0
- Minor change to db structure. Make sure you run "server.exe db-init"
on servers.
2017-03-29 04:19:27 +01:00
ddfczm
a33ddcea25 InitialServletConnect 2017-01-07 12:51:38 +00:00
RHY3756547
1d9677cc80 [City] More work on crucial features 2017-01-05 16:36:53 +00:00
ddfczm
51804bc473 Property + visitor bonus backend implemented. If a bonus has already been paid for the period running the job again will not give the avatar more funds. 2016-12-29 16:36:54 +00:00
ddfczm
37ceca7458 Typo, off by 1 2016-12-29 14:45:19 +00:00
ddfczm
1db6fb5c7a Refactor of top 100 calculation to rely more on SQL. The top 100 task now processes one day at a time (reducing RAM burden) and writes total hours for the day into a totals table. A stored procedure is then called to calculate the top 100 tables based on this data.
This commit also has some WIP for bonus payments.
2016-12-29 14:38:12 +00:00
ddfczm
b2bbaa8288 Added db tables to store hosts and tasks.
* Hosts keep track of the servers in the pool. Each server and its role is recorded. This helps with service discovery.
* Tasks are async events that have run such as database pruning or top100 calculation. This helps admins know if a task completed or not.
2016-12-26 18:42:48 +00:00
ddfczm
a9c2be2322 Top 100 lot tables + calculations. Basic task schedule engine to automatically run the job every day.
TODO:
* Need to add some way to recover when the server is off when the task should run.
2016-12-24 18:50:11 +00:00
ddfczm
9bc2368be6 Record lot visits 2016-12-23 22:01:51 +00:00
ddfczm
15e909045e Removed the table name from the lotadmit change script as table name is not required to always be fso. 2016-11-29 14:49:39 +00:00
ddfczm
ca63c3d520 Merge remote-tracking branch 'upstream/feature/server-rebuild' into feature/display-racks
Conflicts:
	TSOClient/FSO.Server.Database/DA/SqlDA.cs
	TSOClient/FSO.Server.Database/FSO.Server.Database.csproj
	TSOClient/tso.client/UI/Panels/UILiveMode.cs
	TSOClient/tso.client/packages.config
	TSOClient/tso.simantics/FSO.SimAntics.csproj
	TSOClient/tso.simantics/Marshals/VMMarshal.cs
	TSOClient/tso.simantics/NetPlay/Model/VMNetCommand.cs
	TSOClient/tso.simantics/entities/VMAvatar.cs
2016-11-29 14:43:59 +00:00
ddfczm
f858e30fa0 Dressers now let you change into clothes you own. Have added a migration so everyones current clothes will be added to the database. 2016-11-27 16:12:47 +00:00
ddfczm
578a6bd6ed Manage interaction on store clothing racks fully working. 2016-11-20 13:30:31 +00:00
RHY3756547
a80ab60b93 [City, VM] Implement Lot admit/deny. Small changes. 2016-11-17 19:10:55 +00:00
ddfczm
ab09dafe0c Added backend for bookmarks. This is Maxis protocol compatible and the original game works with this bookmark implementation. However, the maxis protocol way of doing this is really messy. We may wish to change it to a FreeSO protocol specific way in the future if we experience any problems. 2016-11-11 20:28:01 +00:00
ddfczm
0679ef3873 Added migrations for triggers. Also added better error reporting in the migration tool and fixed a column mismatch in the user schema. 2016-11-11 17:03:21 +00:00
ddfczm
1453902751 Updated existing database migrations to conform to latest schema 2016-11-11 16:36:38 +00:00
RHY3756547
baaae4962d [City] Fix object auto increment 2016-07-07 18:27:13 +01:00
RHY3756547
16e481275a [City] Lots of work on lots, surrounding lots visible. 2016-07-07 17:38:23 +01:00
RHY3756547
c4b675c27e [City] Server now hosts functioning lots. WIP.
- VMNetDrivers no longer handle raw networking
- VM networking therefore no longer uses GonzoNet
- Nuked GonzoNet from space
- General cleanup, fixes. Lots of them, more to come.

NOTE: right now avatars must have an ID > 65536 to be controlled
correctly in a lot. This will be dealt with soon.
2016-06-19 03:29:36 +01:00
RHY3756547
5e0f471b76 [Voltron] Quick fix to CAS, database scripts. 2016-06-12 22:49:53 +01:00
ddfczm
26408393c8 DA for avatar claims 2015-11-26 17:48:09 +01:00
ddfczm
9668dd102b Added a background processing setup to lot hosting. This will allow it to perform time expensive operations outside of the simulation thread. 2015-11-22 17:14:57 +00:00
ddfczm
ec86fde098 WIP: Lot registration 2015-11-01 15:57:27 +00:00
ddfczm
9ed67e3509 CAS now inserts an avatar in the db. The avatar data service also talks to the db now. 2015-08-22 23:38:24 +01:00
ddfczm
a9729ded91 WIP: DataServiceWrapperPDU support. Have a serializer 2015-08-22 21:05:21 +01:00
ddfczm
b7f6fc4d94 Shard select service added 2015-08-16 18:31:44 +01:00
ddfczm
a2105e47ea Basic shard selection 2015-08-16 18:13:18 +01:00
ddfczm
5626cdae9a Auth controller implemented 2015-08-15 17:17:54 +01:00
ddfczm
a4eaa329ee Added some documentation for db setup 2015-08-15 16:15:37 +01:00