Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Нужен скрипт

тут можно задать вопрос по скриптингу
pannir
Neophyte
Neophyte
Posts: 29
Joined: 02.09.2009 16:54

Нужен скрипт

Post by pannir »

Нужен скрипт такого плата..


> Медитировать
> после медитации использовать скилл ITEM ID кинуть таргет на робу(которая одета) про итемить ее.

> после завершение итема кинуть атаку на война
> Воин должен убить мага и воскресить.
> потом он все сначало, meditation потом item id на робу

вот пытался переделать из скрипт Анатомии но не получилось( помогите плиз

Code: Select all

Program mid;

{$Include 'all.inc'}

Begin
SetARStatus(true);
Hungry(1,ground);
clearjournal;
while not Dead do
begin
if Connected then
begin
for t := 0 to 10 do
begin
CheckSave;
UseSkill('Meditation');
Wait(15000);

-----------После как про Медитировал ---------------
UseSkill('Item Identification');
WaitForTarget(500);
 ---------------И кинул таргет на робу ту что на нем. ---------------

end;
Hungry(1,ground);
end;
end;
End.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

ну положим это не называется переделал.
1) читать уроки
2) читать команды стелса.
такой вот я зануда.
с ответами на конкретные вопросы - помогу, а писать скрипт с нуля - не буду, хоть тут и просто все.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Voland
Posts: 7
Joined: 10.08.2009 9:26

Post by Voland »

для токого скрипта лучше использовать процедуру для каждого дейтсвия , например 1) медитация с проверками 2) кидаем итем на робу и т.д . Еще атаку кидать ни на воина лучше, а на себя тоесь сделать харакири куда проще .
pannir
Neophyte
Neophyte
Posts: 29
Joined: 02.09.2009 16:54

Post by pannir »

Как зделать так чтоб таргет(item id) кинул на робу ту что одета на чаре. айди робы постояно будет менятца
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

function RobeLayer: Byte; // 0x16 - Роба - Torso (outer) (robe)
function ObjAtLayer(LayerType: Byte): Cardinal; // Возвращает ID обьекта object находящегося на указаном слое LayerType

в данном случае
WaitTargetObject(ObjAtLayer(RobeLayer));
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

Voland wrote:Еще атаку кидать ни на воина лучше, а на себя тоесь сделать харакири куда проще .
на многих шардах Attack(self) не только прикрыты, а еще и категорически запрещены как баг.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
pannir
Neophyte
Neophyte
Posts: 29
Joined: 02.09.2009 16:54

Post by pannir »

чтото я понять не могу не чего((

можете дать конкретный код чтоб после медитации кинул ИТЕМ на робу что одета?
Voland
Posts: 7
Joined: 10.08.2009 9:26

Post by Voland »

Program ItemMeditating ;

{$Include 'all.inc'}



Procedure Item;

begin
CheckSave;
If Dead then Exit;
UseSkill('Item Identification');
WaitTargetObject(ObjAtLayer(RobeLayer));
wait(2500);
end;


Procedure Meditation;
begin
Checksave;
If Dead then Exit;
UseSkill('Meditation');
wait(2000);
if LastJournalMessage = 'System: You cant focus your concentration' then begin
repeat
wait(9000);
UseSkill('Meditation');
wait(1000);
until LastJournalMessage = 'Voland: *Meditating*'
end;
end;


Procedure Harakiri;
begin
CheckSave;
if not dead then begin
attack(self);
wait(3000);
end;
end;

Procedure WarMode;
begin
CheckSave;
SetWarMode(true);
repeat
wait(1000);
until not dead
wait(1000);
end;




begin

SetARStatus(true);
while true do begin
Harakiri;
WarMode;
Item;
Meditation;
Hungry(2,ground);

end;

end.





вот сегодня сделал набросок , но чето понять нихера не могу когда после воскрешения маг кидает таргетом на робу на Layer , пишет

[14:34:39] System: Select an object to identify.
[14:34:39] System: What you selected does not seem to exist.

если отключть процедуры смерти и воскрешения то все впоряде и роба итемится без проблем.Хз че делать...
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post by MeLFiS »

А может лечге будет если он будет скидывать робу в пак а потом итемить ??
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

и чем же это будет легче?
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post by MeLFiS »

А как же тогда кидать таргет на робу ??
grundick
Developer
Developer
Posts: 272
Joined: 31.01.2008 21:16

Post by grundick »

TargetToObject(ObjAtLayer( RobeLayer ))

всё больше прихожу к выводу, что все эти потуги Визитора по усовершенствованию стелса мало кому нужны :/ Народ даже в хелп не хочет заглянуть, чего уж там говорить о новых возможностях...Большинство поди и не знает...
Voland
Posts: 7
Joined: 10.08.2009 9:26

Post by Voland »

Пробывал все варианты

TargetToObject(ObjAtLayerEx(RobeLayer,self));
TargetToObject(ObjAtLayer(RobeLayer));
WaitTargetObject(ObjAtLayer(RobeLayer));
WaitTargetObject(ObjAtLayerEx(RobeLayer,self));

Делал UseObject(self); может когда чар сдыхает стелс не видет слой ?
но все равно не помогло все таже ошибка :
[14:34:39] System: Select an object to identify.
[14:34:39] System: What you selected does not seem to exist.
grundick
Developer
Developer
Posts: 272
Joined: 31.01.2008 21:16

Post by grundick »

хых )
может и такое быть...
попробуй после смерти открывать папердолл. UseObject(self) ...
MeLFiS
Novice
Novice
Posts: 147
Joined: 02.02.2008 12:21

Post by MeLFiS »

Code: Select all

Procedure Item; 

begin 
CheckSave; 
If Dead then Exit;
useobject(self);
undress;
if  FindType($1F03,Backpack) = 0 then exit;  
UseSkill('Item Identification');  
WaitTargetObject(FindType($1F03,Backpack));
wait(2500); 
end;
вроде процедура написанна правильно но чего после таго как его убили и реснули он не хочет снимать робу ??
Post Reply