Важно Форуму RPGRUSSIA 15 лет!
  • 2.386
  • 19
Друзья, сегодня нашему форуму исполняется 15 лет! Кажется, только вчера мы открывали первые разделы, спорили о правилах и радовались каждому новому участнику. Но годы пролетели - а мы всё здесь, и...
Новости Path of Exile 2: Патч 0.2.0 «Dawn of the Hunt» - краткое описание
  • 1.350
  • 0
Вчера вечером, в 22.00 по МСК, в прямом эфире вышла презентация по будущему патчу 0.2.0. В целом, игроки ждали нового класса и ребаланса существующих умений, но то что выкатили GGG на публику...
Новости Gothic 1 Remake - Demo (Nyras Prologue)
  • 4.861
  • 2
Ну что, заключённые, готовы к встрече с колонией? Мир, где каждый встречный мечтает вас зарезать за кусок хлеба, а единственный закон - сила. Вас ждёт совершенно новый пролог к легендарной...
Новости Большое интервью с HotA Crew - часть 2
  • 3.081
  • 0
HotA Crew о Кронверке и будущих обновлениях (часть 2) Какие герои будут вести армии Кронверка? Герои-воины зовутся Вожди, маги — Старейшины. Их параметры и способности подчеркнут сильные стороны...

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

WoOliN

Герой
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
5.670
Реакции
3.455
Баллы
711
Лучшие ответы
422
Уважаемые ... у нуба (то есть меня) назрел новый вопрос.

Есть стандартная функция взлома замков
func void G_PickLock(var int bSuccess,var int bBrokenOpen)

bBrokenOpen - неправильный поворот отмычки, при котором отмычка может сломаться (в Г2НВ при ловкости ниже 100).

Я хотел бы изменить 100 ловкости допустим на 200.
Подскажите где происходит расчёт влияния ловкости для этого момента?
 

Gratt

Труженик
Модостроитель
Участник форума
Регистрация
10 Фев 2015
Сообщения
357
Реакции
211
Баллы
84
Лучшие ответы
0
Уважаемые ... у нуба (то есть меня) назрел новый вопрос.

Есть стандартная функция взлома замков
func void G_PickLock(var int bSuccess,var int bBrokenOpen)

bBrokenOpen - неправильный поворот отмычки, при котором отмычка может сломаться (в Г2НВ при ловкости ниже 100).

Я хотел бы изменить 100 ловкости допустим на 200.
Подскажите где происходит расчёт влияния ловкости для этого момента?

движок, класс oCMobLockable, метод Interact.
 

WoOliN

Герой
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
5.670
Реакции
3.455
Баллы
711
Лучшие ответы
422
В этом я полный ноль.

А возможно вытащить из движка этот скрипт и показать его ?
Хочу глянуть как именно выглядит зависимость шанса поломки от ловкости ... может удастся усложнить взлом в Соурсере.
 

Alex1

Избранник богов
Команда форума
Модератор раздела
Редактор раздела
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
22 Янв 2014
Сообщения
11.417
Реакции
5.971
Баллы
976
Лучшие ответы
418
@WoOliN, посмотри у Диммелла в СнК1.1
Он там добавил массив счетчиков, считающих неудачные повороты. Дополнительно "терял" отмычки, поставил выведение навыка взлома в процентах (макс. при 25000 поворотах).
И еще что-то там было на этом массиве навешано по отмычкам.
 

Gratt

Труженик
Модостроитель
Участник форума
Регистрация
10 Фев 2015
Сообщения
357
Реакции
211
Баллы
84
Лучшие ответы
0
А возможно вытащить из движка и показать как именно выглядит зависимость шанса поломки от ловкости ?
там строк на 70 выходит..
если чисто зависимость, то примерно так:
Код:
int nPickLock = parser->GetIndex( "G_PICKLOCK" );
// ...
int nPerc = (rand() % 100) + 1; // 1 - 100
if  ( nPerc > pNpc->GetAttribute(NPC_ATR_DEXTERITY))
{
	parser->SetInstance( "SELF", this );
	parser->CallFunc(nPickLock, FALSE, TRUE ); // вызов функции скрипта с передачей аргументов

	oCItem* pItem = pNpc->IsInInv("ITKE_LOCKPICK",1);
	if ( pItem )
	{
		pItem = pNpc->RemoveFromInv("ITKE_LOCKPICK",1);
		ogame->GetWorld()->RemoveVob( pItem );
	}
	pItem = pNpc->IsInInv("ITKE_LOCKPICK",1);
	if (!pItem) 
	{
		StopInteraction(pNpc);
	}
	nCodeLength = 0;
}
else
{
	parser->SetInstance("SELF", this);
	parser->CallFunc(nPickLock, FALSE, FALSE);
}
// ...
 

WoOliN

Герой
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
5.670
Реакции
3.455
Баллы
711
Лучшие ответы
422
Пожалуй легче всего будет всунуть в обычные скрипты ещё один рандомайзер на ловкость, который будет временами изымать отмычки при ловкости выше 100.
И снабдить это каким-то уместным уведомлением.
Всем спасибо )
 

WoOliN

Герой
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
5.670
Реакции
3.455
Баллы
711
Лучшие ответы
422
И ещё один вопрос
- есть ли какая-то функция или что-то вроде BB-кода для принудительного центрирования надписей в описании предмета ?

Безымянный.JPG
Вот так же, как расположено название - можно ли именно в скриптах центрировать допустим надпись *2-ручное* ?

text[0] = "2-ручное"; - для подобного типа надписей
Чтобы не ставить тонну пробелов перед самим текстом )
 

Alex1

Избранник богов
Команда форума
Модератор раздела
Редактор раздела
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
22 Янв 2014
Сообщения
11.417
Реакции
5.971
Баллы
976
Лучшие ответы
418
Можно такую функцию сделать самому, подобрать в ней один раз пробелы. И все свойства выводить через нее (но придется в каждом переделанном предмете менять строчки). Цифры подхватываются. Если цифра равна нулю, описания этого свойства нет. В игре получится что-то такое:
PIC40_cr.jpg

PIC41_cr.jpg


Там на фоне пробивается 70/100 - это относится к выносливости.
 

WoOliN

Герой
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
5 Сен 2012
Сообщения
5.670
Реакции
3.455
Баллы
711
Лучшие ответы
422
Пробелы - весьма геморное дело.

Максимальная длина строки например какая ?

Спец-символы для текста есть какие-то вообще ?
ґ ґ - вот это например что за символы и какие есть ещё ?


И для ручного переноса строки в записях дневника тоже ничего нет ?

Для ручной смены шрифта отдельных строк в описании предмета ?
 

Alex1

Избранник богов
Команда форума
Модератор раздела
Редактор раздела
Модостроитель
 
Почётный пользователь
Участник форума
Регистрация
22 Янв 2014
Сообщения
11.417
Реакции
5.971
Баллы
976
Лучшие ответы
418
Максимальная длина строки зависит от разрешения монитора и шрифта, с которым выводится сообщение. Игра умеет переносить строчки только в записках/письмах/книгах. Все, что не вместилось - просто уйдет за границу видимости.

О спецсимволах не в курсе. Но видел несколько раз, как немецкие буквы с умляутами типа й и ё передавались в скриптах русскими буквами. Это баг при декомпиляции. Может, и ґ из той же серии.

Шрифт в строчках описания тот же, что и везде. Не получится одну строчку вывести одним шрифтом, другую другим. Без Икаруса или АСТа.
 
Сверху Снизу