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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 131 132 133 134 135 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Ilerien
сообщение Jun 1 2010, 22:56
Сообщение #3296


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

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



Цитата
Чорт, на 1,69 переходить совсем не хочется, много лишнего и с dialog.tlk проблемы.
Actually, никаких проблем. Полностью переведённый dialog.tlk для 1.69. А лишнее же всегда можно не использовать, верно?
Вернул на место ссылку на плейграунд. Алсо, не первый случай, когда ссылки на плейграунд начинают магическим образом вести на вpг. Достойный способ потешить самолюбие, ничего не скажешь.

Сообщение отредактировал Ilerien - Jun 7 2010, 19:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Batkom
сообщение Jun 2 2010, 02:32
Сообщение #3297


Level 4
**

Класс: Клерик
Характер: Lawful Good
Раса: Человек



Ух-ты!
Вот спасибо. (впрочем, я еще конечно поканителюсь с переходом на 1.69, конечно, не известно, чем это грозит, главное, чтобы с тайлсетом ничего не стряслось)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ReyBrujo
сообщение Jun 6 2010, 19:07
Сообщение #3298


Level 2
*

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



Вот один из моих скриптиков, который я использовал как спец-атаку монстра (в моем случае дракона).
Действует он так :
1. Проставляем переменные.
2. Чекаем локацию НПЧ на наличие валидных созданий - врагов.
3. Если враг ,- НПЧ ,- то парализуем его на 10-20 сек.
4. Если враг ПЧ - парализуем на 10-20 сек и колдуем на него заклинание огненного шара.
5. Записываем локальную переменную специальных атак.

Может, кому - то понадобится. =)

Neverwinter Script
/////////////////////////////////////////////////////
//////        /////    //////  //  //            //
/////        //  //  //      //  //            ///
////          /////    /////    /////          ////
///          //  //  //          //          /////
//            //  //  //////  /////          //////
/////////////////////////////////////////////////////
// Copyright © Rey Brujo, ma-zi-la@hotmail.com  //
// Created By: ReyBrujo, City Of Masters          //
// Created On: 06/06/2010                          //
/////////////////////////////////////////////////////

void main()
{
object oNPC = OBJECT_SELF; // NPC
object oPC = GetFirstPC(); // Player
int nHP = (GetCurrentHitPoints() / GetMaxHitPoints())*100; // Hit Points (in (IMG:style_emoticons/kolobok_light/wacko.gif)
int nSAtt = GetLocalInt(oNPC, "specatt"); // Special Attack integer
int nNHP = 50;

if(nHP < nNHP && nSAtt >= 1)
    {
    nSAtt -= 1;
    object oCreature = GetFirstObjectInArea(GetArea(oNPC));
    while(GetIsObjectValid(oCreature)) // Check for valid creatures (enemies). If it exists - cast chosen spells/effects.
        {
        // NPC //
        if(GetObjectType(oCreature) == OBJECT_TYPE_CREATURE && GetIsEnemy(oCreature) == TRUE && GetIsPC(oCreature) == FALSE)
            {
            ClearAllActions(TRUE);
            ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectParalyze(), oCreature, 10.0+Random(10));
            }

        // PC //
        if(GetObjectType(oCreature) == OBJECT_TYPE_CREATURE && GetIsEnemy(oCreature) == TRUE && GetIsPC(oCreature) == TRUE)
            {
            ClearAllActions(TRUE);
            ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectParalyze(), oCreature, 10.0+Random(10));
            ClearAllActions(TRUE);
            SetFacingPoint(GetPosition(oPC));
            ActionDoCommand(ActionCastSpellAtObject(SPELL_FIRE
BALL, oPC, METAMAGIC_EMPOWER, TRUE));
            ActionWait(0.5);
            }
        oCreature = GetNextObjectInArea(GetArea(oNPC)); // Continue checking
        }
    SetLocalInt(oNPC, "specatt", nSAtt); // Set number of special attacks
    }
}


