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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 96 97 98 99 100 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
xHageN
сообщение Aug 3 2006, 20:21
Сообщение #2416


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



Всем доброго времени суток! Делая свой модуль сегодня, я столкнулся с проблемкой..
В самом модуле у меня идёт стандартное пенальти на экспу и деньги при смерти, но мне нужно, чтоб в определеннойй арее за смерть ничего не снимали. Сколько не парился, никак не получилось, чар респавнится с потерей опыта и денег и в стандартном месте (мне нужно, чтоб он воскресал в той арее где смерть не дает пенальти). По сему решил я к вам обратиться, может наставите на путь истинный (IMG:style_emoticons/kolobok_light/declare.gif) )))

Вот собственно финальный вариант того, что у меня получилось (вернее не получилось!)

NSS
void main()
{
    object oRespawner = GetLastRespawnButtonPresser();
    object oSpawnPoint = GetObjectByTag("portal");
    object oSpawnPoint2 = GetObjectByTag("soznanie_portal");
    object oArea = GetArea(oSpawnPoint2);


  if  (GetArea(oRespawner) == oArea)
  {
    AssignCommand(oRespawner,JumpToLocation(GetLocation(oSpawnPoint2)));
    ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
    ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
    RemoveEffect(oRespawner, EffectDeath());
  }
    else;
    int nXP = GetXP(oRespawner);
    int nPenalty = 50 * GetHitDice(oRespawner);
    int nHD = GetHitDice(oRespawner);
    int nMin = ((nHD * (nHD - 1)) / 2) * 1000;
    int nNewXP = nXP - nPenalty;
    if (nNewXP < nMin)
      nNewXP = nMin;
    SetXP(oRespawner, nNewXP);
    int nGoldToTake =    FloatToInt(0.10 * GetGold(oRespawner));
    if (nGoldToTake > 10000)
    {
        nGoldToTake = 10000;
    }
    AssignCommand(oRespawner,JumpToLocation(GetLocation(oSpawnPoint)));
    AssignCommand(oRespawner, TakeGoldFromCreature(nGoldToTake, oRespawner, TRUE));
    DelayCommand(4.0, FloatingTextStrRefOnCreature(58299, oRespawner, FALSE));
    DelayCommand(4.8, FloatingTextStrRefOnCreature(58300, oRespawner, FALSE));

    ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
    ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
    RemoveEffect(oRespawner, EffectDeath());
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Aug 3 2006, 21:00
Сообщение #2417


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

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



NSS
RemoveEffect(oRespawner, EffectDeath());
  }
    else;
//^(IMG:style_emoticons/kolobok_light/i-m_so_happy.gif) ^ мдя

обрами скобочками блок скрипта с выдачей пенальти и убери ";" после else.
либо в первом блоке после RemoveEffect(..) поставь "return;".


морду какую-то самодовольную вставило вместо пары галочек(^)...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 3 2006, 21:01
Сообщение #2418


Level 4
**

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



Первое что увидал:

NSS
else;


Делай так:

NSS
else
{
// Выражение
}


dumbo, пардон не заметил. (IMG:style_emoticons/kolobok_light/pleasantry.gif) (IMG:style_emoticons/kolobok_light/biggrin.gif)

Сообщение отредактировал Waromon - Aug 3 2006, 21:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение Aug 4 2006, 02:20
Сообщение #2419


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

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



NSS
RemoveEffect(oRespawner, EffectDeath());
- лишнее
а так - вместо елсе лучше поставь
NSS
if  (GetArea(oRespawner) == oArea) {
...
return;
}
// тут было else;
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 4 2006, 10:22
Сообщение #2420


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



От спасибо вам, все работает! Ещё один маленький шажок для меня в познаниях скриптинга))

А, вот ещё никак не могу разобраться:
Скрипт на ОнДэф одного перца. Когда он умирает, должны исчезнуть плэйсеблы лучи (иметируют своего рода клетку) и ловушка. Так же другой перец, находящийся в самой как бы клетке должен подбежать ко мне и сдестроиться.
Из этого всего почему-то работает только ActionForceMoveToObject и DestroyObject oRad.. Ну и переменная начисляется.

