Когда чар стоит в хайде и начинает двигаться выходит из хайда при любой скорости хоть 700 хоть 50
Без скрипта такой проблемы нету.
Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
Пробема с хайдом !
Re: Пробема с хайдом !
А пример скрипта?
Хотя я подозреваю, что ты когда двигаешься - бегаешь. В этом случае чар всегда из хайда выходит, в том числе и на голом клиенте.
Хотя я подозреваю, что ты когда двигаешься - бегаешь. В этом случае чар всегда из хайда выходит, в том числе и на голом клиенте.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
Re: Пробема с хайдом !
Смотрел с другого окна чар ходит. Мне кажется что первый шаг быстрый делает( ну типа бежит )Fenix wrote:А пример скрипта?
Хотя я подозреваю, что ты когда двигаешься - бегаешь. В этом случае чар всегда из хайда выходит, в том числе и на голом клиенте.
Code: Select all
Program Lumber_all;
{$Include 'all.inc'}
const
hatcher=$0F47 ; // тип топора
StartHomeX =1542;//координата Х перед сундуком куда логи складывать
StartHomeY =1102;//координата У перед сундуком куда логи складывать
StartForestX = 1574;//координата Х полянки в лесу
StartForestY = 1081;//координата У полянки в лесу
casebox=$411E68D5; //ID сундука возле дома.Под забором дома.
tp=0; //использовать рунбуку 0-нет 1-да
speed=700; //скорость перемещения
logs=$1BDD; // тип логов
magaz_sell='73'; //Номер кнопки в рунбуке куда ТП для продажи дров
bank='58'; //Номер кнопки в рунбуке для банка
Les='33'; //Номер кнопки в рунбуке куда тП для рубки леса
RuneAxe='46'; //Номер кнопки магазина где купить топор.
homecase='88'; //Номер кнопки в рунбуке к сундуку возле дома.
runebook_les=$4020FFDA ; //ID рунбуки
kol_log = 21; //Кол-во типов логов в игре. для ДРВ 21
money=$40078907; //ID сумки в банке куда складывать золото
resi=$4027AA34 ; //ID сумки в банке куда складывать дорогие логи
goldcoin=$0EED; //ГП
clean_bandages = $0E21; //бинты
Vendor_Log=$002A80D6; //ID вендора которому впариваем логи
resurect=$4001C28F; //ИД креста воскрешениЯ
infini=1;
//ЕДА
kusaem=0; //Чар будет кушать? 1-да / 0-нет
Sbor=1; //собирать ли еду? 1-да / 0-нет.можно не ставить если kusaem=0
hleb=$103B ; //ИД еды которую покупаем в магазине, если на поле еды не оказалось. можно не ставить если kusaem=0
vendor_eat=$00166295 ; //ИД продовца еды в магазине.можно не ставить если kusaem=0
RuneToMagazEat='73'; //Номер кнопки в рунбуке куда ТП для покупки еды.можно не ставить если kusaem=0
Eat=$0C77 ; //ID еды которая растет на поле
rostoc=$0C76 ; //ID растения на поле
EatPole='64'; //Номер кнопки в рунбуке куда ТП в поле за едой
//
Tonaz=600; //при каком весе персонаж идет скидывать дрова
VendorAxe=$0005869E; //Id вендора продающего топоры;
//
medix=1; //Покупать ли бинты у продовца рядом с крестом воскрешения.
vendor_medik=$001F6650; //ид продавца бинтами в том же здании где и крест. если medix=0 то можно не указывать.
//
vala=2; //0-логи никуда не деваем//1-продаем в магазин.Дорогие логи кладем в банк//2-складываем в сундук возле дома.
baala=0; //работает если vala=2, 1-класть дорогие логи в сундук банка. 0-класть дорогие логи в сундук возле дома.
l_fizzles='but fail to produce any useable wood.';
l_nothing1='Нечего рубить.';
l_nothing2='You can''t reach this.';
l_needwait ='You must wait to perform another action';
l_success = 'in your pack.';
l_bad ='Unexpected target info';
l_heavy ='at your feet';
l_far='That is too far away.';
l_elemental ='Ent';
l_see='You have no line of sight to that location';
type
region= record
minX:word;
minY:word;
maxX:word;
maxY:word;
end;
mas_cvet = array[1..kol_log] of Integer; //Создаем массив цветов дров
var
tfta,temp,res_arr:TFoundTilesArray;
RegArr: array [0..10] of region;
TreeTile:array [0..39] of word;
lll,hhh,rs,i,j,k,sum,arr_sum:word;
start_p: TFoundTile;
Cvet : mas_cvet;
dot:array [0..10] of TFoundTile;
ert,ghjk,gfrt,TpEda,beg,ded:word;
//TpEda - проверка на место нахождение полсе покупки еды
//gfrt - проверка на появление нежелательных персов,НПС.
kol_der:integer; //кол-во деревьев при поиске
procedure init;
begin
start_p.X:=GetX(Self); //Стартовая координата игрока
start_p.Y:=GetY(Self); //Стартовая координата игрока
//Tile Tree
TreeTile[0]:=3274;
TreeTile[1]:=3275;
TreeTile[2]:=3277;
TreeTile[3]:=3280;
TreeTile[4]:=3283;
TreeTile[5]:=3286;
TreeTile[6]:=3288;
TreeTile[7]:=3290;
TreeTile[8]:=3293;
TreeTile[9]:=3296;
TreeTile[10]:=3299;
TreeTile[11]:=3302;
TreeTile[12]:=3320;
TreeTile[13]:=3323;
TreeTile[14]:=3326;
TreeTile[15]:=3329;
TreeTile[16]:=3393;
TreeTile[17]:=3394;
TreeTile[18]:=3395;
TreeTile[19]:=3396;
TreeTile[20]:=3415;
TreeTile[21]:=3416;
TreeTile[22]:=3417;
TreeTile[23]:=3418;
TreeTile[24]:=3419;
TreeTile[25]:=3438;
TreeTile[26]:=3439;
TreeTile[27]:=3440;
TreeTile[28]:=3441;
TreeTile[29]:=3442;
TreeTile[30]:=3460;
TreeTile[31]:=3461;
TreeTile[32]:=3462;
TreeTile[33]:=3476;
TreeTile[34]:=3478;
TreeTile[35]:=3480;
TreeTile[36]:=3482;
TreeTile[37]:=3484;
TreeTile[38]:=3492;
TreeTile[39]:=3496;
RegArr[0].minX:=start_p.X-30;
RegArr[0].minY:=start_p.Y-30;
RegArr[0].maxX:=start_p.X+30;
RegArr[0].maxY:=start_p.Y+30;
end;
procedure runebook(bookaa:Cardinal;kuda:string);
begin
waitgump(kuda);
wait(1000) ;
UseObject(bookaa);
wait(7000);
CloseSimpleGump(0);
end;
procedure smena;
begin
dot[0].X:=605;
dot[0].Y:=1383;
dot[1].X:=653;
dot[1].Y:=1421;
dot[2].X:=591;
dot[2].Y:=1447;
dot[3].X:=517;
dot[3].Y:=1430;
dot[4].X:=455;
dot[4].Y:=1378;
dot[5].X:=375;
dot[5].Y:=1369;
dot[6].X:=547; //Resurect
dot[6].Y:=1235;
dot[7].X:=549; //Resurect
dot[7].Y:=1159;
dot[8].X:=551; //Resurect
dot[8].Y:=1059;
dot[9].X:=548; //Resurect
dot[9].Y:=969;
dot[10].X:=530; //Resurect
dot[10].Y:=963;
end;
procedure cancel;
begin
CloseMenu;
CancelMenu;
If TargetPresent Then CancelTarget;
end;
procedure check_war;
begin
if IsWarMode(self) then
begin
setWarMode(false);
end;
end;
Procedure speedee(swm:word;srm:word;swu:word;sru:word);
begin
SetWalkMountTimer (swm); //Ходить на лошади
SetRunMountTimer (srm); //Бегать на лошади
SetWalkUnmountTimer (swu); //Ходить пешком
SetRunUnmountTimer (sru); //Бегать пешком
end;
procedure podhod(Vendor:Cardinal);
begin
AddToSystemJournal('273 Продацец: '+GetName(Vendor)+'. координата Х: '+inttostr(GetX(Vendor))+'. координата Y: '+inttostr(GetY(Vendor))+'. дистанция: ' +inttostr(GetDistance(Vendor)));
repeat
NewMoveXY(GetX(Vendor),GetY(Vendor),true,1,false);
wait(4000);
checksave;
until (GetDistance(Vendor)< 2) or dead;
end;
procedure Wait_Target(time_ms:Cardinal);
var
TempTime,SumTime:Cardinal;
begin
SumTime:=0;
repeat
checksave;
wait(500);
TempTime:=Timer;
SumTime:=SumTime+(Timer-TempTime);
until ((targetpresent) or (dead) or (not connected) or (SumTime>time_ms)or(gfrt<>1));
end;
procedure heal;
var
ghj:word;
begin
ghj:=0;
while (gethp(self) < getmaxhp(self)) and (CountEx(clean_bandages,$0000,backpack) > 0)and
(ghj<15) and not dead AND (gfrt<>1) do
begin
if not Hidden then exit;
AddToSystemJournal('338 Хилимся');
UseObject(FindType(clean_bandages,Backpack));
wait_target(2000);
WaitTargetObject(Self);
wait (5000);
ghj:=ghj+1;
check_war;
end;
end;
procedure check_hide;
begin
cancel;
wait(1000) ;
if Hidden then exit;
if WarMode = true then SetWarMode(false);
repeat
UseSkill('Hiding');
wait(4000);
checksave;
check_war;
until Hidden or (not Connected) or dead or (gfrt=1);
heal;
end;
procedure equip_tool(type_of_tool:word;layer:Byte);
begin
hhh:=0;
if (GetType(ObjAtLayer(layer))<>type_of_tool) then
begin
if layer=RhandLayer then unequip(RhandLayer)else unequip(LhandLayer);
wait(500);
if layer=RhandLayer then equipt(RhandLayer,type_of_tool) else equipt(LhandLayer,type_of_tool);
end;
repeat
wait(500);
checksave;
hhh:=hhh+1;
until (GetType(ObjAtLayer(layer))=type_of_tool) or dead or (hhh>6);
end;
procedure CheckAxe;
begin
checksave;
while (GetType(ObjAtLayer(RhandLayer))<>hatcher) and (GetType(ObjAtLayer(LhandLayer))<>hatcher) and (CountEx(hatcher,$0000,backpack) = 0) and not dead do
begin
AddToSystemJournal('288 Телепортируюсь в бриту за топором в магаз');
runebook(runebook_les,RuneAxe);
checksave;
wait(5000);
//podhod(VendorAxe);
SetAutoBuyDelay(8); //Установить задержку на продажу. Время задается в секундах. По умолчанию - 3 (минимальное значение).
Autobuy(hatcher,$0000,1);
//UOSay((GetName(VendorAxe))+' buy guards');
UOSay('buy guards');
wait(12000);
end;
equip_tool(hatcher,LhandLayer);
end;
procedure eda;
var
dsa:word;
TimeSayHungry : TDateTime;
begin
dsa:=0;
TimeSayHungry := Now;
checksave;
if (CountEx(Eat,$0000,backpack) <3) and (CountEx(hleb,$0000,backpack)<3) and (Not Dead)and(Sbor=1) then
begin
AddToSystemJournal('361 телепортируюсь в поле за едой');
runebook(runebook_les,EatPole);
wait (5000);
TpEda:=1;
repeat
checksave;
uosay('guards');
FindDistance:=15;
FindTypeEx(rostoc, $0000, Ground , false);
NewMoveXY(GetX(FindItem),GetY(FindItem),true,3,false);
checksave;
UseObject(FindItem);
wait(3000);
AddToSystemJournal('374 Найдено ресурсов '+inttostr(FindCount));
if FindCount < 10 then
begin
AddToSystemJournal('364 Мало ресурсов '+inttostr(FindCount));
AddToSystemJournal('365 Телепортируюсь в бриту за едой');
runebook(runebook_les,RuneToMagazEat);
wait(4000);
AddToSystemJournal('367 Подхожу к вендору за едой');
podhod(vendor_eat);
SetAutoBuyDelay(8);
Autobuy(hleb,$0000,16);
UOSay(GetName(vendor_eat)+' buy guards'); //произнести в игре фразу 'Sell'
wait(12000);
end;
until (CountEx(Eat,$0000,backpack)>30) or (dead) or (CountEx(hleb,$0000,backpack)>15);
end;
repeat
if CountEx(Eat,$0000,backpack) > 0 then
UseType(eat,$0000)
else
UseType(hleb,$0000);
wait(400);
dsa:=dsa+1;
until (InJournalBetweenTimes('You are simply too full to eat any more!',TimeSayHungry,Now) >= 0)or (dsa>10)or dead;
end;
procedure CharDead;
begin
if Dead then
begin
AddToSystemJournal('336 Чар умер');
if WarMode = true then SetWarMode(false);
checksave;
NewMoveXY(dot[2].X,dot[2].Y,false,1,true); // x , y , Аккуратность до 200 квадратов , точность подходк к квадрату, Бег - True
checksave;
AddToSystemJournal('341 Гост прошел первую точку');
NewMoveXY(dot[1].X,dot[1].Y,false,1,true);
checksave;
AddToSystemJournal('344 Гост прошел вторую точку');
NewMoveXY(dot[6].X,dot[6].Y,false,1,true);
checksave;
AddToSystemJournal('347 Гост прошел вторую точку');
NewMoveXY(dot[7].X,dot[7].Y,false,1,true);
checksave;
AddToSystemJournal('350 Гост прошел третью точку');
NewMoveXY(dot[8].X,dot[8].Y,false,1,true);
checksave;
AddToSystemJournal('353 Гост прошел четвертую точку');
NewMoveXY(dot[9].X,dot[9].Y,false,1,true);
checksave;
AddToSystemJournal('356 Гост прошел пятую точку');
NewMoveXY(dot[10].X,dot[10].Y,false,1,true);
checksave;
AddToSystemJournal('359 Гост прошел шестую точку');
UseObject(resurect);
wait(6000);
if medix=1 then
begin
podhod(vendor_medik);
SetAutoBuyDelay(8); //Установить задержку на продажу. Время задается в секундах. По умолчанию - 3 (минимальное значение).
Autobuy(clean_bandages,$0000,30);
UOSay((GetName(vendor_medik))+' buy guards'); //произнести в игре фразу 'buy'
wait(10000);
check_hide;
end;
ded:=1;
CheckAxe;
lll:=0;
if kusaem=1 then eda;
end;
end;
function sqr(a:LongInt):LongInt;
begin
result:=a*a;
end;
function vector_length(c_1,c_2:TFoundTile):LongInt;
begin
result:=Round(sqrt(sqr(c_1.X-c_2.X)+sqr(c_1.Y-c_2.Y)));
end;
{ сортировка минимальным маршрутом }
procedure QuickSort(var item:TFoundTilesArray; count:integer; point:TFoundTile);
var
temp_index,temp_value, tempo,i,j:LongInt;
t_c:TFoundTile;
begin
AddToSystemJournal('397 сортируем '+IntToStr(count)+' деревьев');
kol_der:=count;
t_c:=point;
temp_index:=0;
temp_value:=vector_length(t_c,item[temp_index]);
for i:=0 to count-2 do
begin
for j:=i to count-1 do
begin
tempo:=vector_length(t_c,item[j]);
if tempo<temp_value then
begin
temp_index:=j;
temp_value:=tempo;
end;
end;
t_c:=item[temp_index];
item[temp_index]:=item[i];
item[i]:=t_c;
temp_value:=vector_length(item[i],item[i+1]);
end;
i:=0;
AddToSystemJournal('419 i = 0 ');
AddToSystemJournal('Готово...');
end; { конец сортировки }
procedure poisk_tree;
begin
SetArStatus(true);
init;
sum:=0;
// поиск деревьев и составление массива
arr_sum:=0;
rs:=0;
j:=0 ;
for i:=0 to 39 do
begin
rs:=GetStaticTilesArray(RegArr[j].minX,RegArr[j].minY,RegArr[j].maxX,RegArr[j].maxY,1,TreeTile[i],tfta);
if rs>0 then
for k:=0 to rs-1 do temp[arr_sum+k]:=tfta[k];
arr_sum:=arr_sum+rs;
end;
QuickSort(temp,arr_sum,start_p);
for k:=0 to arr_sum-1 do res_arr[sum+k]:=temp[k];
sum:=sum+arr_sum;
AddToSystemJournal('253 поиск деревьев завершон');
end;
procedure ubegalka;
begin
check_war;
speedee(400,300,600,500);
if lll<6 then
begin
AddToSystemJournal('385 Запускаю точку убегания '+(inttostr(lll))+'.');
NewMoveXY(dot[lll].X,dot[lll].Y,true,1,true);
lll:=lll+1;
CharDead;
AddToSystemJournal('389 Запускаю поиск деревьев');
end
else
begin
lll:=0;
AddToSystemJournal('392 Запускаю точку убегания '+(inttostr(lll))+'.');
NewMoveXY(dot[lll].X,dot[lll].Y,true,1,true);
AddToSystemJournal('373 точка повтора '+(inttostr(lll))+' пройдена.');
lll:=lll+1;
CharDead;
AddToSystemJournal('397 Запускаю поиск деревьев');
end;
speedee(speed,speed,speed,speed);
ert:=1;
gfrt:=0;
if gfrt=0 then poisk_tree;
check_war;
end;
procedure Chop(f_tile:TFoundTile);
var
ctime : TDateTime;
iter_max:integer;
next_lumb,lumb_result,wait_lumb: string;
fizzles:word;
begin
wait_lumb:=l_fizzles+'|'+l_needwait;
next_lumb:=l_nothing1+'|'+l_nothing2+'|'+l_far+'|'+l_see+'| There is nothing here to chop|It appears immune to your blow|Try chopping elsewhere';
lumb_result:=wait_lumb+'|'+next_lumb+'|'+l_success+'|'+l_elemental+'|'+l_bad+'|'+l_heavy;
fizzles:=0;
if gfrt=1 then ubegalka;
repeat
equip_tool(hatcher,LhandLayer);
cancel;
iter_max:=0;
check_hide;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
AddToSystemJournal('532 ОО нееет меня атакуют Применяю брейк');
check_war;
end;
if gfrt<>1 then UseObject(ObjAtLayer(LhandLayer));
check_hide;
if gfrt<>1 then Wait_Target(5000);
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
AddToSystemJournal('542 ОО нееет меня атакуют Применяю брейк');
check_war;
end;
ctime := Now;
TargetToTile(f_tile.Tile,f_tile.X,f_tile.Y,f_tile.Z);
repeat
iter_max:=iter_max+1;
wait(2000);
checksave;
check_war;
check_hide;
if (InJournalBetweenTimes('an Ent|is attacking you|Ent', ctime, Now)>= 0) or (gfrt=1)then
begin
Break;
AddToSystemJournal('556 ОО нееет меня атакуют Применяю брейк');
end;
until (InJournalBetweenTimes(lumb_result+'|Вы переместили', ctime, Now)>= 0) or (iter_max>10) or dead or (gfrt=1) or (FindCount>0);
if (InJournalBetweenTimes(l_fizzles, ctime, Now)<>-1) then fizzles:=fizzles+1;
if (InJournalBetweenTimes('an Ent|is attacking you|Vas Corp Por|notice|Ent|Reaper', ctime, Now)>= 0) or (gfrt=1) then
begin
AddToSystemJournal('526 ОО нееет меня атакуют');
ubegalka;
CharDead;
Break;
end;
until (InJournalBetweenTimes(next_lumb, ctime, Now)>= 0) or (fizzles>15) or dead or (iter_max>10);
end;
procedure Cvet_log;
begin
Cvet[1] := $0498; //Asterxylon Logs
Cvet[2] := $0000; //Logs
Cvet[3] := $037F ; //grave logs
Cvet[4] := $0039; //
Cvet[5] := $0026; //
Cvet[6] := $047C; //Oak Logs
Cvet[7] := $0279; //Red Tree Logs
Cvet[8] := $096B ; //Dark Tree Logs
Cvet[9] := $0237; //Swamp Logs
Cvet[10] := $0482; //Silver Leaf Logs
Cvet[11] := $010F; //Keranit Logs
Cvet[12] := $0014; //Perit Logs
Cvet[13] := $03C1; //Petrified Logs
Cvet[14] := $0085; //Dragon Tree Logs
Cvet[15] := $04C2; //Vampire Tree Logs
Cvet[16] := $0033; //Eridan Logs
Cvet[17] := $002B; //Hellios Logs
Cvet[18] := $0071; //Illusions Tree Logs
Cvet[19] := $09A4; //Crystal Logs
Cvet[20] := $0B82; //Dead Tree Logs
Cvet[21] := $00BE ; //Paradise Logs
end;
procedure vendor_sell;
var
i:word;
begin
i:=0;
SetAutoSellDelay(8); //Установить задержку на продажу. Время задается в секундах. По умолчанию - 3 (минимальное значение).
AutoSell(logs,Cvet[1],999);
AutoSell(logs,Cvet[2],999);
AutoSell(logs,Cvet[3],999);
AutoSell(logs,Cvet[4],999);
AutoSell(logs,Cvet[8],999);
AutoSell(logs,Cvet[5],999);
AutoSell(logs,Cvet[6],999);
AutoSell(logs,Cvet[7],999);
AutoSell(logs,Cvet[8],999);
AutoSell(logs,Cvet[9],999);
AutoSell(logs,Cvet[10],999);
AutoSell(logs,Cvet[11],999);
AutoSell(logs,Cvet[12],999);
AutoSell(logs,Cvet[13],999);
AutoSell(logs,Cvet[14],999);
AutoSell(logs,Cvet[15],999);
AutoSell(logs,Cvet[16],999);
AutoSell(logs,Cvet[21],999);
AddToSystemJournal('490 Продажа деревьев');
while (CountEx(GoldCoin,$0000,backpack) = 0) and not dead do
begin
checksave;
UOSay(GetName(Vendor_Log)+'sell guards'); //произнести в игре фразу 'Sell'
wait(12000);
podhod(Vendor_Log);
end;
end;
Procedure PutMoneyBank;
begin
checksave;
AddToSystemJournal('606 Заработал ГП : '+ inttostr(CountEx(GoldCoin,$0000,backpack)));
begin
while (CountEx(GoldCoin,$0000,backpack) > 0) and not dead do
begin
checksave;
FindTypeEx (GoldCoin,$0000,Backpack,True) ;
MoveItem(FindItem,0,money,0,0,0);
checksave;
wait(2000);
end;
end;
end;
Procedure PutLogBank;
var
i:word;
begin
checksave;
begin
AddToSystemJournal('626 Складываем логи в банк');
For i:=17 to 20 do
checksave;
if CountEx(logs,Cvet[i],backpack) > 0 then
begin
checksave;
FindTypeEx (logs,Cvet[i],Backpack,True) ;
MoveItem(FindItem,0,resi,0,0,0);
wait(2000);
checksave;
end;
end;
end;
Procedure PutLogCase;
var
i:word;
begin
checksave;
begin
AddToSystemJournal('523 Складываем логи в СУНДУК ВОЗЛЕ ДОМА');
For i:=1 to 21 do
if CountEx(logs,Cvet[i],backpack) > 0 then
begin
FindTypeEx (logs,Cvet[i],Backpack,True) ;
MoveItem(FindItem,0,casebox,0,0,0);
wait(2000);
checksave;
end;
end;
end;
procedure UpdateChar(ContainerID2 : Cardinal);
begin
if (GetName(ContainerID2) = 'Asterxylon Ent') or
(GetName(ContainerID2) = 'Elven Ent') or
(GetName(ContainerID2) = 'Avalon Ent') or
(GetName(ContainerID2) = 'Titan Tree Ent') or
(GetName(ContainerID2) = 'Paradise Ent') or
(GetName(ContainerID2) = 'Dead Tree Ent') or
(GetName(ContainerID2) = 'Crystal Ent') or
(GetName(ContainerID2) = 'Illusions Ent') or
(GetName(ContainerID2) = 'Hellios Ent') or
(GetName(ContainerID2) = 'Eridan Ent') or
(GetName(ContainerID2) = 'Vampire Tree Ent') or
(GetName(ContainerID2) = 'Dragon Tree Ent') or
(GetName(ContainerID2) = 'Petrified Ent') or
(GetName(ContainerID2) = 'Perit Ent') or
(GetName(ContainerID2) = 'Keranit Ent') or
(GetName(ContainerID2) = 'Silver Leaf Ent') or
(GetName(ContainerID2) = 'Swamp Ent') or
(GetName(ContainerID2) = 'Dark Tree Ent') or
(GetName(ContainerID2) = 'Red Tree Ent') or
(GetName(ContainerID2) = 'Oak Ent') or
(GetName(ContainerID2) = 'Ent')
then
begin
AddToSystemJournal('684 НПС найден');
gfrt:=1;
wait(200);
end;
end;
Begin
SetARStatus(True);
ert:=0;
Cvet_log;
gfrt:=0;
//SetEventProc(evUpdateChar,'UpdateChar');
TpEda:=0;
smena;
beg:=0;
CharDead;
ded:=0;
CheckAxe;
if kusaem=1 then eda;
if TpEda = 1 then
TpEda:=0;
lll:=0;
if tp=1 then
runebook(runebook_les,Les);
NewMoveXY(StartForestX,StartForestY,false,1,false);
if gfrt=1 then ubegalka;
wait(4000);
check_hide;
speedee(speed,speed,speed,speed);
if gfrt=0 then poisk_tree;
AddToSystemJournal('698 поиск деревьев прошол успешно');
while infini = 1 do
begin
AddToSystemJournal('717');
CharDead;
i:=0;
if gfrt=1 then ubegalka;
if ded<>0 then
begin
if tp=1 then
runebook(runebook_les,Les);
wait(3000);
if gfrt=1 then ubegalka;
ded:=0;
if gfrt=0 then poisk_tree;
TpEda:=0;
end;
AddToSystemJournal('715 указываю j:=sum-1');
j:=sum-1;
if kusaem=1 then eda;
if TpEda=1 then
ded:=1;
ert:=0;
while (i<j)and(ded=0)and(Not Dead) or (ert<>1) do
begin
AddToSystemJournal('722 прошли цикл while i<j');
CharDead;
ClearBadLocationList;
if kusaem=1 then eda;
CharDead;
AddToSystemJournal('743 Gogogo');
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
AddToSystemJournal('748 ОО нееет меня атакуют Применяю брейк');
end;
if i< kol_der then
begin
CharDead;
check_hide;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
AddToSystemJournal('803 ОО нееет меня атакуют Применяю брейк');
end;
checksave;
NewMoveXY(res_arr[i].X,res_arr[i].Y,false,1,false);
CharDead;
check_hide;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
AddToSystemJournal('813 ОО нееет меня атакуют Применяю брейк');
end;
chop(res_arr[i]);
i:=i+1;
end;
if i>=kol_der then
begin
i:=0;
i:=i+1;
CharDead;
check_hide;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
AddToSystemJournal('816 ОО нееет меня атакуют Применяю брейк');
end;
checksave;
NewMoveXY(res_arr[i].X,res_arr[i].Y,false,1,false);
CharDead;
check_hide;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
AddToSystemJournal('831 ОО нееет меня атакуют Применяю брейк');
end;
chop(res_arr[i]);
i:=i+1;
end;
//AddToSystemJournal('828 и тут i = ' + inttostr(i)+' Ded = '+ inttostr(ded) );
if (Weight>=(MaxWeight-10)) and (vala<>0) then
begin
if vala=1 then
begin
AddToSystemJournal('766 Перевес начинаю тп на продажу');
check_hide;
checksave;
if tp=1 then
runebook(runebook_les,magaz_sell);
AddToSystemJournal('770 я в магазине продаю дрова');
checksave;
AddToSystemJournal('773 я подхожу к продавцу');
podhod(Vendor_Log);
checksave;
vendor_sell;
wait(3000);
checksave;
AddToSystemJournal('779 телепортируюсь в банк');
if tp=1 then
runebook(runebook_les,bank);
checksave;
wait(5000);
checksave;
uosay('bank guards');
wait(3000);
AddToSystemJournal('626 Кладу деньги в банк');
PutMoneyBank;
wait(3000);
checksave;
wait(3000);
PutLogBank;
wait(3000);
end;
checksave;
if vala=2 then
begin
if baala = 1 then
begin
checksave;
AddToSystemJournal('619 телепортируюсь в банк');
if tp=1 then
runebook(runebook_les,bank);
wait(4000);
checksave;
uosay('bank guards');
wait(3000);
PutLogBank;
wait(3000);
end;
AddToSystemJournal('732 телепортируюсь К СУНДУКУ ВОЗЛЕ ДОМА');
if tp=1 then
runebook(runebook_les,homecase);
NewMoveXY(StartHomeX,StartHomeY,false,1,false);
wait(4000);
checksave;
UseObject(casebox);
checksave;
check_hide;
PutLogCase;
wait(1000);
checksave;
end;
AddToSystemJournal('633 телепортируюсь в лес');
if tp=1 then
runebook(runebook_les,Les);
NewMoveXY(StartForestX,StartForestY,false,1,false);
checksave;
wait(4000)
checksave;
if gfrt=1 then ubegalka;
if gfrt=0 then poisk_tree;
end;
end;
if gfrt=1 then ubegalka;
if gfrt=0 then poisk_tree;
end;
end.
Re: Пробема с хайдом !
потому что скрипт я писал под другой шард. а где ты его взял там он работает на ура.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: Пробема с хайдом !
на других скриптах то же такая история !
Re: Пробема с хайдом !
ну и начни с хайда чож ты в лумбер полез тем более такой немаленький.
--->>>ПОИСК ПО ФОРУМУ, НАЧНИ С НЕГО!!!<<<---
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
--->>>Search the forum, start with him!!!<<<---
95% Ваших вопросов уже кем-то написаны и решены.
Re: Пробема с хайдом !
Кури в сторону NewMoveXY и его параметров. Один из них отвечает за бег.
А вообще, присоединяюсь к shinma. Тебе стоило бы проверить движение в хайде на более простом скрипте. Алгоритм приблизительно такой:
1. Использовали скилл хайда.
2. Ждем время отката использования скила.
3. Если перс не спрятался, то переходим к пункту 1.
4. Делаем шаг в сторону через newMoveXY.
5. Проверяем чар в хайде или нет. Делаем выводы.
Соответственно для верности показаний необходимо произвести несколько замеров.
А вообще, присоединяюсь к shinma. Тебе стоило бы проверить движение в хайде на более простом скрипте. Алгоритм приблизительно такой:
1. Использовали скилл хайда.
2. Ждем время отката использования скила.
3. Если перс не спрятался, то переходим к пункту 1.
4. Делаем шаг в сторону через newMoveXY.
5. Проверяем чар в хайде или нет. Делаем выводы.
Соответственно для верности показаний необходимо произвести несколько замеров.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
Re: Пробема с хайдом !
Кстати, всё ещё актуально. При первом-втором шаге вылетает из хайда.
Re: Пробема с хайдом !
рассчитывай путь, получай массив с точками пути, и ходи шагами по нему. После каждого щага - проверка на хайд.
Можно поиграться со скоростями шагов, но это не 100% решение.
Можно поиграться со скоростями шагов, но это не 100% решение.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re: Пробема с хайдом !
мож скилл стелс не прокачанн или шмотки крупногабаритные одеты?