|
You last visited: Today at 04:01
Advertisement
[Development] C# sources
Discussion on [Development] C# sources within the EO PServer Hosting forum part of the Eudemons Online category.
11/13/2010, 14:02
|
#136
|
elite*gold: 0
Join Date: May 2009
Posts: 1,175
Received Thanks: 540
|
Awesome job  You will go down in history im 100% sure.
|
|
|
11/13/2010, 16:37
|
#137
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
Quote:
Originally Posted by hio77
yea im looking to add things like that once its stable
strange that it wont work though... im running it on win 7 x64 atm with no issues at all - the first release of it even lol... the official microsoft one
i wouldn't try downloading it while capped iver lol just gotta find the exploits in your isp :P
currently the action code is in C# itself but would be very easy to move to mysql
Code:
case 104839: // BoxerLi PC- TG teleporter
{
if (LinkBack == 0)
{
Text("Hello I can help you train after you reach level 20,\n But I will charge you 1,000 gold.\n Would you like to go to the Training Grounds?", CSocket);
Link("Yes Please, Here is the money", 1, CSocket);
Link("No Thank you I cannot afford it.", 255, CSocket);
End(CSocket);
}
else if (LinkBack == 1)
{
if (CSocket.Client.Money >= 1000)
{
Teleport(1039, 219, 215, 0, CSocket);
Money(-1000, CSocket);
}
else
{
Text("How dare you try to rip me off! Get lost, Or get my money!", CSocket);
Link("I'm sorry, I didn't realize.", 255, CSocket);
End(CSocket);
}
}
break;
}
|
You're running Visual Studio 6.0 Professional on your Windows 7 Ultimate 64bit?
Trying to install it wouldn't work for me
|
|
|
11/13/2010, 21:35
|
#138
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
You're running Visual Studio 6.0 Professional on your Windows 7 Ultimate 64bit?
Trying to install it wouldn't work for me 
|
idk lol it worked for me
anyway just an update for everyone i thought ild have a look at pking while i had breakfast and attacking and stuff is already working pretty well (few bugs in it but we can sort that over time)
|
|
|
12/01/2010, 02:35
|
#139
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
update: i have now got items working and part of eudemon spawning as well (composing will come later)
@funhacker msn aint working atm so ill just post it here ... i finally worked out what was wrong with the item packets ... you can spawn 40 items in less than 1ms so the tick timer doesn't count up thus giving them the same timer... when the client gets the ticktimer and sees it is the same it disregards the old packet which was creating the 1 item bug ..
now if anyone would like to help me i will be looking at composing calucations soon so first off does anyone know the calculations used to work out star marks? and if not maybe i could have a few suggestions
i was thinking i might include a "Donated Stars" value to the starmark calculations that way if someone donates for stars in a donation server where you may donate for stars then it would be added there. this way donator pets wont have big reborn counts and they wont have messed stats...
|
|
|
12/01/2010, 05:02
|
#140
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
Quote:
Originally Posted by hio77
update: i have now got items working and part of eudemon spawning as well (composing will come later)
@funhacker msn aint working atm so ill just post it here ... i finally worked out what was wrong with the item packets ... you can spawn 40 items in less than 1ms so the tick timer doesn't count up thus giving them the same timer... when the client gets the ticktimer and sees it is the same it disregards the old packet which was creating the 1 item bug ..
now if anyone would like to help me i will be looking at composing calucations soon so first off does anyone know the calculations used to work out star marks? and if not maybe i could have a few suggestions
i was thinking i might include a "Donated Stars" value to the starmark calculations that way if someone donates for stars in a donation server where you may donate for stars then it would be added there. this way donator pets wont have big reborn counts and they wont have messed stats...
|
I gathered as much constantly signing in and out.
I was working on that a long time ago it seems to have an arc increase. Some kind of co-sin affect with an x factor of some kind. The closer it gets to the end the more it increases the closer it gets to the bottom the more it decreases
|
|
|
12/01/2010, 09:10
|
#141
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
I gathered as much constantly signing in and out.
I was working on that a long time ago it seems to have an arc increase. Some kind of co-sin affect with an x factor of some kind. The closer it gets to the end the more it increases the closer it gets to the bottom the more it decreases
|
yea its not even letting me login now lol ... oh well.. i decided that ima start mapping my packets out in a more easy to read state so i now have excel documents of packets that i know are right along with a detailed packet listing and then thats all going into my folder of stuff for this source
i think ima set up a proper site soon to put packet enums, layouts etc on so anyone can use them, weather its for proxys, packet intercepting bots or even another server source
im also thinking about iver finding somewhere to host this or when my connection is stable ill host it so people can take a look around at whats possible already
packets seem easy at first but wow they can drive you crazy ffs lol
also about the timer and the item... it doesn't matter lol! somehow i got the item UID and timer around the wrong way -.- i always thought it was strange that the timer was after the UID in that packet
when i was coding up dropping items i worked that out :P
now my next issue is picking up items it seems eo has a way of a "smart UID" for dropped items
say a item drops at 284,486 well then the id is those two numbers put together so i think ima have to code up something crafty to help that or find something that i have missed
|
|
|
12/01/2010, 09:27
|
#142
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
Quote:
Originally Posted by hio77
yea its not even letting me login now lol ... oh well.. i decided that ima start mapping my packets out in a more easy to read state so i now have excel documents of packets that i know are right along with a detailed packet listing and then thats all going into my folder of stuff for this source
i think ima set up a proper site soon to put packet enums, layouts etc on so anyone can use them, weather its for proxys, packet intercepting bots or even another server source
im also thinking about iver finding somewhere to host this or when my connection is stable ill host it so people can take a look around at whats possible already
packets seem easy at first but wow they can drive you crazy ffs lol
also about the timer and the item... it doesn't matter lol! somehow i got the item UID and timer around the wrong way -.- i always thought it was strange that the timer was after the UID in that packet
when i was coding up dropping items i worked that out :P
now my next issue is picking up items it seems eo has a way of a "smart UID" for dropped items
say a item drops at 284,486 well then the id is those two numbers put together so i think ima have to code up something crafty to help that or find something that i have missed 
|
Surely it has MapID mixed in there somewhere.
I may be able to work out a place for this.
|
|
|
12/01/2010, 10:06
|
#143
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
Surely it has MapID mixed in there somewhere.
I may be able to work out a place for this.
|
there is a place for it however there is no data in that place ... for some reason Chinese servers work with a lot of zero bytes... lazy coding i assume ...
|
|
|
12/01/2010, 10:33
|
#144
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
Quote:
Originally Posted by hio77
there is a place for it however there is no data in that place ... for some reason Chinese servers work with a lot of zero bytes... lazy coding i assume ...
|
Was saying there has to be a MapID in the packet somewhere. Because if there isn't there could be 2 items with the same id on the ground
Map1000 100,100
Map2000 100,100
As for "I may be able to work out a place for this." was referring to a website location/storage ??
|
|
|
12/01/2010, 10:56
|
#145
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
Was saying there has to be a MapID in the packet somewhere. Because if there isn't there could be 2 items with the same id on the ground
Map1000 100,100
Map2000 100,100
As for "I may be able to work out a place for this." was referring to a website location/storage ??
|
well drop packets are sent being that your in view of the drop so there is no map id as such
i guess what i could do is do some sort of calucation like
if pickup x == drop x && pickup y == drop y && dropmap == csocket.client.mapid
the drop handler already checks to make sure that items dont stack ontop of each-other so its a possibility
ah i thought you were talking the packet lol
i can host the site on my webserver i was more talking about the server ... powerchaos did offer something awhile back so maybe ill talk to him and see what exactly he is offering
at the moment usages get to a max of 50mb memory including mysql so its not much im looking at atm ... thats counting anything that goes into pagefiles as well
-.- this is driving me mad lol iv gotta look at my routers stats and check it has managed to connect send it and hope it dont d/c before it sends... i think most of tomorrow will be arguing with my isp that their "collecting information" and changing my profile aint doing **** to fix my connection lol
|
|
|
12/01/2010, 11:17
|
#146
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
Would be cleaner code with a structure?
Code:
struct INSERTNAME
{
public int Xpos;
public int Ypos;
public int MapID;
};
if (pickup == drop)
{.....}
I had the same prob with my ISP I just given up now.
Ours auto selects two DNS servers a primary and secondary. From time to time the primary for some reason will shut us out and not let us connect any longer than 5 seconds, but it wont bother attempting for the second. So reboot and repeat same happens again and again. Reported to telstra and all they have to say is have you tried rebooting your modem etc etc like I'm an idiot. Eventually I snapped and went off at them and they said we will put you through to our technical problems center, they said we will look at the connections in the area and report back to you in 2 - 4weeks... 8months later still no reply and still the same problem -.-
|
|
|
12/01/2010, 11:26
|
#147
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by funhacker
Would be cleaner code with a structure?
Code:
struct INSERTNAME
{
public int Xpos;
public int Ypos;
public int MapID;
};
if (pickup == drop)
{.....}
I had the same prob with my ISP I just given up now.
Ours auto selects two DNS servers a primary and secondary. From time to time the primary for some reason will shut us out and not let us connect any longer than 5 seconds, but it wont bother attempting for the second. So reboot and repeat same happens again and again. Reported to telstra and all they have to say is have you tried rebooting your modem etc etc like I'm an idiot. Eventually I snapped and went off at them and they said we will put you through to our technical problems center, they said we will look at the connections in the area and report back to you in 2 - 4weeks... 8months later still no reply and still the same problem -.-
|
ah yea that could work
yea well we used to have a connection that would need a port reset every time it d/ced and would only sync at 64kbs/64kbs lol ... i skip their monkeys at helpdesk and go straight for their higher up people lol
all you ever do with a monkey is argue what they are saying and then they put you on hold for 5 mins and prented they are talking to their supervisor LOL!
im not sure if they moved it back now but a few months ago my isp movied their CSR center to Egypt lol
|
|
|
12/08/2010, 13:49
|
#148
|
elite*gold: 20
Join Date: Sep 2007
Posts: 1,767
Received Thanks: 1,746
|
Curious if your connection has been fixed yet?
I have been working on an cq_action Class with children classes for specific types.
Here is a snippet so far:
Action.cs
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Action_Creator_V0._1.Action_Engine
{
public class Action
{
#region Variables and Properties
//Declare Variables (Global to any Action)
int id; //ID of current Action Code
int id_next; //ID of the next Action Code (If current Action Code returns true)
int id_nextfail; //ID of the next Action Code (If current Action Code returns false)
int type; //The type of Action that the Action Code is
int data; //The data to be used when executing the Action Code
string param; //The parameters to be used for the Action Code
bool valid = true; //Used to determine if the Action Code is valid or invalid
Action action_true; //The action information of the next Action if the code returns true
Action action_false; //The action information of the next Action if the code returns false
/// <summary>
/// Get the ID of the ActionCode.
/// </summary>
public int ID
{
get { return id; }
//Allows privately setting the value of the ID
private set { id = value; }
}
/// <summary>
/// Get the ID of the next ActionCode if the ActionCode is sucessful.
/// </summary>
public int ID_Next
{
get { return id_next; }
//Allows privately setting the value of the ID_Next
private set { id_next = value; }
}
/// <summary>
/// Get the ID of the next ActionCode if the ActionCode is un-sucessful.
/// </summary>
public int ID_NextFail
{
get { return id_nextfail; }
//Allows privately setting the value of the ID_NextFail
private set { id_nextfail = value; }
}
/// <summary>
/// Get the Type of the ActionCode.
/// </summary>
public int Type
{
get { return type; }
//Allows privately setting the value of the Type
private set { type = value; }
}
/// <summary>
/// Get the Data of the ActionCode.
/// </summary>
public int Data
{
get { return data; }
//Allows privately setting the value of the Data
private set { data = value; }
}
/// <summary>
/// Get the Parameters of the ActionCode.
/// </summary>
public string Parameters
{
get { return param; }
//Allows privately setting the value of the Parameters
private set { param = value; }
}
/// <summary>
/// Get boolean if the Action Code is valid or not.
/// </summary>
public bool IsValid
{
get { return valid; }
//Allows privately setting the value of IsValid
private set { valid = value; }
}
#endregion
#region Constructors
/// <summary>
/// Initialises the Action Class Object.
/// </summary>
/// <param name="id">ID of the Action Code.</param>
/// <param name="id_next">ID_Next of the Action Code.</param>
/// <param name="id_nextfail">ID_Next of the Action Code.</param>
/// <param name="type">Type of the Action Code.</param>
/// <param name="data">Data of the Action Code.</param>
/// <param name="param">Parameters of the Action Code.</param>
public Action(int id, int id_next, int id_nextfail, int type, int data, string param)
{
//Setup the ActionCode's Properties
try { ID = id; } catch { Error(1); }
try { ID_Next = id_next; } catch { Error(2); }
try { ID_NextFail = id_nextfail; } catch { Error(3); }
try { Type = type; } catch { Error(4); }
try { Data = data; } catch { Error(5); }
try { Parameters = param; } catch { Error(6); }
}
/// <summary>
/// Initialises the Action Class Object.
/// </summary>
/// <param name="action_code">Action Information.</param>
public Action(Action action_code)
{
//Setup the ActionCode's Properties
ID = action_code.ID;
ID_Next = action_code.ID_Next;
ID_NextFail = action_code.ID_NextFail;
Type = action_code.Type;
Data = action_code.Data;
Parameters = action_code.Parameters;
}
#endregion
#region Methods
#region Error Display Method
/// <summary>
/// Displays an error according to what calls the method.
/// </summary>
/// <param name="type">Error Type.</param>
public void Error(int type)
{
//Set IsValid to false as there is an error with the
//Action Code
IsValid = false;
switch (type)
{
case 1:
//Display Error Message for Action (Thus the AE) for type 001
MessageBox.Show("ERROR(AE001)\r\nInvalid Action ID!","ERROR(AE001)",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
break;
case 2:
//Display Error Message for Action (Thus the AE) for type 002
MessageBox.Show("ERROR(AE002)\r\nInvalid Action ID_Next!","ERROR(AE002)",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
break;
case 3:
//Display Error Message for Action (Thus the AE) for type 003
MessageBox.Show("ERROR(AE003)\r\nInvalid Action ID_NextFail!","ERROR(AE003)",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
break;
case 4:
//Display Error Message for Action (Thus the AE) for type 004
MessageBox.Show("ERROR(AE004)\r\nInvalid Action Type!","ERROR(AE004)",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
break;
case 5:
//Display Error Message for Action (Thus the AE) for type 005
MessageBox.Show("ERROR(AE005)\r\nInvalid Action Data!","ERROR(AE005)",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
break;
case 6:
//Display Error Message for Action (Thus the AE) for type 006
MessageBox.Show("ERROR(AE006)\r\nInvalid Action Parameters!","ERROR(AE006)",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
break;
//System ERROR Messages
//MenuText ERROR Messages (Type 102)
case 1020:
//Display Error Message for Action (Thus the AE) for type 1020
MessageBox.Show("ERROR(AE1020)\r\nInvalid MenuLink Parameters! Requires atleast 1 space!", "ERROR(AE1020)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
case 1021:
//Display Error Message for Action (Thus the AE) for type 1021
MessageBox.Show("ERROR(AE1021)\r\nInvalid MenuLink Parameters! Requires atleast 1 character for both Text and TaskID!", "ERROR(AE1021)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
case 1022:
//Display Error Message for Action (Thus the AE) for type 1022
MessageBox.Show("ERROR(AE1022)\r\nInvalid MenuLink Parameters! Invalid TaskID!", "ERROR(AE1022)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
//MenuPic ERROR Messages (Type 104)
case 1040:
//Display Error Message for Action (Thus the AE) for type 1040
MessageBox.Show("ERROR(AE1040)\r\nInvalid MenuPic Parameters! Requires atleast 2 spaces!", "ERROR(AE1040)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
case 1041:
//Display Error Message for Action (Thus the AE) for type 1041
MessageBox.Show("ERROR(AE1041)\r\nInvalid MenuPic Parameters! Requires no more than 3 spaces!", "ERROR(AE1041)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
case 1042:
//Display Error Message for Action (Thus the AE) for type 1042
MessageBox.Show("ERROR(AE1042)\r\nInvalid MenuPic Parameters! Invalid value for X!", "ERROR(AE1042)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
case 1043:
//Display Error Message for Action (Thus the AE) for type 1043
MessageBox.Show("ERROR(AE1043)\r\nInvalid MenuPic Parameters! Invalid value for Y!", "ERROR(AE1043)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
case 1044:
//Display Error Message for Action (Thus the AE) for type 1044
MessageBox.Show("ERROR(AE1044)\r\nInvalid MenuPic Parameters! Invalid value for PictureID!", "ERROR(AE1044)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
case 1045:
//Display Error Message for Action (Thus the AE) for type 1045
MessageBox.Show("ERROR(AE1045)\r\nInvalid MenuPic Parameters! Invalid value for TaskID!", "ERROR(AE1045)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
//MenuCreate ERROR Messages (Type 120)
case 1200:
//Display Error Message for Action (Thus the AE) for type 1200
MessageBox.Show("ERROR(AE1200)\r\nInvalid MenuCreate Parameters! Invalid value for TaskID!", "ERROR(AE1200)", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
break;
default:
//Display Unknown Error Message for Action (Thus the AE)
MessageBox.Show("ERROR(Unkown)\r\nAn unknown error has occured!", "ERROR(Unknown)", MessageBoxButtons.OK, MessageBoxIcon.Warning);
break;
}
}
#endregion
#endregion
}
}
MenuText.cs (Type 101)
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Action_Creator_V0._1.Action_Engine.Types.System
{
public class MenuText:Action
{
#region Variables and Properties
//Declare Variables (Only valid for this Type of Action Code)
string text; //The text to be displayed by the menu
/// <summary>
/// Get the Text of the MenuText Action Code.
/// </summary>
public string Text
{
get { return text; }
//Allows privately setting the value of the Text
private set { text = value; }
}
#endregion
#region Constructors
/// <summary>
/// Initialises the MenuText class object.
/// </summary>
/// <param name="action_code">Action Code information.</param>
public MenuText(Action action_code):base(action_code)
{
//Setup the MenuText's Properties
try { Text = action_code.Parameters; }
catch { Error(6); }
}
#endregion
#region Methods
#endregion
}
}
MenuLink.cs (Type 102)
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Action_Creator_V0._1.Action_Engine.Types.System
{
public class MenuLink:Action
{
#region Variables and Properties
//Declare Variables (Only valid for this Type of Action Code)
string text; //The text displayed as the menu link
int task_id; //The cq_task ID used to link to
/// <summary>
/// Get the Text of the MenuLink Action Code.
/// </summary>
public string Text
{
get { return text; }
//Allows privately setting the value of the Text
private set { text = value; }
}
/// <summary>
/// Get the TaskID of the MenuLink Action Code.
/// </summary>
public int TaskID
{
get { return task_id; }
//Allows privately setting the value of the TaskID
private set { task_id = value; }
}
#endregion
#region Constructors
/// <summary>
/// Initialises the MenuLink class object.
/// </summary>
/// <param name="action_code">Action Code information.</param>
public MenuLink(Action action_code): base(action_code)
{
//Declare variables required for processing.
string _param; //Store the parameters of the action code
string _task_id; //Store the link_id in a string form
//Get the parameters from the actionCode parsed
_param = action_code.Parameters;
//Check if there is atleast 1 space character within the parameters
if (_param.Contains(" ") == false)
//Return an error and exit constructor
{ Error(1020); return; }
//Get the link_id area of the param string
_task_id = _param.Substring(_param.IndexOf(" ") + 1);
//Remove the link_id area from the param string
_param = _param.Substring(0, _param.IndexOf(" "));
//Make sure both link_id and param contain atleast 1 character
if (_task_id.Length < 1 || _param.Length < 1)
{ Error(1021); return; }
//Finally check if the link_id is a valid number
try { Convert.ToInt32(_task_id); }
catch { Error(1022); return; }
//Set the MenuLink's Properties
Text = _param;
TaskID = Convert.ToInt32(_task_id);
}
#endregion
#region Methods
#endregion
}
}
MenuPic.cs (Type 104)
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Action_Creator_V0._1.Action_Engine.Types.System
{
public class MenuPic:Action
{
#region Variables and Properties
//Declare Variables (Only Valid for this Type of Action Code)
int x; //The X position of the MenuPic
int y; //The Y position of the MenuPic
int pic_id; //The ID of the MenuPic
int task_id; //Optional: The TaskID when the MenuPic is clicked
/// <summary>
/// Get the MenuPic's X position.
/// </summary>
public int X
{
get { return x; }
//Allows privately setting the value of the MenuPic's X
private set { x = value; }
}
/// <summary>
/// Get the MenuPic's Y position.
/// </summary>
public int Y
{
get { return y; }
//Allows privately setting the value of the MenuPic's Y
private set { y = value; }
}
/// <summary>
/// Get the ID of the MenuPic's Picture.
/// </summary>
public int PictureID
{
get { return pic_id; }
//Allows privately setting the value of the MenuPic's PictureID
private set { pic_id = value; }
}
/// <summary>
/// Get the Optional TaskID of the MenuPic. 0 By default.
/// </summary>
public int TaskID
{
get { return task_id; }
//Allows privately setting the value of the MenuPic's TaskID
private set { task_id = value; }
}
#endregion
#region Constructors
/// <summary>
/// Initialises the MenuPic class object.
/// </summary>
/// <param name="action_code">Action Code information.</param>
public MenuPic(Action action_code): base(action_code)
{
//Declare Variables required for processing
string _param; //Store the parameters of the action code
string _x; //Store the x in a string form
string _y; //Store the y in a string form
string _pic_id; //Store the pic_id in a string form
string _task_id; //Store the task_id in a string form
int space_count=0; //Counter used to count amount of spaces in param
//Get the parameters from the action code parsed
_param = action_code.Parameters;
//Check if there is atleast 2 spaces within the parameters
if (_param.IndexOf(" ") == _param.LastIndexOf(" "))
//Return an error and exit the constructor
{ Error(1040); return; }
//Count the amount of spaces within the param
for (int charIndex = _param.IndexOf(" "); charIndex < _param.LastIndexOf(" ")+1; charIndex++)
{
//If the current character is a space
//Add one to the space counter
if (_param[charIndex] == Convert.ToChar(" "))
{ space_count++; }
}
//If there is more than 3 spaces return an error and exit
if (space_count > 3)
{ Error(1041); return; }
//If there is 3 spaces then get the task_id
if (space_count == 3)
{
_task_id = _param.Substring(_param.IndexOf(" ") + 1);
//Remove the task_id from the param string
_param = _param.Substring(0, _param.IndexOf(" "));
}
else { _task_id = "0"; }
//Get the pic_id from the param string
_pic_id = _param.Substring(_param.IndexOf(" ") + 1);
//Remove the pic_id from the param string
_param = _param.Substring(0, _param.IndexOf(" "));
//Get the y value from the param string
_y = _param.Substring(_param.IndexOf(" ") + 1);
//Remove the y value from the param string
_param = _param.Substring(0, _param.IndexOf(" "));
//Get the x value from the param string
_x = _param;
//Validate all the values obtained
try { Convert.ToInt32(_x); }
catch { Error(1042); return; }
try { Convert.ToInt32(_y); }
catch { Error(1043); return; }
try { Convert.ToInt32(_pic_id); }
catch { Error(1044); return; }
try { Convert.ToInt32(_param); }
catch { Error(1045); return; }
//All values are valid begin setting properties
X = Convert.ToInt32(_x);
Y = Convert.ToInt32(_y);
PictureID = Convert.ToInt32(_pic_id);
TaskID = Convert.ToInt32(_task_id);
}
#endregion
#region Methods
#endregion
}
}
MenuCreate.cs (Type 120)
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Action_Creator_V0._1.Action_Engine.Types.System
{
public class MenuCreate:Action
{
#region Variables and Properties
//Declare Variables (Only Valid for this Type of Action Code)
int task_id; //Optional: The TaskID when the Menu is forcebly closed.
/// <summary>
/// Get the Optional TaskID of the MenuCreate. 0 by default.
/// </summary>
public int TaskID
{
get { return task_id; }
//Allows privately settingt the value of the MenuCreate's TaskID
private set { task_id = value; }
}
#endregion
#region Constructors
/// <summary>
/// Initialises the MenuCreate class object.
/// </summary>
/// <param name="action_code">Action Code information.</param>
public MenuCreate(Action action_code): base(action_code)
{
//Declare variables required for processing
string _param; //Store the parameters of the action code
string _task_id; //Store the task_id in a string form
//Get the parameters from the action code parsed
_param = action_code.Parameters;
//Check if there is atleast 1 character in the parameters
if (_param.Length > 0)
{ _task_id = _param; }
else { _task_id = "0"; }
//Validate the task_id value
try { Convert.ToInt32(_task_id); }
catch { Error(1200); return; }
//All values are valid begin setting properties
TaskID = Convert.ToInt32(_task_id);
}
#endregion
#region Methods
#endregion
}
}
|
|
|
03/19/2011, 21:09
|
#149
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
hey all, I'm back
I have now started working on this source again, cleaning it up and working on it.
so far all the features I originally listed as working are working (a lot of them will be tweaked as they look really badly coded atm)
but let me know if I never ended up posting that list, though I am gonna have a good look through this thread and check in a min
my plan for the next few days of progress: - Warehouses fully functional
- Item interactivity working (wielding, wielding bonuses, response items - by this i mean things such as mp/hp pots actually running their actions)
- Item forging (level upgrade, bonus upgrade, quality upgrade etc)
- Mob/eudemon spawning(not sure which will come first atm though)
- Composing (will be very basic for starting)
- Experience
i'm also planning out getting a updated working binary or even a hosted copy of the server so people can have a look.
if anyone would like to help me feel free to contact me but there are a few simple things i could do with help on...
if anyone has the values of stats division for each level for each class or even partial it help me a lot to have a copy
also if anyone knows of the starmark calculation then that could help as well, i think starmarks will be very different by the end of my project to TQ binary's but I'm also planning to make it a little easier to customize.
edit:
looking over the last pictures i posted the char indicator wasn't even showing so heres a updated screenshot
in this screenshot sp looks to not be working but it is disabled to lower the number of packets on the console output while i'm testing things
-hio77
@funhacker those are looking really nice  hows things going on it now?
|
|
|
03/20/2011, 01:54
|
#150
|
elite*gold: 0
Join Date: Oct 2007
Posts: 698
Received Thanks: 857
|
thats mad  keep us updated.
|
|
|
 |
|
Similar Threads
|
help with sources
03/11/2010 - CO2 Private Server - 2 Replies
im tryin to use the NewestCO 5165 server source which probably wouldnt be bad if i could get the NewestCoServer.exe to load everytime i tried to start it up it opens up and then closes with no errors or anything i followed the guide for getting it running and it still didnt work. So, my question is, Does anyone know of a way to keep the NewestCoServer.exe from closing down all the time or maybe someone knows of a decent 5165 source that i can DL? Any help is greatly appreciated
|
Looking For TQ Bin Sources
09/12/2009 - CO2 Private Server - 4 Replies
hey all :handsdown:
Who have the Latest Bin ?
Who have Bin Source website ?
link of Bin >> Fixed Bin
OR who Have it just Mailing me at Signature !
Any Mod. Please Give aperiod to me may i get what i Need !
4botters TEAM !
|
For using sources?
04/18/2009 - CO2 Private Server - 3 Replies
whats the best source to use as a beginner p-server maker
and whats the best source to use as a pro
|
BWH-Sources
06/11/2006 - General Coding - 9 Replies
Hi,
weiß jemand wo ich den BWH Source herbekommen kann?
Würd mich mal intressieren wie der genau arbeitet,meine Trainer
beschränken sich nämlich aufs Offset Patchen,von Offset auslesen etc. kann
nicht die Rede sein,die sind immer fest eincompiliert :/
Naja in Google hab ich jedenfalls nichts finden können...bis auf erschreckend viele Pornoseiten :?
Danke im voraus,
Xalon
|
All times are GMT +1. The time now is 04:03.
|
|