Page 1 of 1
Help plz [нужна процедура на розгрузку]
Posted: 19.03.2008 19:59
by proZak
Собствено нужна процедура на розгрузку немогу собразить как написать!
Собствено розгрузка должна делать :
1 када у чара вес 500 начинает розгрузку;
2 есть к примеру 20 итомов разных;
3 8 из них нада вылажывать в сундук а 12 выкидывать в мусорку.
Большое спасиба тем кто поможет)
Posted: 20.03.2008 12:02
by Acronym
1)Ввести в скрипт константу типа MaxWeight = 500;
2)Написать процедуру типа UnLoad;
Итемы удобно представить как массив (сначала нужные предметы, потом ненужные)
Элементы этого массива мы потом
for k := 0 to 7 do
... будем скидывать в сундук, а
for k := 8 to 19 do
... будем скидывать в trash.
3)Потом в скрипте проверять больше ли вес чем MaxWeight и если да, то вызывать процедуру выгрузки UnLoad;
if (Weight > MaxWeight) then
UnLoad;
...
Массивы предметов можно увидеть в скриптах на lumber и mining
Posted: 20.03.2008 16:09
by proZak
Acronym wrote:1)Ввести в скрипт константу типа MaxWeight = 500;
2)Написать процедуру типа UnLoad;
Итемы удобно представить как массив (сначала нужные предметы, потом ненужные)
Элементы этого массива мы потом
for k := 0 to 7 do
... будем скидывать в сундук, а
for k := 8 to 19 do
... будем скидывать в trash.
3)Потом в скрипте проверять больше ли вес чем MaxWeight и если да, то вызывать процедуру выгрузки UnLoad;
if (Weight > MaxWeight) then
UnLoad;
...
Массивы предметов можно увидеть в скриптах на lumber и mining
А када скидуеш вещи нада шоб был открыт сундук в который скидуеш? есле да то как быть с мусоркои?
Code: Select all
... будем скидывать в сундук, а
... будем скидывать в trash.
как оформить ети строчки?
Спс за хелп![/code]
Posted: 20.03.2008 16:21
by proZak
Вот нашол кусок с ламбера токо я непоиму де тут указан сундук для зброса, вижу токо логи которые збрасует !
Есле не тяжело обясните !
Code: Select all
procedure DropLog;
var g : integer;
logCol : Array [0..16] of Word;
Begin
finddistance := 2;
CheckSave;
AddToSystemJournal('âûáðàñûâàþ äåðåâî â ëîäêó');
logCol[0] := $0000; // normum
logCol[1] := $000B; // elkris
logCol[2] := $0362; // jade
logCol[3] := $010D; // oak
logCol[4] := $0094; // karund
logCol[5] := $01B0; // leshram
logCol[6] := $01A2; // turmalit
logCol[7] := $0026; // emerint
logCol[8] := $00CB; // legrand
logCol[9] := $094A; // solmur
logCol[10] := $092B; // kleor
logCol[11] := $0931; // logradum
logCol[12] := $093F; // vialonit
logCol[13] := $0074; // stardust
logCol[14] := $09EF; // pironil
logCol[15] := $006F; // mystic
logCol[16] := $0119; // elvin
for g := 0 to 16 do
begin
CheckSave;
FindTypeEx(logType,logCol[g],backpack,true);
if FindCount > 0 then
begin
stack(logType,logCol[g]);
wait(500);
end
end
findtype (eda,ground);
Addtosystemjournal('Åäû íà çåìëå '+intToStr(findfullquantity)+'!');
hungry (1,ground);
End;
Дето тут наверное:
Code: Select all
FindTypeEx(logType,logCol[g],backpack,true);
токо опять таки де тут сундук непоиму)
Posted: 20.03.2008 17:54
by Acronym
Code: Select all
procedure Unload;
var
g : integer;
const
TrashID = $123456;
ChestID = $654321;
UnLoadItems : Array [0..19] of Word;
Begin
FindDistance := 2;
CheckSave;
UnLoadItems [0] := $0000;
***
***
***
UnLoadItems [19] := $0000;
for g := 0 to 19 do
begin
CheckSave;
FindType(UnLoadItems[g],backpack);
if FindCount > 0 then
begin
if g <= 15 then
begin // кидаем в trash
MoveItems(BackPack,UnLoadItems[g],$FFFF,TrashID, 0, 0, 0, 500);
wait(1000);
end
else
begin // кидаем в сундук
MoveItems(BackPack,UnLoadItems[g],$FFFF,ChestID, 0, 0, 0, 500);
wait(1000);
end;
end;
end;
End;
Нечто похожее на это.
Контеинер нужно открыть чтобы узнать его содержимое, для того чтобы положить нечто в него этого делать не обязательно.
Posted: 20.03.2008 18:51
by proZak
Acronym wrote:Code: Select all
procedure Unload;
var
g : integer;
const
TrashID = $123456;
ChestID = $654321;
UnLoadItems : Array [0..19] of Word;
Begin
FindDistance := 2;
CheckSave;
UnLoadItems [0] := $0000;
***
***
***
UnLoadItems [19] := $0000;
for g := 0 to 19 do
begin
CheckSave;
FindType(UnLoadItems[g],backpack);
if FindCount > 0 then
begin
if g <= 15 then
begin // кидаем в trash
MoveItems(BackPack,UnLoadItems[g],$FFFF,TrashID, 0, 0, 0, 500);
wait(1000);
end
else
begin // кидаем в сундук
MoveItems(BackPack,UnLoadItems[g],$FFFF,ChestID, 0, 0, 0, 500);
wait(1000);
end;
end;
end;
End;
Нечто похожее на это.
Контеинер нужно открыть чтобы узнать его содержимое, для того чтобы положить нечто в него этого делать не обязательно.
Ищо вопрос просто шоб я не зделал ошыбок !
получаетсо есле я правильно понял тут 19 разных итомов и в сундук он кидает 15 первых а 4 оставшыхся 16,17,18,19-он кидает в мусорку?
Posted: 20.03.2008 18:53
by CFA
proZak wrote:
получаетсо есле я правильно понял тут 19 разных итомов
20
proZak wrote:и в сундук он кидает 15 первых
16 первых в треш
Posted: 20.03.2008 19:00
by proZak
CFA wrote:proZak wrote:
получаетсо есле я правильно понял тут 19 разных итомов
20
proZak wrote:и в сундук он кидает 15 первых
16 первых в треш
Большое человеческое спасиба,всем хто помог)

Posted: 21.03.2008 3:16
by MeXaon
Приятно иметь дело с людьми, которые сами что то пытаются понять и разобраться
хоть я тут и ничего не помогал
