PDA

Просмотр полной версии : Помогите плизик


goodvin1709
14.02.2011, 20:08
привет всем я на кодере новичок
я играю на с4 серваке и один крутй человек написал скрипт на заточку
и закупку итемов и точек.
Но я хочу добавить процедуру на закупку адени(менять Коли в адену)
:D:D:D:D
вот моя процедура.

Procedure BuyAdena ;
begin
Timer.Enabled := False ;
buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 38 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;
buf := hstr('A7 42 02 00 00 67 00 00 00 01 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;
buf := hstr('A7 42 02 00 00 67 00 00 00 01 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;
buf := hstr('A7 42 02 00 00 67 00 00 00 01 00 00 00') ;
SendToServerEx(CharName) ;
Timer.Enabled := True ;
End ;

но нада чтобы купляла адену когда ее мало например Adena < 1500000000

как моно зделать такой перехват пакетов?????
http://depositfiles.com/files/i83sm5hjg вот ссылка на исходник скрипта.

J-Fobos
14.02.2011, 20:35
В процедуре GetItemBase надо узнавать количество адены и в случаи количества меньше указанного запускать вашу процедуру. ID адены 57.
Кстати, откажитесь от использование delay и создайте таймер.

goodvin1709
14.02.2011, 23:27
а как само лутше зделать процедуру на перехват количества аден в сумке и переадресацыи для старта процедуры на закупку???*

J-Fobos
14.02.2011, 23:55
Ну у вас там уже есть цикл, который перебирает весь инвентарь. Добавьте в этом цикле определение количества итемов и проверку ид итема (не является ли этот итем аденой). После окончания цикла проверяйте количество аден.

Nickers
15.02.2011, 20:19
Скрипт от тамбика

// Auto_enchant_maxlvl - interlude + покупка !!!!!!!!!!
// хроники Interlude
// ======================================

Давным давно прикрутил обмен из Валюты тамошней в адену...
Срабатывает: когда адены меньше чем 1.5ккк
Делает: Посылает пакет до тех пор пока у вас не станет адены больше чем 1.5ккк

//--------------------------
procedure OnTimer03(Sender: TObject);
begin
buf:=#$58;
WriteD(enchantID);
SendToServerEx(myname);
Timer03.enabled:=false;
SendMsg2( ' ..... Точим Предмет ..... ' );
SendMsg2( ' ID : '+IntToStr(itemID)+' и ObjectID : '+IntToStr(enchantID)+' до : '+IntToStr(maxlvl)+' ' );
SendMsg2( '------------------------------------- ' );
enchantID:=0;
if (GetItem(57,3,4)<1500000000) then
begin
Repeat
begin
buf:=#$A7#$B1#$12#$01#$00#$40#$80#$58#$00#$01#$00# $00#$00#$00#$00#$00#$00#$00#$00#$00#$00;
SendToServer;
end;
Until (GetItem(57,3,4)<1500000000);
end;
end;
//-----------------------------------------

buff:=#$A7
Это собстна пакет, который он посылает нужно каждую пару писать с #$...

Все примитивно, но работает... Друг не жаловался, а я не использовал ни разу))

goodvin1709
19.02.2011, 00:52
как я понел там нету константы((
и ето дополнение к скрипту на заточку((
а мне нада процедура на проверку и перенаправление на покупку адены
и я немогу понять
buf:=#$58;
WriteD(enchantID);
SendToServerEx(myname);
Timer03.enabled:=false;
SendMsg2( ' ..... Точим Предмет ..... ' );
SendMsg2( ' ID : '+IntToStr(itemID)+' и ObjectID : '+IntToStr(enchantID)+' до : '+IntToStr(maxlvl)+' ' );
SendMsg2( '------------------------------------- ' );
enchantID:=0;
Вот ето(( тут нету неодной константы дайте хоть ссылку на скрипт плиз
И еще
buf:=#$A7#$B1#$12#$01#$00#$40#$80#$58#$00#$01#$00# $00#$00#$00#$00#$00#$00#$00#$00#$00#$00;
что означает етот пакет ???

Добавлено через 11 часов 4 минуты
program Adena;




const
charname = '******' ;
procedure CountAdena;
begin
if (ReadD(18)<>57) then exit;
if (ReadD(22)<1500000000) then buyAdena;
end;
procedure BuyAdena ;
begin
Timer.Enabled := False ;
buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 37 00 38 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;
buf := hstr('A7 42 02 00 00 67 00 00 00 01 00 00 00') ;
SendToServerEx(CharName) ;
Timer.Enabled := True ;
End ;


и вот вобщем я написал 2 процедурки на проверку адены и закупки при нужде но чтото она неработает((( Где моя проблема???

J-Fobos
19.02.2011, 12:44
Откуда вот это вот
if (ReadD(18)<>57) then exit;
if (ReadD(22)<1500000000) then buyAdena;
Будет читаться? Почему 18 и 22?

goodvin1709
19.02.2011, 13:30
я уже стоко перечитал и уже незнаю как почать сканить
я так понел нада
if FromServer and (pck[1]=#$27) then
if (ReadD(12)<>57) then exit;
if (ReadD(16)<100000000) then buyAdena;


както так вроде нада и написать процедуры

J-Fobos
19.02.2011, 14:13
Опять же вопрос, откуда 12 и 16? Почему раньше было 18 и 22?

dyh9l
19.02.2011, 15:02
так и прут с хельсинга на кодерх, ну что вы за люди)

Nickers
19.02.2011, 15:35
И еще
buf:=#$A7#$B1#$12#$01#$00#$40#$80#$58#$00#$01#$00# $00#$00#$00#$00#$00#$00#$00#$00#$00#$00;
что означает етот пакет ???
buff:=#$A7
Это собстна пакет, который он посылает нужно каждую пару писать с #$...

Можешь любой пакет вставить))
В конкретном случае этот пакет был на покупку 1ккк адены за 1гб...

Берешь Таймер в его тело пихаешь:
if (GetItem(57,3,4)<1500000000) then
begin
Repeat
begin
buf:=#$A7#$B1#$12#$01#$00#$40#$80#$58#$00#$01#$00# $00#$00#$00#$00#$00#$00#$00#$00#$00#$00;
SendToServer;
end;
Until (GetItem(57,3,4)<1500000000);
end;
Скрипт тамбика можно на этом форуме найти даже без поиска...

Есть так же вариант вставить в само тело проверку в любом скрипте, но не факт, что там буит ГетИтем функция или вообще база инвентаря...

goodvin1709
19.02.2011, 23:28
дуня негони я хочу научится мне тот хелсин вобще побарабану)
12-----00 0С ето было написано ид адены
16 ----10 00 ето ее количество
я перевел в Dword

NLObP
20.02.2011, 01:58
я хочу научится

Книжку по паскалю найди и почитай. Без этого трудно скрипты будет писать.

dyh9l
20.02.2011, 01:59
я ему вроде более-менее объяснил как реализовать обмен адены)

goodvin1709
20.02.2011, 02:01
Дуне ОГРОМНОЕ СПАСИБО НАУЧИЛ кое чему и обеснил как работать в програме и скриптах

dyh9l
20.02.2011, 02:06
когда supernewbie увидит это, он поржет)

goodvin1709
20.02.2011, 02:16
Все закрыли темку