Базовое руководство по скриптам движка Storm

Корсары ГПК, Корсары КС

Скрипты на движке "Storm"
Аватара пользователя

Автор темы
LEOPARD
Сообщения: 1000
Зарегистрирован: 18 сен 2016, 19:48
Благодарил (а): 108 раз
Поблагодарили: 242 раза

Базовое руководство по скриптам движка Storm

Сообщение LEOPARD » 07 дек 2017, 12:49

Мощное руководство!
Надеюсъ, что в скором времени начнут появляться скриптеры :)



Аватара пользователя

Korsar1234
Сообщения: 42
Зарегистрирован: 12 ноя 2017, 07:05
Благодарил (а): 1 раз

[scripts] Корсары: ГПК 1.3.2 AT_R

Сообщение Korsar1234 » 07 дек 2017, 17:21

1.Можно ли выставить коэффициент зарплаты команды и офицеров меньше 0.5?
2. Возможна ли замена ЗП на долю добычи? ЗП отсутствует, есть только доля, которая выдается раз в месяц.
В случае невыдачи,и отсутствия добычи резко падает мораль, и лояльность офицеров.
3. Хотелось бы, чтобы перк "Спасение на шлюпке" был прописан у всех офицеров изначально. Но шанс того, что компаньон спасается, зависит от того, как был потоплен корабль - абордаж - 0,1 ; пушечный залп - 0,7 ; брандер - 1
4. Как увеличить шанс сдачи корабля? А то абордируешь бриг из торговой эскадры на фрегате, а он не сдается.
5. Как уменьшить стоимость аренды склада на Бермудах? 50к - слишком много.

Аватара пользователя

Rasteador
Сообщения: 30
Зарегистрирован: 13 ноя 2017, 21:28
Благодарил (а): 2 раза
Поблагодарили: 14 раз

Базовое руководство по скриптам движка Storm

Сообщение Rasteador » 08 дек 2017, 06:27

Korsar1234 писал(а):
07 дек 2017, 17:21
1.Можно ли выставить коэффициент зарплаты команды и офицеров меньше 0.5?
2. Возможна ли замена ЗП на долю добычи? ЗП отсутствует, есть только доля, которая выдается раз в месяц.
В случае невыдачи,и отсутствия добычи резко падает мораль, и лояльность офицеров.
3. Хотелось бы, чтобы перк "Спасение на шлюпке" был прописан у всех офицеров изначально. Но шанс того, что компаньон спасается, зависит от того, как был потоплен корабль - абордаж - 0,1 ; пушечный залп - 0,7 ; брандер - 1
4. Как увеличить шанс сдачи корабля? А то абордируешь бриг из торговой эскадры на фрегате, а он не сдается.
5. Как уменьшить стоимость аренды склада на Бермудах? 50к - слишком много.
Неправильный подход к программированию. Нужно ставить цель так, чтобы попытаться самостоятельно найти решение этих задач, а не получать сразу готовые варианты кода - это не даст знаний и умений. Только так можно развиваться в этом направлении, а уже в процессе я отвечу на вопросы, помогу решить какие-то проблемы, которые будут возникать.
Love and respect

Аватара пользователя

Автор темы
LEOPARD
Сообщения: 1000
Зарегистрирован: 18 сен 2016, 19:48
Благодарил (а): 108 раз
Поблагодарили: 242 раза

Базовое руководство по скриптам движка Storm

Сообщение LEOPARD » 17 дек 2017, 00:51

Korsar1234 писал(а):
07 дек 2017, 17:21
Как увеличить шанс сдачи корабля?
По моему, это зависит от навыков: абордаж и авторитет. Чем выше, тем больше шанса на то, что враг сдастся.
Korsar1234 писал(а):
07 дек 2017, 17:21
Как уменьшить стоимость аренды склада на Бермудах? 50к - слишком много.
Поищи поиском по папке program про склад. Зацепки ищи в квестах, а уже оттуда по функциям и найдешь цифру.

Аватара пользователя

Shram94

Базовое руководство по скриптам движка Storm

Сообщение Shram94 » 19 дек 2017, 19:50

А как сделать чтобы пгг в женским полом спавнились в таверне? Просто по крайней мере в под паке персонажи женского пола не появляются в таверне, если у них пол стоит woman, а не man.

Аватара пользователя

