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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> Скрипты: Просьбы о написании, Все просьбы по написанию скриптов
Aiwan
сообщение Apr 2 2006, 18:46
Сообщение #1


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

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



Если вам нужен скрипт, который вы не наши на форуме и не в состоянии написать сами, то тут можете попросить других форумчан о помощи. Таким образом в теме только запрос и скрипт под него, ничего более. Если вам нужно оптимизировать скрипт или понять, почему он плохо работает, то вам сюда.

___
База скриптов (NWN)
Скрипты для новичков (NWN)
Вопросы по скриптам (NWN)
Построение скриптовых сцен (NWN)
Вопросы по скриптам (NWN2)

Так как скриптинг не сильно изменился, то большая часть вещей, написаная под НВН1 нормально работает и в НВН2. Посмотрите в этих темах, вполне возможно вы найдете интересующую вас информацию.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
3 страниц V   1 2 3 >  
Открыть новую тему
Ответов (1 - 59)
Lex
сообщение Feb 9 2007, 15:48
Сообщение #2


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

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



разговоры об архиве статей тудысь: http://www.city-of-masters.ru/forums/index...=2580&st=50
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sugo77
сообщение May 2 2007, 20:07
Сообщение #3


Level 3
*

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



Привет всем мне требуются 2 скрипта:первый на респ монстров и нпс, через какоето время
и второй на смену фракции ну то есть подхожу к какомуто предмету тыкаю на него и стаю враждебен (хостаил) другому игроку автоматически(как намногих пвп шардах).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 21 2007, 22:04
Сообщение #4


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Пробую написать скрипт на дверь, которая должна открываться при проверке на две переменные. В 13 строке (это вторая снизу фигурная скобка) выдает ERROR: INCORRECT VARIABLE STATE LEFT ON STACK. Не подскажут ли мне, где ошибка?

Neverwinter Script Source
int StartingConditional()
{
    object oPC = GetPCSpeaker();

    if(GetIsPC(oPC))
    {
        if((GetLocalInt(oPC, "ПЕРЕМЕННАЯ_1") == 1) & (GetLocalInt(oPC, "ПЕРЕМЕННАЯ_2") == 1))

        object oDr1 = GetObjectByTag("DOOR_KEP_ENT");

        SetLocked(oDr1,FALSE);
        AssignCommand(oDr1, ActionOpenDoor(oDr1));
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Jadent
сообщение Sep 22 2007, 00:18
Сообщение #5


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN2: Маппинг



1. int StartingConditional() — это для условия в диалоге. Т.е. появится данная фраза или нет. А в данном случае нужно использовать void main()
2. Во втором условии (где проверяются переменные) лучше использовать оператор &&, а не & (мелочь, правда, но все-таки).
3. После этого же условия не хватает операторных скобок: "{" на 8 строке, "}" после 12 строки (из-за этого не компилируется).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Sep 22 2007, 00:30
Сообщение #6


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

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



4. object oDr1 = GetObjectByTag("DOOR_KEP_ENT"); лучше вынести из-под условия, разделив на 2 части
Neverwinter Script Source
object oDr1;
...
if ()
  {
  oDr1 = GetObjectByTag("DOOR_KEP_ENT");
  }

в данном скрипте не критично, но в более сложных может сыграть плохую шутку.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Sep 22 2007, 14:11
Сообщение #7


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

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



Цитата
Пробую написать скрипт на дверь, которая должна открываться при проверке на две переменные. В 13 строке (это вторая снизу фигурная скобка) выдает ERROR: INCORRECT VARIABLE STATE LEFT ON STACK. Не подскажут ли мне, где ошибка?

shadowdweller, если используете int StartingConditional(), то нужно обязательно использовать return… (поэтому скрипт и не компилится)

Второе, после проверки условия, если нужно выполнить несколько операций, то нужно записать все действия в скобочках. Иначе выполнится только одна нижняя строка под проверкой…

Neverwinter Script Source
if((GetLocalInt(oPC, "ПЕРЕМЕННАЯ_1") == 1) & (GetLocalInt(oPC, "ПЕРЕМЕННАЯ_2") == 1))
object oDr1 = GetObjectByTag("DOOR_KEP_ENT");

Проверку на ГГ делать не надо, ведь на нем должно висеть две локалки – этого более чем достаточно… (IMG:style_emoticons/kolobok_light/biggrin.gif)

Ваш скрипт можно записать примерно так:

Neverwinter Script Source
int StartingConditional()
{
object oPC = GetPCSpeaker();
object oDr1 = GetObjectByTag("DOOR_KEP_ENT");

if(GetLocalInt(oPC, "ПЕРЕМЕННАЯ_1") == 1 & GetLocalInt(oPC, "ПЕРЕМЕННАЯ_2") == 1)
{
  SetLocked(oDr1,FALSE);
  AssignCommand(oDr1, ActionOpenDoor(oDr1));
  SpeakString("Проходите!");
  return TRUE;
}
else
{SpeakString("Вы не можете пройти!"); return FALSE;}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
shadowdweller
сообщение Sep 22 2007, 20:11
Сообщение #8


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

Класс: Вор
Характер: Chaotic Good
Раса: Эльф
МАСТЕР Переводов



Спасибо, господа! Пойду ковырять. (IMG:style_emoticons/kolobok_light/smile.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 2 2007, 20:52
Сообщение #9


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

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



вопросы про ГУИ и интерфейсные моды перенесены сюда: http://www.city-of-masters.ru/forums/index...?showtopic=2580
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Валеско
сообщение Oct 20 2007, 23:15
Сообщение #10


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

Класс: Бард
Характер: Chaotic Neutral
Раса: Животное
МАСТЕР Пера



Решил переписать скрипт:

Neverwinter Script Source
void main( )
{
object oWeapon = GetItemInSlot
( INVENTORY_SLOT_RIGHTHAND,
GetLastUsedBy( ) );

if ( !GetIsObjectValid( oWeapon )) return;
AddItemProperty( DURATION_TYPE_TEMPORARY,
ItemPropertyDamageBonus
( IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGEBONUS_1d6
)
, oWeapon, 40.0 );
}



который на жаровне. Нужно чтобы распространялся только на оружие с определенным тегом и это оружие по истечении времени исчезало (расплавлялось). Можно, чтобы в конце еще кидало сообщение что "оружие расплавилось".
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Jadent
сообщение Oct 21 2007, 01:47
Сообщение #11


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN2: Маппинг



Я еще добавил сообщения-напоминания и спецэффект:

Neverwinter Script Source
//------------------------------ конфиг ------------------------------------------------------------------------------------------------------------
float fTime = 120.0; //время, через которое оружие расплавится
string sTag = "fire_weapon"; //тег оружия, которое игрок может здесь использовать
effect eEffect = EffectNWN2SpecialEffectFile( "sp_fire_cast" ); //спецэффект при наложении эффекта и уничтожении оружия
string sMesError = "Только особенное оружие может выдержать пламя этой жаровни."; //сообщение, выдаваемое когда у игрока нет оружия или оно имеет другой тег
string sMessage1 = "Оружие в ваших руках сильно нагревается от магического пламени."; //сообщение, выдаваемое через 1/4 времени до уничтожения оружия
string sMessage2 = "Оружие в ваших руках раскалено добела и понемногу начинает терять форму."; //сообщение, выдаваемое через 1/2 времени до уничтожения оружия
string sMessage3 = "Оружие в ваших руках плавится и скоро станет непригодным к использованию."; //сообщение, выдаваемое через 3/4 времени до уничтожения оружия
string sMessage4 = "Оружие в ваших руках окончательно расплавилось."; //сообщение, выдаваемое во время уничтожения оружия
//--------------------------------------------------------------------------------------------------------------------------------------------------

object oPlayer = GetLastUsedBy( );
object oWeapon = GetItemInSlot( INVENTORY_SLOT_RIGHTHAND, oPlayer );
void Melting( int iLevel );

void main( )
{
    if ( GetTag( oWeapon )!=sTag )
    {
        SendMessageToPC( oPlayer, "<color=red><b>"+sMesError+"</b></color>" );
        return;
    }
    if ( GetLocalInt( oWeapon, "Melting" ) ) return;
   
    SetLocalInt( oWeapon, "Melting", 1 );
    AddItemProperty( DURATION_TYPE_TEMPORARY, ItemPropertyDamageBonus( IP_CONST_DAMAGETYPE_FIRE, IP_CONST_DAMAGEBONUS_1d6 ), oWeapon, fTime );
    ApplyEffectToObject( DURATION_TYPE_INSTANT, eEffect, oPlayer );
    DelayCommand( 0.25*fTime, Melting( 1 ) );
}

void Melting( int iLevel )
{
    if ( GetItemInSlot( INVENTORY_SLOT_RIGHTHAND, oPlayer )==oWeapon )
    {
        switch ( iLevel )
        {
        case 1:
            SendMessageToPC( oPlayer, "<color=red><b>"+sMessage1+"</b></color>" );
        break;
        case 2:
            SendMessageToPC( oPlayer, "<color=red><b>"+sMessage2+"</b></color>" );
        break;
        case 3:
            SendMessageToPC( oPlayer, "<color=red><b>"+sMessage3+"</b></color>" );
        break;
        case 4:
            SendMessageToPC( oPlayer, "<color=red><b>"+sMessage4+"</b></color>" );
            ApplyEffectToObject( DURATION_TYPE_INSTANT, eEffect, oPlayer );
        break;
        }
    }
    if ( iLevel<4 ) DelayCommand( 0.25*fTime, Melting( iLevel+1 ) );
    else DestroyObject( oWeapon );
}

Хотелось бы увидеть комментарии мастеров по оптимизации.

Сообщение отредактировал Aiwan - Oct 21 2007, 10:03
Причины изменения: Нормальное общение, зачем прятать в оффтоп тег?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Валеско
сообщение Oct 21 2007, 08:06
Сообщение #12


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

Класс: Бард
Характер: Chaotic Neutral
Раса: Животное
МАСТЕР Пера



Заработало. Jadent, молоток, - отличный скрипт!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
gennady
сообщение Oct 21 2007, 11:43
Сообщение #13


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

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



Jadent, хорошо прибумал запустить функцию из самой функции! Молодец! Одно но, если присвоил предмету локалку, то и проверяй ее в функции Melting... Зачем проверять любое оружие в руке?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Jadent
сообщение Oct 21 2007, 13:36
Сообщение #14


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN2: Маппинг



Цитата(gennady @ Oct 21 2007, 12:43) *
Одно но, если присвоил предмету локалку, то и проверяй ее в функции Melting... Зачем проверять любое оружие в руке?
Вообще, это проверка на тот случай, когда игрок уже снял или выбросил "плавящееся" оружие. Чтобы не посылать ему ненужных сообщений.

А по локалке там проверять нельзя, иначе игроку будет идти сразу по несколько сообщений, если он сделает несколько таких "плавящихся" клинков.
Локалка-то на все оружия ставится одна и та же.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Apr 23 2008, 23:02
Сообщение #15


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

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



Переместил вопросы по скриптам сюда: Скрипты
Переместил одиночные вопросы сюда: Одиночные вопросы
и не нужно в следующий раз сразу в двух темах постить одно и то же. Одного раза более чем достаточно.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Celestial
сообщение May 17 2008, 14:27
Сообщение #16


Level 14
****

Класс: Обыватель
Характер: Lawful Neutral
Раса: Эльф



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

Технически вижу это так: если (условия для применения пенальти дроу/дургарам) = True, и если предмет из адамантина - то изъять у PC предмет и сделать надпись в лог-бокс PC.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kirald
сообщение May 28 2008, 22:38
Сообщение #17


Level 2
*

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



Маленькая просьба.
Нашел скрипт на проверку в диалогах спасброска на волю вот он

Код
// Will tests as used i the cinderella convo
int StartingConditional(int nDC)
{
    SetLocalInt(GetFirstPC(),"WILSAVE",nDC);
    
    int nSAVE = d20(1) + GetWillSavingThrow(GetFirstPC());
    
    SetCustomToken(100,GetStringByStrRef(16777844) +IntToString(nDC) +GetStringByStrRef(16777845) +IntToString(nSAVE) +GetStringByStrRef(16777808));
    
    // test line
    //return TRUE;
    
    if ( nSAVE >= nDC)
        return TRUE;
        
        return FALSE;
}


суваеться в диалог к остальным проверка, но просьба в другом.

1. Прошу добавить (для удобства) такую функцию чтобы можно было не возиться в скрипте ,ну чтобы поменять с проверки на волю на проверку на реакцию скажем, а простым добавлением цифр скажем суёш диалог в условия (conditions) и вместо одной графы (где надо задать число для проверки) две,во второй нужно ввести номер который приравниваеться к спасброску скажем 1- воля 2-реакция 3-внимательности и т.д. и т. п.

Заранее спасибо всем откликнувшимся (даже ругающимся админам (если они не ругаються конечно)))) а так же создателю или просто человеку который положил этот скрипт в свой модул (Крик волка) чуваку (в русском смысле)))) который создал модуль Крик волка, а так же его переводчикам журналу игромания или точнее формату С фуу-у-ух.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение May 29 2008, 14:15
Сообщение #18


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

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



