Помощь - Поиск - Пользователи - Календарь
Полная версия: Заметил.
UoKit.com Форумы > Кликер > UO Pilot > UO Pilot в онлайн играх > UO Pilot в Lineage II
Sirj
Нужен опытный пользователь пилота. вот есть такой скрипт.
он с другой программы название ее l2 epic
// ------------- NPC helper functions -----------------

function IsAggrEnemy(Npc: TNpcClass): Boolean;
var
s: String;
begin
try
if Npc.Target = nil then
begin
Result:= False;
Exit;
end;

if Script.GetGuiCheck('cbAttackAggr') and (Npc.Target = SelfNpc) then
begin
Result:= True;
Exit;
end;

if Script.GetGuiCheck('cbAttackAggrParty') then
if PartyLst.GetById(Npc.Target.ObjectId) <> nil then
begin
Result:= True;
Exit;
end;

s:= #13#10 + Script.GetGuiText('edAutoPartyList') + #13#10;
Result:= Pos(#13#10 + LowerCase(Npc.Target.Name) + #13#10, s) > 0;
except
Result:= False;
end;
end;

function IsTargeted(Npc: TNpcClass): Boolean;
var
i: Integer;
fNpc: TNpcClass;
begin
try
if Npc.Target = SelfNpc then //если моб держит нас в таргете, идут все нафиг
begin
Result:= False;
Exit;
end;

for i:= 0 to NpcList.Count-1 do
try
fNpc:= NpcList.GetByInd(i);
if not fNpc.IsMob then
if not fNpc.IsDead then
if fNpc <> SelfNpc then
if not fNpc.IsMyParty then
if fNpc.Target = Npc then
if fNpc.DistanceTo(Npc.X, Npc.Y, Npc.Z) - 200 < SelfNpc.DistanceTo(Npc.X, Npc.Y, Npc.Z) then
begin
Result:= True;
Exit;
end;
except end;
except end;
Result:= False;
end;


procedure DoTarget(Npc: TNpcClass);
begin
try
if SelfNpc.Target = Npc then Exit; //уже у нас в таргете
Action(Npc.ObjectId, 0, 0, 0, 0); //1 - Shift, 0 - без
Sleep(150);
except end;
end;

procedure DoAttack(Npc: TNpcClass);
begin
try
if SelfNpc.Target <> Npc then DoTarget(Npc);
Action(Npc.ObjectId, 0, 0, 0, 0);
Sleep(50);
except end;
end;

var LastAngle: Double;
procedure DoWalkTo(Npc: TNpcClass);
var
zx,zy: Double;
Dist: Double;
begin
try
if SelfNpc.DistanceTo(Npc.X, Npc.Y, Npc.Z) > 10000 then Exit;

zx:= Npc.X;
zy:= Npc.Y;

//бежим зигзагом
if Script.GetGuiCheck('cbFarmWalkZZ') then
begin
Dist:= Npc.Distance * StrToIntDef(Script.GetGuiText('edFarmWalkZZ'), 50) / 100;
if Math.Random < 0.3 then LastAngle:= Math.Random*360;

zx:= Npc.X + Dist*Sin(LastAngle);
zy:= Npc.Y + Dist*Cos(LastAngle);
end;

MoveTo(zx, zy, Npc.Z);
except end;
end;

// --------------------------------------------------

// mobs targets
function MobsCountAround(Target: TNpcClass; Radius: Integer; AddAggred: Boolean): Integer;
var
i: Integer;
dist: Double;
npc: TNpcClass;
begin
Result:= 0;

for i:= 0 to NpcList.Count-1 do
try
npc:= NpcList.GetByInd(i);
if npc.IsMob then
if not npc.IsDead then
begin
dist:= npc.DistanceTo(Target.X, Target.Y, Target.Z);
if (dist <= Radius) or (AddAggred and IsAggrEnemY(npc)) then Inc(Result);
end;
except end;
end;







( хочу узнать. если ли возможность его переделать как то под сам пилот? и возможно-ли сделать что то подобное )
cirus
Переделать - нет, написать - да. Начать можно с этого: Введение_в_пилотный_скриптинг
Список_функций

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.