Problem ze snem (G1) 5192 9

O temacie

Autor kula1984

Zaczęty 21.04.2015 roku

Wyświetleń 5192

Odpowiedzi 9

kula1984

kula1984

Użytkownicy
posty11
Profesjabrak
  • Użytkownicy
Ustawiłem rutynę npc TA_Sleep, ale coś nie działa. NPC kładzie się się spać i od razu wstaje. Sprawdziłem też jak zachowują się pod czas snu inne postacie z gry których skryptów nie ruszałem. I jest tak samo, kładą się spać i od razu wstają. Wie ktoś może w czym jest problem?

 

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Nie podchodź do nich. Jak podchodzisz, to od razu się budzą.

kula1984

kula1984

Użytkownicy
posty11
Profesjabrak
  • Użytkownicy
Ale tak się dzieje nawet kiedy jestem bardzo daleko. Nie wie może to jakiś bug, w G2 nie ma czegoś takiego.
 

WateR

WateR

Użytkownicy
Pułkownik IV Rzeszy
posty28
Propsy3
ProfesjaSkrypter
  • Użytkownicy
  • Pułkownik IV Rzeszy
Taka jest ta rutyna. Oni wstają, by np. zjeść coś, wypić coś itd. A jeśli się zbliżasz, to się budzą. Logiczne.
 

kula1984

kula1984

Użytkownicy
posty11
Profesjabrak
  • Użytkownicy
Nie o to chodzi. Podobnie mam jak ustawie rutynę, żeby npc grał na lutni. Wyjmuje lutnie raz brzdęknie i chowa lutnie. I proces się powtarza.
 

WateR

WateR

Użytkownicy
Pułkownik IV Rzeszy
posty28
Propsy3
ProfesjaSkrypter
  • Użytkownicy
  • Pułkownik IV Rzeszy
Więc albo bug, albo taka głupia rutyna.
 

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Daj tu zawartość skryptu z rutyną i Constains.d czy jakuś tak
 

kula1984

kula1984

Użytkownicy
posty11
Profesjabrak
  • Użytkownicy
Z lutnią rozwiązałem, musiałem dać  freepoints. To skrypt npc. i co  jeszcze mam dać Log_Constants?

instance Non_7000_Aulus (Npc_Default)
{
   //-------- primary data --------
   
   name       ="Aulus";
   npctype    =npctype_main;
   guild       =GIL_NONE;     
   level       =45;
   flags           =2;
   
   voice       =4;
   id       =7000;


   //-------- abilities --------
   
   attribute[ATR_STRENGTH]       =60;
   attribute[ATR_DEXTERITY]       =60;
   attribute[ATR_MANA_MAX]       =0;
   attribute[ATR_MANA]          =0;
   attribute[ATR_HITPOINTS_MAX]            =400;
   attribute[ATR_HITPOINTS]       =400;

   //-------- visuals --------
   //             animations
   Mdl_SetVisual      (self,"HUMANS.MDS");
   Mdl_ApplyOverlayMds   (self,"Humans_Tired.mds");
   //            body mesh,            head mesh,            hairmesh,   face-tex,   hair-tex,   skin   
   Mdl_SetVisualBody (self,"hum_body_Naked0",2,0,"Hum_Head_Thief", 16,  1, CRW_ARMOR_H);

   B_Scale (self);
   Mdl_SetModelFatness (self, 0);
   
   fight_tactic   =   FAI_HUMAN_Master;
   
   //-------- Talents  --------                                   

   Npc_SetTalentSkill (self, NPC_TALENT_1H,2);
       
   
   //-------- inventory --------                                   
   EquipItem   (self, ItMw_1H_Sword_Long_01);
   CreateInvItems   (self,   ItKeLockpick,         5);
   CreateInvItems   (self,   ItMiScoop,            1);
   CreateInvItems   (self,   ItMiHammer,            1);
   CreateInvItems   (self,   ItMiStomper,         1);
   CreateInvItems   (self,   ItMiSwordraw,         3);
   CreateInvItems   (self,   ItLsTorch,            4);
   CreateInvItems   (self,   ItMi_Stuff_Barbknife_01,1);
   CreateInvItems   (self,   ItMi_Stuff_OldCoin_02,   17);
   CreateInvItems   (self,   ItMi_Stuff_Cup_01,      1);
   CreateInvItems   (self,   ItMi_Stuff_Pan_01,      1);
   CreateInvItems   (self,   ItMi_Stuff_Mug_01,      1);
   CreateInvItems   (self,   ItFoBeer,            3);
   CreateInvItems   (self,   ItFoCheese,            5);
   CreateInvItems   (self,   ItFoMutton,            4);
   CreateInvItems   (self,   ItFoLoaf,            2);
        CreateInvItems   (self,   ItAt_Lurker_02, 20);
   
   //-------------Daily Routine-------------
   daily_routine = Rtn_start_7000;
   };

