Помощь - Поиск - Пользователи - Календарь
Полная версия: Скрипты
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74
Aiwan
QUOTE (NiMH @ Dec 11 2004, 15:48)
ГЮЛЕМХ ХУ ОСЯРШЬЙЮЛХ

Ась?
Добавлено в [mergetime]1102758632[/mergetime]
Смени кодировку
NiMH
komu nado, tot poimet drag.gif
Raven
Перевод - "Замени их пустышками"

Зы. Интересные мысли насчет ворот - спасибо за наводку smile.gif
Аваддон
Тут решил факелы включающиеся ночью с OnHB перевести, чтобы при входе в локацию если ночь все не включенные факелы загорались.
Написал скрипт
Neverwinter Script Source
void main()
{
object oTorch = GetFirstObjectInArea(OBJECT_SELF);
if (GetIsDay()!=TRUE)
{
while (GetIsObjectValid(oTorch))
{
    if (GetTag(oTorch)=="test_torch" && GetLocalInt(oTorch,"on")!=1)
    {
    AssignCommand(oTorch,PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
    SetLocalInt(oTorch,"on",1);
    oTorch = GetNextObjectInArea(OBJECT_SELF);
    }
}
}
}


Тестил - пишет Too many Instructions.. и загорается только часть факелов. Поправьте пожалуйста. Я редко с while и for работаюsmile.gif
Lex
смотри. Во первых ты перебираешь все объекты в локе, так?
а вот меняешь oTorch ты внутри ифа, те если (GetTag(oTorch)=="test_torch" && GetLocalInt(oTorch,"on")!=1) то у тебя включ, и меняется торч. Так вот, первый же объект, который не удовлетворит условию приведет к тому, что этот объект будет у тебя в while вечно бегать.
Решение:
Neverwinter Script Source
while (GetIsObjectValid(oTorch))
{
    if (GetTag(oTorch)=="test_torch" && GetLocalInt(oTorch,"on")!=1)
    {
    AssignCommand(oTorch,PlayAnimation(ANIMATION_PLACEABLE_ACTIVATE));
    SetLocalInt(oTorch,"on",1);
    }
    oTorch = GetNextObjectInArea(OBJECT_SELF);
}

в этом случае мы всегда переключ. торч на след. объект и цикл кончится, как только все объекты будут проверены.
Аваддон
Lex good.gif спасибо Лекс. Я все понялsmile.gif
Аваддон
А никто не подскажет, как была реализована система языков на Axistown. Ну я когда там играл можно было на эльфийском говорить, "по фене ботать" (на воровском). Конечно псевдо - заменялись буквы только. Но как отслеживалось что игрок сказал, не выдавалось это в эфир и после выписывало другое значение?
Lex
знаю только, что через невидимых слухачей, что раскиданы по всем локам.
Говоришь в пати, они все слышат, и заставляют игрока говорить всякую белеберду в общий канал, кидая SendMessageToPC тем, кто язык понимает.

в принципе написать не составляет труда.
Аваддон
Lex написал бы... smile.gif
Lex
у меня тут нет тулсета... он дома, а дома нету нета.
Франческо Ракоци
Усем дарово...вот решил написать мод, а точнее шард =) (безумец скажите вы =) )
Так вот, нифига не пойму как одну штуковину сделать:
Создал три фракции: Тьма, Свет, Серые. Соответсвенно Тьма не любит Свет, Свет не любит Тьму, а Серым ваще на всё по барабану...Так вот, играк начинает в великих чертогах 3 богов, каждый бог для каждой фракции...Терь вопрос, как мне сделать что бы после выбора фразы во время базара с каким либо богом, игрок становился членом этой фракции???
FeaNor
Хоть я и не скриптер - ответить наверное могу. Игрокам сменить фракцию нельзя, она у них всего одна - PC. Так что тут важен результат этого причисления к фракции, чего ты хочешь добиться? В принципе к каждому игроку можно привязать переменную, сохраненную в базе данных, которая будет определять его принадлежность к определенной группе. Потом на входе на шард проверять наличие переменной и проводить соответсвующие действия с игроком (перемещать его в нужную локацию например).
Франческо Ракоци
FeaNor
ну вот к примеру, игрок решил идти на сторону Тьмы, тада любой НПС из фракции Света начнёт его бить как только встретит (ну это грубо говоря), а Серый ни чё не будет делать пока его не ударят +)
Aiwan
NPC фракцию настроить можно, как сказал Феанор, повесь локалку на РС и если он ТЕМНЫЙ, то отношение меняется. Ты вообще не шаришь в скриптах или понял что мы говорим?
Франческо Ракоци
Aiwan
в НВН скриптах очень мало =) тока недавно начал...но суть уловил =)
Lemegeton
Вопросец, конечно, дебилизмом попахивает, но никто не пытался изменить/создать GUI_Panel???
DBColl
Lemegeton
На ваульте де-то валяется GUI-панель в стиле БГ. wink.gif Так что пробовали. yes.gif
Lemegeton
А что насчет создания новых панелей?
DBColl
Ну вот тот автор и "рескинил" стандартные. Так почему нельзя сделать что-то иное?.. Единственное что, это скорее всего расположение и размеры окон с динамичными данными скорее всего не изменить (я про окно сообщений сервера, диалоговое окно и т.п...)
Aiwan
QUOTE (Lemegeton @ Dec 23 2004, 12:04)
Вопросец, конечно, дебилизмом попахивает, но никто не пытался изменить/создать GUI_Panel???

