Список форумов Рыцарская Сага

Рыцарская Сага

Добро пожаловать на форум создателей модуля Knight Tale!
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Сайт главная Рыцарская сага Игроделу Файлы Neverwinter Nights Гостевая книга
Похоже, я у вас тут поселюсь...
На страницу 1, 2, 3  След.
 
Начать новую тему   Ответить на тему    Список форумов Рыцарская Сага -> Сайт "http://remmgen.narod.ru" Тема: Игроделу
Предыдущая тема :: Следующая тема  
Автор Сообщение
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Сб Май 04, 2013 3:46 pm    Заголовок сообщения: Похоже, я у вас тут поселюсь... Ответить с цитатой

Хм... я этот раздел сразу и не заметил)

Тот скрипт работает на ок Отлично!

Правда шаманить пришлось, ну, ладно, желаемый результат есть и ладно. Смеется

Я вот тут опять на скриптах запоролся... хочу сделать, чтобы при старте модуля удалялись все вещи, шмотки, золото и опыт ну и так далее, а еще чтобы персонажу выдавалась броня и он ее надевал. Всё сделал, а вот как шмотку надеть, не знаю...

Код:
 void main()
{
    object oMod = GetModule();
    object oPC = GetEnteringObject();
    if (!GetIsPC(oPC) || GetLocalInt(oMod, "START_GAME"))
      {return;}
      {
      SetLocalInt(oMod, "START_GAME", TRUE);
      AssignCommand(oPC, TakeGoldFromCreature(GetGold(oPC),oPC,TRUE));

        object oItem = GetFirstItemInInventory(oPC);
        while(GetIsObjectValid(oItem))
        {
            DestroyObject(oItem);
            oItem = GetNextItemInInventory(oPC);
        }
        int i=0;
        while(i<14)
        {
        DestroyObject(GetItemInSlot(i, oPC)); //
        i++;
        }
        CreateItemOnObject("item007", oPC, 1);
        object oItemCr = GetFirstItemInInventory(oPC);
        while(GetIsObjectValid(oItemCr))
            {
            SetIdentified(oItemCr,TRUE);
            oItemCr = GetNextItemInInventory(oPC);
            }
        {
          SetXP(oPC, 0);
        }

    }
}


(это скрипт Айвона). Если быть точнее, то мне нужно надеть тот предмет "item_007", который я выдал персонажу.

P.S А город мастеров вообще, похоже, либо спит, либо умер...
Пардон
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Сб Май 04, 2013 9:45 pm    Заголовок сообщения: Ответить с цитатой

Что-то у меня начались проблемы с тем скриптом... что и не удивительно Грустный

http://www.city-of-masters.ru/forums/index.php?showtopic=5123

Сделал все как тут написано. Заменил те скрипты, поставил их в соответствующие слоты у нпс (на хб поставил скрипт, который при наступлении ночи снаряжает нпс факелом). Создал у нпс самые обычные маршруты, он по ним ходит, но когда я с ним начинаю разговор (даже когда у него нет диалога) он перестает ходить по точкам... может я что-то не так сделал? Или неправильно пользуюсь... Стесняюсь
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Сб Май 04, 2013 10:28 pm    Заголовок сообщения: Всего отзывов: 1 Ответить с цитатой

NumberOne писал(а):
Если быть точнее, то мне нужно надеть тот предмет "item_007", который я выдал персонажу.

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

Код:
      object oMan = CreateItemOnObject("item007", oPC, 1);
        DelayCommand(2.0, AssignCommand(oPC, ClearAllActions())); // чистим акции
        DelayCommand(2.1, AssignCommand(oPC, ActionEquipItem(oMan, INVENTORY_SLOT_CHEST))); // Оденем

NumberOne писал(а):
он по ним ходит, но когда я с ним начинаю разговор (даже когда у него нет диалога) он перестает ходить по точкам... может я что-то не так сделал? Или неправильно пользуюсь...

Трудно сказать... Там описана целая система замены базовых скриптов НПС. Возможно проблемы в диалоге. Нужно обязательно заменить скрипт прерывания и окончания диалога nw_walk_wp. Может глючит скрипт снаряжения факелом... Хотя если герой покинет область, то НПС должны возобновить свои действия...
_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Сб Май 04, 2013 10:38 pm    Заголовок сообщения: Ответить с цитатой