FUNC VOID Rtn_start_7000 ()
{
   TA_SitAround      (06,00,09,00,"NOWY_01");
        TA_PlayTune             (09,00,12,00,"NOWY_01");
        TA_Smalltalk            (12,00,23,00,"NOWY_01");
        TA_Sleep      (23,00,06,00,"NOWY_01_B");     
};






 

chicken

chicken

RaveN Studio
posty1230
Propsy559
ProfesjaNierób
  • RaveN Studio
Skrypt z rutyny TA_Sleep ( plik ZS_Sleep.d ).

kula1984

kula1984

Użytkownicy
posty11
Profesjabrak
  • Użytkownicy
/************************************************
*              NSC benutzt Bett,                *
* wenn kein Bett da, macht der ZS_StandAround   *
*************************************************/

func void ZS_Sleep()
{
   PrintDebugNpc       (PD_TA_FRAME,"ZS_Sleep");
   
   B_SetPerception      (self);   
   AI_SetWalkmode       (self,   NPC_WALK);
   if (!C_BodyStateContains(self,BS_MOBINTERACT))
   {
      if (Hlp_StrCmp(Npc_GetNearestWP(self), self.wp)== 0)
        {
         AI_GotoWP   (self, self.wp);
      };
   };
   AI_StartState      (self, ZS_SleepBed, 1, "");
};     
     
func void ZS_SleepBed()     
{
    PrintDebugNpc       (PD_TA_FRAME,"ZS_SleepBed_Loop");
   
    LightSleepPerception();
   
   if (Wld_IsMobAvailable (self,"BED"))
   {
       AI_UseMob      (self,   "BED",1);
   }
   else if (Wld_IsMobAvailable (self,"BEDHIGH")||Wld_IsMobAvailable (self,"BEDLOW"))
   {
       AI_UseMob      (self,   "BEDHIGH",1); //Mehrfache Mob-Benutzung okay, weil nachfolgende UseMobs ignoriert werden, wenn UseMob schon aktiv ist
       AI_UseMob       (self,   "BEDLOW",1); // Mobs werden nur benutzt, wenn NSC sie sehen kann und wenn sie frei sind (sagt Ulf)
   }
   else
   {
      AI_StartState   (self, ZS_StandAround, 1, "");
   };
};

func int ZS_SleepBed_Loop()
{
   PrintDebugNpc       (PD_TA_LOOP,"ZS_SleepBed_Loop");

   // SN: Workaround dafür, daß Wld_IsMobAvailable() zwar TRUE geliefert hat, AI_UseMob() aber gescheitert ist!
   if   !C_BodyStateContains(self,BS_MOBINTERACT)
   &&   (Npc_GetStateTime(self) > 3)
   {
      AI_StartState   (self, ZS_SitAround, 1, "");
   };   
   
   AI_Wait            (self, 1);
   return            LOOP_CONTINUE;
};

func void ZS_SleepBed_End()
{
   PrintDebugNpc       (PD_TA_FRAME,"ZS_SleepBed_End");

   if   Wld_IsTime(07,00,   08,30)
   {
      B_Say         (self, NULL, "$AWAKE");   
   };

   AI_UseMob         (self,"BEDHIGH",-1);
   AI_UseMob         (self,"BEDLOW",-1);
   AI_UseMob         (self,"BED",-1);
};

func void B_SleepQuietSound ()
{
   PrintDebugNpc       (PD_TA_DETAIL,   "B_SleepQuietSound");
   
   if ((Npc_GetDistToNpc(self,other) < PERC_DIST_DIALOG)
   &&    Npc_CanSeeNpcFreeLOS(self,other)               )
   {
      AI_StartState   (self,   ZS_WakeUp, 0, "");
   }
   else
   {
      B_TossAndTurn   ();
   };
};
   
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry