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

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

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


Level 9
***

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



Та-а-к, золото забирается, но не создается :agr:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 20 2005, 20:00
Сообщение #1137


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

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



ПРОВЕРЬ РЕЗРЕФ.
Добавлено в 21:00
а вообще я написал же выше скрипт..он работает с любыми суммами и через передачу работает, а не через создание, так что проблемы вообще нету. :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 20 2005, 20:05
Сообщение #1138


Level 9
***

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



Lex , все сенк, все работает. Прокосячил, самому за себя стыдно :oops:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение May 20 2005, 20:10
Сообщение #1139


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

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



Моет мне ктонибудь поможет? а
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 20 2005, 20:38
Сообщение #1140


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

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



QUOTE (Мефистофель @ May 20 2005, 09:41)
Помогите, у кого есть хак с Лошадьми, мне нужно, чтоб ПК сел на лошадь. :swoon:

у меня нету, я не знаю. Но вроде такое невозможно технически. Там должна быть модель всадника в хаке. Возможно посадка на лошадь это просто удаление лошади и смена модели игрока на всадника, хз. :)
Добавлено в [mergetime]1116611188[/mergetime]
QUOTE (Мефистофель @ May 20 2005, 09:41)
И ещё помогите со скриптом, блин он такой лёгкий, но у меня чёто не получается, я делаю так.
DelayCommand(39.5, AssignCommand оРС ActionSit(оСтул); это я так без тулсета примерно написал. помогите, как посадить ПК. :unsure:

Ээ..это у тебя часть сценки? Я без остального текста сценки тебе ничего сказать не могу.
А если тебе надо сесть на стул при клике на него, то
Neverwinter Script Source
AssignCommand(GetLastUsedBy(),ActionSit(OBJECT_SELF));

на onUsed стула.
QUOTE (Мефистофель @ May 20 2005, 09:41)

И ещё т.к. камера не отрывается мне нужно сделать копию ПК, а настоящего оставить под эффектом невидимости. Я видел это в зеркалах, в ХотУ. помогите, что сделать нужно. :yes:

Neverwinter Script Source
object CopyObject(
    object oSource,
    location locLocation,
    object oOwner = OBJECT_INVALID,
    string sNewTag = ""
);

oSource - Object to be copied.
locLocation - Destination location for the copied object (required).
oOwner - Item owner (for use when copying items into inventory) (Default: OBJECT_INVALID)
sNewTag - New tag name. (Default: "")

А инвиз лучше всего такой
Neverwinter Script Source
effect eInvis = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);

и накладывай его
Neverwinter Script Source
void ApplyEffectToObject(
    int nDurationType,
    effect eEffect,
    object oTarget,
    float fDuration = 0.0f
);

nDurationType - DURATION_TYPE_*
eEffect - The effect to apply.
oTarget - The target of the effect.
fDuration -The duration of temporary effects. (Default: 0.0f)

QUOTE (Мефистофель @ May 20 2005, 09:41)

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

Глянь на базе скриптов. Вообще тебе всего то надо определить класс и создать соотв. шмотку..
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 20 2005, 21:56
Сообщение #1141


Level 9
***

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



Есть такая проблема, при потере левела, игрок иногда остается в шмоте, который ему не по "размеру". Появилась идея, при респауне снимать и одевать вещи на игрока. Реально ли такое осуществить?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 20 2005, 22:22
Сообщение #1142


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

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



Да.
Через стоимость вещи вроде можно определить уровень. Где-то кто-то расписывал табличку такую. Сравнивай потом с уровнем игрока и все.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 21 2005, 01:29
Сообщение #1143


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Можно сделать просто вот такую функцию:
Neverwinter Script Source
void ReEquipItem(object oPC)
{
    object oItem;
    int nSlot;

    for(nSlot = 0; nSlot < 14; nSlot++)
    {
        oItem = GetItemInSlot(nSlot, oPC);
        if(oItem != OBJECT_INVALID)
        {
            AssignCommand(oPC, ActionUnequipItem(oItem));
            AssignCommand(oPC, ActionEquipItem(oItem, nSlot));
        }
    }
}

