Skip to content
봇관련다크 모드

itemlog 메시지의 색깔바꿔보기

조회 수
2,571
추천 수
12
등록일



안녕하세요 저는 자바프로그래머를 꿈꾸는 고3학생입니다..ㅋ 질답 게시판에 이거에대해서 질문을 올리신분이 계셔서 대충찾다가 정보공유도할겸 팁에 올려봅니다.

일단 사진을 보시면 유니크링을 아이템줍기에서 빨간색, 아이템로그에서 빨간색으로 표기하게끔 설정했습니다.

상수변경만해주면되니 꾀나쉬운작업이더군요... 오히려 봇이 먹게해서 확인하는작업이 힘들었습니다...ㅠ

일단 설정해줘야할 파일은 scripts\libs\common\ntcommon.ntl 파일입니다 이파일을 메모장으로 열게되면

var NTC_ItemQualityToName = new Array(9);
NTC_ItemQualityToName[0] = "None";
NTC_ItemQualityToName[1] = "Low Quality";
NTC_ItemQualityToName[2] = "Normal";
NTC_ItemQualityToName[3] = "Superior";
NTC_ItemQualityToName[4] = "Magic";
NTC_ItemQualityToName[5] = "Set";
NTC_ItemQualityToName[6] = "Rare";
NTC_ItemQualityToName[7] = "Unique";
NTC_ItemQualityToName[8] = "Crafted";

var NTC_ItemQualityToD2Color = new Array(9);
NTC_ItemQualityToD2Color[0] = "ÿc8";
NTC_ItemQualityToD2Color[1] = "ÿc0";
NTC_ItemQualityToD2Color[2] = "ÿc0";
NTC_ItemQualityToD2Color[3] = "ÿc0";
NTC_ItemQualityToD2Color[4] = "ÿc4";
NTC_ItemQualityToD2Color[5] = "ÿc2";
NTC_ItemQualityToD2Color[6] = "ÿc9";
NTC_ItemQualityToD2Color[7] = "ÿc1";
NTC_ItemQualityToD2Color[8] = "ÿc8";

var NTC_ItemQualityToMGRColor = new Array(9);
NTC_ItemQualityToMGRColor[0] = "ÿc8";
NTC_ItemQualityToMGRColor[1] = "ÿc6";
NTC_ItemQualityToMGRColor[2] = "ÿc6";
NTC_ItemQualityToMGRColor[3] = "ÿc6";
NTC_ItemQualityToMGRColor[4] = "ÿc4";
NTC_ItemQualityToMGRColor[5] = "ÿc2";
NTC_ItemQualityToMGRColor[6] = "ÿc9";
NTC_ItemQualityToMGRColor[7] = "ÿc1";
NTC_ItemQualityToMGRColor[8] = "ÿc8";

이런식으로 color에 관한 두개의 배열변수와 아이템퀄리티에관한 한개의 배열변수를 보시게될겁니다.

설명을 드리자면
NTC_ItemQualityToMGRColor[0] = "ÿc8";

아이템퀄리티 0에해당하는것은 d2매니저 itemlog에 ÿc8 색상으로 적어라 라는 뜻정도됩니다

NTC_ItemQualityToD2Color[0] = "ÿc8";

이것은 디아창에보면 아이템줍기 : 아이템이름 나오는데 여기서의 아이템이름의 색상을 8번 색상으로하라는뜻입니다.,

ÿc1 빨간색
ÿc2 초록(셋트)
ÿc3 파란(매직)
ÿc4 유니크색상
ÿc5 회색(에테,소켓)
ÿc6 검은색
ÿc8 오렌지(크랲)
ÿc9 노랑색(레어)

아이템 순서는
0 = "None"; - 정확히 어느것을 말하는지 모르겟습니다
1 = "Low Quality"; - 로우퀄리티
2 = "Normal"; - 노말 노슈페인듯합니다.
3 = "Superior"; - 슈페리어
4 = "Magic"; - 매직
5 = "Set"; - 셋트
6 = "Rare"; - 레어
7 = "Unique"; - 유니크
8 = "Crafted"; - 크랲

만약 유니크아이템을 줏었을때 itemlog에 검은색깔로 적고싶다 그럼
NTC_ItemQualityToMGRColor[7] = "ÿc1";
이 부분을
NTC_ItemQualityToMGRColor[7] = "ÿc6";
으로 수정하시면됩니다.


여기까지는 퀄리티별로 수정하는방법이었습니다.
-------------------------------------------------------

밑에서는 mgrcolor 상수를 변경해서 itemlog 에 색상을 바꿧는데요 좀더 뜯어본결과 type번호로도 가능하더군요.
즉 주얼색깔따로 스몰참색깔따로 라지참색깔따로 이렇게 변경이가능하며 양식도 변경이 가능합니다.
기존에는 시간 보관)장소 아이템이름 (아이템레벨) 인듯합니다만 이것을 팔라무기는 팔라무기)아이템이름 이런식으로 변경도가능합니다.
일단먼저 itemtype 에 대해서알아야겠네요
좀더 알아내게되면 classID로도 가능할듯합니다 type에는 무기,참 이런거고 classID는 (콜로서스블레이드) 이런식입니다.
_NTIPAliasType["shield"]=2;
_NTIPAliasType["armor"]=3;
_NTIPAliasType["gold"]=4;
_NTIPAliasType["bow quiver"]=5;
_NTIPAliasType["crossbow quiver"]=6;
_NTIPAliasType["playerbodypart"]=7;
_NTIPAliasType["herb"]=8;
_NTIPAliasType["potion"]=9;
_NTIPAliasType["ring"]=10;
_NTIPAliasType["elixir"]=11;
_NTIPAliasType["amulet"]=12;
_NTIPAliasType["charm"]=13;
_NTIPAliasType["notused"]=14;
_NTIPAliasType["boots"]=15;
_NTIPAliasType["gloves"]=16;
_NTIPAliasType["notused"]=17;
_NTIPAliasType["book"]=18;
_NTIPAliasType["belt"]=19;
_NTIPAliasType["gem"]=20;
_NTIPAliasType["torch"]=21;
_NTIPAliasType["scroll"]=22;
_NTIPAliasType["notused"]=23;
_NTIPAliasType["scepter"]=24;
_NTIPAliasType["wand"]=25;
_NTIPAliasType["staff"]=26;
_NTIPAliasType["bow"]=27;
_NTIPAliasType["axe"]=28;
_NTIPAliasType["club"]=29;
_NTIPAliasType["sword"]=30;
_NTIPAliasType["hammer"]=31;
_NTIPAliasType["knife"]=32;
_NTIPAliasType["spear"]=33;
_NTIPAliasType["polearm"]=34;
_NTIPAliasType["crossbow"]=35;
_NTIPAliasType["mace"]=36;
_NTIPAliasType["helm"]=37;
_NTIPAliasType["missilepotion"]=38;
_NTIPAliasType["quest"]=39;
_NTIPAliasType["bodypart"]=40;
_NTIPAliasType["key"]=41;
_NTIPAliasType["throwingknife"]=42;
_NTIPAliasType["throwingaxe"]=43;
_NTIPAliasType["javelin"]=44;
_NTIPAliasType["weapon"]=45;
_NTIPAliasType["meleeweapon"]=46;
_NTIPAliasType["missileweapon"]=47;
_NTIPAliasType["thrownweapon"]=48;
_NTIPAliasType["comboweapon"]=49;
_NTIPAliasType["anyarmor"]=50;
_NTIPAliasType["anyshield"]=51;
_NTIPAliasType["miscellaneous"]=52;
_NTIPAliasType["socketfiller"]=53;
_NTIPAliasType["secondhand"]=54;
_NTIPAliasType["stavesandrods"]=55;
_NTIPAliasType["missile"]=56;
_NTIPAliasType["blunt"]=57;
_NTIPAliasType["jewel"]=58;
_NTIPAliasType["classspecific"]=59;
_NTIPAliasType["amazonitem"]=60;
_NTIPAliasType["barbarianitem"]=61;
_NTIPAliasType["necromanceritem"]=62;
_NTIPAliasType["paladinitem"]=63;
_NTIPAliasType["sorceressitem"]=64;
_NTIPAliasType["assassinitem"]=65;
_NTIPAliasType["druiditem"]=66;
_NTIPAliasType["handtohand"]=67;
_NTIPAliasType["orb"]=68;
_NTIPAliasType["voodooheads"]=69;
_NTIPAliasType["auricshields"]=70;
_NTIPAliasType["primalhelm"]=71;
_NTIPAliasType["pelt"]=72;
_NTIPAliasType["cloak"]=73;
_NTIPAliasType["rune"]=74;
_NTIPAliasType["circlet"]=75;
_NTIPAliasType["healingpotion"]=76;
_NTIPAliasType["manapotion"]=77;
_NTIPAliasType["rejuvpotion"]=78;
_NTIPAliasType["staminapotion"]=79;
_NTIPAliasType["antidotepotion"]=80;
_NTIPAliasType["thawingpotion"]=81;
_NTIPAliasType["smallcharm"]=82;
_NTIPAliasType["mediumcharm"]=83;
_NTIPAliasType["largecharm"]=84;
_NTIPAliasType["amazonbow"]=85;
_NTIPAliasType["amazonspear"]=86;
_NTIPAliasType["amazonjavelin"]=87;
_NTIPAliasType["assassinclaw"]=88;
_NTIPAliasType["magicbowquiv"]=89;
_NTIPAliasType["magicxbowquiv"]=90;
_NTIPAliasType["chippedgem"]=91;
_NTIPAliasType["flawedgem"]=92;
_NTIPAliasType["standardgem"]=93;
_NTIPAliasType["flawlessgem"]=94;
_NTIPAliasType["perfectgem"]=95;
_NTIPAliasType["amethyst"]=96;
_NTIPAliasType["diamond"]=97;
_NTIPAliasType["emerald"]=98;
_NTIPAliasType["ruby"]=99;
_NTIPAliasType["sapphire"]=100;
_NTIPAliasType["topaz"]=101;
_NTIPAliasType["skull"]=102;

먼저 위에 상수들이 선언되어있군요 아이템로그에 write되게하는 type의 범위는 2~74 81~쭉 인것같습니다.
이 if문을 조금손봐주면 되는데요 일단 수정해야되는파일은
스크립트-libs-common-mysngit.ntl 파일입니다. 이파일을 보게되면
if (_checkedItem.Status < 2 && (_item.itemtype < 76 || _item.itemtype > 81))
 {
 switch (MySI_NTIPCheckItem(_item, 0))
 {
 case -1:
 MyIL_WriteLogAreaName(_item, _areaName);
 break;
 case 1:
 NTC_SendLogToOOG(NTC_LOG_ITEM, "보관 [" + _areaName + "] " +
NTC_ItemQualityToMGRColor[_item.quality] +
_item.name.split("\n")[0] + " (" +
_item.itemlevel + ");" +
MyIL_GetItemDesc(_item, 2));
 MyIL_WriteLog(_item, "보관(" + _areaName + ")");

이 if문이 2~74 81~쭉 범위들의 템을먹을경우 log를 작성하는 소스입니다. 이소스위에 보석색깔만 따로바꿔보겠습니다.

if (_checkedItem.Status < 2 && (_item.itemtype > 90)) // 90이상의 타입을 먹을때
{
 NTC_SendLogToOOG(NTC_LOG_ITEM, "보석보관 [" + _areaName + "] " +
NTC_ItemQualityToMGRColor[4] + //유니크색으로바꿔보겠습니다 mgrcolor 색상은 밑에글에 보시면있어요
_item.name.split("\n")[0] + " (" +
_item.itemlevel + ");" +
MyIL_GetItemDesc(_item, 2));
 MyIL_WriteLog(_item, "보관(" + _areaName + ")");}
이 소스를 위에작성해주시면 아마 보석을 먹을경우 2개가써질겁니다 그래서 위에소스도좀 수정해야되요
if (_checkedItem.Status < 2 && (_item.itemtype < 76 || _item.itemtype > 81)) 이 if문을
if (_checkedItem.Status < 2 && (_item.itemtype < 76 || _item.itemtype > 81 && _item.itemtype < 91)) 이렇게 수정해주시면됩니다.
지금 안좋은컴으로 쓰고있는터라 정확한 실험을 해보진못했습니다 하지만 스크립트상 이렇게 수정하면될듯하군요 만약 다른기능이 필요하시거나 하시면 글올려주세요
댓글 19
  • 댓글 #242771

    정보 감사합니다 그렇지 않아도 메니저 창에 색갈 다르게 뜨게하고 싶었는데 어찌해야할지 몰라서 포기했는데 적용해봐야겠네요 감사합니다 질문 하나만 할게요 룬 색깔을 바꾸고 싶은데 룬은 없네요 룬은 못 바꾸는 건가요?
  • 댓글 #242777

    메니저창말고 수동사냥할 때 NTmap에다가 적용시킬 수 있나요?
  • 댓글 #242783

    감사합니다. 좋은정보 얻었구요 저 또한 보면서 수정해봐야 겠습니다.
  • 댓글 #242786

    유용한 정보 감사합니다 .. 퇴근하는데로 집에서서 적용해봐야겟내요 ^^
  • 댓글 #242789

    유용한정보 감사드립니다. 적용시킬수잇을지 궁금하네요
  • 댓글 #242792

    좋은정보네요....감사합니다.. 룬 색깔을 변경하는 방법도 더불어 올려주심 감사하겠네요..^^
  • 댓글 #242804

    열심히 공부하셔서 원하시는 꿈을 이루길 바래요..
  • 댓글 #242807

    좋은정보 감사합니다. map에서 룬 색깔 변경은 꼭 필요한것 같아요 ^^
권한이 없습니다.
다크 모드