На кой? dntknw.gif biggrin.gif
Lemegeton
Да, собственно говоря, ради любобытства... Хотел систему крафта магических предметов сделать а-ля Morrowind - с ГУИ. Так как-то многовато скриптов...
Лито
Я заметил, чтоь на этом форуме обитают хорошие люди, которые всегда помогут.Спасибо им за это.По этому поводу решил задать еще вопросы и надеюсь получить на них ответы yes.gif

1.Есть вот такой скрипт на OnClientEnter, проверяет первый ли раз зашел игрок в модуль, если первый то выдает вещи, но тут есть проблема, при потере опыта и нажатии кнопки респауна, хр игрока скатывается до 0, при перезаходе опять срабатывает скрипт и игроку повторно выдается комплект вещей.Собственно вопрос:как сделать так чтобы вещи выдавались один единственный раз!без возможности перезахода при смерти>респауне?
вот этот скрипт
Neverwinter Script Source
void main()
{
    object oPC = GetEnteringObject();
    int i;

    if (GetIsPC(oPC) && (GetXP(oPC) > 0) && !GetIsDM(oPC))
    {
        SetXP(oPC, 1);

        for (i = 0; i <= 13; i++) {
           object oItem = GetItemInSlot(i, oPC);
            if (oItem != OBJECT_INVALID)
                DestroyObject(oItem);
        }

        int nAmount = GetGold(oPC);
        AssignCommand(oPC, TakeGoldFromCreature(nAmount, oPC, TRUE));

       object oItem = GetFirstItemInInventory(oPC);
        while (oItem != OBJECT_INVALID) {
            DestroyObject(oItem);
            oItem = GetNextItemInInventory(oPC);
        }
    }
    CreateItemOnObject("item004", oPC);
    CreateItemOnObject("item", oPC);
   CreateItemOnObject("item", oPC);
   CreateItemOnObject("item", oPC);
  CreateItemOnObject("item001", oPC);
  CreateItemOnObject("item003", oPC);
  GiveGoldToCreature(oPC, 200);
}

Это самое важное, очень прошу с этим помочь
Теперь второе
2.Есть корабль, на котором есть капитан, который за деньги переправляет игрока в другую точку модуля, за это просят 50gp, но тут тоже проблема, даже если у игрока меньше 50 золотых, его все равно переправляют, просто забирают все деньги которые есть, например есть 150 gp, забирают 50 и переправляют, второй случай: есть 37 gp, забирают эти 37 и все равно переправляют
вопрос: как сделать проверку золота, и чтобы если у игрока нет 50 гп, ему вежливо отказывали в поездке
пока все, заранее спасибо good.gif
----------------------
Вспомнил еще кое что
3.Как сделать случайную погоду, чтобы в локации не все время лил дождь но иногда выглядывало солнце и дождь проходил?
Aiwan
QUOTE (Лито @ Dec 25 2004, 19:32)
Собственно вопрос:как сделать так чтобы вещи выдавались один единственный раз!без возможности перезахода при смерти>респауне?

