2024 년에도 울온을

스토리 이벤트 : 타락한 브리튼 총독 / 블로그 8만 방문 이벤트 종료 / 10월 할로윈 이벤트 중

서드파티 & 매크로/Orion 사용법 & 스크립트

[Orion] 부넥팔 스탯 체크 스크립트

작성자 : 캡틴토마스 님 2024. 7. 21. 02:09
[작성자] 캡틴토마스 님


부넥팔 장비세팅할 때, 한 2년 넘게 허우적 거렸습니다.

(뭐, 자료를 똑바로 안읽어본 제 문제가 제일 큽니다만, 세팅방법이 쉽지가 않네요)

 

저랑 비슷한 사람을 위해 부넥팔 스탯 체크 스크립트를 공유합니다. 

읽기 전 참고사항

1. 부넥팔 한정 스탯 체크기 입니다. 

2. 무기는 양날도끼(더블액스) 사용을 가정합니다. (무기속도 3.25)

3. 공격성공률은 전사의 재능 버프가 적용되었는지 체크가 불가능합니다. (아는 분 계시면 알려주세요...)

4. 휘속은 휘속증가 / 스태미너 / 무기속도 세 가지 인자로 계산됩니다. 

 

// Paste your code here :)
function EqiupEvalutation() {
	//var selfChar = Orion.FindObject('0x00C1CBD2');
	var width = 500;
	var gump = Orion.CreateCustomGump(100);
	gump.Clear();  
	gump.AddResizepic(0, 0, '302', width, 500);
	gump.AddResizepic(0, 0, '302', width, 50);  
	gump.AddText(0, 15, '40', '<center>부넥팔 스텟 체크</center>', width);
	
	gump.AddText(0, 55, '#0000FF', '<center>힘 - 현재 : {str}, 목표 : 150</center>', width);
	gump.AddText(0, 75, '#0000FF', '<center>덱스 - 현재 : {dex}, 목표 : 150</center>', width);
	
	gump.AddText(0, 115, '#0000FF', '<center>물리저항 - 현재 : '+ Player.Armor() + ' , 목표 : 75 </center>', width);
	gump.AddText(0, 135, '#0000FF', '<center>화염저항 - 현재 : '+ Player.FireResistance() + ' , 목표 : 75 </center>', width);
	gump.AddText(0, 155, '#0000FF', '<center>냉기저항 - 현재 : '+ Player.ColdResistance() + ', 목표 : 75  </center>', width);
	gump.AddText(0, 175, '#0000FF', '<center>독저항 - 현재 : '+ Player.PoisonResistance() + ', 목표 : 75  </center>', width);		
	gump.AddText(0, 195, '#0000FF', '<center>에너지저항 - 현재 : '+ Player.EnergyResistance() + ', 목표 : 75  </center>', width);
	gump.AddText(0, 215, '#0000FF', '<center>저항수치는 방어구 사용(머리, 팔, 장갑, 바지, 목)</center>', width);
	
	
	gump.AddText(0, 255, '#0000FF', '<center>데미지증가 - 현재 : '+ Player.DI() + ' </center>, 목표 : 100', width);
	
	var staminaTick = Math.floor(Player.MaxStam() / 30);
	var secondPerTick = 0.25; // 1틱당 0.25초	
	var item = Orion.ObjAtLayer(2); // 무기
	var properties = item.Properties();
	var matches = /(무기 속도|Weapon Speed) ([0-9]+)\.([0-9]+)s/.exec(properties);
	var weaponSecond = Number(matches[2] + '.' + matches[3]);
	var baseWeaponSpeed = weaponSecond / secondPerTick;
	var calcSwingSpeed = Math.floor( (baseWeaponSpeed - staminaTick) * (100 / (100 + Player.SSI()) ) );	
	gump.AddText(0, 295, '#0000FF', '<center>휘속증가 - '+ Player.SSI() + ' </center>', width);	
	gump.AddText(0, 315, '#0000FF', '<center>무기 속도 - '+weaponSecond+ ' </center>', width);	
	gump.AddText(0, 335, '#0000FF', '<center>스태미너 - '+ Player.MaxStam() + ' </center>', width);	
	gump.AddText(0, 355, '#0000FF', '<center>휘속 - 현재 : '+ calcSwingSpeed * secondPerTick + ' </center>, 목표 : 1.25', width);	
	gump.AddText(0, 375, '#0000FF', '<center>휘속은 휘속증가, 스태미너, 무기 속도 를 고려해야 함.</center>', width);	

	
	var HCI_total = 0;
	for (var i = 1; i < 25; i++) {
		if (Orion.ObjAtLayer(i)) {  
			var item = Orion.ObjAtLayer(i);  
			var properties = item.Properties();
			
			if (Orion.Contains(item.Properties(), 'Hit Chance Increase') || Orion.Contains(item.Properties(), '공격 성공률 증가')) {
				var matches = /(공격 성공률 증가|Hit Chance Increase) ([0-9]+)\%/.exec(properties);
				HCI_total += Number(matches[2]);
			}
		}		
	}
	gump.AddText(0, 415, '#0000FF', '<center>계산된 공성 - 현재 : '+ HCI_total + ', 목표 : 45  </center>', width);	
	gump.AddText(0, 435, '#0000FF', '<center> 공격성공률은 전사의 재능 버프를 사용해서 45 세팅 </center>', width);
	
	Orion.Print(Player.Profile());
	
	gump.Update(); 

}