How to setup your own Server with old UCCO Project

07/31/2006 14:26 Hybris#1
First of all, you need to get Visual Studio 2005 or Visual C# Express (which is free - [Only registered and activated users can see links. Click Here To Register...]), PostgreSQL 8.1, PgAdminIII and the [Only registered and activated users can see links. Click Here To Register...] (credits for t3hn00bz0r), by the way, here is a .exe file for those who dont have WinRar but try to get WinRar cose this Package is hard to use ^^ ([Only registered and activated users can see links. Click Here To Register...]).
You'll need Windows SP2 for most of the softwares, [Only registered and activated users can see links. Click Here To Register...].

Then, once you installed all these softwares and extracted the Server, create these folders :
Code:
C:\COFullDB
C:\COFullDB\Main
C:\COFullDB\Main\AuthTables
C:\COFullDB\Main\CharacterData
C:\COFullDB\Main\Indexes
C:\COFullDB\Main\OtherData
Then once you created these folders, right click on COFullDB and Share it with full access.

Now the real part of the guide :

1.Open the server's Folder, and open BackEndDB.css, go at line 200 (CTRL + G) and input your IP Adress there.

2.Compile the server with Visual Studio 2005 or with Visual C# (if you use Visual C# you need to replace XYThreadPool.dll by the one in XYThreadPool folder).

[Only registered and activated users can see links. Click Here To Register...]
(credits to SpanKyn for this picture)

3.Install PostgreSQL pgAdmin III. Create a server. The username and password must be the same as the one in your installation or you won't be able to connect.
[Only registered and activated users can see links. Click Here To Register...]

4.In pgAdmin create a new Database called Conquer.

5.Do a SQL Query for setting up Tablespaces [Only registered and activated users can see links. Click Here To Register...](Updated).

6.Add a Server to your Server Tablespace by right clicking on it and selecting View Data and then Fill out ServerName and Ip Address( your ip ). Add an account by doing the same but jus going to Account and view data. Then just full out the Username but not password. When you login it will set that password you logged in with and to be gm Change FLAG to 8.

7.Launch your server (if you compiled it, it should be in the DEBUG folder in the CO Full Server's Folder).

8.Then go into your Server.dat file in Conquer 2.0's folder and add your server.

FAQ:
How Do I add Monsters or Non-Playable Characters (NPCS)?
If you want to make monsters and NPCs you'll have to make em yourself and find a technical issue to add em.

When I try to compile my source it asks me for my password. What Do I do now?
Go in your server Properties and disable Signing.

Are there any command already added and how do i make my own ?
All the commands are detailed in World.cs (in the CO Full Server's project) you can add your own and make em here. By the way, there are already some.

[color=red]When I try to run query there is error:
Quote:
ERROR:* could not set permissions on directory "C:/COFullDB/Main/OtherData": Permission denied
I unsigned in Right Mouse Button on COFullDB -> (Only for reading), and in Sharing, i checked "Share this folder in network"

What I have to do ?;<</span>
You have to make a full access to this folder : and add THE USER DESIGNED FOR YOUR POSTGRE SQL.

I downloaded the last version of the client but i cant connect on my server.
This server only works on version of the client before Patch 4312 (i'll post a version as soon as possible -when i'll find a FTP server-)

What does mean "Do a SQL Query" ?
To make a SQL Query, once you have created your Conquer Database in pgAdminIII, select your Conquer Database and click on the button named {Execute Arbitrary SQL queries} then in this window copy the text which is in the link above and press {Execute Query}.

When i enter the password it asks it again...why ?
If the password keep being asked even if true thats cose the server cant access to the database or the database isnt launched. Make sure you have launched and setted your database before logging on the Server.

I cant open your .rar file cose i dont have WinRar what can i do ?
You can try to get WinRar, and if you cant find it use my Package i made. But its gonna be hard to use so try to find WinRar ^^ ([Only registered and activated users can see links. Click Here To Register...] and [Only registered and activated users can see links. Click Here To Register...])

I'll add there all the command i made, dont forget to post here all your questions.

Credits to :
SpankYn, t3hn00bz0r and aidas2004 (who worked with me and helped me a lot).

Last Update : 01/09/2006
07/31/2006 14:37 Hybris#2
Here are some commands (i'll add more later) :
LAST UPDATE (12/08/2006)

World.cs Scroll Command :

Code:
else if &#40;Splitter&#91;0&#93; == &#34;/scroll&#34;&#41; 
{ 
if &#40;Splitter&#91;1&#93; == &#34;TC&#34;&#41; 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
ArrayList&#91;,&#93; Target; 
byte&#91;&#93; SpawnData = PacketBuilder.SpawnEntity&#40;Char&#41;; 
Target = TCLocHash; 
int x = 438; int y = 377; 
Char.CurrentLoc = new Location&#40;x, y&#41;; 
Char.Map = World.Maps.TwinCity; 
Target&#91;x, y&#93;.Add&#40;Client&#41;; 
World.SpawnCharacter&#40;Client&#41;; 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;TELEPORT&#34;, Client.Char.Name, &#34;Teleported to&#58; &#34; + Client.Char.Map, ChatType.Talk&#41;&#41;; 
} 
else if &#40;Splitter&#91;1&#93; == &#34;PC&#34;&#41; 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
ArrayList&#91;,&#93; Target; 
byte&#91;&#93; SpawnData = PacketBuilder.SpawnEntity&#40;Char&#41;; 
Target = MFLocHash; 
int x = 232; int y = 260; 
Char.CurrentLoc = new Location&#40;x, y&#41;; 
Char.Map = World.Maps.MapleForest; 
Target&#91;x, y&#93;.Add&#40;Client&#41;; 
World.SpawnCharacter&#40;Client&#41;; 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;TELEPORT&#34;, Client.Char.Name, &#34;Teleported to&#58; &#34; + Client.Char.Map, ChatType.Talk&#41;&#41;; 
} 
else 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, Client.Char.Name, &#34;Usage &#58; /scroll TheCity&#34;, ChatType.Talk&#41;&#41;; 
} 
}
World.cs Life Command :

