PDA

Просмотр полной версии : Скрипт с покупкой и продажей разным nps


esco
22.06.2009, 23:29
Добрый день. У меня такая проблема, я хотел написать такой скрипт c такими задачами: cтоят 2 npc рядом, 1-ый Gatekeper (gk) и 2-ой Game-shop (gs). Так вот при помощи скрипта мой чар должен сначала 1 раз купить кристалы у (gs), потом обменять их на свитки у (gk) 16 раз(столько влазит до перевеса) то есть ему нада сначала сделать таргет на (gk) потом еще раз чтоб открыть диалог, потом выбрать обмен и только потом отправить пакет на обмен. После нада о5 же такую манипуляцю c таргетом и диалогом на (gs) и продать их всех. После о5 к (gk) (так как кристаллы еще остались) меняем 16 раз на свитки и о5 в (gs) продаем.Ну вот тут можно закончить чтоб проще было, дальше я сам смогу разобраться и доделать. Ну а в идеале он должен о5 1 раз купить кристаллы у (gs) и ити менять и продавать и так по кругу до бесконечности. Впринципе вот такой вот скрипт его можно сделать доработав вот етот скрипт на покупку только поправте пожалуйста и покажите куда мне пакеты вставлять на (таргет, выбор, покупку, обмен, продажу,) Буду очень признателен! Думаю такой скрипт многим пригодиться так как его легко сможет каждый редактировать под свои задачи.
const
Name='nick';
var
timer:TTimer;
procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=50;
timer.OnTimer:=@fireTimer;
timer.enabled:=true;
end;
procedure Free;
begin
timer.Free;
end;
procedure fireTimer(Sender: TObject);
begin
buf:=hstr('покупка');
SendToServer;
end;
begin
if FromServer and (ConnectName=Name) and (pck = HStr('нет денег')) then begin
timer.enabled:=false;
end;
end.

Зараннее благодарю тех кому не лень ето посмотреть!

NLObP
22.06.2009, 23:35
esco, смотри как другие скрипты написаны и по подобии пиши свой.

esco
23.06.2009, 00:29
Ну тут такое дело... етот скрипт который я выложил изначально такой был,я над ним уже много эксперементировал. Ничего не получилось поетому я и отписал. Все темы на форуме смотрел только етот нашел более подходящий. Я никак немогу сделать чтобы он таргет на след. npc делал и потом к другому и по кругу. вообщем если бы ето все у 1 го npc было я бы сделал сам. Помоги пожалуйста составить основу. А потом я сам пакеты проставлю и доведу до ума как нить.
Зараннее огромное спасибо!!

QaK
23.06.2009, 08:29
esco, как же вы достали ... нету, я искал(а), все перерыл(а) и так далее, так и скажи, ввел в поиске, ничего не выдало - типа поискал(а).
Советую почитать топ "Да будет бот", ссылка в подписи.
const
Name='nick';
var timer:TTimer;
phase:integer;
procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=100;
timer.OnTimer:=@fireTimer;
timer.enabled:=false;//изначально таймер выключен

phase:=1;//начальная фаза
end;
procedure Free;
begin
timer.Free;
end;
procedure fireTimer(Sender: TObject);
begin
case phase of
1:begin
buf:=hstr('{здесь пакет на таргет гмшопа}');
SendToServerEx(Name);
inc(phase);
end;
2:begin
buf:=hstr('{здесь пакет на второй таргет гмшопа}');
SendToServerEx(Name);
inc(phase);
end;
3:begin
buf:=hstr('{здесь пакет на выбор магазина}');
SendToServerEx(Name);
inc(phase);
end;
4:begin
buf:=hstr('{здесь пакет на покупку нужного кол-ва итемов}');
SendToServerEx(Name);
inc(phase);
end;
5:begin
buf:=hstr('{здесь пакет на таргет гк}');
SendToServerEx(Name);
inc(phase);
end;
6:begin
buf:=hstr('{здесь пакет на второй таргет гк}');
SendToServerEx(Name);
inc(phase);
end;
7:begin
buf:=hstr('{здесь пакет на выбор магазина}');
SendToServerEx(Name);
inc(phase);
end;
8:begin
buf:=hstr('{здесь пакет на обмен}');
SendToServerEx(Name);
phase:=1;//вернулись к началу
end;
end;
end;
begin
if FromClient and (ConnectName=Name) and (pck = HStr('{здесь пакет на старт точки, например социальное действие}' )) then begin
timer.enabled:=true;
end;

if FromClient and (ConnectName=Name) and (pck = HStr('{здесь пакет на стоп точки, например социальное действие}' )) then begin
timer.enabled:=false;
end;

end.
з.ы. писалось на коленке, на работоспособность не проверялось