[AGFC: Valley of Gothic] М: Скриптинг в Готике

Страница 37 из 65 « Первая 273031323334353637 3839404142434447 Последняя »
Поиск в этой теме:

Расширенный поиск
Старый 10.08.2006, 20:02   #1441
finch

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Vam: ИМХО, нет.. В случае тобой описаном кроме того, что не наносится повреждение, еще и мана не снимается, если же
строка в массиве spellFxInstanceNames одинакова со строкой Spell_Cast_xxx
мана снимается нормально, но повреждения все равно нету.
Функция Spell_Cast_xxx ваще отвечает за расход маны..

Или ты не прав.. или я чего-то не догоняю... :(
Ответить с цитированием
Старый 10.08.2006, 20:20   #1442
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2finch:
Или ты не прав.. или я чего-то не догоняю...
Наверно, второе более истинно  ;), извини.
Я тебе задал вопрос, как ты программируешь урон, но ты на него так и не ответил...
Урон может наноситься либо в функции Cast_Spell_xxx, либо в обработчиках заклинаний, которые вызываются из функции B_AssessMagic, которая первоначально вызывается экзешником при "столкновении" инстанции с целью, если в инстанции установлен флаг sendAssessMagic, в противном случае обработчик не будет вызван.
Ответить с цитированием
Старый 10.08.2006, 22:37   #1443
finch

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Vam: Респект! =)
Действительно, гениально и просто.. Я поместил урон в функцию  Spell_Cast_XXX - заработало, но...

Во-первых, я бы хотел сделать "как у разработчиков";
во-вторых, если заклинание должно по идее действовать на нескольких НПС вокруг ГГ (аки огненный дождь), оно действует только на НПС, который находится в фокусе.. И как с этим бороться?
Ответить с цитированием
Старый 11.08.2006, 12:07   #1444
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2finch:
Во-первых, я бы хотел сделать "как у разработчиков";
Сделать всё как у разработчиков нельзя, некоторые заклинания связаны с экзешником.
во-вторых, если заклинание должно по идее действовать на нескольких НПС вокруг ГГ (аки огненный дождь), оно действует только на НПС, который находится в фокусе.. И как с этим бороться?
Огненный дождь как раз связан с экзешником, поэтому в аналогичном своём заклинании можно поменять константу цели targetCollectAlgo для нанесения урона нескольким НПС.
Ответить с цитированием
Старый 12.08.2006, 00:35   #1445
B_Wolf

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Vam:
как раз связан с экзешником
Хотелось бы у знать поподробнее о спеллах связанных с екзешником.

Я пробовал вставлять телекинез из Г1 в Г2а. Прописал заклинание вроде бы по всем вышеописанным правилам, в VisualFX.dat Г2а перенес инстанцию из VisualFX.dat Г1. Итог: Вся анимация и звуки спелла присутствуют. Расхода маны и действия нет... :) Каким образом вообще работает телекинез в Г1 (перемещение предмета в пространстве)? Возможно ли его полноценно восстановить в Г2а?
Ответить с цитированием
Старый 25.08.2006, 15:52   #1446
minokk

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Товарищи программеры, я понимаю, что не совсем в тему, но не подскажете ли ПОЖАЛУЙСТА что сие значит:

U: PAR: Class - size not compatible: C_ITEM
CPP - size: 524
Script - size: 504

ошибка вылезает при создании новой игры в Готике2

заранее спасибо
Ответить с цитированием
Старый 26.08.2006, 02:13   #1447
Killer-XXX
Строители Миртаны
 
 
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
Killer-XXX вне форума

По умолчанию Re: М: Скриптинг в Готике

2minokk:
Вроде ты gothic.dat закинул не от той Готики, может от Оригинала ты кинул в Аддон?
Ответить с цитированием
Старый 27.08.2006, 00:11   #1448
basilio58

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

[quote=minokk link=board=gothic&t=1105030050&start=1425#1445 date=08/25/06, в 15:52:06]
U: PAR: Class - size not compatible: C_ITEM
CPP - size: 524
Script - size: 504
ошибка вылезает при создании новой игры в Готике2
Не совсем понятно, что ты делал. Что значит "при создании новой игры"? После чего появилась ошибка? Надо подробнее.
Ответить с цитированием
Старый 28.08.2006, 00:20   #1449
Tolman

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2basilio58:
он имел введу что он начинает новую игру...
Ответить с цитированием
Старый 04.09.2006, 08:36   #1450
Xentar

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Ukur:
Сомневаюсь, что можно сделать такое заклинание в Г2, я пробовал реализовать все это скриптово(даже путем изменения фокуса добился, чтобы подсвечивались предметы), но Wld_DetectItem все равно не хочет определять предмет в фокусе, даже с Npc_PerceiveAll(или что-то такое). Даже не представляю как это сделать, если же Npc_PerceiveAll убрать, то item ссылается на последний использовавшийся предмет.
Ответить с цитированием
Старый 04.09.2006, 10:18   #1451
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Ukur:
Каким образом вообще работает телекинез в Г1 (перемещение предмета в пространстве)? Возможно ли его полноценно восстановить в Г2а?
2Xentar:
я пробовал реализовать все это скриптово(даже путем изменения фокуса добился, чтобы подсвечивались предметы), но Wld_DetectItem все равно не хочет определять предмет в фокусе, даже с Npc_PerceiveAll(или что-то такое).
Заклинание Телекинез реализуется движком Г1, поэтому перенести его в Г2 нельзя.  :(
Ответить с цитированием
Старый 04.09.2006, 10:29   #1452
Xentar

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Vam:
Я хотел сделать свой телекинез (скриптовый), но имеющий ту же суть (предмет с пола -> в инвентарь). Но Wld_DetectItem не хочет его определять, хотя определяет предметы лежащие близко, она используется в zs_unocsi...(не помню дальше, короче бессознательное состояние) для того, чтобы поднять предмет, который кто-нибудь уронил во время битвы.
Ответить с цитированием
Старый 12.09.2006, 18:17   #1453
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Люди добрые подскажите новичку, :)
Как вызвать значение навыка владения оружием (таким ка 1Н, 2Н, BOW и CROSSBOW)явно, и как прописать эту функцию, если можно подробно и с комментариями. ::)