Code:
else if &#40;Splitter&#91;0&#93; == &#34;/Life&#34; || Splitter&#91;0&#93; == &#34;/life&#34;&#41; 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
int Life = Char.MaxHP; 
Char.HP = Life; 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;LIFE SYSTEM&#34;, Client.Char.Name, &#34;Life Restored!&#34;, ChatType.Talk&#41;&#41;; 
}
World.cs Mana Command (need to add Mana in Character.cs before, like Life) :

Code:
else if &#40;Splitter&#91;0&#93; == &#34;/Mana&#34; || Splitter&#91;0&#93; == &#34;/mana&#34;&#41; 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
int Mana = Char.MaxMP; 
Char.MP = Mana; 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;MANA SYSTEM&#34;, Client.Char.Name, &#34;Mana Restored!&#34;, ChatType.Talk&#41;&#41;; 
}
World.cs Stats Modifier (i know its a hard way i made em but its mine :P [btw my mind is strange, dont try to understand me ^^]) :

Code:
else if &#40;Splitter&#91;0&#93; == &#34;/Stats&#34; || Splitter&#91;0&#93; == &#34;/stats&#34;&#41; 
{ 
if &#40;Splitter&#91;1&#93; == &#34;str&#34;&#41; 
{ 
if &#40;Splitter&#91;2&#93;.Length > 4 || Splitter&#91;2&#93;.Length &#60; 4&#41; 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Usage &#58; /Stats str/dex/man/vit xxxx&#34;, ChatType.Talk&#41;&#41;; 
} 
else 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
int Strength = &#40;&#40;Message&#91;11&#93; - 48&#41; * 1000&#41; + &#40;&#40;Message&#91;12&#93; - 48&#41; * 100&#41; + &#40;&#40;Message&#91;13&#93; - 48&#41; * 10&#41; + &#40;Message&#91;14&#93; - 48&#41;; 
Char.Strength = Strength; 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Strength Changed&#34;, ChatType.Talk&#41;&#41;; 
} 
} 
else if &#40;Splitter&#91;1&#93; == &#34;dex&#34;&#41; 
{ 
if &#40;Splitter&#91;2&#93;.Length > 4 || Splitter&#91;2&#93;.Length &#60; 4&#41; 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Usage &#58; /Stats str/dex/man/vit xxxx&#34;, ChatType.Talk&#41;&#41;; 
} 
else 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
int Dexterity = &#40;&#40;Message&#91;11&#93; - 48&#41; * 1000&#41; + &#40;&#40;Message&#91;12&#93; - 48&#41; * 100&#41; + &#40;&#40;Message&#91;13&#93; - 48&#41; * 10&#41; + &#40;Message&#91;14&#93; - 48&#41;; 
Char.Dexterity = Dexterity; 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Dexterity Changed&#34;, ChatType.Talk&#41;&#41;; 
} 
} 
else if &#40;Splitter&#91;1&#93; == &#34;vit&#34;&#41; 
{ 
if &#40;Splitter&#91;2&#93;.Length > 4 || Splitter&#91;2&#93;.Length &#60; 4&#41; 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Usage &#58; /Stats str/dex/man/vit xxxx&#34;, ChatType.Talk&#41;&#41;; 
} 
else 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
int Vitality = &#40;&#40;Message&#91;11&#93; - 48&#41; * 1000&#41; + &#40;&#40;Message&#91;12&#93; - 48&#41; * 100&#41; + &#40;&#40;Message&#91;13&#93; - 48&#41; * 10&#41; + &#40;Message&#91;14&#93; - 48&#41;; 
Char.Vitality = Vitality; 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Vitality Changed&#34;, ChatType.Talk&#41;&#41;; 
} 
} 
else if &#40;Splitter&#91;1&#93; == &#34;man&#34;&#41; 
{ 
if &#40;Splitter&#91;2&#93;.Length > 4 || Splitter&#91;2&#93;.Length &#60; 4&#41; 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Usage &#58; /Stats str/dex/man/vit xxxx&#34;, ChatType.Talk&#41;&#41;; 
} 
else 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
int Mana = &#40;&#40;Message&#91;11&#93; - 48&#41; * 1000&#41; + &#40;&#40;Message&#91;12&#93; - 48&#41; * 100&#41; + &#40;&#40;Message&#91;13&#93; - 48&#41; * 10&#41; + &#40;Message&#91;14&#93; - 48&#41;; 
Char.Mana = Mana; 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Mana Changed&#34;, ChatType.Talk&#41;&#41;; 
} 
} 
else if &#40;Splitter&#91;1&#93;.Length > 3 || Splitter&#91;1&#93;.Length &#60; 3&#41; 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Usage &#58; /Stats str/dex/man/vit xxxx&#34;, ChatType.Talk&#41;&#41;; 
} 
else 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Stats Modifier&#34;, Client.Char.Name, &#34;Usage &#58; /Stats str/dex/man/vit xxxx&#34;, ChatType.Talk&#41;&#41;; 
} 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
}
World.cs ASCII Identifier (you can write /what? xyz and you'll have ASCII codes for x, y and z, can be useful) :

Code:
else if &#40;Splitter&#91;0&#93; == &#34;/What?&#34; || Splitter&#91;0&#93; == &#34;/what?&#34;&#41; 
{ 
int x1 = Message&#91;7&#93;; 
int x2 = Message&#91;8&#93;; 
int x3 = Message&#91;9&#93;; 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, Client.Char.Name, &#34;These chars are &#58; &#34; + x1 + x2 + x3, ChatType.Talk&#41;&#41;; 
}
World.cs Teleport Command (in the same map always) :

Code:
else if &#40;Splitter&#91;0&#93; == &#34;/mm&#34;&#41; 
{ 
if &#40;Splitter.Length == 3&#41; 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
ArrayList&#91;,&#93; Target; 
byte&#91;&#93; SpawnData = PacketBuilder.SpawnEntity&#40;Char&#41;; 
Target = TCLocHash; 
int x1 = Message&#91;4&#93; - 48; 
int x2 = Message&#91;5&#93; - 48; 
int x3 = Message&#91;6&#93; - 48; 
int y1 = Message&#91;8&#93; - 48; 
int y2 = Message&#91;9&#93; - 48; 
int y3 = Message&#91;10&#93; - 48; 
int x = x1 * 100 + x2 * 10 + x3; int y = y1 * 100 + y2 * 10 + y3; 
Char.CurrentLoc = new Location&#40;x, y&#41;; 
Target&#91;x, y&#93;.Add&#40;Client&#41;; 
World.SpawnCharacter&#40;Client&#41;; 
} 
else 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, Client.Char.Name, &#34;Usage &#58; /mm xxx yyy&#34;, ChatType.Talk&#41;&#41;; 
} 
}
World.cs Level Modifier Command :