а какая разница, писать "check_will/fort" или "check [1] [2]" - ? первое всё же нагляднее

Neverwinter Script
int StartingConditional(int nDC, int nType)
{
    object oPC = GetPCSpeaker();

    if (nType == 1)
    {
        return WillSave(oPC, nDC) != 0;
    }
    else if (nType == 2)
    {
        return ReflexSave(oPC, nDC) != 0;
    }
    return FortitudeSave(oPC, nDC) != 0;
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melshin
сообщение Oct 17 2008, 03:45
Сообщение #19


Level 2
*

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



Есть серьезная идея, над которой нужно подумать. В свое время создавал парсер локаций для системы телепортационных кругов. Круги менялись объектами, всякими.

Теперь возник другой вопрос. Существуют АОЕ заклинания. Возьмем 3 заклинания - масло, паутина и клауд килл.

Что нужно сделать по маслу - первоначальная простая версия - 1 лужа на кастера. Вторая, версия средней сложности - масло не стыкуется на 1 квадрате, т.е. 2 спаса кинуть в принципе невозможно, если АОЕ эффекты соприкасаются, то последний скастованный уничтожается.

С паутиной - в принципе то же самое, не должна стыковаться с маслом (т.е. тоже об него убивается). А также при соприкосновении паутина - паутина последний уничтожается, на первом увеличивается ДЦ.

Ну и клауд килл должен стыковать с остальными, при касте на 1 квадрат увеличивается ДЦ до определенного капа.

Это непросто, это сложно и требует полностью свои новые функции... Если вот эти 3 примера мне или кому-то или совместно удастся реализовать, то все остальное пойдет по шаблону...

ЗЫ: и еще по сабжу - делаю универсальные инклуд функции, к примеру void DoExplosion (int nDC, int nAllowReflexSave, int nAllowEvasion, int nDamage, int nDamageType, float fRadius, effect eExplVis, effect eHitVis, location locTarget) - пока только не магические взрывы, позже еще проверку спелл резистов сделаю и т.д. Делается с целью полного переделывания заклинаний НВН-а 2 под 1 строчку и создания многоцелевых функций... Как сделаю таковых побольше, выложу... Кстати, с такой функцией в применении к, допустим, файрболлу - возможны чеки на пространство и вообще возможность атакуемой цели двигаться, т.е. если увернуться некуда - эвэйжн и т.д. не сработает, ну или если цель не может двигаться - броска рефлекса вообще не будет (ну никак она не может увернуться). Ну и т.д.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Jadent
сообщение Oct 19 2008, 09:00
Сообщение #20


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN2: Маппинг



Как сделать одну лужу на кастера. В скрипте nw_s0_grease есть такая строчка:
Neverwinter Script
//Declare major variables including Area of Effect Object
effect eAOE = EffectAreaOfEffect(AOE_PER_GREASE);
Меняем ее на следующее:
Neverwinter Script
string sAoeTag = GetFirstName(OBJECT_SELF)+GetLastName(OBJECT_SELF)+"_Grease";
object oAoe = GetObjectByTag(sAoeTag);
if (GetIsObjectValid(oAoe)) DestroyObject(oAoe);

//Declare major variables including Area of Effect Object
effect eAOE = EffectAreaOfEffect(AOE_PER_GREASE, "", "", "", sAoeTag);
Думаю, идея понятна.

В этом же примере можно организовать стыковку — для паутины проверять, нет ли рядом (в радиусе паутины) объекта с тегом, оканчивающимся на "_Grease".

Для стыковки DC — находить объект с тем же тегом ("_Web", например), удалять его и на его месте создавать новый АоЕ-эффект с бОльшим DC.
Тут еще придется дописать несколько мелочей — чтобы лишний раз не срабатывали OnExit и OnEnter при смене AoE-объекта и сохранялась длительность действия спелла (если нужно).
Это сведется к проверкам локалок, скорее всего, так что ничего трудного.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkPhoenix
сообщение Oct 19 2008, 13:24
Сообщение #21


Level 2
*

Класс: Рейнджер
Характер: True Neutral
Раса: Эльф



Есть ли какая-то возможность пркрепить фигурку нпц или хотя бы плейсебл к модели ГГ? Например зделать чтоб фигурка демилича парила над плечем ГГ и он мог так бегать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melshin
сообщение Oct 19 2008, 14:03
Сообщение #22


Level 2
*

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



Одну лужу на кастера и повышение ДЦ это в принципе ясно... И то и то уже сам реализовал, первое давно находится на шарде. Проблема в другом... Как быстро и вовремя уничтожить АОЕ эффект, складывающийся с другим и при этом не вносить в каждый закл сто проверок на каждый другой закл...

Ладно, пока что попробую создать несколько общих функций:

1) Создать АОЕ эффект и назначить ему тэг "тип спелла" (ака облако лужа) + "номер" с учетом 2 функции для задания номера.
2) Проверяет, существует ли на локации "тип спелла_1", потом "тип спелла_2" и т.д.
3) Проверяет, не находится ли цель закла/создающийся (важно, чтобы он не создался) АОЕ эффект в зоне нового АОЕ эффекта. Учитываются только теги от "тип спелла_х" до "тип спелла_0" по убыванию.

