• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Вопросы по скриптингу

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
  • Первое сообщение
  • #1
Прежде чем задавать вопросы, ознакомьтесь с документацией..
1) Читать онлайн
2) Архив с офлайн-версией(chm) во вложении
 

Вложения

  • Vam_tutor.rar
    171,6 KB · Просмотры: 574
Последнее редактирование модератором:

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
а мы тут при чем?
 

tem1tr1us

Участник форума
Регистрация
29 Май 2015
Сообщения
6
Благодарности
0
Баллы
150
Просто спросил, может сталкивался с этим кто. Возможность исправить данное дело

Замечает ошибки к отсутствию return у интов. Вручную по ситуации выставлять все значения придется? Или есть другой способ проигнорировать данные не смертельные ошибки?
 
Последнее редактирование модератором:

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
Это не ошибки, а предупреждения, что функция должна возвращать значение. Ошибка будет если она ничего не возвращает.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Это не ошибки, а предупреждения, что функция должна возвращать значение. Ошибка будет если она ничего не возвращает.
Смотря где и как, в некоторых случая это будет ошибкой если проставлен неправильный тип для функции, инт вместо войда.. В оригиналах такой бодяги много, надо смотреть каждую функцию и понимать как она работает, ну и исправлять если что указано неверно, или прописывать недостающие ретурны..
 

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
ПО умолчанию всегда возвращается 0. Просто ГС не понимает этого. По началу тоже парился с этим. Потом забил и ничего не случилось.

Как пример...функция условий диалога.

func int DIA_Biff_WASHIERIMTAL_Condition()
{
if(Npc_KnowsInfo(other,DIA_Biff_HALLO) && (MIS_ReadyforChapter6 == FALSE))
{
return TRUE;
};
};

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

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
При невыполнении условий у нас нет четкого указания, что должна возвращать функция. Но при этом ошибки тут нет.
Ну я же на писал тут все по ситуации, в патчах Димуса для Г2 такого навалом что правилось, и ретурны, и типы функций..
А ошибка есть, если прописан инт то функция должна/обязана возвращать значение, какое оно будет не суть важно. Гора мелких ошибок порождает большие баги, и где они вылезут потом не известно..
 

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
Ну я же на писал тут все по ситуации, в патчах Димуса для Г2 такого навалом что правилось, и ретурны, и типы функций..
А ошибка есть, если прописан инт то функция должна/обязана возвращать значение, какое оно будет не суть важно. Гора мелких ошибок порождает большие баги, и где они вылезут потом не известно..

Просто таких функций в игре тысячи. По правильному да, пофиксить бы надо. Но не столь критично.
 

tem1tr1us

Участник форума
Регистрация
29 Май 2015
Сообщения
6
Благодарности
0
Баллы
150
Ну а проигнорировать можно как-то? Потому что скрипты я же достаю из мода и гляжу что да как сделано, учусь грубо говоря. Пакую обратно отредактировав парочку вещей и прочее и вылазит 25 ошибок и куча предупреждений
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Ну а проигнорировать можно как-то? Потому что скрипты я же достаю из мода и гляжу что да как сделано, учусь грубо говоря. Пакую обратно отредактировав парочку вещей и прочее и вылазит 25 ошибок и куча предупреждений
Ошибки надо править, предупреждения можно игнорить..
 

tem1tr1us

Участник форума
Регистрация
29 Май 2015
Сообщения
6
Благодарности
0
Баллы
150
А кратенько можно где-то глянуть, где нужно ставить return true, а где false?
 
Последнее редактирование:

Vlad_Torop

Участник форума
Регистрация
2 Май 2014
Сообщения
872
Благодарности
501
Баллы
245
А кратенько можно где-то глянуть, где нужно ставить return true, а где false?
Можешь глянуть в декомпилированных скриптах. https://dl.worldofplayers.ru/games/gothic/modmaking/scripts/
К примеру,вторая сверху является болванкой от Нефариуса с комментариями.Может что-то прояснит.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
Можешь глянуть в декомпилированных скриптах. https://dl.worldofplayers.ru/games/gothic/modmaking/scripts/
К примеру,вторая сверху является болванкой от Нефариуса с комментариями.Может что-то прояснит.
Эта ересь ничего не прояснит, смотри исходники патчей Димуса в соответствующих темах..
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
если функция имеет любой тип кроме void, значит она создана чтобы возвращать значения и точка. отсутствие return это грубая ошибка.

А кратенько можно где-то глянуть, где нужно ставить return true, а где false?
нет, не можно. смотри логику по иерархии обращений к функции либо вкуривай их смысл.
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
если функция имеет любой тип кроме void, значит она создана чтобы возвращать значения и точка. отсутствие return это грубая ошибка.
В оригиналах были ошибки в типах функций, т.е. изначально задан неверный тип у функции, как правило это инт, и никаких ретурнов там быть не должно, ибо функция должна быть войд. Т.е. помимо ретурнов, надо смотреть и саму функцию, должна ли она вообще что-то возвращать или нет. И в этом случае надо менять тип функции, т.е. это уже другая ошибка...
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
вот именно что это ошибки и их надо править
 

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
И так для каждого мода :D
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.367
Благодарности
7.815
Баллы
995
И так для каждого мода :D
Ну да, просто надо сделать одну нормальную чистую болванку скриптов оригинала(ов) как базу, тогда "и так для каждого мода" не потребуется.. ;)
+ к этому не забыть добавить все изменяемые переопределяемые функции и переменных в файлах Сурсера. Тогда компил и декомпил любых модов всегда будет безбажным, исключения костыли Троллейбусов и лагодромов.. :D
 

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
в идеале нужно взять скрипты из г2мдк, перевести на рус, ибо декомпилы все эти это дрянь
 
Сверху Снизу