Code:
else if &#40;Splitter&#91;0&#93; == &#34;/level&#34; || Splitter&#91;0&#93; == &#34;/Level&#34;&#41; 
{ 
if &#40;Splitter.Length == 2&#41; 
{ 
if &#40;Splitter&#91;1&#93;.Length == 3&#41; 
{ 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
Character Char = Client.Char; 
int L1 = Message&#91;7&#93; - 48; 
int L2 = Message&#91;8&#93; - 48; 
int L3 = Message&#91;9&#93; - 48; 
int L4 = L1 * 100 + L2 * 10 + L3; 
Char.Level = L4; 
Client.SendData&#40;PacketBuilder.CharacterInfo&#40;Client.Char&#41;&#41;; 
} 
else 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, Client.Char.Name, &#34;Usage &#58; /level xxx&#34;, ChatType.Talk&#41;&#41;; 
} 
} 
else 
{ 
Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, Client.Char.Name, &#34;Usage &#58; /level xxx&#34;, ChatType.Talk&#41;&#41;; 
} 
}
I just finished a working good /give Command, you can add any items everywhere you want. You just need to add a
Code:
public static int UID = 0;
at the beginning of "Public Class World".
Here is the World.cs Command :
Code:
else if &#40;Splitter&#91;0&#93; == &#34;/give&#34; || Splitter&#91;0&#93; == &#34;/Give&#34;&#41;
  {
   if &#40;Splitter&#91;1&#93; == &#34;0&#34; || Splitter&#91;1&#93; == &#34;1&#34;&#41;
   {
   int Item_Location = 0;
   int Item_Inventory = 0;
   int Item_Type = 0;
   int Item_Color = 0;
   int Item_Level = 0;
   int Item_Quality = 0;
   int Item_Compose = 0;
   int Item_UID = 0;
   int Item_ID = 0;
   int LeftHand = 0;
   if &#40;UID &#60; 1&#41;
   {
    UID = 0;
   }
   UID++;
   if &#40;Splitter&#91;2&#93; == &#34;Other&#34; || Splitter&#91;2&#93; == &#34;other&#34;&#41;
    Item_Location = 70;
   else if &#40;Splitter&#91;2&#93; == &#34;HeadWear&#34; || Splitter&#91;2&#93; == &#34;headwear&#34;&#41;
    Item_Location = 11;
   else if &#40;Splitter&#91;2&#93; == &#34;Necklace&#34; || Splitter&#91;2&#93; == &#34;necklace&#34;&#41;
    Item_Location = 12;
   else if &#40;Splitter&#91;2&#93; == &#34;Armor&#34; || Splitter&#91;2&#93; == &#34;armor&#34;&#41;
    Item_Location = 13;
   else if &#40;Splitter&#91;2&#93; == &#34;RightHand&#34; || Splitter&#91;2&#93; == &#34;righthand&#34;&#41;
    Item_Location = 41;
   else if &#40;Splitter&#91;2&#93; == &#34;LeftHand&#34; || Splitter&#91;2&#93; == &#34;lefthand&#34;&#41;
   {
    Item_Location = 41;
    LeftHand = 1;
   }
   else if &#40;Splitter&#91;2&#93; == &#34;Ring&#34; || Splitter&#91;2&#93; == &#34;ring&#34;&#41;
    Item_Location = 15;
   else if &#40;Splitter&#91;2&#93; == &#34;Boots&#34; || Splitter&#91;2&#93; == &#34;boots&#34;&#41;
    Item_Location = 16;
   Item_Inventory = Convert.ToInt32&#40;Splitter&#91;1&#93;&#41;;
   Item_Type = &#40;Convert.ToInt32&#40;Splitter&#91;3&#93;&#41; - 1&#41; * 1000;
   if &#40;Splitter&#91;4&#93; != &#34;0&#34;&#41;
   {
    if &#40;Item_Location == 13 || Item_Location == 11&#41;
    if &#40;Item_Type == 7000 && Item_Location == 11&#41;
     Item_Color = 3 * 100;
    else
     Item_Color = &#40;Convert.ToInt32&#40;Splitter&#91;4&#93;&#41; + 2&#41; * 100;
    else
    Item_Color = 0;
   }
   else
    Item_Color = 0;
   Item_Level = &#40;Convert.ToInt32&#40;Splitter&#91;5&#93;&#41; - 1&#41; * 10;
   Item_Quality = Convert.ToInt32&#40;Splitter&#91;6&#93;&#41; + 2;
   Item_Compose = Convert.ToInt32&#40;Splitter&#91;7&#93;&#41;;
   Item_UID = Convert.ToInt32&#40;UID&#41;;
   Item_ID = &#40;Item_Location * 10000&#41; + Item_Type + Item_Color + Item_Level + Item_Quality;
   Client.SendData&#40;PacketBuilder.GiveItem&#40;Item_Inventory, Item_Location, Item_ID, Item_Compose, Item_UID, LeftHand&#41;&#41;;
   Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, Client.Char.Name, &#34;The Item &#34; + Item_ID + &#34; was given.&#34;, ChatType.Top&#41;&#41;;
   }
   else if &#40;Splitter&#91;1&#93; == &#34;/Location&#34; || Splitter&#91;1&#93; == &#34;/location&#34;&#41;
   Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;Other HeadWear Necklace Armor RightHand LeftHand Ring Boots&#34;, ChatType.Talk&#41;&#41;;
   else if &#40;Splitter&#91;1&#93; == &#34;/Inventory&#34; || Splitter&#91;1&#93; == &#34;/inventory&#34;&#41;
   Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;1 For Equipped/0 For Unequipped&#34;, ChatType.Talk&#41;&#41;;
   else if &#40;Splitter&#91;1&#93; == &#34;/Type&#34; || Splitter&#91;1&#93; == &#34;/type&#34;&#41;
   {
   if &#40;Splitter&#91;2&#93; == &#34;/Weapons&#34; || Splitter&#91;2&#93; == &#34;/weapons&#34;&#41;
    Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;1Blade 11Sword 12BackSword 21Hook 31Whip 41Axe 51Hammer 71Club 72Scepter 81Dagger 91Bow 101Glaive 121Poleaxe 131LongHammer 151Spear 152Wand 171Halbert &#34;, ChatType.Talk&#41;&#41;;
   else if &#40;Splitter&#91;2&#93; == &#34;/?&#34;&#41;
    Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;/Give /Type /Weapons - Gives Info for Weapons&#34;, ChatType.Talk&#41;&#41;;
   else
    Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;/Give SYSTEM&#34;, &#34;ALL&#34;, &#34;Nothing to say&#34;, ChatType.Talk&#41;&#41;;
   }
   else if &#40;Splitter&#91;1&#93; == &#34;/Color&#34; || Splitter&#91;1&#93; == &#34;/color&#34;&#41;
   Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;From 1 to 7 for Hats, Caps, Helmets and Armors of all Kind&#34;, ChatType.Talk&#41;&#41;;
   else if &#40;Splitter&#91;1&#93; == &#34;/?&#34;&#41;
   {
   Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;/Give Inventory Location Type Color Level Quality Compose&#34;, ChatType.Talk&#41;&#41;;
   Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;/give /? |More&#34;, ChatType.Talk&#41;&#41;;
   if &#40;Splitter&#91;2&#93; == &#34;|More&#34; || Splitter&#91;2&#93; == &#34;|more&#34;&#41;
   {
    Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;Smone&#34;, &#34;ALL&#34;, &#34;/Give /Inventory - Gives Definition of Inventory Bool&#34;, ChatType.Talk&#41;&#41;;
    Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;/Give /Location - Gives Kind of Locations&#34;, ChatType.Talk&#41;&#41;;
    Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;/Give /Type - Gives kind of Types&#34;, ChatType.Talk&#41;&#41;;
    Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;/Give /Color - Gives info about Colors&#34;, ChatType.Talk&#41;&#41;;
    Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;SYSTEM&#34;, &#34;ALL&#34;, &#34;/Give /Level - Gives info about Levels&#34;, ChatType.Talk&#41;&#41;;
   }
   }
   else
   Client.SendData&#40;PacketBuilder.Message&#40;Client.MessageID, &#34;/Give SYSTEM&#34;, &#34;ALL&#34;, &#34;Nothing to say&#34;, ChatType.Talk&#41;&#41;;
  }
