XP 봇, 네크 해골 만들기 (7차수정)
분류
봇관련
조회 수
2,109
추천 수
1
%% 구정강란은 수정편집이 안되서 여기다 다시 올린겁니다. %%
xp 봇을 테스트 하던중 네크인 경우 해골을 안만들더군요.
그래서 코드를 보니, 다른 케릭들 사냥전 준비행동은 거의다 있는데,
유독, 네크 행동은 전혀 없더군요.
그래서, 원래 네크용 코드가 xp봇에는 없는가 하고 찾아 봣더니
웬걸, 코드는 다 있는데, 각 보스 스크립에서 네크가 고려 되지
않았다는 걸 알았습니다.
그래서, 몇가지 수정을 통해서 해골만들기를 넣었습니다.
1단계는,
네크로 콘피그 파일에서, 밑으로 죽 가다보면 네크전용 변수설정 부분이
나옵니다.
(XP_Config_Necromancer.d2l 파일중)
--- 중략 -----
XP_Curse=66; // "Amplify Damage"
XP_NecroSkill=84; // 93="Bone Spirit"
XP_NecroSkillMinion=84; // "Bone Spear"
XP_CorpseExplosion=true;
XP_BuildSkeleArmy = true; <== 이 변수를 추가 합니다. true=해골소환 ,false=해골소환 안함
XP_useSkel=true; // 스켈레톤
XP_useSkelMage=true; // 스켈레톤 메이지
XP_useRevive=false; //<=== 리밥을 하려면 true, 그렇지 않으면 false 로 해두세요.
XP_ToRevive=3; // 한번에 소환할 몹수, 너무 큰수를 주면 공격시 좀 멍청해 집니다 ㅋ, 계산하느라
----- 중략 ------
2단계는,
scripts\bots 폴더에 각 보스사냥 스크립파일에서 (예, PitXP.d2j 등)
끝부분에 메인함수위 각보스이름으로된 보스메인함수가 있습니다.
보스메인함수 내에서, 아래와 같이 팔라딘 홀리쉴드 수행 코드 바로 아래, 타운매니저 바로위에
혹은, 팔라딘 홀리쉴드 수행코드가 없으면, 타운매니저 바로위에
// Cast HolyShield before Vigor
if (XP_HolyShield && me.mp > 30 && DC_CheckSkill(117) >= 2) { DC_DoCast(117,0); }
if (me.classid==2 && XP_BuildSkeleArmy) // <=== 이두줄을
XP_BuildSkeletonArmy(); // <=== 넣어주면 됩니다.
// Do town stuff
XP_TownManager(); //<== 이게 타운매니저 ,요고 바로 윗줄에
3단계는,
\scripts\libs\XP\Libs 폴더에 XP_Include.d2l 파일에서 function XP_getBodyTarget 함수를 찾아서
그중간에 보면, 아래와 같은 부분을
---- 중략 ------
getBaseStat(6, _bodytarget.classid, 8) &&
(((me.area== 32||me.area== 31)&&((me.x < 15099)&&(me.x > 15088))&&((me.y < 5022) && (me.y > 5006))) ||
!checkCollision(me.area,me.x,me.y,3,_bodytarget.x,_bodytarget.y,3,7))) {
---- 중략 ------
//getBaseStat(6, _bodytarget.classid, 8) &&
//(((me.area==132||me.area==131)&&((me.x<15099)&&(me.x>15088))&&((me.y<5022)&&(me.y>5006))) ||
//!checkCollision(me.area,me.x,me.y,3,_bodytarget.x,_bodytarget.y,3,7))) {
getBaseStat(6, _bodytarget.classid, 8) ||
!checkCollision(me.area,me.x,me.y,3,_bodytarget.x,_bodytarget.y,3,7)){
위와 같이, 세줄을 리마크 처리하고 겟베이스스탯,첵콜리젼 부분만 다시 넣습니다.( || , 괄호갯수에 주의하면서)
4단계는, 이거도 제가 수정해놓고 깜박 햇네요.
\scripts\libs\XP\Libs 폴더에 XP_Include.d2l 파일에서, 아래 부분을 찾습니다.
--- 중략 ---
//////////////////////////////////////////////////////////////////////
// Constants
//////////////////////////////////////////////////////////////////////
var ATTACKING_MODE = 어쩌구저쩌구; // 너무길어서 생략한것 이해하세요
var ALIVE_MODE = 어쩌구저쩌구; // 너무길어서 생략한것 이해하세요
var DEAD_MODE = (1<<29)|(1<<12); // <==== 이걸 넣어 줍니다.
---- 중략 ----
5단계는, \scripts\libs\XP\Libs 폴더에 XP_Include.d2l 파일에서
function XP_CheckRevives 함수를 찾은후, 이함수 내에
// Count my Revives
// haveRevive = me.getMinionCount(6); <=== 리마크처리 한후, 이처리 대신 아래 삽입합니다.
// 삽입시작
haveRevive = 0;
var Revive = getUnit(1, null, ALIVE_MODE);
if (Revive) do {
if(Revive.getParent() && Revive.getParent().name == me.name &&
Revive.classid != 371 &&
Revive.classid != 289 &&
Revive.classid != 290 &&
Revive.classid != 291 &&
Revive.classid != 292 &&
Revive.classid != 351 &&
Revive.classid != 352 &&
Revive.classid != 353 &&
Revive.classid != 363 &&
Revive.classid != 271 &&
Revive.classid != 338 &&
Revive.classid != 359 &&
Revive.classid != 543 &&
//Revive.classid != 561 &&
Revive.classid != 364) haveRevive++;
} while (Revive.getNext(null, ALIVE_MODE));
// 삽입끝, 위처리는 자신의 리밥몹 숫자를 계산
역시, 같은 함수 내에서, 이번엔 해골갯수 계산 부분을
// Count my Skeletons or Skeleton Mages
//haveRevive = me.getMinionCount(pettype); <=== 리마크 처리후
haveRevive = DA_CountMinions(reviveID); // 이걸 넣어 줍니다.
손환몹 숫자계산 함수가 제대로된 숫자를 계산하지 못해서,
위와 같이 바꾼 겁니다.
자, 이렇게 제대로 수정하셧다면,
몰쳐 댕기는 이쁜(?) 해골들을 볼수 있습니다.
4차 수정은, 각 보스마다 해골 만들러 나락사원을 무조건 방문하는 멍청한 짓을 멈추게 한겁니다 ^^;
scripts\libs\XP\Libs 폴더 XP_Include.d2l 에서
function XP_BuildSkeletonArmy() 찾아 갑니다
이함수 젤 처음에
// If we already used it once, return immediatly
var sk = 0;
var sm = 0;
sk = DA_CountMinions(363);
sm = DA_CountMinions(364);
// 7차수정, 아래 3줄을 모두 주석처리 해주세요.
// _XP_NeedHeal = true;
// _XP_NeedPots = DT_CheckBelt();
// XP_TownManager();
if (_XP_BuildArmy || (sk+sm)) { DC_Print("Army Already done."); return; }
위와 같이 넣고 저장합니다.
5차 수정은, 제가 다시 테스트 하면서 안되던것 수정한겁니다.
4차 수정만, 보고 했다가 안됐던 분들에게 죄송합니다.. ^^:
----잡담----
예전 하드가 뻑나서, 저도 전에 최적화 해두었던 스크립 모두 날라 갔습니다.
젤 아까운건 데몬봇 최적화 스크립 입니다. 정말 환상적인 사냥 스크립이었는데(소소전용만)
데몬봇은 최초로 시도한 봇이었고, 봇스크립에 푹 빠지게한, 정말 많이 다듬었던 거였는데 ㅠㅠ.
바알런및, 다른봇에서 되는 모든 사냥 다되게 했던거였는데,, 정말 아까워요 ㅋ
다시 할려구 해도 워낙 방대하게 수정한거라, 복잡하기도 하구, 엄두가 안나네요.
아쉬움에 몇자 적었네요..
나쁜머리로, 기억되살려 가며 하다보니 ...
----잡담끝----