Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

скрипт для L2Tower

-

Общение и обсуждение, архив Lineage 2

- Cобытия, информация, вопросы и ответы по Lineage 2

Ответ
 
Опции темы
Старый 28.08.2012, 23:45   #1
 Разведчик
Аватар для pitcher
 
pitcher никому не известный тип
Регистрация: 02.08.2009
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию скрипт для L2Tower

Ребят, помогите, кто разбирается, с написанием скритпа для L2tower. Необходимо, что бы на Ферме диких зверей, бот кормил мобов до 2 этапа.
Пробовал скрипт , который на офф сайте, но он не работает.
Появляется вот такое сообщение:
Цитата:
>>>Info: Food is over
Alimento.lua: No matching overload found, candidates:
bool UseItem(int)
bool UseItem(int,int)

Скрипт который использовал:
Цитата:
babylist = {18873,18880,18887,18894};
younglist = {18874,18875,18881,18882,18888,18889,18895,18896};
adultlist = {18876,18877,18883,18884,18890,18891,18897,18898};
bl = true;

stage = 2; -- 0: not feed, 1: feed til young, 2:feed til adult, 3: feed til full grown

displayinfo = false; -- false: dont show info to client, true: show info to client

function getItemByName(name)
invList = GetInventory();
for item in invList.list do
if item.Name == name then
return item.displayId;
end;
end;
end;

function useAvailableFood()
cs = getItemByName("Crystal Spice");
gs = getItemByName("Golden Spice");

if(cs ~= nil) then
UseItem(cs);

else UseItem(gs);
end;
end;

function isFoodAvailable()
cs = getItemByName("Crystal Spice");
gs = getItemByName("Golden Spice");

if ( cs == nil and gs == nil) then
return false;
end;

return true;
end;

function feed(stage)

if(stage >= 1) then
for k,w in pairs(babylist) do
if GetTarget():GetNpcId() == w then
if(displayinfo) then ShowToClient(">>>Info", "Feeding " .. GetTarget():GetName()); end;
useAvailableFood();
return;
end;
end;
end;

if(stage >= 2) then
for k,w in pairs(younglist) do
if GetTarget():GetNpcId() == w then
if(displayinfo) then ShowToClient(">>>Info", "Feeding " .. GetTarget():GetName()); end;
useAvailableFood();
return;
end;
end;
end;

if(stage == 3) then
for k,w in pairs(adultlist) do
if GetTarget():GetNpcId() == w then
if(displayinfo) then ShowToClient(">>>Info", "Feeding " .. GetTarget():GetName()); end;
useAvailableFood();
return;
end;
end;
end;
end;


while bl do
Sleep(2000);

if ( not isFoodAvailable()) then
ShowToClient(">>>Info", "Food is over");
bl = false;
end

if(GetTarget() ~= nil) then
feed(stage);
end;
end;

  Ответить с цитированием
Старый 29.08.2012, 04:44   #2
 Разведчик
Аватар для Daniza
 
Daniza никому не известный тип
Регистрация: 27.07.2011
Сообщений: 0
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: скрипт для L2Tower

У тебя клиент русскоязычный?

Просто если клиент русскоязычный, он не понимает любых "взятий по имени", т.е. у тебя есть, к примеру

Цитата:
cs = getItemByName("Crystal Spice");
gs = getItemByName("Golden Spice");

т.е. это функция "взять предмет по имени", а оно не поймет, надо брать "взять предмет по ID", а это не всегда бывает удобно и возможно, иногда приходится писать дополнительные функции.

Последний раз редактировалось Daniza; 29.08.2012 в 12:59.
  Ответить с цитированием
Старый 29.08.2012, 11:27   #3
 Разведчик
Аватар для pitcher
 
pitcher никому не известный тип
Регистрация: 02.08.2009
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: скрипт для L2Tower

