Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Результаты опроса: Нужна ли такая тема форуму?
Да, мне бы была полезна. 34 66.67%
Пускай будет, но мне и так норм. 10 19.61%
Нет, не нужна. 7 13.73%
Голосовавшие: 51. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Опции просмотра
Старый 05.03.2011, 11:41   #11
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

да какие тут могут быть примеры) вообще, по-хорошему, надо делать так:
1. Создание картины мира (совсем по-хорошему абсолютно полную)
2. И потом по этим данным уже делать действия которые тебе нужны.

через массивы то конечно можно все что угодно сделать)
но TList и класс скажем
TL2Item=class
public
OID,ID:integer;
Count:int64;
Enachant:smallint;
isEquipped:boolean; //и тд
end;

так удобнее, согласись

ну а тут судя по всему придется делать массивы, потом опять же массив нпсов, массив текущего мультиселла, расшифровщик хтмла(наверное) и думаю этого хватит.
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 05.03.2011, 14:36   #12
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

Все гораздо проще на мой взгляд...
Я не лазил у NLObP, но в скрипте TAMBIK'a лазил...
Скрипт простой (Тут я имею виду сам алгоритм скрипта на Энчант, а не конкретного автора), до ужаса...
Если Пакет Юз итем=> Записываем ИД скролла (ИЗ пакета берет ОИД, через ГетИтем получаем ИД)
Если пакет Актион (04 вродя), то записываются все нужные даные
Пакет Мультиселла-> Записываем

Потом в циклах: Поиск через ГетИтем Скролла(Записан ИД), Проверка че из этого получилось(Энчант-лвл), Проверка скок там еще свитков (Если мало то: Актион->Мультиселл) если норм, то по новой...

Ну и там всякие навороты типо сист сообщений, Энчант-лвл-макс в чат...
(Я считаю определение ИД скролла по Юзитем пакету тож наворотом, но эт удобна =))

Добавлено через 3 минуты
dyh9l, Мы на какие хроники то делаем?

Добавлено через 11 минут
Подсчет свитков тамбик устроил вот так:
delphi Код:
sumskrol:=Getsumitem(skrolID,3,4); //где 3-Ид скролла, 4-кол-во, а GetsumItem: function Getsumitem(Obj,up,down:integer): integer; var   i: integer; begin  Result:= 0; //В начале у нас 0   for i:=1 to max do     if (BaseItems[i,up]=Obj) then begin       Result:=Result+BaseItems[i,down];    end; end; //TAMBIK(c)  
Как видно обходится без массива со всеми скроллами...
А функция лишь для подсчета... (Оч удобно)
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]

Последний раз редактировалось Nickers, 05.03.2011 в 14:40. Причина: Добавлено сообщение
Nickers вне форума   Ответить с цитированием
Старый 05.03.2011, 15:03   #13
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

Nickers, c4

Добавлено через 9 минут
пойду тоже тамбика покурю)
__________________

Последний раз редактировалось dyh9l, 05.03.2011 в 15:03. Причина: Добавлено сообщение
dyh9l вне форума   Ответить с цитированием
Старый 05.03.2011, 16:52   #14
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

В принципе можно скрипт тамбика переделать, а потом на с4 перегнать...
Добавить в Конст Сейф-Энчант-лвл, ИД Обычного скролла и в механизме энчанта вставить Case До сейва и после сев-энч-лвл (2 разных пути, 2 разных ИД)
delphi Код:
Беагин   Если лвл     <3 : хуня:=скролл;     >3 : хуня:=блессскролл;   Эндь;   Точить(хуню); Эндь;
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]

Последний раз редактировалось Nickers, 05.03.2011 в 17:07.
Nickers вне форума   Ответить с цитированием
Старый 05.03.2011, 17:11   #15
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

нехочу редактировать чужие скрипты) давай новый сделаем)
__________________
dyh9l вне форума   Ответить с цитированием
Старый 05.03.2011, 17:54   #16
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Nickers, советую начинать качать клиент с4)
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 05.03.2011, 18:11   #17
Местный
 
Аватар для Nickers
 