И использовать ее в нужном месте :) Она будет переодевать шмот и если что то будет не по лвлу, оно не оденется :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tiger Greyhawk
сообщение May 21 2005, 03:14
Сообщение #1144



Иконки Групп

Класс: Обыватель
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



QUOTE (Мефистофель @ May 20 2005, 09:41)
Помогите, у кого есть хак с Лошадьми, мне нужно, чтоб ПК сел на лошадь.

А топик "Ссылки" зачем? Там оно есть: Ссылка на пост с хаком лошадей. Наиболее качественные лошади.

З.Ы. Lex, удали потом этот мой оффтоп, плз.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 21 2005, 10:32
Сообщение #1145


Level 9
***

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



Buldog ,я как раз про это говорил, сенк ;)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение May 21 2005, 13:40
Сообщение #1146


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

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



Лекс Громадное спосибо. но вазникло опять куча вопросов.
1. возможно ли поменять ПК, т.е, Скриптом или чем другим переменить ПК на любого другого НПК.?
Здравствуйте, дорогие ВРГшники, очень прошу мне помочь со скриптом.
Дак вот в ХотУ был такой скрипт, желейный куб поглощает дроу, а дроу дёргается и превращается в скелета, и, наконец падает.
Вопрос.
Мне нужно поместить скрипт не как кут сцену, а на on Death, чтобы создавать людей которые при убийстве превращались в скелетов дергались и умирали, функции там были какие-то такие, я попробовал фигня не получается, может вы поможете мне, заранее спасибо.
Neverwinter Script Source
void CallSetStatus(int nCutscene, object oObject, int nVal)
{
    if(nCutscene == GetLocalInt(oObject, "nCutsceneNumber"))
    {
        SetLocalInt(oObject, "STATUS", nVal);
    }
}

void CutSetStatus(float fDelay, object oObject, int nVal)
{
}

void CallSetAppearance(int nCutscene, object oObject)
{
    if(nCutscene == GetLocalInt(oObject, "nCutsceneNumber"))
    {
        SetCreatureAppearanceType(oObject, APPEARANCE_TYPE_SKELETON_COMMON);
    }
}

void CutSetAppearance(float fDelay, object oObject)
{
}


QUOTE
AssignCommand(GetLastUsedBy(),ActionSit(OBJECT_SELF));

Лекс нет, я имел ввиду в катсцене,! чтоб ПК сел. на опередённый стул.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 21 2005, 15:05
Сообщение #1147


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

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



QUOTE (Мефистофель @ May 21 2005, 14:40)
Лекс нет, я имел ввиду в катсцене,! чтоб ПК сел. на опередённый стул.

и что я тебе сказал, если там сценка?
QUOTE (Lex @ May 20 2005, 21:38)
Ээ..это у тебя часть сценки? Я без остального текста сценки тебе ничего сказать не могу.

Так то...
QUOTE (Мефистофель @ May 21 2005, 14:40)
1. возможно ли поменять ПК, т.е, Скриптом или чем другим переменить ПК на любого другого НПК.?

Чаво??? Превратить НПС в игрока и наоборот..во время игры? Нет. И необходимости никогда не было...

QUOTE (Мефистофель @ May 21 2005, 14:40)
Здравствуйте, дорогие ВРГшники, очень прошу мне помочь со скриптом.

команда WRG является 1% от посетителей форума.. :) Форумчане уж тогда :)
QUOTE (Мефистофель @ May 21 2005, 14:40)
Мне нужно поместить скрипт не как кут сцену, а на on Death, чтобы создавать людей которые при убийстве превращались в скелетов дергались и умирали, функции там были какие-то такие, я попробовал фигня не получается, может вы поможете мне, заранее спасибо.

эм..ты мне не рассказывай, как в ХОТУ, я не играл :)
Надо, чтобы после смерти проигралась какая-то анимация (дерганье тобишь. Стоя они дергались или как?) и превращение в скелетов?