Да, русскоязычный. =(
  Ответить с цитированием
Старый 29.08.2012, 12:53   #4
 Разведчик
Аватар для Daniza
 
Daniza никому не известный тип
Регистрация: 27.07.2011
Сообщений: 0
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: скрипт для L2Tower

В папке config твоего Товера будет находиться папка с названием сервера, на котором ты играешь. В ней будет файл items.txt. В этом файле найди номер специй, которыми ты собрался кормить своих животных. Я просто хз как они называются по-русски, но ты должен знать, они у тебя в клиенте пишутся. Возможно это "Кристальный корм" и "Золотой корм" или "Кристальные специи" и "золотые специи" или что-то в этом роде.

Рядом с этими "специями" в том файле будут стоять номера. Вот эти номера и замени везде по всему скрипту:

getItemByName("Crystal Spice") замени на номер Кристальной специи

getItemByName("Golden Spice") замени на номер золотой специи


Получится вместо

Код:
cs = getItemByName("Crystal Spice");
gs = getItemByName("Golden Spice");
нечто вроде

Код:
cs = 15474;
gs = 15475;
  Ответить с цитированием
Старый 29.08.2012, 13:00   #5
 Разведчик
Аватар для pitcher
 
pitcher никому не известный тип
Регистрация: 02.08.2009
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: скрипт для L2Tower

Спасибо, с работы приду, обязательно попробую.

Добавлено через 10 часов 15 минут
Все заработало, но есть 1 но. Он кормит только один раз, а потом начинает атокавать и кормление не продолжается. сможешь что нибудь посоветать?

Последний раз редактировалось pitcher; 29.08.2012 в 23:15. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 30.08.2012, 05:31   #6
 Разведчик
Аватар для Daniza
 
Daniza никому не известный тип
Регистрация: 27.07.2011
Сообщений: 0
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: скрипт для L2Tower

Вообще этот скрипт действует так:

В скрипте задается стадия, до которой кормить животное.

1. ТЫ выделяешь моба мышкой.
2. СКРИПТ смотрит, является ли моб одним из тех, кого можно накормить.
3. СКРИПТ смотрит, какой стадии этот моб - т.е. нужно ли его кормить дальше, или так убивать.
4. СКРИПТ кормит моба 1 раз.
5. СКРИПТ завершает работу до следующего выделения мышкой моба.


Как я поняла, ты хочешь, чтобы скрипт на ферме кормил зверей, пока они не вырастут, а потом убивал? А если они еще не выросли, то не бил, а кормил дальше? Моба мышкой ты будешь сам таргетить или скрипт должен делать это самостоятельно?

Последний раз редактировалось Daniza; 30.08.2012 в 05:42.
  Ответить с цитированием
Старый 30.08.2012, 08:30   #7
 Разведчик
Аватар для pitcher
 
pitcher никому не известный тип
Регистрация: 02.08.2009
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: скрипт для L2Tower

Цитата:
Как я поняла, ты хочешь, чтобы скрипт на ферме кормил зверей, пока они не вырастут, а потом убивал?

Да именно так.=)
Цитата:
А если они еще не выросли, то не бил, а кормил дальше?

Нет, не обязательно. Т.к. корм кидается примерно с интервалом 2-3 сек, я не успею убить моба.
Цитата:
Моба мышкой ты будешь сам таргетить или скрипт должен делать это самостоятельно?

Насколько я понимаю, это скрипт не обязательно должен делать, так как это делает сам l2Tower. ( если я правильно думаю)
Примерно у меня происходит следующее: Включаю l2tower, чар начинает просто бегать и убивать мобов и бафаться, далее включаю скрипт - и он уже делает все тоже самое, но плюс происходит одно кормление.
  Ответить с цитированием
Старый 30.08.2012, 10:18   #8
 Разведчик
Аватар для Daniza
 
Daniza никому не известный тип
Регистрация: 27.07.2011
Сообщений: 0
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: скрипт для L2Tower

Попробуй так:

Найди строку

Код:
function feed(stage)
Ниже этой строки все, что есть, замени на

Код:
local bb = GetTarget():GetNpcId();
local wb = 2000; -- тут пауза между кормлениями одного пета, я просто хз сколько нужно ждать до того, как корм можно использовать еще раз

if(stage >= 1) then
for k,w in pairs(babylist) do
if GetTarget():GetNpcId() == w then
if(displayinfo) then ShowToClient(">>>Info", "Feeding " .. GetTarget():GetName()); end;

