Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Private Server > CO2 PServer Advertising > CO2 PServer Archive
You last visited: Today at 15:47

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Project-Throwback Revival. Classic Based CO server

Discussion on Project-Throwback Revival. Classic Based CO server within the CO2 PServer Archive forum part of the CO2 PServer Advertising category.

Closed Thread
 
Old 06/01/2013, 04:15   #61
 
elite*gold: 21
Join Date: Jul 2005
Posts: 9,193
Received Thanks: 5,380
Quote:
Originally Posted by _DreadNought_ View Post
API*

Also, I bet you ultimation's tournamentAPI whoops all of yours.

Also pro4never, did you ever notice AcidCOV3 implemented man vs machine? (The idea you were on about where you literally fight bots. )
I've done a number of duelist bots in both private and public sources.

Tournament bots that have more AI than basic fighting are a bit more advance but have been done by multiple people. I know someone (sorry cannot think of forum username) had complete AI bots that you could hire to do just about anything you can think of; hunt players, participate in full pvp events/guild war and more.
pro4never is offline  
Old 06/01/2013, 04:49   #62
 
InfamousNoone's Avatar
 
elite*gold: 20
Join Date: Jan 2008
Posts: 2,012
Received Thanks: 2,885
Making the bots isn't hard, making them seem "realistic" but not retarded is hard.
InfamousNoone is offline  
Old 06/01/2013, 09:10   #63
 
_DreadNought_'s Avatar
 
elite*gold: 28
Join Date: Jun 2010
Posts: 2,225
Received Thanks: 868
Quote:
Originally Posted by pro4never View Post
I've done a number of duelist bots in both private and public sources.

Tournament bots that have more AI than basic fighting are a bit more advance but have been done by multiple people. I know someone (sorry cannot think of forum username) had complete AI bots that you could hire to do just about anything you can think of; hunt players, participate in full pvp events/guild war and more.
After all the stuff you said about how cool it would be in previous posts I expected to get a "OMGWTFBBQ" response.

Guess not.

_DreadNought_ is offline  
Old 06/01/2013, 09:52   #64
 
elite*gold: 0
Join Date: Feb 2007
Posts: 32
Received Thanks: 7
Server was pretty chill back then just a **** head owner.
Server is chill now with a better head owner.

As for the ddos claims and such, i haven't seen once my shiit laggin out and resources being used elsewhere.

All these false claims with no proof, don't just argue with what Skipunk did with his **** just because the name is "PTB-Revival" yall just being ignorant as ****...
And like 12k said this server doesn't have a ******* client yet. so how can we get infected with such "Client"...

Accusing of stuff that doesnt even exist in current PTB-Revival server.
get your shiit str8 haters.
Battousai-sama is offline  
Old 06/01/2013, 11:26   #65
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 950
Quote:
Originally Posted by _DreadNought_ View Post
API*

Also, I bet you ultimation's tournamentAPI whoops all of yours.

Also pro4never, did you ever notice AcidCOV3 implemented man vs machine? (The idea you were on about where you literally fight bots. )
I already have the 2nd lmao (I assume you just meant duelbots). Will also be including it in the tournaments, where bots joins tournaments if there isn't enough players aye.

And yeah sorry for forgetting the P Hahahaha

This is basically mine: (Recently changing it to scripting as well, so rebuilding the server is not necessary.)
Code:
public abstract class TournamentBase
	{
		public TournamentBase()
		{

		}

		public abstract int MeasureEndTime();
		public abstract void Start();
		public abstract void Send();
		public abstract void End();
		public abstract bool SignUp(Entities.GameClient client, out bool AlreadySigned);
		
		public void SendMessage(string Message)
		{
			using (var msg = Packets.Message.MessageCore.CreateCenter(Message))
			{
				Packets.Message.MessageCore.SendGlobalMessage(msg);
			}
		}
		public void SendMessageBC(string Message)
		{
			using (var msg = Packets.Message.MessageCore.CreateBroadcast("SYSTEM", Message))
			{
				Packets.Message.MessageCore.SendGlobalMessage(msg);
			}
		}
		
		public void SendMessage(Entities.GameClient client, string Message)
		{
			using (var msg = Packets.Message.MessageCore.CreateCenter(Message))
			{
				client.Send(msg);
			}
		}
		
		public abstract void UpdateBroadcast();
	}