анимация:
Neverwinter Script Source
ActionPlayAnimation(int ANIMATION_*, float fSpeed, float fTime);

превращение..там скорее всего создание на этом месте нового существа - скелета. Это так:
Neverwinter Script Source
CreateObject(int OBJECT_TYPE_*,string ref, location lloc,FALSE);
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 21 2005, 17:13
Сообщение #1148


Level 9
***

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



Научите меня функцией ActionStartConversation пользоваться :)
Необходимо сделать диалог с плэйсиблом. (хрустальный шар)
пишу:
Neverwinter Script Source
void main()
{
AssignCommand(OBJECT_SELF,ActionStartConversation(GetLastUsedBy(),"l_plc_frostball",TRUE,FALSE));
}

где l_plc_frostball - это имя диалога, ну и ResRef я думаю. Использую шар, диалога нет :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Убо-Сатло
сообщение May 21 2005, 17:25
Сообщение #1149


Level 5
**

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



QUOTE (Лито @ May 21 2005, 18:13)
Научите меня функцией ActionStartConversation пользоваться

Достаточно просто на OnUsed
Neverwinter Script Source
void main()
{
  ActionStartConversation(GetLastUsedBy());
}

А диалог вставить в ->свойства плэйса -> улучшеный-> разговор
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 21 2005, 17:30
Сообщение #1150


Level 9
***

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



Сейчас попробуемс...
Добавлено в [mergetime]1116686316[/mergetime]
Убо-Сатло Не катит такой способ. Игрок просто подходит к шару и все.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 21 2005, 17:53
Сообщение #1151


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

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



QUOTE (Убо-Сатло @ May 21 2005, 18:25)
А диалог вставить в ->свойства плэйса -> улучшеный-> разговор

вот это ты сделал?
Добавлено в [mergetime]1116687381[/mergetime]
QUOTE (Убо-Сатло @ May 21 2005, 18:25)
void main()
{
  ActionStartConversation(GetLastUsedBy());
}

это пашет - 100%.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 21 2005, 17:56
Сообщение #1152


Level 9
***

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



Конечно :yes: . Все поставил.

Сейчас еще проверю...



Сообщение отредактировал Лито - May 21 2005, 18:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Убо-Сатло
сообщение May 21 2005, 17:59
Сообщение #1153


Level 5
**

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



Я могу предположить 2 варианта:
1) Твой плэйс расположен так, что PC не может его использовать(подойти к нему с нужной стороны на нужное расстояние). Когда кликаешь на него, в левом верхнем углу вылазит иконка движения. Если когда PC подошел к плэйсу, иконка не ушла, значит это так.
2) Ну, это на всякий случай, проверь, скрипт стоит на OnUsed? Диалог вставлен? Да, и есть ли еще на этом плэйсе какие-то скрипты? Если есть, то где?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 21 2005, 18:05
Сообщение #1154


Level 9
***

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



Все я понял в чем дело...Дело в том что там 10 шаров и я не по тому целкал :swoon:

Новый вопрос у меня, дроп золота я сделал. Теперь у меня задача сделать дроп одной случаной вещи из инвенторя. Дальше возможны варианты выпадение вещи по ее стоимости или скажем выпадение одной одетой вещи(кстати дополнительный вопрос: как правильно говорить? Одетой и надетой? :)). (это когда игроки забивают всю сумку хламом...)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение May 22 2005, 01:16
Сообщение #1155


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

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



Lex Большое спасибо, что помогаеш мне, но вотя в этих скриптах дуб дубком, немог бы ты описать более понятным для меня образом.
Neverwinter Script Source
CreateObject(int OBJECT_TYPE_*,string ref, location lloc,FALSE);
?????
Neverwinter Script Source
CreateObject(int OBJECT_TYPE_*,string ref, location lloc,FALSE);
?????

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
JesterX
сообщение May 22 2005, 09:50
Сообщение #1156


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));
}