Промодифицировать этими функциями создание АОЕ эффекта... Выглядит не сложно...

Локалки стараюсь создавать в последнюю очередь, если нет другого выбора. Базу данных тоже лишний раз не трогаю...

Мде, каждый обьект на локации тоже плохо проверять...

2 функция.

Код
void main ()
{
string sNum = "1";
int nNum = 1;
object oLastAoe = GetObjectByTag ("AOE_ID"+ тэг локи + sNum);
while (GetIsObjectValid (eLastAoe));
{
  nNum = nNum+1;
  sNum = IntToString (nNum);
  object oLastAoe = GetObjectByTag ("AOE_"+ тэг локи+sNum);
}
//возвращаем номер АОЕ, там подумаю, как лучше и удобнее
}


1 функция пропускаем, банально просто, а вот третья... Как дойду до тулсета, поэкспериментирую...

Разрушать придется точно тот АОЕ, который уже был... Потому что создать АОЕ из воздуха не получается, xD.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Jadent
сообщение Oct 19 2008, 19:41
Сообщение #23


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

Класс: Обыватель
Характер: True Neutral
Раса: Человек
NWN2: Маппинг



Цитата(Melshin @ Oct 19 2008, 14:03) *
1) Создать АОЕ эффект и назначить ему тэг "тип спелла" (ака облако лужа) + "номер" с учетом 2 функции для задания номера.
2) Проверяет, существует ли на локации "тип спелла_1", потом "тип спелла_2" и т.д.
Индексация ненадежна, потому что у спеллов может быть разное время действия.
Если "спелл_1" просто уничтожится после положенного количества раундов, то "спелл_2" и "спелл_3" циклы уже обрабатывать не смогут.

Соприкасающиеся эффекты лучше удалять так:
Neverwinter Script
//В скрипте спелла:
    location lTarget = GetSpellTargetLocation();
    int iSpellType = AOE_PER_WEB;//тип берем из функции EffectAreaOfEffect
    string sTagSuffix = "_Web";
    float fRadius = StringToFloat(Get2DAString("vfx_persistent", "RADIUS", iSpellType));//нужен радиус чтобы узнать, соприкасаются ли AOE

    int i = 1;
    object oOld = GetNearestObjectToLocation( OBJECT_TYPE_AREA_OF_EFFECT, lTarget, i);
    while (GetIsObjectValid(oOld) && GetDistanceBetweenLocations(lTarget, GetLocation(oOld)) < fRadius*2)//берем каждый AOE в двойном радиусе
    {
        if (GetStringRight(GetTag(oOld), GetStringLength(sTagSuffix)) == sTagSuffix) DestroyObject(oOld);//если найденный AOE того же типа, удаляем его
        i++;
        oOld = GetNearestObjectToLocation( OBJECT_TYPE_AREA_OF_EFFECT, lTarget, i);
    }


Цитата(Melshin @ Oct 19 2008, 14:03) *
Разрушать придется точно тот АОЕ, который уже был... Потому что создать АОЕ из воздуха не получается, xD.
???

Сообщение отредактировал Jadent - Oct 19 2008, 21:33
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melshin
сообщение Oct 20 2008, 00:30
Сообщение #24


Level 2
*

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



Хороший скрипт... Ладно, вначале попытаюсь до конца все реализовать по вот такому виду, а после перейду к следующей стадии, немного усложню... Выше в принципе все описано.

Цитата
Разрушать придется точно тот АОЕ, который уже был... Потому что создать АОЕ из воздуха не получается, xD.
???


Не обращай внимания, у меня дурацкий тип мышления.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 20 2008, 08:39
Сообщение #25


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

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



[offtop]
А чего лидер ДМов занялся скриптами?
[/offtop]
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Melshin
сообщение Oct 20 2008, 09:27
Сообщение #26


Level 2
*

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



// Ну я изначально скриптер, изредка ДМ саппортом заходил, потом квесты водить стал. Теперь временно главный ДМ, т.к. настоящий ДМ неизвестно куда исчез...

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

А хотя, в общем-то, думаю, нет надобности.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Celestial
сообщение Oct 20 2008, 15:12
Сообщение #27


Level 14
****

Класс: Обыватель
Характер: Lawful Neutral
Раса: Эльф



Ребят, очень нужен скриптер, на дня 2 работы: сделать скрипты на шарде.
Работу могу серьезно оплатить.

Сообщение отредактировал Celestial - Oct 20 2008, 15:13
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Bobaleht
сообщение Dec 28 2008, 20:08
Сообщение #28


Level 1


Класс: Обыватель
Характер: Chaotic Evil
Раса: Коробокуру



Здраствуйте! Нужен скрипт чтобы вся партия автоматом переходила в др. локацию(город невервинтер конкретно)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Dec 28 2008, 21:32
Сообщение #29


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

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



Из диалога? Уже есть такой скрипт

ga_jump_players(string sDestTag, int bWholePary=0, int bOnlyThisArea=1)
sDestTag - тэг вейпоинта или объекта назначения.
bWholePary - переносить ли всех; в нашем случае нужно 1.
bOnlyThisArea - только тех, кто в локе с нами; лучше 0 для надёжности.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Bobaleht
сообщение Dec 28 2008, 23:14
Сообщение #30


Level 1


Класс: Обыватель
Характер: Chaotic Evil
Раса: Коробокуру



Хм, ничего не понял... Я ничего не смыслю в скриптинге, просто тупо надо обойти очередной баг(вылет при выходе из таверны дяди в 1 главе клиент storm of zehir 1.21 nodvd для 1.20.). Наверно не туда полез, извиняюсь, попробую написать в тех вопросах.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Celestial
сообщение Jan 2 2009, 19:23
Сообщение #31


Level 14
****

