• Добро пожаловать, Гость. Войдите или зарегистрируйтесь.

Автор Тема: Сон, еда, питье.  (Прочитано 1280 раз)

Описание:

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Монах Кит

  • *
  • Сообщений: 2
  • Репутация: 0
    • Просмотр профиля
    • Email
Сон, еда, питье.
« : 25 Январь, 2009, 19:04:25 »
0
Вроде все верно, есть просит, пить тоже, но он нежватки воды статы не отнимаются и указаное в конце вино не восстанавливает жажду, чт оне так я не пойму

float lastTime
float currentTime
float deltaTime
short statMods
short hungerRestore
short sleepRestore
float val

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin GameMode
{
   if (lastTime == 0)
   {
      set lastTime to GameHour
      return
   }
   endif

   if (lastTime >= GameHour)
   {
      set currentTime to GameHour + 24
   }
   else
   {
      set currentTime to GameHour
   }
   endif

   set deltaTime to currentTime - lastTime
   set lastTime to GameHour

   set PNHunger to PNHunger - deltaTime
   if (PNHunger < 0)
   {
      set PNHunger to 0
   }
   endif

   if (hungerRestore)
   {
      set PNHunger to PNHunger + hungerRestore
      if (PNHunger >= 24)
      {
         set PNHunger to 24
      }
      endif
   }
   endif

   set statMods to 0

   if (PNHunger == 0)
   {
      if (PNHungerTimer >= 1)
      {
         set statMods to -PNHungerTimer

         set PNStatLoss to PNStatLoss + PNHungerTimer
         if (PNStatLoss > 100)
         {
            set PNStatLoss to 100
         }
         endif

         MessageBox "Вы умираете от голода!"
      }
      endif
   }
   elseif (PNHunger <= 2)
   {
      if (PNHungerTimer >= 1 || hungerRestore)
      {
         MessageBox "Вы ОЧЕНЬ хотите есть."
      }
      endif
   }
   elseif (PNHunger <= 4)
   {
      if (PNHungerTimer >= 1 || hungerRestore)
      {
         MessageBox "Вы довольно хотите есть."
      }
      endif
   }
   elseif (PNHunger <= 6)
   {
      if (PNHungerTimer >= 1 || hungerRestore)
      {
         MessageBox "Вы хотите есть."
      }
      endif
   }
   endif

   set hungerRestore to 0

   if (PNHungerTimer >= 1)
   {
      set PNHungerTimer to 0
   }
   endif

   if (PNHungerTimer == 0 && PNSleepTimer >= 1)
   {
      set PNSleepTimer to 0.9999
   }
   endif

   set PNHungerTimer to PNHungerTimer + deltaTime

   if (sleepRestore)
   {
      set PNSleep to PNSleep + (sleepRestore * 3)
      if (PNSleep >= 24)
      {
         set PNSleep to 24
      }
      endif

      if (PNStatLoss && PNHunger > 0)
      {
         set val to sleepRestore
         if (val > PNStatLoss)
         {
            set val to PNStatLoss
         }
         endif

         set statMods to statMods + val

         set PNStatLoss to PNStatLoss - val
         if (PNStatLoss < 0)
         {
            set PNStatLoss to 0
         }
         endif
      }
      endif
   }
   else
   {
      set PNSleep to PNSleep - deltaTime
      if (PNSleep < 0)
      {
         set PNSleep to 0
      }
      endif

      if (PNSleep == 0)
      {
         if (PNSleepTimer >= 1)
         {
            set statMods to statMods - PNSleepTimer

            set PNStatLoss to PNStatLoss + PNSleepTimer
            if (PNStatLoss > 100)
            {
               set PNStatLoss to 100
            }
            endif

            MessageBox "Вы умираете от усталости!"
         }
         endif
      }
      elseif (PNSleep <= 2)
      {
         if (PNSleepTimer >= 1 || sleepRestore)
         {
            MessageBox "Вы ОЧЕНЬ устали."
         }
         endif
      }
      elseif (PNSleep <= 4)
      {
         if (PNSleepTimer >= 1 || sleepRestore)
         {
            MessageBox "Вы сильно устали."
         }
         endif
      }
      elseif (PNSleep <= 6)
      {
         if (PNSleepTimer >= 1 || sleepRestore)
         {
            MessageBox "Вы устали."
         }
         endif
      }
      endif

      set sleepRestore to 0
   }
   endif

   if (PNSleepTimer >= 1)
   {
      set PNSleepTimer to 0
   }
   endif

   set PNSleepTimer to PNSleepTimer + deltaTime

   if (statMods)
   {
      ModActorValue Agility statMods
      ModActorValue Endurance statMods
      ModActorValue Intelligence statMods
      ModActorValue Personality statMods
      ModActorValue Speed statMods
      ModActorValue Strength statMods
      ModActorValue Willpower statMods

      set val to GetActorValue Endurance
      if (val <= 0 && statMods < 0)
      {
         ModActorValue Health statMods
      }
      endif
   }
   endif
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin MenuMode 1012
{
   if (sleepRestore == 0)
   {
      set sleepRestore to GetPCSleepHours
   }
   endif
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Apple
{
   set hungerRestore to hungerRestore + 2
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Beef
{
   set hungerRestore to hungerRestore + 6
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Blackberry
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip BoarMeat
{
   set hungerRestore to hungerRestore + 6
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Breadloaf
{
   set hungerRestore to hungerRestore + 2
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Carrot
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip CheeseWedge
{
   set hungerRestore to hungerRestore + 2
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip CheeseWheel
{
   set hungerRestore to hungerRestore + 5
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Corn
{
   set hungerRestore to hungerRestore + 2
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip CrabMeat
{
   set hungerRestore to hungerRestore + 3
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Garlic
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Grapes
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Ham
{
   set hungerRestore to hungerRestore + 6
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Leek
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Lettuce
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Mutton
{
   set hungerRestore to hungerRestore + 6
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Onion
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Orange
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Pear
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Potato
{
   set hungerRestore to hungerRestore + 2
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Pumpkin
{
   set hungerRestore to hungerRestore + 2
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Radish
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Rice
{
   set hungerRestore to hungerRestore + 2
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Strawberry
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Sweetcake
{
   set hungerRestore to hungerRestore + 5
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Sweetroll
{
   set hungerRestore to hungerRestore + 2
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Tomato
{
   set hungerRestore to hungerRestore + 1
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Venison
{
   set hungerRestore to hungerRestore + 6
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

begin OnActorEquip Watermelon
{
   set hungerRestore to hungerRestore + 3
}
end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
begin GameMode

short AldmerisdrinkRestore
float lastTime2
float currentTime2
float deltaTime2
short AldmerisStatMods
float Aldmerisval

{
if (lastTime2 == 0)
   {
      set lastTime2 to GameHour
      return
   }
   endif

   if (lastTime2 >= GameHour)
   {
      set currentTime2 to GameHour + 24
   }
   else
   {
      set currentTime2 to GameHour
   }
   endif

   set deltaTime2 to currentTime2 - lastTime2
   set lastTime2 to GameHour

   set AldmerisNNdrink to AldmerisNNdrink - deltaTime2
   if (AldmerisNNdrink < 0)
   {
      set AldmerisNNdrink to 0
   }
   endif

   if (AldmerisdrinkRestore)
   {
      set AldmerisNNdrink to AldmerisNNdrink + AldmerisdrinkRestore
      if (AldmerisNNdrink >= 24)
      {
         set AldmerisNNdrink to 24
      }
      endif
   }
   endif

   set AldmerisStatMods to 0

   if (AldmerisNNdrink == 0)
   {
      if (AldmerisNNdrinkTimer >= 1)
      {
         set AldmerisStatMods to - AldmerisNNdrink

         set AldmerisStatlose to AldmerisStatlose + AldmerisNNdrink
         if (AldmerisStatlose > 100)
         {
            set AldmerisStatlose to 100
         }
         endif

         MessageBox "Вы умираете от жажды!"
      }
      endif
   }
   elseif (AldmerisNNdrink <= 2)
   {
      if (AldmerisNNdrinkTimer >= 1 || AldmerisdrinkRestore)
      {
         MessageBox "Вы очень сильно хотите пить."
      }
      endif
   }
   elseif (AldmerisNNdrink <= 4)
   {
      if (AldmerisNNdrinkTimer >= 1 || AldmerisdrinkRestore)
      {
         MessageBox "Вы довольно сильно хотите пить."
      }
      endif
   }
   elseif (AldmerisNNdrink <= 6)
   {
      if (AldmerisNNdrinkTimer >= 1 || AldmerisdrinkRestore)
      {
         MessageBox "Вы хотите пить."
      }
      endif
   }
   endif

   set AldmerisdrinkRestore to 0

   if (AldmerisNNdrinkTimer >= 1)
   {
      set AldmerisNNdrinkTimer to 0
   }
   endif

   if (AldmerisNNdrinkTimer == 0 && PNSleepTimer >= 1)
   {
      set PNSleepTimer to 0.9999
   }
   endif

   set AldmerisNNdrinkTimer to AldmerisNNdrinkTimer + deltaTime2

   if (AldmerisStatMods)
   {
      ModActorValue Agility AldmerisStatMods
      ModActorValue Endurance AldmerisStatMods
      ModActorValue Intelligence AldmerisStatMods
      ModActorValue Personality AldmerisStatMods
      ModActorValue Speed AldmerisStatMods
      ModActorValue Strength AldmerisStatMods
      ModActorValue Willpower AldmerisStatMods

      set AldmerisVal to GetActorValue Endurance
      if (AldmerisVal <= 0 && AldmerisStatMods < 0)
      {
         ModActorValue Health AldmerisStatMods
      }
      endif
   }
   endif
}
end


begin OnActorEquip AldmerisDrinkWine
{
   set AldmerisdrinkRestore to AldmerisdrinkRestore + 3
}
end


Проблема тут видимо.  :rolleyes:

begin GameMode

short AldmerisdrinkRestore
float lastTime2
float currentTime2
float deltaTime2
short AldmerisStatMods
float Aldmerisval

{
if (lastTime2 == 0)
   {
      set lastTime2 to GameHour
      return
   }
   endif

   if (lastTime2 >= GameHour)
   {
      set currentTime2 to GameHour + 24
   }
   else
   {
      set currentTime2 to GameHour
   }
   endif

   set deltaTime2 to currentTime2 - lastTime2
   set lastTime2 to GameHour

   set AldmerisNNdrink to AldmerisNNdrink - deltaTime2
   if (AldmerisNNdrink < 0)
   {
      set AldmerisNNdrink to 0
   }
   endif

   if (AldmerisdrinkRestore)
   {
      set AldmerisNNdrink to AldmerisNNdrink + AldmerisdrinkRestore
      if (AldmerisNNdrink >= 24)
      {
         set AldmerisNNdrink to 24
      }
      endif
   }
   endif

   set AldmerisStatMods to 0

   if (AldmerisNNdrink == 0)
   {
      if (AldmerisNNdrinkTimer >= 1)
      {
         set AldmerisStatMods to - AldmerisNNdrink

         set AldmerisStatlose to AldmerisStatlose + AldmerisNNdrink
         if (AldmerisStatlose > 100)
         {
            set AldmerisStatlose to 100
         }
         endif

         MessageBox "Вы умираете от жажды!"
      }
      endif
   }
   elseif (AldmerisNNdrink <= 2)
   {
      if (AldmerisNNdrinkTimer >= 1 || AldmerisdrinkRestore)
      {
         MessageBox "Вы очень сильно хотите пить."
      }
      endif
   }
   elseif (AldmerisNNdrink <= 4)
   {
      if (AldmerisNNdrinkTimer >= 1 || AldmerisdrinkRestore)
      {
         MessageBox "Вы довольно сильно хотите пить."
      }
      endif
   }
   elseif (AldmerisNNdrink <= 6)
   {
      if (AldmerisNNdrinkTimer >= 1 || AldmerisdrinkRestore)
      {
         MessageBox "Вы хотите пить."
      }
      endif
   }
   endif

   set AldmerisdrinkRestore to 0

   if (AldmerisNNdrinkTimer >= 1)
   {
      set AldmerisNNdrinkTimer to 0
   }
   endif

   if (AldmerisNNdrinkTimer == 0 && PNSleepTimer >= 1)
   {
      set PNSleepTimer to 0.9999
   }
   endif

   set AldmerisNNdrinkTimer to AldmerisNNdrinkTimer + deltaTime2

   if (AldmerisStatMods)
   {
      ModActorValue Agility AldmerisStatMods
      ModActorValue Endurance AldmerisStatMods
      ModActorValue Intelligence AldmerisStatMods
      ModActorValue Personality AldmerisStatMods
      ModActorValue Speed AldmerisStatMods
      ModActorValue Strength AldmerisStatMods
      ModActorValue Willpower AldmerisStatMods

      set AldmerisVal to GetActorValue Endurance
      if (AldmerisVal <= 0 && AldmerisStatMods < 0)
      {
         ModActorValue Health AldmerisStatMods
      }
      endif
   }
   endif
}
end


begin OnActorEquip AldmerisDrinkWine
{
   set AldmerisdrinkRestore to AldmerisdrinkRestore + 3
}
end

Оффлайн Монах Кит

  • *
  • Сообщений: 2
  • Репутация: 0
    • Просмотр профиля
    • Email
Re: Сон, еда, питье.
« Ответ #1 : 26 Январь, 2009, 12:45:46 »
0
Дополнительно, в разделе Global
      ID                         тип  значение
PNHunger                   float     24
PNHungerTimer           float      1

PNSleep                     float      24
PNSleepTimer             float       1

PNStatLoss                 Short      0

AldmerisNNdrink         float       24
AldmerisNNdrinkTimer float        1

  очень нужно для альдмериса :(

Теги:
 

Поиск

 
Top
SimplePortal 2.3.5 © 2008-2012, SimplePortal