NSS
void main()
{
object oKiller = GetLastKiller();
object oRays = GetObjectByTag("gore_ray");
object oTrap = GetObjectByTag("gore_trap");
object oRad = GetObjectByTag("radost");

AssignCommand(oRays, ActionDoCommand(DestroyObject(oRays)));
AssignCommand(oTrap, ActionDoCommand(DestroyObject(oTrap)));
AssignCommand(oRad, ActionForceMoveToObject(oKiller, TRUE, 1.0, 5.0));
AssignCommand(oRad, ActionDoCommand(DestroyObject(oRad)));
DelayCommand(0.5, SetCommandable(FALSE, oRad));
DelayCommand(0.5, SetCommandable(FALSE, oRays));
DelayCommand(0.5, SetCommandable(FALSE, oTrap));
SetLocalInt(oKiller, "cleanmind", GetLocalInt(oKiller, "cleanmind") + 1);
}


Сообщение отредактировал xHageN - Aug 4 2006, 12:11
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение Aug 4 2006, 15:19
Сообщение #2421


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

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



NSS
void main() {
object oKiller = GetLastKiller();
object oRays = GetObjectByTag("gore_ray");
object oTrap = GetObjectByTag("gore_trap");
object oRad = GetObjectByTag("radost");
DestroyObject(oRays);
DestroyObject(oTrap);
AssignCommand(oRad, ActionForceMoveToObject(oKiller, TRUE, 1.0, 5.0));
DelayCommand(10.0f, DestroyObject(oRad)); // 10.0 заменить на время, за которое он добегает.
SetLocalInt(oKiller, "cleanmind", GetLocalInt(oKiller, "cleanmind") + 1);
}

P.S.
NSS
AssignCommand(oRays, ActionDoCommand(DestroyObject(oRays)));
- не надо. Достаточно
NSS
DestroyObject(oRays);

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 4 2006, 15:28
Сообщение #2422


Level 4
**

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



[quote name='kreon' date='Aug 4 2006, 15:19' post='89089']
NSS
DelayCommand(10.0f, DestroyObject(oRad)); // 10.0 заменить на время, за которое он добегает.


Команда идет из стека трупа, то бишь, ничего не получится. Время нужно указывать в DestroyObject(oRad, 10.0f)

Сообщение отредактировал Waromon - Aug 4 2006, 15:29
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mandrake
сообщение Aug 4 2006, 15:58
Сообщение #2423


Level 3
*

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



NSS
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
    object oPC = GetFirstPC();
    int nDamage;
    float fDelay;
    effect eDam;
    string sArea = GetTag(GetArea(oPC));
    effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
    object oCampfire = GetObjectByTag("CAMPFIRE101");

    if((GetIsDay())== FALSE)
    {
    if ((GetDistanceBetween(oCampfire, oPC))> 2.0)
    {
    if (sArea == "highmounts001" || sArea == "highmounts002" || sArea == "highmounts003"||
        sArea == "capitolofgom" || sArea == "ncapitolspart" || sArea == "narnpass001"
        ||sArea == "iceland001")
    {

    nDamage = Random(15) + 1;


    if(/*Fort Save*/ MySavingThrow(SAVING_THROW_FORT, oPC, 25, SAVING_THROW_TYPE_COLD, OBJECT_SELF, fDelay))
    {
      nDamage = 0;
    }


    eDam = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oPC));
    //ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eVis, oPC, 1.7);

    }
    }
    }
oPC = GetNextPC();
}


Такая ситуация: Когда игрок находится в некоторых особо "холодных локациях" , он должен делать чек на стойкость против холода, или же будет получать урон. Недавно хотел внести проверку, на наличие костра рядом(тогда урон не наносится), но получил следующее. Чек на форту не делается, только с костром, который стоял ближе к игроку, во время его появления на локации, а рядом с другими желаемый результат не происходит. Пробывал через функцию GetNearestObjectByTag(), но результат тот же, подскажите пожалуйста, как научить скрипт брать в расчет и другие костры.

Скрипт стоит на ХБ локации, если что.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
kreon
сообщение Aug 4 2006, 16:40
Сообщение #2424


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

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



