IPB

Здравствуйте, гость ( Вход | Регистрация )

> Артефакты, возможность создать 3200 артов
Docent Picolan
сообщение 21 Mar 2008, 00:15
Сообщение #1

   
Сообщений: 29 180
Спасибо сказали: 15480 раз




вот вам привет от дъякона, к сожалению проживающего ныне на банановом острове: biggrin.gif

Дъякон
0:06:14 Данный скрипт позволяет добавить 3200 новых артов. Скрипт добавляет новый бланковый арт, св-ва которого можно задать при помощи ЕРМ. Но нельзя занимать переменные z800-z1000.

Код
ZVSE
_WARNING_#1=IMPORTANT! This file is not in a plain text format. NEVER use any editor except ERM_S for making any kind of changes!
ERMS_PoweredBy=ERM Scripter v. 2004.10.5.945
ERMS_ScriptDate=20.3(March).2008
!?PI;
!!FU1:P;
!!FU3:Px1; x1 - номер добавляемого арта с 170 и до 3370
!?FU1;
!!VRy1:S8088992;
!!VRy2:S10007016;
!!DO2/1/5440/1:Py1/y2;
!?FU2;
!!UN:Cx1/1/?y1;
!!UN:Cx2/1/y1;
!!VRx1:+1;
!!VRx2:+1;

!?FU3;
!!UN:C6687592/4/10007016;
!!VRy1:S8094336;
!!VRy2:Sx1*32+10007016;
!!DO4/1/50/1:Py1/y2;
!?FU4;
!!UN:Cx1/1/?y1;
!!UN:Cx2/1/y1;
!!VRx1:+1;
!!VRx2:+1;

Чтобы отобразить арт - необходимо добавить его изображение в деф артов

Скрипт работает под ТЕ. Но можно переделать чтоб работал и под ВОГ. Все в Ваших руках

0:07:05 З.Ы. Естественно номера функций в скрипте нужно подправить, чтоб не было конфликта с скриптами ВОГ

Добавлено ([mergetime]1206047722[/mergetime]):
PSS: Не обращайте внимание на описание добавляемых артов. Описание берется с арта №167. Но арт добавляется абсолютно новый/Описание можно после изменить


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 19)
<Fenix>
сообщение 21 Mar 2008, 00:20
Сообщение #2

Рожденный Пламенем Жизни
Сообщений: 1 481
Спасибо сказали: 182 раза




3200? Не слишком много?


--------------------
Древние тайны в руках
И огонь правды в глазах.
Аскет и отшельник, но не злодей,
Луч света вдали лазури морей.
Он заклинает силой своей,
Искусный кудесник и чародей.
Go to the top of the pageAdd Nick
 
+Quote Post
Docent Picolan
сообщение 21 Mar 2008, 00:22
Сообщение #3

   
Сообщений: 29 180
Спасибо сказали: 15480 раз




ты имел ввиду мало.. biggrin.gif но на наш век хватит smile.gif
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 21 Mar 2008, 01:06
Сообщение #4

Мяў, наверное...
Сообщений: 21 718
Спасибо сказали: 10246 раз




УРА!!!
Всё! Нужно доставать арты из Морровинда. Там есть весьма прикольные.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
<Fenix>
сообщение 21 Mar 2008, 11:05
Сообщение #5

Рожденный Пламенем Жизни
Сообщений: 1 481
Спасибо сказали: 182 раза




smile.gif


--------------------
Древние тайны в руках
И огонь правды в глазах.
Аскет и отшельник, но не злодей,
Луч света вдали лазури морей.
Он заклинает силой своей,
Искусный кудесник и чародей.
Go to the top of the pageAdd Nick
 
+Quote Post
Docent Picolan
сообщение 21 Mar 2008, 15:38
Сообщение #6

   
Сообщений: 29 180
Спасибо сказали: 15480 раз




попрошу не обсуждать кого почему и когда забанили. там дело тёмное smile.gif
Go to the top of the pageAdd Nick
 
+Quote Post
FBX
сообщение 20 Aug 2008, 12:55
Сообщение #7

🐓🐓🐓🐓🐓🐓🐓
Сообщений: 1 842
Спасибо сказали: 1565 раз




Вот ведь коварные колдуны, взломали все-таки...


--------------------
using namespace fbx;
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 17 Sep 2008, 14:00
Сообщение #8

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




Как изменить параметры нового арта, если !!UN:A ругается, мол, такого артефакта не бывает, в частности, его описание и название?
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_FakerNeo_*
сообщение 21 Sep 2008, 03:27
Сообщение #9







Через UN:C, либо снимать ограничение на кол-во артов в ехе
Go to the top of the pageAdd Nick
 
