Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 118 119 120 121 122 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
azathoth
сообщение Jun 1 2008, 14:34
Сообщение #2976


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Цитата
Но если атаковал своего же моба он остается враждебным!

Правильно, кому понравиться, что его бьют? (IMG:style_emoticons/kolobok_light/vava.gif) смотри "repadjust.2da" - хз какое поле за что отвечает, но смена отношения там.

Neverwinter Script
if (GetStandardFactionReputation(STANDARD_FACTION_MER
CHANT, oPlayer) <= 10)
    {  SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 10); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_MERC
HANT,-100, oPlayer);
    }

тут как я понял говорится о том, что "если торговец вас ненавидит - заставить ненавидеть вас ещё сильнее". по умолчанию торговцы не такие уж и буки.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jun 1 2008, 16:50
Сообщение #2977


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



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

Да а кстати глобальный эффект что означает во фракциях?Я его поставил для всех фракции.
А также шкала П-незнаю что такое ето?но она у меня на 50 стоит,я поставил для всех фракций,ее вообше как надо ставить?

Neverwinter Script
// * make friendly to Each of the 3 common factions
    AssignCommand(oPlayer, ClearAllActions());
    // * Note: waiting for Sophia to make SetStandardFactionReptuation to clear all personal reputation
    if (GetStandardFactionReputation(STANDARD_FACTION_COM
MONER, oPlayer) <=-100)
    {  SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 100); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_COMM
ONER, 100, oPlayer);
    }
    if (GetStandardFactionReputation(STANDARD_FACTION_MER
CHANT, oPlayer) <=100)
    {  SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad",-100); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_MERC
HANT, 100, oPlayer);
    }
    if (GetStandardFactionReputation(STANDARD_FACTION_DEF
ENDER, oPlayer) <=-100)
    {  SetLocalInt(oPlayer, "NW_G_Playerhasbeenbad", 100); // * Player bad
        SetStandardFactionReputation(STANDARD_FACTION_DEFE
NDER, 100, oPlayer);
    }

    DelayCommand(2.5, PopUpGUIPanel(oPlayer,GUI_PANEL_PLAYER_DEATH));

}




Еше подскажите скрипт на дислайк при нажатии на тригер OnClick также для трех фракций
Я толко вот какойто отрывок нашел но толку от него ноль без полного скрипта,кто работал с дислайками? помогите плиз создать этот скрипт

void SetPCDislike(object oPlayer, object oTarget)

Сообщение отредактировал Sugo77 - Jun 1 2008, 23:32
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sailar
сообщение Jun 8 2008, 11:19
Сообщение #2978


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Подскажите пожалуста тогда как написать такой плагин? я знаю немного Borland c++ Builder и все. Тока мне надо чтоб плагин не тока в сетевой игре работал но и в кампании если какиенибудь исходные коды как их делать? я тут находил плагин позволяющий писать букву "Я"
Он без NWNX работает мнеб типа такого только добавляющий функцию управления NPC как преблизительно его написать или функцию эту где узнать напишите пожалуста если не сложно поподробнее....... (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jun 8 2008, 17:23
Сообщение #2979


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Никак..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sailar
сообщение Jun 8 2008, 18:17
Сообщение #2980


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Блин а можно тогда переименовать главного героя скриптом и при морфе сделат больше 3ех родных абил и еще бы конечными их сделать.... Или может есть какаянибудь альтернатива?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jun 8 2008, 19:56
Сообщение #2981


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Я уже давал ссылку.
http://nwvault.ign.com/View.php?view=Scrip...ail&id=2568
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jun 8 2008, 20:43
Сообщение #2982


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



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

вот это вступление скрипта

void main
SetPCDislike(object oPlayer, object oTarget)



Сообщение отредактировал Sugo77 - Jun 8 2008, 20:45
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jun 8 2008, 23:29
Сообщение #2983


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



После такого вступления требуется виртуозное исполнение! Я сейчас дорабатываю свою библиотеку функций распарсивания строк (получается интересная возможность писать "полускрипты" и создавать "мягкий" код). Ваш вопрос побудил меня задуматься над совершением ещё одного шага вперёд от ExecuteCommand(string sCommand) к DoStuff(string sWhat, int bAndDoItGood), где мы переходим от искуственного машинного языка к литературному. Сравните:
Neverwinter Script
ExecuteCommand("if (on_trigger AND $[0] == %PC%) foreach AbstractNwnPlayer player FROM `factions` WHERE `ID` <> %PC%["FACTION"] player->Instance()->ModAV 'Disposition' -100");

и
Neverwinter Script
DoStuff("чтоб нажав на тригер игрок был враждебен к дргим двум разным игрокам,других фракций", TRUE);

Не правда ли небо и земля? Трезво оценивая свои силы, думаю, что шансов реализовать задуманое до стечения века почти нет. Но мало ли - вдруг.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jun 8 2008, 23:49
Сообщение #2984


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Очень интересно. (IMG:style_emoticons/kolobok_light/smile.gif)
Я для таких вещей встроил в НВН скриптовый интерпретируемый язык Ruby и собираюсь сделать веб-интерфейс, в котором визуально выбираешь логику - и на её основе генерируется скрипт, который сразу же подхватывается сервером.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jun 12 2008, 14:11
Сообщение #2985


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



Neverwinter Script
ExecuteCommand("if (on_trigger AND $[0] == %PC%) foreach AbstractNwnPlayer player FROM `factions` WHERE `ID` <> %PC%["FACTION"] player->Instance()->ModAV 'Disposition' -100");


Это скрипт на дислайки?
Пробовал вставлять в OnClick тригера,выдает ошибки на f7

Помогите написать етот скрипт в конце корнцов((((((((кто нибудь из скриптеров,я застрял на этом,в создании модуля

Сообщение отредактировал Sugo77 - Jun 12 2008, 14:19
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 13 2008, 13:41
Сообщение #2986


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



этот скрипт "на дислайки" требует для своей работы еще и парсера нормального, которого Аза тут конечно не выложил (IMG:style_emoticons/kolobok_light/smile.gif)
В чем проблема использовать SetPCDislike то? Выставил кому надо и готов твой скрипт на дислайк. Правда игрок ручками все поменять обратно может.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Pryanik
сообщение Jun 15 2008, 02:23
Сообщение #2987


Level 1


Класс: Обыватель
Характер: Chaotic Good
Раса: Элементаль



Друзья а можете подсказать где взять а может уже кто и использует в своих PW скрипт на Area Reset (аналог Reset Instances из Мира Варкрафта). Мне нужен любой скрипт обнуляющий заданную Area и расставляющий в ней все заново(существ, вейпоинты, плейсеблс). Хочу припаять его к Камню перед пещерой на On_Used. А то я замучался нашел несколько скриптов но они существ не резетят, только энкаутеры, а мне так нельзя у меня много мобов по вейпоинтам бегает. Заранее спасибо (IMG:style_emoticons/kolobok_light/rolleyes.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jun 15 2008, 10:56
Сообщение #2988


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



Lex,дорогой,дак а где он находиться SetPCDislake?
И как правилно его настроить?но мне бы сперва его найти
по словам так просто но незнающему человеку (мне) не просто разобраться с дислаками сначало найти бы еше,помоги плиз с етим вопросом.А то работа встала на етом(запускаю через интернет сервер для теста и только с мобами порядок,а игроки других двух фракций невраждебны мне.Помоги плиз с этим вопросом.

Сообщение отредактировал Sugo77 - Jun 15 2008, 11:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 15 2008, 12:32
Сообщение #2989


Level 11
Иконки Групп

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Pryanik, для этого нужно знать структуру того, что у тебя на локе лежит. Лучше всего пометить каждую стартовую точку, на которой должен создаваться обжект, особым вейпоинтом, и локалками на нём указать, что за обжект.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jun 23 2008, 19:52
Сообщение #2990


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



Ну подскажите плиз со скриптом set pc dislike
работа стоит а очень охото дальше над шардом работать
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jun 24 2008, 22:09
Сообщение #2991


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



Вот тут наконецто нашел много скриптов на дислайки но

http://www.city-of-masters.ru/forums/lofiv....php?t1195.html

как выбрать подходящий мне?

вот этот полный скрипт?
Neverwinter Script
object oEnter = GetEnteringObject();
if (!GetIsPC(oEnter)) return;
object oNextPC;
int i=2;
do
{
    oNextPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYE
R_CHAR_IS_PC,oEnter,i);
    i++;
    <тут проверка расы и выставление дизлайка если надо>
} while(GetIsPC(oNextPC));


Его можно изменить на OnClick локи?потому что на он интер у меня другой

вот еше тут полно
http://nwn.gamerland.ru/lofiversion/index.php/t47-100.html

Neverwinter Script
void main()
{
    object oPC = GetEnteringObject();

    if (GetIsDM(oPC))
    {
        return;
    }

    object oPlayer = GetFirstPC();
    while (GetIsObjectValid(oPlayer))
    {

        if (PK_Enable(oPlayer,oPC))
        {
            SetPCDislike(oPlayer,oPC);
        }
        else
        {
            SetPCLike(oPlayer,oPC);
        }

        if (PK_Enable(oPC,oPlayer))
        {
            SetPCDislike(oPC,oPlayer);
        }
        else
        {
            SetPCLike(oPlayer,oPC);
        }

        oPC = GetNextPC();
    }

    int PK_Enable(object oMatou,object oMorreu){
    return
    (
        GetIsDM(oMatou) ||
        GetIsDM(oMorreu) ||
        GetIsDMPossessed(oMatou) |
        GetIsDMPossessed(oMorreu) ||
        (oMatou == oMorreu) ||
        !GetIsPC(oMatou) ||
        (oMatou == GetModule())
    );
}
}


и этот
Neverwinter Script
// The PC who entered the trigger is set to dislike all the PC's in the module
void main()
{
    // Get entering PC
    object oEnterer = GetEnteringObject();

    // make sure they are not a DM
    if(GetIsPC(oEnterer) && !GetIsDM(oEnterer))
    {
        // Loop all PC's in the module and set this PC to dislike them - uh oh
        object oPC = GetFirstPC();
        while(GetIsObjectValid(oPC))
        {
            // Set to dislike
            SetPCDislike(oEnterer, oPC);

            // Get next PC
            oPC = GetNextPC();
        }
    }
}


Какой больше подходит для моего случая для 3 ех сторон и как его изменить подскажите плиз Гренд-мастера(

Вот моя работа на он клицк тригера проверьте для 3 ех фракций
Neverwinter Script
// The PC who entered the trigger is set to dislike all the PC's in the module
void main()
{
    // Get entering PC
    object oClicker = GetClickingObject();

    // make sure they are not a DM
    if(GetIsPC(oClicker) && !GetIsDM(oClicker))
    {
        // Loop all PC's in the module and set this PC to dislike them - uh oh
        object oPC = GetFirstPC();
        while(GetIsObjectValid(oPC))
        {
            // Set to dislike
            SetPCDislike(oClicker, oPC);

            // Get next PC
            oPC = GetNextPC();
        }
    }
}


ошибок при ф 7 невыдает но как будет работать хз

Нет тригер перестает работать(портировать)после етого скрипта хз почему

Сообщение отредактировал Sugo77 - Jun 24 2008, 21:58
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jun 24 2008, 22:30
Сообщение #2992


Level 12
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Цитата
но как будет работать хз

дык запусти и посмотри

Цитата
тригер перестает работать(портировать)после етого скрипта

onClick срабатывает при нажатии на триггер, а не при проходе через него. либо использовать онТранзакшен (или как его там) или делать Jump в нужное место вручную.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение Jun 24 2008, 22:52
Сообщение #2993


Level 3
*

Класс: Монах
Характер: Lawful Good
Раса: Эльф



Вроде етот срабатывает на он интер,я просто добавил специальную переходную локу с другими тригерами отдельными для такого дела ,но есть одно НО(((,он срабатывает и на мою фракцию это почему же так?
Neverwinter Script
// The PC who entered the trigger is set to dislike all the PC's in the module
void main()
{
    // Get entering PC
    object oEnterer = GetEnteringObject();

    // make sure they are not a DM
    if(GetIsPC(oEnterer) && !GetIsDM(oEnterer))
    {
        // Loop all PC's in the module and set this PC to dislike them - uh oh
        object oPC = GetFirstPC();
        while(GetIsObjectValid(oPC))
        {
            // Set to dislike
            SetPCDislike(oEnterer, oPC);

            // Get next PC
            oPC = GetNextPC();
        }
    }


То есть мне стают враждебными абсолютно все,и свои,и враги.
Подскажите как этот рабочий скрипт доработать чтобы моя фракция мне небыла враждебна только остальные 2


А вот этот ну очень большой скрипт на дислайки можно настроить как то под мой модуль,и если да то как

Neverwinter Script
void CheckParty(object oPC1, object oPC2)
{
    object oPM = GetFirstFactionMember(oPC1);
    object oGood, oEvil;

    int g = 0, e = 0, nRace, nAlign;
    int nAlign1 = GetAlignmentGoodEvil(oPC1);
    int nRace1 = GetRacialType(oPC1);

    string sSR1 = GetStringUpperCase(GetSubRace(oPC1));
    string sSR;

    if(nRace1 == RACIAL_TYPE_HALFORC ||
      nRace1 == RACIAL_TYPE_ELF && TestStringAgainstPattern("**DROW**", sSR1) ||
      nRace1 == RACIAL_TYPE_ELF && TestStringAgainstPattern("**DARK**", sSR1) ||
      nRace1 == RACIAL_TYPE_HUMAN && nAlign1 == ALIGNMENT_EVIL)
    { oEvil = oPC1; oGood = oPC2; }
    else
    { oEvil = oPC2; oGood = oPC1; }

    while(GetIsObjectValid(oPM))
    {
        nRace = GetRacialType(oPM);
        nAlign = GetAlignmentGoodEvil(oPM);
        sSR = GetStringUpperCase(GetSubRace(oPM));

        if(nRace == RACIAL_TYPE_HALFORC ||
          nRace == RACIAL_TYPE_ELF && TestStringAgainstPattern("**DROW**", sSR) ||
          nRace == RACIAL_TYPE_ELF && TestStringAgainstPattern("**DARK**", sSR) ||
          nRace == RACIAL_TYPE_HUMAN && nAlign == ALIGNMENT_EVIL)
        { e++; }
        else
        { g++; }

        oPM = GetNextFactionMember(oPC1);
    }

    if(e > g) { RemoveFromParty(oGood); }
    else { RemoveFromParty(oEvil); }
}

void SetDislike(object oTest)
{
    object oFL, oTFL, oPC = GetFirstPC();

    int nPCRace, nTRace, nLike, nTLike, nAlign, nTAlign;

    string sSubRace, sTSubRace, sArea;

    nTRace = GetRacialType(oTest);
    nTAlign = GetAlignmentGoodEvil(oTest);
    sTSubRace = GetStringUpperCase(GetSubRace(oTest));
    sArea = GetTag(GetArea(oTest));
    oTFL = GetFactionLeader(oTest);

    while(GetIsObjectValid(oPC))
    {
        nPCRace = GetRacialType(oPC);
        nAlign = GetAlignmentGoodEvil(oPC);
        nLike = GetIsEnemy(oTest, oPC);
        nTLike = GetIsEnemy(oPC, oTest);
        sSubRace = GetStringUpperCase(GetSubRace(oPC));
        oFL = GetFactionLeader(oPC);

        if(nLike && !nTLike) SetPCLike(oTest, oPC);
        if(!nLike && nTLike) SetPCLike(oPC, oTest);

        if(!nLike && sArea != "Arena" && oPC != oTest && !GetIsDM(oPC))
        {
            if(nTRace == RACIAL_TYPE_HUMAN && nTAlign == ALIGNMENT_GOOD)
            {
                if(nPCRace == RACIAL_TYPE_HUMAN && nAlign == ALIGNMENT_EVIL)
                {
                    if(oTFL == oFL) CheckParty(oTest, oPC);
                    SetPCDislike(oTest, oPC);
                }
                if(nPCRace == RACIAL_TYPE_HALFORC)
                {
                    if(oTFL == oFL) CheckParty(oTest, oPC);
                    SetPCDislike(oTest, oPC);
                }
                if(nPCRace == RACIAL_TYPE_ELF)
                {
                    if(TestStringAgainstPattern("**DROW**", sSubRace) ||
                      TestStringAgainstPattern("**DARK**", sSubRace))
                    {
                        if(oTFL == oFL) CheckParty(oTest, oPC);
                        SetPCDislike(oTest, oPC);
                    }
                }
            }
            if(nTRace == RACIAL_TYPE_HUMAN && nTAlign == ALIGNMENT_NEUTRAL)
            {
                if(nPCRace == RACIAL_TYPE_HALFORC)
                {
                    if(oTFL == oFL) CheckParty(oTest, oPC);
                    SetPCDislike(oTest, oPC);
                }
                if(nPCRace == RACIAL_TYPE_ELF)
                {
                    if(TestStringAgainstPattern("**DROW**", sSubRace) ||
                      TestStringAgainstPattern("**DARK**", sSubRace))
                    {
                        if(oTFL == oFL) CheckParty(oTest, oPC);
                        SetPCDislike(oTest, oPC);
                    }
                }
            }
            if(nTRace == RACIAL_TYPE_HUMAN && nTAlign == ALIGNMENT_EVIL)
            {
                if(nPCRace == RACIAL_TYPE_HUMAN && nAlign == ALIGNMENT_GOOD)
                {
                    if(oTFL == oFL) CheckParty(oTest, oPC);
                    SetPCDislike(oTest, oPC);
                }
                if(nPCRace == RACIAL_TYPE_ELF || nPCRace == RACIAL_TYPE_HALFELF)
                {
                    if(!TestStringAgainstPattern("**DROW**", sSubRace) &&
                      !TestStringAgainstPattern("**DARK**", sSubRace))
                    {
                        if(oTFL == oFL) CheckParty(oTest, oPC);
                        SetPCDislike(oTest, oPC);
                    }
                }
                if(nPCRace == RACIAL_TYPE_HALFLING)
                {
                    if(oTFL == oFL) CheckParty(oTest, oPC);
                    SetPCDislike(oTest, oPC);
                }
            }
            if(nTRace == RACIAL_TYPE_ELF || nTRace == RACIAL_TYPE_HALFELF)
            {
                if(TestStringAgainstPattern("**DROW**", sTSubRace) ||
                  TestStringAgainstPattern("**DARK**", sTSubRace))
                {
                    if(nPCRace == RACIAL_TYPE_HUMAN && nAlign == ALIGNMENT_GOOD ||
                      nPCRace == RACIAL_TYPE_HUMAN && nAlign == ALIGNMENT_NEUTRAL)
                    {
                        if(oTFL == oFL) CheckParty(oTest, oPC);
                        SetPCDislike(oTest, oPC);
                    }
                    if(nPCRace == RACIAL_TYPE_ELF || nPCRace == RACIAL_TYPE_HALFELF)
                    {
                        if(!TestStringAgainstPattern("**DROW**", sSubRace) &&
                          !TestStringAgainstPattern("**DARK**", sSubRace))
                        {
                            if(oTFL == oFL) CheckParty(oTest, oPC);
                            SetPCDislike(oTest, oPC);
                        }
                    }
                    if(nPCRace == RACIAL_TYPE_HALFLING)
                    {
                        if(oTFL == oFL) CheckParty(oTest, oPC);
                        SetPCDislike(oTest, oPC);
                    }
                }
                else
                {
                    if(nPCRace == RACIAL_TYPE_ELF)
                    {
                        if(TestStringAgainstPattern("**DROW**", sSubRace) ||
                          TestStringAgainstPattern("**DARK**", sSubRace))
                        {
                            if(oTFL == oFL) CheckParty(oTest, oPC);
                            SetPCDislike(oTest, oPC);
                        }
                    }
                    if(nPCRace == RACIAL_TYPE_HALFORC)
                    {
                        if(oTFL == oFL) CheckParty(oTest, oPC);
                        SetPCDislike(oTest, oPC);
                    }
                    if(nPCRace == RACIAL_TYPE_HUMAN && nAlign == ALIGNMENT_EVIL)
                    {
                        if(oTFL == oFL) CheckParty(oTest, oPC);
                        SetPCDislike(oTest, oPC);
                    }
                }
            }
            if(nTRace == RACIAL_TYPE_HALFLING)
            {
                if(nPCRace == RACIAL_TYPE_ELF)
                {
                    if(TestStringAgainstPattern("**DROW**", sSubRace) ||
                      TestStringAgainstPattern("**DARK**", sSubRace))
                    {
                        if(oTFL == oFL) CheckParty(oTest, oPC);
                        SetPCDislike(oTest, oPC);
                    }
                }
                if(nPCRace == RACIAL_TYPE_HALFORC)
                {
                    if(oTFL == oFL) CheckParty(oTest, oPC);
                    SetPCDislike(oTest, oPC);
                }
                if(nPCRace == RACIAL_TYPE_HUMAN && nAlign == ALIGNMENT_EVIL)
                {
                    if(oTFL == oFL) CheckParty(oTest, oPC);
                    SetPCDislike(oTest, oPC);
                }
            }
            if(nTRace == RACIAL_TYPE_HALFORC)
            {
                if(nPCRace == RACIAL_TYPE_HUMAN && nAlign == ALIGNMENT_GOOD ||
                  nPCRace == RACIAL_TYPE_HUMAN && nAlign == ALIGNMENT_NEUTRAL)
                {
                    if(oTFL == oFL) CheckParty(oTest, oPC);
                    SetPCDislike(oTest, oPC);
                }
                if(nPCRace == RACIAL_TYPE_ELF || nPCRace == RACIAL_TYPE_HALFELF)
                {
                    if(!TestStringAgainstPattern("**DROW**", sSubRace) &&
                      !TestStringAgainstPattern("**DARK**", sSubRace))
                    {
                        if(oTFL == oFL) CheckParty(oTest, oPC);
                        SetPCDislike(oTest, oPC);
                    }
                }
                if(nPCRace == RACIAL_TYPE_HALFLING)
                {
                    if(oTFL == oFL) CheckParty(oTest, oPC);
                    SetPCDislike(oTest, oPC);
                }
            }
        }
        oPC = GetNextPC();
    }
}

void main()
{
    //Autodislike
    object oPC = GetFirstPC();

    while(GetIsObjectValid(oPC))
    {
        if(!GetIsDM(oPC)) SetDislike(oPC);
        oPC = GetNextPC();
    }
}

Я в нем вижу очень много лишнего Дроу там и тд у меня их непланируеться надо какуюто часть правильно удолить,или исправить помогите плиз,у меня как я уже описывал 3 фракции

Сообщение отредактировал Sugo77 - Jun 24 2008, 23:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 25 2008, 10:01
Сообщение #2994


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Sugo77, вот тебе библа, она все делает что тебе надо. Вставить функцию сможешь?
Neverwinter Script
//:://////////////////////////////////////////////
//:: OnExit  am_inc_battle
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
/*
              БОЕВАЯ БИБЛИОТЕКА
*/

//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 27.05.2005
//:://///////////////////////////////////////////

// ФУНКЦИЯ ОЧИСТКИ РЕПУТАЦИИ И СМЕНА ВСЕХ НПС НА ЛОКАЦИИ ФРАКЦИИ ВРАГА
// НА НЕЙТРАЛЬНУЮ
// object oPlayer - Игрок к которому враждебен oEnemy
// object oNetral - Объект с новой фракцией
// Если не указать кто именно, просто очистит репутацию
void ChangeEnemyToNetral(object oPlayer, object oNetral);
// ФУНКЦИЯ ПЕРЕВОДИТ ВСЕХ НПС НА ЛОКАЦИИ ОДНОЙ ФРАКЦИИ oLeader
// ВО ВРАЖДЕБНУЮ - STANDARD_FACTION_HOSTILE
// object oPlayer - Объект к кому будут фраждебны
// object oLeader=OBJECT_SELF - Если не указать кто именно
void ChangeNetralToEnemy(object oPlayer, object oLeader=OBJECT_SELF);

// ФУНКЦИЯ ОЧИСТКИ РЕПУТАЦИИ И СМЕНА ФРАКЦИИ ВРАГА НА СТАНДАРТНУЮ STANDARD_FACTION_*
// object oObjectToChangeFaction - наш враждебный элемент
// Указать стандартную фракцию nStandardFaction: STANDARD_FACTION_*
void ChangeEnemyToStandard(object oObjectToChangeFaction, int nStandardFaction);

// ФУНКЦИЯ ОЧИЩАЕТ ВСЮ ПЕРСОНАЛЬНУЮ РЕПУТАЦИЮ У ФРАКЦИИ
void ClearFactionReputation(object oPC, object oFaction=OBJECT_SELF);

// ФУНКЦИЯ ОЧИЩАЕМ РЕПУТУТАЦИЮ ПОМОЩНИКОВ И ИГРОКА К oSource
// iClearAllActions - очищает все акции включая боевые
void ClearAllPersonalReputation(object oMaster, object oSource=OBJECT_SELF, int iClearAllActions = FALSE);

// ФУНКЦИЯ УДАЛЕНИЯ ВСЕХ МОНСТРОВ ИЗ ЭНКАУЧЕРОВ
// В локации объекта oTarget
void DestroyEncounterCreature(object oTarget = OBJECT_SELF);

//**************************************************
****************************

void ChangeEnemyToNetral(object oPlayer, object oNetral)
{
    object oArea  = GetArea(oPlayer);
    object oEnemy = GetFirstObjectInArea(oArea);
    object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPlayer);
    object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPlayer);
    object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPlayer);
    object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPlayer);
    effect eEffect = EffectVisualEffect(VFX_IMP_UNSUMMON);
    while (GetIsObjectValid(oEnemy))
    {
      if (GetIsEnemy(oPlayer,oEnemy))
      {

/*
//------------------------------------------------------------------------------
// Если пойдет что-то не так. Будут жалобы игроков, то помощников НПС буду удалять...
//------------------------------------------------------------------------------
                  int iNum = 1;
                  while(iNum < 6)
                  {
                  object oAssociate = GetAssociate(iNum, oEnemy);
                  if(GetIsObjectValid(oAssociate))
                  {
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oAssociate);
                    DestroyObject(oAssociate, 0.5);
                  }
                  iNum++;
                  }
*/


//----------------------- Обработка помощников игрока -------------------------//
                if(oAnimal != OBJECT_INVALID) {
                AssignCommand(oAnimal,ClearAllActions(TRUE));
                ClearPersonalReputation(oAnimal,oEnemy);}
                if(oDominated != OBJECT_INVALID){
                AssignCommand(oDominated,ClearAllActions(TRUE));
                ClearPersonalReputation(oDominated,oEnemy);}
                if(oFamiliar != OBJECT_INVALID){
                AssignCommand(oFamiliar,ClearAllActions(TRUE));
                ClearPersonalReputation(oFamiliar,oEnemy);}
                if(oSummoned != OBJECT_INVALID){
                AssignCommand(oSummoned,ClearAllActions(TRUE));
                ClearPersonalReputation(oSummoned,oEnemy);}
                int i = 1;
                object oHench = GetHenchman(oPlayer, i);
                  while(oHench != OBJECT_INVALID)
                    {
                    AssignCommand(oHench,ClearAllActions(TRUE));
                    ClearPersonalReputation(oHench,oEnemy);
                    i++;
                    oHench = GetHenchman(oPlayer, i);
                    }
                AssignCommand(oEnemy,ClearAllActions(TRUE));
                ClearPersonalReputation(oPlayer,oEnemy);
                ChangeFaction(oEnemy,oNetral);
      }
      oEnemy = GetNextObjectInArea(oArea);
    }
}
//------------------------------------------------------------------------------
void ChangeNetralToEnemy(object oPlayer, object oLeader=OBJECT_SELF)
{
    object oArea  = GetArea(oPlayer);
    object oEnemy = GetFirstObjectInArea(oArea);
    while (GetIsObjectValid(oEnemy))
        {
          if (GetFactionEqual(oEnemy, oLeader) && oEnemy != oLeader  && oEnemy!=oPlayer)
          {
            AssignCommand(oEnemy,ClearAllActions(TRUE));
            ClearPersonalReputation(oPlayer,oEnemy);
            ChangeToStandardFaction(oEnemy,STANDARD_FACTION_HO
STILE);
          }
        oEnemy = GetNextObjectInArea(oArea);
        }
    DelayCommand(1.0, AssignCommand(oLeader,ClearAllActions(TRUE)));
    DelayCommand(1.0, ChangeToStandardFaction(oLeader,STANDARD_FACTION_H
OSTILE));
}
//------------------------------------------------------------------------------
void ChangeEnemyToStandard(object oObjectToChangeFaction, int nStandardFaction)
{
    object oPlayer = GetFirstPC();
    object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPlayer);
    object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPlayer);
    object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPlayer);
    object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPlayer);
    if (GetIsObjectValid(oObjectToChangeFaction))
    {
              if (GetIsEnemy(oPlayer,oObjectToChangeFaction))
                {
//----------------------- Обработка помощников -------------------------------//
                if(oAnimal != OBJECT_INVALID) {
                AssignCommand(oAnimal,ClearAllActions(TRUE));
                ClearPersonalReputation(oAnimal,oObjectToChangeFac
tion);}
                if(oDominated != OBJECT_INVALID){
                AssignCommand(oDominated,ClearAllActions(TRUE));
                ClearPersonalReputation(oDominated,oObjectToChange
Faction);}
                if(oFamiliar != OBJECT_INVALID){
                AssignCommand(oFamiliar,ClearAllActions(TRUE));
                ClearPersonalReputation(oFamiliar,oObjectToChangeF
action);}
                if(oSummoned != OBJECT_INVALID){
                AssignCommand(oSummoned,ClearAllActions(TRUE));
                ClearPersonalReputation(oSummoned,oObjectToChangeF
action);}
                int i = 1;
                object oHench = GetHenchman(oPlayer, i);
                  while(oHench != OBJECT_INVALID)
                    {
                    AssignCommand(oHench,ClearAllActions(TRUE));
                    ClearPersonalReputation(oHench,oObjectToChangeFact
ion);
                    i++;
                    oHench = GetHenchman(oPlayer, i);
                    }
                AssignCommand(oObjectToChangeFaction,ClearAllActio
ns(TRUE));
                ClearPersonalReputation(oPlayer,oObjectToChangeFac
tion);
                ChangeToStandardFaction(oObjectToChangeFaction, nStandardFaction);
                  }
    }
}
//------------------------------------------------------------------------------
void ClearFactionReputation(object oPC, object oFaction=OBJECT_SELF)
{
    object oMember = GetFirstFactionMember(oFaction, FALSE);

    while (oMember != OBJECT_INVALID)
    {
        ClearPersonalReputation(oPC, oMember);
        oMember = GetNextFactionMember(oFaction, FALSE);
    }
}
//------------------------------------------------------------------------------
void ClearAllPersonalReputation(object oMaster, object oSource=OBJECT_SELF, int iClearAllActions = FALSE)
{
    object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oMaster);
    object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oMaster);
    object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oMaster);
    object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oMaster);

    if(iClearAllActions = TRUE)
    AssignCommand(oMaster,ClearAllActions(TRUE));
    ClearPersonalReputation(oMaster, oSource);

    if(oAnimal != OBJECT_INVALID)
    {
      if(iClearAllActions = TRUE)
      AssignCommand(oAnimal,ClearAllActions(TRUE));
      ClearPersonalReputation(oAnimal, oSource);
    }
    if(oDominated != OBJECT_INVALID)
    {
      if(iClearAllActions = TRUE)
      AssignCommand(oDominated,ClearAllActions(TRUE));
      ClearPersonalReputation(oDominated, oSource);
    }
    if(oFamiliar != OBJECT_INVALID)
    {
      if(iClearAllActions = TRUE)
      AssignCommand(oFamiliar,ClearAllActions(TRUE));
      ClearPersonalReputation(oFamiliar, oSource);
    }
    if(oSummoned != OBJECT_INVALID)
    {
      if(iClearAllActions = TRUE)
      AssignCommand(oSummoned,ClearAllActions(TRUE));
      ClearPersonalReputation(oSummoned, oSource);
    }
    int i = 1;
    object oHenchman = GetHenchman(oMaster, i);
    while(oHenchman != OBJECT_INVALID)
    {
      if(iClearAllActions = TRUE)
      AssignCommand(oHenchman,ClearAllActions(TRUE));
      ClearPersonalReputation(oHenchman, oSource);
      i++;
      oHenchman = GetHenchman(oMaster, i);
    }
}
void DestroyEncounterCreature(object oTarget = OBJECT_SELF)
{
object oCreaturse = GetFirstObjectInArea(GetArea(oTarget));
while (oCreaturse!=OBJECT_INVALID)
{
    if(GetIsEncounterCreature(oCreaturse) == TRUE)
    {
      DestroyObject(oCreaturse);
    }
    oCreaturse = GetNextObjectInArea(GetArea(oTarget));
}
}
//------------------------------------------------------------------------------
/*
void main(){}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ogneslav
сообщение Jul 10 2008, 09:08
Сообщение #2995


Level 4
**

Класс: Друид
Характер: True Neutral
Раса: Человек



Товарищи, я бы хотел сделать заклинание glyph of warding(символ охраны) эпическим, тоесть усилить его, в принцыпе это для меня было не сложно, вопрос возник в скриптах, так как я в скриптах не разбираюсь вообще(недавно только самоучитель скачал),
я хочу вас попросить написать мне пример этого скрипта обьяснить где что менять и куда писать потом адрес на скрипт!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение Oct 8 2008, 03:24
Сообщение #2996


Level 8
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Дракон
NWN: Скриптинг [PW]



Ogneslav, все спеллы (точнее, последствия их применения) лежат во встроенных в нвн скриптах. Ставишь галочку в тулсете "Показывать все ресурсы", находишь скрипт *_glyph* (nw\xp1\xp2), открываешь и видишь там циферки дамага. Меняешь, компилишь и сохраняешь скрипт. Усё.
По причине временного отсутствия тулсета под рукой пример кинуть не могу.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DanaVolgograd
сообщение Nov 5 2008, 21:45
Сообщение #2997


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Как можно заставить объект двигаться к определенной точке. Наподобие ActionMoveToObject только не для НПС, а для объекта? (необходимо сделать движение стенобитного орудия к воротам-вейпоинту).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Nov 5 2008, 22:10
Сообщение #2998


Level 7
**

Класс: Некромант
Характер: True Neutral
Раса: Нежить



Нет, тебе надо перенести файлы appearance от плейса в creature, потом отредактировать appearance.2da(или как-то так), тогда ты сможешь создать существо такого вида, применить к нему ActionMoveToLocation(). Работу с инвентарем там уж можно будет организовать, скажем, через торговлю.

Сообщение отредактировал greye - Nov 5 2008, 23:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DanaVolgograd
сообщение Nov 5 2008, 22:20
Сообщение #2999


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



дада, именно (IMG:style_emoticons/kolobok_light/smile.gif)
прочитала тут следующее:
Цитата
ВОПРОС
Как сделать чтоб корабль плыл (ковер-самолет летал, повозка ездила и т.д.)?

ОТВЕТЫ
Для этого необходимо переделать плейс (placeable) корабля в крича (creature). Тогда этим объектом можно будет управлять с помощью процедуры ActionMoveToObject(). Однако, по воде передвигать корабль всё равно не получится, т.к. по воде нельзя двигаться вообще - это запрещено движком.

Это "с нуля"? То бишь CreateObject? Ну допустим сделаю я это, а как мне привязать те события что были к непу потом? К примеру, на этом плейсовом таране (стенобитном орудии) стоит флажок имеет инвентарь, и соответвенно при нажатии на него - вылазит окно инвентаря. Так же стоит событие OnClose для проверки при закрытии инвентаря... как с этим быть?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Nov 5 2008, 23:30
Сообщение #3000


Level 11
Иконки Групп

Класс: Волшебник
Характер: Lawful Evil
Раса: Эльф
NWN: Скриптинг [PW]
Gem of the North



Можно создавать рядом невидимый плейс с инвентарём и с ним уже работать.
П. С. Моё почтение гемовскому игроку (IMG:style_emoticons/kolobok_light/smile.gif) Сорри, не удержался (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 118 119 120 121 122 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th April 2024 - 00:42