Script with Auto Clear Ghost >.<

*Jet007*

The Warrior of Light
Bùn ! Share cho cả nhà script em đang dùng rất tốt , script bot Triệu Chi, tự động đi giải ma ( có ma mới giải =)) ) , có thể đây là thời gian đang thi nên cả nhà bận ôn thi, ko có time ngồi canh đi giải = tay.
Đôi lời về script: Với sc này thì khi mem ăn ma sẽ tự động đi vào Cự Lộc để giải, sau đó warp ra và típ tục đánh, còn chủ pt , khi ăn 2 ma mới đi giải, nên cả nhà đừng thấy bị ăn mới 1 con đã vội vã vào aLogin đi giải nhá, đợi ăn con thứ 2 xem sao nào :-"
OK đây là script :
Chủ pt
PHP:
double DisconnectFlag = 0.1; 	// 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 battle_count = 0;
byte NS_count = 0;
byte myturn = 0;
byte peturn = 0;

byte time = 0;

byte pt1 = 0;
byte pt2 = 0;
byte pt3 = 0;
byte pt4 = 0;

double mapid1 = 12000; 
double mapid2 = 11000;
byte warpid1 = 30;
byte warpid2 = 1;

/***** Chinh sua ID Member o day *****/

uint idmem1 = 808502;
uint idmem2 = 2292954;
uint idmem3 = 2292965;
uint idmem4_sena = 1557035;

/*************************************/

/*********************** My Attack *************************/
public override void MyAttack()
{   
myturn++;
if (myturn == 1)
{
CharacterInfo MyChar = ts.Character; 
//NPCCombatObject Monster = findMonster();	
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 1, 17001);	
}
if (myturn >=2)
{
CharacterInfo MyChar = ts.Character; 
//NPCCombatObject Monster = findMonster();	
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 4, 17001);
}
}


/******************* My Partner Attack *********************/
public override void MyPartnerAttack()
{
peturn++;
if (peturn == 1)
{
CharacterInfo MyWarrior = ts.CurrentPartner; 
//NPCCombatObject Monster = findMonster();	
ts.SendAttack(MyWarrior.Row, MyWarrior.Col, 0, 2, 17001);
}
if (peturn >= 2)
{
CharacterInfo MyWarrior = ts.CurrentPartner; 
//NPCCombatObject Monster = findMonster();	
ts.SendAttack(MyWarrior.Row, MyWarrior.Col, 0, 4, 10000);
}
}


/********************* Battle Started **********************/
public override void BattleStarted()
{
if (ts.Character.ghost >= 2) {ts.Disconnect();}
battle_count++;
myturn = 0;
peturn = 0;
time = 0;
NS_count = 0;
}


/********************* Battle Stoped ***********************/
public override void BattleStopped()
{	
time = 0;
AutoEatFood();
ProcessInventoryAction();
//CheckDisconnect();	
ViewState();
NS_count = 0;
}


/******************* Receive Question *********************/
public override void doRecvQuestion()
{
NS_count++;
}


/******************** Response Answer **********************/
public override void ResponseAnswer()
{		
string tmp=ts.LastQuestion.Replace("=?","");
int ans=ts.Eval(tmp);
byte ans_index=Convert.ToByte(ts.LastAnswers[ans.ToString()]);	
if (NS_count == 3) {ts.Answer(ans_index);ts.SendEnd();ts.SendEnd();}
ts.Answer(ans_index);
}
public override void UnGhostFinished()
{
ts.Warp(1);
}


/******************** NPC Dialog Menu **********************/
public override void NpcDialogMenu(ushort DialogId)
{
debug("Dialog Menu ID = "+DialogId.ToString());
if (DialogId == 4) {ts.SelectChoice(1);ts.SendEnd();}
}


/********************* NPC Dialog ID ***********************/
public override void NpcDialog(ushort DialogId)
{	
//debug("Dialog ID = "+DialogId.ToString());
ts.SendEnd();
}


/********************* On NPC Appear ***********************/
public override void onNPCAppear(ushort npcmapid, int x, int y)
{	
}


/************************ On Timer *************************/
public override void OnTimer()
{
time++;
if (time == 60) {ts.Disconnect();}
}


/**************** Request Party Accept From ****************/