And here is the PacketBuilder.cs Packet :
Code:
public static byte&#91;&#93; GiveItem&#40;int Inventory, int Location, int ID, int Compose, int UID, int LeftHand&#41;
 {
 byte&#91;&#93; PacketData = new byte&#91;0x18&#93;;
 PacketData&#91;0&#93; = 0x18;
 PacketData&#91;1&#93; = 0x00;
 PacketData&#91;2&#93; = 0xf0;
 PacketData&#91;3&#93; = 0x03;
 PacketData&#91;4&#93; = &#40;byte&#41; &#40;UID & 0xff&#41;;//UID
 PacketData&#91;5&#93; = &#40;byte&#41;&#40;&#40;UID >> 8&#41; & 0xff&#41;; // '
 PacketData&#91;6&#93; = &#40;byte&#41;&#40;&#40;UID >> 16&#41; & 0xff&#41;; // '
 PacketData&#91;7&#93; = &#40;byte&#41;&#40;&#40;UID >> 24&#41; & 0xff&#41;; // '
 PacketData&#91;8&#93; = &#40;byte&#41;&#40;ID & 0xff&#41;; //Item ID
 PacketData&#91;9&#93; = &#40;byte&#41;&#40;&#40;ID >> 8&#41; & 0xff&#41;; //  '
 PacketData&#91;0x0a&#93; = &#40;byte&#41;&#40;&#40;ID >> 16&#41; & 0xff&#41;; // '
 PacketData&#91;0x0b&#93; = &#40;byte&#41;&#40;&#40;ID >> 24&#41; & 0xff&#41;; // '
 if &#40;Location >= 70&#41;
 {
  PacketData&#91;0x0c&#93; = 0x00; // NULL
  PacketData&#91;0x0d&#93; = 0x00; // DURABILITY
  PacketData&#91;0x0e&#93; = 0x00; // FOR
  PacketData&#91;0x0f&#93; = 0x00; // COMMON ITEMS
 }
 else
 {
  PacketData&#91;0x0c&#93; = 0x88; // Current Durability
  PacketData&#91;0x0d&#93; = 0x13; //   '
  PacketData&#91;0x0e&#93; = 0x88; // Max Durability
  PacketData&#91;0x0f&#93; = 0x13; //   '
 }
 PacketData&#91;0x10&#93; = 0x01; //01
 PacketData&#91;0x11&#93; = 0x00; //00
 if &#40;Inventory != 0&#41;
 {
  if &#40;Location >= 70&#41;
  PacketData&#91;0x12&#93; = 0x00;//INVENTORY
  else if &#40;Location >= 41&#41;
  {
  if &#40;LeftHand == 0&#41;
   PacketData&#91;0x12&#93; = 0x04;//RIGHT HAND
  else if &#40;LeftHand == 1&#41;
   PacketData&#91;0x12&#93; = 0x05;//LEFT HAND
  }
  else if &#40;Location == 16&#41;
  PacketData&#91;0x12&#93; = 0x08;//BOOTS
  else if &#40;Location == 15&#41;
  PacketData&#91;0x12&#93; = 0x06;//RING
  else if &#40;Location == 13&#41;
  PacketData&#91;0x12&#93; = 0x03;//ARMOR
  else if &#40;Location == 12&#41;
  PacketData&#91;0x12&#93; = 0x02;//NECKLACE
  else
  PacketData&#91;0x12&#93; = 0x01;
 }
 else
 {
  PacketData&#91;0x12&#93; = 0x00;
 }
 PacketData&#91;0x13&#93; = 0x00; //Gem 1
 PacketData&#91;0x14&#93; = 0x00; //Gem 2
 PacketData&#91;0x15&#93; = 0x00;
 PacketData&#91;0x16&#93; = 0x00;
 PacketData&#91;0x17&#93; = &#40;byte&#41;&#40;Compose & 0xff&#41;; //Composition
 return PacketData;
 }
