Commit Graph

160 Commits

Author SHA1 Message Date
Gent 941e986ee1 Fix incorrectly set item cost 2020-09-30 13:30:19 -04:00
CPunch 884b844d65 minor refactoring 2020-09-28 13:11:13 -05:00
dongresource 6ea47ddb56 Fixes.
* Mobs should account for height when aggroing on nearby players
* We don't need to keep track of lastHealTime for each player separately
* Warp attendants no longer steal the players weapon and money
2020-09-27 19:58:37 +02:00
kamilprzyb d4f1515f5d
Time to go, gumballs and nano potions (#113)
* set up "go to the time machine" button working

* warping to the past now sets PayZoneFlag and removes all active missions

* added gumballs functionality

* added nano potions functionality

* formatting fix
2020-09-25 00:35:27 -05:00
CPunch 874479d1cf fixed NPC spawning bug 2020-09-24 21:32:14 -05:00
CPunch 8f84c4c2f8 updateNPCPosition now tracks chunks 2020-09-24 20:58:20 -05:00
dongresource 279cb78d5f Mob-related cleanup.
* NPCs now keep track of their chunk information like PlayerView does
for players
* NPCManager::sendToViewable() parallels PlayerManager::sendToViewable()
* Nano damage and debuffs now count as attacking a mob
* Mobs will de-aggro if something else killed their target
2020-09-25 02:00:26 +02:00
dongresource 72d625fd8d Summoned mobs are now actually treated as mobs.
Unfortunetly, this necessitated keeping around yet more JSON objects for
the duration of the server's runtime.
It also involved unifying the way NPC IDs are handled, such that they
may be allocated and deallocated out of order.

If any NPCID-related bugs occour, this commit should be regarded as
the prime suspect.
2020-09-25 00:51:18 +02:00
CPunch 4caca07856
Merge pull request #109 from gsemaj/slider
Basic slider implementation
2020-09-23 14:49:26 -05:00
Gent f2596bfb6a Add NPC chunk management + Generalize lerp 2020-09-23 12:06:25 -04:00
kamilprzyb 016c48645e adjusted timestamp function to always return value in seconds 2020-09-23 11:05:18 +02:00
Gent 7dfc888552 Basic slider implementation 2020-09-23 00:08:51 -04:00
kamilprzyb 076f89927d changed vehicle iTimeLimit to be stored in seconds instead of miliseconds 2020-09-22 21:49:24 +02:00
kamilprzyb 7ba9b9a54f replaced high_resolution_clock with system_time for timestamps 2020-09-22 21:15:47 +02:00
kamilprzyb 5a58908462 vehicle has a proper expiration day when bought, implemented checking expired vehicles while login 2020-09-22 13:16:09 +02:00
CakeLancelot adf017b07c
Move from isGM to Account Levels (#106)
Co-authored-by: dongresource <dongresource@protonmail.com>
2020-09-22 04:26:12 +02:00
CPunch 4cc1cf4f7e minor chunk refactor 2020-09-21 14:55:34 -05:00
CakeLancelot 77df7b7160
Merge pull request #92 from gsemaj/crocpot
Implement Croc Pot item combining
Fix vehicle type override
2020-09-20 13:40:36 -05:00
Gent c6ec1c46c2 Add documentation for getItemType() 2020-09-19 16:38:50 -04:00
CPunch ce9285bab5 support for /unsummon 2020-09-18 16:24:15 -05:00
Gent b929d12902 Implement Croc Pot item combining 2020-09-17 23:55:57 -04:00
CPunch 9f78735caa fixed socket reference bug 2020-09-17 22:44:37 -05:00
CPunch f4db0830ba huge refactoring, chunking added 2020-09-17 17:45:43 -05:00
dongresource e79f179628 Mobs respawn now.
Began work on mob logic. Also cleaned up TableData a little.
2020-09-17 01:43:48 +02:00
Gent 148d90f4f1 "Boosts and potions!"
Fixed crate opening such that the item has an iOpt of 1.
2020-09-14 18:36:50 +02:00
Gent a976fef2b4 Implement vendor stack logic 2020-09-14 10:25:15 -04:00
Gent da8c833587 Implement buyback
Sellability tweak


Add additional item categories
2020-09-14 10:25:15 -04:00
Gent c91022030c Load item tables + price implementation 2020-09-14 10:25:15 -04:00
Gent f55cc8f36d Load vendor tables 2020-09-14 10:24:55 -04:00
dongresource 131997f34f Cleaned up all whitespace issues.
The incantation was: sed -i 's/[ \t]*$//g' src/*.[ch]pp
2020-09-14 16:07:05 +02:00
dongresource 4c06163b51 Properly validate vendor logic.
Also, iTimeLimit should be 0.
2020-09-12 16:10:53 +02:00
Gent 4e7352da66 Add sell functionality to vendors 2020-09-11 22:04:23 -04:00
dongresource 5747c24479 [bugfix] Don't set iType on empty item slots.
This confuses ItemManager::findFreeSlot().
2020-09-12 02:25:45 +02:00
Ariii 3865249387 Vendors, set nano skill command + serverside command issues fixed (#74)
Added basic shopkeeper functions, a player can buy the preset 3 items (cannonbolt set), all shopkeepers have the same items atm (need to check the shopkeeper tabledata), setting itemprice is something I didn't figure out.
Added set nano skill command
Implemented a switch for certain commands like health/taros/fusionmatter etc to be handled on the serverside aswell

Co-authored-by: dongresource <dongresource@protonmail.com>
2020-09-11 23:19:03 +02:00
CPunch eb1ad6bb37 switched to dumped XDT & moved to a submodule 2020-09-09 12:06:22 -05:00
dongresource e90ae10746 Summoned NPC are now visible to other players. 2020-09-07 22:12:53 +02:00
CPunch df655dfe29 added mobdata to config 2020-09-07 12:54:40 -05:00
CakeLancelot 8a481acdae Stub npcBarkHandler for now 2020-09-06 09:59:43 -05:00
JadeShrineMaiden 1e344c2dd8 Small tweak 2020-08-31 01:36:29 +01:00
JadeShrineMaiden fdd0160248 Colliding NPC IID quickfix 2020-08-30 23:29:28 +01:00
Eperty123 b239fb9331 Add NPC barking, seeing saved characters 2020-08-29 13:14:21 +02:00
dongresource 3b35e0017a Moved all JSON files into a dedicated data directory. 2020-08-28 22:22:24 +02:00
dongresource 9b0cb7f441 Fix crash when receiving invalid packets with very low ids.
Also fix benign NPC deallocation bug.
2020-08-26 22:22:52 +02:00
dongresource 4178945abe Decoupled player and NPC view distance. 2020-08-26 04:58:17 +02:00
dongresource 3e5101892b Populated the future with scraped mobs.
This system is temporary; meant to ease testing.
2020-08-26 04:57:59 +02:00
dongresource 3b3ddf08ef Fix github issue #38 2020-08-25 20:42:52 +02:00
dongresource b79bc56b31 Implement NPC spawning.
Protected by a simplified GM system. Either everyone is a GM (local
servers) or nobody is (public servers).
2020-08-25 04:28:42 +02:00
dongresource 113ce0af07 Load the NPC and warp JSON files according to the config file.
NPC data was being read from the config, but ignored.
2020-08-25 03:45:04 +02:00
dongresource d964a83d6d Respawn points work now.
Note that some of them weren't present in clientnpc and will need to be
manually added later.
2020-08-25 03:34:53 +02:00
dongresource 14bc368073 Dynamically allocate the Player struct in PlayerView.
This way we're not always passing it around by value.
Note that the Player structs in CNSharedData are still
pass-by-reference. Will probably change this later.
2020-08-25 00:59:55 +02:00
CPunch 561a809f33 load warps into memory in NPCManager::init 2020-08-23 11:26:25 -05:00
CPunch 0d27412d81 added getNearbyPlayers 2020-08-23 10:42:37 -05:00
Zenpock 1d792a21dd
Npc Warp implementation (#29)
* Update CNShardServer.hpp

* Update ChatManager.cpp

* Update ChatManager.hpp

* Update NPCManager.cpp

* Update NPCManager.hpp

* Add files via upload

* Update NPCManager.cpp

* Update NPCManager.cpp

* Update ChatManager.cpp

* Update ChatManager.cpp

* Update NPCManager.cpp

* Update NPCManager.cpp

Co-authored-by: CPunch <sethtstubbs@gmail.com>
2020-08-23 10:32:25 -05:00
CPunch 88953541ef added INITSTRUCT to zero-out data 2020-08-22 19:26:18 -05:00
CPunch 94b0dc724e major refactoring 2020-08-22 18:31:09 -05:00
FinnHornhoover 5f65a84b02
Fix unhandled exception in NPCManager (#24)
* fixed PROTOCOL_VERSION not being defined

* handle exceptions in NPCManager init
2020-08-22 01:46:52 -05:00
CPunch bbd6c5b532 moved header libraries 2020-08-21 21:03:12 -05:00
CPunch f289c72f6f populated NPCManager 2020-08-21 17:14:11 -05:00
CPunch 6857f50c30 added basic NPCManager 2020-08-20 16:43:48 -05:00
CPunch 4d9072a752 added radio's logo, started NPCManager 2020-08-19 17:21:35 -05:00