DMH-Online

Dungeon Masters Helper · Est. 2005

Dm Only Scripts

NWN Script: get_pc_info.htm

Author Sticky: Post Working Scripts Here
Jhenne Posted: Monday, 24 June 01:17AM
1. Script Name:

Jhenne's fantabulous Character Info getter thingy

2. What it does: Short description for what the script is designed to do.

Broadcasts to DM's the Name,Level/Class, Stats, and Items of joining players.

Also writes the same information to logfile with a timestamp.

3. Notes: Explain any of the script as needed.

Insert script into your 'OnEnter' event for each area. (may work inserted into module OnEnter, haven't tested)

note: the first object oCreature should be able to use GetNextPC() instead of GetEnteringObject(), which when combined with the dm_runscript command can make this script hotkeyable.

4. The Script itself

NWScript:
void main()
{
object oCreature = GetEnteringObject();
int nDruid = CLASS_TYPE_DRUID;
int nMonk = CLASS_TYPE_MONK;
int nRogue = CLASS_TYPE_ROGUE;
int nWizard = CLASS_TYPE_WIZARD;
int nSorcerer = CLASS_TYPE_SORCERER;
int nFighter = CLASS_TYPE_FIGHTER;
int nBarbarian = CLASS_TYPE_BARBARIAN;
int nBard = CLASS_TYPE_BARD;
int nCleric = CLASS_TYPE_CLERIC;
int nPaladin = CLASS_TYPE_PALADIN;
int nRanger = CLASS_TYPE_RANGER;
int iStr = GetAbilityScore(oCreature, ABILITY_STRENGTH);
int iDex = GetAbilityScore(oCreature, ABILITY_DEXTERITY);
int iWis = GetAbilityScore(oCreature, ABILITY_WISDOM);
int iInt = GetAbilityScore(oCreature, ABILITY_INTELLIGENCE);
int iCon = GetAbilityScore(oCreature, ABILITY_CONSTITUTION);
int iCha = GetAbilityScore(oCreature, ABILITY_CHARISMA);

object oArmorChest = GetItemInSlot(INVENTORY_SLOT_CHEST, oCreature);
object oBelt = GetItemInSlot(INVENTORY_SLOT_BELT, oCreature);
object oCarmor = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oCreature);
object oCloak = GetItemInSlot(INVENTORY_SLOT_CLOAK, oCreature);
object oHead = GetItemInSlot(INVENTORY_SLOT_HEAD, oCreature);
object oLeftRing = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oCreature);
object oRightRing = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oCreature);
object oAmulet = GetItemInSlot(INVENTORY_SLOT_NECK, oCreature);
object oBoots = GetItemInSlot(INVENTORY_SLOT_BOOTS, oCreature);
object oGloves = GetItemInSlot(INVENTORY_SLOT_ARMS, oCreature);
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oCreature);
object oOffhand = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oCreature);
string sArmorChest = GetName(oArmorChest);
string sBelt = GetName(oBelt);
string sCarmor = GetName(oCarmor);
string sCloak = GetName(oCloak);
string sHead = GetName(oHead);
string sLeftRing = GetName(oLeftRing);
string sRightRing = GetName(oRightRing);
string sAmulet = GetName(oAmulet);
string sBoots = GetName(oBoots);
string sGloves = GetName(oGloves);
string sWeapon = GetName(oWeapon);
string sOffhand = GetName(oOffhand);
string sStr = IntToString(iStr);
string sDex = IntToString(iDex);
string sWis = IntToString(iWis);
string sInt = IntToString(iInt);
string sCon = IntToString(iCon);
string sCha = IntToString(iCha);
int nPrintDruid = GetLevelByClass(nDruid, oCreature);
int nPrintMonk = GetLevelByClass(nMonk, oCreature);
int nPrintRogue = GetLevelByClass(nRogue, oCreature);
int nPrintWizard = GetLevelByClass(nWizard, oCreature);
int nPrintSorcerer = GetLevelByClass(nWizard, oCreature);
int nPrintFighter = GetLevelByClass(nFighter, oCreature);
int nPrintBarbarian = GetLevelByClass(nBarbarian, oCreature);
int nPrintBard = GetLevelByClass(nBard, oCreature);
int nPrintCleric = GetLevelByClass(nCleric, oCreature);
int nPrintPaladin = GetLevelByClass(nPaladin, oCreature);
int nPrintRanger = GetLevelByClass(nRanger, oCreature);
string sDruid = IntToString(nPrintDruid);
string sMonk = IntToString(nPrintMonk);
string sRogue = IntToString(nPrintRogue);
string sWizard = IntToString(nPrintWizard);
string sSorcerer = IntToString(nPrintSorcerer);
string sFighter = IntToString(nPrintFighter);
string sBarbarian = IntToString(nPrintBarbarian);
string sBard = IntToString(nPrintBard);
string sCleric = IntToString(nPrintCleric);
string sPaladin = IntToString(nPrintPaladin);
string sRanger = IntToString(nPrintRanger);
string sName=GetName(oCreature);
  SendMessageToAllDMs(sName+"'s Chest: "+sArmorChest+", Belt: "+sBelt+", Cloak: "+sCloak+", Helm: "+sHead+", LRing: "+sLeftRing+", RRing: "+sRightRing+", Amulet: "+sAmulet+", Boots: "+sBoots+", Gloves: "+sGloves+", Weapon: "+sWeapon+", Offhand: "+sOffhand);
 WriteTimestampedLogEntry(sName+"'s Chest: "+sArmorChest+", Belt: "+sBelt+", Cloak: "+sCloak+", Helm: "+sHead+", LRing: "+sLeftRing+", RRing: "+sRightRing+", Amulet: "+sAmulet+", Boots: "+sBoots+", Gloves: "+sGloves+", Weapon: "+sWeapon+", Offhand: "+sOffhand);