+Quote Post
sergroj
сообщение 21 Sep 2008, 18:12
Сообщение #10

В миру GrayFace
Сообщений: 2 510
Спасибо сказали: 766 раз




Проще через UN:C - для снятия надо расшираять таблицу и менять границу пары циклов. Но, конечно, UN:C изменит это в рамках всей игры, а не только карты.


--------------------
ДНК банана на 50% состоит из человека.
Go to the top of the pageAdd Nick
 
+Quote Post
MasterOfPuppets
сообщение 15 Apr 2009, 22:52 (Сообщение отредактировал Master Of Puppets - 15 Apr 2009, 22:59)
Сообщение #11

Анти-Всë
Сообщений: 2 984
Спасибо сказали: 2296 раз




Я в exe дуб дубом, но в этом скрипте, я так понял, происходит копирование блока памяти, относящегося к арту-167, в некое свободное место (видимо, предназначенное для z-переменных 800-1000) - как продолжение ряда. Сколько раз скопировал - столько и артов. Но в результате все "новые" артефакты надеваются на тот же слот, что и арт-167. Если в artraits.txt этот слот поменять, то он изменится и у всех "клонов".
Так как можно и можно ли индивидуально поменять слот "новому" артефакту?
Это единственное, что меня интересует. Название и описание можно и по кликам определять.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
gamecreator
сообщение 16 Apr 2009, 01:07
Сообщение #12

Яблочный произвол!
Сообщений: 11 080
Спасибо сказали: 3999 раз




конечно можно. на основании уже существующих примеров ищешь оффсет в записи арта что соответствует слоту и пишешь туда свое
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 16 Apr 2009, 17:59 (Сообщение отредактировал major - 16 Apr 2009, 18:00)
Сообщение #13

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




Хмм... могу выложить мои наработки, основанные на исследованиях Сергроя и Дьякона. Насколько все работает я уж и не помню, но раньше я этими функциями пользовался. Это кажется для ТЕ. Итак

Код
** определяем адрес переменной z1
!#UN:A0/9/?y10; [backup Z var number]
!#UN&y10<0:A0/9/?z-1; [backup string (3.59)]
!#UN:A0/9/1; [art0.Name = z1]
!#UN:C6687592/4/?y1; [get artifacts array address]
!#UN:Cy1/4/?v4138; [get art0.Name which is z1 address. Name goes first in art info, so y1 points to art0.Name]
[v4138 holds address of z1 now]
!#UN&y10>=0:A0/9/y10; [resture Z var number]
!#UN&y10<0:A0/9/z-1; [restore string (3.59)]

** пример заполнение артефактами 171-177
** используются переменные z280-z296
!?PI;
!!VRv4139:S280 -1 *512 +v4138;
!!VRv4140:S295 -1 *512 +v4138;
!!FU9126:P;
* x1 - номер арта (с 171 и до 239), x2 - ссылка название, x3 - стоимость
* x4 - позиция на теле (0-рюкзак, 1-голова, 2-плечи, 3-шея, 4-правая рука
* 5-левая рука, 6-торс, 7-кольцо, 8-ноги, 9-разное)
* x5 - класс артефакта (1-грааль, 2-сокровище, 4-малый, 8-великий, 16-реликвия)
* x6 - ссылка описание, x7 - номер сборного артефакта (>12)
* x8 - часть сборного артефакта №>12, x9 - дает ли заклинание (0-нет, 1-да)
** пояснение z940 - имя артефакта 171, z941 - описание 171, z942 - имя артефакта 172, z943 - описание 172 и т.д.
!!VRy-1:S940 -1 *512 +v4138;
!!VRy-2:S941 -1 *512 +v4138;
!!FU9128:P171/y-1/5000/1/4/y-2/-1/-1/1;
!!VRy-1:S942 -1 *512 +v4138;
!!VRy-2:S943 -1 *512 +v4138;
!!FU9128:P172/y-1/5000/6/4/y-2/-1/-1/0;
!!VRy-1:S944 -1 *512 +v4138;
!!VRy-2:S945 -1 *512 +v4138;
!!FU9128:P173/y-1/5000/4/4/y-2/-1/-1/0;
!!VRy-1:S946 -1 *512 +v4138;
!!VRy-2:S947 -1 *512 +v4138;
!!FU9128:P174/y-1/5000/5/4/y-2/-1/-1/0;
!!VRy-1:S948 -1 *512 +v4138;
!!VRy-2:S949 -1 *512 +v4138;
!!FU9128:P175/y-1/5000/2/4/y-2/-1/-1/0;
!!VRy-1:S950 -1 *512 +v4138;
!!VRy-2:S951 -1 *512 +v4138;
!!FU9128:P176/y-1/5000/8/4/y-2/-1/-1/0;
!!VRy-1:S952 -1 *512 +v4138;
!!VRy-2:S953 -1 *512 +v4138;
!!FU9128:P177/y-1/5000/4/16/y-2/-1/-1/0;
* x1= + к атаке, x2= + к защите, x3= + к силе магии, x4= + к знанию
!!FU9129:P161/0/0/2/2; параметры артефактов
!!FU9129:P162/0/2/0/0;
!!FU9129:P163/5/0/0/0;
!!FU9129:P164/0/3/0/0;
!!FU9129:P165/0/0/0/3;
!!FU9129:P166/0/0/3/0;
!!UN:C6687592/4/v4139; z280-z294
!!UN:C5123366/4/v4140; z295-z296
!!UN:C5123569/4/v4140;
!!UN:C5123733/4/v4140;
!!UN:C5123964/4/v4140;