Добавление от 09/12/06, в 18:36:49
Не учто некому мне помочь, :'(
А мне говорили что на AG матёрые скриптологи сидят ;).
Да вот только, не видно ни кого :-[.
Я же не для себя хлопочу, я людям помогаю мод доделать.
Отзовитесь кто-нить. :(
Отправить личное сообщение для Ответить с цитированием
Старый 12.09.2006, 18:42   #1454
Killer-XXX
Строители Миртаны
 
 
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
Killer-XXX вне форума

По умолчанию Re: М: Скриптинг в Готике

2MaGoth:
Я не понял, что такое
вызвать значение навыка владения оружием
...
Объясни на русском языке, что ты хочешь сделать? Научить НПС поднимать навыки? Сделать вышение навыки при использовании предмета? Распиши подробней.

Не учто некому мне помочь,  
А мне говорили что на AG матёрые скриптологи сидят .
18:17-18:36
Мдааа... Тут скриптологи сидят, но не живут и ночуют. Ты подождал меньше 20 минут. В общем, без комментариев.
Ответить с цитированием
Старый 12.09.2006, 19:16   #1455
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Извините,  :-[
Я может не так написал, хочу сделать штраф для ношения брони, в зависимости от силы (если воин) штраф будет вычитать сумму штрафа из навыков владения оружием всех.
Если герой маг то смотрится значение круга магии и штраф прописывается в минус маны.
Так понятнее?

Добавление от 09/12/06, в 18:59:05
Проблема 1. После реализации формулы: если аттрибут Владения навыком далее (Вн) > штрафа то все понятно, ВН-штраф.
Проблема 2 Что будет если значение ВН будет равно нулю, это можно делать или нет?
Это к тому если значение суммы штрафа будет больше ВН и если вычитать то ВН уйдет в минус,:-(
Это критично?


Добавление от 09/12/06, в 19:36:48
И еще одна мелочь, :-[
Подскажите пожалуйста,и не посчитайте за "ОФФТОП" как понять когда кто-то ответил на твое сообщение не обновляя страницу нажатием F5.
Зелёный я еще в инете, совсем зеленый. :-[
Отправить личное сообщение для Ответить с цитированием
Старый 12.09.2006, 21:51   #1456
Killer-XXX
Строители Миртаны
 
 
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
Killer-XXX вне форума

По умолчанию Re: М: Скриптинг в Готике

2MaGoth:
Ну делай предварительно проверку, что если ВН < штрафа, вычитать, иначе получить сколько ВН, сохранить текущее значение в переменную, и сделать 0.  
Ответить с цитированием
Старый 13.09.2006, 16:53   #1457
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Killer-XXX:
Спасибо за ответы, *;)
Но:
Сам, так же сделал, :P :)
И ты не ответил на мой последний вопрос, (самый главный для меня та тот момент)!!!

Проблема2: "Что будет если ВН - оружием примет значение "0".

Всем!!!
1. Почему у класса С_NPC в скрипте глобальных констант, в перечень талантов не входит талант магии и круг которым обладает Npc? :(
Я не могу найти его, и самое главное приведите имя и пример этой функции. (и если не трудно распишите ее).

2. В каких файлах скриптов, расписаны (сила, ловкость и т.дю) атрибуты NPC, и их выполнение при вызове какой нибудь функцией?
Пример: В скрипте с функцией, указанна ссылка на:

Npc_ChangeAttribute(self,ATR_STRENGTH,BeltBonus_ST R02);

Я так и не смог найти файл скриптов с таким именем. :o :(
Подскажите плиз...

================================================== =========
PS. Killer-XXX, - иногда бывает тяжело сформулировать свои предложения, это вызвано незнанием синтаксиса языка, пока до всего дойдешь сам нуна время, *;) *а его как раз и нет. :( Если что ни так, извиняй. :)
Отправить личное сообщение для Ответить с цитированием
Старый 13.09.2006, 20:41   #1458
marazmus
A.G.F.C.
 
Регистрация: 02.09.2005
Сообщений: 6
marazmus вне форума

По умолчанию Re: М: Скриптинг в Готике

http://forums.gothic.ag/showthread.php?&s=0&t=1098161614

Сюда, пожалуйста.
Все основы расписаны там.
И вообще там можно найти ответы на 99% вопросов типа твоего.

Vam проделал просто ужасающий обьем работы, в надежде, что готоманы заинтересуются модостроением. Теперь готоманы интересуются модостроением. Но в "Уроки скриптологии" по прежнему заглядывают от случая к случаю, хотя с их изучения следует начинать осмысленный скриптинг. Для начинающих скриптеров это как минимум неуважение к Vam'у и его труду. Для "вникающих" программеров - спорный вопрос. Им обычно хватает "вполглаза" пробежаться по Урокам, чтобы вникнуть в синтаксис и основные моменты. Но и в этом случае, если человек хотя бы раз работал _реально_, можно увидеть, сколько труда вложено в эти Уроки.

Без обид. Это не наезд, а просьба.

p.s. Все ответы на твои последние вопросы в Уроках есть. Но найти их лучше самому, иначе теряется смысл изучения скриптинга вообще. На форумных костылях далеко не уедешь.

p.p.s. Есть еще один сайт для модостроителей, там тоже можно почерпнуть много полезного. Ссылку не скажу, найдешь в моем профиле сам :) Также советую заглянуть на сайт аксакала русского модостроения http://basilio58.narod.ru
Отправить личное сообщение для Ответить с цитированием
Старый 15.09.2006, 13:23   #1459
Xentar

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Портировал скрипты первой готики на движок второй, но при загрузке готика упала в логах нашел следующее:

Cпойлер(щелкните, чтобы прочесть):

00:48 Info:  3 U:     GAM: .. finished .... <oGame.cpp,#3140>
00:48 Info:  3 B:     ---------- 73% ---------- .... <zViewProgressbar.cpp,#142>
00:48 Info:  3 B:     ---------- 92% ---------- .... <zViewProgressbar.cpp,#142>
00:48 Info:  3 B:     ---------- 93% ---------- .... <zViewProgressbar.cpp,#142>

00:48 Fault: 0 U:     OBJ: Script-object PC_mage_di not found ! Please correct instancename ! .... <oWorld.cpp,#309>
00:48 Info:  5 X:     zCDXTCCache_D3D :: ClearCache: Surfaces to clear - 0 .... <zRndD3D_DxtcCache.cpp,#177>
00:48 Info:  5 X:     zCDXTCCache_D3D :: ClearCache: Surfaces to clear - 0 .... <zRndD3D_DxtcCache.cpp,#177>
00:48 Info:  5 X:     XD3D_InitPort: caps - gamma correction enabled .... <zRndD3D_Init.cpp,#852>
00:48 Info:  5 X:     XD3D_InitPort: caps - total videomem:64970752 .... <zRndD3D_Init.cpp,#879>
00:48 Info:  5 X:     XD3D_InitPort: caps - free videomem:58679296 .... <zRndD3D_Init.cpp,#880>
00:48 Info:  5 X:     Vid_SetScreenMode: Switched to windowed mode   ... .... <zRndD3D_Vid.cpp,#580>
00:48 Info:  5 X:     Vid_SetScreenMode: No changes ... .... <zRndD3D_Vid.cpp,#559>
00:57 Info:  3 B:     ---------- 95% ---------- .... <zViewProgressbar.cpp,#142>

00:48 Fault: 0 U:     OBJ: Script-object PC_mage_di not found ! Please correct instancename ! .... <oWorld.cpp,#309> т.е. он падает с этой ошибкой. Что бы это могло значить? Какой Мильтен? В скриптах холодной полночи его и в помине нет, но тем не менее компилируется! А здесь ему с какой стати быть?
Ответить с цитированием
Старый 18.09.2006, 08:59   #1460
Xentar

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Разобрался с проблемой. Дело было в том, что я использовал ини-файл от другого мода, а там было прописано: player=PC_MAGE_DI. Вот и всех делов-то ;) .
Ответить с цитированием
Старый 25.09.2006, 18:46   #1461
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Подскажите пожалуйста что за ....,. *:(
Данная ошибка проявилась в файле "bad_who.d", мода "GLOBAL_MOD".
При использовании обеих версий VGS 3.0 и 3.10.

Декомпилятор на эту ошибку пишет следующее:

"ОШИБКА": Нельзя преобразовать тип instance в int.
* * *slf заменено на "9010".
* * *
"ОПИСАНИЕ ОШИБОК В VGS'e":
*Саnnot convert from type <type1> to <type2> - значение переменной типа type1 нельзя преобразовать к типу переменной type2. Необходимо использовать одинаковые типы.
* * * * * *
(Прим.Функция приведена полностью, как есть).

func void b_assigndunkelmagiertalk(var C_Npc slf)
{
* * *if((slf.id < 9010) && (slf.id > slf)) "<= здесь ошибка!"
* * *{
* * * * * *bad_who.npc = Hlp_GetInstanceID(slf);
* * * * * *bad_steinkreise.npc = Hlp_GetInstanceID(slf);
* * *};
};
* * *
PS. Данная ошибка обнаружена при декомпилировании дат-файла. Знающие люди подскажите плиз.
* * *
Отправить личное сообщение для Ответить с цитированием
Старый 25.09.2006, 18:58   #1462
Killer-XXX
Строители Миртаны
 
 
Регистрация: 19.06.2004
Адрес: г. Белая Калитва.
Сообщений: 204
Killer-XXX вне форума

По умолчанию Re: М: Скриптинг в Готике

2MaGoth:
Вроде бы надо заменить slf на self.
Ответить с цитированием
Старый 25.09.2006, 19:24   #1463
Xentar

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2MaGoth:
if((slf.id < 9010) && (slf.id >
<здесь должен быть минимально возможный ай ди для туманных магов>
)) "<= здесь ошибка!"
Вероятно их идентификаторы принадлежат определенному интервалу. Нужно наити мага с минимальным идентификатором и вписать его идентификатор сюда.

ЗЫ А еще лучше определять принадлежность по гильдии, как это традиционно делается в Готикею
Ответить с цитированием
Старый 26.09.2006, 07:47   #1464
Wirtus

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Помогите мне разобраться с нависшей проблемой!
Как подключить субтитры второстепенных диалогов в Готике 2? Такие, например, как в 1-й помните, красным цветом снизу...фразы, отрывки диалогов персонажей, выкрики...
Может надо как-то преобразовать ini-файл или еще что-то?
Ответить с цитированием
Старый 26.09.2006, 11:27   #1465
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2MaGoth:
func void b_assigndunkelmagiertalk(var C_Npc slf)
{
    if((slf.id < 9010) && (slf.id > slf)) "<= здесь ошибка!"
    {
          bad_who.npc = Hlp_GetInstanceID(slf);
          bad_steinkreise.npc = Hlp_GetInstanceID(slf);
    };
};
Здесь допущена ошибка в датнике, исходный код был неправильно записан. Нужно сравнивать одинаковые типы, возможны два варианта: сравнение инстанций (slf и "другого НПС") или сравнение идентификаторов НПС (Hlp_GetInstanceID(slf) и Hlp_GetInstanceID("другой НПС")), второй вариант использовать предпочтительнее. В исходных скриптах в сравнение была взята одна переменная с первого варианта, а другая переменная со второго варианта, декомпилятор с этм разобраться не смог, вот и выдал, вместо имен инстанций число 9010. Как исправить сказать затрудняюсь, нужно анализировать скрипты.

2Killer-XXX:
Вроде бы надо заменить slf на self
А вот это никакого отношения к ошибке не имеет, и это делать не нужно!!!  :)
Ответить с цитированием
Старый 26.09.2006, 16:33   #1466
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Цитата:
Сообщение от Vam link=board=gothic&t=1105030050&start=1450#1464 date=09/26/06, в 11:27:13
2MaGoth:
Как исправить сказать затрудняюсь, нужно анализировать скрипты.
Я так понял мне что нужно оптправить dat и ou, тебе на ящик? Верно?
Отправить личное сообщение для Ответить с цитированием
Старый 27.09.2006, 10:24   #1467
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2MaGoth:
Я так понял мне что нужно оптправить dat и ou, тебе на ящик? Верно?
Ты хочешь сказать, что я буду анализировать скрипты и искать логическую ошибку в сопоставлении типов? Нет, этого делать я не собираюсь. Могу только дать совет как правильно исправить, а остальное за тобой.
Декомпилируешь, ничего не правишь, компилируешь, получаешь эту ошибку и исправляешь таким образом:
if((slf < 9010) && (slf > slf))
Красный slf - как японял поставлен тобой, а не декомпилятором, на этом месте декомпилятор должен был поставить целое число, его и надо здесь оставить. Далее компилируешь Спейсером или экзешником Готики, зетем декомпилируешь, вместо 9010 здесь будет стоять имя инстанции нужного НПС. Далее заменяшь это условие на следующее:
if((Hlp_GetInstanceID(slf) < Hlp_GetInstanceID("имя, которое выдал GS")) && (Hlp_GetInstanceID(slf) > Hlp_GetInstanceID("имя, которое выдал GS"))), затем компилируешь без ошибок и всё...
Ответить с цитированием
Старый 27.09.2006, 16:25   #1468
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Цитата:
Сообщение от Vam link=board=gothic&t=1105030050&start=1450#1466 date=09/27/06, в 10:24:27
2MaGoth:
Ты хочешь сказать, что я буду анализировать скрипты и искать логическую ошибку в сопоставлении типов?
Значит я тебя не верно понял, ::)
Могу только дать совет как правильно исправить, а остальное за тобой.
А вот за это, большое спасибо. ;)
if((slf < 9010) && (slf > slf))
Красный slf - как японял поставлен тобой, а не декомпилятором.
Да, именно так, обозначил ошибку :)
- Постараюсь, сделать все как ты написал, ;D

Редактировалось:
Извине за PS. Темку спутал. :-[ PS. Мною удален.

Отправить личное сообщение для Ответить с цитированием
Старый 27.09.2006, 22:43   #1469
finch

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Wirtus:
Помогите мне разобраться с нависшей проблемой!
Заходишь в Gothic.ini, ищешь строки subTitlesAmbient и subTitlesNoise, меняешь значение на 1.
Ответить с цитированием
Старый 12.10.2006, 17:08   #1470
Riven

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Объясните, почему если изменять в функциях AI_Output текст, расположенный после двойного слеша, то после компиляции (GothicSourcer 3.10) некоторые измененные субтитры отображаются в игре, а некоторые все равно остаются прежними? ::)
Ответить с цитированием
Старый 12.10.2006, 17:16   #1471
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Цитата:
Сообщение от Riven link=board=gothic&t=1105030050&start=1450#1469 date=10/12/06, в 17:08:01
Объясните, почему если изменять в функциях AI_Output текст, расположенный после двойного слеша, то после компиляции (GothicSourcer 3.10) некоторые измененные субтитры отображаются в игре, а некоторые все равно остаются прежними? ::)
Знаешь, я вот например нихрена не понял :o что у тебя отображается, а что нет.
Пример приведи и распиши толком, попробую объяснить. ;)

PS. Ты точно только текст изменял после двух этих символов "//", больше ничего? Так как все должно работать, если ты делал именно так как писал. ;)
Отправить личное сообщение для Ответить с цитированием
Старый 12.10.2006, 17:35   #1472
Vam

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2Riven:
Объясните, почему если изменять в функциях AI_Output текст, расположенный после двойного слеша, то после компиляции (GothicSourcer 3.10) некоторые измененные субтитры отображаются в игре, а некоторые все равно остаются прежними?
Игру надо обязательно начинать с нуля.
Ответить с цитированием
Старый 12.10.2006, 21:01   #1473
basilio58

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Цитата:
Сообщение от Riven link=board=gothic&t=1105030050&start=1450#1469 date=10/12/06, в 17:08:01
Объясните, почему если изменять в функциях AI_Output текст, расположенный после двойного слеша, то после компиляции (GothicSourcer 3.10) некоторые измененные субтитры отображаются в игре, а некоторые все равно остаются прежними? ::)
Все правильно, отображаются у тебя те, которые ПОСЛЕ сэйва появляются. Те, что были ДО сэйва, НЕ меняются.
Ты же грузил с сэйва игру?
Ответить с цитированием
Старый 13.10.2006, 10:41   #1474
Riven

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Похоже разобрался. Я изменял скрипт в файле DIA_PC_Thief.d
А именно: делал копию диалога с Диего (из самого начала игры) instance Info_Diego_Brief(C_Info), переименовывал функции диалога и изменял текст субтитров.

instance Info_Diego_Brief_New(C_Info)
{
* * *npc = PC_Thief;
* * *nr = 9;
* * *condition = Info_Diego_Brief_Condition_New;
* * *information = Info_Diego_Brief_Info_New;
* * *permanent = 1;
* * *description = "У меня есть письмо.";
};


func int Info_Diego_Brief_Condition_New()
{
* * *if(Kapitel < 2)
* * *{
* * * * * *return TRUE;
* * *};
};

func void Info_Diego_Brief_Info_New()
{
* * *AI_Output(hero,self,"Info_Diego_Brief_15_00"); * * *//Я должен передать письмо одному из магов.
* * *AI_Output(self,hero,"Info_Diego_Brief_11_01"); * * *//Письмо...?
* * *AI_Output(hero,self,"Info_Diego_Brief_15_02"); * * *//Мне его дали прежде, чем стражники сбросили меня со скалы.
* * *AI_Output(self,hero,"Info_Diego_Brief_11_03"); * * *//Тебе повезло, что я не могу теперь иметь дело с магами...
* * *AI_Output(self,hero,"Info_Diego_Brief_11_04"); * * *//Ведь это прекрасная возможность неплохо устроиться в этом месте.
* * *AI_Output(self,hero,"Info_Diego_Brief_11_05"); * * *//Не советую рассказывать об этом письме каждому встречному...
* * *AI_Output(hero,self,"Info_Diego_Brief_15_06"); * * *//Но как...?
* * *AI_Output(self,hero,"Info_Diego_Brief_11_07"); * * *//...потому что это может закончиться для тебя очень плохо.
};


2Vam:
Видимо при компиляции создается таблица соответствий между, например, идентификатором Info_Diego_Brief_15_00 и текстом субтитра. И если использовать данный идентификатор в тексте скрипта более одного раза, то соответствие уже не будет однозначным.

p.s.: GothicSourcer очень понравился :)
хотя, поначалу озадачило сообщение о наличии ошибки "функция должна возвращать значение" в конструкциях вида

func int func1()
{
* *if(условие)
* *{
* * *return 1;
* *}
* *else
* *{
* * *return 0;
* *};
};


хотя, действительно, можно ли говорить в данном примере об изяществе скрипта.. *;)
Ответить с цитированием
Старый 13.10.2006, 17:55   #1475
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Riven, Сегодня в 11:41
Видимо при компиляции создается таблица соответствий между, например, идентификатором Info_Diego_Brief_15_00 и текстом субтитра. И если использовать данный идентификатор в тексте скрипта более одного раза, то соответствие уже не будет однозначным.
Нет, это не верно, никакой таблицы не создается, там реализуется все проще. ;) Первые две цифры пример: "15_00" - это голос твоего персонажа, персонажа а вторые две - это номер файла.
Вот по этому принципу все и воспроизводится. ;D

PS. И главное, даже при отсутствии звуковых файлов диалогов, анимация речи будет воспроизводится движком. ;) А последовательность нумерации влияет только на отображение информации. Вот собсно и все. :)
Отправить личное сообщение для Ответить с цитированием
Старый 17.10.2006, 14:30   #1476
XyylPex

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