public override void RequestPartyAcceptFrom(uint playerid)
{
if (playerid == idmem1 && ts.Character.ghost <= 1)      {ts.AcceptParty(playerid);}
if (playerid == idmem2 && ts.Character.ghost <= 1)      {ts.AcceptParty(playerid);}
if (playerid == idmem3 && ts.Character.ghost <= 1)      {ts.AcceptParty(playerid);}
if (playerid == idmem4_sena && ts.Character.ghost <= 1) {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(false);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.SetTimerOnOff(false);ts.delay(500);ts.Disconnect();}
if (playerid == idmem2)      {debug(playerid+"  Rời khỏi đội ngủ -> Disconnect !!!");ts.SetTimerOnOff(false);ts.delay(500);ts.Disconnect();}
if (playerid == idmem3)      {debug(playerid+"  Rời khỏi đội ngủ -> Disconnect !!!");ts.SetTimerOnOff(false);ts.delay(500);ts.Disconnect();}
if (playerid == idmem4_sena) {debug(playerid+"  Rời khỏi đội ngủ -> Disconnect !!!");ts.SetTimerOnOff(false);ts.delay(500);ts.Disconnect();}
}


/************************* Start ***************************/
public override void Start()
{ 
if (ts.Character.mapid == mapid1) { 
ts.Warp(warpid1);
return;
} else
if (ts.Character.mapid == mapid2) { 
ts.Warp(warpid2);
return;
} 
} 


/************************** Stop ***************************/
public override void Stop()
{ 
for(byte i=0;i<25;i++){ 
Slot oSlot = (Slot)ts.MyItems[i]; 
Item oItem = (Item)ts.ITEMS[oSlot.itemid.ToString()]; 
if(oSlot.itemid == 0){ continue; }  
debug(oItem.itemname + " at slot " + oSlot.slot.ToString() + " with ID " + oSlot.itemid.ToString(),0); 
} 
}  


/*********************** 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) ;
}


/********************** Warp Finish ************************/
public override void warpFinish()
{
if (ts.Character.ghost >= 2 && ts.Character.mapid == 12011) {ts.Walk(462,515);ts.ClickOnNPC(9);}
if (ts.Character.ghost >= 2 && ts.Character.mapid == 12000) {ts.Warp(6);}
if (pt1 ==1 && pt2 == 1 && pt3 == 1 && pt4 == 1) {Start();}
if (ts.Character.ghost == 0 && ts.Character.mapid == 12000 && ts.Character.x == 830 && ts.Character.y == 1490) {ts.SetTimerOnOff(true);}
}


/********************* Fishish Answer **********************/
public override void FinishAnswer()
{
ts.delay(2000);
Start();
}



/************************ Init Bot *************************/
public override void InitBot()
{	
ts.SetReconnectTime(3);
ts.SetMaxIdleTime(15);
if (ts.Character.mapid == 11000) {ts.Warp(1);}
ts.SetTimerOnOff(true);
AddDropItemList("viênongmật");
AddDropItemList("tựđ uốngthuốc");
AddDropItemList("viên công kích");
AddDropItemList("Thịt Dê khô");
AddDropItemList("Táo đỏ");
AddDropItemList("Bánh Lạc");
AddDropItemList("Nấm Rơm");
AddDropItemList("Rượu Bạch Cang");
ViewState();
if (ts.Character.ghost >= 2 && ts.Character.mapid == 12000) {ts.Warp(6);}
if (ts.Character.ghost == 0 && ts.Character.x == 462 && ts.Character.y ==515 && ts.Character.mapid == 12011) {ts.Warp(1);}
}

public override void Disconnected()
{
ts.SetTimerOnOff(false);
}
attachment.php
 

Attachments

  • s.gif
    s.gif
    53.3 KB · Đọc: 853
Member
PHP:
double DisconnectFlag = 0.1; 	// 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 time = 0;

byte battle_count = 0;
byte NS_count = 0;
byte myturn = 0;
byte peturn = 0;


/******** Chinh sua ID  o day ********/

uint idchupt = 289563;


/*************************************/

/*********************** My Attack *************************/
public override void MyAttack()
{   
myturn++;
if (myturn == 1)
{
CharacterInfo MyChar = ts.Character; 
//NPCCombatObject Monster = findMonster();	
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 2, 17001);	
}
if (myturn >=2)
{
CharacterInfo MyChar = ts.Character; 
//NPCCombatObject Monster = findMonster();	
ts.SendAttack(MyChar.Row, MyChar.Col, 0, 2, 17001);
}
}


/******************* My Partner Attack *********************/
public override void MyPartnerAttack()
{
peturn++;
if (peturn == 1)
{
CharacterInfo MyWarrior = ts.CurrentPartner; 
//NPCCombatObject Monster = findMonster();	
ts.SendAttack(MyWarrior.Row, MyWarrior.Col, 0, 2, 12003);
}
if (peturn >= 2)
{
CharacterInfo MyWarrior = ts.CurrentPartner; 
//NPCCombatObject Monster = findMonster();	
ts.SendAttack(MyWarrior.Row, MyWarrior.Col, 0, 4, 17001);
}
}


/********************* Battle Started **********************/
public override void BattleStarted()
{
CheckGhost();
battle_count++;
myturn = 0;
peturn = 0;
time = 0;
}


/********************* Battle Stoped ***********************/
public override void BattleStopped()
{	
AutoEatFood();
ProcessInventoryAction();
//CheckDisconnect();
NS_count = 0;
time = 0;
}

void CheckGhost()
{
if (ts.Character.ghost >= 1) {ts.Disconnect();}
}

/******************* Receive Question *********************/
public override void doRecvQuestion()
{
NS_count++;
}


/******************** Response Answer **********************/
public override void ResponseAnswer()
{		
string tmp=ts.LastQuestion.Replace("=?","");
int ans=ts.Eval(tmp);
byte ans_index=Convert.ToByte(ts.LastAnswers[ans.ToString()]);	
if (NS_count == 3) {ts.Answer(ans_index);ts.SendEnd();ts.SendEnd();}
ts.Answer(ans_index);
}
public override void UnGhostFinished()
{
ts.Warp(1);
}
/******************** NPC Dialog Menu **********************/
public override void NpcDialogMenu(ushort DialogId)
{
debug("Dialog Menu ID = "+DialogId.ToString());
if (DialogId == 4) {ts.SelectChoice(1);ts.SendEnd();}
}


/********************* NPC Dialog ID ***********************/
public override void NpcDialog(ushort DialogId)
{	
//debug("Dialog ID = "+DialogId.ToString());
ts.SendEnd();
}


/************************ On Timer *************************/
public override void OnTimer()
{
time++;if (time == 60) {ts.Disconnect();}
ts.RequestParty(idchupt);
}


/************************* Start ***************************/
public override void Start()
{
debug("Request Party ..........");
ts.RequestParty(idchupt);
}


/************************** Stop ***************************/
public override void Stop()
{ 
for(byte i=0;i<25;i++){ 
Slot oSlot = (Slot)ts.MyItems[i]; 
Item oItem = (Item)ts.ITEMS[oSlot.itemid.ToString()]; 
if(oSlot.itemid == 0){ continue; }  
debug(oItem.itemname + " at slot " + oSlot.slot.ToString() + " with ID " + oSlot.itemid.ToString(),0); 
} 
}  


/*********************** 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) ;
}





/********************** Warp Finished **********************/
public override void warpFinish()
{
if (ts.Character.ghost >= 1 && ts.Character.mapid == 12011) {ts.Walk(462,515);ts.ClickOnNPC(9);}
if (ts.Character.ghost >= 1 && ts.Character.mapid == 12000) {ts.Warp(6);}
if (ts.Character.ghost == 0 && ts.Character.mapid == 12000) {ts.SetTimerOnOff(true);}
}


/********************** Disconnected ***********************/
public override void Disconnected()
{
ts.SetTimerOnOff(false);
}





/************************ Init Bot *************************/
public override void InitBot()
{
if (ts.Character.mapid==11000 && ts.Character.ghost == 0) {ts.Warp(1);ts.SetTimerOnOff(true);}	
if (ts.Character.mapid==11000 && ts.Character.ghost >= 1) {ts.Warp(1);}	
ts.SetReconnectTime(3);
ts.SetMaxIdleTime(15);
ViewState();
debug("Login Okie");
if (ts.Character.ghost >= 1 && ts.Character.mapid == 12000) {ts.Warp(6);}
if (ts.Character.ghost == 0 && ts.Character.x == 462 && ts.Character.y ==515 && ts.Character.mapid == 12011) {ts.Warp(1);ts.SetTimerOnOff(true);}
if (ts.Character.ghost == 0 && ts.Character.mapid == 12000) {ts.SetTimerOnOff(true);}
AddDropItemList("viênongmật");
AddDropItemList("tựđ uốngthuốc");
AddDropItemList("viên công kích");
AddDropItemList("Thịt Dê khô");
AddDropItemList("Táo đỏ");
AddDropItemList("Bánh Lạc");
AddDropItemList("Nấm Rơm");
AddDropItemList("Rượu Bạch Cang");
AddDropItemList("ThuốcThôngPhổi");
AddDropItemList("Bánh Lạc Hành");
}
 
