nope all they need to do is.Quote:
Just so you know, you're not supposed to change the server.dat, at ALL.
#newacc user pass state emailQuote:
nope all they need to do is.
Download the client from here:
ftp://216.93.167.128/en_zf/Conquer_v5069.exe
Then install it.
Then download this patch:
[Only registered and activated users can see links. Click Here To Register...]
Then they have to install nullables loader
[Only registered and activated users can see links. Click Here To Register...]
Make sure they change ip and port in it.
Then after they need to make account on MySQL table.
Then after they can login and have fun =]
@edit
Once I get on main pc I will make a fully guide.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arco_Online
{
class EnterTGNPCTC
{
public static void Npc(GameClient Hero, byte OptionID, string Input, NpcRequestPacket Packet)
{
switch (OptionID)
{
case 0:
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Do you want to enter Training Grounds? You will need 1,000 silvers.",
"OPTION1 Yes",
"OPTION-1 Just passing by",
});
break;
}
case 1:
{
if (Hero.Money >= 1000)
{
Hero.Money -= 1000;
Hero.Teleport(1039, 300, 300);
}
else
{
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Sorry, you don't have enough money.",
"OPTION-1 Damn",
});
break;
}
}
break;
}
}
}
}
}
case 10003:
GuildDirector.Npc(Hero, OptionID, Input, Packet);
break;
case 46:
EnterTGNPCTC.Npc(Hero, OptionID, Input, Packet);
break;
INSERT INTO `npc` VALUES (46, 350, 335, 1002, 1056, 2, 0);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arco_Online
{
class JailNPC
{
public static void Npc(GameClient Hero, byte OptionID, string Input, NpcRequestPacket Packet)
{
switch (OptionID)
{
case 0:
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Do you want to visit Jail?",
"OPTION1 Yes",
"OPTION-1 Just passing by",
});
break;
}
case 1:
{
Hero.Teleport(6000, 32, 72);
break;
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arco_Online
{
class PKArenaNPC
{
public static void Npc(GameClient Hero, byte OptionID, string Input, NpcRequestPacket Packet)
{
switch (OptionID)
{
case 0:
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Do you want to enter PK Arena?",
"OPTION1 Yes",
"OPTION-1 Just passing by",
});
break;
}
case 1:
{
Hero.Teleport(1005, 51, 71);
break;
}
}
}
}
}
case 10003:
GuildDirector.Npc(Hero, OptionID, Input, Packet);
break;
case 10021:
PKArenaNPC.Npc(Hero, OptionID, Input, Packet);
break;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arco_Online
{
class GWArenaNPC
{
public static void Npc(GameClient Hero, byte OptionID, string Input, NpcRequestPacket Packet)
{
switch (OptionID)
{
case 0:
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Would you like to go to the Guild Arena?",
"OPTION1 Yes",
"OPTION-1 Just passing by",
});
break;
}
case 1:
{
Hero.Teleport(1038, 350, 350);
break;
}
}
}
}
}
case 10003:
GuildDirector.Npc(Hero, OptionID, Input, Packet);
break;
case 380:
GWArenaNPC.Npc(Hero, OptionID, Input, Packet);
break;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Arco_Online
{
class ProficiencyGod
{
public static void Npc(GameClient Hero, byte OptionID, string Input, NpcRequestPacket Packet)
{
switch (OptionID)
{
case 0:
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Hello. For 20 Exp Balls, I can upgrade your Proficiency to level 20.",
"OPTION1 One Handed Weapons",
"OPTION2 Two Handed Weapons",
"OPTION3 Boxing",
"OPTION-1 Just passing by",
});
break;
}
case 1:
{
if (Hero.CountInventory(723700) >= 20)
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Please choose.",
"OPTION4 Sword",
"OPTION5 Blade",
"OPTION6 Club",
"OPTION7 Axe",
"OPTION8 Hammer",
"OPTION9 Backsword",
"OPTION10 Dagger",
"OPTION11 Next",
});
}
else
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Sorry, you don't have the required items.",
"OPTION-1 Damn",
});
}
break;
}
case 11:
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Please choose.",
"OPTION12 Hook",
"OPTION13 Scepter",
"OPTION14 Mace",
"OPTION1 Back",
});
break;
}
case 2:
{
if (Hero.CountInventory(723700) >= 20)
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Please choose.",
"OPTION16 Bow",
"OPTION17 Wand",
"OPTION18 Glaive",
"OPTION19 Poleaxe",
"OPTION20 Longhammer",
"OPTION21 Spear",
"OPTION21 Halberd",
});
}
else
{
NpcProcessor.Dialog(Hero, new string[] {
"AVATAR 0",
"TEXT Sorry, you don't have the required items.",
"OPTION-1 Damn",
});
}
break;
}
#region Sword
case 4:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 410, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Blade
case 5:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 410, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Club
case 6:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 480, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Axe
case 7:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 450, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Hammer
case 8:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 460, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Backsword
case 9:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 421, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Dagger
case 10:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 490, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Hook
case 12:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 430, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Scepter
case 13:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 481, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Mace
case 14:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 441, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Bow
case 16:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 500, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Wand
case 17:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 561, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Glaive
case 18:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 510, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Poleaxe
case 19:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 530, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Longhammer
case 20:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 540, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Spear
case 21:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 560, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Halberd
case 22:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 580, Level = 20, Experience = 0 });
}
break;
}
#endregion
#region Boxing
case 3:
{
if (Hero.CountInventory(723700) >= 20)
{
for (byte i = 0; i < 20; i++)
Hero.RemoveInventory(Hero.GetItemUID(723700));
}
{
Hero.LearnProf(new ProfPacket(true) { ID = 000, Level = 20, Experience = 0 });
}
break;
}
#endregion
}
}
}
}
case 45:
MarketConductress.Npc(Hero, OptionID, Input);
break;
case 941:
ProficiencyGod.Npc(Hero, OptionID, Input, Packet);
break;
Yeah they are very simple in this source, they work really well as well :)Quote:
lol in this source the npc codes look so simple i might actrully b able 2 learn somethin through this when and if i get my appserver workin oh and btw arco ur a beast
Katana is fail, as there aint ninja :PQuote:
Proficiency God:
Make a new class in the Market folder, name it ProficiencyGod.cs, and paste this in there:
Now search for:Code:using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Arco_Online { class ProficiencyGod { public static void Npc(GameClient Hero, byte OptionID, string Input, NpcRequestPacket Packet) { switch (OptionID) { case 0: { NpcProcessor.Dialog(Hero, new string[] { "AVATAR 0", "TEXT Hello. For 20 Exp Balls, I can upgrade your Proficiency to level 20.", "OPTION1 One Handed Weapons", "OPTION2 Two Handed Weapons", "OPTION3 Boxing", "OPTION-1 Just passing by", }); break; } case 1: { if (Hero.CountInventory(723700) >= 20) { NpcProcessor.Dialog(Hero, new string[] { "AVATAR 0", "TEXT Please choose.", "OPTION4 Sword", "OPTION5 Blade", "OPTION6 Club", "OPTION7 Axe", "OPTION8 Hammer", "OPTION9 Backsword", "OPTION10 Dagger", "OPTION11 Next", }); } else { NpcProcessor.Dialog(Hero, new string[] { "AVATAR 0", "TEXT Sorry, you don't have the required items.", "OPTION-1 Damn", }); } break; } case 11: { NpcProcessor.Dialog(Hero, new string[] { "AVATAR 0", "TEXT Please choose.", "OPTION12 Hook", "OPTION13 Scepter", "OPTION14 Mace", "OPTION15 Katana", "OPTION1 Back", }); break; } case 2: { if (Hero.CountInventory(723700) >= 20) { NpcProcessor.Dialog(Hero, new string[] { "AVATAR 0", "TEXT Please choose.", "OPTION16 Bow", "OPTION17 Wand", "OPTION18 Glaive", "OPTION19 Poleaxe", "OPTION20 Longhammer", "OPTION21 Spear", "OPTION21 Halberd", }); } else { NpcProcessor.Dialog(Hero, new string[] { "AVATAR 0", "TEXT Sorry, you don't have the required items.", "OPTION-1 Damn", }); } break; } #region Sword case 4: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 410, Level = 20, Experience = 0 }); } break; } #endregion #region Blade case 5: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 410, Level = 20, Experience = 0 }); } break; } #endregion #region Club case 6: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 480, Level = 20, Experience = 0 }); } break; } #endregion #region Axe case 7: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 450, Level = 20, Experience = 0 }); } break; } #endregion #region Hammer case 8: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 460, Level = 20, Experience = 0 }); } break; } #endregion #region Backsword case 9: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 421, Level = 20, Experience = 0 }); } break; } #endregion #region Dagger case 10: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 490, Level = 20, Experience = 0 }); } break; } #endregion #region Hook case 12: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 430, Level = 20, Experience = 0 }); } break; } #endregion #region Scepter case 13: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 481, Level = 20, Experience = 0 }); } break; } #endregion #region Mace case 14: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 441, Level = 20, Experience = 0 }); } break; } #endregion #region Katana case 15: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 601, Level = 20, Experience = 0 }); } break; } #endregion #region Bow case 16: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 500, Level = 20, Experience = 0 }); } break; } #endregion #region Wand case 17: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 561, Level = 20, Experience = 0 }); } break; } #endregion #region Glaive case 18: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 510, Level = 20, Experience = 0 }); } break; } #endregion #region Poleaxe case 19: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 530, Level = 20, Experience = 0 }); } break; } #endregion #region Longhammer case 20: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 540, Level = 20, Experience = 0 }); } break; } #endregion #region Spear case 21: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 560, Level = 20, Experience = 0 }); } break; } #endregion #region Halberd case 22: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 580, Level = 20, Experience = 0 }); } break; } #endregion #region Boxing case 3: { if (Hero.CountInventory(723700) >= 20) { for (byte i = 0; i < 20; i++) Hero.RemoveInventory(Hero.GetItemUID(723700)); } { Hero.LearnProf(new ProfPacket(true) { ID = 000, Level = 20, Experience = 0 }); } break; } #endregion } } } }
Under that add:Code:case 45: MarketConductress.Npc(Hero, OptionID, Input); break;
Code:case 941: ProficiencyGod.Npc(Hero, OptionID, Input, Packet); break;
Or release things not fully working or finished, so they can finish it by coding it self. Like 12tails do.Quote:
Yeah they are very simple in this source, they work really well as well :)
From what I know Arco has done alot of work on this, also I dont think people should release stuff for this source as it was intended for people to work on themselves and learn from.
@Arco not downloaded this yet but I will look at it when I get home tonight.