Вот скрипт для факелоносцев в нашем моде для слота ХВ:
//:://////////////////////////////////////////////////
//:: Created By: Gennady ДЛЯ ФАКЕЛА
//:: Created On: 12/19/2005
//:://////////////////////////////////////////////////
void main()
{
object oSelf = OBJECT_SELF;
if(GetArea(GetFirstPC()) != GetArea(oSelf)) // если ПС нет в локе
{
AssignCommand(oSelf, ClearAllActions(TRUE));
SetLocalInt(oSelf,"WPOIN_GO",0);
return;
}
object oItem2 = GetItemPossessedBy(oSelf,"NW_IT_TORCH001"); // ФАКЕЛ
object oLeftHand = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oSelf);//любой предмет
object oRigHand = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oSelf);//любой предмет
string sLeftHand = GetLocalString(oSelf,"left");
string sRigtHand = GetLocalString(oSelf,"rig");
int T = GetTimeHour();

if (GetTag(oLeftHand) == "NW_IT_TORCH001")
SetLocalInt(oSelf,"FAKEL",2);
else
SetLocalInt(oSelf,"FAKEL",1);
if((T>=6 && T<21>=21 || T<6) && GetLocalInt(oSelf, "FAKEL") != 2)
{
SetLocalInt(oSelf,"WPOIN_GO",0);
SetLocalString(oSelf,"left",GetTag(oLeftHand));
SetLocalString(oSelf,"rig",GetTag(oRigHand));
ClearAllActions(TRUE);
ActionUnequipItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oSelf));
ActionEquipItem(oItem2, INVENTORY_SLOT_LEFTHAND);
}
// Запустим стандартный ХБ
ActionDoCommand(ExecuteScript("nw_c2_default1", oSelf));
}

_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Вс Май 05, 2013 7:36 am    Заголовок сообщения: Ответить с цитатой

Remm писал(а):
Возможно проблемы в диалоге.

Да... действительно. У меня просто диалога не было вообще.
А возможно ли через диалоги сделать так, чтобы каждый раз выбиралась случайная ветка?

Спс за тот скрипт. Отлично!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Вс Май 05, 2013 8:53 am    Заголовок сообщения: Ответить с цитатой

NumberOne писал(а):
А возможно ли через диалоги сделать так, чтобы каждый раз выбиралась случайная ветка?

легко Улыбка ставим на каждую ветку (кроме нижней) такой скрипт проверки:
Код:
//::///////////////////////////////////////////////
//:: Случайность 50%
//:: FileName: prov_50x100
//:://////////////////////////////////////////////
int StartingConditional()
{
    if(Random(100) >= 50)
    return FALSE;
    return TRUE;
}

_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Вс Май 05, 2013 10:43 am    Заголовок сообщения: Ответить с цитатой

Remm писал(а):
NumberOne писал(а):
А возможно ли через диалоги сделать так, чтобы каждый раз выбиралась случайная ветка?

легко Улыбка ставим на каждую ветку (кроме нижней) такой скрипт проверки:
Код:
//::///////////////////////////////////////////////
//:: Случайность 50%
//:: FileName: prov_50x100
//:://////////////////////////////////////////////
int StartingConditional()
{
    if(Random(100) >= 50)
    return FALSE;
    return TRUE;
}


Хм... Круто Отлично! А я уж хотел выдавать случайно переменные Сумашедший
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Вс Май 05, 2013 3:19 pm    Заголовок сообщения: Ответить с цитатой

Кстати, а существует ли список всех анимаций (которые можно пихнуть в скрипт, чтобы нпс их воспроизводили) и их описание. Просто я английский не знаю, а в слепую проверять как-то влом...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Вс Май 05, 2013 9:58 pm    Заголовок сообщения: Всего отзывов: 1 Ответить с цитатой

Вот тут все об анимации: http://remmgen.narod.ru/tscript3.html#KONST
_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Пн Май 06, 2013 3:15 pm    Заголовок сообщения: Ответить с цитатой

Точняк! Так вот где я этот список краем глаза видел, спасибо большое))
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Вт Май 07, 2013 1:24 pm    Заголовок сообщения: Ответить с цитатой

Код:
       if(GetArea(GetFirstPC()) != GetArea(OBJECT_SELF)) return;
       object oCHAIR = GetNearestObjectByTag("ST_"+ GetTag(OBJECT_SELF));
       object oSelf = OBJECT_SELF;
       int iAnim;
       if (GetIsInCombat(oSelf))
       {ExecuteScript("nw_c2_default1", oSelf); return;}
       if (!IsInConversation(oSelf))
       {
       object oSit = GetSittingCreature(oCHAIR);
       if(oSelf == oSit) return;
       if (GetIsObjectValid(oCHAIR) == TRUE && GetDistanceBetween(oSelf, oCHAIR) < 20.0)
       DelayCommand(4.0, AssignCommand(oSelf, ActionSit(oCHAIR)));
       else
       {
       AssignCommand(oSelf, ClearAllActions(TRUE));
       switch (Random(3)+1)
       {
       case 1: iAnim = ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD; break;
       case 2: iAnim = ANIMATION_FIREFORGET_HEAD_TURN_LEFT; break;
       case 3: iAnim = ANIMATION_FIREFORGET_HEAD_TURN_RIGHT; break;
       }
       AssignCommand(oSelf, ActionPlayAnimation(iAnim));
       }
       }


Что нужно добавить в этот скрипт, чтобы НПС шел пешком, а не бежал?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Вт Май 07, 2013 7:32 pm    Заголовок сообщения: Ответить с цитатой

Хм... а как добавить в хак изображение для того чтобы поставить его на экран загрузки, и какого размера нид изображение?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Ср Май 08, 2013 9:17 am    Заголовок сообщения: Ответить с цитатой

NumberOne писал(а):
Что нужно добавить в этот скрипт, чтобы НПС шел пешком, а не бежал?

нужно заменить строку
DelayCommand(4.0, AssignCommand(oSelf, ActionSit(oCHAIR)));
На Блок:
Код:
   {
      AssignCommand(oSelf, ActionForceMoveToObject(oCHAIR, FALSE));
      AssignCommand(oSelf, ActionSit(oCHAIR));
   }

NumberOne писал(а):
Хм... а как добавить в хак изображение для того чтобы поставить его на экран загрузки, и какого размера нид изображение?
моя не знает...
Пардон
_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Чт Май 09, 2013 6:49 pm    Заголовок сообщения: Ответить с цитатой

А как сделать, чтобы при клике на НПС он вообще не реагировал, т.е даже не поворачивался лицом к игроку?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Чт Май 09, 2013 6:49 pm    Заголовок сообщения: Ответить с цитатой

Remm писал(а):
NumberOne писал(а):
Что нужно добавить в этот скрипт, чтобы НПС шел пешком, а не бежал?

нужно заменить строку
DelayCommand(4.0, AssignCommand(oSelf, ActionSit(oCHAIR)));
На Блок:
Код:
   {
      AssignCommand(oSelf, ActionForceMoveToObject(oCHAIR, FALSE));
      AssignCommand(oSelf, ActionSit(oCHAIR));
   }

NumberOne писал(а):
Хм... а как добавить в хак изображение для того чтобы поставить его на экран загрузки, и какого размера нид изображение?
моя не знает...
Пардон


Спс
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Чт Май 09, 2013 9:57 pm    Заголовок сообщения: Ответить с цитатой

NumberOne писал(а):
А как сделать, чтобы при клике на НПС он вообще не реагировал, т.е даже не поворачивался лицом к игроку?

попробуй убрать все скрипты, или хотя бы
OnConversation — при старте диалога
OnPerception — при вхождение в зону реакции НПС
_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Чт Май 16, 2013 12:59 pm    Заголовок сообщения: Ответить с цитатой

И снова ку. Я тут немного забил на аврору, но страсть делать модуль не забила на меня. Смеется

Вот я создал хак файл через специальную утилиту. В тулсете, в модульных свойствах добавил этот хак файл к модулю. Но почему-то когда я запускаю модуль, мне пишет, что требуется такой-то такой-то хак файл, но он не найден. В чем проблема? Хак файл находится в папке hak.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Чт Май 16, 2013 4:53 pm    Заголовок сообщения: Ответить с цитатой

Код:
void main()
{

 object oCler = OBJECT_SELF;
 object o1 = GetObjectByTag("WP_krest_01_01");
 object o2 = GetNearestObjectByTag("WP_krest_01_02");
 object o3 = GetNearestObjectByTag("WP_krest_01_03");
 object o4 = GetNearestObjectByTag("WP_krest_01_04");
 object o5 = GetNearestObjectByTag("WP_krest_01_05");
 object o6 = GetNearestObjectByTag("WP_krest_01_06");
 object o7 = GetNearestObjectByTag("WP_krest_01_07");

 if((T>=7 || T<21) && GetLocalInt(OBJECT_SELF, "pf") != 1)
   {
    if(GetArea(GetFirstPC()) != GetArea(oCler))return;
    if(IsInConversation(oCler)) return;
    if(GetIsInCombat(oCler)) return;
    if(GetLocalInt(oCler, "ZIKL")==1) return;
    SetLocalInt(oCler, "ZIKL", 1);
    ClearAllActions();
    int nStage = GetLocalInt(oCler, "etap");
     if (nStage == 0)
     {
     ActionForceMoveToObject(o2);
     ActionPlayAnimation(ANIMATION_LOOPING_PAUSE,1.0,2.0);
     DelayCommand(20.0, ActionForceMoveToObject(o3));
     DelayCommand(25.0, ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW,1.0,3.0));
     DelayCommand(35.0, ActionForceMoveToObject(o4));
     DelayCommand(40.0, ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD,1.0,4.0));
     DelayCommand(48.0, ActionForceMoveToObject(o5));
     DelayCommand(50.0, ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK,1.0,3.0));
     DelayCommand(60.0, ActionForceMoveToObject(o6));
     DelayCommand(65.0, ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW));
     DelayCommand(70.0, ActionForceMoveToObject(o7));
     DelayCommand(70.0, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE,1.0,3.0));
     DelayCommand(70.5, SetLocalInt(oCler, "etap", 1));
     DelayCommand(71.0, SetLocalInt(oCler, "ZIKL", 0));
     }

     if (nStage == 1)
     {
     DelayCommand(20.0, ActionForceMoveToObject(o6));
     DelayCommand(25.0, ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD,1.0,3.0));
     DelayCommand(40.0, ActionForceMoveToObject(o5));
     DelayCommand(43.0, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE));
     DelayCommand(50.0, ActionForceMoveToObject(o4));
     DelayCommand(55.0, ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK,1.0,3.0));
     DelayCommand(70.0, ActionForceMoveToObject(o3));
     DelayCommand(76.0, ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_BORED));
     DelayCommand(85.0, ActionForceMoveToObject(o2));
     DelayCommand(87.0, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE,1.0,3.0));
     DelayCommand(90.0, ActionForceMoveToObject(o1));
     DelayCommand(95.0, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE,1.0,3.0));
     DelayCommand(95.5, SetLocalInt(oCler, "etap", 0));
     DelayCommand(96.0, SetLocalInt(oCler, "ZIKL", 0));
     }
    }
  else
  {
    object oNpc = OBJECT_SELF;
    object oExit = GetNearestObjectByTag("didavdakd");
    object oDoor = GetObjectByTag("didavdakd");
    int iRun = FALSE;
        if (!GetIsObjectValid(oExit)||(GetArea(oExit)!=GetArea(oNpc)))
        {
          AssignCommand(oNpc, SpeakString("Ýõ, à èäòè-òî íåêóäà..."));
          return;
        }
    if(GetLocalInt(oExit, "RUN"))
      {
       iRun = TRUE;
      }
     AssignCommand(oNpc, ClearAllActions());
     AssignCommand(oNpc, ActionForceMoveToObject(oExit, iRun, 1.0, 30.0));
     object oTarget = GetObjectByTag("didavdadi");
     DelayCommand(10.0, SetLocked(oTarget, FALSE));
     DelayCommand(12.0, DestroyObject(oNpc));
  }
}


УФ! Почему он пишет вот это:

16.05.2013 18:40:23: Ошибка. 'krest_rabota' не скомпелирован
krest_rabota.nss(13): ОШИБКА: ПЕРЕМЕННАЯ, ОПРЕДЕЛЕННАЯ БЕЗ ТИПА
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Чт Май 16, 2013 4:59 pm    Заголовок сообщения: Ответить с цитатой

