Added (2) Castle Interior overrides, continued making static NPCs & stores dynamic. added more DMFI language tokens, started working on mod onEnter scripting, got NPCs to fire emotes while walking around.
164 lines
5.2 KiB
Plaintext
164 lines
5.2 KiB
Plaintext
void GivePCWands(object oPC)
|
|
{
|
|
// items to be give to new players
|
|
|
|
string sWndPCFollow = "dmfi_pc_follow";//PC Autofollow Widget
|
|
string sWndPCDice = "dmfi_pc_dicebag";//PC Dicebag
|
|
string sWndPCEmote = "dmfi_pc_emote";//PC Emote Wand
|
|
|
|
CreateItemOnObject(sWndPCFollow, oPC);
|
|
CreateItemOnObject(sWndPCDice, oPC);
|
|
CreateItemOnObject(sWndPCEmote, oPC);
|
|
}
|
|
|
|
void GiveLangTokens(object oPC)
|
|
{
|
|
// Give class based language items
|
|
if( GetLevelByClass(CLASS_TYPE_DRUID, oPC) >= 2 )
|
|
{
|
|
if ( GetItemPossessedBy(oPC, "hlslang_108") == OBJECT_INVALID ) // Druidic
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Druidic language token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_108", oPC);
|
|
}
|
|
}
|
|
|
|
if( GetLevelByClass(CLASS_TYPE_ROGUE, oPC) >= 2 )
|
|
{
|
|
if ( GetItemPossessedBy(oPC, "hlslang_9") == OBJECT_INVALID ) // Thieve's Cant
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Thieve's Cant token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_9", oPC);
|
|
}
|
|
}
|
|
|
|
// Give race based language tokens
|
|
// TODO: Expand for PRC races.
|
|
|
|
if( GetRacialType(oPC) == RACIAL_TYPE_ELF )
|
|
{
|
|
// DelayCommand(0.5, AdjustReputation(oPC, GetObjectByTag("FACTION_ATHAS_SILVERHAND"), 90)); // Adjust faction reputation
|
|
|
|
if ( GetItemPossessedBy(oPC, "hlslang_1") == OBJECT_INVALID )
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Elven language token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_1", oPC);
|
|
}
|
|
}
|
|
|
|
if( GetRacialType(oPC) == RACIAL_TYPE_HALFELF )
|
|
{
|
|
if ( GetItemPossessedBy(oPC, "hlslang_1") == OBJECT_INVALID )
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Elven language token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_1", oPC);
|
|
}
|
|
}
|
|
|
|
if( GetRacialType(oPC) == RACIAL_TYPE_DWARF )
|
|
{
|
|
// DelayCommand(0.5, AdjustReputation(oPC, GetObjectByTag("ATHAS_FACTION_KLED"), 90)); // Adjust faction reputation
|
|
|
|
if ( GetItemPossessedBy(oPC, "hlslang_4") == OBJECT_INVALID )
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Dwarven language token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_4", oPC);
|
|
}
|
|
}
|
|
|
|
if( GetRacialType(oPC) == RACIAL_TYPE_HALFLING )
|
|
{
|
|
if ( GetItemPossessedBy(oPC, "hlslang_3") == OBJECT_INVALID )
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Halfling language token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_3", oPC);
|
|
}
|
|
}
|
|
|
|
if( GetRacialType(oPC) == 199 ) // Air Genasi
|
|
{
|
|
SetColor ( oPC, COLOR_CHANNEL_SKIN, 020);
|
|
|
|
if ( GetItemPossessedBy(oPC, "hlslang_101") == OBJECT_INVALID )
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Auran language token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_101", oPC);
|
|
}
|
|
}
|
|
if( GetRacialType(oPC) == 200 ) // Earth Genasi
|
|
{
|
|
SetColor ( oPC, COLOR_CHANNEL_SKIN, 118);
|
|
|
|
if ( GetItemPossessedBy(oPC, "hlslang_102") == OBJECT_INVALID )
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Terran language token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_102", oPC);
|
|
}
|
|
}
|
|
if( GetRacialType(oPC) == 202 ) // Fire Genasi
|
|
{
|
|
SetColor ( oPC, COLOR_CHANNEL_SKIN, 103);
|
|
|
|
if ( GetItemPossessedBy(oPC, "hlslang_104") == OBJECT_INVALID )
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Ignan language token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_104", oPC);
|
|
}
|
|
}
|
|
if( GetRacialType(oPC) == 205 ) // Water Genasi
|
|
{
|
|
SetColor ( oPC, COLOR_CHANNEL_SKIN, 141);
|
|
|
|
if ( GetItemPossessedBy(oPC, "hlslang_103") == OBJECT_INVALID )
|
|
{
|
|
DelayCommand(1.0, FloatingTextStringOnCreature("Aquan language token acquired.", oPC));
|
|
CreateItemOnObject("hlslang_103", oPC);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
#include "dmfi_init_inc"
|
|
|
|
void main()
|
|
{
|
|
object oPC = GetEnteringObject();
|
|
|
|
// Make sure PC isn't set to Plot, for reasons
|
|
SetPlotFlag(oPC, FALSE);
|
|
|
|
// Reset PC size
|
|
SetObjectVisualTransform(oPC, OBJECT_VISUAL_TRANSFORM_SCALE, 1.0f);
|
|
|
|
// Initialize DMFI
|
|
dmfiInitialize(oPC);
|
|
|
|
// Give PC DMFI gear
|
|
|
|
if (GetXP(oPC) == 0)
|
|
{
|
|
GivePCWands(oPC);
|
|
}
|
|
|
|
// Begin BESIE Spawn System
|
|
|
|
int bBESIEWidget;
|
|
|
|
if(GetIsDM(oPC))
|
|
{
|
|
SetLocalInt(GetModule(), "re_" + GetPCPlayerName(oPC), TRUE);
|
|
object oItem = GetFirstItemInInventory(oPC);
|
|
while(GetIsObjectValid(oItem))
|
|
{
|
|
if(GetTag(oItem) == "BESIEWidget") bBESIEWidget = TRUE;
|
|
oItem = GetNextItemInInventory(oPC);
|
|
}
|
|
if(!bBESIEWidget) CreateItemOnObject("besiewidget", oPC);
|
|
}
|
|
else DeleteLocalInt(GetModule(), "re_" + GetName(oPC));
|
|
|
|
// End BESIE Spawn System
|
|
|
|
}
|