Можно ли запустить спейсер в аддоне от акеллы?Если нет,то выложите кто-нибудь немецкий Gothic2.exe v1.28 or v1.29 or 1.30.Буду очень признателен.
PS:Все это нужно для скриптинга.:)
Ответить с цитированием
Старый 17.10.2006, 19:38   #1477
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Готы!
Помогите разобраться с этой проблемой:
Я ни как не могу найти переменную которая содержит на протяжении игры значение Глав. Т.е. 1, 2... 6.
Почитав уроки Вама, и посмотрев в скриптах пришел к выводу, что это должна быть Kapitel, но она ни чего не содержит в себе, т.к. компилится все но в игре никуя не происходит. >:(
Я уже перепробывал все, что ток мона было, реализовывал это дело так:

[spoiler]
Код:
func int KapitelDementor(){ * * *if(Kapitel == 0) * * *{ * * * * * *Gl = 0; * * * * * *return TRUE; * * *}; * * *if(Kapitel == 1) * * *{ * * * * * *Gl = 1; * * * * * *return TRUE; * * *}; * * *if(Kapitel == 2) * * *{ * * * * * *Gl = 2; * * * * * *return TRUE; * * *}; * * *if(Kapitel == 3) * * *{ * * * * * *Gl = 3; * * * * * *return TRUE; * * *}; * * *if(Kapitel == 4) * * *{ * * * * * *Gl = 4; * * * * * *return TRUE; * * *}; * * *if(Kapitel == 5) * * *{ * * * * * *Gl = 5; * * * * * *return TRUE; * * *}; * * *if(Kapitel == 6) * * *{ * * * * * *Gl = 6; * * * * * *return TRUE; * * *}; * * *return FALSE;};func void KapitelDementor(){ * * *if(KapitelDementor == TRUE) && (Gl == 0) * * *{ * * * * * *B_SetAttributesToChapterDementor(self,0); * * *}; * * *if(KapitelDementor == TRUE) && (Gl == 1) * * *{ * * * * * *B_SetAttributesToChapterDementor(self,1); * * *}; * * *if(KapitelDementor == TRUE) && (Gl == 2) * * *{ * * * * * *B_SetAttributesToChapterDementor(self,2); * * *}; * * *if(KapitelDementor == TRUE) && (Gl == 3) * * *{ * * * * * *B_SetAttributesToChapterDementor(self,3); * * *}; * * *if(KapitelDementor == TRUE) && (Gl == 4) * * *{ * * * * * *B_SetAttributesToChapterDementor(self,4); * * *}; * * *if(KapitelDementor == TRUE) && (Gl == 5) * * *{ * * * * * *B_SetAttributesToChapterDementor(self,5); * * *}; * * *if(KapitelDementor == TRUE) && (Gl == 6) * * *{ * * * * * *B_SetAttributesToChapterDementor(self,6); * * *};};func int B_ChapterDementor(var int kapitChapt){ * * *if(kapitChapt == 0) * * *{ * * * * * *Gl = 0; * * *}; * * *if(kapitChapt == 1) * * *{ * * * * * *Gl = 1; * * *}; * * *if(kapitChapt == 2) * * *{ * * * * * *Gl = 2; * * *}; * * *if(kapitChapt == 3) * * *{ * * * * * *Gl = 3; * * *}; * * *if(kapitChapt == 4) * * *{ * * * * * *Gl = 4; * * *}; * * *if(kapitChapt == 5) * * *{ * * * * * *Gl = 5; * * * * * * * * *}; * * *if(kapitChapt == 6) * * *{ * * * * * *Gl = 6; * * *}; * * *return Gl;};func void B_SetAttributesToChapterDementor(var C_Npc slf,var int kapGl){ * * *Npc_SetTalentSkill(slf,NPC_TALENT_MAGE,6); * * *if(kapGl == 0) * * *{ * * * * * *slf.level = 25; * * * * * *slf.attribute[ATR_STRENGTH] = 100; * * * * * *slf.aivar[REAL_STRENGTH] = 100; * * * * * *slf.attribute[ATR_DEXTERITY] = 100; * * * * * *slf.aivar[REAL_DEXTERITY] = 100; * * * * * *slf.attribute[ATR_MANA_MAX] = 800; * * * * * *slf.aivar[REAL_MANA_MAX] = 800; * * * * * *slf.attribute[ATR_MANA] = 800; * * * * * *slf.attribute[ATR_HITPOINTS_MAX] = 300; * * * * * *slf.attribute[ATR_HITPOINTS] = 300; * * *}; * * *if(kapGl == 1) * * *{ * * * * * *slf.level = 25; * * * * * *slf.attribute[ATR_STRENGTH] = 100; * * * * * *slf.aivar[REAL_STRENGTH] = 100; * * * * * *slf.attribute[ATR_DEXTERITY] = 100; * * * * * *slf.aivar[REAL_DEXTERITY] = 100; * * * * * *slf.attribute[ATR_MANA_MAX] = 800; * * * * * *slf.aivar[REAL_MANA_MAX] = 800; * * * * * *slf.attribute[ATR_MANA] = 800; * * * * * *slf.attribute[ATR_HITPOINTS_MAX] = 300; * * * * * *slf.attribute[ATR_HITPOINTS] = 300; * * *}; * * *if(kapGl == 2) * * *{ * * * * * *slf.level = 25; * * * * * *slf.attribute[ATR_STRENGTH] = 100; * * * * * *slf.aivar[REAL_STRENGTH] = 100; * * * * * *slf.attribute[ATR_DEXTERITY] = 100; * * * * * *slf.aivar[REAL_DEXTERITY] = 100; * * * * * *slf.attribute[ATR_MANA_MAX] = 800; * * * * * *slf.aivar[REAL_MANA_MAX] = 800; * * * * * *slf.attribute[ATR_MANA] = 800; * * * * * *slf.attribute[ATR_HITPOINTS_MAX] = 300; * * * * * *slf.attribute[ATR_HITPOINTS] = 300; * * *}; * * *if(kapGl == 3) * * *{ * * *}; * * *if(kapGl == 4) * * *{ * * *}; * * *if(kapGl == 5) * * *{ * * *}; * * *if(kapGl >= 6) * * *{ * * *}; * * *slf.exp = 700 * ((slf.level + 1) / 2) * (slf.level + 1); * * *slf.exp_next = 700 * ((slf.level + 2) / 2) * (slf.level + 1);};
[/spoiler]

С третьей и до 6 Главы, характеристики статов Дементоров разнятся, их не указываю, так-как потом не интересно играть будет.(Имхо) ;)

