47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /*//////////////////////////////////////////////////////////////////////////////
 | |
|  Script: nw_ch_aca
 | |
|  Programmer: Philos
 | |
| ////////////////////////////////////////////////////////////////////////////////
 | |
|   Associate OnRested event script;
 | |
|   Fires when the creature attempts to rest via ActionRest or a PC rests.
 | |
| *///////////////////////////////////////////////////////////////////////////////
 | |
| #include "0i_menus"
 | |
| void ai_UpdateAssociateWidget(object oMaster, object oAssociate, int nUIToken)
 | |
| {
 | |
|     if(nUIToken) NuiDestroy(oMaster, nUIToken);
 | |
|     ai_CreateWidgetNUI(oMaster, oAssociate);
 | |
|     if(oMaster != oAssociate)
 | |
|     {
 | |
|         nUIToken = NuiFindWindow(oMaster, "pc" + AI_WIDGET_NUI);
 | |
|         if(nUIToken)
 | |
|         {
 | |
|             NuiDestroy(oMaster, nUIToken);
 | |
|             ai_CreateWidgetNUI(oMaster, oMaster);
 | |
|         }
 | |
|     }
 | |
| }
 | |
| void main()
 | |
| {
 | |
|     object oAssociate = OBJECT_SELF;
 | |
|     ai_ClearCreatureActions();
 | |
|     ai_OnRested(oAssociate);
 | |
|     object oMaster = GetMaster(oAssociate);
 | |
|     if(ai_GetIsCharacter(oMaster) && AI_HENCHMAN_WIDGET)
 | |
|     {
 | |
|         int nLevel = ai_GetCharacterLevels(oAssociate);
 | |
|         float fDelay = StringToFloat(Get2DAString("restduration", "DURATION", nLevel));
 | |
|         fDelay = (fDelay / 1000.0f) + 6.0f;
 | |
|         // Update widget for spell widget.
 | |
|         string sAssociateType = ai_GetAssociateType(oMaster, oAssociate);
 | |
|         int nUIToken = NuiFindWindow(oMaster, sAssociateType + AI_WIDGET_NUI);
 | |
|         if(nUIToken) DelayCommand(fDelay, ai_UpdateAssociateWidget(oMaster, oAssociate, nUIToken));
 | |
|         else
 | |
|         {
 | |
|             if(!ai_GetWidgetButton(oMaster, BTN_WIDGET_OFF, oAssociate, sAssociateType))
 | |
|             {
 | |
|                 DelayCommand(fDelay, ai_UpdateAssociateWidget(oMaster, oAssociate, 0));
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |