Author Topic: Check Premium modules and offline play  (Read 715 times)

Legacy_Dark_Ansem

  • Full Member
  • ***
  • Posts: 148
  • Karma: +0/-0
Check Premium modules and offline play
« on: May 27, 2012, 10:17:05 pm »


               is it mandatory that each time I want to use a premium module I have to wait for it to verify? cant I play offline?

-how can I open a premium module in order to check scripts/items?
               
               

               
            

Legacy_werelynx

  • Hero Member
  • *****
  • Posts: 1110
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #1 on: May 28, 2012, 02:38:16 pm »


               I think you can't open premium module in toolset. All things from premium modules were added in 1.69 patch.
               
               

               
            

Legacy_Dark_Ansem

  • Full Member
  • ***
  • Posts: 148
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #2 on: May 28, 2012, 03:09:37 pm »


               I wanted to check some scripts and items. and to install the PRC obviously. too bad I guess.
               
               

               
            

Legacy_HipMaestro

  • Hero Member
  • *****
  • Posts: 2849
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #3 on: May 28, 2012, 05:09:50 pm »


               If there was a way (& I am on the list of hopers like you), all the Premiums could be saved as modules and made available through the Vault.  I join you in your frustration as there are a few scripts in them I would love to examine to find out how they did what they did.

However, I believe that once the verification has taken place, I disconnect just in case there might be latency.  But I don't know if or how my session was saved.  For what that is worth...  not a plug nickel, I guess.
               
               

               
            

Legacy_Dark_Ansem

  • Full Member
  • ***
  • Posts: 148
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #4 on: May 28, 2012, 06:43:12 pm »


               it's weird, because they appear in the official module folder, but they're too small to be the actual modules themselves. at the same time I don't believe that the module is actually stored on the internet, otherwise there would be no installer.
               
               

               
            

Legacy_NWN_baba yaga

  • Hero Member
  • *****
  • Posts: 1944
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #5 on: May 28, 2012, 08:59:03 pm »


               maybe the modules are loaded from their server into some kind of temp directory. I never tried but if so we would be able to copy them out. To my bad i dont own any of them...
               
               

               
            

Legacy_Dark_Ansem

  • Full Member
  • ***
  • Posts: 148
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #6 on: May 28, 2012, 09:19:43 pm »


               well, they do not stay in the tempclient folder.
               
               

               
            

Legacy_Carcerian

  • Hero Member
  • *****
  • Posts: 1655
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #7 on: May 28, 2012, 09:53:05 pm »


               Actually a cancelled one did get released on the vault, and it has stuff that didnt make it into the patch '<img'>

Darkness over Daggerford

It might be worth taking a look at, its a Hall of Fame Module with 450 (!!!) votes.
               
               

               


                     Modifié par Carcerian, 28 mai 2012 - 09:02 .
                     
                  


            

Legacy_Dark_Ansem

  • Full Member
  • ***
  • Posts: 148
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #8 on: May 28, 2012, 09:57:21 pm »


               I did already, it's awesome. makers could have asked good money for it, and instead they released it free. ah, good times.
               
               

               
            

Legacy_Carcerian

  • Hero Member
  • *****
  • Posts: 1655
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #9 on: May 28, 2012, 10:11:39 pm »


               I'm pretty sure the modules are stored locally, as appears to be the case for the Platinum Modules like Kingmaker, etc, and the online check is something similar to the missing master server...

All the tools ive tried refuse to work on a premium hack, it definitely would be nice to be able to extract them, or view them with something like NW Explorer.
               
               

               


                     Modifié par Carcerian, 28 mai 2012 - 09:12 .
                     
                  


            

Legacy_Dark_Ansem

  • Full Member
  • ***
  • Posts: 148
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #10 on: May 28, 2012, 10:31:20 pm »


               that does not work as well.
               
               

               
            

Legacy_Carcerian

  • Hero Member
  • *****
  • Posts: 1655
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #11 on: May 28, 2012, 10:50:06 pm »


               Just extracted the .nss files from daggerford, and now going thru all 2000+ of them...

some gems in there like this one:

//::///////////////////////////////////////////////
//:: inc_balance
//:: Copyright © 2004 Bioware Corp.
//:://////////////////////////////////////////////
/*
   This include file is used to autobalance NPCs
   and encounters based on the Party playing the
   adventure.
*/
//:://////////////////////////////////////////////
//:: Created By: Keith K2 Hayward
//:: Created On: August, 2004
//:://////////////////////////////////////////////

// Called on PCs Exiting and entering the world to rebalance
// future creatures based on the party
void ReCalcGlobalDif();

// Warning: NPC must start at level 1 for this to work;
void LevelUpNPC(object oNPC);

void ReCalcGlobalDif()
{
   int iHitDice, iLevel, iPlayers;
   object oPC = GetFirstPC();

   while (GetIsObjectValid(oPC) == TRUE)
   {
       // Minimum of level 5 characters
       iHitDice = GetHitDice(oPC);
       if (iHitDice < 5)
       {
           iHitDice = 5;
       }

       iLevel += iHitDice;
       iPlayers++;
       oPC = GetNextPC();
   }

   SetLocalInt(GetModule(), "GLOBAL_LEVEL", (iLevel/iPlayers));
   //SendMessageToPC(GetFirstPC(), "**GLOBAL_LEVEL = " + IntToString(iLevel/iPlayers));
}