Rasteador
Сообщения: 30
Зарегистрирован: 13 ноя 2017, 21:28
Благодарил (а): 2 раза
Поблагодарили: 14 раз

Базовое руководство по скриптам движка Storm

Сообщение Rasteador » 20 дек 2017, 10:59

Shram94 писал(а):
20 дек 2017, 07:14
А как сделать чтобы пгг в женским полом спавнились в таверне?
Файл scripts\PsHero.c, функция void InitPsHeros() - она отвечает за появление ПГГ при старте новой игры.
Shram94 писал(а):
20 дек 2017, 07:14
Просто по крайней мере в под паке персонажи женского пола не появляются в таверне, если у них пол стоит woman, а не man.
В функции, указанной выше, стоит дополнительная проверка на пол создаваемого ПГГ, т.е. скриптами принудительно запрещено появление персонажей женского пола. В 28 строке GetNewMainCharacterParam("sex_" + n) == "man". Достаточно ее убрать, чтобы женские персонажи тоже начали создаваться (также нужно не забыть убрать оператор "И" &&)
Love and respect

Аватара пользователя

Shram94

Базовое руководство по скриптам движка Storm

Сообщение Shram94 » 20 дек 2017, 13:04

Rasteador, а что насчёт диалогов пгг?

Отправлено спустя 4 минуты 6 секунд:
Rasteador, то есть в данной функции оставить лишь startHeroType?

Отправлено спустя 37 минут 15 секунд:
Диалоги там ведь заточены под мужских пгг

Аватара пользователя

Rasteador
Сообщения: 30
Зарегистрирован: 13 ноя 2017, 21:28
Благодарил (а): 2 раза
Поблагодарили: 14 раз

Базовое руководство по скриптам движка Storm

Сообщение Rasteador » 21 дек 2017, 12:08

Shram94 писал(а):
20 дек 2017, 13:46
Rasteador, а что насчёт диалогов пгг?
Диалоги нужно доработать. В файле pgg_dialog.c заменить все фразы/слова мужского рода, относящиеся к ПГГ, на функцию NPCharSexPhrase(NPChar, "для man", "для woman"). Затем в функцию вносятся фразы, которые будут выбираться в зависимости от пола NPC. "для man" - это мужская фраза, "для woman" - женская.

Например:

Код: Выделить всё

Dialog.Text = "Я слышал о тебе много слухов";

// Здесь фраза с глаголом муж. рода. Выводится вне зависимости от пола
Доработать так:

Код: Выделить всё

Dialog.Text = "Я " + NPCharSexPhrase(NPChar, "слышал", "слышала") + " о тебе много слухов";

// В этом случае, если пол man, тогда будет:  "Я слышал о тебе много слухов"
// ... если пол woman:  "Я слышала о тебе много слухов"
Shram94 писал(а):
20 дек 2017, 13:46
Rasteador, то есть в данной функции оставить лишь startHeroType?
n != startHeroType
Love and respect

Аватара пользователя

SPAZ100
Сообщения: 9
Зарегистрирован: 08 янв 2017, 15:17
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Базовое руководство по скриптам движка Storm

Сообщение SPAZ100 » 22 дек 2017, 16:46

Добавил двух абордажников, теперь их 5. Подскажите, как добавить портреты с уровнем жизни и энергии.

Аватара пользователя

Rasteador
Сообщения: 30
Зарегистрирован: 13 ноя 2017, 21:28
Благодарил (а): 2 раза
Поблагодарили: 14 раз

Базовое руководство по скриптам движка Storm

Сообщение Rasteador » 22 дек 2017, 20:18

SPAZ100 писал(а):
22 дек 2017, 16:46
Добавил двух абордажников, теперь их 5. Подскажите, как добавить портреты с уровнем жизни и энергии.
Файл battle_interface\landinterface.c

1. Функция void BLI_SetObjectData()

1.1. Редактируем цикл

Код: Выделить всё

for(i=0; i<4; i++)
{
	cn = GetOfficersIndex(pchar,i);
	if(cn==-1) continue;
	curCh = GetCharacter(cn);
	attrName = "id"+i;
	makearef(ar,objLandInterface.data.icons.(attrName));
	SetCharacterIconData(cn,ar);
	//ar.picture = curCh.FaceId;
	//ar.health = 0.0;
	//ar.charge = 0.0;
}
Меняем значение кол-ва проходов по умолчанию 4 на то кол-во офицеров, которое задали

