Skip to content
봇관련다크 모드

XP2.3h / FollowXP.d2j 수정 - "BO" 커맨드 문제

조회 수
1,586
추천 수
1
등록일

현재는 쫄봇이 -콜투암을 쓰지않는- 바바리안이고 배틀오더 스킬이 있는 경우,

"bo" 커맨드로 리더에게 BO를 줄수 없는 문제가 있습니다.

현재는 콜투암 만을 이용할 수 있게 되어있습니다. 역시 FollowXP.d2j는 '날림' 이었습니다.

"bo" 커맨드 처리를 콜투암 사용 뿐 아니라 follower-바바의 스킬을 사용할 수 있게 합니다.


1. FollowXP.d2j 에서

function gameMsg(m, c) {

에서, 다음 BO command 관련 else if 절을 수정합니다.

 .....
 
 // BO command
 else if (cmd == "bo" && (DA_UseCTA || DC_CheckSkill(149)) && !DC_InTown(me)) {

 _leader = getUnit(0, _FWXP_LeaderName);
 if (_leader) {

 commPather.GotoDest(_leader.x, _leader.y);
 
 if (me.classid == 4 && !DA_UseCTA) { //7.13수정-TT 
 var _temp = DA_Refresh;
 DA_Refresh = true;
 XP_Precasts();
 DA_Refresh = _temp;
 } else DA_UseCTASkills();
 }
 }





2. 쫄봇-바바 캐릭 콘픽 중

다음 부분을 수정합니다.

function XP_BarbarianConfig() {

/////////////////////////////////////////////////////////////////////////////////////////////
// Precasting configuration

DA_UseCTA=false;
DA_AutoPrecasts=false;
DA_Refresh = true; //Set to true to refresh your precasts by default, if DA_AutoPrecasts is false
XP_AutoBOCheck=true;
XP_AutoRefresh = true;
XP_RefreshLoops = 5;
XP_BattleCommand=true;
XP_BattleOrders=true;
XP_Shout=true;

////////////////////////////////////////////////////////////////////////////////////////////////
// Attack configuration (this include area clearing configuration)



3. 응용

리더봇이 바알봇을 수행하고, 쫄봇 바바가 리더에게 배틀오더스를 주고자 할 때.

(봇질문란에 흰여울님이 질문하셨던 문제의 해결책 이기도 합니다.)
http://www.durune.com/bbs/zboard.php?id=dia3_xfile&page=3&sn1=&divpage=6&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=28425


위 1, 2번 을 수정하고

바알봇(BaalXP.d2j) 에서
function BXP_MakeTP( pX, pY ) {
....
...
 say ("1");
 아래에 추가

 //delay(3000); // <-- 바바가 leecher거나 다른 리쳐모드 쫄봇이 있다면 추가할 필요 있음
 var _currHpMax = me.hpmax;
 say("bo");
 delay(3000); // BO 시전 받는 동안 딜레이

 if (me.hpmax >_currHpMax) { // BOed check
 _BXP_BOCast = true;
 //say("! ty Dude!");
 }

}


댓글 9
  • 댓글 #152463

    정말 봇 스크립트 수정하시고 부분적으로 새로운 기능 추가하시는분들 보면 대단하시다는 생각밖에 안듭니다^^ thething 님 감사합니다~ 지금 얼른 수정해서 테스트해봐야겠네요..
  • 댓글 #152466

    저의 경우는 BaalXP.d2j 안에 BXP_MakeTP 함수안에 say("1"); 명령어가 없네요. // Say the message now along with the follow command if we set to teambot mode if (XP_RunMode > 1) { say("tp up"); say ( XP_TPMessage ); say("follow me"); } say ("Be careful!"); say 명령어는 이것밖에 없는데 이 밑부분이 맞는지 모르겠네요..
  • 댓글 #152469

    감사합니다. 리더 "bo" 메시지에 따라서 함성 잘 하네요. ^^ 그런데.. 아래 부분이 제 스크립에는 없답니다.(공중부양final버전) 2.3h 스크립에도 없던데요. 위치를 정확히 몰라서 function BXP_MakeTP( pX, pY ) { 부분 제일 하단에 넣었습니다. //XP_DoSafeCheck(); // Clear the TP spot XP_ClearPosition(25); DSN_PickItems(XP_IdItems); say ( BXP_TPMessage ); //delay(3000); // <-- 다른 리쳐모드 쫄봇이 있다면 추가 var _currHpMax = me.hpmax; say("bo"); delay(4000); if (me.hpmax >_currHpMax) { _BXP_BOCast = true; say("! I got BO! ty Dude."); }//여기까지 ======================================================================================= 바알봇(BaalXP.d2j) 에서 function BXP_MakeTP( pX, pY ) { .... ... say ("1"); // 이 부분이 없어요. 아래에 추가 ======================================================================================= 그랬더니 BXP_TPMessage 함수 후에 기사가 "bo"를 외치게 되는데요. 캐릭 컨피그의 XP_TPLeechMessage = "tp clear"; 후에 쫄이 들어오게 되는데 "bo"는 이미 한참 전에 리더가 중얼거린 상태가 되네요. ^^; 뭐 저는 바알xp에서 편법으로 "bo"를 넣어줘서 어차피 받긴 하지만요. 그부분은 좀 아쉽지만, 리더의 "bo"에 따라서 함성을 하니 목적은 달성했네요. ^^ 거듭 감사드립니다.
  • 댓글 #152472

    음.. 오리지널 코드에는 세이1이 없군요 ^^; 암튼 맨 하단... 쫄이 "tp up" 메시지 받고 3초내에 들어와야 하는데, 필요하다면 딜레이를 더 줘야 할듯 합니다. function BXP_MakeTP( pX, pY ) { ..... ..... // Wait 3 seconds and kill any stray monsters coming near _waitdelay = 3000; while ( _waitdelay > 0 ) { // If there is monsters around, kill them if (XP_IsMonstersNearby(20)) { XP_KillMonsters(20); commPather.GotoDest(_currx,_curry); } DC_DoDel(500); _waitdelay = _waitdelay - 500; } // <================== 여기 삽입 }
  • 댓글 #152475

    위대로 하면 여전히 BXP_TPMessage 후에 리더가 "bo"를 챗창에 쓰게 되네요. XP_TPLeechMessage = "tp clear"; 후에 쫄이 들어오게 되니 그 부분에 추가 시켜 봤습니다. 아래 부분에 function BXP_ClearFrontTP() { // Path from entrance to TP spot in back right commPather.GotoDest(15113,5004,20,false,false); // Send a TP here for fighting followers to join after clearing the spot if (XP_RunMode > 0) { // Clear the spot, make TP then call followers BXP_MakeTP( 15113,5004 ); } // Do the top part commPather.GotoDest(15095,5024,20,BLXP_KillMonsters,false); commPather.GotoDest(15078,5013,20,BLXP_KillMonsters,false); commPather.GotoDest(15085,5031,20,BLXP_KillMonsters,false); commPather.GotoDest(15093,5040,20,BLXP_KillMonsters,false); commPather.GotoDest(15114,5035,20,BLXP_KillMonsters,false); // Call the Leechers in now if (XP_RunMode > 1) { say( XP_TPLeechMessage ); } // Clear the back section commPather.GotoDest(15112,5068,20,BLXP_KillMonsters,false); commPather.GotoDest(15075,5065,20,BLXP_KillMonsters,false); commPather.GotoDest(15075,5045,20,BLXP_KillMonsters,false); commPather.GotoDest(15114,5045,20,BLXP_KillMonsters,false); //delay(3000); // <-- 다른 리쳐모드 쫄봇이 있다면 추가 var _currHpMax = me.hpmax; say("bo"); delay(5000); // 팔라가 너무 명랑해서 많이 줬습니다. if (me.hpmax >_currHpMax) { _BXP_BOCast = true; say("I got BO! ty Dude."); }//여기까지 } 여기에 추가하니 "tp clear" 외친후 쫄이 들어오고 "bo"를 리더가 챗창에 쓰게 되니 함성을 받을 수 있네요. 그리고 꼼수로 미니언 나올때 프리캐스트 부분에 "bo" 메시지를 쓰게 해서 함성 받도록 했습니다. // Cast preliminary skills before wave spawn function BXP_PreAttack(){ //* // If we are in a public game, tell to all to do next game //if (XP_RunMode > 0) {say ("bo");}//이렇게 하고 아래 주석처리하면 너무 자주 외쳐요. if (XP_RunMode > 0) { switch (parseInt(Math.random() * 10)) { case 0: say("bo"); break;//미니언 나오기전 함성 case 1: say(""); break; case 2: say(""); break; case 3: say(""); break; case 4: say(""); break; case 5: say(""); break; case 6: say(""); break; case 7: say(""); break; case 8: say(""); break; case 9: say("bo"); break; } }//*/ 2~3번만 "bo"를 써주면 적당하네요. thething님 덕분에 이젠 다 해결 되었습니다. 감사합니다.
  • 댓글 #152481

    2.3c에도 이것이 적용이되는건가요..? 아님 2.3h로 바꿔서 해야하는거에여? 허접한 질문이지만...ㅡㅡㅋ
권한이 없습니다.
다크 모드