Code:
public abstract class BattleClass
	{
		public abstract bool HandleBeginAttack(Entities.GameClient Attacker);
		public abstract bool HandleAttack(Entities.GameClient Attacker, Entities.GameClient Attacked, ref uint damage);
		public abstract bool HandleBeginHit_Physical(Entities.GameClient Attacker);
		public abstract bool HandleBeginHit_Ranged(Entities.GameClient Attacker);
		public abstract bool HandleBeginHit_Magic(Entities.GameClient Attacker, Packets.UseSpellPacket usespell);
		public abstract bool HandleDeath(Entities.GameClient Attacker, Entities.GameClient Attacked);
	}
The battle class is used in other things such as arena as well. Let's me control the attack-handler dynamically.

Example for LastManStanding:
Code:
public class LastManStandingBattleClass : Data.BattleClass
		{
			public LastManStanding LastManStanding;
			
			public override bool HandleBeginAttack(ProjectX_V3_Game.Entities.GameClient Attacker)
			{
				return (DateTime.Now >= LastManStanding.TournamentStartTime);
			}
			public override bool HandleBeginHit_Physical(ProjectX_V3_Game.Entities.GameClient Attacker)
			{
				return false;
			}
			public override bool HandleBeginHit_Ranged(ProjectX_V3_Game.Entities.GameClient Attacker)
			{
				return false;
			}
			public override bool HandleBeginHit_Magic(ProjectX_V3_Game.Entities.GameClient Attacker, Packets.UseSpellPacket usespell)
			{
				if (usespell.SpellID != 1045 && usespell.SpellID != 1046)
					return false;
				return true;
			}
			public override bool HandleAttack(ProjectX_V3_Game.Entities.GameClient Attacker, ProjectX_V3_Game.Entities.GameClient Attacked, ref uint damage)
			{
				damage = 1;
				
				Attacked.TournamentScore.CurrentHP -= 1;
				LastManStanding.SendMessage(Attacked, string.Format(LastManStanding.HEALTH, Attacked.TournamentScore.CurrentHP));
				
				if (Attacked.TournamentScore.CurrentHP <= 0)
				{
					Attacker.TournamentScore.CurrentScore += 1;
					Attacker.TournamentInfo.TotalKills += 1;
					
					Entities.GameClient rClient;
					LastManStanding.Players.TryRemove(Attacked.EntityUID, out rClient);
					
					Attacked.Battle = null;
					Attacked.Equipments.ClearMask();
					if (Attacked.TournamentScore.CurrentScore >= 5)
						Attacked.TournamentInfo.TournamentPoints += LastManStanding.EXTRA_SCORE;
					
					Attacked.TournamentInfo.TotalDeaths -= 1;
					
					Attacked.Teleport(Attacked.LastMapID, Attacked.LastMapX, Attacked.LastMapY);
					
					LastManStanding.UpdateBroadcast();
					LastManStanding.CheckForWin();
				}

				return false;
			}
			public override bool HandleDeath(ProjectX_V3_Game.Entities.GameClient Attacker, ProjectX_V3_Game.Entities.GameClient Attacked)
			{
				return false;
			}
		}
Still not finished though.

inb4gettingofftopic
Super Aids is offline  
Old 06/01/2013, 16:04   #66
 
12k's Avatar
 