Да и на эту проблему они ни какого влияния не оказывают. ::)

Так же, прописывал в диалоги Ксардасу, Переменную "Glava",
которой прописывал значение равное наступившей Главы, в том месте скриптов, который отвечает за наступление новой Главы.
И у всех Npс которые переводят в Главы.
И эту переменную ставил в условие. Но все равно никуя не выходит.(Данная реализация делалась отдельно от описываемой мною, я ее не приводил так-как скрипты километровые). Я перепробывал вариантов 60-70. И ни чего. :'(

Самое странное в том, что отображается только характеристики 3 главы, причем парамметры 3 Главы измененной Т.е. я изменил статы в условии (kap == 3), а они отображаются будто движок их откудато берет. *:'

Изменял все именные файлы Дементоров, вернее строку в них, которая описывает статы непесей.
Это файлы DMT_1200_Dementor.d, и т.д., до конца именных, а так-же в файле DMT_DementorAmbient.d который описывает статы всех остальных Дементоров.

При тестировании в Главы скакал при помощи дяди марвина, и перца по имени SH. :(
Не работает. прописывает статы, которые я давно уже изменил. :o :'(

Моя цель, реализовать статы Дементоров, в зависимости от Главы, а на данный момент они в Готе жестко привязаны, к Скрипту. т.е.:

Если в функции инициализации стоит цифра 3 B_SetAttributesToChapterDementor(self,3) то из какой Главы не вызови Дементора, у него статы будут равными условию if(Kap == 3),(В оригинальных скриптах). :(

Жду помощи...
=================
Это проблема №1, еще три есть, но об этом позже. ;)
Отправить личное сообщение для Ответить с цитированием
Старый 18.10.2006, 01:19   #1478
B_Wolf

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2ХуулРех:
Можно ли запустить спейсер в аддоне от акеллы?
Почему бы и нет, это ведь официальная ло$ализация :)
Ставь G2MDK и вперед.
http://www.myrtana.ru/gothic2_add-on/mods.php
2ХуулРех:
Если нет,то выложите кто-нибудь немецкий Gothic2.exe v1.28 or v1.29 or 1.30.Буду очень признателен.
PS:Все это нужно для скриптинга.
А какая связь с экзешником от оригинальной Г2 и скриптингом?
Ответить с цитированием
Старый 18.10.2006, 09:05   #1479
Xentar

AGFC
Гость
 
Сообщений: n/a

По умолчанию Re: М: Скриптинг в Готике

2MaGoth:
Chapter попробуй!
Ответить с цитированием
Старый 18.10.2006, 16:43   #1480
MaGoth
A.G.F.C.
  Аватар для MaGoth
 
Регистрация: 04.09.2006
Сообщений: 20
MaGoth вне форума

По умолчанию Re: М: Скриптинг в Готике

Цитата:
Сообщение от SubZero[X
link=board=gothic&t=1105030050&start=1475#1478 date=10/18/06, в 09:05:59]
2MaGoth:
Chapter попробуй!
Какой-такой "Chapter" в скриптах такой переменной нет. :o
Смысл, в ее написании я не вижу т.к. пробывал уже ранее. :(
Но все равно пасиб, за ответ. ;)

Vam!
Подскажи пожалуйста, мона ли, отвязать Дементеров aka Ищущих, от жесткой привязке к Главе, в функции прописи их статов? :)
Реально ли, это сделать вообще?
HELLP.... * HELLP ;D
Отправить личное сообщение для Ответить с цитированием
Страница 37 из 65 « Первая 273031323334353637 3839404142434447 Последняя »


Здесь присутствуют: 7 (пользователей: 0 , гостей: 7)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе

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


Текущее время: 17:03. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot

AGFC: Valley of Gothic © 2004-2022

Яндекс.Метрика