Класс: Обыватель
Характер: Lawful Neutral
Раса: Эльф



Нужен скрипт, который затем можно будет поставить на событие: игрок заходит на шард.

Скрипт должен быть следующего содержания:

Если Мировоззрение Игрока = Good, то Фракция Игрока = GOOD;
Если Мировоззрение Игрока = Evil, то Фракция Игрока = EVIL;
Если Мировоззрение Игрока = Neutral, то Фракция Игрока = NEUTRAL;
Если в Инвенторе Игрока есть предмет с тегом ITEMIN, то Фракция Игрока = MAD;

Запустить стандартный скрипт для входа плеера на шард.

Сообщение отредактировал Celestial - Jan 2 2009, 23:12
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
greye
сообщение Jan 2 2009, 20:29
Сообщение #32


Level 7
**

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



Среда NWN2
Neverwinter Script
void main()
{
    object oPC = GetEnteringObject();
    int nFaction = 0, i = 0;
   
    if (GetIsPC(oPC))
    {
       for (i=0; i<18; i++)
       {
          if (GetTag(GetItemInSlot(i, oPC))=="ITEMIN") {nFaction = 9; break;}
       }
       if (!nFaction)
       {
          object oItem = GetFirstItemInInventory(oPC);
          while (nFaction ==-1 || oItem != OBJECT_INVALID)
          {
             if (GetTag(oItem)=="ITEMIN") nFaction = 9;
          }
       }
      
       if (!nFaction) nFaction = GetAlignmentGoodEvil(oPC);
      
       int nEvil=0, nMad=0, nGood=0, nNeutral=0; //Влияют на изменение репутации к соответствующим сторонам
       switch (nFaction)
       {
          case 0: break;
          case 9: {nMad = 100; nGood = 1; nNeutral = 0; nEvil = 2;}; break; //Присваивания верные только 100, остальные в зависимости от отношений фракций друг к другу (-100..100)
          case ALIGNMENT_GOOD: {nGood = 100; nNeutral = 1; nMad = 2; nEvil = 3;}; break;
          case ALIGNMENT_EVIL: {nEvil = 100; nNeutral = 1; nMad = 2; nGood = 3;}; break;
          case ALIGNMENT_NEUTRAL: {nNeutral = 100; nGood = 1; nEvil = 2; nMad = 3;}; break;
       }
      
       AdjustReputation(oPC, GetObjectByTag("EvilMember"), nEvil); //Везде в кавычках тег существа из нужной фракции
       AdjustReputation(oPC, GetObjectByTag("GoodMember"), nGood);
       AdjustReputation(oPC, GetObjectByTag("NeutralMember"), nNeutral);
       AdjustReputation(oPC, GetObjectByTag("MadMember"), nMad);               
    }
}

Насчет последнего не понял: смотря для чего тебе надо, либо убей персонажа, либо надо писать другой скрипт для ExecuteScript или onUserDefinedevent. Поправьте, если что не так.

Конкретику отправил в ПМ.

Сообщение отредактировал greye - Jan 3 2009, 01:07
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Celestial
сообщение Jan 2 2009, 23:17
Сообщение #33


Level 14
****

Класс: Обыватель
Характер: Lawful Neutral
Раса: Эльф



Спасибо!

1. ExecuteScript, да спасибо. Именно это поставлю.

2. Мне нужно что-нибудь менять внутри скрипта?
У меня фракции следующей структуры: Гуд воюет с Ивлом и наоборот, Нейтрал ни с кем не воюет (и с ним тоже не воюют соответственно), Мэд - мочит всех и все мочат его.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Demon132
сообщение Jan 26 2009, 13:19
Сообщение #34


Level 1


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



Народ, помогите пожалуйста..... Оч. нужен скрипт, что бы сделать Хватку титана спелом.....Для вара
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Nevan
сообщение Mar 27 2009, 14:01
Сообщение #35


Level 1


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



Просьба написать скрипт, который делает всех игроков враждебными друг к другу, исключая тех, которые находятся в одной группе. Событие: On Heartbeat Script. (на самом деле событие можно использовать любое, если оно позволяет добиться того же эффекта)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kirald
сообщение Jun 20 2009, 22:52
Сообщение #36


Level 2
*

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



Что же может измениться за год,-спросите вы,- многое,- отвечу я. Ну вот сегодня решил возобновить свою деятельность в Тулсете. За прошедший год я успел многое сделать, создал квестовый плагин для Обливиона, изучил пару скриптовых языков и языков программирования, перерыл кучу игровых движков и разобрался что к чему, ну и конечно же я повзраслел... ну короче к черту этотмонолог выложу наконец то что я сварганил и то на основе двух скриптов, это так для будующих поколений.

Код
// Save test - Тест спасбросов
// <Custom10x>; <Custom20x> где x номер спасброска (0 1 или 2)
// Type:
// 0 - Will - Воля
// 1 - Reflex - Реакция
// 2 - Fortitude - Удача
int StartingConditional(int nDC, int nType)
{
    
    if (nType == 0)// Will
    {
    
    int nSAVE = d20(1) + GetWillSavingThrow(GetFirstPC());
    
    SetCustomToken(100,IntToString(nDC)); // Скока требуеться
    SetCustomToken(200,IntToString(nSAVE)); // Спасбросок (d20)
    
    // test line
    //return TRUE;
    
    if ( nSAVE >= nDC)
        return TRUE;
        
        return FALSE;
    }
    else if (nType == 1)// Reflex
    {
        
        
    int nSAVE = d20(1) + GetReflexSavingThrow(GetFirstPC());
    
    SetCustomToken(101,IntToString(nDC)); // Скока требуеться
    SetCustomToken(201,IntToString(nSAVE)); // Спасбросок (d20)
    
    // test line
    //return TRUE;
    
    if ( nSAVE >= nDC)
        return TRUE;
        
        return FALSE;
    
    // test line
    //return TRUE;
    
    if ( nSAVE >= nDC)
        return TRUE;
        
        return FALSE;
    }
    
                        //Fortitude
            
    int nSAVE = d20(1) + GetFortitudeSavingThrow(GetFirstPC());
    
    SetCustomToken(102,IntToString(nDC)); // Скока требуеться
    SetCustomToken(202,IntToString(nSAVE)); // Спасбросок (d20)
    
    // test line
    //return TRUE;
    
    if ( nSAVE >= nDC)
        return TRUE;
        
        return FALSE;


}


Сообщение отредактировал Kirald - Jun 20 2009, 22:55
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Marta
сообщение Jul 20 2009, 19:17
Сообщение #37


Level 1


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



Хай. Люди добрые, помогите, плииз, написать такой скрипт, чтобы заменять на герое броню. Позарез надо. Это, вроде бы, должно быть просто, но стандартный скрипт ga_equip_slot почему-то не работает, вероятно это баг, а я в скриптах ничего не понимаю. С тем, чтобы снять с ГГ броню в диалоге проблем нет, но как одеть ему другую из диалога? У меня установлена Голд-версия "Акеллы" с двумя официальными аддонами, если это имеет значение.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Marta
сообщение Jul 26 2009, 13:25
Сообщение #38


Level 1


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



Спасибо, уже не надо, скрипт написан.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Celestial
сообщение Oct 11 2009, 20:47
Сообщение #39


Level 14
****

Класс: Обыватель
Характер: Lawful Neutral
Раса: Эльф



Прошу написать скрипт для сундуков:

Сундук заперт, неразрушаем.
Если сундук пуст, то с интервалом в TIMER-секунд в нем генерится случайное количество вещей (от 1 до 4х*), которые берутся из сторе с тэгом STORE.
* Если вещь - снаряд (аммуниция), то за одну вещь считается пачка в 49 снярядов - в общем, не должно генериться по одной стреле или одному сюрикену.
Если сундук заперт и его взламывают, то всей партии игрока, взломавшего замок, получает VZLOMXP-опыта.
Если сундук с ловушкой и ловушку обезвреживают, то всей партии игрока, обезвредившего ловушку, дается LOVUSHKAXP-опыта.
Если сундук заперт и получает количество повреждений, равное 100*DCзамка, то он становится открытым, но опыт за взлом не дается.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Oct 11 2009, 22:28
Сообщение #40


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

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



хм.. на первый взгляд все довольно просто. Что заставило обратиться за помощью с этой системой?

зы: я бы не генерил предметы раз в Х секунд. А создавал новые спустя Х секунд после того, как забрали старые, да еще с проверкой наличия игроков в зоне. (возможно привязываться лучше не к забору старых, а к открытию сундука. вдруг глянули, а там фигня, и ее оставили лежать).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Celestial
сообщение Oct 12 2009, 08:14
Сообщение #41


Level 14
****

Класс: Обыватель
Характер: Lawful Neutral
Раса: Эльф



Цитата
зы: я бы не генерил предметы раз в Х секунд. А создавал новые спустя Х секунд после того, как забрали старые, да еще с проверкой наличия игроков в зоне. (возможно привязываться лучше не к забору старых, а к открытию сундука. вдруг глянули, а там фигня, и ее оставили лежать).

Да, ты прав, так будет лучше.

Цитата
Что заставило обратиться за помощью с этой системой?

Полное отсутствие навыков программирования и уход из шарда в реал нашего скриптера...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Moltean
сообщение Jun 24 2010, 11:00
Сообщение #42


Level 2
*

Класс: Маг
Характер: Chaotic Neutral
Раса: Человек



Всем привет.Мне нужен скрипт,чтобы на определенном месте появлялся Placed effect,но не на вейпойнте,а на месте с координатами + чтобы он потом исчезал через некоторое,регулируемое время.

Сообщение отредактировал Moltean - Jun 24 2010, 18:42
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Jun 24 2010, 18:51
Сообщение #43


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

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



а в чем проблема? Тебе нужна функция ApplyEffectAtLocation координаты через location (см в редакторе какие ему параметры требуются).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Montalaar
сообщение Jul 17 2010, 12:37
Сообщение #44


Level 2
*

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



Добрый день. Мне нужны два скрипта:

1) Скрипт который позволял бы полноценно взаимодействовать с присоеденёнными персонажами как в официальной компании(поднимать им уровень, менять снаряжение, управлять ими)
2) Скрипт который позволял бы бродить некоторым NPC по местности (например патрулирование стражником улицы)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 15 2010, 00:33
Сообщение #45


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

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



1) это не скрипт. Просто у твоего присоединяемого персонажа должны в слотах стоять скрипты хенчей (по дефолту там другое). Посмотри в палитре хенчманов, какие там скрипты, и ставь нужному тебе НПС такие же.
2) это тоже по факту не скрипт. Достаточно сделать точки для НПС вида WP_[NPC-TAG]_[NUMBER] (где [NPC-TAG] - тэг нужного НПС, а [NUMBER] - порядковый номер точки, начиная с 01) и НПС будет по ним ходить. Причем точки делаются даже не в ручную, а через меню свойств НПС.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Orochimaru
сообщение Aug 27 2010, 13:46
Сообщение #46


Level 3
*

Класс: Маг
Характер: True Neutral
Раса: Нежить



