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

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

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

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


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

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

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

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


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

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

СообщениеДобавлено: Пт Июл 19, 2013 6:48 pm    Заголовок сообщения: Ответить с цитатой

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


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

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

СообщениеДобавлено: Пт Июл 19, 2013 9:35 pm    Заголовок сообщения: Ответить с цитатой

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


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

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

СообщениеДобавлено: Пт Июл 19, 2013 10:44 pm    Заголовок сообщения: Ответить с цитатой

NumberOne писал(а):
Как сделать проверку на класс?)

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


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

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

СообщениеДобавлено: Сб Июл 20, 2013 3:03 pm    Заголовок сообщения: Ответить с цитатой

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


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

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

СообщениеДобавлено: Сб Июл 20, 2013 3:34 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>= 1)
        {
        if (GetLevelByClass(CLASS_TYPE_(wizard), oPC) >= 1)
          {
           object oShmotkaw = CreateItemOnObject("dospeh_w", oPC, 1);
          }
        if (GetLevelByClass(CLASS_TYPE_(warlock), oPC) >= 1)
          {
           object oShmotkaw = CreateItemOnObject("dospeh_w", oPC, 1);
          }
        if (GetLevelByClass(CLASS_TYPE_(sorcerer), oPC) >= 1)
          {
           object oShmotkaw = CreateItemOnObject("dospeh_w", oPC, 1);
          }
        else
          {
           object oShmotkaw = CreateItemOnObject("dospeh_w", oPC, 1)
          }
        }
          {
           object oZov = CreateItemOnObject("item006", oPC, 1);
           AddJournalQuestEntry("zov", 1, oPC);
           DelayCommand(0.2, AssignCommand(oPC, ClearAllActions()));
           DelayCommand(0.3, AssignCommand(oPC, ActionEquipItem(oShmotka, INVENTORY_SLOT_CHEST)));
          }

    }
}


20.07.2013 17:33:13: Îøèáêà. 'client_enter_mod' не составился.
client_enter_mod.nss(33): ОШИБКА: НЕОПРЕДЕЛЕННЫЙ ИДЕНТИФИКАТОР(CLASS_TYPE_)

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


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

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

СообщениеДобавлено: Сб Июл 20, 2013 7:57 pm    Заголовок сообщения: Всего отзывов: 1 Ответить с цитатой

Да.... Ну блин ты даешь!!! Смеется
Это ж я для наглядности в инт скобочки поставил! Поставь в строку функций CLASS_TYPE_ и отфильтруй по константам. Или выдели и просто курсор на часть названия инта поставь и жамкни F2 Из открывшегося окна выбери нужный класс и нажми ВВОД. Автоматом станет нужное..
CLASS_TYPE_WIZARD
CLASS_TYPE_SORCERER
_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Remm
Site Admin


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

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

СообщениеДобавлено: Сб Июл 20, 2013 8:12 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;
  object oItemSlot;

   for (i = 0;   i < NUM_INVENTORY_SLOTS; i++)
      {
       oItemSlot = GetItemInSlot(i, oPC);
       if (GetIsObjectValid(oItemSlot))
       DestroyObject(oItemSlot);
      }
//------------------------------------------------------
 string ResRef; //рес реф доспеха
        if (GetLevelByClass(CLASS_TYPE_WIZARD, oPC) >= 1)
            ResRef = "dospeh_w";
        if (GetLevelByClass(CLASS_TYPE_SORCERER, oPC) >= 1)
            ResRef = "dospeh_w";
        if(ResRef == "")// если не пробили класс
           ResRef = "ДРУГОЙ ДОСПЕХ";
           object oShmotka = CreateItemOnObject(ResRef, oPC);

           object oZov = CreateItemOnObject("item006", oPC, 1);
           AddJournalQuestEntry("zov", 1, oPC);
           DelayCommand(2.2, AssignCommand(oPC, ClearAllActions()));
           DelayCommand(2.3, AssignCommand(oPC, ActionEquipItem(oShmotka, INVENTORY_SLOT_CHEST)));

}

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


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

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

СообщениеДобавлено: Сб Июл 20, 2013 9:49 pm    Заголовок сообщения: Ответить с цитатой

Remm писал(а):
Да.... Ну блин ты даешь!!! Смеется
Это ж я для наглядности в инт скобочки поставил! Поставь в строку функций CLASS_TYPE_ и отфильтруй по константам. Или выдели и просто курсор на часть названия инта поставь и жамкни F2 Из открывшегося окна выбери нужный класс и нажми ВВОД. Автоматом станет нужное..
CLASS_TYPE_WIZARD
CLASS_TYPE_SORCERER