It stills needs some Ameliorations but its kinda good atm. You can add any items with that everywhere you want, even in your inventory (btw took me an entire Night to programm it and find all bugs, so +1 karma if u use it would be nice at least)

Here is my World.cs Skill Command (you can add all skills in one but many skills arent really existing ^^) :
Code:
else if &#40;Splitter&#91;0&#93; == &#34;/skill&#34; || Splitter&#91;0&#93; == &#34;Skill&#34;&#41;
  	{
   if &#40;Splitter&#91;1&#93; == &#34;all&#34; || Splitter&#91;1&#93; == &#34;ALL&#34;&#41;
   {
   	for &#40;int boucle = 0; boucle &#60;= 5000; boucle++&#41;
   	{
    Client.SendData&#40;PacketBuilder.Skill&#40;boucle, 0, 0&#41;&#41;;
   	}
   }
   int Skill_ID = Convert.ToInt32&#40;Splitter&#91;1&#93;&#41;;
   int Skill_Exp = Convert.ToInt32&#40;Splitter&#91;2&#93;&#41;;
   int Skill_Level = Convert.ToInt32&#40;Splitter&#91;3&#93;&#41;;
   Client.SendData&#40;PacketBuilder.Skill&#40;Skill_ID, Skill_Exp, Skill_Level&#41;&#41;;
  	}