Расширение файла должно быть: .hak
Кладем этот файл в папку: hak
В модульных свойствах на вкладке "Настройки пользователя" выбираем из списка нужный хак. Жамкаем кнопку "Добавить", должна пойти проверка ресурса хака, а уж после этого сохраняем модуль.

Как-то так Улыбка Если хак в порядке, проблем не должно быть... Пардон
_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Чт Май 16, 2013 5:04 pm    Заголовок сообщения: Ответить с цитатой

NumberOne писал(а):
УФ! Почему он пишет вот это:

Всё верно пишет!
Код:
if((T>=7 || T<21) && GetLocalInt(OBJECT_SELF, "pf") != 1)

Не определён инт Т... По всей видимости это время в часах...
Код:
int T = GetTimeHour();

_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Чт Май 16, 2013 5:33 pm    Заголовок сообщения: Ответить с цитатой

Пфффф, как все элементарно, но как доходит до дела, так фейл... Спасибо) Смеется
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Чт Май 16, 2013 10:01 pm    Заголовок сообщения: Ответить с цитатой

Код:
void main()
{
  object oSelf = OBJECT_SELF

  if GetLocalInt(OBJECT_SELF, "spawn_k") == 1)
    {
    object oTarget;
    object oSpawn;
    location lTarget;
    oTarget = GetWaypointByTag("wp_krest_spawn");
    lTarget = GetLocation(oTarget);
    oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "krest", lTarget);
    oTarget = oSpawn;
    SetLocalInt(oSelf, "spawn_k", 2);
    }
}


А тут, что не так? Пишет: ПОТЕРЯ АНАЛИЗАТОРА ПЕРЕМЕННОЙ

Думал, думал над смыслом этой пустой для меня фразы и ничего путного не надумал...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Чт Май 16, 2013 11:24 pm    Заголовок сообщения: Ответить с цитатой

Попробуй найти 2 отличия...
Код:
void main()
{
  object oSelf = OBJECT_SELF;

  if (GetLocalInt(OBJECT_SELF, "spawn_k") == 1)
    {
    object oTarget;
    object oSpawn;
    location lTarget;
    oTarget = GetWaypointByTag("wp_krest_spawn");
    lTarget = GetLocation(oTarget);
    oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "krest", lTarget);
    oTarget = oSpawn;
    SetLocalInt(oSelf, "spawn_k", 2);
    }
}

_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Remm
Site Admin


Репутация: +19    

Зарегистрирован: 07.12.2007
Сообщения: 390

СообщениеДобавлено: Чт Май 16, 2013 11:29 pm    Заголовок сообщения: Ответить с цитатой

в первой строке нет ;
выражение if неправильно проставлены скобки...
И вообще в коде много лишнего...
объект oSpawn в этом скрипте не стоит называть, т.к. над ним нет дальнейших действий. Я бы так записал:
Код:
void main()
{
  object oSelf = OBJECT_SELF;
  location lTarget = GetLocation(GetWaypointByTag("wp_krest_spawn"));

  if (GetLocalInt(OBJECT_SELF, "spawn_k") == 1)
    {
     CreateObject(OBJECT_TYPE_CREATURE, "krest", lTarget);
     SetLocalInt(oSelf, "spawn_k", 2);
    }
}

_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
NumberOne
Младший Рыцарь


Репутация: +1    

Зарегистрирован: 23.10.2012
Сообщения: 58
Откуда: АоС

СообщениеДобавлено: Пт Май 17, 2013 5:51 am    Заголовок сообщения: Ответить с цитатой

Remm писал(а):

И вообще в коде много лишнего...


Ну, как могу, так пишу) Стесняюсь
А могу я, конечно, еще ух как плохо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Рыцарская Сага -> Сайт "http://remmgen.narod.ru" Тема: Игроделу Часовой пояс: GMT + 4
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Теги HTML
счетчик посещений www sexsearch
homepage counter Рейтинг: Развлечения


Powered by phpBB © 2001, 2005 phpBB Group
Вы можете бесплатно создать форум на MyBB2.ru, RSS