PDA

Просмотр полной версии : Крипт манора в Gardens of EVA tyrantom 47лвла


Lafine
08.02.2008, 20:39
Вообщем выкладываю свой первый скрипт. Прошу не кидать в меня помидорами. Гуру прошу отписать замечания :)

//Скрипт для манора в Садах Евы турантом 47 лвла. Включаем скрипт и потом социальное YES для начала работы
// убиваем пару Стакато и дальше он сам сражается.
const
MOB=1000794; // имя моба Blade Stakato 41x2
Seed=5221; //Chilly Cobol
Harvester=5125; //Harvester
MaxMobCount=2;
SpiritofOgre='2F 6D 00 00 00 00 00 00 00 00';
HealingPotion=1061;

var
MobID: array [1..MaxMobCount] of integer;
i,count:integer;
CurHP,MaxHP:integer;
MobName, MobX, MobY, MobZ:integer;
MobInWarID, MobInWarName: integer; // ИД моба и Имя моба(номер моба)
SocialID:integer; // ИД соц действия
status : boolean; // Начинать работать или нет
SeedID:Integer;
HarvesterID: integer;
HealingPotionID:integer;


procedure Init; //Вызывается при включении скрипта
begin
MobID[1]:=0;
MobID[2]:=0;
MobInWarID:=0;

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;

