PHP: double DisconnectFlag = 0.3; // Disconnect when current HP is below 30% double hpFractionEat = 0.8; //Eat HP when current HP<= 80% double spFractionEat = 0.8; double hpFraction = 0.95; //Eat until current HP >= 95 % double spFraction = 0.95; byte DisconFai = 00; // Faith of warrior to disconnect //byte NS_count = 0; string state=""; byte pt_count = 0; byte time = 0; byte pt1 = 0; byte pt2 = 0; byte pt3 = 0; byte pt4 = 0; /***** Chinh sua ID Member o day *****/ uint idmem1 = 2297435; uint idmem2 = 414281; uint idmem3 = 2193188; uint idmem4_sena = 817650; public override void MyAttack() { CharacterInfo MyChar = ts.Character; ts.SendAttack(MyChar.Row, MyChar.Col, 0, 2, 10000); } public override void MyPartnerAttack() { CharacterInfo MyWarrior = ts.CurrentPartner; ts.SendAttack(MyWarrior.Row, MyWarrior.Col, 0, 2, 10000); } /********************* Battle Started **********************/ public override void BattleStarted() { time=0; } /********************* Battle Stoped ***********************/ public override void BattleStopped() { AutoEatFood(); ProcessInventoryAction(); CheckDisconnect(); ViewState(); time=0; ts.SendEnd(); } public override void doRecvQuestion() { state="BTQ"; } public override void ResponseAnswer() { int dtime= 1; debug("Delay "+dtime.ToString()+" before answer."); ts.delay(dtime*1000); string tmp=ts.LastQuestion.Replace("=?",""); int ans=ts.Eval(tmp); byte ans_index=Convert.ToByte(ts.LastAnswers[ans.ToString()]); debug("Answer choice:"+ans_index.ToString()); ts.Answer(ans_index); } public override void onPlayerWalk(uint uid, ushort x, ushort y) { if (uid > 1 && uid < 501) { debug("GM den roi chay thoi",0xFF0000); ts.Disconnect(false); } } /******************** NPC Dialog Menu **********************/ public override void NpcDialogMenu(ushort DialogId) { debug("Dialog Menu ID = "+DialogId.ToString()); } /********************* NPC Dialog ID ***********************/ public override void NpcDialog(ushort DialogId) { debug("Dialog ID="+DialogId.ToString()); if(DialogId == 12249) { ts.ClickOnNPC(50); ts.ClickOnNPC(50); ts.SendEnd(); return; } ts.SendEnd(); } /************************ On Timer *************************/ public override void OnTimer() { time++; if (time == 20) {Start();} if (time == 40) {Start();} if (time == 60) {Start();} } public override void RequestPartyAcceptFrom(uint playerid) { if (playerid == idmem1 && ts.Character.ghost <= 2) {ts.AcceptParty(playerid);} if (playerid == idmem2 && ts.Character.ghost <= 2) {ts.AcceptParty(playerid);} if (playerid == idmem3 && ts.Character.ghost <= 2) {ts.AcceptParty(playerid);} if (playerid == idmem4_sena && ts.Character.ghost <= 2) {ts.AcceptParty(playerid);} } /********************* Accepted Party **********************/ public override void AcceptedParty(uint playerid) { if (playerid == idmem1) {debug(playerid + " Gia nhập đội ngũ");pt1 = 1;} if (playerid == idmem2) {debug(playerid + " Gia nhập đội ngũ");pt2 = 1;} if (playerid == idmem3) {debug(playerid + " Gia nhập đội ngũ");pt3 = 1;} if (playerid == idmem4_sena) {debug(playerid + " Gia nhập đội ngũ");pt4 = 1; ts.Sena(idmem4_sena);debug(playerid + " Làm Quân Sư");} if (pt1 == 1 && pt2 == 1 && pt3 == 1 && pt4 == 1) { ts.SetTimerOnOff(true); ts.delay(1000); debug("Đội ngũ đã đầy -> Start");Start();} } /*********************** Party Stop ************************/ public override void PartyStop(uint playerid) { if (playerid == idmem1) {debug(playerid+" Rời khỏi đội ngủ -> Disconnect !!!");ts.Disconnect();} if (playerid == idmem2) {debug(playerid+" Rời khỏi đội ngủ -> Disconnect !!!");ts.Disconnect();} if (playerid == idmem3) {debug(playerid+" Rời khỏi đội ngủ -> Disconnect !!!");ts.Disconnect();} if (playerid == idmem4_sena) {debug(playerid+" Rời khỏi đội ngủ -> Disconnect !!!");ts.Disconnect();} } /************************* Start ***************************/ public override void Start() { ts.delay(1000); ts.ClickOnNPC(50); ts.SendEnd(); } /********************* Fishish Answer **********************/ public override void FinishAnswer() { ts.delay(2000); ts.ClickOnNPC(50); ts.SendEnd(); } void ViewState() { debug(" Số con ma : " + ts.Character.ghost ,0xFF0000) ; } /************************ Init Bot *************************/ public override void InitBot() { AutoEatFood(); ts.SetReconnectTime(3); ts.SetMaxIdleTime(15); AddDropItemList("viênongmật"); AddDropItemList("tựđ uốngthuốc"); AddDropItemList("viên công kích"); AddDropItemList("Quả Đào"); AddDropItemList("Búp bê TrgGiác"); ViewState(); }
Bạn gửi luôn cái script member luôn nha, nếu gửi luôn thì cảm ơn bạn nhìu. Mà cho mình hỏi cái này có giải quyết luôn cái vụ bị dứng ngay DialogID ko?
Hình như ..khi đứng dialog nó vẩn Không gọi start thì phải nó chỉ có tác dụng khi chưa vào trận Khi vào trận rùi thì không được mặc dù trong hàm Battlestop.. và Battlestart... đã gán time =0 hic lần sau test rùi post nhen ::(
Script đã test rùi.Sau khi lagg 20s nó sẽ tự động đánh tiếp Còn đây là script member PHP: double DisconnectFlag = 0.3; // Disconnect when current HP is below 30% double hpFractionEat = 0.8; //Eat HP when current HP<= 80% double spFractionEat = 0.3; double hpFraction = 0.95; //Eat until current HP >= 95 % double spFraction = 0.95; byte DisconFai = 00; // Faith of warrior to disconnect byte battle_count = 0; byte NS_count = 0; string state=""; /***** Chinh sua ID chu Party o day *****/ uint idchupt = 0; public override void MyAttack() { CharacterInfo MyChar = ts.Character; ts.SendAttack(MyChar.Row, MyChar.Col, 0, 2, 12003); } public override void MyPartnerAttack() { CharacterInfo MyWarrior = ts.CurrentPartner; ts.SendAttack(MyWarrior.Row, MyWarrior.Col, 0, 2, 10000); } /********************* Battle Started **********************/ public override void BattleStarted() { battle_count++; } /********************* Battle Stoped ***********************/ public override void BattleStopped() { AutoEatFood(); ProcessInventoryAction(); CheckDisconnect(); ViewState(); } public override void doRecvQuestion() { state="BTQ"; } public override void ResponseAnswer() { int dtime= 2; debug("Delay "+dtime.ToString()+" before answer."); ts.delay(dtime*1000); string tmp=ts.LastQuestion.Replace("=?",""); int ans=ts.Eval(tmp); byte ans_index=Convert.ToByte(ts.LastAnswers[ans.ToString()]); debug("Answer choice:"+ans_index.ToString()); ts.Answer(ans_index); } public override void onPlayerWalk(uint uid, ushort x, ushort y) { if (uid > 1 && uid < 501) { debug("GM den roi chay thoi",0xFF0000); ts.Disconnect(false); } } /************************ On Timer *************************/ public override void OnTimer() { ts.RequestParty(idchupt); } /************************* Start ***************************/ public override void Start() { debug("Request Party .........."); ts.RequestParty(idchupt); } /************************** Stop ***************************/ public override void Stop() { } /*********************** View State ************************/ void ViewState() { debug("************************************************** **********************",255) ; debug(" Số trận đánh : " + battle_count ,255) ; debug(" HP của "+ts.Character.CharName+" = " + ts.Character.HP +" "+ "/" +" "+ ts.Character.MAXHP,255); debug(" HP của "+ts.CurrentPartner.CharName +" = " + ts.CurrentPartner.HP + " "+"/" +" "+ ts.CurrentPartner.MAXHP +" "+" FAI = " + ts.CurrentPartner.fai,255); debug(" Số lần gặp BTQ : "+ NS_count +" Số con ma : " + ts.Character.ghost ,255) ; debug("======= Script by Jet007 - Copy Right GameVN-™ =======",255) ; } /********************* Accepted Party **********************/ public override void AcceptedParty(uint playerid) { if (playerid == idchupt) {debug("Join to " + playerid);} } /************************ Party Stop ***********************/ public override void PartyStop(uint playerid) { if (playerid == idchupt) {debug(idchupt+ " Giải tán đội ngũ ...");} } /************************ Init Bot *************************/ public override void InitBot() { AutoEatFood(); if (ts.Character.ghost <= 2) {ts.SetTimerOnOff(true);} else {ts.SetTimerOnOff(false);} ts.SetReconnectTime(3); ts.SetMaxIdleTime(15); AddDropItemList("viênongmật"); AddDropItemList("tựđ uốngthuốc"); AddDropItemList("viên công kích"); AddDropItemList("Búp bê TrgGiác"); ViewState(); debug("Login Okie"); }
Hãy đọc kĩ funtion trước khi nói.Khi pt full thì hàm ts.SetTimerOnOff() được gán giá trị là true khi đó hàm OnTimer() sẽ có tác dụng.Còn time = 0 khi khởi đầu và kết thúc trận đấu như vậy hàm OnTimer() mới có tac dụng.
anh ui,khi GM đến nó có tự động díconnec không zịa? Nếu có thì tốt quá, còn nếu không thí phải làm sao
var state = "" var ghost_count = 0; var god_count = 0; var hpFraction = 0.95; var spFraction = 0.95; var warp_back = 0; var flag_stop = 0; var turn1 = 0; var turn2 = 0; var time = 0; //my vars //Chinh sua o duoi !!! var mapid1 = 12013; var mapid2 = 12521; var warpid1 = 1; var warpid2 = 5; var id_chupt = 111111; var id_ptmem1 = 222222; var id_ptmem2 = 333333; var id_ptmem3 = 444444; var id_ptmem4 = 555555; var id_quansu = ******; function MyAttack(){ turn1++; if (turn1 == 1) { sk = SkillID("Fire Arrow"); ts.SendAttack( ts.Character.Row , ts.Character.Col , 0 , 2 , sk ) } if (turn1 >= 2) { sk = SkillID("Attack"); ts.SendAttack( ts.Character.Row , ts.Character.Col , 0 , 4 , sk ) } } function MyPartnerAttack(){ turn2++; if (turn2 == 1) { sk = SkillID("Fire Arrow"); ts.SendAttack( ts.CurrentPartner.Row , ts.CurrentPartner.Col , 1 , 2 , sk ) } if (turn2 >= 2) { sk = SkillID("Defend"); ts.SendAttack( ts.CurrentPartner.Row , ts.CurrentPartner.Col , ts.CurrentPartner.Row , ts.CurrentPartner.Col , sk ) } } function BattleStarted(){ turn1 = 0; turn2 = 0; warp_back = 0; flag_stop = 0; time = 0; } function BattleStoped(){ SaveWarrior(); EatHP(); EatSP(); //DoSendItem() } function EatHP(){ if (ts.Character.HP < (ts.Character.MAXHP * hpFraction)){ doEatHP(0,(ts.Character.MAXHP * hpFraction)-ts.Character.HP) } if (ts.CurrentPartner.HP < (ts.CurrentPartner.MAXHP * hpFraction)){ doEatHP(ts.CurrentPartner.Order,(ts.CurrentPartner .MAXHP * hpFraction)-ts.CurrentPartner.HP) } } function EatSP(){ if (ts.Character.SP < (ts.Character.MAXSP * spFraction)){ doEatSP(0,(ts.Character.MAXSP * spFraction)-ts.Character.SP) } if (ts.CurrentPartner.SP < (ts.CurrentPartner.MAXSP * spFraction)){ doEatSP(ts.CurrentPartner.Order,(ts.CurrentPartner .MAXSP * spFraction)-ts.CurrentPartner.SP) } } function SaveWarrior(){ if(ts.CurrentPartner.HP< 10){ frm.mnuEnableReconnect.Checked = false; ts.Disconect(); debug(" Cuu nguoi tren het! Disconnect nha! : ",0x0000FF) } } function onEvilGod(){ ghost_count++ debug("E V I L G O D."+"["+ghost_count+"]",0x0000FF) } function onLuckyGod(){ god_count++; 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(){ if(ghost_count>=2){ debug("2 con ma rui! Disconnect thoi!",0x00aaaa) ts.Disconect(); } } function doEatHP(order,difHp){ for(var i = 1;i<= 25 ;i++){ var oSlot = ts.MyItems.Item(i) var oItem = ITEMS.Item(oSlot.itemid) if (oSlot.itemid == 0){ continue; } if(oItem.isHPItem()){ if (oItem.itemvalue > difHp){ continue; } var eatHpAmt = (difHp - (difHp % oItem.itemvalue)) / oItem.itemvalue if (eatHpAmt> 0){ if (eatHpAmt > oSlot.num){eatHpAmt = oSlot.num; } ts.EatItem(i,eatHpAmt,order) debug( "?"+oItem.itemname+" HP "+oItem.itemvalue+"at slot "+i+" decrease "+eatHpAmt+"?" ,0xC08008 ) difHp = difHp - eatHpAmt * oItem.itemvalue } } } } function doEatSP(order,difSp){ for(var i = 1;i<= 25 ;i++){ var oSlot = ts.MyItems.Item(i) var oItem = ITEMS.Item(oSlot.itemid) if (oSlot.itemid == 0){ continue; } if(oItem.isSPItem()){ if (oItem.itemvalue > difSp){ continue; } var eatSpAmt = (difSp - (difSp % oItem.itemvalue)) / oItem.itemvalue if (eatSpAmt> 0){ if (eatSpAmt > oSlot.num){eatSpAmt = oSlot.num; } ts.EatItem(i,eatSpAmt,order) debug( "?"+oItem.itemname+" SP "+oItem.itemvalue+"at slot "+i+" decrease "+eatSpAmt+"?" ,0xC08008 ) difSp = difSp - eatSpAmt * oItem.itemvalue } } } } /*function DoSendItem() { for(var i=1;i<=25;i++){ var oSlot = ts.MyItems(i); if( oSlot.itemid == 0){ continue; } var oItem = ITEMS.Item(oSlot.itemid); var itemname = oItem.getName(); if( (itemname == "AutoAttackPill" || itemname == "Honey pill" || itemname == "AutoTonicPill" || itemname == "Yellow wine" || itemname == "Saltedshoots" || itemname == "ZhuoScroll" || itemname == "HasteScroll") && oSlot.num ==50){ ts.SendItemTo(1572417,oSlot.slot,oSlot.num); } else { if ((itemname == "Blood tonic" || itemname == "6HerbPotion" || oSlot.itemid == 27035 || itemname == "ZhongYuanDew" || itemname == "RefreshPill") && oSlot.num ==50) {ts.SendItemTo(1572417,oSlot.slot,oSlot.num);} } } }*/ function PlayerOnline( playerid ){ if (playerid == id_chupt) { if (ts.Character.mapid==12012) {ts.Warp(2);} if (ts.Character.mapid==mapid2) {ts.warp(warpid2);} } } function Start(){ } function Stop(){ } function InitBot(){ debug("login okie", 0x00FF00) EatHP(); EatSP(); if (ts.Character.mapid==12012) {ts.Warp(2);} if (ts.Character.mapid==mapid2) {ts.warp(warpid2);} frm.mnuAutoEat.Checked = false; frm.mnuEnableReconnect.Checked = true; Timer.Enabled = true; } function OnTimer(){ if (ts.Character.mapid==12012) {time++; if (time ==5) {time = 0; ts.Warp(2);}} if (ts.Character.mapid==mapid2) {time++; if (time ==5) {time = 0; ts.Warp(warpid2);}} } function PartyStop( playerid ){ if(playerid == id_chupt || playerid == id_ptmem1 || playerid == id_ptmem2 || playerid == id_ptmem3 || playerid == id_ptmem4){ if (ts.Character.mapid==12012) {ts.Warp(2);} if (ts.Character.mapid==mapid2) {ts.warp(warpid2);} } } function warpFinish(){ if (ts.Character.mapid==10952) {ts.Walk(902,875);ts.delay(1000);ts.delay(1000);ts .warp(1);} } InitBot() debug("Ti`nh trang hien nay: " + ts.Character.Ghost + " con ma!",0xFF9933)
Hic. Bot TG thích thật nhưng bị vô tù rồi ::( ::( . Huhu. Ra tù không biết nên bot TG tiếp không . Hic Hic
Script này có cái rất hay là sau khi khựng hay lag 20 giây thì nó start tiếp (đọc sơ qua thì thấy vậy chứ chưa test ) . Nếu thật sự nó ko khựng thì đây là tin mừng với anh em. (bot ko cần phải canh) . Mà tui cũng đang sở hữu 1 script bot ko khựng (nếu 2-3 team xài cùng script này thì ko khựng, nhưng có team khác vào mà sử dụng script khác thì cả 4 team đứng hết ) chỉ cần bỏ hàm delay khi nhấn thùng là đc.
Cai Script nay gap btq co khi thi chu pt dis co khi thi bi khung lai co cach nao khac phuc duoc ko vay
bạn qua only script trubot + leng@ kìa có bạn gì post script TG có tự động giải ma và gọi hàm Start lun á
Híc, sao mình bot TG mà sau khi pt đầy đủ thì trong bảng thông báo của Leng@ nó chỉ hiện: Dialog ID=10140 Dialog ID=12215 Dialog ID=12119 Bắt đầu trận đấu Đại.Ph.Tướng Cấp=10 HP=59/59 Đại.Ph.Tướng Cấp=10 HP=59/59 Trương Giác Cấp=120 HP=1299/1299 Chờ người chơi điều khiển Ngừng kết nối với máy chủ !!! vậy?????