[Development] Burning Skies: Profaned Sanctuary

07/01/2012 17:47 tkblackbelt#106
Quote:
Originally Posted by S U P E R B A D View Post
Which is why you try oh so hard to act like someone you're not on here.

-edit-
Just had to throw this in there.. i seen your siggy "I HAVE ABSOLUTELY NO INTEREST IN HELPING ANYONE. My private messaging is off because I don't care about your spam requests.". Didn't you apply for moderator once before?
It's perfectibly reasonable that he turned his PM's off. The amount of morons on here that want to make the best pserver, bot, etc without putting any effort in on their part and just spam people/forum asking to have everything done for them is overwelming.

I can't even count the number of times someone has PM'd me asking how to do something when there's is a thread on the exact topic with the solution that I was able to find in 5 mins. People need to start putting some effort in on their part and not expect to code a pserver or even modify a pre-made on after a week of learning C#.
07/25/2012 19:00 Spirited#107
Hey everyone,

The screen system is done. Using concurrent dictionaries, I created a simple system for managing entities within the client's screen distance. To keep things simple, the client performing the movement or action (the performer) controls the addition (introduction) of both entities to each others' screens. The client observing the action (the observer) allows the performer to control his / her screen for the introduction. Once an introduced performer moves out of the observer's screen distance, he / she will invoke the remove method, once again taking control of the observer's screen to remove him/herself from it. The performer will always manage what the observer sees. Instead of using a packet to remove screen entities, I allow the client to remove of them naturally (which it does at distances >18).

[Only registered and activated users can see links. Click Here To Register...]

With character creation, movements, the chat system, and such near completion, Burning Skies is approaching the pre-alpha testing period. More news coming soon.

Cheers,
Spirited Fang
07/25/2012 19:09 ProperCodes#108
Well done Fang.. never thought you would still be doing the whole Conquer thing. Thought you have moved on, nice work give you mad props for as far as you have come. Been a while since we've talked send me a message sometime.
-Random hated friend.
07/26/2012 04:26 Spirited#109
Quote:
Originally Posted by ProperCodes View Post
Well done Fang.. never thought you would still be doing the whole Conquer thing. Thought you have moved on, nice work give you mad props for as far as you have come. Been a while since we've talked send me a message sometime.
-Random hated friend.
Yep. I'm still at it. I don't give up easily, especially when I see a lot of potential in something. It sparks my interest. And uhm... hated friend? No offense, but if someone hates a person, that person isn't their friend (in general).
08/05/2012 20:15 Spirited#110
Hey everyone, I'm back to update you all on my development.

The week ago, I had a weird issue with my source. From previous problems, I learned that sending an invalid packet to NetDragon's Conquer Online client will do nothing (if the packet body is incorrect) or disconnect it (if the packet header is incorrect). The problem I experienced a week ago, however, disconnected the client on random valid packets. This led me to conclude that I was sending corrupted packets to the client at random times. Upon further investigation, I found that my send method wasn't thread-safe because the cipher algorithm in use by the client and server wasn't thread-safe. By adding a queue, I was able to create a worker for sending packets to the client in sequence. I had to set it up in this manor because the algorithm encrypts data in sequence using a counter. With a thread-safe worker working on sending packets correctly, I was able to focus my attention back to what I was working on: NPC (Non-Playable Character) spawns. NPCs now spawn in the world and using an Iron Python scripting engine I imported from a previous project I wrote, I was able to quickly make them talk. I'm very thankful that I wrote the engine for universal use. It takes 120 to 240 milliseconds to initialize (similar to NetDragon's MySQL method which I reproduced for research), but once initialized, it only takes between 1 and 2 milliseconds to read a script. That allows me to have efficient, dynamic NPC dialogs that I can code during runtime. Here's a picture.

[Only registered and activated users can see links. Click Here To Register...]
EDIT: Btw, the NPC dialog here was fixed of my small grammar mistake.

A few days ago, I started working on items. First, I started with the item information packet. By sending the packet, I was able to successfully show the item in the client. Next, I worked on the statistics behind items (the item types and plus information). I created a table in the database and imported the types from the client's itemtype.dat file. It took me a while to ensure that I knew what each field represented. After creating the database handler for item types, I combined the packet with an item type and plus information entry in a wrapper class. The class handles saving of the item upon change (similar to my character class) and handles statistics about the item's base type. Sending the item to the client is easy after that. Upon change, the packet is changed as well, making for a clean and accurate send (because the packet is already constructed). Then, I worked on the character's inventory. The inventory class manages item creation (inserting it into the database). It also manages deleting items and updating them as variables change. With the inventory complete, I worked on loading the items upon login. Now, the character has a working inventory.

[Only registered and activated users can see links. Click Here To Register...]

Next, I'll be working on shops (so the character can buy items). I've been playing around a little with my NPCs as well. I really hate the way TQ has clumped them together in random locations. I'll be changing that as I develop.

That's it for now.
Cheers,
Spirited Fang
08/06/2012 04:09 _Emme_#111
If you need, I'm up to help. I won't be touching the packet handling part, as I don't even have the CO client and I'm not really the most updated person around here, but general stuff. Hit me up, I've got some free time!
08/06/2012 06:27 Spirited#112
Quote:
Originally Posted by EmmeTheCoder View Post
If you need, I'm up to help. I won't be touching the packet handling part, as I don't even have the CO client and I'm not really the most updated person around here, but general stuff. Hit me up, I've got some free time!
Sounds great. I'm actually not having any problems with the C# programming part of it. If anything, I need help with researching into conquer enums and formulas. I can do it, but it'd save me a lot of time if someone already had the research done.
08/06/2012 13:58 _Emme_#113
Quote:
Originally Posted by Fаng View Post
Sounds great. I'm actually not having any problems with the C# programming part of it. If anything, I need help with researching into conquer enums and formulas. I can do it, but it'd save me a lot of time if someone already had the research done.
That's the part I can't do, as I'm very outdated and can't grab a client either. Well, hit me up if you need help / faster building the system itself.
08/06/2012 19:12 Spirited#114
Quote:
Originally Posted by EmmeTheCoder View Post
That's the part I can't do, as I'm very outdated and can't grab a client either. Well, hit me up if you need help / faster building the system itself.
Ahh. I think we're on the same boat. The thing is, I can't allow others on the project. That's why I called it Ippiki-Ookami. It's being used to strengthen my status as a transfer student, and it can only be my work. Thanks for the offer though. If you ever want to help with research, just let me know.
08/08/2012 06:05 .Kinshi#115
Quote:
Originally Posted by Fаng View Post
Ahh. I think we're on the same boat. The thing is, I can't allow others on the project. That's why I called it Ippiki-Ookami. It's being used to strengthen my status as a transfer student, and it can only be my work. Thanks for the offer though. If you ever want to help with research, just let me know.
I have quite a few packet structures and such if you ever need.
08/08/2012 09:44 Spirited#116
Quote:
Originally Posted by .Kinshi View Post
I have quite a few packet structures and such if you ever need.
That sounds great. If you can get TQ to return an item to you, that would be GREAT. I really want to log that packet. Otherwise, I've got a good start. Packets aren't being too much of a challenge to code. It's all coming along. :]
08/19/2012 07:21 Spirited#117
Hey everyone. It was a bit tricky and I had to do quite a lot of packet logging and work, but equipment is done. You can now equip items to the player (and they show to everyone). Same with removing equipment from the player. I also learned something new about item types and how they contain the equipment types. I've made a lot of small fixes to the server. It all looks nice and clean. :] I also got appearances working (so you can change the order of how your equipment appears on your character). Here's a picture:

[Only registered and activated users can see links. Click Here To Register...]

I added a few fixes to equipment swapping. It turns out that with full inventories, you need to send a special packet (which I'm doing now) to exchange equipment. I also added new commands for character status testing, an item action scripting engine (similar to my npc scripting engine), and a minor fix for previous login times. The character's first equipment set is done! Wheww!

Here's an example of one of my item action scripts:
Code:
# Define Variables: 
map = 1000;
x = 497;
y = 650;

# Item Action Script:
def item(client, item):
	if (client.Map.Identity == map and client.Character.X == x and client.Character.Y == y):
		return 0;
	else:
		client.Character.Teleport(map, x, y);
		client.Inventory.DeleteFromStack(item);
	return 0;
Cheers to development,
Spirited Fang
08/25/2012 02:01 Spirited#118
Hey everyone.

I hit an unfortunate road block. I want to continue programming in C# and all, but this isn't going to work with my education anymore. Companies and universities like seeing that I have knowledge in networking and such, but I need to be learning C++. They all use C++ for networking. The Burning Skies Project will continue but very, very slowly in C++. As I've stated before, my education comes first. Sorry for the disappointment.

- "Spirited Fang"
08/25/2012 12:22 I don't have a username#119
Instead doing the remove item in your usage script you could just have it do it automatically everytime you're using an item or have a variable as a boolean that decides if the item should be removed after usage.

Work smarter, not harder :)
08/27/2012 08:12 Arco.#120
I have loads of faith in this project.