repeat 
 useAvailableFood(); 
 Sleep(wb);
until bb ~= GetTarget():GetNpcId();

return;
end;
end;
end;

if(stage >= 2) then
for k,w in pairs(younglist) do
if GetTarget():GetNpcId() == w then
if(displayinfo) then ShowToClient(">>>Info", "Feeding " .. GetTarget():GetName()); end;
repeat 
 useAvailableFood(); 
 Sleep(wb);
until bb ~= GetTarget():GetNpcId();
return;
end;
end;
end;

if(stage == 3) then
for k,w in pairs(adultlist) do
if GetTarget():GetNpcId() == w then
if(displayinfo) then ShowToClient(">>>Info", "Feeding " .. GetTarget():GetName()); end;
repeat 
 useAvailableFood(); 
 Sleep(wb);
until bb ~= GetTarget():GetNpcId();
return;
end;
end;
end;
end;


while bl do
Sleep(2000);

if ( not isFoodAvailable()) then
ShowToClient(">>>Info", "Food is over");
bl = false;
end

if(GetTarget() ~= nil) then
feed(stage);
end;
end;
  Ответить с цитированием
Старый 30.08.2012, 20:27   #9
 Разведчик
Аватар для pitcher
 
pitcher никому не известный тип
Регистрация: 02.08.2009
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: скрипт для L2Tower

Странно, он как то 1 из 10 кормит до 2 этапа. Даже не то что кормит, а кидает еду. Пробовал уменьшать время между кормлениями, но не помогло.

Последний раз редактировалось pitcher; 30.08.2012 в 20:42.
  Ответить с цитированием
Старый 31.08.2012, 03:48   #10
 Разведчик
Аватар для Daniza
 
Daniza никому не известный тип
Регистрация: 27.07.2011
Сообщений: 0
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: скрипт для L2Tower

В смысле - кидает еду?
  Ответить с цитированием
Старый 31.08.2012, 10:22   #11
 Разведчик
Аватар для pitcher
 
pitcher никому не известный тип
Регистрация: 02.08.2009
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: скрипт для L2Tower

Я имел в виду то, что кормление происходит путем кидания корма в моба.
Заметил такую вещь, что когда окно, на котором запущен скрипт, не активно, то скрипт работает хорошо. Кормление происходит 2 раза, но не всегда до 2 этапа. А когда окно активно, чар кормит моба один раз и сразу же начинает его бить.
P.S. Cпасибо за доработку скрипта. =)
  Ответить с цитированием
Старый 31.08.2012, 11:10   #12
 Разведчик
Аватар для Daniza
 
Daniza никому не известный тип
Регистрация: 27.07.2011
Сообщений: 0
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: скрипт для L2Tower

Не за что

На самом деле Товер достаточно кривоват, он часто тупит. Я недавно безуспешно боролась со скриптом на манор - мой чар делал "сбор урожая" до тех пор, пока труп не исчезал...

Я на самом деле хз отчего твой чар пуляется кормом в мобов)) Я дописала там цикл, что если моб не вырос (не изменился номер), то кормить дальше... а Товер тупит.
  Ответить с цитированием
Старый 31.08.2012, 13:30   #13
 Разведчик
Аватар для pitcher
 
pitcher никому не известный тип
Регистрация: 02.08.2009
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: скрипт для L2Tower

Больше всего удивило, что когда не активное окно , то скрипт работает намного лучше =))

Добавлено через 8 часов 4 минуты
кстати , а можешь поделиться скиптом на манор? =))

Последний раз редактировалось pitcher; 31.08.2012 в 21:34. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 27.06.2013, 22:03   #14
 Разведчик
Аватар для Stilll23
 
Stilll23 никому не известный тип
Регистрация: 27.06.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: скрипт для L2Tower

А у Меня наоборот, нужно, что бы окно было активным. Тогда все будет очень хорошо работать.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
l2tower dismay71 Общение и обсуждение, архив Lineage 2 4 14.10.2012 18:11
[Программа] Бот или ACP L2Tower liomi123 Общение и обсуждение, архив Lineage 2 2 01.07.2012 00:23

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 00:18.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net