And here is the PacketBuilder.cs Packet used on that command :
Code:
public static byte &#91;&#93; Skill&#40;int Skill_ID, int Skill_Exp, int Skill_Level&#41;
 {
 	byte &#91;&#93; PacketData = new byte&#91;0x0c&#93;;
 	PacketData&#91;0&#93; = 0x0c;
 	PacketData&#91;1&#93; = 0x00;
 	PacketData&#91;2&#93; = 0x4f;
 	PacketData&#91;3&#93; = 0x04;
 	PacketData&#91;4&#93; = &#40;byte&#41;&#40;Skill_Exp & 0xff&#41;;
 	PacketData&#91;5&#93; = &#40;byte&#41;&#40;&#40;Skill_Exp >> 8&#41; & 0xff&#41;;
 	PacketData&#91;6&#93; = &#40;byte&#41;&#40;&#40;Skill_Exp >> 16&#41; & 0xff&#41;;
 	PacketData&#91;7&#93; = &#40;byte&#41;&#40;&#40;Skill_Exp >> 24&#41; & 0xff&#41;;
 	PacketData&#91;8&#93; = &#40;byte&#41;&#40;Skill_ID & 0xff&#41;;
 	PacketData&#91;9&#93; = &#40;byte&#41;&#40;&#40;Skill_ID >> 8&#41; & 0xff&#41;;
 	PacketData&#91;0x0a&#93; = &#40;byte&#41;&#40;Skill_Level & 0xff&#41;;
 	PacketData&#91;0x0b&#93; = &#40;byte&#41;&#40;&#40;Skill_Level >> 8&#41; & 0xff&#41;;
 	return PacketData;
 }
