Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Development] Point Blank Emulator 3.24 [C# - PostgreSQL]

Newbie Spellweaver
Joined
Sep 23, 2020
Messages
25
Reaction score
23
POINT BLANK EMULATOR
Point Blank Emulator is an emulator of Point Blank client 3.24 (last Piercing Blow client) that aim to be as most stable and coded as possible.

All the emulators currently around are poorly made and not very customizable servers, so I started working to finish the 3.24 server (original link: https://forum.ragezone.com/f904/release-blank-evolution-2020-a-1172826/) by fixing the major problems and coding the missing packages.

The server will be customizable as much as possible, with a new system of commands and permissions that will make it possible to adapt to your liking.

Tecnology:
Actually the server is coded in C# with .Net Framework, but I'll move it to .Net Core soon.
For the database it use PostgreSQL.

Features:
- Rooms (create, change host, change team, etc.)
- Inventory (weapons, characters, items, random box, etc.)
- Shop (buy weapons, characters, items, sets, random box, etc.)
- Missions (all the base mission cards work properly)
- Titles
- Daily visit events
- Battles (bomb, deathmatch, free-for-all, AI, eliminate, sniper mode, shotgun mode, knuckle)



Screenshots:

oAtiPi7 - [Development] Point Blank Emulator 3.24 [C# - PostgreSQL] - RaGEZONE Forums


vQplG9c - [Development] Point Blank Emulator 3.24 [C# - PostgreSQL] - RaGEZONE Forums


vQplG9c - [Development] Point Blank Emulator 3.24 [C# - PostgreSQL] - RaGEZONE Forums


Y71Bm2b - [Development] Point Blank Emulator 3.24 [C# - PostgreSQL] - RaGEZONE Forums


OVVLwGT - [Development] Point Blank Emulator 3.24 [C# - PostgreSQL] - RaGEZONE Forums


Ugtyg6J - [Development] Point Blank Emulator 3.24 [C# - PostgreSQL] - RaGEZONE Forums


3CtQC1S - [Development] Point Blank Emulator 3.24 [C# - PostgreSQL] - RaGEZONE Forums

Screenshots album:
 

Attachments

You must be registered for see attachments list
Last edited:
Newbie Spellweaver
Joined
Sep 23, 2020
Messages
25
Reaction score
23
Re: [Development] Point Blank Emulator [C# - PostgreSQL]

Why PostgreSQL ?
The server it is based on uses postgresql, so I continued with that. Probably later, however, I will switch to MySql (probably with a v2 from scratch, because the server is really badly written and it would take me less to do it from scratch)
 
Shh, quiet, you might piss somebody off
Developer
Joined
Dec 23, 2011
Messages
1,797
Reaction score
2,158
Re: [Development] Point Blank Emulator [C# - PostgreSQL]

The server it is based on uses postgresql, so I continued with that. Probably later, however, I will switch to MySql (probably with a v2 from scratch, because the server is really badly written and it would take me less to do it from scratch)

If you are rewriting why don't you change, else you will only writing the same code again, go different from the owned of project you're using as base project.
 
Newbie Spellweaver
Joined
Sep 23, 2020
Messages
25
Reaction score
23
Re: [Development] Point Blank Emulator [C# - PostgreSQL]

If you are rewriting why don't you change, else you will only writing the same code again, go different from the owned of project you're using as base project.
I'll move to mysql, but for now I prefer to keep postgresql.

By the way, this is the changelog of the last week:
Code:
- Removed useless logs from battle server (that make my eyes blood)
- Removed top-ups- Removed pc-cafe (will be coded as vip)
- Removed level-up for rank over 51
- Added plant and defuse duration static in the server (to avoid decimal separator problems, plant and defuse time don't need a configuration)
- Added observer checkbox on room for player with rank GM or MOD (I'll code a system for rank permissions)
- Small bug fixing- Database and encoding configuration are now readed from 'Data\Database.ini' (to avoid multiple configurations)
- Implemented RCON on gameserver (useful for real-time interaction from website to server)
  - RCON use Fleck (WebSocket) for receive packets
  - RCON can be enabled / disable from configuration
  - RCON have a password that must be sended on packet for confirm that sended packet's are valid
- Cleared auth / game from useless logs
- !! Added weapon synchronization in battle 
- !! Removed "10 minutes remaining" after battle end, maybe I'll code playtime events in the future
- !! Added clan enable / disable from config Auth.ini
- Replaced table 'info_login_configs' with table 'server_settings'
- Replaced table info_basic_items'' with table 'server_inventory_template'
- Replaced table 'info_channels' with table 'channels'
- Replaced table 'info_gameservers' with table 'gameservers'
- Replaced table 'info_cupons_flags' with table 'server_effect_flags'
- Replaced table 'info_missions' with table 'server_cards'
- Replaced table 'info_rank_awards' with table 'server_rank_awards'
- Moved 'Data\Cards\MissionAwards' to database, table 'server_cardsawards'
- Replace tables 'events' with 'serverevents'
- Moved 'Data\Rank\Player.xml' to database, table 'server_ranks'
- Moved 'Data\Rank\Clan.xml' to database, table 'server_clan_ranks'
- Replaced table 'auto_ban' with table 'logs_auto_ban'
- Replaced table 'nick_history' with table 'logs_nick_history'
- Removed table 'gamerules', I'll code tournaments in the future
- Replaced table 'friends' with table 'player_friends'
- Replaced table 'clan_data' with table 'clans'
- Replaced table 'accounts' with table 'players'
- Removed table 'online' (not needed, can use players.online and players.state)
- Improvement on BattleManager
- Improvement on GameManager
- Added RconSendMoney (Opcode: 1, Pattern: opcode|rconPassword|userId|moneys)
- Added RconSendPoints (Opcode: 2, Pattern: opcode|rconPassword|userId|points)
- Bunch of small bug fixed
- Translated 'logs_nick_history' motive from Thai to English
- Fixed channels user count on auth server
- Added attendance check events (up to 31 rewards)
- Added attendance check multi-reward (up to 2 items to choose)
- Added settings 'enable_greenblood' in table 'server_settings', turn on / off age selection and force normal blood to everyone
- Now 'access_level' permissions will be readed from table permissions_rights
- Added permissions
- Added permissions_levels (base database will have the follow levels: normal, vip, advanced vip, trial moderator, moderator, gamemaster)
- Added permissions_rights
- Added 'observer_enabled' permission
- Added ':commands %page%' command (permission: commandscommand)
  - Show all the commands available for this user
- Added ':gift %userid% %type% %value%' command (permission: giftcommand)
  - type 'money/moneys/cash', value 'amount': give money to user  - type 'point/points/gold', value 'amount': give points to user
  - type 'item/good/good', value 'goodid': give good item to user inventory (no characters and masks)
- Added ':update %what%' to update part of the emulator (permission: updatecommand)
  - Can update: 
  - shop (instant for command sender, must login back for other players)
  - events (instant for everyone and force update even on the Auth server)
  - permissions (instant for everyone but fake_rank won't apply without login back, force update even on the Auth Server)
- Quickstarts preferences now are saved in the database- Removed 'QuickStart.xml'
 
Initiate Mage
Joined
Aug 30, 2017
Messages
3
Reaction score
1
Re: [Development] Point Blank Emulator [C# - PostgreSQL]

Hey bro. Im developer server OZ Network :) (Hello from 2015)
Good look bro but use net core.
However the game is already dead and does not bring interest.
I did a lot for this game. More than the rest here. Without me, PVP, shop and other things would not have appeared.
I lost interest in this because the game became dead. Almost no one plays it
But in any case, I wish you good luck :) If I can help you with something, I will be glad
 
Newbie Spellweaver
Joined
Sep 23, 2020
Messages
25
Reaction score
23
Re: [Development] Point Blank Emulator [C# - PostgreSQL]

Hey bro. Im developer server OZ Network :) (Hello from 2015)
Good look bro but use net core.
However the game is already dead and does not bring interest.
I did a lot for this game. More than the rest here. Without me, PVP, shop and other things would not have appeared.
I lost interest in this because the game became dead. Almost no one plays it
But in any case, I wish you good luck :) If I can help you with something, I will be glad
I will probably load all on GitHub, then I will share the link
 
Newbie Spellweaver
Joined
Sep 23, 2020
Messages
25
Reaction score
23
Code:
- Added 'items' table where Battle server pick informations about weapons
- Now damage is limited by items informations on 'items' table
  - Added configuration to allow or deny damage from unlisted items
  - Added configuration to turn off this protection
- Added auto ban for users who use auto-kill on bot mode
- Added auto ban for users who seems to have hack (PROTOCOL_BATTLE_TIMERSYNC_REQ)
  - Can be turned on / off from config
- Added configuration 'ClearToken' to clear Token after login
    (I recommend leaving it active for safety reasons. The token must be regenerated by the launcher at each start)
- Remove "shop" table, moved to:
    - 'item_goods' for weapons, characters & normal items
    - 'item_goods_effects' for effect items  - Both the table have now a 'discount' value, it will automatically calculate the price and add the 'sale' icon
    - Now goods don't need multiple line for more days, can just be added with a comma splitting them

Example of new goods setup:
 
Junior Spellweaver
Joined
Oct 10, 2015
Messages
140
Reaction score
19
im keeping an eye at this project , good job and good luck :)
give me your discord , willing to give you an offer
 
Banned
Banned
Joined
Jul 14, 2020
Messages
420
Reaction score
35
Much btter if you will start from scratch and use MySQL instead of PostgreSQL since you are using the shared file then why don't just get those pointers so you can start from scratch as a base source? If I found my source with a bugless fixes I will share it here.

 
Newbie Spellweaver
Joined
Sep 23, 2020
Messages
25
Reaction score
23
Actually a few days ago I started developing my emulator for the client v1 (it will support all clients from v1.15.37 to v1.15.42).
From now on, this post will no longer be about the server for v3, but for v1.

About the new emulator:
- I'm using Mysql
- I'm creating the emulator with a slightly different structure than usual, there will be no separate projects for the authentication server and the game server, but only a single server that must be started with specific parameters


This is how I structured that:

s0XfhW7 - [Development] Point Blank Emulator 3.24 [C# - PostgreSQL] - RaGEZONE Forums


And for start it:

FZ563dX - [Development] Point Blank Emulator 3.24 [C# - PostgreSQL] - RaGEZONE Forums


The project will be open source on GitHub when it actually makes sense (i.e. when we have a minimal base), so the community can contribute.
 

Attachments

You must be registered for see attachments list
Joined
Aug 10, 2011
Messages
7,398
Reaction score
3,301
When I tried to refactor some old server last year I was like, its better to write a new one from scratch. I gave up after trying to figure out what mess was written.

Hopefully you can build something cool thats actually cleanish.

Might I suggest to use dapper so you're not stuck with a specific database type.
Also try to use dependency injection, it makes it all a lot cleaner.
Seperate logic from the packets and move it to services so parts can be re-used and are not implemented in the packet.
 
Newbie Spellweaver
Joined
Sep 23, 2020
Messages
25
Reaction score
23
When I tried to refactor some old server last year I was like, its better to write a new one from scratch. I gave up after trying to figure out what mess was written.

Hopefully you can build something cool thats actually cleanish.

Might I suggest to use dapper so you're not stuck with a specific database type.
Also try to use dependency injection, it makes it all a lot cleaner.
Seperate logic from the packets and move it to services so parts can be re-used and are not implemented in the packet.

I'm on vacation and for 3 weeks I can't go to the pc, as soon as I come back and work on the project I will at least try to use dapper because it seems very flexible to me
 
Junior Spellweaver
Joined
Apr 3, 2013
Messages
189
Reaction score
2
I'm on vacation and for 3 weeks I can't go to the pc, as soon as I come back and work on the project I will at least try to use dapper because it seems very flexible to me

why you left v 3.24 , because v3 have a lot to development not like v1 ?
 
Newbie Spellweaver
Joined
Sep 23, 2020
Messages
25
Reaction score
23
why you left v 3.24 , because v3 have a lot to development not like v1 ?
I'm working on v1 just because i've a private server running with v1.15.41, so if I end this emulator I can use it instead of v3 client.
 
Newbie Spellweaver
Joined
Sep 23, 2020
Messages
25
Reaction score
23
Finally back to work on the project, actually I'm editing the server for support multi-database (MySQL and PostgreSQL for now)
As suggested by The General I'm using Dapper. (Configuration: )

What I did for now:
- Support for multi-versions on Auth Server packets (1.15.37, 1.15.38, 1.15.39, 1.15.41 and 1.15.42)
- Support for client with token login (for old indonesia, thailand and kaybo client that need to login)
- Shop list / buy
- Time items activation
- Started some works for mission cards

As always I'm developing it so keep it as simple as possible to setup and edit, this is for example how I have done the shop:
 
Back
Top