Trứoc tình hình buồn tẻ của TS. Bot một mình xong level cao cung chănngr để làm gì. Nay share 1 vài script tôi đã dùng, chạy ổn. Hy vọng anh em sẽ ở lại cung chơi cho vui: Đây là script Lô Long Đây là script chủ pt include("common.js") var memturn = 0; var state = ""; var hpFraction = 0.8; var pt_count = 0; var mapid1 = 12815; var mapid2 = 12421; var warpid1 = 1; var warpid2 = 2; function InitBot() { ViewState() CheckHSP() } function MyAttack() { if (memturn == 0) { sk = 10000; ts.SendAttack( ts.Character.Row , ts.Character.Col , 0 , 1 , sk ) memturn = memturn + 1; } else { sk = 17001; ts.SendAttack( ts.Character.Row , ts.Character.Col , ts.Character.Row , ts.Character.Col , sk ) } } function MyPartnerAttack() { } function BattleStarted() { memturn = 0 } function BattleStoped() { ViewState() moveOut() } function Start() { ts.sena(id qs) //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) { if( playerid == idmem1 || playerid == idmem2 || playerid == idmem3 || playerid == idmem4 ) { ts.AcceptParty(playerid) pt_count++; } if (pt_count == 4) { Start(); } } function PartyStop( playerid ) { if( playerid == idmem1 || playerid == idmem2 || playerid == idmem3 || playerid == idmem4 || playerid == idmem5 ) { debug("Dis by " + playerid + " at " + Time(),0xFF0000) WriteLog("Wrong.js","Dis by " + playerid + " at " + Time()); ts.Disconect(); } } 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 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 WarpLink( map1 ,warpid1 , map2 ,warpid2) { if(ts.Character.mapid == map1) { ts.Warp(warpid1) return } else if(ts.Character.mapid == map2) { ts.Warp(warpid2) return } } function moveOut() { if(ts.Character.mapid == mapid1) { ts.delay(1); WarpLink( mapid2 ,warpid2 , mapid1 ,warpid1); } else if(ts.Character.mapid == mapid2) { ts.Walk(642,455); ts.delay(8000); WarpLink( mapid2 ,warpid2 , mapid1 ,warpid1); } } 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 PlayerAppearInMap( playerid , x , y ) { 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() ---------------------------------------------- Script mem Lô Long: include("common.js") var memturn = 0; var pnturn = 0; var state = ""; var hpFraction = 0.8; function InitBot() { ts.RequestParty(id chupt) 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 , 1 , 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.Character.SP > 15) { sk = 12003; } else { sk = 10000; } ts.SendAttack( ts.CurrentPartner.Row , ts.CurrentPartner.Col , 0 , 1 , sk ) pnturn = pnturn + 1; } else { sk = 17001; //(thay sk = 14002 nếu đào tẩu?) 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 chupt) } function Stop() { } function PartyStop( playerid ) { if( playerid == idmem1 || playerid == idmem2 || playerid == idmem3 || playerid == idmem4 || playerid == idmem5 ) { debug("Dis by " + playerid + " at " + Time(),0xFF0000) WriteLog("Wrong.js","Dis by " + playerid + " at " + Time()); 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)) } } 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 OnTimer() { } function ViewState() { debug("************************************" , 0xFF0000) debug(" Warrior's HP : " + ts.CurrentPartner.HP , 0xFF0000) debug(" Character's HP : " + ts.Character.HP, 0xFF0000) debug("************************************", 0xFF0000) } InitBot() Chú ý: Với lev1 đào tẩu thì chỉ cần thay sk ở phần else (đánh 2 turn/trận)
Tiếp tục với script Cự Lộc: Chủ pt: 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() CheckHSP() } function MyAttack() { if (memturn == 0) { ts.delay(100); sk = 12003; ts.SendAttack( ts.Character.Row , ts.Character.Col , 1 , 2 , sk ) memturn = memturn + 1; } else { ts.delay(100); 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() ts.delay(100); moveOut() } function Start() { ts.sena(id qs) //set Sena debug("Start at " + Time(),0xFF0000) WriteLog("Wrong.js","Start at " + Time()); moveOut() } 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 Stop() { ts.Walk(1390,250) } function OnTimer() { } function AcceptedParty(playerid) { if( playerid == id mem1 || playerid == id mem2 || playerid == id mem3 || playerid == id mem4 ) { ts.AcceptParty(playerid) pt_count++; } if (pt_count == 4) { Start(); } } function PartyStop( playerid ) { if( playerid == id mem1 || playerid == id mem2 || playerid == id mem3 || playerid == id mem4 || playerid == id mem5 ) { debug("Dis by " + playerid + " at " + Time(),0xFF0000) WriteLog("Wrong.js","Dis by " + playerid + " at " + Time()); ts.Disconect(); } } 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 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 moveOut() { if(ts.Character.mapid == mapid1) { ts.delay(1); ts.warp(warpid2) return ts.Walk(1522,175); ts.delay(1000); ts.warp(warpid1) return } else if(ts.Character.mapid == mapid2) { ts.Walk(1522,175); ts.delay(1000); ts.warp(warpid1) return } } function warpFinish() { } function PlayerAppearInMap( playerid , x , y ) { 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() Ở đây khác với trong bài phần trả lời lỗi gì đó của ban Nuub tôi không dung WarpLink mà dùng thang ts.warp luôn. Các bạn có thể dùng WarpLink cũng được. Mem: include("common.js") var memturn = 0; var state = ""; var hpFraction = 0.8; function InitBot() { ts.RequestParty(id chupt) ViewState() CheckDisconnect() CheckHSP() } function MyAttack() { if (memturn == 0) { ts.delay(100); sk = 12003; ts.SendAttack( ts.Character.Row , ts.Character.Col , 0 , 3 , sk ) memturn = memturn + 1; } else { ts.delay(100); sk = 17001; ts.SendAttack( ts.Character.Row , ts.Character.Col , ts.Character.Row , ts.Character.Col , sk ) } } function MyPartnerAttack() { sk = 17001; ts.SendAttack( ts.CurrentPartner.Row , ts.CurrentPartner.Col , ts.CurrentPartner.Row , ts.CurrentPartner.Col , sk ) } function BattleStarted() { memturn = 0 } function BattleStoped() { ViewState() CheckDisconnect() CheckHSP() } function Start() { debug("Re pt...",0) ts.RequestParty(id chu pt) } function Stop() { } function OnTimer() { } function PartyStop( playerid ) { if( playerid == id mem1 || playerid == id mem2 || playerid == id mem3 || playerid == id mem4 || playerid == id mem5 ) { debug("Dis by " + playerid + " at " + Time(),0xFF0000) WriteLog("Wrong.js","Dis by " + playerid + " at " + Time()); ts.Disconect(); } } 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 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 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(); } } InitBot() lev 1 dao tau: include("common.js") var memturn = 0; var pnturn = 0; var state = ""; var hpFraction = 0.8; var ghost_count = 0; function InitBot() { ts.RequestParty(id chu pt) CheckHSP() } function MyAttack() { if (memturn == 0) { sk = 10000; ts.SendAttack( ts.Character.Row , ts.Character.Col , 0 , 3 , sk ) memturn = memturn + 1; } else { sk = 14002; ts.SendAttack( ts.Character.Row , ts.Character.Col , ts.Character.Row , ts.Character.Col , sk ) } } function MyPartnerAttack() { if (pnturn == 0) { if (ts.CurrentPartner.SP > 22) { sk = 10005; // Ở đây tôi dùng đệ là ngựa bắn đá nếu dùng Tôn Trọng bắn tên thì đổi thành 12003. } else { sk = 10000; } ts.SendAttack( ts.CurrentPartner.Row , ts.CurrentPartner.Col , 0 , 3 , sk ) // Đánh bắt chước XCAB, đánh lev 59 trước 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() { CheckHSP() } function Start() { debug("Re pt...",0) ts.RequestParty(id chu pt) } function Stop() { } 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 PartyStop( playerid ) { if( playerid == id mem1 || playerid == id mem2 || playerid == id mem3 || playerid == id mem4 || playerid == id mem5 ) { debug("Dis by " + playerid + " at " + Time(),0xFF0000) WriteLog("Wrong.js","Dis by " + playerid + " at " + Time()); ts.Disconect(); } } 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 OnTimer() { } InitBot() ClearLog("Wrong.js") Xong và chúc các bạn may mắn.
thankx nha bạn hic minh viết mãi ko dc cái chủ pt o lưlong khẩu giờ có crip của bạn mình se thử cam on rat nhiều nha!!!!!!!!!!!!
sao cai js cu loc chu pt, ko co cho~ cho dien` id vao vay , nhu vay no sao bit nhan pt dc! cho hoi cai js nay co tu reconncet ko neu dis .
chai` moi thu xai roi, ma`xai` ko dc cai js chu pt cua cu loc ! ban hay pot cai hoan chinh dc ko ! ko co tu nhan pt , ko co tra loi BTQ, ko tu reconnet.sao thay thieu nhieu` wa!
Mình còn 1 script bot cho 2 gà bên thành tuyết ! Bạn nào nhả ý thì PM , mình share cho , ở đây ko tiện ghi cho lắm !
có 2 con NPC ghẻ lv 4X , 1 trận thì có 2 gà cở 600EXP or 700EXP , 2 gà + 2 tôn trọng và 3 char 120 là phẻ rồi !
chắc là đúng (nếu tôi nhớ ko nhầm) ủng hộ liverpool Man ra đi rồi đành theo liver vậy ko biết có bị trừ mp ko đây :p
Bạn nói chuyện ngoài lề quá :p ! Liverpool đang len giò bởi Gerrard ấy mà ! Ai cần script ấy có thể PM [email protected]
MO TOPIC DAY BOT CHO NOOB Hix nếu em đọc xong tất cả các bài viết ma BOT dc em chít liền. Thiệt tình kính mong các bác pro xem xét lại giúp anh em noob. Giờ em login truebot ngon lành chỉ ko cựa quậy được thôi . Rất mong các pro nhiệt huyết viêt 1 bài thât ngắn gọn xúc tích. Noob như em nè, chẳng hạn em có 5 ID : vn1111 vn2222 vn3333 vn4444 vn555, trong tay em chỉ có thế thôi, giờ các bác dạy em BOT dc thì mới là No1 đóa. rất mong có ai đó đứng ra lập 1 topic thiệt "chuyên nghiệp". Em nhận thấy cái cần thiết nhất la sc, cái nay đúng la quá khó với 1 noob để hiêu dc hết, với 1 noob thì chỉ co thể biết là o đâu thì thay các ID của mình vào sc để nó Bot dc.==> tiêu chí dạy Bot là thay số thay số va thay số ===> nhà nhà Bot noob noob Bot .chan thanh cam on.
Thưa các bạn. Script Lư Long chính là gate thành tuyết. Xin lỗi nếu mình nhớ nhầm (dành cho lev tầm 7x, 8x a) Còn mình trả lời cá câu hỏi của các bạn: Thứ nhất: Về trả lời BTQ: Chắc các bạn mong đợi cái như kiểu: function onEvilGod(){ ghost_count++ debug("E V I L G O D."+"["+ghost_count+"]",0x0000FF) msg = "Wrong.Add(\""+ts.LastQuestion+"\",\""+ts.LastResponseAnswer+"\")" WriteLog("Wrong.js",msg) } function onLuckyGod(){ debug("LUCKY G O D.",0xFF0000) if(!QA.Exists(ts.LastQuestion)){ QA.Add(ts.LastQuestion,ts.LastResponseAnswer) msg = "QA.Add(\""+ts.LastQuestion+"\",\""+ts.LastResponseAnswer+"\")" WriteLog("QA.js",msg) } } function FinishAnswerFuckGod(){ cdelay(3) god_count++; if(ghost_count>=3){ debug("3 ghost, disconnect now",0x00aaaa) frm.mnuEnableReconnect.Checked = false; ts.Disconect(); } } Copy từ script micral. Điều này là không cần thiết. Bởi thực ra ở trên không hề trả lời câu hỏi BTQ. Với script trên các hàm thực hiện như sau: Nếu gặp BTQ và trả lời sai call hàm onEvilGod() (có nghĩa là bạn đã dính ma) và add câu hỏi va câu trả lời sai vao file Wrong.js để tham khảo đồng thời tăng ghót_count lên Nếu trả lời đúng thì call hàm onLuckyGod() và add câu hỏi và trả lời vào file QA.js. Hàm FinishAnswerFuckGod() được gọi sau khi trả lời xong BTQ và ở đây nó kiểm tra ghost_count. Nếu bằng 3 thì dis. Như các bạn đã thấy nó không hề có tác dụng trả lời câu hỏi BTQ tự động. Vậy thì cho vào làm gì cho nặng code. Bí mật nằm trong file common.js đi sẵn theo TB (bác Micral cũng không hề sửa lại cái này). Đó chình là đoạn code sau: 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(){ if(QA.Exists(ts.LastQuestion)){ ans = QA.Item(ts.LastQuestion) ans2 = ans.replace("-"," "); if(ts.LastAnswers.Exists(ans)){ ans_index = ts.LastAnswers.Item(ans); }else if(ts.LastAnswers.Exists(ans2)){ ans = ans2 ans_index = ts.LastAnswers.Item(ans); }else{ e = new Enumerator(ts.LastAnswers.Keys) } } } function ResponseAnswer() { ts.Answer(ans_index); debug("Ans = "+ans_index,0); } Các bạn có thể thấy ở đoạn code này nó lấy random 1 - 4 và có cơ hội ăn là 1/4 (đối với script sẵn trong TB của bac Micral) Tuy nhiên, như thế là rất không hay, để giải quyết bản TB mới của Thái đã cập nhật file common.js này như sau (các bạn có thẻ copy vào và đè lên đoạn code này ở file common.js của các bạn): 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); } Ở đây có thể thấy trong hàm doRecvQuestion() làm những công việc sau: cho biến tmp = câu hỏi của TS sau đó lấy biến tmp mới = câu hỏi đó bỏ đi =? (nghĩa là 1+1 =? sẽ thành 1+1) và đưa ra kết quả bằng thuật toán eval() sau đó đưa vào biến ans. Tiếp tục lấy ansindex = vị trí có câu trả lời trùng với kết quả ans ---> ts.Answer(ans_index) Eureka 1 PT. Vậy đó! Và khi BTQ xuất hiện, TB gọi hàm ResponseAnswer(), hàm này lại gọi doRecvQuestion() để giải quyết câu hỏi. That's all! ------- Cấu hởi thứ hai: Về vấn đề autopt mình cũng có trong đoạn code này: mình không dùng kiểu gán Myparty = New Array... bởi chỉ có 5 con phải thay và quá đơn giản không cần phức tạp hóa. Ở script của mình các bạn chỉ phải thay các cái như sau: sk (skill id để các bạn tự đánh các chiêu của mình) Đối với chủ pt thì thay phần này: ts.sena(id qs) ( cho id quan su của các bạn vào) Để tự pt đây: function AcceptedParty(playerid) { if( playerid == id mem1 || playerid == id mem2 || playerid == id mem3 || playerid == id mem4 ) ----> thay các idmem1, idmem2.... bằng các id trong team của bạn (trừ chủ pt, đương nhiên ^_^). Để dis khi có 1 trong các thành viên out: function PartyStop( playerid ) { if( playerid == id mem1 || playerid == id mem2 || playerid == id mem3 || playerid == id mem4 || playerid == id mem5 ) { ----> thay (Có chủ pt ^_^) Hàm PartyStop này bạn copy paste thay cho tất cả các mem trong đội để đỡ phải điền mất thời gian. Đối với mem: Thay function InitBot() { ts.RequestParty(id chupt) Thay id chupt trong ngoặc bằng id chủ pt của bạn để nó tự pt khi chạy Thay function Start() { debug("Re pt...",0) ts.RequestParty(id chu pt) } thay bằng id chủ pt của bạn ------------ Dễ như ăn cháo đúng không. Tuy nhiên, các bạn cần lưu ý là chu pt cần được chạy trước và các mem vào sau để pt. Nếu không vậy, mem nào chưa pt thì chỉ cần ấn F3 để gọi hàm Start là nó tự pt. Hoặc có giải pháp khác là viết thêm hàm Playeronline() của mem các bạn thêm lệnh if(playerid = id chu pt) { ts.requestParty(idchupt) } thì nó sẽ tự pt ngay khi chu pt online (TH bạn vào không theo thứ tự chu pt đầu và sau đó đến các mem) Tuy nhiên tôi thấy không cần phức tạp vậy. Script càng đơn giản thì tính hiệu quả càng cao, chạy càng đỡ bị dis
Không cần phải nhấn F3. chỉ cần thêm vào function InitBot() dòng ts.requestParty(idchupt) là ok. + thêm playeronline nữa. nghĩa là dù chủ pt login trước hay sau dzi nó cũng auto
Về vấn đề bot Cự Lộc bị dis thì trước mình cũng gặp phải và mất rất nhiều thời gian để khắc phục. Mình xin đưa ra nguyên nhan và cách khắc phục để các bạn tham khảo: Nguyên nhân 1: Là do vấn đề SP và HP (Nhất là TH đang đánh dở bị dis và đây cũng là TH chủ yếu gây đến 80% lỗi dis). Bởi đánh Cự Lộc 1 phút đến gần 6, 7 trận và hồi không kịp mana( dù chỉ bắn tên hết 15SP). Như vậy tầm 1 phút là ăn 3 viên tdut nếu qs trí cao) còn thấp hoặc các bạn dùng các skill như bắn đá (QNV) hoặc loạn kích (huhu 49 SP) hoặc đối với đệ lev1( SP chưa đến 125) thì 1 phút hết phải đến 6 - 8 viên. Các bạn lại không sử dụng tdut của TB để hỗ trợ và kết cục là đến turn sau TB không thể nào đưa được lệnh sử dụng skill của các bạn ---> dis (Ở đây tôi đưa ra 2 giải pháp: Đó là dùng if để nếu SP của mình thấp hơn mức cần để dug skill thì đanh sk =10000 0 tốn SP, đồng thời sử dụng tdut của TB (cách khắc phục tôi đã post) --> kết quả là trước đây tôi ăn 255 vien tdut 0 dùng tdut của TB thì sau 45 phút dis và vào thí thấy hết tdut ^_^ thì này sau 8 tiếng bot (12 dem dến 8h sáng vàot vẫn chạy và còn gần 199 viên ^_^ Eureka) .Nếu không tin các bạn có thể dùng script của tôi hàm PartyStop đê xác định do con nào dis. Sau đó các bạn thay sk của nó bằng 10000, đảm bảo không dis (hợac cho tất = 10000) nếu muốn ^^ Nguyên nhân thứ hai: Ít gặp hơn đó là dis sau khi warp (chủ yếu là warp vào động). Nguyên nhân thì có nhiều nhưng có lẽ là do warp ra quá nhanh không xử lý kịp (với alogin là đen hình ^^) hoặc TB lỗi 2 lệnh ts.warp ở gần nhau. Giải pháp tăng delay giữa 2 lần warp Nguyên nhân thứ 3: Đó là dung speedgear, speedgear có vẻ làm nhanh hơn khi dung alogin tuy nhiên với TB thì không hề. Các bạn chỉ tổ làm tăng tốc độ xử lý script của TB trong khi server TS chưa hề xử lý và send lại cho bạn --> This script may take longer.... (chắc các bạn đã từng bot không lạ câu này). Tôi cũng vậy khi để Speed = 20000 lúc đầu. Sau tôi bỏ Speed đi thì tuyệt.... Tốc độ vẫn vậy mà không hề có báo lỗi đáng ghét. Tuy nhiên, lỗi này ít gây dis, chỉ có thể gây tình trạng cả đội tự dưng đứng yên không đánh. Nguyên nhân thứ 4: Do mạng lag --> dis (vô phương xử lý ^_^. Tin vui là cũng ít xảy ra như vậy). Có thể dung frm.cdelay tuy nhiên sẽ không hiệu quả cho script khi mạng bình thường