Nói thêm là sc này tui sài good với ver mới nhất ( tức 2.6.1 )
Chúc vui

Nếu cả nhà có hứng thú viết script tự giải ma các gate khác cũng như Bot NPC thì chúng ta có thể giúp nhau :)
 
có thể cho biết nick yahoo không em cũng đang học c# và cũng thử viết scritp, em có chút chuyện muốn hỏi cũng như trao đổi và học tập ý mà . :D
 
wao ! tốt quá ! bác cho em hỏi nếu thay ở sông bằng CL thì phải sửa ở đâu cái !
hehe ! đúng thứ mình cần
30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả30 chả
 
Sửa hết cái script luôn, mỗi nơi mỗi khác :D

30 charr rrrr r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r
 
tui bot TG nhưng khi thằng chủ pt nó đi giải ma về thì nó đứng ngay ngoài cổng nó ko lên đài để đánh TG nữa mà nó cứ đứng mặt đực ở cửa ra vào đó.
giúp em với nhé
 
Cho hỏi viết scrip chống hút pt như thế nào vậy. Dao này hay có vụ hút pt phá nhau quá
 
Mã:
Sửa hết cái script luôn, mỗi nơi mỗi khác
em nghĩ khác chứ cài này không nhất thiết phải sửa hết script mình chỉ cần sửa lại tọa độ walk và warp khi đi giải ma thôi
Mã:
if (ts.Character.ghost >= 1 && ts.Character.mapid == 12000) {ts.Warp(6);} 
if (ts.Character.ghost == 0 && ts.Character.x == 462 && ts.Character.y ==515 && ts.Character.mapid == 12011) {ts.Warp(1);ts.SetTimerOnOff(true);} 
if (ts.Character.ghost == 0 && ts.Character.mapid == 12000) {ts.SetTimerOnOff(true);}
ví dụ trong cái hàm InitBot
phân tích cái này em nghĩ là hiểu ngay phải hem anh Jet ( gọi anh vì khôgn biết gọi thế nào )
việc viết cai walk và warp cho từng địe điểm bot thì cũng như viết script taxi Cư Lộc vô trong Trương Bửu ý mà, không biết đúng không anh Jet. Mà anh cho em nick Yahoo đi em có thể hỏi chút vấn đề được hem
 
oh yeah wá ngon đó đại ca ơi em mong đại ca tiếp tục pot thêm nhiều nhiều các bản ở các nơi khác nữa cho bọn gà tụi em ăn theo
 
oh yearhhhhh cam on anh jet nhiu` lam`
em dang can` 1 cai script moi vi` script cua em toan` dí ma` reconnec cung~ lau
gio` duoc anh chi giao roi` thanhks anh nhiu` nhiu` nhiu`
 
Đêm qua chat với Jet về vụ tại sao Jet lại cầu xin Trường Script triệu chỉ , sau khi chat xong Jet nói chơi lại và làm ra các script trên , anh thật sự bái phục em đấy dù mất host script nhưng vẩn làm dc cái khác ;))
 
Mình đề nghị nên viết tất cả các bước giải ma vào thành 1 hàm RemoveGhost()
Trong warpFinish() và InitBot() chỉ cần cho hàm này vào
Ví dụ như sau:
/********************** Warp Finished **********************/
public override void warpFinish()
{
RemoveGhost();
}
và:
public override void InitBot()
{
RemoveGhost();
.....................}
Sau này khi cần giải ma ở các map khác hoặc post scrip giải ma ở map khác chỉ cần post đoạn RemoveGhost(); lên cho mọi người copy và paste thay đoạn RemoveGhost(); cũ là được
 
Ở chỗ cầu Triệu Chi có 2 con Phong đứng 2 bên nhưng lại không biết vị trí 2 con Phong là gì để cho con agi cao đánh và 1 con Tuyền Phong nhưng lại không biết vị trí 2 con đó .
Ai biết chỉ giùm với
 
Vị trí là 0.0 và 0.4 , canh chính xác mà bem bay đầu nó nghen #>:) , save mp sao khó quá trời ơi ai cứu tui ;))
 
ai co scrip bot truong giac' ma tu dong giai? ma cho em xin voi tim mai~ ma ko co srcip bot truong giac tu dong giai? ma de cam chuot cho de~ hoi ti la gap ma a`
anh Jet co cho em voi hic hic anh pót som nha
 
Back
Top