infiniterasa / rasa.net Goto Github PK
View Code? Open in Web Editor NEWA C# version of the Infinite Rasa project.
A C# version of the Infinite Rasa project.
Game Play Systems
The game server crashes on the first attempt to load into the game after character selection.
Steps to Reproduce:
Actual Results:
The game server crashes and the client disconnects. The exception thrown is here: https://github.com/InfiniteRasa/Rasa.NET/blob/master/src/Rasa.Utils/Cryptography/GameCryptManager.cs#L66
Expected Results:
Game server does not crash.
Workaround:
Restart the game server and leave the game client running
Additional Info:
It was suspected that there is a packet being sent on first load related to telemetry.
/clan (also /c)
/squad (also /sq, /g, or /p)
/say or /local (also /s or /l)
/tell [player's last name] (also /w [player's last name])
/# (where # is a number; it represents a channel specific to the area you are in)
Clans are a group of people who join together as a group under one name. As of right now there aren't many options for clans, however they are a good way to find people you are familiar with and like grouping with besides your friends menu.
In order to form a clan press CTRL and use the radial menu player options next to whomever you want to invite.
There are currently only 4 ranks in a clan for you to edit and use at one time, and only one clan leader at any given time. So, there can not ever be more than one clan leader. Everyone else in the clan can be promoted amongst the other 3 ranks as you see fit.
Manual Commands for Clans
/clan message: Sends message to the clan chat channel where everyone in the clan can see it. (Synonyms: c)
/clandisband: Disband the clan. (Synonyms: disbandclan)
/claninvite playername: Invite playername to join the clan.
/clankick playername: Remove playername from the clan.
/clanleave: Leave the clan.
Show how much ammo is in weapons clip
An Operations zone (commonly known as an instance) is a "private" zone. Unlike battlefield zones, which are shared among many parties and individual players, for an instanced zone the server creates an identical copy of the zone for each party that enters it. That means you will never run into any other human player in an instance (except for other members of your party), only NPCs.
Instances are an important element of storytelling in Tabula Rasa. Missions inside instances are usually in sequential order and mission dialogues are importants for insight into the background story. Instances make heavy use of scripted events and dynamic environment.
Unlike on the battlefield, monsters in instances respawn much less frequently or not at all, so it is possible to clear an area of any hostiles and explore it freely. Zoning in or out of an instance will "reset" it though, that means all dead hostiles respawn and objectives of unfinished missions are reset. Some instances have a hospital, others don't. Those who don't will "kick" you out of the instance if you die, which means you have to re-enter, the instance will be reset, and you have to start from scratch.
Most instances have multiple Logos shrines.
Implement a main loop
The main loop should run once every 100 ms, but it should be configurable.
Duties:
Process the incoming packets
Update the entities on the server (and their AI in the future)
Process the outgoing packets
Update server timers (Like shutdown timer, restart timer, etc...)
Game Play Systems
Incoming packet queue
Outgoing packet queue
PacketProcessor
Processing packets in the main loop
Socket Async optimalization: https://msdn.microsoft.com/en-us/library/bb968780(v=vs.110).aspx
Game Play Features
TaRapedia
For additional flexibility, and in order to allow the player to test the different classes without leveling from scratch, the game allows the player to clone a character. Cloning a character requires a clone credit.
Cloning a character creates a new character which can be named and customized, just as a new recruit would be. The clone will have the same attribute points (Body, Mind, Spirit, plus any unspent attribute points), class, level and xp as the original character, but will have his/her training points reset.
The clone will begin with no money and no weapons, but with a full set of level 1 Motor Assist Armor (plus any new recruit accessories chosen). Money and items can be transfered to the clone just like any other character via the footlockers. Any missions that have been completed by the original character are considered to have been completed by the clone (and thus cannot be retaken, unless they are normally repeatable). The clone will have no active missions in the mission log though, and thus any progress towards any uncompleted mission will be lost*.
The design intent of clones is to allow a character to clone prior to selecting a class when a new tier is reached (indeed, a clone credit is automatically awarded when a player reaches enough xp to select a new class). This allows a player to experience both branches of a tier.
Additionally, the refunding of training points makes cloning a viable method of rechoosing how you spend those points. Often top-tier characters will get skills that make points spent in lower-tier skills useless. Making a clone is an opportunity to reclaim those points and spend them in developing more useful areas.
A clone may only be created at the character selection menu. The player is provided with a button "Clone" in the tier selection menu for convience, but this simply returns them to the character selection menu so a clone can be created from there. To clone a character, simply select them on the menu and hit the "Clone" button. It will only be available if the selected character has 1 or more clone credits. The number of clone credits the currently selected character has can be seen in the information listed on the left of the screen.
Control Points (CPs) are types of bases, the control of which alternates between the AFS or Bane factions. CPs can be seen on the map window, where they are identified by flag icons reflecting which faction is controlling that particular point: Blue for AFS, red for Bane.
There are two modes of gameplay, depending on which faction is controlling the CP. During either mode, reinforcements are constantly being deployed by each faction's dropships. Taking over a CP requires using the base's central Control Point structure, a tall Eloh obelisk highlighted in the faction's color.
Adding another player to your friends list adds their Global Username. So no matter what character they are on, they will appear on your friends list. In order to add someone to your friends list all you need to do is click your friends list to open it, click Add Friend, and type only your friends last name. You do not use their full name or their first name.
Heath
Level
Body Armor
Power
Adrenaline
Buffs
Debuffs
Get / remove items
Equip / unequip
The Auth server must have an interface that accepts socket connections from the global servers.
They can report their statuses (server id, current player count, max player count and online status (can appear offline for a while if wanted, for example))
The Zone servers connect the same way to the Global server, they register themselves as available servers, and the Global load balances it's zones on the available zone servers.
UI element
Voice chat is a great way to interact with members of your squad. In order to activate voice chat, everyone in your squad who you want to hear you, must go to options, and game and enable voice chat for them to hear it. Once this is done the hot key for the chat is 'v'. Just hit 'v' and chat. (Remember to release 'v' when you are done talking!)
You must walk over a teleporter to active it. Once activated, that character can always teleport back to that base, unless it is a control point under Bane control.
Once you walk over the teleporter, a menu will appear showing where you can currently go within the Zone. These devices will only move you within your current Zone. To move from Zone to Zone, you must walk or use a Dropship as another means of travel.
If available, you may also switch to another "sub-server", so to speak. Some overpopulated Zones will have multiples of itself for the players. For example, you may have the option to teleport to Divide[3] instead of the normal Divide[1].
Note that you can not switch "sub-server" and go directly to a control point. You must enter that "sub-server" and then teleport to your control point destination.
Upon earning a title, you can choose to display it next to your name.
Entity Framework
Store the data in memory, occasionally saving them to the DB
There are three ways to invite to a group: The manual command /invite (Name); right-clicking on a friend you added to your friends list; or by pressing the CTRL button and using the player options on the radial menu when standing next to the person you want to invite to your squad.
Manual Commands for Squads
/squad [message]: Sends message to the squad channel where everyone in the current squad can see it.
/disband: Removes all members from a squad.
/invite [playername]: Invite playername to join your squad.
/kick [playername]: Kick playername out of your squad.
/leave: Leave your current squad. This will also remove you from an instance.
Character Storage in this game is a footlocker which can store any item your character can carry including credits. The footlocker is global, and therefore is common among all your characters on your account. If you place an item in the footlocker on character A, then character B can get it as long as they are on the same account. Even if you delete all your characters your footlocker will still retain its items.
XP from quests/kills
Mind
Body
Spirit
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.