А как сделать рассы активными при создании перса?Допустим сделать Орка или вампира как класс при создании персонажа? (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение Aug 27 2010, 17:10
Сообщение #47


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

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



кроме 2да нужно дорабатывать еще и GUI генерации персонажа (страницу выбора расы. Орк и вампир это все-таки не класс, а раса).
Как дорабатывать? тебе вряд ли кто скажет, никто вроде этим тут не занимался. Лучше всего качнуть на волте хак с новыми игровыми расами и посмотреть как там сделано.

еще один пост не по теме - будет предупреждение. Читай название топика, куда пишешь, и думай, подходит ли твой вопрос теме топика или нет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Orochimaru
сообщение Aug 27 2010, 19:52
Сообщение #48


Level 3
*

Класс: Маг
Характер: True Neutral
Раса: Нежить



Цитата(Lex @ Aug 27 2010, 17:10) *
еще один пост не по теме - будет предупреждение. Читай название топика, куда пишешь, и думай, подходит ли твой вопрос теме топика или нет.

Сори (IMG:style_emoticons/kolobok_light/scratch_one-s_head.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
noooox
сообщение Sep 12 2011, 21:27
Сообщение #49


Level 2
*

Класс: Оборотень
Характер: True Neutral
Раса: Элементаль



Может кто объяснить почему Золотой дворф-GOLDDWARF проходит проверку скриптом за рассу дуэргар? Использую этот скрипт gc_check_race_pc-DUERGAR.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение Sep 14 2011, 21:07
Сообщение #50


Level 9
***

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



noooox, наверное ID перепутаны. Посмотри в racialtypes.2da.
added:
посмотрел сам, айди разные (0 и 1), но базовая раса у них одинаковая. Надо выяснять. Лучше написать свой скрипт проверки.

Сообщение отредактировал Lorendroll - Sep 14 2011, 21:22
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
noooox
сообщение Sep 15 2011, 17:26
Сообщение #51


Level 2
*

Класс: Оборотень
Характер: True Neutral
Раса: Элементаль



Канечно это же дварфы.Надо субрассу проверить через диалог.

А почему такой скрипт не компилиться?

int StartingConditional()
{
object oPC = GetPCSpeaker();

if (GetSubRace(oPC) != "DUERGAR") return FALSE;

return TRUE;
}


Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение Sep 16 2011, 00:49
Сообщение #52


Level 9
***

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



noooox, потому что функция GetSubRace возвращает целочисленную переменную типа int, а ты сверяешь её со строкой. Ты пробовал проверять расу скриптом gc_check_race_pc? аргументом к нему ставил duergar? Обрати внимание что существует два скрипта с таким названием. Один из оригинала НВН2 другой из второго аддона. Разумеется, нужно использовать более свежий т.к. в нем будут учтены новые субрасы. Возможно именно потому что ты использовал старый скрипт он не увидел разницы между субрасами.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
noooox
сообщение Sep 16 2011, 13:40
Сообщение #53


Level 2
*

Класс: Оборотень
Характер: True Neutral
Раса: Элементаль



Я пробовал проверять расу скриптом gc_check_race_pc аргументом к нему ставил DUERGAR! Вот именно так и не работает.Золотой дварф почему то проходит эту проверку.А все остальные суб расы и расы не проходят как мне и надо.Почему то скрипт принимает золотого за дуэргара (IMG:style_emoticons/kolobok_light/unsure.gif) .

У меня nwn2 platinum там все 3 как известно аддона.И скрипт gc_check_race_pc там только один.Почитал в нем то что коменты зелным цветом ясно что там учтены все расы и суб расы.Яж им всех остальных проверяю.И вот с одной суб расой косяк. (IMG:style_emoticons/kolobok_light/swoon.gif)

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение Sep 16 2011, 16:28
Сообщение #54


Level 9
***

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



noooox только что проверил, проверка происходит верно. Указывал в проверке "duergar" маленькими буквами. Проверь еще нет ли в оверрайде или хаке racialtypes.2da

Сообщение отредактировал Lorendroll - Sep 16 2011, 16:31
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Jan 12 2013, 16:06
Сообщение #55


Level 4
**

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



Всем привет. Начал работать в обсидиан тулсете недавно и очень завлекло. Но, к сожалению, в скриптах я НИЧЕГО не понимаю и понять не получается, сколько статей и гайдов не прочитал, ну ладно. В общем, пожалуйста, кто-нибудь напишите вот такой скрипт:
При использовании определенного объекта шла проверка на наличие в инвентаре определенного предмета, если проверка прошла успешно то этот предмет удалялся из инвентаря в 1 количестве и на определенном waypoint появлялся огонь (желательно fx_torchglow), исчезая через
30 минут, так же чтобы в этом же месте появлялся звук огня и источник света (lt_white), также исчезая вместе с огнем. Если проверка не прошла успешна, то персонаж произносил какую-то фразу. (IMG:style_emoticons/kolobok_light/rolleyes.gif)

P.S было бы не плохо указать где какой тэг и от чего он и т.д...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jan 13 2013, 06:46
Сообщение #56


Тролль
****

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



На сколько я понимаю, скрипты в НВН1 и НВН2 практически идентичны – поэтому ниже приведу схему создания скрипта по запросу выше с помощью скрипт-генератора. Разбирайтесь как это делается и учитесь писать самостоятельно, потому что не всегда так просто найдется человек, который будет делать это за вас.

1. Запускаем «Script Generator.exe».
2. Видим окошко с надписью «Choose script type» (выбирите тип скрипта) – жмем «Normal script».
3. «Where is this script called from?» (когда запускается скрипт) – жмем «When PC uses something (portal, altar, lever…)» (когда ПС использует что-то – здесь имеется в виду только объекты, не вещи!).
4. Сразу же у вас выскочит окошко с дополнительным условием, и оно у нас есть! Поэтому на вопрос «Choose» отвечаем «Yes».
5. Нас спросят далее «Choose condition» (выбирите условие) – в базовом выборе их всего три варианта: 1 раз для 1 игрока; 1 раз за игру; другие варианты. Выбираем другие варианты – «Other restrictions».
6. Теперь откроется список всех предлагаемых условий в окошке «Choose your condition» (выбирите ваше условие) – жмем «Item restriction» (наличие предмета).
7. Ниже видим такую надпись с выбором «If condition not met, script will stop and» (если условие не выполнено, скрипт будет сброшен и…), нам необходимо чтоб игрок что-то сказал, если проверка не прошла успешно – жмем «The following message is sent to PC:» (следующее сообщение посылается ПС). Видим ниже пустую строчку – это окошко для нашего сообщения. Я напишу его по-английски, потому что у компилятора НВН1 есть свои тараканы по поводу восприятия кириллицы (а точнее буквы «я»), а это вопрос отдельный и ответ на него можно поискать на форуме – он есть. Фраза будет выглядеть так: «*I should find first this damned thing*» - что значит «*Я должен найти сначала эту чертову хреновину*». Пишем фразу в окошко без «».
8. Ниже видим выбор, наш по умолчанию «Must have» (должен иметь) - «The item tagged» (предмет с указанным тагом).
9. Ниже пустое окошка для введения этого самого тага предмета – его нужно подсмотреть в свойствах предмета который мы хотим требовать. Пусть это будет таг «damned_thing». Вводим таг в окошко без «».
10. Далее предлагается уточнить на тот случай, если эта «чертова хреновина» является доспехом или прочей амуницией – в каком слоте инвентаря она должна быть. Предположим наша «чертова хреновина» совершенно бесполезный предмет в игре который нужен только для описываемого скриптом эвента, поэтому просто пропустим этот шаг.
11. Дальше видим что нам остается только нажать по выбору одну из трех стандартных в генераторе кнопочек: «Okay – and more!» (зашибись и есчо), «Okay – exit!» (зашибись я пошел), «Cancel» (отмена). Условий у нас больше нет, поэтому жмем «Okay – exit!».
12. Теперь вы видите следующее сообщение:
«You are now ready to create the actual script!
If you supplied any conditions before this, the rest of the script will run
only for players who meet those conditions.
Click close to start the scripting of the events or actions that you want to
happen.».
Его мне всегда было лень читать до конца, это что-то вроде «поздравляем вас с успешным прохождением проверки на нюбов – теперь вы можете показать на что вы действительно способны». После первого выскакивания можно поставить галочку которая заставит его больше не выскакивать.
13. По закрытию этого сообщения перед вами откроется список всего арсенала скрипт генератора. Ищем в нем нужный нам пункт – сначала это будет удаление требуемого предмета: «Destroy object(s)» (удалить объект/ы). Выбираем его и жмем большую кнопку справа «SCRIPT» (ЗАСКРИПТИТЬ!!!11).
14. Видим окошко с нашим выбором – жмем «Destroy object tagged:» (удалить объект под тагом). И вводим в окошко справа таг нашего объекта. В моем примере это «damned_thing» без кавычек.
15. Ниже вы видите: «Using» (используя…) «Which visual effect?» (какой визуальный эффект?). Афтар указал довольно специфические требования к «спецэффектам», так что возможно они применяются не на используемый объект, а на какое-то другое место с вейпоинтом. Так что оставляем этот кусок не тронутым.
16. Жмем «Okay – exit!».
17. Наш кусочек скрипта остался в памяти генератора и дальше мы можем приступить к дальнейшему его генерированию. Нам нужно чтоб на время в указанном месте возникли эффекты для начала в виде объектов класса «визуальных эффектов» из стандартной палитры. Для этого нам нужно запастись «резрефами» этих объектов подглядев их в их свойствах в редакторе. Афтар предполагает, что ему нужен огонь с резрефом «fx_torchglow».
Ищем в списке арсенала генератора пункт «Spawn in placeable (eg portal)» (спавнить плейсбл, например портал) – жмем «SCRIPT».
18. Видим, что нас сразу же просят ввести «ResRef» (резреф) плейсебла и просят, чтоб мы не спутали его с «тагом», что есть очень верная прозьба – перепроверяйте это. Вводим резреф «fx_torchglow» - без кавычек.
19. Опять нам дают возможность приминить к этому событию визуальный эффект «Using which visual effect» – пропускаем эту часть.
20. Дальше мы должны указать место спавна – у нас это указанный вейпоинт, так что выбираем «At the waypoint tagged:» (вейпоинт под тагом…). Вводим справа таг нашего вейпоинта – его нужно будет создать в тулсете в соответствующем месте отдельно и не забыть проверить, чтоб таги в скрипте и его свойствах совпали. Пусть в примере это будит таг «WP_here».
21. Жмем «Okay – exit!».
22. В списке у нас кроме огня есть источник света с предпологаемым резрефом «lt_white». Проделываем вышеописанные операции (17-21) для этого плейсебла.
23. Еще нам нужен в спецэффектах звук, что несколько более сложная задача, но скрипт-генератор позволяет реализовать и ее. Во-первых для этого необходимо знать что спавнить звуки в НВН1 нельзя (на счет НВН2 не знаю), но можно заставлять их проигрываться. Нам нужно создать в палитре подходящий нам звук огня, который по умолчанию будет не активен, а при проигрывании выдавать петлю звука огня. Настраиваем это дело и размещаем подобно вейпоинту в нужном нам месте в модуле.
Во-вторых ищем в списке арсенала скрипт-генератора пунтк «Sound objects, ambient sound, music» (звуковые объекты, звуки окружающей среды, музыка). Выбираем этот пункт и жмем «заскриптить».
24. Сразу же нас спрашивают «таг» (вот тут как обычно таг, а не резреф) нашего свежесозданного звукового объекта. Вы его создадите сами или посмотрите в свойствах размещенного вами стандартного. Пусть в примере это будет «fire_sound».
25. Далее среди всех нижеприведенных меню нам нужен только один пункт «Make it start playing» (пусть оно заиграет). И жмем «Okay».
26. Теперь нам остается лишь задача убрать все спецэффекты через 30 минут. Тут сразу нужно уточнить, что стандартная функция задержки в скриптах измеряется в секундах и ограничивается («DelayCommand() is no longer capped by a time limit of 1 game day.» (с) Lexicon) стандартным игровым днем. Это значит, что если час у нас в игре длится менее 2 минут по настройкам модуля – есть шанс что такая задержка будет работать неправильно. Переводим минуты в секунды и получаем цифру 1800.
Ищем в списке арсенала скрипт-генератора пункт «Delay the next thing you script» (отсрочить следующую хрень, которую вы скриптите) – выбираем и жмем «скриптить».
27. Вводим наши 1800 и жмем «зашибись».
28. Далее нам нужно удалить 2 объекта. Выбираем снова пункт «Destroy object(s)» и жмем «скриптить».
29. Ставим галочку и вводим таг (не перепутайте с резрефами) нашей вспышки пламени. Пусть в примере это будет «FX_TORCHGLOW». У нас 2 объекта, поэтому дальше жмем «Okay – and more!».
30. Снова ставим галочку и вводим таг нашего источника света. Пусть это в примере будет «LT_WHITE». Жмем «Okay – exit!».
31. Наша отсрочка действия сработала только на один этот блок удаления объектов – поэтому нам нужно снова повторить ее (пункты 26-27) т.к. еще нужно убрать звук огня.
32. Теперь нам снова нужно заняться звуком – выбираем пункт «Sound objects, ambient sound, music» и жмем «скриптить».
33. Снова вводим таг нашего звукового объекта, в примере: «fire_sound». И выбираем галочку «Make it stop playing» (пусть оно перестанет играть). Жмем «Okay».
34. Все. Больше у нас требований к данному скрипту нет, поэтому жмем арсеналу «Close».
35. Теперь мы снова видим первоначальное окно скрипт-генератора. В большом окошке справа находится весь наш сгенерированный скрипт (перед ним немного рекламы и указаний, так что можно копировать строки смело со слов «void main()»). И вот что у нас вышло:..
Neverwinter Script
void main()
{

object oPC = GetLastUsedBy();

if (!GetIsPC(oPC)) return;

string sDeny;
if (GetItemPossessedBy(oPC, "damned_thing")== OBJECT_INVALID)
   {
   sDeny="*I should find first this damned thing*";

   SendMessageToPC(oPC, sDeny);

   return;
   }

object oTarget;
oTarget = GetObjectByTag("damned_thing");

DestroyObject(oTarget, 0.0);

object oSpawn;
location lTarget;
oTarget = GetWaypointByTag("WP_here");

lTarget = GetLocation(oTarget);

oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "fx_torchglow", lTarget);

lTarget = GetLocation(oTarget);

oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "lt_white", lTarget);

oTarget = GetObjectByTag("fire_sound");

SoundObjectPlay(oTarget);

oTarget = GetObjectByTag("FX_TORCHGLOW");

DelayCommand(1800.0, DestroyObject(oTarget, 0.0));

oTarget = GetObjectByTag("LT_WHITE");

DelayCommand(1800.0, DestroyObject(oTarget, 0.0));

oTarget = GetObjectByTag("fire_sound");

DelayCommand(1800.0, SoundObjectStop(oTarget));

}
Скрипт-генератор штука очень надежная и могу ручаться что тулсет скомпилирует любой его скрипт без ошибок. На вашей совести лишь указать все таги и резрефы верно.