Тот скрипт, который я выложил в прошлом посте - это только часть моего плана спец атаки.
Если кто-то может, подскажите, как сделать, чтобы дракон взлетал, висел немного(можно без висения), пускал несколько огненных шаров (любым способом) и опускался нормально на землю.
Я пробовал такое сделать, но мой дракон либо только взлетал и исчезал в облаках (дизаппир-аппир), либо просто взлетал - садился (рассоединенные дизаппир и аппир с клиром действий), либо просто тупил.

Еще одно забыл сказать - действие происходит только если у НПК хп меньше чем nNHP % (у меня поставлено 50)

И еще одно - не забудьте в переменные НПЧ поставить переменную specatt, которая больше 0.

Этот скрипт ставится на хертбит монстра (IMG:style_emoticons/kolobok_light/wacko.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Laajin
сообщение Jun 7 2010, 08:10
Сообщение #3299


Level 5
**

Класс: Пьяный Мастер
Характер: Chaotic Good
Раса: Человек



Два варианта:
1. тебе нужно изучить 3д макс и там сделать свою анимацию.
2. На nwn vault я видел хек пак где сделаны летающие драконы, впринципе можно сделать чтобы происходила замена модели - стоящего на лапах, на летящего в воздухе, а потом наоборот.

честно говоря боле вариантов я не вижу, потому что функции аппер-дизаппер они по другому работать не могут.

Сообщение отредактировал Laajin - Jun 7 2010, 08:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ReyBrujo
сообщение Jun 8 2010, 18:19
Сообщение #3300


Level 2
*

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



Вот начал делать собственный мультиплеерный модуль. Никак не могу сделать две вещи - скрипт на вход(игрок заходит, его должно перенести на вейпоинт) и скрипт, который бы при создании НПЧ давал им команду атаки ближайшего врага.
Пока что есть вот что:
1. (ОнЕнтер триггера под точкой входа)
Neverwinter Script
void main()
{
//////////// MY SCRIPTS ////////////
//--------------------------------//
////////////////////////////////////
object oPC = GetEnteringObject();
object oGame = GetObjectByTag("GAME");
object oGuard = GetObjectByTag("NW_ELFRANGER001");
object oSieger = GetObjectByTag("NW_DROWCLER001");
int nPlayers = GetLocalInt(oGame, "players");
int nGuards = GetLocalInt(oGame, "guards");
int nSiegers = GetLocalInt(oGame, "siegers");
if(GetIsPC(oPC) == TRUE)
{
SetLocalInt(oGame, "players", nPlayers+1); //Set number of players to +1
if(nGuards>nSiegers)
{//Set number of siegers to +1
JumpToObject(GetWaypointByTag("wp_siegers"));
SetStandardFactionReputation(STANDARD_FACTION_HOST
ILE, 100, oPC);
SetStandardFactionReputation(STANDARD_FACTION_DEFE
NDER, 0, oPC);
SetLocalInt(oGame, "siegers", nSiegers+1);
SpeakString(IntToString(nSiegers));
}
else
{//Set number of guards to +1
JumpToObject(GetWaypointByTag("wp_guards"));
SetStandardFactionReputation(STANDARD_FACTION_HOST
ILE, 0, oPC);
SetStandardFactionReputation(STANDARD_FACTION_DEFE
NDER, 100, oPC);
SetLocalInt(oGame, "guards", nGuards+1);
SpeakString(IntToString(nGuards));
}
///////// OTHER SCRIPTS /////////
//-----------------------------//
/////////////////////////////////

// ITEMS //
CreateItemOnObject("potion001", oPC);
CreateItemOnObject("potion001", oPC);
CreateItemOnObject("potion001", oPC);
CreateItemOnObject("potion001", oPC);
CreateItemOnObject("potion001", oPC);
}
}


2. (Хертбит. Инклюд "inc_nearest" просто перенаправляет на "x0_i0_enemy" (чтобы удобнее было искать =) ))
Neverwinter Script
#include "nw_i0_generic"
#include "inc_nearest"

void main()
{
//////////////////////////////////////////
// тут обычные скрипты хертбита //
//////////////////////////////////////////
    if(GetCurrentAction() != ACTION_ATTACKOBJECT)
    {
    ActionAttack(GetNearestEnemy(), TRUE);
    }
}


В первом скрипте всё, кроме джамп ту вейпоинт работает нормально. С вейпом проблем вроде-бы нет.
А во втором скрипте я долго пытался намутить, один раз что-то получилось, но тогда у мну вылетел тулсет, а я не помню, что сделал.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 8 2010, 18:38
Сообщение #3301


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

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



1) Во-первых, джамп в НВНе переносит объект, вызвавший функцию (ты пытаешься перенести триггер). Во-вторых, он сделан криво, перед джампом обязательно вызывать ClearAllActions(TRUE) для нужного объекта. Т. е. в этом случае:
Neverwinter Script
AssignCommand(oPC, ClearAllActions(TRUE));
AssignCommand(oPC, JumpToObject(GetWaypointByTag("wp_siegers")));
Для непися аналогично.

2) Я полагаю, эти самые "стандартные скрипты хербита" забивают стек экшенов так, что атака выполняется хз когда (IMG:style_emoticons/kolobok_light/smile.gif)

Сообщение отредактировал Ilerien - Jun 8 2010, 18:39
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ReyBrujo
сообщение Jun 8 2010, 19:53
Сообщение #3302


Level 2
*

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



За перенос объекта огромнейшее спасибо=) подействовало. А вот мои чудаки ни в какую не хотят бежать на врага, даже когда в скрипте хертбита ничего кроме атаки нет... тупо стоят, пока я не подойду к ним.

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



Проверил отношения фракций - все в норме..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 8 2010, 20:26
Сообщение #3303


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

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



Цитата
По плану эти осаждающие должны сразу же бежать бить ближайшего врага. А они тупо появляются, и стоят. Хотя они являются вражеской к защитникам фракцией.
Посмотреть, что возвращает GetNearest Enemy() и GetCurrentAction().
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
ReyBrujo
сообщение Jun 8 2010, 20:40
Сообщение #3304


Level 2
*

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



Neverwinter Script
// Gets the nearest enemy. Берет ближайшего врага
object GetNearestEnemy(object oSource=OBJECT_SELF, int nNth = 1)
{
    return GetNearestCreature(CREATURE_TYPE_REPUTATION,
                              REPUTATION_TYPE_ENEMY,
                              oSource, nNth);
}


Neverwinter Script
// Get the current action (ACTION_*) that oObject is executing. Берет текущее действие которое исполнЯет объект.
int GetCurrentAction(object oObject=OBJECT_SELF)


Всё! У меня получилось!
Вот на что я изменил хертбит:
#include "nw_i0_generic"
#include "inc_nearest"

Neverwinter Script
void main()
{
    if(GetCurrentAction() != ACTION_ATTACKOBJECT)
    {
    ClearAllActions();
    ActionAttack(GetNearestEnemy());
    }
}


После пессив мода они поползли=)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Ilerien
сообщение Jun 8 2010, 20:41
Сообщение #3305


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

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



Цитата
Посмотреть, что возвращает GetNearest Enemy() и GetCurrentAction().
(IMG:style_emoticons/kolobok_light/smile.gif) Имелось в виду выполнить скрипт:
Neverwinter Script
object oSelf = OBJECT_SELF;
AssignCommand(GetModule(), SpeakString("Action: " + IntToString(GetCurrentAction(oSelf)), TALKVOLUME_SHOUT));
AssignCommand(GetModule(), SpeakString("Nearest enemy: " + GetName(GetNearestEnemy(oSelf)), TALKVOLUME_SHOUT));
Цитата
После пессив мода они поползли=)
Ну значит мое первое предположение в широком смысле верно - что-то забивает стек экшенов.

Сообщение отредактировал Ilerien - Jun 8 2010, 20:43
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Rommantic
сообщение Jun 11 2010, 16:36
Сообщение #3306


Level 1


Класс: Страж Тьмы
Характер: Lawful Evil
Раса: Эльф



Доброго времени суток. Боюсь показаться тупым юзером, но у меня не работает встроенный в редактор скрипт "дать награду" что-либо. Не выдаёт ни денег, ни опыта ни вещей. Что у меня неверно? Вот так на данный момент выглядит скрипт:

//::///////////////////////////////////////////////
//:: FileName at_003
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 11.06.2010 17:34:41
//:://////////////////////////////////////////////
void main()
{
// Äàòü ãîâîðÿùåìó îïûò
GiveXPToCreature(GetPCSpeaker(), 10);

}

Вместо абракадабры, соответственно " Дать говорящему опыт"
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 11 2010, 16:46
Сообщение #3307


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

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



маленькая буква "я" в скрипте - древнейшая проблема, о упоминание о которой есть в куче тем.
Убирай русский коммент или, что гораздо лучше, ставь патч Думбо
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Rommantic
сообщение Jun 12 2010, 06:22
Сообщение #3308


Level 1


Класс: Страж Тьмы
Характер: Lawful Evil
Раса: Эльф



Благодарю. Страниц море всё читать - никакого времени не хватит ) Честно пролистал первые две страницы этого раздела, не нашёл )