elite*gold: 0
Join Date: Jul 2011
Posts: 218
Received Thanks: 33
I haven't got to the point of adding the player bots for person vs bot yet, but I did already have the idea of using them for cinematics/quests, which i do have finished, just need to add in the quests for them. Always thought of it as a good idea. But yeah, not hard at all, basically a mob with a different uid. Agree with infamous tho on the AI.
12k is offline  
Old 06/01/2013, 18:33   #67
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 950
Quote:
Originally Posted by 12k View Post
I haven't got to the point of adding the player bots for person vs bot yet, but I did already have the idea of using them for cinematics/quests, which i do have finished, just need to add in the quests for them. Always thought of it as a good idea. But yeah, not hard at all, basically a mob with a different uid. Agree with infamous tho on the AI.
If you think a duelbot is just a mob with a different UID then you're sadly mistaken. It's more like a player and you have to make it realistic looking which is what's hard. Calculating players position compared to the bot, the distance, the angle it should jump, when it should uses skills and normal physical attacks, sit and do other stuff, perhaps walk-routes and finding targets is hard when it has to be combined almost perfect together.
Super Aids is offline  
Old 06/01/2013, 21:58   #68
 
_DreadNought_'s Avatar
 
elite*gold: 28
Join Date: Jun 2010
Posts: 2,225
Received Thanks: 868
Quote:
Originally Posted by Super Aids View Post
I already have the 2nd lmao (I assume you just meant duelbots). Will also be including it in the tournaments, where bots joins tournaments if there isn't enough players aye.

And yeah sorry for forgetting the P Hahahaha

This is basically mine: (Recently changing it to scripting as well, so rebuilding the server is not necessary.)
Code:
public abstract class TournamentBase
	{
		public TournamentBase()
		{

		}

		public abstract int MeasureEndTime();
		public abstract void Start();
		public abstract void Send();
		public abstract void End();
		public abstract bool SignUp(Entities.GameClient client, out bool AlreadySigned);
		
		public void SendMessage(string Message)
		{
			using (var msg = Packets.Message.MessageCore.CreateCenter(Message))
			{
				Packets.Message.MessageCore.SendGlobalMessage(msg);
			}
		}
		public void SendMessageBC(string Message)
		{
			using (var msg = Packets.Message.MessageCore.CreateBroadcast("SYSTEM", Message))
			{
				Packets.Message.MessageCore.SendGlobalMessage(msg);
			}
		}
		
		public void SendMessage(Entities.GameClient client, string Message)
		{
			using (var msg = Packets.Message.MessageCore.CreateCenter(Message))
			{
				client.Send(msg);
			}
		}
		
		public abstract void UpdateBroadcast();
	}
Code:
public abstract class BattleClass
	{
		public abstract bool HandleBeginAttack(Entities.GameClient Attacker);
		public abstract bool HandleAttack(Entities.GameClient Attacker, Entities.GameClient Attacked, ref uint damage);
		public abstract bool HandleBeginHit_Physical(Entities.GameClient Attacker);
		public abstract bool HandleBeginHit_Ranged(Entities.GameClient Attacker);
		public abstract bool HandleBeginHit_Magic(Entities.GameClient Attacker, Packets.UseSpellPacket usespell);
		public abstract bool HandleDeath(Entities.GameClient Attacker, Entities.GameClient Attacked);
	}
The battle class is used in other things such as arena as well. Let's me control the attack-handler dynamically.