Так что учитесь писать скрипты сами – скрипт-генератор вам в помощь. (IMG:style_emoticons/kolobok_light/smile.gif)

P.S.: Только похвалил скрипт-генератор и тут же нашел в нем баг когда перепроверял скрипт - они забыли добавить определение стринговой переменной для сообщения использующегося при провале начальных условий. Никогда не пользовался стартовым условием раньше - составлял их с помощью арсенала непосредственно в скрипте. В общем в скрипте, если его генерировать по этой схеме, не хватает строчки "string sDeny;" - я ее добавил в результат вручную.

Сообщение отредактировал Flaristan - Jan 13 2013, 07:20
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Jan 13 2013, 12:02
Сообщение #57


Level 4
**

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



Цитата(Flaristan @ Jan 13 2013, 07:46) *
На сколько я понимаю, скрипты в НВН1 и НВН2 практически идентичны – поэтому ниже приведу схему создания скрипта по запросу выше с помощью скрипт-генератора. Разбирайтесь как это делается и учитесь писать самостоятельно, потому что не всегда так просто найдется человек, который будет делать это за вас.

1. Запускаем «Script Generator.exe».
2. Видим окошко с надписью «Choose script type» (выбирите тип скрипта) – жмем «Normal script».
3. «Where is this script called from?» (когда запускается скрипт) – жмем «When PC uses something (portal, altar, lever…)» (когда ПС использует что-то – здесь имеется в виду только объекты, не вещи!).
4. Сразу же у вас выскочит окошко с дополнительным условием, и оно у нас есть! Поэтому на вопрос «Choose» отвечаем «Yes».
5. Нас спросят далее «Choose condition» (выбирите условие) – в базовом выборе их всего три варианта: 1 раз для 1 игрока; 1 раз за игру; другие варианты. Выбираем другие варианты – «Other restrictions».
6. Теперь откроется список всех предлагаемых условий в окошке «Choose your condition» (выбирите ваше условие) – жмем «Item restriction» (наличие предмета).
7. Ниже видим такую надпись с выбором «If condition not met, script will stop and» (если условие не выполнено, скрипт будет сброшен и…), нам необходимо чтоб игрок что-то сказал, если проверка не прошла успешно – жмем «The following message is sent to PC:» (следующее сообщение посылается ПС). Видим ниже пустую строчку – это окошко для нашего сообщения. Я напишу его по-английски, потому что у компилятора НВН1 есть свои тараканы по поводу восприятия кириллицы (а точнее буквы «я»), а это вопрос отдельный и ответ на него можно поискать на форуме – он есть. Фраза будет выглядеть так: «*I should find first this damned thing*» - что значит «*Я должен найти сначала эту чертову хреновину*». Пишем фразу в окошко без «».
8. Ниже видим выбор, наш по умолчанию «Must have» (должен иметь) - «The item tagged» (предмет с указанным тагом).
9. Ниже пустое окошка для введения этого самого тага предмета – его нужно подсмотреть в свойствах предмета который мы хотим требовать. Пусть это будет таг «damned_thing». Вводим таг в окошко без «».
10. Далее предлагается уточнить на тот случай, если эта «чертова хреновина» является доспехом или прочей амуницией – в каком слоте инвентаря она должна быть. Предположим наша «чертова хреновина» совершенно бесполезный предмет в игре который нужен только для описываемого скриптом эвента, поэтому просто пропустим этот шаг.
11. Дальше видим что нам остается только нажать по выбору одну из трех стандартных в генераторе кнопочек: «Okay – and more!» (зашибись и есчо), «Okay – exit!» (зашибись я пошел), «Cancel» (отмена). Условий у нас больше нет, поэтому жмем «Okay – exit!».
12. Теперь вы видите следующее сообщение:
«You are now ready to create the actual script!
If you supplied any conditions before this, the rest of the script will run
only for players who meet those conditions.
Click close to start the scripting of the events or actions that you want to
happen.».
Его мне всегда было лень читать до конца, это что-то вроде «поздравляем вас с успешным прохождением проверки на нюбов – теперь вы можете показать на что вы действительно способны». После первого выскакивания можно поставить галочку которая заставит его больше не выскакивать.
13. По закрытию этого сообщения перед вами откроется список всего арсенала скрипт генератора. Ищем в нем нужный нам пункт – сначала это будет удаление требуемого предмета: «Destroy object(s)» (удалить объект/ы). Выбираем его и жмем большую кнопку справа «SCRIPT» (ЗАСКРИПТИТЬ!!!11).
14. Видим окошко с нашим выбором – жмем «Destroy object tagged:» (удалить объект под тагом). И вводим в окошко справа таг нашего объекта. В моем примере это «damned_thing» без кавычек.
15. Ниже вы видите: «Using» (используя…) «Which visual effect?» (какой визуальный эффект?). Афтар указал довольно специфические требования к «спецэффектам», так что возможно они применяются не на используемый объект, а на какое-то другое место с вейпоинтом. Так что оставляем этот кусок не тронутым.
16. Жмем «Okay – exit!».
17. Наш кусочек скрипта остался в памяти генератора и дальше мы можем приступить к дальнейшему его генерированию. Нам нужно чтоб на время в указанном месте возникли эффекты для начала в виде объектов класса «визуальных эффектов» из стандартной палитры. Для этого нам нужно запастись «резрефами» этих объектов подглядев их в их свойствах в редакторе. Афтар предполагает, что ему нужен огонь с резрефом «fx_torchglow».
Ищем в списке арсенала генератора пункт «Spawn in placeable (eg portal)» (спавнить плейсбл, например портал) – жмем «SCRIPT».
18. Видим, что нас сразу же просят ввести «ResRef» (резреф) плейсебла и просят, чтоб мы не спутали его с «тагом», что есть очень верная прозьба – перепроверяйте это. Вводим резреф «fx_torchglow» - без кавычек.
19. Опять нам дают возможность приминить к этому событию визуальный эффект «Using which visual effect» – пропускаем эту часть.
20. Дальше мы должны указать место спавна – у нас это указанный вейпоинт, так что выбираем «At the waypoint tagged:» (вейпоинт под тагом…). Вводим справа таг нашего вейпоинта – его нужно будет создать в тулсете в соответствующем месте отдельно и не забыть проверить, чтоб таги в скрипте и его свойствах совпали. Пусть в примере это будит таг «WP_here».
21. Жмем «Okay – exit!».
22. В списке у нас кроме огня есть источник света с предпологаемым резрефом «lt_white». Проделываем вышеописанные операции (17-21) для этого плейсебла.
23. Еще нам нужен в спецэффектах звук, что несколько более сложная задача, но скрипт-генератор позволяет реализовать и ее. Во-первых для этого необходимо знать что спавнить звуки в НВН1 нельзя (на счет НВН2 не знаю), но можно заставлять их проигрываться. Нам нужно создать в палитре подходящий нам звук огня, который по умолчанию будет не активен, а при проигрывании выдавать петлю звука огня. Настраиваем это дело и размещаем подобно вейпоинту в нужном нам месте в модуле.
Во-вторых ищем в списке арсенала скрипт-генератора пунтк «Sound objects, ambient sound, music» (звуковые объекты, звуки окружающей среды, музыка). Выбираем этот пункт и жмем «заскриптить».
24. Сразу же нас спрашивают «таг» (вот тут как обычно таг, а не резреф) нашего свежесозданного звукового объекта. Вы его создадите сами или посмотрите в свойствах размещенного вами стандартного. Пусть в примере это будет «fire_sound».
25. Далее среди всех нижеприведенных меню нам нужен только один пункт «Make it start playing» (пусть оно заиграет). И жмем «Okay».
26. Теперь нам остается лишь задача убрать все спецэффекты через 30 минут. Тут сразу нужно уточнить, что стандартная функция задержки в скриптах измеряется в секундах и ограничивается («DelayCommand() is no longer capped by a time limit of 1 game day.» (с) Lexicon) стандартным игровым днем. Это значит, что если час у нас в игре длится менее 2 минут по настройкам модуля – есть шанс что такая задержка будет работать неправильно. Переводим минуты в секунды и получаем цифру 1800.
Ищем в списке арсенала скрипт-генератора пункт «Delay the next thing you script» (отсрочить следующую хрень, которую вы скриптите) – выбираем и жмем «скриптить».
27. Вводим наши 1800 и жмем «зашибись».
28. Далее нам нужно удалить 2 объекта. Выбираем снова пункт «Destroy object(s)» и жмем «скриптить».
29. Ставим галочку и вводим таг (не перепутайте с резрефами) нашей вспышки пламени. Пусть в примере это будет «FX_TORCHGLOW». У нас 2 объекта, поэтому дальше жмем «Okay – and more!».
30. Снова ставим галочку и вводим таг нашего источника света. Пусть это в примере будет «LT_WHITE». Жмем «Okay – exit!».
31. Наша отсрочка действия сработала только на один этот блок удаления объектов – поэтому нам нужно снова повторить ее (пункты 26-27) т.к. еще нужно убрать звук огня.
32. Теперь нам снова нужно заняться звуком – выбираем пункт «Sound objects, ambient sound, music» и жмем «скриптить».
33. Снова вводим таг нашего звукового объекта, в примере: «fire_sound». И выбираем галочку «Make it stop playing» (пусть оно перестанет играть). Жмем «Okay».
34. Все. Больше у нас требований к данному скрипту нет, поэтому жмем арсеналу «Close».
35. Теперь мы снова видим первоначальное окно скрипт-генератора. В большом окошке справа находится весь наш сгенерированный скрипт (перед ним немного рекламы и указаний, так что можно копировать строки смело со слов «void main()»). И вот что у нас вышло:..
Neverwinter Script
void main()
{

object oPC = GetLastUsedBy();

if (!GetIsPC(oPC)) return;

string sDeny;
if (GetItemPossessedBy(oPC, "damned_thing")== OBJECT_INVALID)
   {
   sDeny="*I should find first this damned thing*";

   SendMessageToPC(oPC, sDeny);

   return;
   }

object oTarget;
oTarget = GetObjectByTag("damned_thing");

DestroyObject(oTarget, 0.0);

object oSpawn;
location lTarget;
oTarget = GetWaypointByTag("WP_here");

lTarget = GetLocation(oTarget);

oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "fx_torchglow", lTarget);

