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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 46 47 48 49 50 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
JesterX
сообщение May 23 2005, 08:31
Сообщение #1166


Level 1


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



Кто нибудь помогите. Делаю модуль по мотивам книг Ника Перумова - Хранитель мечей, точнее по миру описанному там.
Скриптер из меня никакой. Герой умирает и переносится в межреальность, там общается и его отправляют назад в место где он погиб. Нужен скрипт телепорта на место смерти героя.
За основу я взял скрипты (помоему от Аваддон"а),и чуть переделал.

OnPlayerDying Герой без сознания.

void bleed(int iBleedAmt)
{

effect eShake=EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);
effect eBleedEff;
if (GetCurrentHitPoints() <= 3) {
SpeakStringByStrRef (110519);
if (iBleedAmt > 0) {
eBleedEff = EffectDamage(iBleedAmt);
} else {
eBleedEff = EffectDamage(iBleedAmt);
}
ApplyEffectToObject(DURATION_TYPE_INSTANT, eBleedEff, OBJECT_SELF);
if (GetCurrentHitPoints() <= -10) {
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), OBJECT_SELF);
return;
}

if (iBleedAmt > 0) {
if (d10(1) == 1) {
iBleedAmt = -iBleedAmt;
}
}
}
DelayCommand(6.0,bleed(iBleedAmt));
}




void main()
{
effect eBlood=EffectVisualEffect(VFX_COM_CHUNK_RED_MEDIUM);
object oDying = GetLastPlayerDying();
object oEnemy = GetLastAttacker();
float fWho = (GetFacing(oEnemy));
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,eBlood, GetLocation(oDying), 10.0);
AssignCommand(oDying, ClearAllActions());
AssignCommand(oDying, bleed(1));
CreateObject(OBJECT_TYPE_PLACEABLE,"bloody",GetLocation(oDying),TRUE);

}



Далее OnPlayerDeath Герой умирает и переносится в межреальность.

void main()
{
object oPlayer = GetLastPlayerDied();
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), GetLocation(oPlayer));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR), oPlayer,6.0);
DelayCommand(2.0,FadeToBlack(oPlayer));
DelayCommand(5.0,BlackScreen(oPlayer));

DelayCommand(5.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oPlayer));
DelayCommand(5.8,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oPlayer)), oPlayer));
DelayCommand(6.0,AssignCommand(oPlayer,ClearAllActions()));
DelayCommand(6.2,AssignCommand(oPlayer,JumpToLocation(GetLocation(GetObjectByTag("WP_RAISE")))));
}



И еще в локации межреальности - куда перемещается мертвый игрок OnEnter

void main()
{
object oPC = GetEnteringObject();
DelayCommand(2.0,FadeFromBlack(oPC,FADE_SPEED_SLOWEST));
}

Огромная просьба, ПОМОГИТЕ!!! Допишите скрипт пожалуйста.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение May 23 2005, 08:35
Сообщение #1167


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



QUOTE
Но почему-то, когда НеПиСь выполняет команду ActionSit, то он больше не встает со стула! Почему же так происходит? Все компилится без проблем.
Я пытался после этой ф-ии ставить ClearAllActions(), но непомогает. Так же пытался все преплести к DelayCommand, но толку никакого... 
Кто-нибудь знает в чем загвостка?
ЗЫ
Скрипт ставится в OnHeartBeat НеПиСя.


...в последнем предложении кроется ответ на твою проблем :lol: "Скрипт ставится в OnHeartBeat НеПиСя. " наводящий вопрос : как часто выполняется скрипт на OnHeartBeat?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение May 23 2005, 08:50
Сообщение #1168


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



JesterX
ты извини, конечно, но напрашивается пародия на твой вопрос:
"я тут делаю модуль. вот нашел скрипт и немного его изменил: object oPC = OBJECT_SELF! помогите! допишите мне скрипт!"
ps. телепаты в отпуске. :yes:
pss. поясняю позицию - что там у тебя за диалоги? - остальное вроде интуитивно понятно, хотя конкретики тоже не помешает. что ты хочешь-то?