void EquipUpNPC(object oNPC)
{
   object oCArmor, oCWeaponR, oCWeaponL;
   object oArmor, oWeaponR, oWeaponL;

   int iLevel = GetHitDice(oNPC);
   int iBoss = GetLocalInt(oNPC, "BOSS");
   int iGameDiff = GetGameDifficulty();

   int iEnhancementMax = ((iLevel - 1) / 3) + 1;
   int iFactor = 0;
   int iEnhancement = 0;

   itemproperty ipWeapEnhance;
   itemproperty ipArmrEnhance;

// testing a different method of scaling,
// all NPCs will be equiped to their level.

/*    // Set a base factor in relation to the Game diffculty.
   switch (iGameDiff)
   {
       case GAME_DIFFICULTY_CORE_RULES:
       case GAME_DIFFICULTY_DIFFICULT:
           iFactor = 1;
       break;

       case GAME_DIFFICULTY_NORMAL:
       default:
           iFactor = 2;
       break;

       case GAME_DIFFICULTY_VERY_EASY :
       case GAME_DIFFICULTY_EASY :
           iFactor = 3;
       break;
   }

   if (iBoss == TRUE)
   {
       iFactor -= 1;
   }
*/

   // Calctulate the max enchancement
   iEnhancement = iEnhancementMax - iFactor;

   //SendMessageToPC(GetFirstPC(), "**OBJECT = " + GetTag(oNPC)
   //    + ", suggested enhancement level =" + IntToString(iEnhancement));

   if (iEnhancement > 0)
   {
       ipWeapEnhance = ItemPropertyEnhancementBonus(iEnhancement);
       ipArmrEnhance = ItemPropertyACBonus(iEnhancement);

       oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oNPC);
       oWeaponR = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oNPC);
       oWeaponL = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oNPC);


       // Check the armor and creature skin and upgrade them
       if(GetIsObjectValid(oArmor) == FALSE)
       {
           oCArmor = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oNPC);
           if(GetIsObjectValid(oCArmor) == TRUE)
           {
               AddItemProperty(DURATION_TYPE_PERMANENT, ipArmrEnhance, oCArmor);
           }
       }
       else
       {
           AddItemProperty(DURATION_TYPE_PERMANENT, ipArmrEnhance, oArmor);
       }

       // Check the weapon and creature weapon and upgrade them
       if(GetIsObjectValid(oWeaponR) == FALSE)
       {
           oCWeaponR = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oNPC);
           if(GetIsObjectValid(oCWeaponR) == TRUE)
           {
               AddItemProperty(DURATION_TYPE_PERMANENT, ipWeapEnhance, oCWeaponR);
           }
       }
       else
       {
           AddItemProperty(DURATION_TYPE_PERMANENT, ipWeapEnhance, oWeaponR);
       }

       // Check the other weapon and creature weapon and upgrade them
       if(GetIsObjectValid(oWeaponL) == FALSE)
       {
           oCWeaponL = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oNPC);
           if(GetIsObjectValid(oCWeaponL) == TRUE)
           {
               AddItemProperty(DURATION_TYPE_PERMANENT, ipWeapEnhance, oCWeaponL);
           }
       }
       else
       {
           AddItemProperty(DURATION_TYPE_PERMANENT, ipWeapEnhance, oWeaponL);
       }
   }
}

void LevelUpNPC(object oNPC)
{
   int iGlobalLevel = GetLocalInt(GetModule(), "GLOBAL_LEVEL");
   int iBoss = GetLocalInt(oNPC, "BOSS");
   int iGameDiff = GetGameDifficulty();
   int iLevel = 0;
   float fFactor = 0.0f;

   // Set a base factor in relation to the Game diffculty.
   switch (iGameDiff)
   {
       case GAME_DIFFICULTY_CORE_RULES:
       case GAME_DIFFICULTY_DIFFICULT:
           fFactor = 0.80f;
       break;

       case GAME_DIFFICULTY_NORMAL:
       default:
           fFactor = 0.60f;
       break;

       case GAME_DIFFICULTY_VERY_EASY :
       case GAME_DIFFICULTY_EASY :
           fFactor = 0.40f;
       break;
   }

   // Bosses should be tougher then average creatures.
   if (iBoss == TRUE)
   {
       fFactor += 0.40f;
   }

   iLevel = FloatToInt(iGlobalLevel * fFactor);
   //SendMessageToPC(GetFirstPC(), "**OBJECT = " + GetTag(oNPC)
   //    + ", Set to level =" + IntToString(iLevel));

   // Scale up the level according to the factor
   while (GetHitDice(oNPC) < iLevel)
   {
       if (LevelUpHenchman(oNPC, class_TYPE_INVALID, TRUE) == 0)
       {
           // If Levelup Fails for whatever
           // reason break out of the loop
           break;
       }
   }

   ForceRest(oNPC);
   EquipUpNPC(oNPC);
}


               
               

               


                     Modifié par Carcerian, 28 mai 2012 - 09:51 .
                     
                  


            

Legacy_Dark_Ansem

  • Full Member
  • ***
  • Posts: 148
  • Karma: +0/-0
Check Premium modules and offline play
« Reply #12 on: May 28, 2012, 11:21:39 pm »


               heh, I can understand little, but it seems brilliant.