Enjoy it, and use wisely the "/skill all" command (dont forget to modify it ;))[COLOR=red][COLOR=red]
07/31/2006 22:48 Spike21#3
Could you make compilate version for localhost ?
Visual need SP2... and i don't have it ! lol

PS : your link to postgre sql don't work
08/01/2006 03:31 PearlRaven#4
a lot would need to be edited to work anything like the real thing, but its a good start. At least you took the time to share your progress. Nice work!
08/01/2006 13:14 lessuX#5
I am very happy if u can but here how can put npc:s and items so i can saw them :P :) I will + k u :=)
08/01/2006 13:14 Hybris#6
Quote:
Originally posted by Spike21@Jul 31 2006, 22:48
Could you make compilate version for localhost ?
Visual need SP2... and i don't have it ! lol

PS : your link to postgre sql don't work
Spike21 > I understand that for test purpose you'd like a compilated version...but what is the point to do that ? You couldnt even make a progress in your project. Let me try to find a link for SP2 cose now you'll really need that if you wanna do anything, it'll be better than not workig at all :P (i'll edit my post when i'll find it)

EDIT : [Only registered and activated users can see links. Click Here To Register...], you can download it on the bottom right part of this page.

I'll try to find another link for postgre sql.

2nd EDIT : I changed the link for postgre sql, dunno if everything is there but i think there is. Remember you need a server pgSQL and pgAdmin to modify your server. Here is the link

PearlRaven > Thx
08/01/2006 13:18 Hybris#7
Quote:
Originally posted by lessuX@Aug 1 2006, 13:14
I am very happy if u can but here how can put npc:s and items so i can saw them :P :) I will + k u :=)
I added a little command and a kind of Packet for items. You just have to modify and insert it as you want it to do what you want. By the way, in the source code there is a command for adding NPCs, i'm still working on it but if you can find some IDs you'll be able to add em (its in PacketBuilder.cs).
08/01/2006 21:37 Spike21#8
Quote:
Originally posted by Hybris+Aug 1 2006, 13:14--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (Hybris @ Aug 1 2006, 13:14)</td></tr><tr><td id='QUOTE'> <!--QuoteBegin--Spike21@Jul 31 2006, 22:48
Could you make compilate version for localhost ?
Visual need SP2... and i don't have it ! lol

PS : your link to postgre sql don't work
Spike21 > I understand that for test purpose you'd like a compilated version...but what is the point to do that ? You couldnt even make a progress in your project. Let me try to find a link for SP2 cose now you'll really need that if you wanna do anything, it'll be better than not workig at all :P (i'll edit my post when i'll find it)

EDIT : [Only registered and activated users can see links. Click Here To Register...], you can download it on the bottom right part of this page.

I'll try to find another link for postgre sql.

2nd EDIT : I changed the link for postgre sql, dunno if everything is there but i think there is. Remember you need a server pgSQL and pgAdmin to modify your server. Here is the link

