Enhanced Razor 반복 와파
페이지 정보

본문
1. 바울님 소스 참조하였습니다..
2. 반복문 돌다가 스크립 stop이 안되서 십히는 문제로 만들어서 썼는데 카톡에서 불편하다 하시는거 보고 올립니다.
3. 타켓은 펫과의 거리가 1미만이면 타켓은 셀프, 13미만이면 펫, 그 이상이면 펫 방향으로 거리 12가 되는 X,Y 좌표입니다.
4. 반복문을 정지하는 조건은 3가지 입니다.
1. 직접 메크로정지, 2. 케릭터 이동(보스가 끌어댕길때), 3. 와파범위에 펫이 없을경우
반복문 실행 중에 케릭터의 좌표가 바뀐다면 == 이동한다면 중지 됩니다.
인핸스 HOtKey>Spells>Interrupt 단축키 설정하시고, 케스팅중 Interrupt 누르시면 캐스팅 피즐 납니다.
그래도 이동하기 힘들다면 Misc.Pause(300) 시간 조정하십시요.
펫과의 거리가 와파의 범위 (플레이어 위치에서 12간격 + 와파반경 기본 5 + 아케인포커스)를 넘어가면 중지됩니다.
예) 12+5+6(아케인포커스) =23 펫과의 거리 23이 넘어가면 중지
5. 위에서 말한 스크립중지가 안되서 십히는 이유가 쉽게 말하면 waitfortarget 문과 타켓커서 떄문입니다. 그래서 waitfortarget 함수를 쓰지 않았습니다.
6. Target.TargetExecute 할때 대상이 보이지 않는다는? 메세지 떄문에 3D Z 좌표 가지고 삽질했는데 포기했습니다.
예를 들어 병동 그리즐 잡을때 건물에서 Z는 Land와 tile 높이 합을 찍어도 보이지 않는다고 나오는데 아시는분 말씀부탁드립니다.
TargetExecute 좌표말고 펫으로 찍으면 Z가 보이든말든 가능하니, 거리 12 안으로 접근하시길.
7. 와파 중첩횟수가 몇회인지 아시는분 말씀부탁드립니다.
8. 0.3초 while문이라 패캐, 패회 맞추시면 와파샤워 가능합니다. 우훗
-----------------------------------------------------------------------------------------------------
#시즈모드(Player 위치고정 -> 보스몹 떙김시 바로취소), 펫 필수
import math
Misc.ScriptStopAll(True)
if Player.Mount:
Mobiles.UseMobile(Player.Serial)
Misc.Pause(300)
if not Player.GetPropValue('guarded'):
Player.ChatSay('all guard me')
Misc.Pause(300)
if Target.HasTarget():
Target.Cancel()
pet = Mobiles.FindBySerial(Player.StaticMount)
before_3d = 0
mana_warning = Player.ManaMax * 0.5
font_color = [2117,1646,1501,2125,902,2128,1425,2691,2112,316,316]
effect_radius = 12 + 5
item_obj = Items.FindByID(0x3155, -1, Player.Backpack.Serial)
if item_obj:
effect_radius += Items.GetPropValue(item_obj, 'Strength Bonus')
player_3d = Player.Position
while True:
if Target.HasTarget():
distance = Player.DistanceTo(pet)
if distance < 1:
Target.Self()
elif distance < 13:
Target.TargetExecute(pet)
elif distance > effect_radius:
Player.HeadMessage(font_color[0], '펫과의거리:' + str(distance) + ' > 와파거리:' + str(effect_radius))
break
else:
pet_3d = pet.Position
if pet_3d != before_3d:
before_3d = pet_3d
ratio = 12 / (math.sqrt((pet_3d.X - player_3d.X)**2 + (pet_3d.Y - player_3d.Y)**2))
x = int(player_3d.X + (pet_3d.X - player_3d.X) * ratio)
y = int(player_3d.Y + (pet_3d.Y - player_3d.Y) * ratio)
z = Statics.GetLandZ(x, y, Player.Map)
key = max(0, 10 - (distance - 13))
Player.HeadMessage(font_color[key], '펫과의거리:' + str(distance))
Target.TargetExecute(x, y, z)
elif not Player.Paralized:
if player_3d != Player.Position:
break
Spells.CastSpellweaving("Wildfire")
if Player.Mana < mana_warning:
key = int(Player.Mana / Player.ManaMax * 10)
Player.HeadMessage(font_color[key], 'Mana:' + str(Player.Mana))
Misc.Pause(300)
Misc.SendMessage('Wildfire Loop stop')
if Target.HasTarget():
Target.Cancel()
첨부파일
-
act stop.py (111byte)
0회 다운로드 | DATE : 2025-08-21 13:27:09 -
cast wildfire loop.py (1.9K)
0회 다운로드 | DATE : 2025-08-21 13:27:09
댓글목록

슬로우샷님의 댓글
슬로우샷 작성일코드 약간 다듬고, 스크립중지시키는 스크립?(act stop.py) 도 참조하시라고 올렸습니다.