Регистрация: 23.11.2009
Сообщений: 574
Сказал Спасибо: 134
Имеет 117 спасибок в 82 сообщенях
Nickers пока неопределено
По умолчанию

supernewbie, Ога ппц влом))
__________________
Пишу что думаю, но ничего не знаю...
[LameGuard|Скрипты l2phx]
Nickers вне форума   Ответить с цитированием
Старый 05.03.2011, 18:28   #18
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

supernewbie, злой ты человек..
__________________
dyh9l вне форума   Ответить с цитированием
Старый 05.03.2011, 19:32   #19
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 05.03.2011, 23:11   #20
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Так более универсально - для C4
delphi Код:
var   ItemID, ItemOID, ItemEnch: integer;      //ItemID затачиваемого предмета   //ITEMs   BaseItems:  array[1..maxitems, 1..12] of integer//все предметы в инвентаре //...................................... Procedure ItemList; //создание базы предметов var     i, j, count : integer;     values : array[0..8] of variant; begin     count:=round((length(pck)-5)/ReadH(4));     for j:=1 to 12 do for i:=1 to maxitems do BaseItems[i,j]:=0;     for i:=0 to ReadH(4)-1 do         begin             readmask('hdddhhhdh', 6+i*count, values);             BaseItems[i+1,2]:=values[1];  //OID             BaseItems[i+1,3]:=values[2];  //ItemID             BaseItems[i+1,5]:=values[3];  //Amount (кол-во предметов)             BaseItems[i+1,10]:=values[8]; //EnchLvl         end;  end; //...................................... Procedure InventoryUpdate; var     i, j, obj, count : integer;     values : array[0..9] of variant; begin     count:=round((length(pck)-3)/ReadH(2));     for i:=0 to ReadH(2)-1 do         begin             readmask('hhdddhhhdh', 4+i*count, values);             case values[0] of                 1: obj:=0;                 2: obj:=values[2];                 3: begin                     for i:=1 to maxitems do                         if BaseItems[i,2]=values[2] then                             begin                                 for j:=1 to 12 do BaseItems[i,j]:=0;                                 break;                             end;                     continue;                    end;             end;             for i:=1 to maxitems do                 if BaseItems[i,2]=obj then                     begin                         BaseItems[i,2]:=values[2];  //OID                         BaseItems[i,3]:=values[3];  //ItemID                         BaseItems[i,5]:=values[4];  //Amount                         BaseItems[i,10]:=values[9]; //EnchLvl                         break;                     end;         end; end;

Тоже самое для Freya
delphi Код:
//...................................... Procedure ItemList; //создание базы предметов var     i, j, count : integer;     values : array[0..8] of variant; begin     count:=round((length(pck)-5)/ReadH(4));     for j:=1 to 12 do for i:=1 to maxitems do BaseItems[i,j]:=0;     for i:=0 to ReadH(4)-1 do         begin             readmask('dddqhhhdh', 6+i*count, values);             BaseItems[i+1,2]:=values[0];             BaseItems[i+1,3]:=values[1];             BaseItems[i+1,5]:=values[3];             BaseItems[i+1,10]:=values[8];         end; end; //...................................... Procedure InventoryUpdate; var     i, j, obj, count : integer;     values : array[0..9] of variant; begin     count:=round((length(pck)-3)/ReadH(2));     for i:=0 to ReadH(2)-1 do         begin             readmask('hdddqhhhdh', 4+i*count, values);             case values[0] of                 1: obj:=0;                 2: obj:=values[1];                 3: begin                     for i:=1 to maxitems do                         if BaseItems[i,2]=values[1] then                             begin                                 for j:=1 to 12 do BaseItems[i,j]:=0;                                 break;                             end;                     continue;                    end;             end;             for i:=1 to maxitems do                 if BaseItems[i,2]=obj then                     begin                         BaseItems[i,2]:=values[1];                         BaseItems[i,3]:=values[2];                         BaseItems[i,5]:=values[4];                         BaseItems[i,10]:=values[9];                         break;                     end;         end; end;
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился 3 спасибками от:
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!