Example for LastManStanding:
Code:
public class LastManStandingBattleClass : Data.BattleClass
		{
			public LastManStanding LastManStanding;
			
			public override bool HandleBeginAttack(ProjectX_V3_Game.Entities.GameClient Attacker)
			{
				return (DateTime.Now >= LastManStanding.TournamentStartTime);
			}
			public override bool HandleBeginHit_Physical(ProjectX_V3_Game.Entities.GameClient Attacker)
			{
				return false;
			}
			public override bool HandleBeginHit_Ranged(ProjectX_V3_Game.Entities.GameClient Attacker)
			{
				return false;
			}
			public override bool HandleBeginHit_Magic(ProjectX_V3_Game.Entities.GameClient Attacker, Packets.UseSpellPacket usespell)
			{
				if (usespell.SpellID != 1045 && usespell.SpellID != 1046)
					return false;
				return true;
			}
			public override bool HandleAttack(ProjectX_V3_Game.Entities.GameClient Attacker, ProjectX_V3_Game.Entities.GameClient Attacked, ref uint damage)
			{
				damage = 1;
				
				Attacked.TournamentScore.CurrentHP -= 1;
				LastManStanding.SendMessage(Attacked, string.Format(LastManStanding.HEALTH, Attacked.TournamentScore.CurrentHP));
				
				if (Attacked.TournamentScore.CurrentHP <= 0)
				{
					Attacker.TournamentScore.CurrentScore += 1;
					Attacker.TournamentInfo.TotalKills += 1;
					
					Entities.GameClient rClient;
					LastManStanding.Players.TryRemove(Attacked.EntityUID, out rClient);
					
					Attacked.Battle = null;
					Attacked.Equipments.ClearMask();
					if (Attacked.TournamentScore.CurrentScore >= 5)
						Attacked.TournamentInfo.TournamentPoints += LastManStanding.EXTRA_SCORE;
					
					Attacked.TournamentInfo.TotalDeaths -= 1;
					
					Attacked.Teleport(Attacked.LastMapID, Attacked.LastMapX, Attacked.LastMapY);
					
					LastManStanding.UpdateBroadcast();
					LastManStanding.CheckForWin();
				}

				return false;
			}
			public override bool HandleDeath(ProjectX_V3_Game.Entities.GameClient Attacker, ProjectX_V3_Game.Entities.GameClient Attacked)
			{
				return false;
			}
		}
Still not finished though.

inb4gettingofftopic
Not really a fan, why not have a base class which pretty much does all those return falses and shit and then just override methods you want to change? Less code. :O
_DreadNought_ is offline  
Old 06/01/2013, 22:16   #69
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 950
Because I don't need to change anything. I just need to check for certain data being valid and do certain stuff.

You might understand if you actually knew how I made combat xD

The reason why the tournament is over 2 classes is because the BattleClass is associated to each client, since they have a variable for which battle they are in and can't join another battle if it's not null ex. Arena or another tournament.

But yeah the tournaments inherit the TournamentBase class and the tournament contains the BattleClass within itself.
Super Aids is offline  
Old 06/02/2013, 13:27   #70
 
12k's Avatar
 
elite*gold: 0
Join Date: Jul 2011
Posts: 218
Received Thanks: 33
Quote:
Originally Posted by Super Aids View Post
If you think a duelbot is just a mob with a different UID then you're sadly mistaken. It's more like a player and you have to make it realistic looking which is what's hard. Calculating players position compared to the bot, the distance, the angle it should jump, when it should uses skills and normal physical attacks, sit and do other stuff, perhaps walk-routes and finding targets is hard when it has to be combined almost perfect together.
Please read before you decide to comment. I said I agree with infamous. Meaning that the AI and making it realistic is the hard part. As far as just making basic movements and making it look like a player etc, that part is what makes it practically a mob as far as programming.
12k is offline  
Closed Thread


Similar Threads Similar Threads
Project Throwback - Come check us out.
05/22/2013 - CO2 PServer Archive - 113 Replies
http://i134.photobucket.com/albums/q84/skipunk1/he ader-2.png We are proud to announce the release of a brand new server into the CO Community. This server is classic based, meaning.. The basics of the game are there, Max +9, Max Level 130, Red/Black name gear drops, First Reborn, Etc...
itemtype.dat for Project Throwback
09/22/2012 - CO2 PServer Guides & Releases - 7 Replies
here is the itemtype.dat for Project Throwback made it with bajotumn.com itemtype editor shows all items and all weapons quality on the ground and moonbox tokens instructions are unrar ir and put in your ini folder
[Release]Project Throwback - A Classic Experience
02/02/2012 - CO2 PServer Archive - 84 Replies
http://project-throwback.com/imgs/logo.png



All times are GMT +1. The time now is 15:49.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.