PearlRaven > Thx [/b][/quote]
I can't install SP2... It said that i don't have a good key... :uglylol:
08/01/2006 23:19 Hybris#9
Quote:
Originally posted by Spike21+Aug 1 2006, 21:37--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (Spike21 @ Aug 1 2006, 21:37)</td></tr><tr><td id='QUOTE'>
Quote:
Originally posted by -Hybris@Aug 1 2006, 13:14
<!--QuoteBegin--Spike21
Quote:
@Jul 31 2006, 22:48
Could you make compilate version for localhost ?
Visual need SP2... and i don't have it ! lol

PS : your link to postgre sql don't work

Spike21 > I understand that for test purpose you'd like a compilated version...but what is the point to do that ? You couldnt even make a progress in your project. Let me try to find a link for SP2 cose now you'll really need that if you wanna do anything, it'll be better than not workig at all :P (i'll edit my post when i'll find it)

EDIT : [Only registered and activated users can see links. Click Here To Register...], you can download it on the bottom right part of this page.

I'll try to find another link for postgre sql.

2nd EDIT : I changed the link for postgre sql, dunno if everything is there but i think there is. Remember you need a server pgSQL and pgAdmin to modify your server. Here is the link

PearlRaven > Thx
I can't install SP2... It said that i don't have a good key... :uglylol: [/b][/quote]
There are some KeyGenerators for XP, i cant tell you where to find one but it should be easy to find. But maybe you'll have to reinstall your computer (someone correct me if im wrong cose im not sure about that).
08/01/2006 23:47 Mitsuri#10
Quote:

You have to make a full access to this folder : and add THE USER DESIGNED FOR YOUR POSTGRE SQL.
Can u tell me ... how?!
08/01/2006 23:51 Hybris#11
Quote:
Originally posted by Mitsuri@Aug 1 2006, 23:47
Quote:

You have to make a full access to this folder : and add THE USER DESIGNED FOR YOUR POSTGRE SQL.
Can u tell me ... how?!
When you right click and set the propreties for Sharing. There you can give a full access. Then in advances part you can see what EACH user can do or not on this Folder. Here you can add a new user named (for example and most of case : postgres) and give him full access.
08/02/2006 23:26 PearlRaven#12
Quote:
Originally posted by Hybris+Aug 1 2006, 23:19--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (Hybris @ Aug 1 2006, 23:19)</td></tr><tr><td id='QUOTE'>
Quote:
Originally posted by -Spike21@Aug 1 2006, 21:37
Quote:
Originally posted by -Hybris@Aug 1 2006, 13:14
<!--QuoteBegin--Spike21
Quote:
Quote:
@Jul 31 2006, 22:48
Could you make compilate version for localhost ?
Visual need SP2... and i don't have it ! lol

PS : your link to postgre sql don't work

Spike21 > I understand that for test purpose you'd like a compilated version...but what is the point to do that ? You couldnt even make a progress in your project. Let me try to find a link for SP2 cose now you'll really need that if you wanna do anything, it'll be better than not workig at all :P (i'll edit my post when i'll find it)

EDIT : [Only registered and activated users can see links. Click Here To Register...], you can download it on the bottom right part of this page.

I'll try to find another link for postgre sql.

2nd EDIT : I changed the link for postgre sql, dunno if everything is there but i think there is. Remember you need a server pgSQL and pgAdmin to modify your server. Here is the link

PearlRaven > Thx

I can't install SP2... It said that i don't have a good key... :uglylol:
There are some KeyGenerators for XP, i cant tell you where to find one but it should be easy to find. But maybe you'll have to reinstall your computer (someone correct me if im wrong cose im not sure about that). [/b][/quote]
you can change keys without reinstalling, but it as easy/hard(depends on where you look) as getting the keys/keygens themselves
08/11/2006 17:29 keving#13
I have created a Character on my Server i will login again now the Screen is black for ever What can i do.

Can SOmebody help me?
08/11/2006 19:15 Hybris#14
Quote:
Originally posted by keving@Aug 11 2006, 17:29
I have created a Character on my Server i will login again now the Screen is black for ever What can i do.

Can SOmebody help me?
You added your IP in BackEndDB.css at line 200 ?
By the way, is there any message in the center of the screen ?
08/11/2006 19:28 modar#15
ok i dnt have any questions but i thin kthat this should definantly be pinned because its the best helping thread ive seen since ive been here good job, it really helps out the people who do not no much about this stuff ..... like me but im gonna start learning Visual C# just because of this :)


Edit: sry i do have a question

"5.Do a SQL Query for setting up Tablespaces Here is the Query."
----- what does this mean because i click the link and it takes me to the elitepvprs home page ?