Thấy các bạn còn nhiều phân vân nên tôi xin post trọn vẹn script chủ pt của tôi cho các bạn tham khảo. Có gì chúng ta cùng trao đổi:
include("common.js")
var memturn = 0;
var pnturn = 0;
var state = "";
var hpFraction = 0.8;
var pt_count = 0;
var mapid1 = 12521;
var mapid2 = 12013;
var warpid1 = 5;
var warpid2 = 1;
function InitBot()
{
ViewState()
CheckDisconnect()
CheckHSP()
}
function MyAttack()
{
if (memturn == 0)
{
if (ts.Character.SP > 15)
{
sk = 12003;
}
else
{
sk = 10000;
}
ts.SendAttack( ts.Character.Row , ts.Character.Col , 0 , 3 , sk )
memturn = memturn + 1;
}
else
{
sk = 17001;
ts.SendAttack( ts.Character.Row , ts.Character.Col , ts.Character.Row , ts.Character.Col , sk )
}
}
function MyPartnerAttack()
{
if (pnturn == 0)
{
sk = 17001;
ts.SendAttack( ts.CurrentPartner.Row , ts.CurrentPartner.Col , ts.CurrentPartner.Row , ts.CurrentPartner.Col , sk )
pnturn = pnturn + 1;
}
else
{
sk = 10000;
ts.SendAttack( ts.CurrentPartner.Row , ts.CurrentPartner.Col , 0 , 1 , sk )
}
}
function BattleStarted()
{
memturn = 0
pnturn = 0
}
function BattleStoped()
{
ViewState()
CheckDisconnect()
CheckHSP()
}
function Start()
{
ts.sena(sena) //set Sena
debug("Start at " + Time(),0xFF0000)
WriteLog("Wrong.js","Start at " + Time());
moveOut()
}
function Stop()
{
ts.Walk(1390,250)
}
function OnTimer()
{
}
function AcceptedParty(playerid) //tu dong party khi co yeu cau request tu member trong team
{
if( playerid == idmem || playerid == idmem || playerid == idmem || playerid == idmem ) //tru chu party nhe ^^
{
ts.AcceptParty(playerid)
pt_count++;
}
if (pt_count == 4) // du member moi bat dau dnah
{
Start();
}
}
function PartyStop( playerid ) //dis khi mat member
{
if( playerid == idmem || playerid == idmem || playerid == idmem || playerid == idmem || playerid == idmem )
{
debug("Dis by " + playerid + "at" + Time(),0xFF0000)
Stop()
ts.Disconect();
}
}
function CheckHSP()
{
if (ts.Character.HP < (ts.Character.MAXHP * hpFraction))
{
doEatHP(0, (ts.Character.MAXHP - ts.Character.HP))
}
if (ts.Character.SP < (ts.Character.MAXSP - 30)) //Nham an ngay SP cho hop voi nhung thu roi ra tai CU Loc
{
doEatSP(0, (ts.Character.MAXSP - ts.Character.SP))
}
if (ts.CurrentPartner.HP < (ts.CurrentPartner.MAXHP * hpFraction))
{
doEatHP(ts.CurrentPartner.Order,(ts.CurrentPartner.MAXHP - ts.CurrentPartner.HP))
}
if (ts.CurrentPartner.SP < (ts.CurrentPartner.MAXSP - 30))
{
doEatSP(ts.CurrentPartner.Order,(ts.CurrentPartner.MAXSP - ts.CurrentPartner.SP))
}
}
function ViewState()
{
debug("************************************",0xFF0000)
debug(" Warrior's HP : " + ts.CurrentPartner.HP,0xFF0000)
debug(" Character's HP : " + ts.Character.HP,0xFF0000)
debug("************************************",0xFF0000)
}
function CheckDisconnect()
{
if(ts.Character.HP < (0.2 * ts.Character.MAXHP) || ts.CurrentPartner.HP < (0.2 * ts.CurrentPartner.MAXHP))
{
debug(" Dis by low on HP at " + Time(),0xFF0000)
WriteLog("Wrong.js","Dis by low on HP at " + Time());
ts.Disconect();
}
}
function WarpLink( map1 ,warpid1 , map2 ,warpid2) // Su dung warpLink cua Micral rat hay, it bi dis
{
if(ts.Character.mapid == map1)
{
ts.Warp(warpid1)
return
}
else if(ts.Character.mapid == map2)
{
ts.Warp(warpid2)
return
}
}
function FinishAnswerFuckGod() //hix Nham muc tieu tra loi BTQ xong van co the tiep tuc danh ^^
{
moveOut()
}
function moveOut() //Ra vao dong
{
if(ts.Character.mapid == mapid1)
{
WarpLink( mapid2 ,warpid2 , mapid1 ,warpid1);
}
else if(ts.Character.mapid == mapid2)
{
ts.Walk(1522,175);
WarpLink( mapid2 ,warpid2 , mapid1 ,warpid1);
}
}
function warpFinish() //Ham goi khi ket thuc warp, giup tu dong ra vao dong
{
moveOut()
}
function PlayerAppearInMap( playerid , x , y ) //Cha`, cai nay bat chuoc cac dan anh di truoc thoi, chu chua thay dc cong dung no
{
if (playerid < 500 && playerid > 101)
{
WriteLog("save.txt",Time() + "GameMaster : " + getPlayerName(playerid) + " ID: " + playerid)
debug("Anh em oi cong An toi kia!!!" + Time(),0x00ff00);
ts.Disconect();
}
}
InitBot()
///
/*----------------------------------------------------*/
Còn đây là member đã có tự động party:
include("common.js")
var memturn = 0;
var pnturn = 0;
var state = "";
var hpFraction = 0.8;
function InitBot()
{
ts.RequestParty(id chu pt) // De xin party voi chu party khi moi log vo
ViewState()
CheckHSP()
}
function MyAttack()
{
if (memturn == 0)
{
if (ts.Character.SP > 15)
{
sk = 12003;
}
else
{
sk = 10000;
}
ts.SendAttack( ts.Character.Row , ts.Character.Col , 0 , 3 , sk )
memturn = memturn + 1;
}
else
{
sk = 17001;
ts.SendAttack( ts.Character.Row , ts.Character.Col , ts.Character.Row , ts.Character.Col , sk )
}
}
function MyPartnerAttack()
{
if (pnturn == 0)
{
if (ts.CurrentPartner.SP > 15)
{
sk = 12003;
}
else
{
sk = 10000;
}
ts.SendAttack( ts.CurrentPartner.Row , ts.CurrentPartner.Col , 1 , 2 , sk )
pnturn = pnturn + 1;
}
else
{
sk = 17001;
ts.SendAttack( ts.CurrentPartner.Row , ts.CurrentPartner.Col , ts.CurrentPartner.Row , ts.CurrentPartner.Col , sk )
}
}
function BattleStarted()
{
memturn = 0
pnturn = 0
}
function BattleStoped()
{
ViewState()
CheckHSP()
}
function Start()
{
debug("Re pt...",0)
ts.RequestParty(id chu pt) // De party bang tay khi an F3
}
function Stop()
{
}
function PartyStop( playerid ) // tu dong dis khi co mem roi khoi doi
{
if( playerid == idmem || playerid == idmem || playerid == idmem || playerid == idmem || playerid == idmem )
{
debug("Dis by " + playerid + "at" + Time(),0xFF0000)
Stop()
ts.Disconect();
}
}
function CheckHSP()
{
if (ts.Character.HP < (ts.Character.MAXHP * hpFraction))
{
doEatHP(0, (ts.Character.MAXHP - ts.Character.HP))
}
if (ts.Character.SP < (ts.Character.MAXSP - 30))
{
doEatSP(0, (ts.Character.MAXSP - ts.Character.SP))
}
if (ts.CurrentPartner.HP < (ts.CurrentPartner.MAXHP * hpFraction))
{
doEatHP(ts.CurrentPartner.Order,(ts.CurrentPartner.MAXHP - ts.CurrentPartner.HP))
}
if (ts.CurrentPartner.SP < (ts.CurrentPartner.MAXSP - 30))
{
doEatSP(ts.CurrentPartner.Order,(ts.CurrentPartner.MAXSP - ts.CurrentPartner.SP))
}
}
function OnTimer()
{
}
function ViewState()
{
debug("************************************" , 0xFF0000)
debug(" Warrior's HP : " + ts.CurrentPartner.HP , 0xFF0000)
debug(" Character's HP : " + ts.Character.HP, 0xFF0000)
debug("************************************", 0xFF0000)
}
function PlayerOnline( playerid ) // tu dong party khi log vao
{
if(playerid == idchupt)
{
ts.RequestParty(playerid)
}
}
InitBot()
/*---------------------------------------------------------*/
Đây là common.js tham khảo bản mới nhất của TB Thái và có sửa đổi cho đơn giản hơn:
/******************************************
Common Function Script (Truebot)
******************************************/
var QA = new ActiveXObject("Scripting.Dictionary");
var Wrong = new ActiveXObject("Scripting.Dictionary");
Chat.obj.backColor = 0x000000
function ChatClear(){
Chat.obj.text = "";
}
function DisplayClear(){
Display.text = "";
}
var ShowTime;
function Time()
{
var time = new Date();
h = time.getHours();
if (h < 10)
{
h = "0" + h
}
m = time.getMinutes();
if (m < 10)
{
m = "0" + m
}
s = time.getSeconds();
if (s < 10)
{
s = "0" + s
}
return ShowTime ="[" + h + ":" + m + ":" + s + "]";
}
function doEatHP(order,difHp)
{
for(var i = 1;i<= 20 ;i++)
{
var oSlot = ts.MyItems.Item(i)
var oItem = ITEMS.Item(oSlot.itemid)
if (oSlot.itemid == 0 || oSlot.itemid == 46107)
{
continue;
}
if(oItem.isHPItem())
{
if (difHp <= oItem.itemvalue)
{
ts.EatItem(i, 1 ,order);
debug( " Eat " +" HP + "+ oItem.itemvalue+" at slot"+i+" amount 1 ",0xC08008 )
}
else
{
var eatHpAmt = (difHp - (difHp % oItem.itemvalue)) / oItem.itemvalue
if (eatHpAmt > oSlot.num)
{
eatHpAmt = oSlot.num;
}
ts.EatItem(i,eatHpAmt,order)
debug( " Eat " +" HP + "+oItem.itemvalue+" at slot"+i+" amount "+eatHpAmt ,0xC08008 )
difHp = difHp - eatHpAmt * oItem.itemvalue
}
}
}
}
function doEatSP(order,difSp)
{
for(var i = 1;i<= 20 ;i++)
{
var oSlot = ts.MyItems.Item(i)
var oItem = ITEMS.Item(oSlot.itemid)
if (oSlot.itemid == 0 || oSlot.itemid == 46107)
{
continue;
}
if(oItem.isSPItem())
{
if (difSp <= oItem.itemvalue)
{
ts.EatItem(i, 1 ,order);
debug( " Eat " +" SP + "+ oItem.itemvalue+" at slot"+i+" amount 1 ",0xC08008 )
}
else
{
var eatSpAmt = (difSp - (difSp % oItem.itemvalue)) / oItem.itemvalue
if (eatSpAmt > oSlot.num)
{
eatSpAmt = oSlot.num;
}
ts.EatItem(i,eatSpAmt,order)
debug("Eat " + " SP+" + oItem.itemvalue + " at slot " + i + "amount "+eatSpAmt ,0xC08008 )
difSp = difSp - eatSpAmt * oItem.itemvalue
}
}
}
}
// WriteLog("c:\\log.txt",ts.Character.Texp);
function WriteLog(Fname,data){
var ForAppending = 8;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.OpenTextFile(Fname, ForAppending, false);
a.WriteLine(data);
a.Close();
}
function ClearLog(Fname){
var ForWriting = 2;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.OpenTextFile(Fname, ForWriting, false);
a.WriteLine("");
a.Close();
}
function get_random(min,max)
{
var ranNum= min + Math.round(Math.random()*(max-min));
return ranNum;
}
var ans
var ans_index = get_random(1,4);
var known = false
function doRecvQuestion(){
tmp = ts.LastQuestion;
tmp = tmp.replace("=?","");
ans = "" + eval(tmp);
ans_index = ts.LastAnswers.Item(ans);
}
function ResponseAnswer()
{
debug("ResponseAnswer",0)
ts.Answer(ans_index);
}
/*----------------------------------------------------*/
Đó là tất cả những gì tôi đã biết, trọn vẹn, toàn bộ những gì tôi đang sử dụng. Còn về TB 3 của Thái thì đúng như bạn Mip đã nói. Nó thiếu đi 1 byte so với của VN. Bản của bác Micral rất tuyệt ^^(thanks bác Micral, bác cũng là người em học hỏi được rất nhiều về TB - em coi bác như người thấy đầu tiên dạy em bot ^^)