Пойду разбираться с патчем: как и куда втыкать ) Более чем уверен, что будут ещё вопросы, так что моралььно готовьтесь: я тот ещё чайник )) (IMG:style_emoticons/kolobok_light/crazy.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 12 2010, 07:37
Сообщение #3309


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

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



Rommantic, есть еще версия для печати и поиск по странице. Плюс, есть скрипты для новичков там всяко разно есть то что ищется. Например, Вот тут.

Neverwinter Script
//:://////////////////////////////////////////////
//:: Даем партии ХР
//:: Copyright © 2005 WRG!
//:://////////////////////////////////////////////
//:: Created By: Aiwan
//:: Created On: 18.09.2005
//:://////////////////////////////////////////////
#include "nw_i0_tool"

void main()
{
    RewardPartyXP(150, GetPCSpeaker());
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Rommantic
сообщение Jun 12 2010, 07:53
Сообщение #3310


Level 1


Класс: Страж Тьмы
Характер: Lawful Evil
Раса: Эльф



Вот,кстати, сразу и вопрос. Если мне нужно написать скрипт оценки наличия определённого количества золота у игрока, где пивать количество золота? Пока что выглядит оно вот так:
Neverwinter Script
//::///////////////////////////////////////////////
//:: FileName sc_002
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 12.06.2010 8:44:20
//:://////////////////////////////////////////////
#include "nw_i0_tool"

int StartingConditional()
{

    // Удостовериться, что в снаряжении персонажа игрока имеются данные предметы
    if(!HasItem (GetPCSpeaker(), "NW_IT_GOLD001") )
        return FALSE;

    return TRUE;
}


Попытался методом тыка, пока что пришёл к такому варианту (компелирует, но не работает):

Neverwinter Script
//::///////////////////////////////////////////////
//:: FileName sc_002
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 12.06.2010 8:44:20
//:://////////////////////////////////////////////
#include "nw_i0_tool"

int StartingConditional()
{

    // Удостовериться, что в снаряжении персонажа игрока имеются данные предметы
    if(!HasItem (GetPCSpeaker(), "NW_IT_GOLD001 (1000)") )
        return FALSE;

    return TRUE;
}


как правильно? (IMG:style_emoticons/kolobok_light/unsure.gif)
Причины изменения: Для скриптов есть тег [nss]
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Jun 12 2010, 08:55
Сообщение #3311


Level 7
**

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



Есть функция GetGold().
Соответственно:
Neverwinter Script
if (GetGold(GetPCSpeaker()) < 1000) {
    return FALSE;
}
return TRUE;


Сообщение отредактировал greye - Jun 12 2010, 08:59
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
likkil
сообщение Jun 12 2010, 22:22
Сообщение #3312


Level 2
*

Класс: Вор
Характер: Lawful Good
Раса: Человек



Доброго времени суток
У меня такой вопросик : вот у меня есть модуль старой версии 1.6 , а так охота в нём покататся на лошадях какие команды мне использовать в скрипте чтоб это было возможно
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 13 2010, 08:45
Сообщение #3313


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

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



Цитата(likkil @ Jun 13 2010, 00:22) *
а так охота в нём покататся на лошадях какие команды мне использовать в скрипте чтоб это было возможно

Команда - НО!!! Трогай! - двигаться вперед.
Команда - ТРРРРР! - остановка.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Laajin
сообщение Jun 14 2010, 14:37
Сообщение #3314


Level 5
**

Класс: Пьяный Мастер
Характер: Chaotic Good
Раса: Человек



likkil
это долгая история
во первых что за модуль...кастомный иль не кастомный - вопрос непонятен
во вторых лошадки появляются только после патча 1.69
до него жалкие попытки покататься на лошадках выливались в тяжелые хаки и муторные системы скриптов.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
denis0k
сообщение Jun 14 2010, 17:13
Сообщение #3315


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [PW]
Gem of the North
Край Лесов



В 1.69 по сути те же хаки (просто включены в ресурсы игры) и те же муторные системы скриптов. Ничего конкретно нативного в коняшках нет - всё тот же геморрой с кастомными анимациями и подменой аппиаранса. Изврат в общем.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение Jun 19 2010, 17:56
Сообщение #3316


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



Здравствуйте. У меня не работает (или постоянно удаётся, даже при минусовых значениях навыка) проверка убеждения для появления реплики, соотв. фраза всегда доступна в диалоге. Где косяк?
Neverwinter Script
#include "nw_i0_tool"

int StartingConditional()
{
    if(!GetHasSkill(SKILL_PERSUADE, GetPCSpeaker()))
    if(!(AutoDC(DC_MEDIUM, SKILL_PERSUADE, GetPCSpeaker())))
        return FALSE;;

    return TRUE;;
}


А так же http://www.city-of-masters.ru/forums/index...0&start=200 последний пост (18.06.2010)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 21 2010, 05:48
Сообщение #3317


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

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



Попробуй как-то так.
Neverwinter Script
#include "nw_i0_tool"

int StartingConditional()
{
    if(!GetHasSkill(SKILL_PERSUADE, GetPCSpeaker()) || !AutoDC(DC_MEDIUM, SKILL_PERSUADE, GetPCSpeaker()))
        return FALSE;
    return TRUE;
}


У тебя ошибка, во первых две пары дочки тире, во вторых после IF ставится скобка и в скобке выполняется условие. Если скобки не ставить (как у тебя) то будет выполнено только самое первое и одно условие. Твой скрипт можно было записать и так:
Neverwinter Script
#include "nw_i0_tool"

int StartingConditional()
{
    if(!GetHasSkill(SKILL_PERSUADE, GetPCSpeaker()))
        return FALSE;
    if(!AutoDC(DC_MEDIUM, SKILL_PERSUADE, GetPCSpeaker()))
        return FALSE;
    return TRUE;
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение Jun 21 2010, 14:01
Сообщение #3318


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



спс заработало (IMG:style_emoticons/kolobok_light/yahoo.gif) а как проверить отсутствие навыка (фраза а-ля "я нуб, я не качал убеждение, блеф и запугивание и у меня нет денег. Я должен умереть!)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Jun 21 2010, 14:49
Сообщение #3319


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

Класс: Обыватель
Характер: Lawful Good
Раса: Человек
NWN: Модмейкер
Рыцарская Сага



Как раз первая проверка в скрипте и есть проверка навыка убедить... А вот дальше идет бросок, записанный в инклюде. Я же пользуюсь своими скриптами проверки необходимого навыка на убеждение + строка в отчете, что там как прошло:
Neverwinter Script
//::///////////////////////////////////////////////
//:: Проверка навыка "УБЕДИТЬ" сложность НОРМАЛЬНО.
//:://////////////////////////////////////////////
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nSkillZ = GetSkillRank(SKILL_PERSUADE, oPC);
int nDC = 2 + d3();

  if(nSkillZ > nDC)
    {
    SendMessageToPC(oPC, "<c у >Убедить</c><c °у> Бросок : "+IntToString(nSkillZ)+" против "+IntToString(nDC)+" </c><c у >УДАЧА</c>");
    return TRUE;
    }
    SendMessageToPC(oPC, "<c у >Убедить</c><c °у> Бросок : "+IntToString(nSkillZ)+" против "+IntToString(nDC)+" </c><cу  >ПРОВАЛ</c>");
    return FALSE;
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
wirTUS
сообщение Jun 22 2010, 19:40
Сообщение #3320


Level 5
**

Класс: Убийца
Характер: Lawful Evil
Раса: Человек



Ещё один глупый вопрос:

есть скрипт (подгон под себя первого скрипта выложенного Aiwan в разделе "Скрипты для новичков") с попыткой перед дестроем из инвентаря сложить всё в сундук



Neverwinter Script
void main()
{
    object oChest = GetObjectByTag("piratechest");
    object oPC = GetEnteringObject(); // Того кто вошел
    object oArmor = GetObjectByTag("item112");

//-----------------В сундук---------------------
        object oItem = GetFirstItemInInventory(oPC); // Первый итем в инвентаре
        while(GetIsObjectValid(oItem)) // Пока такой объект существует
        {
            ActionGiveItem(oItem, oChest);
            DestroyObject(oItem);
            oItem = GetNextItemInInventory(oPC); // Берем другой объект...
        }

//------------------ Убиваем весь инвентарь ------------------------------------
        while(GetIsObjectValid(oItem)) // Пока такой объект существует
        {
        DestroyObject(oItem);
        oItem = GetNextItemInInventory(oPC); // Берем другой объект...
        }

    int i=0;
        while(i<14) // ПОКА i меньше 14. 14 - это количество всех слот у объекта
        {
        ActionGiveItem(GetItemInSlot(i, oPC), oChest);
        i++;
        ActionGiveItem(GetItemInSlot(i, oPC), oChest);
        }

//------------------ Убиваем всю амуницию -------------------------------------
        while(i<14) // ПОКА i меньше 14. 14 - это количество всех слот у объекта
        {
        DestroyObject(GetItemInSlot(i, oPC));
        i++;
        DestroyObject(GetItemInSlot(i, oPC));
        }
        // Было ноль к примеру, станет 1 и т.д.

//  -------------------одёжка-------------------------
        CreateItemOnObject("item112", oPC, 1);
        AssignCommand(oPC, ActionEquipItem(oArmor, INVENTORY_SLOT_CHEST));
}


Проблемы:
1) В сундук ничего не попадает
2) Уничтожаются только неодетые вещи
3) Следует из проблемы 2) - одёжка не одевается (но появляется в инве)

На всякий случай:
1) Скрипт стоит на onenter локации
2) Проверки на повторность захода в локацию etc нету т.к. предусмотрено только одиночное её посещение и модуль планируется сингловый
3)"item112" и тэг и ресреф вещи
4) item 112 ничего не требует для ношения
5) на onclientrun модуля стоит скрипт схожего действия (при надобности запосчу) (он работает) вышеуказанный скрипт не работает и с и без включённого модулестартоовского
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 131 132 133 134 135 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 2nd August 2025 - 15:22