!?FU9126;
!!VRy1:S8088992;
!!VRy2:Sv4139;
!!DO9127/1/5472/1:Py1/y2;
!!VRy1:S8094552;
!!VRy2:Sv4140;
!!DO9127/1/684/1:Py1/y2;

!?FU9127;
!!UN:Cx1/1/?y1;
!!UN:Cx2/1/y1;
!!VRx1:+1;
!!VRx2:+1;

!?FU9128;
!!VRy2:Sx1*32+v4139;
!!UN:Cy2/4/x2; ссылка название
!!VRy2:Sx1*32+v4139+4;
!!UN:Cy2/4/x3; стоимость
!!VRy2:Sx1*32+v4139+8;
!!UN:Cy2/4/x4; позиция на теле
!!VRy2:Sx1*32+v4139+12;
!!UN:Cy2/4/x5; класс артефакта
!!VRy2:Sx1*32+v4139+16;
!!UN:Cy2/4/x6; ссылка описание
!!VRy2:Sx1*32+v4139+20;
!!UN:Cy2/4/x7; номер сборного артефакта
!!VRy2:Sx1*32+v4139+24;
!!UN:Cy2/4/x8; часть сборного артефакта №
!!VRy2:Sx1*32+v4139+28;
!!UN:Cy2/4/x9; дает ли заклинание

!?FU9129; функция артефактов
!!VRy1:S8094552;
!!VRy2:Sx1*4+y1;
!!UN:Cy2/1/x2; +атака
!!VRy2:Sx1*4+y1+1;
!!UN:Cy2/1/x3; +защита
!!VRy2:Sx1*4+y1+2;
!!UN:Cy2/1/x4; +сила магии
!!VRy2:Sx1*4+y1+3;
!!UN:Cy2/1/x5; +знание


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
MasterOfPuppets
сообщение 18 Apr 2009, 07:39
Сообщение #14

Анти-Всë
Сообщений: 2 984
Спасибо сказали: 2296 раз




maior - я вот так сделал (если слот Брони в Artraits.txt не менялся):
Код
!?PI;
!!DO29502/1/5440/1:P8088992/10007016;
!!FU29503:P#1 P#2 P#3...; - номера добавляемых артов

!?FU29502;
!!UN:Cx1/1/?y1;
!!UN:Cx2/1/y1;
!!VRx1:+1;
!!VRx2:+1;

!?FU29503;
!!UN:C6687592/4/10007016;
!!VRy1:S8094336;
!!VRy2:Sx1*32+10007016;
!!DO29504/1/50/1:Py1/y2/x1;