lTarget = GetLocation(oTarget);

oSpawn = CreateObject(OBJECT_TYPE_PLACEABLE, "lt_white", lTarget);

oTarget = GetObjectByTag("fire_sound");

SoundObjectPlay(oTarget);

oTarget = GetObjectByTag("FX_TORCHGLOW");

DelayCommand(1800.0, DestroyObject(oTarget, 0.0));

oTarget = GetObjectByTag("LT_WHITE");

DelayCommand(1800.0, DestroyObject(oTarget, 0.0));

oTarget = GetObjectByTag("fire_sound");

DelayCommand(1800.0, SoundObjectStop(oTarget));

}
Скрипт-генератор штука очень надежная и могу ручаться что тулсет скомпилирует любой его скрипт без ошибок. На вашей совести лишь указать все таги и резрефы верно.

Так что учитесь писать скрипты сами – скрипт-генератор вам в помощь. (IMG:style_emoticons/kolobok_light/smile.gif)

P.S.: Только похвалил скрипт-генератор и тут же нашел в нем баг когда перепроверял скрипт - они забыли добавить определение стринговой переменной для сообщения использующегося при провале начальных условий. Никогда не пользовался стартовым условием раньше - составлял их с помощью арсенала непосредственно в скрипте. В общем в скрипте, если его генерировать по этой схеме, не хватает строчки "string sDeny;" - я ее добавил в результат вручную.


О! Спасибо большое, Вы мне очень помогли!

К сожалению все никогда не получается идеально сразу и так как надо.

Первое, что я бы хотел исправить но не знаю как: когда юзаешь объект эта "чертова хрень" исчезает не в 1 количестве а сразу пачкой, т.е если у меня было в инвентаре 4 чертовой хрени то и исчезнет 4 чертовой хрене, а не 1, пытался поискать как сделать чтобы все таки исчезала 1 чертова хрень, но не нашел.

Второе, почему-то не спавнится огонь и источник света, заменил их на на горшок (что первое под руку попало) сработало все идеально... К звуку притензий нет.

А еще одна вещь которая просто пфффф, вот эта фраза: "*I should find first this damned thing*" появлятся как системное сообщение желтого цвета в чате. Я надеялся, что будет простоя фраза персонажа над головой (как во многих модулях нвн1)...

Может, есть какое-то решение проблемы со спавном огня и источника света? Все-таки очень хочется сделать в модуле возможность разводить костры, зажигать жаровни/факелы и т.д...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Flaristan
сообщение Jan 13 2013, 17:56
Сообщение #58


Тролль
****

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



Пачкой имеется в виду стек? Нужно добавить проверку на кол-во итемов в стеке и уменьшать его число (если это возможно – не помню уже), а не удалять. Так же можно выбрать для предмета (что проще) нестыкующуюся основу.

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

Есть три типа сообщений: сообщение в лог, всплывающая фраза (так же отображается в лог) и обычный текст. Все они есть в генераторе в нужном блоке – замени строку команды на более подходящую на твой взгляд. Если не знаешь что менять – не ставь фразу в стартовое условие при составлении скрипта, а сделай сообщение отдельно в скрипте через «if» блок (там и выберешь нужный тип сообщения).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Jan 13 2013, 18:11
Сообщение #59


Level 4
**

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



Ок, сейчас все заново попробую и перепробую еще раз)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
NumberOne
сообщение Jan 14 2013, 05:24
Сообщение #60


Level 4
**

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



В общем, не спавнит он визуальные эффекты. А вот все остальные спавнит нооиально.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

3 страниц V   1 2 3 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th July 2025 - 11:03