SendMessageToAllDMs(sName+"'s Stats: Str:"+sStr+" Dex:"+sDex+" Con:"+sCon+" Int:"+sInt+" Wis:"+sWis+" Cha: "+sCha);
WriteTimestampedLogEntry(sName+"'s Stats: Str:"+sStr+" Dex:"+sDex+" Con:"+sCon+" Int:"+sInt+" Wis:"+sWis+" Cha: "+sCha);
if  (nPrintDruid>0)
  {
 SendMessageToAllDMs(sName+"'s Druid Level: "+sDruid);
 WriteTimestampedLogEntry(sName+"'s Druid Level: "+sDruid);
  }
if (nPrintMonk>0)
{
 SendMessageToAllDMs(sName+"'s Monk Level: "+sMonk);
 WriteTimestampedLogEntry(sName+"'s Monk Level: "+sMonk);
 }
 if (nPrintRogue>0)
{
 SendMessageToAllDMs(sName+"'s Rogue Level: "+sRogue);
 WriteTimestampedLogEntry(sName+"'s Rogue Level: "+sRogue);
 }
 if (nPrintWizard>0)
{
 SendMessageToAllDMs(sName+"'s Wizard Level: "+sWizard);
 WriteTimestampedLogEntry(sName+"'s Wizard Level: "+sWizard);
 }
  if (nPrintSorcerer>0)
{
 SendMessageToAllDMs(sName+"'s Sorcerer Level: "+sSorcerer);
 WriteTimestampedLogEntry(sName+"'s Sorcerer Level: "+sSorcerer);
 }
  if (nPrintFighter>0)
{
 SendMessageToAllDMs(sName+"'s Fighter Level: "+sFighter);
 WriteTimestampedLogEntry(sName+"'s Fighter Level: "+sFighter);
 }
  if (nPrintBarbarian>0)
{
 SendMessageToAllDMs(sName+"'s Barbarian Level: "+sBarbarian);
 WriteTimestampedLogEntry(sName+"'s Barbarian Level: "+sBarbarian);
 }
 if (nPrintBard>0)
{
 SendMessageToAllDMs(sName+"'s Bard Level: "+sBard);
 WriteTimestampedLogEntry(sName+"'s Bard Level: "+sBard);
 }
 if (nPrintCleric>0)
{
 SendMessageToAllDMs(sName+"'s Cleric Level: "+sCleric);
 WriteTimestampedLogEntry(sName+"'s Cleric Level: "+sCleric);
 }
  if (nPrintPaladin>0)
{
 SendMessageToAllDMs(sName+"'s Paladin Level: "+sPaladin);
 WriteTimestampedLogEntry("Paladin Level: "+sPaladin);
 }
 if (nPrintRanger>0)
{
 SendMessageToAllDMs(sName+"'s Ranger Level: "+sRanger);
 WriteTimestampedLogEntry(sName+"'s Ranger Level: "+sRanger);
 }
}




enjoy

⌂ All Scripts ← PreviousNext → 👁 Category List

All Dm Only Scripts

📄 dm_helper 📄 get_pc_info 📄 get_pcs 📄 level_handler 📄 save_pc 📄 unlock_door