Ахахах... Мда, ну я конечно и сглупил)) Стесняюсь

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


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

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

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

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


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

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

СообщениеДобавлено: Вс Июл 21, 2013 8:36 pm    Заголовок сообщения: Ответить с цитатой

А как сделать проверку на наличие в локации определенных монстров?)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Remm
Site Admin


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

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

СообщениеДобавлено: Вс Июл 21, 2013 9:58 pm    Заголовок сообщения: Ответить с цитатой

NumberOne писал(а):
как сделать так чтобы pc использовал свой навык убеждения

Код:

//::///////////////////////////////////////////////
//:: Проверка навыка "УБЕДИТЬ" сложность НОРМАЛЬНО.
//:://////////////////////////////////////////////
int StartingConditional()
{
 object oPC = GetPCSpeaker();
 int nSkillZ = GetSkillRank(SKILL_PERSUADE, oPC);
 int nDC = 2 + d3();

  if(nSkillZ > nDC)
    {
     SendMessageToPC(oPC, "<c у >Убедить</c><c °у> Бросок : "+IntToString(nSkillZ)+" против "+IntToString(nDC)+" </c><c у >УДАЧА</c>");
     return TRUE;
    }
     SendMessageToPC(oPC, "<c у >Убедить</c><c °у> Бросок : "+IntToString(nSkillZ)+" против "+IntToString(nDC)+" </c><cу  >ПРОВАЛ</c>");
     return FALSE;
}

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


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

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

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

NumberOne писал(а):
А как сделать проверку на наличие в локации определенных монстров?)

1) сделать проверку по фракциям
2) проверку на враждебность
3) проверку по тегам
4) проверку шмоткам монстров
5) проверку по виду
int Vid = GetAppearanceType(oNPC);
if(Vid == APPEARANCE_TYPE_BOAR)
6) проверку по расе, классу, ресрефу, имени и т.д. и тп...
_________________
Рыцарская сага NWN: 1.32.+SoU. Версия модуля: 26.05.06
Игроделу (н.с. о тулсете + скрипты)
--------------------
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
NumberOne
Младший Рыцарь


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

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

СообщениеДобавлено: Вс Июл 21, 2013 10:40 pm    Заголовок сообщения: Ответить с цитатой

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


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

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

СообщениеДобавлено: Вт Авг 06, 2013 9:59 am    Заголовок сообщения: Ответить с цитатой

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


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

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

СообщениеДобавлено: Чт Авг 08, 2013 3:34 pm    Заголовок сообщения: Всего отзывов: 1 Ответить с цитатой

Код:

//::///////////////////////////////////////////////
//:: Скрип работает при загрузке модуля
//:: FileName: module_load
//:://////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// *****  ПОДСЧЕТ ВРЕМЕНИ ДЛЯ ТЕСТА  *****
////////////////////////////////////////////////////////////////////////////////
void Count(int nTimer)
{
 object oPC = GetFirstPC();
 object oMod =  GetModule();
 int iHB = GetLocalInt(oMod, "HB_TIME");

 SetLocalInt(oMod, "HB_TIME", iHB+1);
 if(iHB >= 4)
 {
  int iTimeGameM = GetLocalInt(oMod, "Time_Game_M"); //минуты
  int iTimeGameH = GetLocalInt(oMod, "Time_Game_H"); //часы
   SetLocalInt(oMod, "HB_TIME", 0);
  if(iTimeGameM > 55)
   {
    iTimeGameH++;
    SetLocalInt(oMod, "Time_Game_H", iTimeGameH); //часы
    SetLocalInt(oMod, "Time_Game_M", 0); //минуты
   }
  else
   {
    iTimeGameM+=5;
    SetLocalInt(oMod, "Time_Game_M", iTimeGameM);
   }
  SendMessageToPC(oPC, "Длительность игры: <c у >"+IntToString(iTimeGameH)+"</c> ч. <c у >"+IntToString(iTimeGameM)+"</c> мин.");
 }
  DelayCommand(60.0, Count(nTimer + 1));
}
////////////////////////////////////////////////////////////////////////////////
void main()
{

// ================= ДЛЯ ТЕСТА ====================
if (GetLocalInt(GetModule(), "START_TIME_TEST") == 0) // Проверить
  {
   SetLocalInt(GetModule(),"START_TIME_TEST",1);
   Count(0);
  }
// =========== Исправление багов ==================
}

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


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

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

СообщениеДобавлено: Вс Фев 02, 2014 5:44 pm    Заголовок сообщения: Ответить с цитатой

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

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


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