Огромная просьба, ПОМОГИТЕ!!! Допишите скрипт пожалуйста.

P.S. Нужен еще один скрипт, который я поставлю на ветвь разговора. И чуть дописать скрипт на OnPlayerDeath. [COLOR=red][COLOR=red]
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 22 2005, 10:28
Сообщение #1157


Level 9
***

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



QUOTE (Мефистофель @ May 22 2005, 01:16)
Lex Большое спасибо, что помогаеш мне, но вотя в этих скриптах дуб дубком, немог бы ты описать более понятным для меня образом.
Neverwinter Script Source
CreateObject(int OBJECT_TYPE_*,string ref, location lloc,FALSE);

Neverwinter Script Source
CreateObject(int OBJECT_TYPE_*,string ref, location lloc,FALSE);


Это просто пример функции.
на место int OBJECT_TYPE_* - ставишь константу, типа объекта(плэйсибл, существо и т.д.)
string ref - РесРеф создаваемого объекта.
location lloc - куда объект создается.
FALSE - эффект "появления". Например паук спускается по нити паутины...

2JesterX, гм...ты же сам все сделал.

Сообщение отредактировал Лито - May 22 2005, 10:30
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Archangel
сообщение May 22 2005, 11:03
Сообщение #1158


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

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



Люди, памажите! Вот скрипт:
Neverwinter Script Source
void main()
{
object oTK=GetObjectByTag("TK");
object oSTK1=GetObjectByTag("STK1");
object oED=GetObjectByTag("IN_HOME_AREA_D1");
object oMD1=GetObjectByTag("HOME_AREA_BIG_DOOR");
object oMD2=GetObjectByTag("CENTER_AREA_BIG_DOOR");
object oTKWP0=GetWaypointByTag("TKWP0");
object oTKWP1=GetWaypointByTag("TKWP1");
object oTKWPEND=GetWaypointByTag("TKWPEND");
object oMTK1=GetObjectByTag("MTK1");
if (GetIsDay() && GetLocalInt(oTK, "Day") != 1)
{
ActionSpeakString("Äîáðîå óòðî!");
ActionForceMoveToObject(oED);
ActionJumpToObject(oTKWP0);
ActionForceMoveToObject(oMD1);
ActionJumpToObject(oTKWP1);
SetLocalInt(oTK, "Day", 1);
SetLocalInt(oTK, "Night", 0);
return;
}
if (GetIsNight()&& GetLocalInt(oTK, "Night") != 1)
{
ActionSpeakString("Óõ. Ïîçäíî óæå. Ïîéäó äîìîé...");
ActionForceMoveToObject(oMD2);
ActionJumpToObject(oTKWPEND);
ActionSit(oSTK1);
ActionWait(120.0);
ActionForceMoveToObject(oMTK1);
ActionPlayAnimation(ANIMATION_LOOPING_GET_MID);
ActionForceMoveToObject(oTKWPEND);
ActionPlayAnimation(ANIMATION_FIREFORGET_TAUNT);
ActionPlayAnimation(ANIMATION_FIREFORGET_TAUNT);
ActionPlayAnimation(ANIMATION_FIREFORGET_TAUNT);
ActionPlayAnimation(ANIMATION_FIREFORGET_TAUNT);
ActionPlayAnimation(ANIMATION_FIREFORGET_TAUNT);
ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE);
ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE);
ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE);
ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE);
ActionPlayAnimation(ANIMATION_FIREFORGET_SALUTE);
ActionPlayAnimation(ANIMATION_LOOPING_LISTEN);
ActionPlayAnimation(ANIMATION_LOOPING_LISTEN);
ActionPlayAnimation(ANIMATION_LOOPING_LISTEN);
ActionPlayAnimation(ANIMATION_LOOPING_LISTEN);
ActionPlayAnimation(ANIMATION_LOOPING_LISTEN);
ActionSit(oSTK1);
SetLocalInt(oTK, "Day", 0);
SetLocalInt(oTK, "Night", 1);
return;
}
}

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