2Waromon: afair, команды создания\уничтожения объектов не идут в стек, как и DelayCommand.
В стек их пихает только AssignCommand. А Delay все равно выполняется после(!) окончания скрипта. Надо проверить будет.
2Mandrake:
NSS
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"
void DmgColdIfNotNearCampfire(object oPC) {
    object oCamp = GetFirstObjectInShape(SHAPE_SPHERE, 2.0, GetLocation(oPC), FALSE, OBJECT_TYPE_PLACEABLE);
    while(GetIsObjectValid(oCamp)) {
        if(GetTag(oCamp) == "CAMPFIRE101") return;
        oCamp = GetNextObjectInShape(SHAPE_SPHERE, 2.0, GetLocation(oPC), FALSE, OBJECT_TYPE_PLACEABLE);
    }
    int nDamage = Random(15) + 1;
    if(MySavingThrow(SAVING_THROW_FORT, oPC, 25, SAVING_THROW_TYPE_COLD, OBJECT_SELF, 0.0)) nDamage = 0;
    effect eDam = EffectDamage(nDamage, DAMAGE_TYPE_COLD);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oPC);
}
void main() {
object oPC = GetFirstPC();
string sArea = GetTag(GetArea(oPC));
if(!GetIsDay() && (sArea == "highmounts001" || sArea == "highmounts002" || sArea == "highmounts003"||
        sArea == "capitolofgom" || sArea == "ncapitolspart" || sArea == "narnpass001"
        ||sArea == "iceland001")) DmgColdIfNotNearCampfire(oPC);
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 4 2006, 17:20
Сообщение #2425


Level 4
**

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



QUOTE(kreon @ Aug 4 2006, 16:40) [snapback]89102[/snapback]

2Waromon: afair, команды создания\уничтожения объектов не идут в стек, как и DelayCommand.
В стек их пихает только AssignCommand. А Delay все равно выполняется после(!) окончания скрипта. Надо проверить будет.


Просто, если NPC умрет - то и DelayCommand пропадет вместе с ним, проверь. (IMG:style_emoticons/kolobok_light/wink3.gif)
По поводу стека ошибся, не так выразился.

QUOTE
Начинающий скриптер.


(IMG:style_emoticons/kolobok_light/friends.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Mandrake
сообщение Aug 4 2006, 17:22
Сообщение #2426


Level 3
*

Класс: Волшебник
Характер: Neutral Evil
Раса: Человек



kreon, большое спасибо (IMG:style_emoticons/kolobok_light/thank_you.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 4 2006, 17:49
Сообщение #2427


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



QUOTE(kreon @ Aug 4 2006, 16:19) [snapback]89089[/snapback]

NSS
void main() {
object oKiller = GetLastKiller();
object oRays = GetObjectByTag("gore_ray");
object oTrap = GetObjectByTag("gore_trap");
object oRad = GetObjectByTag("radost");
DestroyObject(oRays);
DestroyObject(oTrap);
AssignCommand(oRad, ActionForceMoveToObject(oKiller, TRUE, 1.0, 5.0));
DelayCommand(10.0f, DestroyObject(oRad)); // 10.0 заменить на время, за которое он добегает.
SetLocalInt(oKiller, "cleanmind", GetLocalInt(oKiller, "cleanmind") + 1);
}

P.S.
NSS
AssignCommand(oRays, ActionDoCommand(DestroyObject(oRays)));
- не надо. Достаточно
NSS
DestroyObject(oRays);




Пробовал.. Таким оброзам лучи не дестроятся и не дестроится oRad. Вобщем я переписал скрипт, остались только эти лучи, незнаю как их заставить исчезнуть.. Может визуальные плэйсеблы не поддаются обычным командам типа дестроя? Или в свойствах их надо поковыряться.. я вот думаю насчет пункта Шум(статик) влияет он на скрипты или нет..
---
Ага, не влияет. Дело в самом обьекте чтоли? Не берёт его ничё... Их захайдить какнить можно?

Сообщение отредактировал xHageN - Aug 4 2006, 18:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Aug 4 2006, 18:27
Сообщение #2428


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



Хех, распространенная проблема. Убери галку "статик" с объекта и будет счастье. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 4 2006, 18:30
Сообщение #2429


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



QUOTE(-fenix- @ Aug 4 2006, 19:27) [snapback]89117[/snapback]

Хех, распространенная проблема. Убери галку "статик" с объекта и будет счастье. (IMG:style_emoticons/kolobok_light/wink3.gif)


Так я в предыдушем посте написал свою мысль про статик... Включал, убирал - не дестоится луч!
-----
Я понял свою ошибку. Действительно, без статика обьект дестроится.. Просто я задал один таг группе лучей и они не исчезали. Попробовал сейчас одному поставить и он исчес. Похоже придется всем этим лучам уникальные теги писать и утолщать скрипт... ё моё (IMG:style_emoticons/kolobok_light/nea.gif)

Сообщение отредактировал xHageN - Aug 4 2006, 18:37
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Aug 4 2006, 18:57
Сообщение #2430


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

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



QUOTE(xHageN @ Aug 4 2006, 19:30) [snapback]89118[/snapback]
Похоже придется всем этим лучам уникальные теги писать и утолщать скрипт... ё моё


(IMG:style_emoticons/kolobok_light/wizard.gif)
NSS
//--- удалить все объекты с тэгом "gore_ray"
  object oObj;
  int nIdx = 0;
  while (GetIsObjectValid(oObj = GetObjectByTag("gore_ray", nIdx)))
  {
    DestroyObject(oObj);
    nIdx++;
  }
//---
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 4 2006, 19:01
Сообщение #2431


Level 4
**

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



Перед основной фун-цией поставь:

NSS
void DestroyRays()
{
int i=0;
object oObject = GetObjectByTag("gore_ray", i);

while (GetIsObjectValid(oObject))
    {
    DestroyObject(oObject);
    ++i;
    oObject = GetObjectByTag("gore_ray", i);
    }
}


Сообщение отредактировал Waromon - Aug 7 2006, 20:06
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 4 2006, 19:30
Сообщение #2432


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



Эээх, а я уже все по геморному сделал, поторопился видать.. А эти скриптины я на будущее учту (IMG:style_emoticons/kolobok_light/declare.gif) Спасибо за помощь, столько нового сегодня узнал! (IMG:style_emoticons/kolobok_light/yahoo.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noob_scripter
сообщение Aug 9 2006, 15:53
Сообщение #2433


Level 1


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



Помогите!

Первое : Обновил игру до версии 1.62. Скачал конвертер MP3 to BMU - запускаю - пишет, что не может запустить, нужен какой-то патч 76. Что странно - до этого я его запускал, потом игру переустановил - и не запускается.

Второе : Как покрасить текст в меню диалога в : Синий, зеленый, красный.
Третье : У меня в редакторе не хватает много фоновых звуков (гроза, ливень и т.д.) Где их можно найти?

Заранее спасибо. Извините, если такие вопросы были - найти на 98 страницах уже ничего невозможно...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Aug 9 2006, 16:16
Сообщение #2434


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

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Noob_scripter, не 76, а 67. Если быть точным, то 1.67. Обнови игру до версии 1.67, тогда утилита у тебя должна заработать.

В диалоговом редакторе есть токены, которые можно ставить в любой части текста, чтобы выделить его другим цветом (<StartAction><StartHighlight><StartCheck>). Все они закрываются токеном "</Start>".

<StartAction> - красный
<StartHighlight> - синий
<StartCheck> - зеленый

Пример: <StartCheck>Убеждение</Start> Я думаю, что вы все же согласитесь на мое предложение!

А у тебя в каком порядке установлена игра? Есть ли в наличие Sou (первый аддон к игре)?

Сообщение отредактировал Zirrex - Aug 9 2006, 16:17
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 10 2006, 18:09
Сообщение #2435


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



Скажите пожалуйста:

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

2. Хотел еще сделать турнир. Нужно чтобы при смерти перса все начиналось заного. То есть появлялись все мобы, запирались все двери, кароче все приводилось к первоначальному виду. Можно такое провернуть? Если да, то подскажите опять же команды. (IMG:style_emoticons/kolobok_light/bb.gif)

Сообщение отредактировал xHageN - Aug 10 2006, 18:10
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 10 2006, 18:48
Сообщение #2436


Level 4
**

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



Первый вопрос:

NSS
object oPC = ... // Игрок
object oBox = .... // Сундук

object oItem = GetFirstItemInInventory(oPC);
while (GetIsObjectValid(oItem))
{
   if(GetBaseItemType(oItem) == BASE_ITEM_LARGEBOX)    
   {
     CreateItemOnObject(GetResRef(oItem), oBox, 1);
     DestroyObject(oItem, 0.5);
   }
   else
   {
     CopyItem(oItem, oBox, TRUE);
     DestroyObject(oItem);
   }
oItem = GetNextItemInInventory(oPC);
}

int i=0;
for (i=0; i<14; i++)
{
     CopyItem(GetItemInSlot(i, oPC), oBox, TRUE);
    DestroyObject(GetItemInSlot(i, oPC));
}


Второй,

Гм... Команд то много каких есть, опиши подробнее, и из всего че ты перечислил:

Закрыть двери:
NSS
ActionCloseDoor(object oDoor)
// на замок: SetLocked(object oTarget, int bLocked))



Создать моба:
NSS
object CreateObject(int nObjectType, string sTemplate, location lLocation, int bUseAppearAnimation=FALSE, string sNewTag="")


Сообщение отредактировал Waromon - Aug 11 2006, 12:36
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
xHageN
сообщение Aug 11 2006, 08:42
Сообщение #2437


Level 1


Класс: Некромант
Характер: Chaotic Good
Раса: Полуэльф



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

А насчет первого вопроса спасиб большое!
Только есть одно но.
CreateItemOnObject(GetResRef(oItem), oBox, 1); на этой строке редактор ошибку выдает. Как я понял, ему не нравится GetResRef, у меня такой команды в списке редактора нет..
И тоже самое по отношению к команде CopyItem

Сообщение отредактировал xHageN - Aug 11 2006, 08:51
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 11 2006, 10:25
Сообщение #2438


Level 4
**

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



Насчет второго вопроса, у тебя версия игры какая ??? ТОЧНО знаю что в 1.66 ети функции присутствуют. (IMG:style_emoticons/kolobok_light/wink3.gif)
Тогда, сделаем так:

NSS
object oPC = ...// Игрок
object oBox = ... // Сундук

object oItem = GetFirstItemInInventory(oPC);
while (GetIsObjectValid(oItem))
{
  AssignCommand(oBox, ActionTakeItem(oItem, oPC));

  oItem = GetNextItemInInventory(oPC);
}

int i=0;
for (i=0; i<14; i++)
{
    AssignCommand(oBox, ActionTakeItem(GetItemInSlot(i, oPC), oPC));
}


(да и вообще ниже 1.66 имхо нет смысла чтото делать... Патчись. (IMG:style_emoticons/kolobok_light/wink3.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Milfes
сообщение Aug 11 2006, 12:01
Сообщение #2439


Level 5
**

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



Waromon, ты забыл в первом случае дестроить обьекты используемые игроком(они появляються в сундуке, но и остаються одеты на игрока) (IMG:style_emoticons/kolobok_light/smile.gif)

NSS
int i=0;
for (i=0; i<14; i++)
{
    CopyItem(GetItemInSlot(i, oPC), oBox, TRUE);
    DestroyObject(GetItemInSlot(i, oPC));
}


Извиняюсь, сам тоже ошибся. (IMG:style_emoticons/kolobok_light/biggrin.gif)

Сообщение отредактировал Milfes - Aug 11 2006, 12:43
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Waromon
сообщение Aug 11 2006, 12:38
Сообщение #2440


Level 4
**

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



Функция ActionTakeItem, ЗАБИРАЕТ айтемы, т.е как они могут остатся если их заберут у игрока...? оО (IMG:style_emoticons/kolobok_light/crazy.gif)

Понял о чем ты - исправил.

Сообщение отредактировал Waromon - Aug 11 2006, 12:40
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 96 97 98 99 100 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30th April 2025 - 08:34