1.2. Добавляем к блоку...

Код: Выделить всё

objLandInterface.ManSign.iconoffset1 = "70,70";
objLandInterface.ManSign.iconoffset2 = "70,180";
objLandInterface.ManSign.iconoffset3 = "70,290";
objLandInterface.ManSign.iconoffset4 = "70,400";
...координаты индикаторов добавленных офицеров. Нумеруем iconoffset и увеличиваем с каждым разом значение оси Y на 110. Например:

Код: Выделить всё

objLandInterface.ManSign.iconoffset5 = "70,510";
objLandInterface.ManSign.iconoffset6 = "70,620";
iconoffset1 - это индикаторы ГГ. iconoffset2 и далее - индикаторы офицеров.

2. Функция void BLI_UpdateObjectData()

2.1. Редактируем цикл также, как в пункте 1.1

Код: Выделить всё

for(i=0; i<4; i++)
{
	attrName = "id"+i;
	cn = GetOfficersIndex(pchar,i);
	if(cn==-1 || !IsEntity(&Characters[cn]))
	{
		DeleteAttribute(&objLandInterface,"data.icons."+attrName);
		continue;
	}
	curCh = GetCharacter(cn);
	makearef(ar,objLandInterface.data.icons.(attrName));
	SetCharacterIconData(cn,ar);
	//ar.picture = curCh.FaceId;
	//ar.health = LAi_GetCharacterRelHP(curCh);
	//ar.charge = LAi_GetCharacterRelCharge(curCh);
	//ar.shootMax = LAi_GetCharacterChargeQuant(curCh);
	//ar.shootCur = LAi_GetCharacterChargeCur(curCh);
	//ar.poison = LAi_IsPoison(curCh);
}
3. Функция void BLI_UpdateOfficers()

3.1. Добавляем к списку...

Код: Выделить всё

SetOfficerTexture(0);
SetOfficerTexture(1);
SetOfficerTexture(2);
SetOfficerTexture(3);
...вызов для добавленных офицеров, по аналогии с пунктом 1.2. Например:

Код: Выделить всё

SetOfficerTexture(4);
SetOfficerTexture(5);
3.2. К списку...

Код: Выделить всё

SendMessage(&objLandInterface, "lls", MSG_BATTLE_LAND_SET_ICONTEX, 0, objLandInterface.Parameters.iconTexture0);
SendMessage(&objLandInterface, "lls", MSG_BATTLE_LAND_SET_ICONTEX, 1, objLandInterface.Parameters.iconTexture1);
SendMessage(&objLandInterface, "lls", MSG_BATTLE_LAND_SET_ICONTEX, 2, objLandInterface.Parameters.iconTexture2);
SendMessage(&objLandInterface, "lls", MSG_BATTLE_LAND_SET_ICONTEX, 3, objLandInterface.Parameters.iconTexture3);
...также добавляем строки, не забывая выставлять значения после MSG_BATTLE_LAND_SET_ICONTEX и нумеруя iconTexture

Код: Выделить всё

SendMessage(&objLandInterface, "lls", MSG_BATTLE_LAND_SET_ICONTEX, 4, objLandInterface.Parameters.iconTexture4);
SendMessage(&objLandInterface, "lls", MSG_BATTLE_LAND_SET_ICONTEX, 5, objLandInterface.Parameters.iconTexture5);
Love and respect

Аватара пользователя

SPAZ100
Сообщения: 9
Зарегистрирован: 08 янв 2017, 15:17
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Базовое руководство по скриптам движка Storm

Сообщение SPAZ100 » 22 дек 2017, 22:27

Всё это у меня уже было сделано .При назначении абордажника иконка не появляется.
Хотя в сохранениях добавленые иконки работают.
А вот в локациях иконок абордажников всего три а я хочу сделать пять.

Аватара пользователя

Автор темы
LEOPARD
Сообщения: 1000
Зарегистрирован: 18 сен 2016, 19:48
Благодарил (а): 108 раз
Поблагодарили: 242 раза

Базовое руководство по скриптам движка Storm

Сообщение LEOPARD » 23 дек 2017, 22:49

SPAZ100, вот тут у меня есть папка PROGRAM с мода ERAS2.6. Там у них реализовано то, что ты проделал. Возможно, это тебе поможет, проглядев их код.
Кстати, я тоже хотел замутить 5 абордажников, но хз как это сделать.
ERAS2.6_Program

Аватара пользователя

SPAZ100
Сообщения: 9
Зарегистрирован: 08 янв 2017, 15:17
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Базовое руководство по скриптам движка Storm

Сообщение SPAZ100 » 24 дек 2017, 00:16

Я сделал уже они все пять бегают за мной.
Там надо во всех моделях локаций локаторы офицеров допилить.
Дело в том что не появляются дополнительные иконки абордажников.
За скрипты благодарю может помогут.

Аватара пользователя

Автор темы
LEOPARD
Сообщения: 1000
Зарегистрирован: 18 сен 2016, 19:48
Благодарил (а): 108 раз
Поблагодарили: 242 раза

Базовое руководство по скриптам движка Storm

Сообщение LEOPARD » 24 дек 2017, 00:47

SPAZ100 писал(а):
24 дек 2017, 00:16
Там надо во всех моделях локаций локаторы офицеров допилить.
Не надо, там немного изменен код. Когда я пробовал перенести код в ГПК, Rasteador, сказал, что там они появляются не во всех нужных локаторах, а в некоторых + потом телепортируются ближе к ГГ.
SPAZ100 писал(а):
24 дек 2017, 00:16
За скрипты благодарю может помогут.
Определенно помогут, посмотри ;)

Аватара пользователя

SPAZ100
Сообщения: 9
Зарегистрирован: 08 янв 2017, 15:17
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Базовое руководство по скриптам движка Storm

Сообщение SPAZ100 » 24 дек 2017, 15:19

А с какой части игры эти скрипты.

Аватара пользователя

Автор темы
LEOPARD
Сообщения: 1000
Зарегистрирован: 18 сен 2016, 19:48
Благодарил (а): 108 раз
Поблагодарили: 242 раза

Базовое руководство по скриптам движка Storm

Сообщение LEOPARD » 24 дек 2017, 16:40

SPAZ100 писал(а):
24 дек 2017, 15:19
А с какой части игры эти скрипты.
LEOPARD писал(а):
23 дек 2017, 22:49
ERAS2.6
Этот мод построен на базе ГПК 1.2.12

Аватара пользователя

Автор темы
LEOPARD
Сообщения: 1000
Зарегистрирован: 18 сен 2016, 19:48
Благодарил (а): 108 раз
Поблагодарили: 242 раза

Базовое руководство по скриптам движка Storm

Сообщение LEOPARD » 25 дек 2017, 09:30

Капитан Джек воробей писал(а):
25 дек 2017, 06:00
спасибо за помощь "мододелы"
Если тебе сию минуту никто не ответил, то значит не у всех есть время на это, а тем более ответ на твою проблему.
Если бы все пользователи умели грамотно составлять баг-репорты, то ответы приходилы бы быстрее.
1) скриншоты
2) логи с ошибками: error.log, system.log, compile.log
Это как минимум.

Аватара пользователя

Автор темы
LEOPARD
Сообщения: 1000
Зарегистрирован: 18 сен 2016, 19:48
Благодарил (а): 108 раз
Поблагодарили: 242 раза

Базовое руководство по скриптам движка Storm

Сообщение LEOPARD » 25 дек 2017, 12:23

Капитан Джек воробей, что это сейчас было?)
Технические изменения никак не могут быть связаны с игровым функционалом.
Что-то ты на "модил" не то.
У меня такое было один раз, и то при некорректном изменении функционала.
Не вводи людей в заблуждение ;)

Аватара пользователя

SPAZ100
Сообщения: 9
Зарегистрирован: 08 янв 2017, 15:17
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Базовое руководство по скриптам движка Storm

Сообщение SPAZ100 » 26 дек 2017, 11:59

Капитан Джек воробей писал(а):
26 дек 2017, 10:03
LEOPARD,Подскажи как ты в характеристиках гг добавил поинтов? Это там где в начале игры распределяешь их.
SPECIAL Находится в файле RPGUtilite.c

Аватара пользователя

SPAZ100
Сообщения: 9
Зарегистрирован: 08 янв 2017, 15:17
Благодарил (а): 3 раза
Поблагодарили: 1 раз

Базовое руководство по скриптам движка Storm

Сообщение SPAZ100 » 26 дек 2017, 22:17

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

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