![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Гость_Berserker_* |
![]()
Сообщение
#21
|
![]() |
Насчёт переменных не переживайте, Бес. Завтра залью версию 2.6 с хелпом, список переменных там и останется. Потом серьёзно и долго буду занят другими проектами, когда вернусь к моду, то буду писать с нуля и использовать переменные без привязки к индексам.
Насчёт вашей проблемы...Если не трудно, напишите словами всё то, что делает скрипт. Возможно есть более корректное решение (и простое), ведь стабильность тоже важна. И объект кончено надо в игре автоматом регистрировать, а не вручную. |
|
|
![]()
Сообщение
#22
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
>Нет, паковать его нада,
Я здесь описался, конечно же я говорил [не надо] (а то бы я начал так: "Да, паковать надо") ![]() Цитата(Berserker) Если не трудно, напишите словами всё то, что делает скрипт. А какой конкретно момент описать? ![]() Или полностью от корки до корки? ![]() Цитата объект кончено надо в игре автоматом регистрировать, а не вручную Если б я знал как... Может вы знаете способ.Не буду же ли я подсовывать свой изменённый ZEOBJTS.txt... вдруг у людей были свои сторонние объекты прописаны -------------------- |
|
|
![]()
Сообщение
#23
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз ![]() |
используй obj
|
|
|
![]()
Сообщение
#24
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
А смысл, если человеку придётся всё равно запускать сторонние проги
![]() Вот если б всё делалось при установке *.wog ![]() ============ Обновил скрипт... (ссылка в первом посте)
-------------------- |
|
|
Гость_Berserker_* |
![]()
Сообщение
#25
|
![]() |
Не пострадает. Я свои диалоги где хочу могу юзать
![]() |
|
|
![]()
Сообщение
#26
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
Цитата(Berserker) Насчёт вашей проблемы...Если не трудно, напишите словами всё то, что делает скрипт. Возможно есть более корректное решение (и простое), ведь стабильность тоже важна. Вы так и не уточнили, что именно описать ![]() Жду. -------------------- |
|
|
![]()
Сообщение
#27
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
Кто тут хотел, чтоб по автомату всё ставилось?
(см. ссылку в первом посте... ![]() Там я всунул изменённый стандартный Zeobjcts.txt, а ваш будет перемещаться в "Data\backup" Так что смело не глядя ставьте... ![]() -------------------- |
|
|
Гость_Berserker_* |
![]()
Сообщение
#28
|
![]() |
Ну вот и отлично, насчёт алгоритмо, хотя бы в двух словах всё. (или в одном половину)
|
|
|
![]()
Сообщение
#29
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
Вот, описание по куску скрипта 88, как вы и просили.
Я убрал весь текст и комменты (см. их в оригинале) Цитата(script88 @ код, касаемый объекта 22/1) !#UN:P88/?v1; !#IF&v1=1:V88/1; !#VRz177&88:S^^; !#VRz178&88:S^^; !#VRz179&88:S^{Скелет дракона} (Не посещено)^; !#VRz180&88:S^{Скелет дракона} (Посещено)^; **подсчёт объектов на карте !#UN&88:U22/1/?v69; !#HT22/1&88:Tz179; для скелета !?PI&88; !!DO178/1/v69/1&v69>0:P; (серым отмечены настройки для др. объекта) !!UN:J2/?y1; !!VRv47&y1=0:C33/0/0; !!VRv47|y1=1/y1=2:C42/1/69; !!VRv47|y1=3/y1=4:C50/2/68; ********** !?FU178; !!UN:U22/1/x16/917; !!SK917:S0; !!PO917:N0; !?OB22/1&1000; !!OB998:S; !!FU&-88:E; !!VRv917:Cv998/v999/v1000; !!IF:W-1; !!PO917:N?y1; !!OB917|y1=1/w95=1:H180; !!IF|y1=1/w95=1:M^%Z177 %Z178^; !!FU&y1=1:E; !!PO917:N1; !!FU&w95=1:E; !!OB917:H180; !!VRz-1:S^%Z177 %Z178^; !!VRi:S0 R19; !!IF&i>=7:M1/z-1; !!FU&i>=7:E; !!VRy2:S0 R8; !!IF&y2=1:M1/z-1; !!FU&y2=1:E; !!VRw89:Sy2 +37; !!VRz1|w89=37/w89=45:S^текст^; !!VRz1|w89=39/w89=40:S^текст^; !!VRz1&w89=41:S^текст^; !!VRz1&w89=42:S^текст^; !!VRz1|w89=43/w89=44:S^^; !!IF:M^%Z177 текст %Z1! Текст^; !!VRw95:S1; !!VRw96:Sc; !!HE-1:R1/1; !?OB22/1&-1000; для ИИ !!FU&-88:E; !!VRv917:Cv998/v999/v1000; !!PO917:N?y1; !!FU&y1=1:E; !!PO917:N1; !!VRi:S0 R19; !!FU&i>=7:E; !!VRy2:S0 R8; !!FU&y2=1:E; !!VRy2:Sy2 +37; !!HE-1:A2/y2/?y3/d; !!HE-1&y3=0:A4/y2 R1/1; !!FU&y3=0:E; !!UN:Ay2/1/?y4; !!OW:C?y5; !!VRy4&y2=39:*v47:100; !!VRy4&y2=44:*v47:100; !!OW:Ry5/6/dy4; !?HM-1&88; !!IF:W-1; !!FU&w95<>1:E; !!VRy3:Sc; !!VRy3:-w96; !!FU&y3<1:E; !!VRw95:S0; !!VRw96:S0; !!QW:A88/-1/-1/-1; !!HE-1:A2/w89/?y1/d; !!IF&y1=0:Q1/8/w89/1^текст^; !!HE-1&y1=0:A4/w89; !!VRw89&y1=0:S0; !!FU&y1=0:E; !!UN:Aw89/1/?y2; !!VRy2|w89=39/w89=44:*v47:100; !!IF:Q1/36/d/2^текст^; !!VRw89:S0; !!VRz-1&-1:S^текст^; !!VRz-2&-1:S^../Data/s/chest.jpg^; !!VRz1&-1:S^^; !!IF&-1:D99/-1/1/1/-2/1/1/1/1/1/1/1/1/1/1/1; !!IF&-1:E1/99; !!FU&-1:E; !!UN:R6/1000; !!IF:Q1/36/y2/1^текст^; !!OW:C?y4; !!OW:Ry4/6/dy2; !?CM2&88; !!CM:F?y1 I?y2 S?y3; !!IF:W-1; !!FU&w95<>1:E; !!FU&y1<>0/y2<>128/y3<>13:E; !!HE-1:R2/?y4; !!VRz1:S^^; !!VRz1&y4=1:S^а^; !!VRz1:S^^; !!QW:A88/-1/-1/1; Итак... Сначала проходит проверка на активацию скрипта, если он вкл., то флаг88 устанавливается в "true". Дальше идут интструкции:запись нужного далее текста, подсчёт кол-ва объектов 22/1 на карте(кол-во запишется в v69), раздача подсказок... Потом, в пост-инструкции, выполняется ф-ция178: присвоение всем объектам внутр.номера 0, что необходимо для дальнейшего контроля посещения объектов (посещённый объект должен иметь номер 1) и тут же исключается вероятный выпад (SK#:S0) случ.арта (для ИИ, т.к. для ИИ стандарт.работа объекта не откл., а объект 22/1 работает как скелет). После, идёт настройка v47 относительно сложности игры (чем сложнее, тем боьший % от стоимости арта будет получать игрок/ИИ) Всё, с настройками покончено... А вот сама задумка объекта 22/1: Если объект не посещён игроком, для него в подсказке отображается "...(не посещено)", не зависимо от того, посетил ли этот объект ИИ. Итак, игрок посещает объект, идёт проверка(y1=1?) на "посещён" ли объект когда-то (кем угодно)... Если ДА, то номер объекта должен быть 1, после чего сменится подсказка "...(посещено)" и игрок(или ИИ) ничего здесь никогда не найдёт. Если же после проверки будет номер 0, то идёт др. проверка(w95=1?), находит ли герой в этот день что-либо в таком же (но не в этом) объекте? Если ДА, то игрок ничего не сможет здесь найти, а сам объект помечается посещённым (присваевается номер 1 и подсказка меняется). Если же НЕТ(w95<>1), то идёт оснавная часть свойств объекта... сначала (опять же, подсказка получит "посещено") идёт генерация случ. числа в i (от 0 до 19, т.е. 20 вариантов), потом идёт условие, при котором если сгенерированный случ.номер будет меньше числа 7 (от 0 до 6, т.е. 7 вариантов), тем самым я реализовал 35% вероятность, то герой как бы "находит" в останках какой-то полезный предмет (часть тела дракона). Конечно же, всё сводится к конкретному артефакту, а не предмету (просто игрок пока не знает это). Т.е. после этого идёт ещё одна генерация случ. числа в y2 (от 0 до 8, т.е. 9 вариантов), которая уже непосредственно определяет, что найдёт герой. Герой может найти только драконий "арт", т.е. от 37 до 45, что обеспечивается кодом !!VRw89:Sy2 +37;... здесь есть один ньюанс: если сгенерируется y2=1(т.е. арт №38), то герою скажут, что он ничего не нашёл... Это так и должно быть, т.к. 38 арт не подходит под концепцию объекта 22/1. Итак, герой как бы находит предмет (номер арта запишется в w89), о чём ему говорится в диалоге, и после этого в w95 запишется 1(отметка о факте находки) и в w96 запишется текущий день (при этом он получит +1 удачи). На этом все настройки объекта заканчиваются... Далее идёт триггер !?НМ-1, который обеспечивает условие получение арта только на след. день! Для этого при каждом шаге идёт сверка на имеющуюся находку (w95=1?) и сверка даты с днём самой находки (!!VRy3:Sc; !!VRy3:-w96;). Если находки у героя нет, то ничего не будет происходить. Иначе, из разности дней будет смотреться, наступил ли след. день (y3<1?). Т.е. если всё ещё тотже день, когда была находка, то разность будет 0. Если же наступит др. день, то разность должна быть 1. Но я сделал ещё и поправку на то, что герой может не двигаться в след. дне (вдруг он в гарнизоне замка, или ещё чего), что отражено в знаке "<" (y3<1). Короче, так или иначе, елсли день будет не совпадать с днём находки, герой обязательно получит арт (конкретика получения отражена в диалогах)... Ну а дальше, идёт сверка есть ли такой арт у героя (!!HE-1:A2/w89/?y1/d;). Опять же оговорюсь, что игрок ещё не знает, что за арт он может получить (это только в самом коде видно), ему лишь известен найденный предмет. Если такой арт имеется, то герою будет предложено либо продать "предмет" на рынке, либо оставить "предмет" как трофей (при этом ничего у героя фактически не прибудет, лишь эмоциональный аспект). Если герой скажет "продать", то идёт "подсчёт" стоимости продажи...(!!UN:Aw89/1/?y2;). Если в w89 содержится 39 или 44, то герой получит не полную стоимость, а лишь процент от реальной стоимости арта. Этот процент записан в v47, т.е. формула будет сумма=стоимость арта*v47:100. ничего сложного. А дальше просто идёт зачисление определённой суммы в казну героя, и обнуление используемых переменных. (обнуление w95 и w96 идёт сразу после соблюдения условия разности дней). В добавок, я сделал запись об находке в журнале героя (через !!QW). Только запись происходит не в коде объекта, а когда игрок находится в окне героя (это вызвано лишь нежеланием заводить ещё одну z-переменную). Кстати, в записи будет отражаться половая принадлежность героя (т.е. он или она). Удалении записи происходит после срабатывания условий в !?HM-1 Что касается ИИ, то для него будет работать всё практически также как и для человека. Для него лишь не работают подсказки, диалоги, журнал. Далее, он получает арт в тот же день (т.е. !?HM для него не работает), когда посетит объект. Если у него такой арт будет, то он сразу же получит за него денежную компенсацию. Ну, а в остальном всё также... Вот и всё... -------------------- |
|
|
![]()
Сообщение
#30
|
|
![]() Banished Сообщений: 1 782 Спасибо сказали: 116 раз ![]() |
Предложения можно?
1) Лучше не генерировать число при посещении объекта (иначе, кому не лень, будут релоад использовать для выдергивания артов), а в самой функции расстановки PO:N номеров это делать, а потому проверять. А для посещено/нет лучше использовать номера 15 и 14, а первые 1-8 для типа артефакта. 2) См. действия для ИИ: !!VRy4&y2=39:*v47:100; !!VRy4&y2=44:*v47:100; Заменить бы на ИЛИ !!VRy4|y2=39/y2=44:*v47:100; 3) Также для читабельности неплохо отделять разрывные строки пустыми (т.е. после FU...:E; шла бы пустая строка) 4) Если я правильно понял, объект будет показан посещенным даже тому игроку, кто не посещал, а лишь увидел посещеный игроком-противником. Думаю, можно использовать, к примеру, PO:V или PO:H (что лучше, так как раз ограничено 255 - всеми цветами игроков), перехватывать клики мышью, и если нажатие правой кнопкой по объекту, выводить сообщение на основе данных PO:V (PO:H). А подсказки вроде OB:H или HT оставить константными, чтобы по полосе чата не было понятно, посещен объект или нет. -------------------- |
|
|
![]()
Сообщение
#31
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
4 сан-сэй
Я уже второй раз от вас получаю совет по поводу использования PO:V (PO:H), спасибо, но как н совсем просвящённый я так и не понял, как мне это применять на практике... если можео малюсенький пример ![]() -------------------- |
|
|
![]()
Сообщение
#32
|
|
![]() Мордодел Сообщений: 1 950 Спасибо сказали: 856 раз ![]() |
Бес а может сделаешь еще что-нить наподобие DemonCave во вторых херосах а то один единственный ImpCash как-то несерьезно
-------------------- АБЫРВА-А-А-А-АЛГ!!!
|
|
|
![]()
Сообщение
#33
|
|
![]() Сообщений: 29 680 Спасибо сказали: 18143 раза ![]() |
да! именно. а я объект нарисую. как раз давно хотел такое! идея хорошая.
Добавлено ([mergetime]1189083423[/mergetime]): защищать будут демоны - например по 15-30 штук со всех сторон. давать например 5000 золото, 2 мифрил и арт 2 уровня. можно ещё, чтоб к войску присоединялись несколько (5-15) демонов или рогатых демонов. Добавлено ([mergetime]1189083457[/mergetime]): получится прекрасный новый объект. Добавлено ([mergetime]1189083476[/mergetime]): а можно чтоб заклинание какое-нибудь ещё давал... Добавлено ([mergetime]1189083487[/mergetime]): или +1 к атаке... |
|
|
![]()
Сообщение
#34
|
|
![]() Banished Сообщений: 1 782 Спасибо сказали: 116 раз ![]() |
А можно и то, и другое. Случайно
![]() 2 Бес Если честно, я в формулах далеко не очень, и так и не смог придумать формулы вычисления числа из числа ![]() Если надо, помогите кто-нить. -------------------- |
|
|
![]()
Сообщение
#35
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
сан-сэю...
Да ладно, это работает и ладно. Может когда поднимусь на очередную ступень в знании ЕРМ, попробую этот скрипт оптимизировать ещё более "красивше". А это была моя первая РГР (расчётно-графич. работа) по предмету "ЕРМ-скриптинг" ![]() 4 Morn & Docent Picolan вы просите чтоб я скрипт своял, или что? имхо, это явно не в этой теме, ибо оффтоп ![]() -------------------- |
|
|
![]()
Сообщение
#36
|
|
![]() Сообщений: 29 680 Спасибо сказали: 18143 раза ![]() |
Цитата вы просите чтоб я скрипт своял, или что? да. чтобы ты своял скрипт. а я вызвался нарисовать для него объект. так ты сможешь написать? извиняюсь за оффтоп. Добавлено ([mergetime]1189162905[/mergetime]): и ещё оффтоп: Морн, может ты тогда нарисуешь для него батлфилд? |
|
|
![]()
Сообщение
#37
|
|
![]() Мордодел Сообщений: 1 950 Спасибо сказали: 856 раз ![]() |
Цитата(Docent Picolan @ 07 Sep 2007, 14:01) Добавлено ([mergetime]1189162905[/mergetime]): и ещё оффтоп: Морн, может ты тогда нарисуешь для него батлфилд? А якжеж ![]() ![]() -------------------- АБЫРВА-А-А-А-АЛГ!!!
|
|
|
![]()
Сообщение
#38
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
4 Morn & Docent Picolan
дальнейшие переговоры вести здесь ![]() ![]() ========= Народ, меня волнует вопрос баланса моего скрипта ![]() Кто-нибудь, посмотрите, может где надо подправить ![]() -------------------- |
|
|
Гость_Berserker_* |
![]()
Сообщение
#39
|
![]() |
БЕс, я ещё раз прочитал Ваше описание и дельные предложения будут:
1) Уничтожить это ужасное рассточительство w-переменных, хватит и одной. 2) Идея шанса мне в корне не нравится, пусть лучше будет охрана. 3) Ставить проверки такого рода на триггер !?HM - это самоубийтсво, вы подумайте, сколько тычяч раз за игру он будет вызван, десятки, если не сотни!!! А вся для того, чтобы герой получил арт на следующий день. Повесить это можно на !?TM1, но лучше давать или продавать арт в тот же день. Очередная порпавка, я просто скину уже имеющийся арт, забиру ваш и подниму свой, так что не мучайтесь с продажей. |
|
|
![]()
Сообщение
#40
|
|
![]() замолкаю. Сообщений: 2 340 Спасибо сказали: 1010 раз ![]() |
Спасибо за конструктивную критику...
Воя реакция: 3) >вы подумайте, сколько тычяч раз за игру он будет вызван, десятки, если не сотни!!! Да, но там всё заканчивается на первой же FU:E ![]() Я всё же предпочитаю, чтобы мастер приносил изделие на след. день. (раньше он никак не справится ![]() >я просто скину уже имеющийся арт, забиру ваш и подниму свой Да?! И как же игрок узнает какой скинуть, если ему известно лишь начальный материал для арта? (хотя конечно, это я не учитывал, всё не предусмотришь). Короче, я подумаю, может и вправду не стоит делать продажу (я хотел придать некую оригинальность действиям ![]() 2) Я делал действие по аналогии с обычным скелетом, а там никакой охраны нет (скрипт сан-сэя не всчёт). Идею с охраной категорически неприемлю! >:| 3) Т.к. я всё же хочу след. день использовать, то без этих переменных мне не обойтись. А с таймером я так и не придумал должной замены ![]() ![]() В общем, как я говорил ранее, скрипт ещё не до конца доработан, так что ещё не всё потеряно... ![]() -------------------- |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 22 September 2025 - 17:17 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|