1. Уже поднимали этот вопрос. Дай РС предмет в инвентарь, что бы он не мог его выкинуть и проверяй его при заходе-перезаходе.
2. Очень просто. Сделай две ветки одна под другой. На одну из них повесь проверку на количество золота в инвентаре:

+ Проезд 50 монет! Ты будешь платить?
- У тебя нет такой суммы!

(На строку с плюсом повесь скрипт)
Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Copyright © 2004 WRG!  www.wrg.ru
//:: Name:am_pv_gold_50
//:://////////////////////////////////////////////
/*
      Проверка наличных в инвентаре
    если меньше 50, то диалога не будет
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan    Aiwan@e-mail.ru
//:: Created On: 08.07.2004
//:://////////////////////////////////////////////
int StartingConditional()
{
    int iGold = GetGold(GetPCSpeaker());
    if (iGold >= 50) // 50 - сумма нужных наличных
        {
        return TRUE;
        }
    return FALSE;
}


Можно поинтересней скрипт написать... УНИВЕРСАЛЬНЫЙ
Neverwinter Script Source
//:://////////////////////////////////////////////
//:: Copyright © 2004 WRG!  www.wrg.ru
//:: Name:am_pv_gold_50
//:://////////////////////////////////////////////
/*
  УНИВЕРСАЛЬНЫЙ скрипт проверкпи наличных в
  инвентаре, если меньше i, то диалога не будет
  Укажите сумму в строке НПС в субрассе.

*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan    Aiwan@e-mail.ru
//:: Created On: 25.12.2004
//:://////////////////////////////////////////////
int StartingConditional()
{
    int iGold = GetGold(GetPCSpeaker());
    int i = StringToInt(GetSubRace(OBJECT_SELF));
    if (iGold >= i) // i - сумма нужных наличных
        {
        return TRUE;
        }
    return FALSE;
}

Лито
очень благодарен за 2, мог бы и сам додуматся, учится и еще раз учится мне надо yes.gif
но вот с тем чтобы выдавать предмет при первом заходе...вобще я не знаю как будет лучше но я хотел чтобы если при респауне опыт вдруг становился равен 0 то автоматом игроку давали 1хр, а дальше пусть перезаходит сколько угодно, у него же 1хр есть,значит и скрипт на заход не сработает....о я сам себя осенил!поставлю на скрипт респауна GiveXP! все спасибо yahoo.gif
Raven
По поводу погоды - я сейчас как раз буду начинать над этим работать, так что как зделаю - жди описания

Если невтерпеж - посмотри на Ваулте, я там видел пару WeatherSim`ов, но не смотрел, не тестил, ниче сказать не могу по поводу этих хаков
Lex
вообще в свойствах локи настраиваются вероятности дождя, снега, ясной погоды и тд. Крути проценты и все.

про респаун: уже видел такой подоход (1 экс) где-то...раз этак 5. :-)
Лито
2Lex если настраивать с св-ах локи проценты, то тогда будет - немножко дождя со снегом +ветер, и это все одновременно, а мне ведь надо случайность
Aiwan
Лито, проверь и если нужна СЛУЧАЙНОСТЬ настрой через ранндом и свич.
Neverwinter Script Source
void main()
{
// object oModule = GetModule();
object oArea = GetArea(OBJECT_SELF);
object oPC = GetEnteringObject();

if(GetIsPC(oPC) && !GetLocalInt(OBJECT_SELF, "WEATHER"))
{
    SetWeather(oArea, WEATHER_RAIN); //WEATHER_CLEAR, WEATHER_SNOW,
    // WEATHER_USE_AREA_SETTINGS - настройки арены по умолчанию
    SetLocalInt(OBJECT_SELF, "WEATHER", TRUE);
    DelayCommand(500.0, SetWeather(oArea, WEATHER_USE_AREA_SETTINGS));
    DelayCommand(600.0, SetLocalInt(OBJECT_SELF, "WEATHER", FALSE));
    }
}
Лито
Aiwan
Neverwinter Script Source
int StartingConditional()
{
    int iGold = GetGold(GetPCSpeaker());
    if (iGold >= 50) // 50 - сумма нужных наличных
        {
        return TRUE;
        }
    return FALSE;
}

не компилируется у меня, пробовал по разному... black eye.gif
Aiwan
Попробуй еще. biggrin.gif

п.с. Злобный компилятор пишет что типа добавить войд мен функцию? А ты говоришь, нет! Дядя Айв не говорил такое! biggrin.gif Этот скрипт скомпелится без трабл токма на первом слоте в диалоге.
Лито
Aiwan
Мистика wizard.gif, он меня даже спросил - "оставить пустой сценарий без войд мейн?" yes.gif
Lemegeton
Пилят! Убирайте нафиг русский текст в комментах! Зуб даю!
Aiwan
Лито так ты его закомпилял или он тебя?
QUOTE (Lemegeton @ Dec 27 2004, 14:02)
Пилят! Убирайте нафиг русский текст в комментах! Зуб даю!

Хм, ну гони свой зуб. У меня компилится весть скрипт. aggressive.gif biggrin.gif
Lemegeton
У тебя - да. Но не у всех. У меня, например, с русскими комментами не компилится. К сожалению, недостаточно данных для выяснения причины.
DBColl
Lemegeton
Причина только в маленькой букве "я". Если в комментсах или вообще в скрипте она есть, то все, амба! smile.gif
Lemegeton
DBColl: Не, у меня вообще русских букв не понимает. Никаких.
Аваддон
Lemegeton у тебя линуха вроде? Если винда не понимает, то надо в реестре кодировку переписать.

Для 98ой винды это выглядит вот так:

CODE

REGEDIT4

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Codepage]
"1250"="cp_1251.nls"
"1251"="cp_1251.nls"
"1252"="cp_1251.nls"
"1253"="cp_1251.nls"
"1254"="cp_1251.nls"
"1257"="cp_1251.nls"


Для XP

CODE

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
"1253"="c_1251.nls"
"1254"="c_1251.nls"
"1255"="c_1251.nls"
Франческо Ракоци
Народ! Хелп, чё то я не фтыкаю (и не надо мня к окулисту напровлсять crazy.gif ). Вот как сделать в диалгов возвращение. Т.е. например. Игрок может задать НПС 4 вопроса. Задаёт первый, получил ответ, терь они выбирает фразу типа, "сенкс, но у мня ещё вопросы", и его относит опять к списку вопросов. Как это можно сделать в редакторе разговоров, или что в скрипт надо?
Заранее большое человеческо спасибо good.gif
ЗЫ на крайняк хоть намекните =)
Вишес
QUOTE (Франческо Ракоци @ Dec 28 2004, 00:36)
Народ! Хелп, чё то я не фтыкаю (и не надо мня к окулисту напровлсять crazy.gif ). Вот как сделать в диалгов возвращение. Т.е. например. Игрок может задать НПС 4 вопроса. Задаёт первый, получил ответ, терь они выбирает фразу типа, "сенкс, но у мня ещё вопросы", и его относит опять к списку вопросов. Как это можно сделать в редакторе разговоров, или что в скрипт надо?

Сходи к окулисту pilot.gif

А если счерьезно, выбираещ ветку, к которой хочеш вернуться, кликаешь правой кнопкой, выбираешь "Копировать". Потом выбираешь фразу героя, после которой осуществляется возврат и кликаешь снова правой кнопкой. выбираешь "Paste as link". Все.
Правдо сожно? swoon.gif
Франческо Ракоци
Q'elt'rine
элементарно...терь я уверился что я идиот swoon.gif
БОЛЬШОЕ СЕНКС ТЕ good.gif
Lemegeton
Аваддон: У меня WineX стоит. Под Линух тулсета нема. WineX иммитирует мастдай. Там даже подобие реестра есть smile.gif Странно, но описаный тобой метод не пашет. dntknw.gif Абына, да.

Может кто подскажет, как с такой бедой бороться?
Aiwan
Попробуй шрифт в скрипт едиторе в настройках поменять на разный. К примеру у меня простой курьер...
Lemegeton
КОД символа от изменения шрифта не изменяется. Если #128 - "А", то он в любой кодировке будет #128. А глюкает именно код символа. dntknw.gif swoon.gif
Aiwan
Ну не знаю, у меня многие шрифты русским просто не отображаются и не компиляться. Как хошь...
Twin
Lemegeton
Ну тогда просто попробуй поставить win32. lol.gif tongue.gif
Falcon
чегойто я совсем сдурел. crazy.gif
вопрос вот, я накладываю ефекты
CODE

ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE), oPlayer);
DelayCommand(2.0,FadeToBlack(oPlayer));
DelayCommand(5.0,BlackScreen(oPlayer));

а как их снять ?
Lemegeton
Neverwinter Script Source
RemoveEffect(oPlayer, EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE));
DelayCommand(2.0,FadeFromBlack(oPlayer));
DelayCommand(5.0, StopFade(oPlayer)); // Кстати, строчка не нужная. FadeFromBlack и так все вернет.


Наслаждайся. Выдрал прямехонько из Лексикона. rtfm.gif , кстати.
Falcon
Пасибо теперь буду знать
Lemegeton
Falcon:
Наслаждайся. И не забудь RTFM rtfm.gif

Twin:
QUOTE
Ну тогда просто попробуй поставить win32.

Угу. Поставили мы с Max'ом Win32 - и тормознули крутейший P4 biggrin.gif biggrin.gif biggrin.gif

Да не, у меня тут, знаете ли, сервачок-с такой. Машинок на 30 (сам точно не знаю сколько). Вломак это дело под мастдаем разруливать да от хацкеров и от вирей шифроваться. А файловый на линухе (напр. Samba) ЗНАЧИТЕЛЬНО быстрее мастдайного. Особенно от Win32. Я уж не говорю про красавца KDE, Shorewall, smtp и pop3 сервера, SQUID... Нет. От этого не откажешься. "Попробовав раз, ем и сейчас".

А все это дело я Вином залил (WineX), дабы игры мастдайные пускать можно было. Ну и стремный же пакет.
Falcon
QUOTE (Lemegeton @ Dec 29 2004, 10:53)
Falcon:
Наслаждайся. И не забудь RTFM  rtfm.gif

Twin:

Угу. Поставили мы с Max'ом Win32 - и тормознули крутейший P4 biggrin.gif  biggrin.gif  biggrin.gif

Да не, у меня тут, знаете ли, сервачок-с такой. Машинок на 30 (сам точно не знаю сколько). Вломак это дело под мастдаем разруливать да от хацкеров и от вирей шифроваться. А файловый на линухе (напр. Samba) ЗНАЧИТЕЛЬНО быстрее мастдайного. Особенно от Win32. Я уж не говорю про красавца KDE, Shorewall, smtp и pop3 сервера, SQUID... Нет. От этого не откажешься. "Попробовав раз, ем и сейчас".

А все это дело я Вином залил (WineX), дабы игры мастдайные пускать можно было. Ну и стремный же пакет.

а где этот мануал почитать ? this.gif
по повду тормознутости smile.gif мог бы поспорить, ибо линукс ненамного быстрее винды, особенно с КДЕ или гномом. по воду дырявоти теже грабли самя уязвимая ось 2003 года линукс ну и этого тоже будет повидимому. тоестьесли юзать то уже либо фриху либо вин. а правильно настроенный вин вполне нормлано пашет, и радмином админиться. конечно с путти не сравинться но он и недолжно сравниваться. а самба таки да подниксами быстрее. но мея устраиваен невер под 2000 сервером, правад он не стоит у меня голой жопой в инет. для локалки вполне. 15 человек постоянно на шарде, не лагает все ок.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.