Сообщение отредактировал Archangel - May 22 2005, 11:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 22 2005, 15:01
Сообщение #1159


Level 9
***

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



Вобщем система выпадения одной шмотки из слота при смерти PС и золота, была написана...
Если кому интересно то вот:
Neverwinter Script Source
object oDrop=OBJECT_INVALID;
int nSlot;
int nGP = GetGold(oPC);
int k;
int i;
int nChance=0;
if(GetHitDice(oPC)<6)nChance=70;
if((Random(100)+nChance)<(60+GetHitDice(oPC)))
{
k=Random(11);
for(i=k;oDrop==OBJECT_INVALID; )
{
switch(i)
{
  case 0:nSlot=INVENTORY_SLOT_ARMS;break;
  case 1:nSlot=INVENTORY_SLOT_BELT;break;
  case 2:nSlot=INVENTORY_SLOT_BOOTS;break;
  case 3:nSlot=INVENTORY_SLOT_CHEST;break;
  case 4:nSlot=INVENTORY_SLOT_CLOAK;break;
  case 5:nSlot=INVENTORY_SLOT_HEAD;break;
  case 6:nSlot=INVENTORY_SLOT_LEFTHAND;break;
  case 7:nSlot=INVENTORY_SLOT_LEFTRING;break;
  case 8:nSlot=INVENTORY_SLOT_NECK;break;
  case 9:nSlot=INVENTORY_SLOT_RIGHTHAND;break;
  case 10:nSlot=INVENTORY_SLOT_RIGHTRING;break;
}
oDrop=GetItemInSlot(nSlot,oPC);
i++;
if(i==11) i=0;
if(i==k)break;
}
}
object oCorpse = CreateObject(OBJECT_TYPE_PLACEABLE,"pc_corpse",GetLocation(oPC),TRUE); //плэйс трупа игрока
AssignCommand(oCorpse,TakeGoldFromCreature(nGP,oPC,FALSE));//забираем GP
AssignCommand(oCorpse,ActionTakeItem(oDrop,oPC));//забираем вещь

Из игроков левелом 5 или меньше, вещи не падают, только золото. Есть шанс выпадения. У 10 -70%,у 20 уровня он равен 80%,у 30 - 90%, у 40%...
Если вещей в слотах не было найдено, то тогда ничего не выпадает.
Собственно есть задача с которой я не могу справится. Я хочу переписать систему смерти на шарде. При смерти игрока кидает в фугу, где он либо входит в портал, за что с него снимают n-кол-во XP, либо ждет пока его реснут(скастовав райз или резурект на труп, который создается на месте смерти.)
Вот с момента воскрешения начинаются проблемы...
Пробовал реализовать через стринги которые накладываются при смерти на труп и на игрока.
Neverwinter Script Source
void main()
{
object oPC =GetNextPC();
string sPCName = GetPCPlayerName(oPC);

if(GetSpellId()==SPELL_RAISE_DEAD)
{
if(GetLocalString(OBJECT_SELF,"NAME")==sPCName)
{
AssignCommand(oPC,JumpToLocation(GetLocation(OBJECT_SELF)));
int nPenalty =100*GetHitDice(oPC);
    int nXP = GetXP(oPC);
    int nNewXP = nXP - nPenalty;
    SetXP(oPC,nNewXP);
}
}
}

И если они равны, применять к игроку в фуге необходимые эффекты, но! я на 100% уверен, что -
Neverwinter Script Source
object oPC =GetNextPC();
уже не верно.
Даже не знаю как реализовать :xz: , помогайте мастера :shout:

Сообщение отредактировал Лито - May 22 2005, 15:01
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение May 22 2005, 17:07
Сообщение #1160


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

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



а причем тут GetNextPC()?! - это функция получения следущего объекта игрока при перечислении игроков. тебе надо при создании трупа игрока на объект трупа вешать ссылку на объект игрока. и потом при юзании резурректа на труп, читать с него переменную объекта игрока и уже с ней работать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 5th May 2025 - 07:30