!?FU29504;
!!UN:Cx1/1/?y1;
!!UN:Cx2/1/y1;
!!UN&y1=6/x3=*номер арта*:Cx2/1/*номер слота*;
!!VRx1:+1;
!!VRx2:+1;

Если менялся, то и y1, ес-сно, должна равняться другому значению слота.
Номер 171 - глючный. Его лучше опустить (но кадр в дефе - хоть пустой - конечно, обязателен).


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 18 Apr 2009, 11:34
Сообщение #15

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




Хммм... В принципе, не совсем верно, мне кажется.
!?FU29504 - побайтовое копирование параметров артефакта (167). У тебя, как я понял, если в нем будет значение 6 (т.е. торс), то ты меняешь на свое. А если там будет 4-байтовое значение адреса, ну к примеру, 00 6E AA 06, то последнее число тоже поменяется на твое значение, - а далее глюки и баги. Может быть так и происходит с артом 171.

Кстати, меня всегда интересовало, почему происходит копирование 50 байт в цикле !!DO4/1/50/1:Py1/y2; Ведь параметры артефакта заполняют собой 32 байта.
Можно даже посчитать - z-переменная - 512 байт, зарезервировано 200 z-переменных, т.е. 102400 байт. Как сказано ранее, можно добавить 3200 артов, т.е. на 1 арт придется 102400/3200=32 байта.
Это же подтверждает практика. Поэтому все же лучше поменять цикл на !!DO4/1/32/1:Py1/y2;
Ну и наконец для позиции на теле, исходя из моей функции, смещение составляет 8 байт, поэтому, MOP, в твоем примере попробуй поменять
!!UN&y1=6/x3=*номер арта*:Cx2/1/*номер слота*;
на
!!UN&x16=9/x3=*номер арта*:Cx2/1/*номер слота*;


Спасибо сказали:
Go to the top of the pageAdd Nick
 
+Quote Post
MasterOfPuppets
сообщение 19 Apr 2009, 10:52 (Сообщение отредактировал Master Of Puppets - 19 Apr 2009, 10:55)
Сообщение #16

Анти-Всë
Сообщений: 2 984
Спасибо сказали: 2296 раз




major - да, твой скрипт лучше, и я им сейчас пользуюсь. Арт-171 не глючит. Свой вариант я только из отчаяния сделал.
Кстати, придумал способ, чтобы не юзать кучу z-переменных для описаний артов (если артов много). На случай кликов использую такой код:

!?CM2&$Place$>1/$Place$<45;
!!VRy2:S$Place$-2;
!!VRy2&$Place$>39:S$Place$-21;
!!HE-1:A1/?y1/y2;
!!FU&y1<171:E;
!!VRy3:Sy1+1830;
!!VRz940:S@ArtMop[0]@;
!!VRz941:Sy3;
!!VRy-1:S940 -1 *512 +v4138;
!!VRy-2:S941 -1 *512 +v4138;
!!VRy2:Sy1*32+v4139;
!!UN:Cy2/4/y-1;
!!VRy2:Sy1*32+v4139+16;
!!UN:Cy2/4/y-2;

При получении артефакта в каком-либо объекте поступаю так же. Поэтому использую всего две z-переменных для всех артов.
Однако, у меня есть два вопроса по твоему скрипту:
1)Для чего в нём используются z280-z296? Можно обойтись без них?
2)Для чего делать параметры артов (+1 к Атаке и т.д.) через UN:C, если !?AE вроде нормально работает с новыми артефактами?

Добавлено ([mergetime]1240127533[/mergetime]):
Цитата
Может быть так и происходит с артом 171.

Нет, это было при полной неприкосновенности скрипта Дьякона.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 19 Apr 2009, 11:37
Сообщение #17

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




1) z280-z294 используются для хранения параметров артефактов (стоимость, слот, класс и т.д.), а вот z295-z296 - уже и не помню для чего, кажется как раз для ссылок на название артефактов.
2) конечно в принципе не обязательно, просто мне так нравится.
Go to the top of the pageAdd Nick
 
+Quote Post
MasterOfPuppets
сообщение 21 Apr 2009, 12:39
Сообщение #18

Анти-Всë
Сообщений: 2 984
Спасибо сказали: 2296 раз




Цитата
z280-z294 используются для хранения параметров артефактов (стоимость, слот, класс и т.д.),

Я это понял. Не понял другое.
В скрипте коммент: "x1 - номер арта (с 171 и до 239)". Почему всего 69? Следуя логике, 14-ти z-переменных должно хватить на 512*14/32=224 артефакта.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 21 Apr 2009, 16:23
Сообщение #19

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




А-а-а-а, я вспомнил! Используется 15 (не 14) z-переменных (280-294), т.е. получается 512*15/32=240 артефактов.
Я таблицу артефактов перенес в новое место, поэтому 240 - это общее количество артов, т.е. начиная с 0 последним будет арт №239. Посчитал, что дополнительно около 70 артефактов хватит... А параметры старых артов (0-170) просто копируются в новую таблицу.
Go to the top of the pageAdd Nick
 
+Quote Post
Kastore
сообщение 21 Apr 2009, 16:33
Сообщение #20

Dark Advisor
Сообщений: 11 701
Спасибо сказали: 4979 раз




[quote=Docent Picolan,21 Mar 2008, 01:15]
вот вам привет от дъякона, к сожалению проживающего ныне на банановом острове: biggrin.gif

Дъякон
0:06:14 Данный скрипт позволяет добавить 3200 новых артов. Скрипт добавляет новый бланковый арт, св-ва которого можно задать при помощи ЕРМ. Но нельзя занимать переменные z800-z1000.

Так Дьякон, вроде нормальный чел был! За что его?


--------------------


Одно из самых главных последствий войны состоит в том, что люди в конце концов разочаровываются в героизме. ©
Go to the top of the pageAdd Nick
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 21 October 2019 - 15:13
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика