26.09.2007, 14:55 | #31 |
Новичок
Регистрация: 13.09.2007
Адрес: Москва
Сообщения: 78
Власть репутации: 613
|
Хе, нашел решение.. и почему нельзя редактировать и удалять свои посты.. Т_т
|
08.11.2007, 05:43 | #33 |
Рауринец (Good)
Регистрация: 09.09.2005
Адрес: Ростов-на-Дону
Сообщения: 106
Власть репутации: 689
|
Как делать торговцев?
Если не трудно поделитесь опытом как в тулсете делать торговцев.
|
08.11.2007, 12:11 | #34 |
Бывалый Рауринец
Регистрация: 02.02.2007
Сообщения: 548
Власть репутации: 660
|
Re: Как делать торговцев?
1. Создаешь НПС
2. Создаешь Store, настраиваешь параметры, добавляешь шмот 3. Создаешь диалог, на ответ игрока ставь Action -> ga_openstore. В качестве тега прописываешь тег созданного Store. 4. Вешаешь на НПСа созданный диалог |
08.11.2007, 12:36 | #35 |
Рауринец (Good)
Регистрация: 09.09.2005
Адрес: Ростов-на-Дону
Сообщения: 106
Власть репутации: 689
|
Re: Как делать торговцев?
ага спс все получилось
|
20.11.2007, 04:10 | #36 |
Гость
Регистрация: 11.11.2007
Адрес: Санкт-Петербург
Сообщения: 25
Власть репутации: 0
|
Вопрос: OnPlayerDying
Когда и как работают скрипты в OnPlayerDying. Что нужно знать и чего бояться? Есть ли примеры по мимо дефолтных?
Вот мой вариант года, долженствующий уменьшать здоровье персонажа до -10, после чего убивать его. Однако он запускается лишь один раз - когда здоровье становится равным или меньшим 0. Где ошибка, если это ошибка. Если скрипт не проверяется каждый раунд, а срабатывает при нанесении урона - как сделать проверку по раундам? Вызывать из этого другой скрипт, следящий за умирающим персонажем? Код:
void main() { object oPC = GetLastPlayerDying(); //Берем последнего умирающего effect eDamage = EffectDamage(1, DAMAGE_TYPE_NEGATIVE, DAMAGE_POWER_NORMAL, TRUE); //1ед. повреждения от негативной энергии в обход разистов effect eDeath = EffectDeath(FALSE, FALSE, TRUE); //Смерть в обход резистов int iAlignmentGE = GetAlignmentGoodEvil(oPC); int iAlignmentLC = GetAlignmentLawChaos(oPC); string sDyingString = ""; //Фраза, произносимая персонажем при каждом запуске скрипта //Устанавливаем предсмертную фразу из расчета пола и алигнмента персонажа. if (GetGender(oPC) == GENDER_MALE) { if (iAlignmentGE == ALIGNMENT_GOOD && iAlignmentLC == ALIGNMENT_LAWFUL) { sDyingString = "Вот и все... я... ухожу. Прощайте, друзья, прощайте..."; } if (iAlignmentGE == ALIGNMENT_GOOD && iAlignmentLC == ALIGNMENT_NEUTRAL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_GOOD && iAlignmentLC == ALIGNMENT_CHAOTIC) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_NEUTRAL && iAlignmentLC == ALIGNMENT_LAWFUL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_NEUTRAL && iAlignmentLC == ALIGNMENT_NEUTRAL) { sDyingString = "Это конец."; } if (iAlignmentGE == ALIGNMENT_NEUTRAL && iAlignmentLC == ALIGNMENT_CHAOTIC) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_EVIL && iAlignmentLC == ALIGNMENT_LAWFUL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_EVIL && iAlignmentLC == ALIGNMENT_NEUTRAL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_EVIL && iAlignmentLC == ALIGNMENT_CHAOTIC) { sDyingString = "Аргх! Проклятые твари! *кашель* Ну давайте! Подходите! Я перегрызу вам глотки!"; } } if (GetGender(oPC) == GENDER_FEMALE) { if (iAlignmentGE == ALIGNMENT_GOOD && iAlignmentLC == ALIGNMENT_LAWFUL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_GOOD && iAlignmentLC == ALIGNMENT_NEUTRAL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_GOOD && iAlignmentLC == ALIGNMENT_CHAOTIC) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_NEUTRAL && iAlignmentLC == ALIGNMENT_LAWFUL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_NEUTRAL && iAlignmentLC == ALIGNMENT_NEUTRAL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_NEUTRAL && iAlignmentLC == ALIGNMENT_CHAOTIC) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_EVIL && iAlignmentLC == ALIGNMENT_LAWFUL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_EVIL && iAlignmentLC == ALIGNMENT_NEUTRAL) { sDyingString = ""; } if (iAlignmentGE == ALIGNMENT_EVIL && iAlignmentLC == ALIGNMENT_CHAOTIC) { sDyingString = ""; } } AssignCommand(oPC, ClearAllActions()); //Чистим действия AssignCommand(oPC, SpeakString(sDyingString)); //Говорим предсмертную фразу ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oPC); //Наносим умирающему урон //Если жизнь опускается до -10 или ниже - окончательно убиваем персонажа if (GetHitDice(oPC) <= -10) { PopUpGUIPanel(oPC,GUI_PANEL_PLAYER_DEATH); ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oPC); } }
__________________
Истина там, во тьме, и во тьме ты иди - мыслящий бродит во тьме. В себя самого загляни, открой свою дорогу в Ничто. В Ничто ты войди, во тьму, и пойми: Пока ты во тьме, не может она быть Ничем - ведь там ты. |
20.11.2007, 05:53 | #37 |
Guest
Сообщения: n/a
|
Re: Вопрос: OnPlayerDying
xxx { delaycommand(0.5, xxx); }
assigncommand(pc, xxx); в нвн1 делали так.. |
20.11.2007, 06:13 | #38 |
Гость
Регистрация: 11.11.2007
Адрес: Санкт-Петербург
Сообщения: 25
Власть репутации: 0
|
Re: Вопрос: OnPlayerDying
Кхм... я понимаю, что утро, учеба-работа... Можно вечером, но чуть поподробнее?
__________________
Истина там, во тьме, и во тьме ты иди - мыслящий бродит во тьме. В себя самого загляни, открой свою дорогу в Ничто. В Ничто ты войди, во тьму, и пойми: Пока ты во тьме, не может она быть Ничем - ведь там ты. |
20.11.2007, 14:08 | #39 |
Зеленый Рауринец
Регистрация: 05.05.2007
Сообщения: 94
Власть репутации: 628
|
Re: Вопрос: OnPlayerDying
Ничего ценного ты из такой смерти выжать не сможешь. я делал смерть до -10 потом отказался от этой идеи так, как выбрать мертвого персонажа для использования скилла heal ты все равно не можешь.
OnPlayerDying вызывается только тогда когда здоровье стало < 0. Чтобы начать отсчет по раундам потом используешь Onheartbeat event.
__________________
Эх помните как в наше время было хорошо. И THAH0 был и AC в минус шел. |
20.11.2007, 14:19 | #40 |
Гость
Регистрация: 11.11.2007
Адрес: Санкт-Петербург
Сообщения: 25
Власть репутации: 0
|
Re: Вопрос: OnPlayerDying
Ага, ясно, так и предполагал. Спасибо.
По поводу выжать - мне надо просто разобраться в системе, а дальше реализую отключабельную систему выживаемости. P.S. А старого скрипта, от которого отказался, не осталось? Посмотреть?
__________________
Истина там, во тьме, и во тьме ты иди - мыслящий бродит во тьме. В себя самого загляни, открой свою дорогу в Ничто. В Ничто ты войди, во тьму, и пойми: Пока ты во тьме, не может она быть Ничем - ведь там ты. |
|
|