procedure SendMsg(Msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(1);
WriteS('ПОМОШНИК ПВП');
WriteS(Msg);
SendToClient;
end;

function ItemSearch(ItemName:integer):Cardinal;
var i,y:integer;
TempName:Cardinal;
begin
result:=0;
i:=1;
while i<Length(pck)-4 do begin
y:=i;
TempName:=ReadD(y);
Inc(i);
if TempName=ItemName then begin
result:=ReadD(y-8);
end;
end;
end;

procedure Target(ObjectID: Integer);
begin
buf:=#$04;
WriteD(ObjectID);
WriteD(0);
WriteD(0);
WriteD(0);
WriteC(1);
SendToServer;
end;

procedure UseItem(ItemID:integer);
begin
buf:=#$14;
WriteD(ItemID);
WriteD(0);
SendToServer;
end;

procedure Attack(TargetID,TargetX,TargetY,TargetZ:integer);
begin
buf:=#$04;
WriteD(TargetID);
WriteD(TargetX);
WriteD(TargetY);
WriteD(TargetZ);
WriteD(0);
SendToServer;
end;


//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromClient and (pck[1]=#$1B) then
begin
SocialID:=ReadD(2);
case SocialID of
//социальное действие Yes для начала манора
6:begin
Status:=true;
buf:=#$0f;
SendToServer;
end;
//социальное действие No для окончания
5:begin
Status:=false;
end;
end;
end;
//пакет просмотра инвентаря. Находим ИД семян, харвестера и бутылок для дальнейшего использования.
if FromServer and (pck[1] = #$1B) then begin
SeedID:=ItemSearch(Seed);
HarvesterID:=ItemSearch(Harvester);
HealingPotionID:=ItemSearch(HealingPotion);
end;

//Пакет InventoryUpdate - не вписывал пока. Как только разберусь с самим пакетом, так сразу и сделаю
if FromServer and (pck[1] = #$27) then begin
// temp:=ItemSearch(GreaterCPP);
// if temp <> 0 then GreaterCPID:=temp;
// temp:= ItemSearch(GreaterHP);
// if temp <> 0 then GreaterHPID:=temp;
// temp:= ItemSearch(QuickHP);
// if temp <> 0 then QuickHPID:= temp;
// ShowHTML(IntToStr(GreaterCPID)+' '+IntToStr(GreaterHPID)+' '
// +IntToStr(QuickHPID))
end;

//Если приходит пакет NPCInfo от сервера, то проверяем чтобы это был нужный нам моб и находился в нужной области
//координат, то запоминаем ИД моба в массив.
if FromServer and (pck[1]=#$16) then begin
//Думаю тут надо пояснить что и как. Параметр -7750 и -8184 это координаты по оси Z.
//Сделано это для того чтобы персонаж не отвлекался на других мобов в округи, а занимался только этими двумя :)
if (ReadD(6)=MOB) and (ReadD(22)<-7750) and (ReadD(22)>-8184) then begin
count:=0;
for i:=1 to MaxMobCount do begin
if (MobID[i]=ReadD(2)) then count:=i;
end;
if (count = 0) then begin
for i:=1 to MaxMobCount do begin
if (MobID[i]=0) then begin
MobID[i]:=ReadD(2);
break;
end;
end;
end;
// MobID:=ReadD(2);
// MobName:=ReadD(6);
// MobX:=ReadD(14);
// MobY:=ReadD(18);
// MobZ:=ReadD(22);
// Sendmsg(IntToStr(MobID[1]));
// Sendmsg(IntToStr(MobID[2]));
// SendMsg(IntToStr(MobInWarID));
// Attack(MobID,MobX,MobY,MobZ);
end;
end;
//Если приходит пакет удаления объекта и ИД объекта равен мобу в массиве, то удаляем ИД с массива
if FromServer and (pck[1]=#$12) then begin
for i:=1 to MaxMobCount do begin
if (MobID[i]=ReadD(2)) then MobID[i]:=0;
end;
end;

//Тут я под пакет MoveToLocation спрятал выборку следующего моба для атаки. Спрятал в этот пакет, потому что
//двигаются часто кто нить рядом, а ставить при обработке при любом пакете - слишком нагружать скрипт
if FromServer and (pck[1]=#$01) then begin
For i:=1 to MaxMobCount do begin
if MobID[i]<>0 then begin
MobInWarID:=MobID[i];
Attack(MobInWarID,0,0,0);
end;
end;
end;
// ПРиходит побтверждение что цель выбрана и атакуем цель

if FromServer and (pck[1]=#$A6) then begin
if (ReadD(2)=MobInWarID) then Attack(MobInWarID,0,0,0);
end;
//Пока у моба не 0 ХП забрасываем семечку. Если данные о своих ХП то смотрим и выпиваем бутылку
if FromServer and (pck[1]=#$0E) then begin
if (ReadD(2)=MobInWarID) then begin
if (ReadD(14)<>0) and (SeedID<>0) then UseItem(SeedID);
end;
if (pck[6]=#$04) then begin
CurHP:=ReadD(14);
MaxHP:=ReadD(22);
if (CurHP<2000) then UseItem(HealingPotionID);
end;
end;
if FromServer and (pck[1]=#$16) then begin
if (ReadD(2)=MobInWarID) and (HarvesterID<>0) then UseItem(HarvesterID);
end;

//Тут проверяем закончилось ли действие Баффа и если закончилось то еще раз используем
if FromServer and (pck[1]=#$7F) then begin
buf:=Hstr(SpiritofOgre);
SendToServer;
Attack(MobInWarID,0,0,0);
end;




// SendMsg(IntToStr(MobID));
// SendMsg(IntToStr(MobName));

end.

Lafine
08.02.2008, 20:39
Вообщем выкладываю свой первый скрипт. Прошу не кидать в меня помидорами. Гуру прошу отписать замечания :)

//Скрипт для манора в Садах Евы турантом 47 лвла. Включаем скрипт и потом социальное YES для начала работы
// убиваем пару Стакато и дальше он сам сражается.
const
MOB=1000794; // имя моба Blade Stakato 41x2
Seed=5221; //Chilly Cobol
Harvester=5125; //Harvester
MaxMobCount=2;
SpiritofOgre='2F 6D 00 00 00 00 00 00 00 00';
HealingPotion=1061;

var
MobID: array [1..MaxMobCount] of integer;
i,count:integer;
CurHP,MaxHP:integer;
MobName, MobX, MobY, MobZ:integer;
MobInWarID, MobInWarName: integer; // ИД моба и Имя моба(номер моба)
SocialID:integer; // ИД соц действия
status : boolean; // Начинать работать или нет
SeedID:Integer;
HarvesterID: integer;
HealingPotionID:integer;


procedure Init; //Вызывается при включении скрипта
begin
MobID[1]:=0;
MobID[2]:=0;
MobInWarID:=0;

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;

procedure SendMsg(Msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(1);
WriteS('ПОМОШНИК ПВП');
WriteS(Msg);
SendToClient;
end;

function ItemSearch(ItemName:integer):Cardinal;
var i,y:integer;
TempName:Cardinal;
begin
result:=0;
i:=1;
while i<Length(pck)-4 do begin
y:=i;
TempName:=ReadD(y);
Inc(i);
if TempName=ItemName then begin
result:=ReadD(y-8);
end;
end;
end;

procedure Target(ObjectID: Integer);
begin
buf:=#$04;
WriteD(ObjectID);
WriteD(0);
WriteD(0);
WriteD(0);
WriteC(1);
SendToServer;
end;

procedure UseItem(ItemID:integer);
begin
buf:=#$14;
WriteD(ItemID);
WriteD(0);
SendToServer;
end;

procedure Attack(TargetID,TargetX,TargetY,TargetZ:integer);
begin
buf:=#$04;
WriteD(TargetID);
WriteD(TargetX);
WriteD(TargetY);
WriteD(TargetZ);
WriteD(0);
SendToServer;
end;


//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromClient and (pck[1]=#$1B) then
begin
SocialID:=ReadD(2);
case SocialID of
//социальное действие Yes для начала манора
6:begin
Status:=true;
buf:=#$0f;
SendToServer;
end;
//социальное действие No для окончания
5:begin
Status:=false;
end;
end;
end;
//пакет просмотра инвентаря. Находим ИД семян, харвестера и бутылок для дальнейшего использования.
if FromServer and (pck[1] = #$1B) then begin
SeedID:=ItemSearch(Seed);
HarvesterID:=ItemSearch(Harvester);
HealingPotionID:=ItemSearch(HealingPotion);
end;

//Пакет InventoryUpdate - не вписывал пока. Как только разберусь с самим пакетом, так сразу и сделаю
if FromServer and (pck[1] = #$27) then begin
// temp:=ItemSearch(GreaterCPP);
// if temp <> 0 then GreaterCPID:=temp;
// temp:= ItemSearch(GreaterHP);
// if temp <> 0 then GreaterHPID:=temp;
// temp:= ItemSearch(QuickHP);
// if temp <> 0 then QuickHPID:= temp;
// ShowHTML(IntToStr(GreaterCPID)+' '+IntToStr(GreaterHPID)+' '
// +IntToStr(QuickHPID))
end;

//Если приходит пакет NPCInfo от сервера, то проверяем чтобы это был нужный нам моб и находился в нужной области
//координат, то запоминаем ИД моба в массив.
if FromServer and (pck[1]=#$16) then begin
//Думаю тут надо пояснить что и как. Параметр -7750 и -8184 это координаты по оси Z.
//Сделано это для того чтобы персонаж не отвлекался на других мобов в округи, а занимался только этими двумя :)
if (ReadD(6)=MOB) and (ReadD(22)<-7750) and (ReadD(22)>-8184) then begin
count:=0;
for i:=1 to MaxMobCount do begin
if (MobID[i]=ReadD(2)) then count:=i;
end;
if (count = 0) then begin
for i:=1 to MaxMobCount do begin
if (MobID[i]=0) then begin
MobID[i]:=ReadD(2);
break;
end;
end;
end;
// MobID:=ReadD(2);
// MobName:=ReadD(6);
// MobX:=ReadD(14);
// MobY:=ReadD(18);
// MobZ:=ReadD(22);
// Sendmsg(IntToStr(MobID[1]));
// Sendmsg(IntToStr(MobID[2]));
// SendMsg(IntToStr(MobInWarID));
// Attack(MobID,MobX,MobY,MobZ);
end;
end;
//Если приходит пакет удаления объекта и ИД объекта равен мобу в массиве, то удаляем ИД с массива
if FromServer and (pck[1]=#$12) then begin
for i:=1 to MaxMobCount do begin
if (MobID[i]=ReadD(2)) then MobID[i]:=0;
end;
end;

//Тут я под пакет MoveToLocation спрятал выборку следующего моба для атаки. Спрятал в этот пакет, потому что
//двигаются часто кто нить рядом, а ставить при обработке при любом пакете - слишком нагружать скрипт
if FromServer and (pck[1]=#$01) then begin
For i:=1 to MaxMobCount do begin
if MobID[i]<>0 then begin
MobInWarID:=MobID[i];
Attack(MobInWarID,0,0,0);
end;
end;
end;
// ПРиходит побтверждение что цель выбрана и атакуем цель

if FromServer and (pck[1]=#$A6) then begin
if (ReadD(2)=MobInWarID) then Attack(MobInWarID,0,0,0);
end;
//Пока у моба не 0 ХП забрасываем семечку. Если данные о своих ХП то смотрим и выпиваем бутылку
if FromServer and (pck[1]=#$0E) then begin
if (ReadD(2)=MobInWarID) then begin
if (ReadD(14)<>0) and (SeedID<>0) then UseItem(SeedID);
end;
if (pck[6]=#$04) then begin
CurHP:=ReadD(14);
MaxHP:=ReadD(22);
if (CurHP<2000) then UseItem(HealingPotionID);
end;
end;
if FromServer and (pck[1]=#$16) then begin
if (ReadD(2)=MobInWarID) and (HarvesterID<>0) then UseItem(HarvesterID);
end;

//Тут проверяем закончилось ли действие Баффа и если закончилось то еще раз используем
if FromServer and (pck[1]=#$7F) then begin
buf:=Hstr(SpiritofOgre);
SendToServer;
Attack(MobInWarID,0,0,0);
end;




// SendMsg(IntToStr(MobID));
// SendMsg(IntToStr(MobName));

end.

QaK
09.02.2008, 23:22
Прокоментируй нормально скрипт, а то влом искать смотреть какие пакеты ты обрабатываешь, и какие действия совершаешь. Весьма страная процедура по поиску ОбджектИД вещей - но, тем не менее - рабочая. Пока все, а вообще для этого существует топик "Да будет бот".

QaK
09.02.2008, 23:22
Прокоментируй нормально скрипт, а то влом искать смотреть какие пакеты ты обрабатываешь, и какие действия совершаешь. Весьма страная процедура по поиску ОбджектИД вещей - но, тем не менее - рабочая. Пока все, а вообще для этого существует топик "Да будет бот".

ChiterEPT
11.02.2008, 15:01
а вообще для этого существует топик "Да будет бот".
Тема "Да будет бот" превратилась в огромную кучу скриптов и офтопа... Надо сделать отдельную тему со скриптами и кратким описанием и тему с обсуждением ( желательно с ответвлениями для каждого скрипта) на данный момент тема Да будет БОТ не читабельная... (сори за офтоп)

ChiterEPT
11.02.2008, 15:01
а вообще для этого существует топик "Да будет бот".
Тема "Да будет бот" превратилась в огромную кучу скриптов и офтопа... Надо сделать отдельную тему со скриптами и кратким описанием и тему с обсуждением ( желательно с ответвлениями для каждого скрипта) на данный момент тема Да будет БОТ не читабельная... (сори за офтоп)

QaK
11.02.2008, 15:44
Привет АрхиНуб, =) Возможно ты и прав (про то, что надо отдельно тему с разветвлениями) но в "Да будет бот" - намана читабельно, просто там никто давно не модерил ... вот и нкаопилось ...

QaK
11.02.2008, 15:44
Привет АрхиНуб, =) Возможно ты и прав (про то, что надо отдельно тему с разветвлениями) но в "Да будет бот" - намана читабельно, просто там никто давно не модерил ... вот и нкаопилось ...

xkor
12.02.2008, 00:32
я ворону давно говорил что темку надо разнести на несколько а лучше даже подраздел сделать с готовыми скриптами чтоб первый пост в каждой теме был скриптом и описанием а дальше шло его обсуждение, но ворон яросно защищает текущий вид...

xkor
12.02.2008, 00:32
я ворону давно говорил что темку надо разнести на несколько а лучше даже подраздел сделать с готовыми скриптами чтоб первый пост в каждой теме был скриптом и описанием а дальше шло его обсуждение, но ворон яросно защищает текущий вид...

VORON
27.02.2008, 06:04
я ворону давно говорил что темку надо разнести на несколько а лучше даже подраздел сделать с готовыми скриптами чтоб первый пост в каждой теме был скриптом и описанием а дальше шло его обсуждение, но ворон яросно защищает текущий вид...
КОР, неправда. я тока за модернизацию и улучшение поиска и простоты нахождения нужного раздела и топа.. но при етом то что уже сделано- не должно потеряться.. при переходе на новый движок: топ "ДА БУДЕТ БОТ" похудел на 12 листов сообщений.. в которых подробнейшим образом описывалось процесс создания всех скриптов которые сейчас там представлены.. разбив етот топ щас на кучу разных топов- снова потеряем кучу инфы.. если создать подраздел с топами-скриптами- узково профиля и вкаждом топе обсуждать конкретный скрипт.. но от обилия топов- глаза разбегутся у людей.. основные вопросы возникают не узково профиля а вопросы касающиеся всех скриптов разом.. типа: как коректней захватить ИД чаров.. считать ХП и МП.. в каждом топе (10-20 топов) объяснять людям одно и тожэ- трудоёмко.. оптимально пока оставить топ как есть "ДА БУДЕТ БОТ" не делить его.. но в тожэ время в полне возможна наша поддержка таких топов как "СДАЧА МАНОРА" и еще типа етого.. топ "ДА БУДЕТ БОТ" дает почти любые решения для новичка- показывает как ваще скрипты пишутся и что они могут а чего нет.. специфичные вопросы вполне можно решать и в его приделах.. но часто бывает так что человек написал скрипт свой, хочет им поделиться, и чтоб его заметили создает новый топ.. мне кажется ето можно исправить (хотя стоит ли?) можно просто более активне топ "ДА БУТ БОТ" модерить и переносить скрипты в начало с коментами.. но пока я там ниче не вижу нового что можно было бы переместить в первый пост (готовое решение).. поетому возможно что если нужных топов с обсуждением каких то конкретных скриптов станет много- то стоит создать подраздел и туда их переместить и закрепить.. но приетом нестоит ломать то что уже сделано.. я про топ свой..

VORON
27.02.2008, 06:04
я ворону давно говорил что темку надо разнести на несколько а лучше даже подраздел сделать с готовыми скриптами чтоб первый пост в каждой теме был скриптом и описанием а дальше шло его обсуждение, но ворон яросно защищает текущий вид...
КОР, неправда. я тока за модернизацию и улучшение поиска и простоты нахождения нужного раздела и топа.. но при етом то что уже сделано- не должно потеряться.. при переходе на новый движок: топ "ДА БУДЕТ БОТ" похудел на 12 листов сообщений.. в которых подробнейшим образом описывалось процесс создания всех скриптов которые сейчас там представлены.. разбив етот топ щас на кучу разных топов- снова потеряем кучу инфы.. если создать подраздел с топами-скриптами- узково профиля и вкаждом топе обсуждать конкретный скрипт.. но от обилия топов- глаза разбегутся у людей.. основные вопросы возникают не узково профиля а вопросы касающиеся всех скриптов разом.. типа: как коректней захватить ИД чаров.. считать ХП и МП.. в каждом топе (10-20 топов) объяснять людям одно и тожэ- трудоёмко.. оптимально пока оставить топ как есть "ДА БУДЕТ БОТ" не делить его.. но в тожэ время в полне возможна наша поддержка таких топов как "СДАЧА МАНОРА" и еще типа етого.. топ "ДА БУДЕТ БОТ" дает почти любые решения для новичка- показывает как ваще скрипты пишутся и что они могут а чего нет.. специфичные вопросы вполне можно решать и в его приделах.. но часто бывает так что человек написал скрипт свой, хочет им поделиться, и чтоб его заметили создает новый топ.. мне кажется ето можно исправить (хотя стоит ли?) можно просто более активне топ "ДА БУТ БОТ" модерить и переносить скрипты в начало с коментами.. но пока я там ниче не вижу нового что можно было бы переместить в первый пост (готовое решение).. поетому возможно что если нужных топов с обсуждением каких то конкретных скриптов станет много- то стоит создать подраздел и туда их переместить и закрепить.. но приетом нестоит ломать то что уже сделано.. я про топ свой..

Grinch
27.02.2008, 21:37
Вообщем выкладываю свой первый скрипт. Прошу не кидать в меня помидорами. Гуру прошу отписать замечания :)

//Скрипт для манора в Садах Евы турантом 47 лвла. Включаем скрипт и потом социальное YES для начала работы
procedure Target(ObjectID: Integer);
begin
buf:=#$04;
WriteD(ObjectID);
WriteD(0);
WriteD(0);
WriteD(0);
WriteC(1);
SendToServer;
end;

как я понимаю ты делаешь пакет 04 ObjectID Х(00 00 00 00) Y(00 00 00 00)Z(00 00 00 00) хз что(01) типа выделил моба с определёным ID, а не боязно что забанят просто т.к. вроде серваку шлёшь пакет с 0 по координатам а моба реально там нет. самому серверу пофиг н0 если надо определять бота то после конекта пакеты на 2-3 месте, после поведения бота и т.д., если не прав и пакет волшебным образом заполняется правельными координатами? сори если не прав... но ты просил замечания пока это самое существенное, а идея кульая респект

Добавлено спустя 1 минуту 47 секунд:
ЗЫ я не гуру я ток учусь :)

Добавлено спустя 6 минут 36 секунд:
ЗЫ и закоментированые строки бы удалил так проще было бы смотреть реально закоментированы идеи интересные, но хз почему не реализованые, пишу так часто просто не могу в голову забить весь скрипт а проверять влом тем более пакетхак не мониторит пакеты который отправляет сам поэтому проверить трудно чем он от клиента отличается.

Grinch
27.02.2008, 21:37
Вообщем выкладываю свой первый скрипт. Прошу не кидать в меня помидорами. Гуру прошу отписать замечания :)

//Скрипт для манора в Садах Евы турантом 47 лвла. Включаем скрипт и потом социальное YES для начала работы
procedure Target(ObjectID: Integer);
begin
buf:=#$04;
WriteD(ObjectID);
WriteD(0);
WriteD(0);
WriteD(0);
WriteC(1);
SendToServer;
end;

как я понимаю ты делаешь пакет 04 ObjectID Х(00 00 00 00) Y(00 00 00 00)Z(00 00 00 00) хз что(01) типа выделил моба с определёным ID, а не боязно что забанят просто т.к. вроде серваку шлёшь пакет с 0 по координатам а моба реально там нет. самому серверу пофиг н0 если надо определять бота то после конекта пакеты на 2-3 месте, после поведения бота и т.д., если не прав и пакет волшебным образом заполняется правельными координатами? сори если не прав... но ты просил замечания пока это самое существенное, а идея кульая респект

Добавлено спустя 1 минуту 47 секунд:
ЗЫ я не гуру я ток учусь :)

Добавлено спустя 6 минут 36 секунд:
ЗЫ и закоментированые строки бы удалил так проще было бы смотреть реально закоментированы идеи интересные, но хз почему не реализованые, пишу так часто просто не могу в голову забить весь скрипт а проверять влом тем более пакетхак не мониторит пакеты который отправляет сам поэтому проверить трудно чем он от клиента отличается.

NLObP
28.02.2008, 20:17
тем более пакетхак не мониторит пакеты который отправляет сам поэтому проверить трудно чем он от клиента отличается.
Версия 3.20 уже мониторит.

NLObP
28.02.2008, 20:17
тем более пакетхак не мониторит пакеты который отправляет сам поэтому проверить трудно чем он от клиента отличается.
Версия 3.20 уже мониторит.

Grinch
28.02.2008, 21:10
Версия 3.20 уже мониторит.
хм, последний раз когда я ее запустил она вылетела :( 3.18 пользуюсь, но если 3.20 мониторит попробую подружиться с ней :Yahoo!:

Grinch
28.02.2008, 21:10
Версия 3.20 уже мониторит.
хм, последний раз когда я ее запустил она вылетела :( 3.18 пользуюсь, но если 3.20 мониторит попробую подружиться с ней :Yahoo!:

NLObP
29.02.2008, 02:15
Версия 3.20 уже мониторит.
хм, последний раз когда я ее запустил она вылетела :( 3.18 пользуюсь, но если 3.20 мониторит попробую подружиться с ней :Yahoo!:

Вылетает когда? У меня траблы при выборе чара. Приспособился делать, по совету людей, так: запускаю ПКХ, снимаю галочку ПЕРЕХВАТ, запускаю Ла2, ввожу логин/пароль, выбираю сервер, ставлю галочку ПЕРЕХВАТ, выбираю чара, выбираю скрипт и запускаю его. Так у меня практически всегда работает.

NLObP
29.02.2008, 02:15
Версия 3.20 уже мониторит.
хм, последний раз когда я ее запустил она вылетела :( 3.18 пользуюсь, но если 3.20 мониторит попробую подружиться с ней :Yahoo!:

Вылетает когда? У меня траблы при выборе чара. Приспособился делать, по совету людей, так: запускаю ПКХ, снимаю галочку ПЕРЕХВАТ, запускаю Ла2, ввожу логин/пароль, выбираю сервер, ставлю галочку ПЕРЕХВАТ, выбираю чара, выбираю скрипт и запускаю его. Так у меня практически всегда работает.

Grinch
29.02.2008, 18:45
ылетает когда? У меня траблы при выборе чара. Приспособился делать, по совету людей, так: запускаю ПКХ, снимаю галочку ПЕРЕХВАТ, запускаю Ла2, ввожу логин/пароль, выбираю сервер, ставлю галочку ПЕРЕХВАТ, выбираю чара, выбираю скрипт и запускаю его. Так у меня практически всегда работает.
хм ну стакой методикой проще додумывать что там л2пнх шлёт клиенту :)

begon
03.03.2008, 05:45
b]Lafine[/b],
Хочется узнать как изменить его под себя....
Тоесть - что заменить чтоб манорить другого моба и другими семенами? (пример - голденсода и еуесерчер под дионом)
И еще если я не туран мне надо бы бафы закоментировать...какую именно часть чтоб ниче лишнего незадеть?

Очень прошу кто знает помогите :)

NLObP
03.03.2008, 12:58
Хочется узнать как изменить его под себя....
Тоесть - что заменить чтоб манорить другого моба и другими семенами? (пример - голденсода и еуесерчер под дионом). И еще если я не туран мне надо бы бафы закоментировать...какую именно часть чтоб ниче лишнего незадеть?

Изменяй константы.
const
MOB=1000794; // имя моба Blade Stakato 41x2 - ID моба+1000000, берем в npcs.ini
Seed=5221; //Chilly Cobol - семечки, берем в itemsid.ini
Harvester=5125; //Harvester
MaxMobCount=2;
SpiritofOgre='2F 6D 00 00 00 00 00 00 00 00'; //баф
HealingPotion=1061; //ID бутылки лечения

Измени значения координаты Z при каче на других мобах (не знаю правда почему Z)
//Если приходит пакет NPCInfo от сервера, то проверяем чтобы это был нужный нам моб и находился в нужной области
//координат, то запоминаем ИД моба в массив.
if FromServer and (pck[1]=#$16) then begin
//Думаю тут надо пояснить что и как. Параметр -7750 и -8184 это координаты по оси Z.
//Сделано это для того чтобы персонаж не отвлекался на других мобов в округи, а занимался только этими двумя :)
if (ReadD(6)=MOB) and (ReadD(22)<-7750) and (ReadD(22)>-8184) then begin
count:=0;
for i:=1 to MaxMobCount do begin
if (MobID[i]=ReadD(2)) then count:=i;
end;
if (count = 0) then begin
for i:=1 to MaxMobCount do begin
if (MobID[i]=0) then begin
MobID[i]:=ReadD(2);
break;
end;
end;
end;


Закоменти этот кусок, чтобы не бафаться
//Тут проверяем закончилось ли действие Баффа и если закончилось то еще раз используем
if FromServer and (pck[1]=#$7F) then begin
buf:=Hstr(SpiritofOgre);
SendToServer;
Attack(MobInWarID,0,0,0);
end;

begon
05.03.2008, 10:21
а банки чтоб непил какой кусок коментить?

Добавлено спустя 39 минут 47 секунд:
Захожу на полянку недалеко от верхнего выхода Диона.
Запускаю скрипт, запускаю в клиенте соц действие YES
Открывается рюкзак, навожу на моба и жму на семечку....
Убивается моб и все ниче непроисходит...
Пробовал заманорить так 2моба и дальше сам он не действовал...

--------

Собственно вот срипт с моими правками...
Банки уменьшил под свое ХП (хоя вообще никчему, мобы почти некоцают меня)
Координаты Z изменил конечно но подозреваю что немного нетак...

//Скрипт для манора в Садах Евы турантом 47 лвла. Включаем скрипт и потом социальное YES для начала работы
// убиваем пару Стакато и дальше он сам сражается.
const
MOB=1000265; // Monster Eye Searcher 265
Seed=5020; //golden coda
Harvester=5125; //Harvester
MaxMobCount=2;
SpiritofOgre='2F 6D 00 00 00 00 00 00 00 00';
HealingPotion=1061;

var
MobID: array [1..MaxMobCount] of integer;
i,count:integer;
CurHP,MaxHP:integer;
MobName, MobX, MobY, MobZ:integer;
MobInWarID, MobInWarName: integer; // ИД моба и Имя моба(номер моба)
SocialID:integer; // ИД соц действия
status : boolean; // Начинать работать или нет
SeedID:Integer;
HarvesterID: integer;
HealingPotionID:integer;


procedure Init; //Вызывается при включении скрипта
begin
MobID[1]:=0;
MobID[2]:=0;
MobInWarID:=0;

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;

procedure SendMsg(Msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(1);
WriteS('ПОМОШНИК ПВП');
WriteS(Msg);
SendToClient;
end;

function ItemSearch(ItemName:integer):Cardinal;
var i,y:integer;
TempName:Cardinal;
begin
result:=0;
i:=1;
while i<Length(pck)-4 do begin
y:=i;
TempName:=ReadD(y);
Inc(i);
if TempName=ItemName then begin
result:=ReadD(y-8);
end;
end;
end;

procedure Target(ObjectID: Integer);
begin
buf:=#$04;
WriteD(ObjectID);
WriteD(0);
WriteD(0);
WriteD(0);
WriteC(1);
SendToServer;
end;

procedure UseItem(ItemID:integer);
begin
buf:=#$14;
WriteD(ItemID);
WriteD(0);
SendToServer;
end;

procedure Attack(TargetID,TargetX,TargetY,TargetZ:integer);
begin
buf:=#$04;
WriteD(TargetID);
WriteD(TargetX);
WriteD(TargetY);
WriteD(TargetZ);
WriteD(0);
SendToServer;
end;


//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromClient and (pck[1]=#$1B) then
begin
SocialID:=ReadD(2);
case SocialID of
//социальное действие Yes для начала манора
6:begin
Status:=true;
buf:=#$0f;
SendToServer;
end;
//социальное действие No для окончания
5:begin
Status:=false;
end;
end;
end;
//пакет просмотра инвентаря. Находим ИД семян, харвестера и бутылок для дальнейшего использования.
if FromServer and (pck[1] = #$1B) then begin
SeedID:=ItemSearch(Seed);
HarvesterID:=ItemSearch(Harvester);
HealingPotionID:=ItemSearch(HealingPotion);
end;

//Пакет InventoryUpdate - не вписывал пока. Как только разберусь с самим пакетом, так сразу и сделаю
if FromServer and (pck[1] = #$27) then begin
// temp:=ItemSearch(GreaterCPP);
// if temp <> 0 then GreaterCPID:=temp;
// temp:= ItemSearch(GreaterHP);
// if temp <> 0 then GreaterHPID:=temp;
// temp:= ItemSearch(QuickHP);
// if temp <> 0 then QuickHPID:= temp;
// ShowHTML(IntToStr(GreaterCPID)+' '+IntToStr(GreaterHPID)+' '
// +IntToStr(QuickHPID))
end;

//Если приходит пакет NPCInfo от сервера, то проверяем чтобы это был нужный нам моб и находился в нужной области
//координат, то запоминаем ИД моба в массив.
if FromServer and (pck[1]=#$16) then begin
//Думаю тут надо пояснить что и как. Параметр -7750 и -8184 это координаты по оси Z.
//Сделано это для того чтобы персонаж не отвлекался на других мобов в округи, а занимался только этими двумя :)
if (ReadD(6)=MOB) and (ReadD(22)<-3300) and (ReadD(22)>-3632) then begin
count:=0;
for i:=1 to MaxMobCount do begin
if (MobID[i]=ReadD(2)) then count:=i;
end;
if (count = 0) then begin
for i:=1 to MaxMobCount do begin
if (MobID[i]=0) then begin
MobID[i]:=ReadD(2);
break;
end;
end;
end;
// MobID:=ReadD(2);
// MobName:=ReadD(6);
// MobX:=ReadD(14);
// MobY:=ReadD(18);
// MobZ:=ReadD(22);
// Sendmsg(IntToStr(MobID[1]));
// Sendmsg(IntToStr(MobID[2]));
// SendMsg(IntToStr(MobInWarID));
// Attack(MobID,MobX,MobY,MobZ);
end;
end;
//Если приходит пакет удаления объекта и ИД объекта равен мобу в массиве, то удаляем ИД с массива
if FromServer and (pck[1]=#$12) then begin
for i:=1 to MaxMobCount do begin
if (MobID[i]=ReadD(2)) then MobID[i]:=0;
end;
end;

//Тут я под пакет MoveToLocation спрятал выборку следующего моба для атаки. Спрятал в этот пакет, потому что
//двигаются часто кто нить рядом, а ставить при обработке при любом пакете - слишком нагружать скрипт
if FromServer and (pck[1]=#$01) then begin
For i:=1 to MaxMobCount do begin
if MobID[i]<>0 then begin
MobInWarID:=MobID[i];
Attack(MobInWarID,0,0,0);
end;
end;
end;
// ПРиходит побтверждение что цель выбрана и атакуем цель

if FromServer and (pck[1]=#$A6) then begin
if (ReadD(2)=MobInWarID) then Attack(MobInWarID,0,0,0);
end;
//Пока у моба не 0 ХП забрасываем семечку. Если данные о своих ХП то смотрим и выпиваем бутылку
if FromServer and (pck[1]=#$0E) then begin
if (ReadD(2)=MobInWarID) then begin
if (ReadD(14)<>0) and (SeedID<>0) then UseItem(SeedID);
end;
if (pck[6]=#$04) then begin
CurHP:=ReadD(14);
MaxHP:=ReadD(22);
if (CurHP<500) then UseItem(HealingPotionID);
end;
end;
if FromServer and (pck[1]=#$16) then begin
if (ReadD(2)=MobInWarID) and (HarvesterID<>0) then UseItem(HarvesterID);
end;

// Тут проверяем закончилось ли действие Баффа и если закончилось то еще раз используем
// if FromServer and (pck[1]=#$7F) then begin
// buf:=Hstr(SpiritofOgre);
// SendToServer;
// Attack(MobInWarID,0,0,0);
// end;




// SendMsg(IntToStr(MobID));
// SendMsg(IntToStr(MobName));

end.

Настройте плиз скрипт на этих мобов что я указал на эти семечки и на это место ПОЖАЛУСТА!!
Я уж сравнивая - погляжу что и как там исправлять если что...

begon
08.03.2008, 16:27
Люди, ну помогите плизз :(

09.03.2008, 03:24
Люди вот у меня вопрос у мня воше l2phx непашыт что делать (у меня виста ппц дибильная ) ета какато можно исправить ??? плиссс

Grinch
10.03.2008, 23:30
нефиг в каждом посте искать вопрос исчи тему или создавай новую, и пости там нефиг захломлять флудо темы месагами не в тему, ппц чё я ща написал модер снеси флуд :) что б неповадно было

begon
11.03.2008, 19:34
Люди, неужели я так многого прошу... Вы же скриптеры вам что так помочь трудно?

NLObP
11.03.2008, 22:22
Люди, неужели я так многого прошу... Вы же скриптеры вам что так помочь трудно?
Вечерком гляну, потерпи.
//Скрипт для манора by Lafine
//modified by NLObP

//Включаем скрипт и потом социальное YES для начала работы

{

Скрипт распространяется как есть, и я не несу ответственности
за то, что ВЫ натворили у себя, его используя.

}

//************************************************** *************
const
Name='Mathilda'; //имя чара для которого включаем скрипт
MobID=1000265; //ID моба Monster Eye Searcher 265 + 1000000
SeedID=5025; //Golden Coda
HarvesterID=5125;
HPotionID=1060;
MaxMobCount=20;
PercentHP=70; //% HP при котором начинать пить бутылки
MEsit=55; //при каком количестве хп в % надо сесть и подкопить хп
MEup=90; //при каком количестве хп в % надо встать после отдыха

//установить константу в зависимости от типа игры (С4 или Интерлюд)
IL=true; //true - IL, false - C4

//************************************************** *************
var
MobsObjectID: array [1..MaxMobCount] of integer;
offs1, i, count:integer;
//мои
CurHP, MaxHP, MyID, x, y, z, but, sidim, vstaem : integer;
//МОбов
MobX, MobY, MobZ : integer;
status, sit : boolean; //Начинать работать или нет
SeedObjectID, HarvesterObjectID, HPotionObjectID : integer;
timer1: TTimer;


//************************************************** *************
procedure Init; //Вызывается при включении скрипта
begin
if il then begin
//CharInfo
offs1:=48; //44 для С4, 48 для IL
end else begin
offs1:=44;
end;
count:=1;
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer1;
timer1.enabled:=true; //таймер по умолчанию включен
timer1.interval:=5000; //через каждые 5сек будем обновлять
sit:=false;
status:=false;
end;

//************************************************** *************
procedure Free; //Вызывается при выключении скрипта
begin
for i:=1 to MaxMobCount do begin
MobsObjectID[i]:=0;
end;
timer1.free;
end;

//************************************************** *************
procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin

end;

//************************************************** *************
procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin

end;

//************************************************** ****************************
//сообщения в приват, на сервер не отправляются
procedure Say(msg:string);
begin
buf:=hstr('4A 00 00 00 00');
WriteD(2);
WriteS(Name);
WriteS(msg);
SendToClientEx(Name);
end;


//************************************************** *************
procedure OnTimer1(Sender: TObject);
begin
if (CurHP<but) and (HPotionObjectID<>0) then begin
UseItem(HPotionObjectID);
end;
if (CurHP<sidim) and (sit=false) then begin
buf:=HStr('45 00 00 00 00 00 00 00 00 00 '); //сесть
SendToServerEx(Name);
sit:=true;
end;
if (CurHP>vstaem) and (sit=true) then begin
buf:=HStr('45 00 00 00 00 00 00 00 00 00 '); //встать
SendToServerEx(Name);
sit:=false;
end;
end;

//************************************************** *************
function ItemSearch(ItemName:integer):Cardinal;
var i,y:integer;
TempName:Cardinal;
begin
result:=0;
i:=1;
while i<Length(pck)-4 do begin
y:=i;
TempName:=ReadD(y);
Inc(i);
if TempName=ItemName then begin
result:=ReadD(y-8);
end;
end;
end;

//************************************************** *************
procedure Target(ObjectID : Integer);
begin
buf:=#$04;
WriteD(ObjectID);
WriteD(x);
WriteD(y);
WriteD(z);
WriteC(0);
SendToServerEx(Name);
end;

//************************************************** *************
procedure UseItem(ObjectID : integer);
begin
buf:=#$14;
WriteD(ObjectID);
WriteD(0);
SendToServerEx(Name);
end;

//************************************************** *************
//2F=RequestMagicSkillUse:dMagicID)d(CtrlPressed)b(S hiftPressed)
procedure MagicSkillUse(MagicID:integer);
begin
buf:=#$2F;
WriteD(MagicID);
WriteD(0);
WriteC(0);
SendToServerEx(Name);
end;

//************************************************** *************
procedure StatsUpdate;
var
i: integer;
begin
for i:=0 to ReadD(6)-1 do begin
case pck[i*8+10] of
#$09: CurHP:=ReadD(i*8+14);
#$0A: MaxHP:=ReadD(i*8+14);
end;
end;
if (MaxHP<>0) then begin // вычисляем процентное соотношение хп
but:=Round((MaxHP/100)*PercentHP); // при каком количестве хп юзать бутылку лечения
sidim:=Round((MaxHP/100)*MEsit); // при каком количестве хп надо сесть и подкопить хп
vstaem:=Round((MaxHP/100)*MEup); // при каком количестве хп надо встать после отдыха
end;
end;

//************************************************** ****************************
// вызывается при приходе каждого пакета, если скрипт включен
//************************************************** ****************************
begin
//************************************************** **************************
//не обрабатываем пустые пакеты
if pck='' then exit;

//************************************************** **************************
if (ConnectName=Name) and FromServer then begin
case pck[1] of
//Тут я под пакет MoveToLocation спрятал выборку следующего моба для атаки. Спрятал в этот пакет, потому что
//двигаются часто кто нить рядом, а ставить при обработке при любом пакете - слишком нагружать скрипт
#$01: begin
For i:=1 to MaxMobCount do begin
if MobsObjectID[i]<>0 then begin
Say('Target...');
Target(MobsObjectID[i]);
// if (SeedObjectID<>0) then UseItem(SeedObjectID);
// say('Use Seed');
// count:=i;
end;
end;
end;
#$04: begin
Say('Запомнил координаты и ID');
//пакет с инфой о моём чаре
i:=2;
X:=ReadD(i); //получаю координату х моего чара
Y:=ReadD(i); //получаю координату у моего чара
Z:=ReadD(i); //получаю координату z моего чара
//Запоминаем ИД
i:=18;
MyID:=ReadD(i); //получаю ид моего чара
//смещение переменное, зависит от имени (LenName*2+2)
i:=i+(Length(Name)*2+2)+offs1; //44 для С4, 48 для IL
MaxHP:=ReadD(i);
CurHP:=ReadD(i);
end;
//принят пакет Die
#$06: begin
if (MobsObjectID[count]=ReadD(2)) and (HarvesterObjectID<>0) then begin
UseItem(HarvesterObjectID);
say('Use Harvester');
end;
end;
//StatsUpdate
#$0E: begin
//Пока у моба не 0 ХП забрасываем семечку. Если данные о своих ХП то смотрим и выпиваем бутылку
if (MyID=ReadD(2)) then StatsUpdate; //обновление информации о хп
if (MobsObjectID[count]=ReadD(2)) then
if (ReadD(14)<>0) and (SeedObjectID<>0) then begin
UseItem(SeedObjectID);
say('Use Seed');
end;
end;
//принят пакет DeleteObject
#$12: begin
for i:=1 to MaxMobCount do begin
if (MobsObjectID[i]=ReadD(2)) then MobsObjectID[i]:=0;
end;
end;
//Если приходит пакет NPCInfo от сервера, то проверяем чтобы это был нужный нам моб
//и находился в нужной области координат, то запоминаем ИД моба в массив.
//16=NpcInfo:h(ObjectID)d(NpcTypeID)d(IsAttackable)d (X)d(Y)d(Z)d(Heading)d(d)
//d(Maspd)d(Paspd)d(runSpd)d(walkSpd)d(swimRSpd)d(sw imWSpd)d(flRSpd)d(flWSpd)
//d(FlyRSpd)d(FlyWSpd)f(ProperMul)f(Paspd)f(CollisRa dius)f(CollisHeight)d(RHand)
//d(d)d(LHand)b(nameabove)b(isRun)b(isInFight)b(isAl ikeDead)b(isSummoned)s(Name)
//s(Title)d(d)d(d)d(karma?)d(abnEffect)d(d)d(d)d(d)d (d)b(c)b(Team)f(collisRadius)
//f(collisHeight)d(d)
#$16: begin
say('NPCInfo...');
//если можно атаковать
if (MobID=ReadD(6)) and (ReadD(10)=1) and (pck[120]=#$00) then begin
//перебираем базу и ищем свободную ячейку в ней
for i:=1 to MaxMobCount do begin
//запоминаем моба в свободную ячейку
if (MobsObjectID[i]=0) or (MobsObjectID[i]<>ReadD(2)) then begin
MobsObjectID[i]:=ReadD(2);
count:=i;
Say('count='+inttostr(count)+' i='+inttostr(i));
break;
end;
end;
end;
end;
//Если приходит пакет удаления объекта и ИД объекта равен мобу в массиве, то удаляем ИД с массива
//пакет просмотра инвентаря. Находим ИД семян, харвестера и бутылок для дальнейшего использования
#$1B: begin
SeedObjectID:=ItemSearch(SeedID);
HarvesterObjectID:=ItemSearch(HarvesterID);
HPotionObjectID:=ItemSearch(HPotionID);
end;
//InventoryUpdate
#$27: begin
case ReadD(12) of
1060,1061: begin //Healing Potion, Lesser Healing Potion
if HPotionObjectID=0 then begin
HPotionObjectID:=ReadD(8);
Say('Запомнили ID HPotion...');
end;
end;
5125: begin //Harvester
if HarvesterObjectID=0 then begin
HarvesterObjectID:=ReadD(8);
Say('Запомнили ID Harvester...');
end;
end;
5025: begin //Golden Coda
if SeedObjectID=0 then begin
SeedObjectID:=ReadD(8);
Say('Запомнили ID Seed...');
end;
end;
end;
end;
{ //Тут проверяем закончилось ли действие Баффа и если закончилось то еще раз используем
#$7F: begin

end;
} //приходит побтверждение что цель выбрана и атакуем цель
{ #$A6: begin
if (MobsObjectID[count]=ReadD(2)) then begin
Target(MobsObjectID[count]);
say('Attack...');
end;
end;
} end;
end;

//************************************************** **************************
if (ConnectName=Name) and FromClient then begin
case pck[1] of
#$1B: begin
case ReadD(2) of
//социальное действие Yes для начала манора
$06: begin
//не передаем серверу
pck:='';
Status:=true;
//RequestItemList
buf:=#$0F;
SendToServerEx(Name);
end;
//социальное действие No для окончания
$05: begin
//не передаем серверу
pck:='';
Status:=false;
end;
end;
end;
//ValidatePosition пакет от клиента с моими кординатами
#$48: begin
X:=ReadD(2); //получаю координату х
Y:=ReadD(6); //получаю координату у
Z:=ReadD(10); //получаю координату z
end;
end;
end;
end.

begon
12.03.2008, 18:50
Спасибо нубл, очень буду признателен :)

NLObP
13.03.2008, 03:13
Спасибо нубл, очень буду признателен :)
Меня звать NLObP, а не нубл. :evil:

begon
13.03.2008, 16:03
Вечерком гляну, потерпи.
//Скрипт для манора by Lafine
//Включаем скрипт и потом социальное YES для начала работы

Итак, что делается у меня...

Прихожу возле диона на поляну с этими мобами (в сумке харвестер и 1000семян)
Врубаю скрипт - он начинает писать в приват "NPCInfo..." (пологаю что при респе мобов)
Жму YES - открывает инвентарь и пишет в приват "запомнил координаты и ID"
(при этом продолжает писать "NPCInfo...") и все - ничего не происходит больше...

пробовал вручную засеять и убить и снять урожай с 3-4 мобов...
при ручной атаке - он убивает моба и стоит (тоесть не сеет)
при ручном засеве - он сеет,убивает и тоже стоит (тоесть не снимает урожай)
Как сделать чтоб он сам их начинал бить-сеять-собирать урожай- переходить к следующему?

Может ты стукнеш в асю - 6337373 ?
я те просто ак свой дам на абисе х3 - провериш может чето нето делаю..

NLObP
13.03.2008, 18:43
Вечерком гляну, потерпи.
//Скрипт для манора by Lafine
//Включаем скрипт и потом социальное YES для начала работы

Итак, что делается у меня...

Прихожу возле диона на поляну с этими мобами (в сумке харвестер и 1000семян)
Врубаю скрипт - он начинает писать в приват "NPCInfo..." (пологаю что при респе мобов)
Жму YES - открывает инвентарь и пишет в приват "запомнил координаты и ID"
(при этом продолжает писать "NPCInfo...") и все - ничего не происходит больше...

пробовал вручную засеять и убить и снять урожай с 3-4 мобов...
при ручной атаке - он убивает моба и стоит (тоесть не сеет)
при ручном засеве - он сеет,убивает и тоже стоит (тоесть не снимает урожай)
Как сделать чтоб он сам их начинал бить-сеять-собирать урожай- переходить к следующему?

Может ты стукнеш в асю - 6337373 ?
я те просто ак свой дам на абисе х3 - провериш может чето нето делаю..

Сообщение "NPCInfo..." показывает что пришел этот пакет. Под нужным нам пакетом пишется count=X i=X. После этого он пытается атаковать этого моба. Скрипт нужно инициализировать. Жмем Yes, выпиваем бутылку HP, бросаем и поднимаем Харвестер и используем один раз семечко на мобе. Это нужно, чтобы узнать ObjID предметов. Функцию самостоятельно это делающую еще не поправил (и не знаю буду ли править).
Плохо в этом скрипте то, что чар ломится за первым подходящим мобом, даже если рядом стоит такой же.
Все команды Say(''); можно закомментировать, чтобы не мешали. Можно добавить по вкусу.
Скрипт надо много доделывать. Проще добавить, необходимое в скрипт бота в другой теме (очень может быть что добавлю).
Ок. поищу свой номерок аськи.

begon
14.03.2008, 18:33
Ок. поищу свой номерок аськи.

Ничего невыходит, плиз - сделай доброе дело, загляни всетаки в аську ко мне 6337373 ник там такойже Begon

begon
16.03.2008, 20:11
я все жду :(

PunkRediska
17.03.2008, 00:50
я ворону давно говорил что темку надо разнести на несколько а лучше даже подраздел сделать с готовыми скриптами чтоб первый пост в каждой теме был скриптом и описанием а дальше шло его обсуждение, но ворон яросно защищает текущий вид...
КОР, неправда. я тока за модернизацию и улучшение поиска и простоты нахождения нужного раздела и топа.. но при етом то что уже сделано- не должно потеряться.. при переходе на новый движок: топ "ДА БУДЕТ БОТ" похудел на 12 листов сообщений.. в которых подробнейшим образом описывалось процесс создания всех скриптов которые сейчас там представлены.. разбив етот топ щас на кучу разных топов- снова потеряем кучу инфы.. если создать подраздел с топами-скриптами- узково профиля и вкаждом топе обсуждать конкретный скрипт.. но от обилия топов- глаза разбегутся у людей.. основные вопросы возникают не узково профиля а вопросы касающиеся всех скриптов разом.. типа: как коректней захватить ИД чаров.. считать ХП и МП.. в каждом топе (10-20 топов) объяснять людям одно и тожэ- трудоёмко.. оптимально пока оставить топ как есть "ДА БУДЕТ БОТ" не делить его.. но в тожэ время в полне возможна наша поддержка таких топов как "СДАЧА МАНОРА" и еще типа етого.. топ "ДА БУДЕТ БОТ" дает почти любые решения для новичка- показывает как ваще скрипты пишутся и что они могут а чего нет.. специфичные вопросы вполне можно решать и в его приделах.. но часто бывает так что человек написал скрипт свой, хочет им поделиться, и чтоб его заметили создает новый топ.. мне кажется ето можно исправить (хотя стоит ли?) можно просто более активне топ "ДА БУТ БОТ" модерить и переносить скрипты в начало с коментами.. но пока я там ниче не вижу нового что можно было бы переместить в первый пост (готовое решение).. поетому возможно что если нужных топов с обсуждением каких то конкретных скриптов станет много- то стоит создать подраздел и туда их переместить и закрепить.. но приетом нестоит ломать то что уже сделано.. я про топ свой..

А можно зделать с лева калонку где будут ссылки на "ТоПоВыЕ" темы и вапросы,ну шото был столбик с ссылками типо таких:"сдать манор","бутылки","полноценные боты","гатовые процедуры","приятные мелочи(ну типа радарав,анекдотерав..)" и др. [?]