meocon5000
15-12-14, 11:53 AM
Tính bỏ project này lâu rồi , mà hổm rày có hứng nên làm tiếp \:D/
Cùng coi hàng họ của em nó nào :>
Thông tin cơ bản
Phiên bản : v.1.0
Tác giả : meocon5000
Tên tool : DDTankBotManager
Chức năng :
+ Quản lí bot game
+ Tự tạo phòng chiến đấu
+ Chiến đấu thông minh , bắn luôn trúng
Hạn chế :
+ Phải can thiệp vào source , không có source thì bó trym 8-x
+ Bot phải tự add , không có tool để add :))
Một chút hướng dẫn
- Vào Game.Logic tìm eTankCmdType thêm dòng sau
BOT_COMMAND = 143,
- Mở Game.Server.sln , vào Game.Logic/Cmd, tạo 1 class đặt tên là BotCommand.cs, chép đoạn code sau vào
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Game.Logic.Phy.Object;
using Game.Base.Packets;
namespace Game.Logic.Cmd
{
[GameCommand((byte)eTankCmdType.BOT_COMMAND, "战胜关卡中Boss翻牌")]
public class BotCommand : ICommandHandler
{
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
{
if (game is PVPGame)
{
PVPGame pvp = game as PVPGame;
Player[] players = pvp.GetAllPlayers();
List<Player> enemies = new List<Player>();
foreach(Player child in players)
{
if (child.Team != player.Team)
{
enemies.Add(child);
}
}
Random rand = new Random();
int next = rand.Next(0, enemies.Count);
Player target = enemies.ElementAt(next);
if (target.X > player.X)
{
player.ChangeDirection(1, 500);
}
else
{
player.ChangeDirection(-1, 500);
}
player.ShootPoint(target.X, target.Y, player.CurrentBall.ID, 1001, 10001, 1, 1.5f, 2000);
if (player.IsAttacking)
player.StopAttacking();
GSPacketIn pkg = new GSPacketIn((byte)ePackageType.GAME_CMD,player.Id);
pkg.WriteByte((byte)eTankCmdType.BOT_COMMAND);
game.SendToAll(pkg);
Console.WriteLine("BombId {0}", player.CurrentBall.ID);
}
}
}
}
- Vào Action/LivingShootAction.cs, tìm đoạn :
if (m_living is SimpleBoss)
{
m_living.GetShootForceAndAngle(ref m_tx, ref m_ty, m_bombId, m_minTime, m_maxTime, m_bombCount, m_Time, ref m_force, ref m_angle);
}
- Thêm bên dưới
if (this.m_living is Player && this.m_minTime == 1001 && this.m_maxTime == 10001)
{
this.m_living.GetShootForceAndAngle(ref this.m_tx, ref this.m_ty, this.m_bombId, this.m_minTime, this.m_maxTime, this.m_bombCount, this.m_Time, ref this.m_force, ref this.m_angle);
}
- Build Game.Logic chép vào Fight,Center,Road
//////////////////
- Vào tool/DDTankBot.exe.config sửa lại cái link <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> thành link request của bạn
- Mở Tool DDTankBot. , nhập các thông số :
+ IP : Địa chỉ IP của Road
+ Port : Port của Road, nếu không biết cứ để nguyên
+ Định dạng : Định dạng tên bot, ví dụ muốn tên bot là bot0,bot1,bot2 thì định dạng là bot{0}
+ StartId : Mã bot bắt đầu , nếu tôi nhập là 1 thì bắt đầu sẽ là bot1
+ Số lượng : Lượng bot
Còn cái Interval và CountPerSec cứ để nguyên
- Ấn Start và chạy thôi
* Lưu ý :
- Phải add các bot vào Sys_Users_Detail trước
- Demo
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
- Link :<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
Pass : 99cf2ce084201c6ee6557d006bf4c41b
Nếu thấy hay thì thanks ủng hộ cái nha !
Cùng coi hàng họ của em nó nào :>
Thông tin cơ bản
Phiên bản : v.1.0
Tác giả : meocon5000
Tên tool : DDTankBotManager
Chức năng :
+ Quản lí bot game
+ Tự tạo phòng chiến đấu
+ Chiến đấu thông minh , bắn luôn trúng
Hạn chế :
+ Phải can thiệp vào source , không có source thì bó trym 8-x
+ Bot phải tự add , không có tool để add :))
Một chút hướng dẫn
- Vào Game.Logic tìm eTankCmdType thêm dòng sau
BOT_COMMAND = 143,
- Mở Game.Server.sln , vào Game.Logic/Cmd, tạo 1 class đặt tên là BotCommand.cs, chép đoạn code sau vào
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Game.Logic.Phy.Object;
using Game.Base.Packets;
namespace Game.Logic.Cmd
{
[GameCommand((byte)eTankCmdType.BOT_COMMAND, "战胜关卡中Boss翻牌")]
public class BotCommand : ICommandHandler
{
public void HandleCommand(BaseGame game, Player player, GSPacketIn packet)
{
if (game is PVPGame)
{
PVPGame pvp = game as PVPGame;
Player[] players = pvp.GetAllPlayers();
List<Player> enemies = new List<Player>();
foreach(Player child in players)
{
if (child.Team != player.Team)
{
enemies.Add(child);
}
}
Random rand = new Random();
int next = rand.Next(0, enemies.Count);
Player target = enemies.ElementAt(next);
if (target.X > player.X)
{
player.ChangeDirection(1, 500);
}
else
{
player.ChangeDirection(-1, 500);
}
player.ShootPoint(target.X, target.Y, player.CurrentBall.ID, 1001, 10001, 1, 1.5f, 2000);
if (player.IsAttacking)
player.StopAttacking();
GSPacketIn pkg = new GSPacketIn((byte)ePackageType.GAME_CMD,player.Id);
pkg.WriteByte((byte)eTankCmdType.BOT_COMMAND);
game.SendToAll(pkg);
Console.WriteLine("BombId {0}", player.CurrentBall.ID);
}
}
}
}
- Vào Action/LivingShootAction.cs, tìm đoạn :
if (m_living is SimpleBoss)
{
m_living.GetShootForceAndAngle(ref m_tx, ref m_ty, m_bombId, m_minTime, m_maxTime, m_bombCount, m_Time, ref m_force, ref m_angle);
}
- Thêm bên dưới
if (this.m_living is Player && this.m_minTime == 1001 && this.m_maxTime == 10001)
{
this.m_living.GetShootForceAndAngle(ref this.m_tx, ref this.m_ty, this.m_bombId, this.m_minTime, this.m_maxTime, this.m_bombCount, this.m_Time, ref this.m_force, ref this.m_angle);
}
- Build Game.Logic chép vào Fight,Center,Road
//////////////////
- Vào tool/DDTankBot.exe.config sửa lại cái link <b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> thành link request của bạn
- Mở Tool DDTankBot. , nhập các thông số :
+ IP : Địa chỉ IP của Road
+ Port : Port của Road, nếu không biết cứ để nguyên
+ Định dạng : Định dạng tên bot, ví dụ muốn tên bot là bot0,bot1,bot2 thì định dạng là bot{0}
+ StartId : Mã bot bắt đầu , nếu tôi nhập là 1 thì bắt đầu sẽ là bot1
+ Số lượng : Lượng bot
Còn cái Interval và CountPerSec cứ để nguyên
- Ấn Start và chạy thôi
* Lưu ý :
- Phải add các bot vào Sys_Users_Detail trước
- Demo
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
- Link :<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
Pass : 99cf2ce084201c6ee6557d006bf4c41b
Nếu thấy hay thì thanks ủng hộ cái nha !