Сообщение отредактировал dumbo - May 23 2005, 08:57
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
JesterX
сообщение May 23 2005, 08:57
Сообщение #1169


Level 1


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



Просто мне нужно как-то пометить место смерти и написать скрипт телепорта для отправки игрока на это самое место смерти.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение May 23 2005, 09:01
Сообщение #1170


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



так кинь там трупак... только что ведь обсуждалась очень схожая ситуация! смотри наши терки с Лито.
ps. народ, вам когда что-то такое надо, сами не знаете что или если чувствуете, что предстоит такое вот общение в режиме чата - идите на irc-канал #wrg(как и что - написано вверху страницы). у меня такое ощущение, что модератор уже откинул крышечку с оптики...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
JesterX
сообщение May 23 2005, 09:20
Сообщение #1171


Level 1


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



В том то и дело, что труп на месте смерти мне не нужен.
Еще раз - Игрок умирает в точке А, и переносится в точку Б,
там он общается и его отправляют обратно в точку А.
Нужен скрипт отправки из Б в А
Я бы не писал все это если бы разбирался в скриптах.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 23 2005, 10:16
Сообщение #1172


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Мефистофель, Хартбит все время повторяется, не так ли? Вот и подумай, твоему неписю каждые 6 секунд идет команда присесть на стул :D
Добавлено в [mergetime]1116832825[/mergetime]
JesterX
Neverwinter Script Source
#include "x0_i0_secret"
void main()
{
object oPC = GetLastPlayerDied();
object oJump = GetWaypointByTag("B");//Вэйпоинт с тэгом B
TransportToWaypoint(oPC,oJump);
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
JesterX
сообщение May 23 2005, 10:25
Сообщение #1173


Level 1


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



#include "x0_i0_secret"
void main()
{
object oPC = GetLastPlayerDied();
object oJump = GetWaypointByTag("B");//Вэйпоинт с тэгом B
TransportToWaypoint(oPC,oJump);
}

Я так понял, что это отправка на место смерти.
А в инклюде что?
Или я не прав?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 23 2005, 10:32
Сообщение #1174


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



JesterX, это отправка с места смерти.
В инклюде в функция
Neverwinter Script Source
TransportToWaypoint(oPC,oJump);
.
Если хочешь чтобы игрока портили при разговоре на место смерти то -
Neverwinter Script Source
#include "x0_i0_secret"
void main()
{
object oPC =  GetPCSpeaker();
object oJump = GetWaypointByTag("B");//Вэйпоинт с тэгом B
TransportToWaypoint(oPC,oJump);
}

На скрипте смерти пишешь:
Neverwinter Script Source
#include "x0_i0_secret"
void main()
{
CreateObject(OBJECT_TYPE_WAYPOINT,"РесРэф Вэйпоинта",GetLocation(oPC),FALSE,"B");
}

Подойдет скорее только для сингла.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
JesterX
сообщение May 23 2005, 10:45
Сообщение #1175


Level 1


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



Спасибо!!! Щас буду пробовать. Потом отпишу.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение May 23 2005, 10:49
Сообщение #1176


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



в данном случае все проще - надо место смерти тупо повесить на объект игрока. :yes:
в конец скрипта OnPlayerDeath:
Neverwinter Script Source
SetLocalLocation(oPlayer, "died_loc", GetLocation(oPlayer));

на "оживляющую" ветку диалога:
Neverwinter Script Source
void main()
{
  object oPC = GetPCSpeaker();
  //извращения с фэйдом дорисовал...
  DelayCommand(0.2,FadeToBlack(oPC));
  DelayCommand(3.0,BlackScreen(oPC));
  DelayCommand(3.1, AssignCommand(oPC,
    JumpToLocation(GetLocalLocation(oPC, "died_loc"))));
  DelayCommand(7.0,FadeFromBlack(oPC,FADE_SPEED_SLOWEST));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение May 23 2005, 12:20
Сообщение #1177


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



QUOTE
...в последнем предложении кроется ответ на твою проблем  "Скрипт ставится в OnHeartBeat НеПиСя. " наводящий вопрос : как часто выполняется скрипт на OnHeartBeat?

А куда ж его тогда пихать? Это самый подходящий слот. Темболее другие команды нормально работают. Все проверял раз 10, но НеПиСь застревает только на ActionSit!!!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 23 2005, 12:26
Сообщение #1178


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Archangel, Значит именно на ActionSit, твой скрипт повторяется...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение May 23 2005, 13:01
Сообщение #1179


Восставший из пепла
***

Класс: Бледный Мастер
Характер: Neutral Evil
Раса: Человек
ПОДМАСТЕРЬЕ



QUOTE
Archangel, Значит именно на ActionSit, твой скрипт повторяется...

Интересно... Даж не знаю... А может еще куда-нить запихнуть моно, чтоб работало? :this:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 23 2005, 13:24
Сообщение #1180


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

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



// Уу..развели тут без меня..
- все, что выше я читать в поисках вопросов неотвеченных не буду.
- пишите скрипты в NSS ([*]ТУТ СКРИПТ[/*], где * это NSS), а то хрен прочитаешь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение May 23 2005, 14:34
Сообщение #1181


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



Archangel
не надо его никуда "пихать" - все необходимые проверки для исключения повторного выполнения "действующих" кусков кода выполнены.
что нужно сделать:

1. после блока объявления объектов поставь ClearAllActions(TRUE);
2. все нужно перетащить под DelayCommand, ибо иначе ты не имеешь возможности нормально управлять процессом - в частности, в существующем варианте, если ты после команды усадки на стул поставишь ClearAllActions(TRUE), чтобы поднять непися, то ничего не выйдет, потому как к моменту выполнения этого ClearAllActions непись успеет только первый Actionбла-бла отработать. и он встанет и больше ничего не сделает. :yes:
после каждой ночной "усадки" нужно вставить DelayCommand(<время за которое непись уже сядет и успеет посидеть>, ClearAllActions(TRUE));

собственно и все. совет(и не только тебе) - еще пару раз перечитать доки и попытаться четко себе представить, как именно работают все функции, связанные с Actions.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 23 2005, 15:28
Сообщение #1182


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



dumbo, поставил твой скрипт, ничего не меняя(ну всмысле сделал все как ты сказал)
Опыт снимается, чар рукой машет, но в локу к трупу не транпортируется :(

Вопрос снимается повестки :)

Сообщение отредактировал Лито - May 23 2005, 18:24
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение May 23 2005, 19:44
Сообщение #1183


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



QUOTE (Лито @ May 23 2005, 10:16)
Мефистофель, Хартбит все время повторяется, не так ли? Вот и подумай, твоему неписю каждые 6 секунд идет команда присесть на стул  :D 

Я не понел, я спрашивал про стул.?????
Лито я ввожу эти полоски скрипта что вы мне дали, проавильно. но
Мне всюравно выдаёт ошибку, я прошу, может ты знаеш. Напиши этот скрипт в настоящем размере, а то я сам немогу все эти ковычки и т.д я просто не понимаю. спасибо заранее.
скрипт я ещё раз опишу.
в ХотУ был момент когда жирный куб, сожрал дроу, и он дёргался сночало а потом превратился в скелета, продолжал дёргатся и умер, мне очень нужно чтоб у меня также сробатывал скрипт но талько, чтобы он запускался при смерти Непися. Пожалуйста последняя надежда на вас. Спасибо.

Сообщение отредактировал Мефистофель - May 23 2005, 19:45
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 23 2005, 20:34
Сообщение #1184


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

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



QUOTE (Мефистофель @ May 23 2005, 20:44)
в ХотУ был момент когда жирный куб, сожрал дроу, и он дёргался сночало а потом превратился в скелета, продолжал дёргатся и умер, мне очень нужно чтоб у меня также сробатывал скрипт но талько, чтобы он запускался при смерти Непися. Пожалуйста последняя надежда на вас. Спасибо.

я так понял, что ты сам писать не хочешь, а хочешь, чтобы это тебе сделали...эх... это не есть гут.

Напишу позже вечером.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение May 24 2005, 02:19
Сообщение #1185


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



Lex Я знаю, что это не есть хорошо, нопросто этот скрипт мне очень нужен, а я просто не в состоянии его написать, я пробовал, много раз но ничё не выходило. и поэтому попросил у вас.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 24 2005, 02:50
Сообщение #1186


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

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



Слот onDamage
в свойствах НПС поставь immortale
(не проверял на работу, если убивать магией смерти :) )
Neverwinter Script Source
void CreateSkelet(location lLoc)
{
string sRef = "C_SKELETON"; // Резреф твоего скелета
CreateObject(OBJECT_TYPE_CREATURE,sRef,lLoc);
}
void main()
{
    //--------------------------------------------------------------------------
    // GZ: 2003-10-16
    // Make Plot Creatures Ignore Attacks
    //--------------------------------------------------------------------------
    if (GetPlotFlag(OBJECT_SELF))
    {
        return;
    }

    //--------------------------------------------------------------------------
    // Execute old NWN default AI code
    //--------------------------------------------------------------------------
    ExecuteScript("nw_c2_default6", OBJECT_SELF);
    if ((GetCurrentHitPoints()==1) && (!GetLocalInt(OBJECT_SELF,"DEATH")))
        {
        ClearAllActions(TRUE);
        SetLocalInt(OBJECT_SELF,"DEATH",TRUE);
        DelayCommand(0.3,SetCommandable(FALSE,OBJECT_SELF));
        // АНИМАЦИЯ СТОЯЧЕГО ДРЫГАНЬЯ. НЕ ОЧЕНЬ ХОРОШАЯ.. САМ УВИДИШЬ.
        // МЕНЯЙ НА КАКУЮ НАДО + Я БЫ ДОБАВИЛ ПАРУ ВИЗУАЛОК ДЛЯ КРАСОТЫ. И ПРЯМО ПЕРЕД ПОЯВЛЕНИЕМ СКЕЛЕТА ТОЖЕ
        // КАКОЙ-НИТЬ ВИЗУАЛЬЧИК СДЕЛАЛ БЫ. НО ЭТО УЖЕ САМ.
        ActionPlayAnimation(ANIMATION_FIREFORGET_DODGE_SIDE);
        ActionPlayAnimation(ANIMATION_FIREFORGET_DODGE_DUCK);
        ActionPlayAnimation(ANIMATION_FIREFORGET_SPASM);
        ActionDoCommand(SetImmortal(OBJECT_SELF,FALSE));
        ActionDoCommand(DelayCommand(1.5,CreateSkelet(GetLocation(OBJECT_SELF))));
        ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDeath(),OBJECT_SELF));
        }

}

Добавлено в [mergetime]1116893087[/mergetime]
QUOTE (Мефистофель @ May 23 2005, 20:44)
Я не понел, я спрашивал про стул.?????

а что про стул?
Если ты в ХБ пишешь ActionSit() то будет вот что:
- выполнится команда первый раз, но команда такого типа, что выполяется (те НПС/РС сидит) пока не будет удалена (ClearAllActions())
- через 6 сек у тебя в очереди (стеке) окажется 2 команды. 1 которая выполяется, другая следующая, ждущая своей очереди.
- еще через 6 секунд, и уже 3 команды на персонаже.
- ...
- Доходим до ХХ команд и ловим глюки. :) Или не ловим. Для сингла ситуация не критична, для шарда это более серьезно.
Добавлено в [mergetime]1116893506[/mergetime]
QUOTE (Archangel @ May 22 2005, 12:03)
Но почему-то, когда НеПиСь выполняет команду ActionSit, то он больше не встает со стула!

Выше написал, в чем проблема.
Чтобы снять ее, юзай ClearAllActions()
Там задержку нужную поставь.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение May 24 2005, 12:00
Сообщение #1187


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



Респект тебе Lex, спасибо огромное, хы жалко мало таких людей которые что то для других делают.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 24 2005, 15:56
Сообщение #1188


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Вот такая идейка появилась. В теме одиночный вопрос - усложняют жизнь магам. У меня такой вариант. Ограничить кол-во щитов, которые маг может на себя наложить(оболочка местила, лементальный щит, броня смерти).
Если висит щит местилы, наложить death-armor уже не выйдет или элементальный щит, уже не выйдет. То есть либо, либо,либо.
То что это делается через spell-hook, я знаю. Просьба написать основу, а дальше я уже по приведенному примеру будут писать сам. Конечно кроме благодарности ничего взамен предложить не могу, попытаюсь по мере сил, отвечать новичкам на более-менее не сложные вопросы :)

Сообщение отредактировал Лито - May 24 2005, 15:58
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 25 2005, 19:28
Сообщение #1189


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Ок я конечно, что лень писать что то, самому не нужное. Но тогда прошу проверить последующий далее скрипт spell-hook и сказать, что в нем не правильно?
Neverwinter Script Source
#include "nw_i0_tool"
#include "x2_inc_switches"
void main()
{
object oPC = OBJECT_SELF;
object oTarget = GetSpellTargetObject();
object oSymbol = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
object oItem = GetSpellCastItem();
int nSpell = GetSpellId();




if (GetLevelByClass(CLASS_TYPE_CLERIC, oPC) && (GetIsDM(oPC) == FALSE))
  {
      if (GetIsObjectValid(oItem))
          {
          return;
          }

          if (GetTag(oSymbol) != "cleric_symbol")
        {
        SetModuleOverrideSpellScriptFinished();
        SendMessageToPC(OBJECT_SELF, "Âàì íåîáõîäèì âàø ñèìâîë!");
        }

  }
        if (GetLevelByClass(CLASS_TYPE_DRUID, oPC) && (GetIsDM(oPC) == FALSE))
          {
          if (GetIsObjectValid(oItem))
          {
          return;
          }
            if(HasItem(oPC, "druid_symbol")==FALSE)
            {
              SetModuleOverrideSpellScriptFinished();
              SendMessageToPC(OBJECT_SELF, "Âàì íåîáõîäèì âàø ñèìâîë!");
            }
        if (GetLevelByClass(CLASS_TYPE_RANGER, oPC) && (GetIsDM(oPC) == FALSE))
        {
        if (GetIsObjectValid(oItem))
          {
          return;
          }
        if(HasItem(oPC, "druid_symbol")==FALSE)
        {
        SetModuleOverrideSpellScriptFinished();
        SendMessageToPC(OBJECT_SELF, "Âàì íåîáõîäèì âàø ñèìâîë!");
        }

        }

    // Êîíåö äèâàéí ÷àñòè.
    switch (nSpell)
    {
  case SPELL_MESTILS_ACID_SHEATH:
    if(GetHasSpellEffect(SPELL_MESTILS_ACID_SHEATH)==TRUE)
    {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "Âû óæå îáëàäàåòå ýòèì ýôôåêòîì!");
    }
    else if(GetHasSpellEffect(SPELL_ELEMENTAL_SHIELD)==TRUE)
    {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "Âû íå ìîæåòå íàëîæèòü íà ñåáÿ ýòî çàêëèíàíèå â äàííûé ìîìåíò!");
    }
    else if(GetHasSpellEffect(SPELL_DEATH_ARMOR)==TRUE)
    {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "Âû íå ìîæåòå íàëîæèòü íà ñåáÿ ýòî çàêëèíàíèå â äàííûé ìîìåíò!");
    }
  break;


  case SPELL_ELEMENTAL_SHIELD:


  if(GetHasSpellEffect(SPELL_MESTILS_ACID_SHEATH)==TRUE)
    {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "Âû íå ìîæåòå íàëîæèòü íà ñåáÿ ýòî çàêëèíàíèå â äàííûé ìîìåíò!");
    }
    else if(GetHasSpellEffect(SPELL_ELEMENTAL_SHIELD)==TRUE)
    {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "Âû óæå îáëàäàåòå ýòèì ýôôåêòîì!");
    }
    else if(GetHasSpellEffect(SPELL_DEATH_ARMOR)==TRUE)
    {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "Âû íå ìîæåòå íàëîæèòü íà ñåáÿ ýòî çàêëèíàíèå â äàííûé ìîìåíò!");
    }


    case SPELL_DEATH_ARMOR:


    if(GetHasSpellEffect(SPELL_MESTILS_ACID_SHEATH)==TRUE)
    {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "Âû íå ìîæåòå íàëîæèòü íà ñåáÿ ýòî çàêëèíàíèå â äàííûé ìîìåíò!");
    }
    else if(GetHasSpellEffect(SPELL_ELEMENTAL_SHIELD)==TRUE)
    {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "Âû íå ìîæåòå íàëîæèòü íà ñåáÿ ýòî çàêëèíàíèå â äàííûé ìîìåíò!");
    }
    else if(GetHasSpellEffect(SPELL_DEATH_ARMOR)==TRUE)
    {
    SetModuleOverrideSpellScriptFinished();
    SendMessageToPC(OBJECT_SELF, "Âû óæå îáëàäàåòå ýòèì ýôôåêòîì!");
    }

    case SPELL_RESURRECTION:
    int nPenalty = 50*GetHitDice(oTarget);
    int nXP = GetXP(oTarget);
    int nNewXP = nXP - nPenalty;
    SetXP(oTarget,nNewXP);
    object oItem;
    int nSlot;
    AssignCommand(oTarget,ClearAllActions(TRUE));
    for(nSlot = 0; nSlot < 14; nSlot++)
    {
        oItem = GetItemInSlot(nSlot, oTarget);
        if(oItem != OBJECT_INVALID)
        {
            AssignCommand(oTarget, ActionUnequipItem(oItem));
            AssignCommand(oTarget, ActionEquipItem(oItem, nSlot));
        }
    }
    break;
        }
switch (nSpell)
    {
    case SPELL_RAISE_DEAD:
    int nPenalty =100*GetHitDice(oTarget);
    int nXP = GetXP(oTarget);
    int nNewXP = nXP - nPenalty;
    SetXP(oTarget,nNewXP);
    object oItem;
    int nSlot;
    AssignCommand(oTarget,ClearAllActions(TRUE));
    for(nSlot = 0; nSlot < 14; nSlot++)
    {
        oItem = GetItemInSlot(nSlot, oTarget);
        if(oItem != OBJECT_INVALID)
        {
            AssignCommand(oTarget, ActionUnequipItem(oItem));
            AssignCommand(oTarget, ActionEquipItem(oItem, nSlot));
        }
        }

    break;
}
}
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение May 25 2005, 21:31
Сообщение #1190


Level 9
***

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



Хм... Могу сделать только одно замечание по поводу русских символов в скрипте. Лично я помню очень долго парился по поводу того, что не работал скрипт. Оказалось - мешает русский текст после двойного слеша(!). Так что не знаю, попробуй на всякий случай убрать ВСЕ русские символы из скрипта.
Хотя сам скрипт проверить нет времени (да и сам я пока не асс). Просто это первое что бросилось в глаза.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 46 47 48 49 50 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 14th May 2025 - 03:32