Updated Tar Lake Interior
Updated Tar Lake Interior. Added class based starting item packages for new characters.
This commit is contained in:
@@ -45,7 +45,7 @@ void main()
|
||||
|
||||
// Cast SPELL_REPEL_VERMIN with Extend Spell metamagic
|
||||
ActionSpeakString("Aggh, damn bugs!!", TALKVOLUME_TALK);
|
||||
ActionCastSpellAtObject(SPELL_REPEL_VERMIN, oNPC, METAMAGIC_EXTEND, TRUE, nSpellLevel, FALSE);
|
||||
DelayCommand(0.1f, ActionCastSpellAtObject(SPELL_REPEL_VERMIN, oNPC, METAMAGIC_EXTEND, TRUE, nSpellLevel, FALSE));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -5,19 +5,6 @@
|
||||
#include "inc_gennui"
|
||||
|
||||
|
||||
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
|
||||
@@ -149,13 +136,6 @@ void main()
|
||||
// Initialize DMFI
|
||||
dmfiInitialize(oPC);
|
||||
|
||||
// Give PC DMFI gear
|
||||
|
||||
if (GetXP(oPC) == 0)
|
||||
{
|
||||
GivePCWands(oPC);
|
||||
}
|
||||
|
||||
// Begin BESIE Spawn System
|
||||
|
||||
int bBESIEWidget;
|
||||
|
412
_module/nss/start_gear_onent.nss
Normal file
412
_module/nss/start_gear_onent.nss
Normal file
@@ -0,0 +1,412 @@
|
||||
#include "prc_inc_racial"
|
||||
|
||||
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 main()
|
||||
{
|
||||
object oPC = GetEnteringObject();
|
||||
|
||||
//:: Don't run on DMs
|
||||
if(!GetIsPC(oPC))
|
||||
return; // pc or dm check
|
||||
if(GetIsDM(oPC)==TRUE) return;
|
||||
|
||||
//:: Check for new character via XP
|
||||
int iXP = GetXP(oPC);
|
||||
if (iXP < 1)
|
||||
{
|
||||
//:: Set xp so script doesn't fire again on enter
|
||||
SetXP(oPC, 2);
|
||||
AssignCommand(oPC, ClearAllActions());
|
||||
ExploreAreaForPlayer(GetArea(oPC), oPC);
|
||||
|
||||
//:: Remove existing gear.
|
||||
object oItem = GetFirstItemInInventory(oPC);
|
||||
while(GetIsObjectValid(oItem))
|
||||
{
|
||||
SetPlotFlag(oItem,FALSE);
|
||||
DestroyObject(oItem);
|
||||
oItem = GetNextItemInInventory(oPC);
|
||||
}
|
||||
|
||||
//:: Equip players according to starting class
|
||||
int iClass = GetClassByPosition (1, oPC);
|
||||
|
||||
if(iClass == CLASS_TYPE_BARBARIAN)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_waxgr001", oPC); //:: Greataxe
|
||||
CreateItemOnObject("nw_waxhn001", oPC); //:: Handaxe
|
||||
CreateItemOnObject("nw_aarcl008", oPC); //:: Hide Armor
|
||||
CreateItemOnObject("nw_it_medkit001", oPC, 2); //:: (2) Healer's Kit +1
|
||||
CreateItemOnObject("nw_wthax001", oPC,9); //:: (9) Throwing Axes
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC); //:: Potion of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC); //:: Potion of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC); //:: Potion of Cure Moderate Wounds
|
||||
SendMessageToPC(oPC, "Barbarian EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_TOTEMIST)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_aarcl002", oPC); //:: Studded Leather Armor
|
||||
CreateItemOnObject("nw_ashlw001", oPC); //:: Large Shield
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
CreateItemOnObject("x1_wmgrenade006", oPC,5); //:: (5) Tanglefoot Bags
|
||||
CreateItemOnObject("nw_it_medkit001", oPC, 2); //:: (2) Healer's Kit +1
|
||||
SendMessageToPC(oPC, "Totemist EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_BARD)
|
||||
{
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_it_sparscr312", oPC); //:: Haste Scroll
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wbwxl001", oPC); //:: Light Crossbow
|
||||
CreateItemOnObject("nw_wambo001", oPC,25); //:: (25) Wooden Bolts
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
SendMessageToPC(oPC, "Bard EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_CLERIC || iClass == CLASS_TYPE_ARCHIVIST || iClass == CLASS_TYPE_FAVOURED_SOUL)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 4); //:: (4) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wblml001", oPC); //:: Light Mace
|
||||
CreateItemOnObject("nw_ashsw001", oPC); //:: Small Shield
|
||||
CreateItemOnObject("nw_aarcl004", oPC); //:: Chain Mail
|
||||
CreateItemOnObject("x1_wmgrenade005", oPC,5); //:: (5) Vials of Holy Water
|
||||
SendMessageToPC(oPC, "Divine Servant EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_DRUID)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wspmsc001", oPC); //:: Sickle
|
||||
CreateItemOnObject("nw_ashsw001", oPC); //:: Small Shield
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_it_medkit001", oPC, 2); //:: (2) Healer's Kit +1
|
||||
CreateItemOnObject("x1_wmgrenade006", oPC,5); //:: (5) Tanglefoot Bags
|
||||
SendMessageToPC(oPC, "Druid EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_SOHEI)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wswls001", oPC); //:: Longsword
|
||||
CreateItemOnObject("nw_aarcl006", oPC); //:: Half Plate
|
||||
CreateItemOnObject("nw_ashlw001", oPC); //:: Large Shield
|
||||
CreateItemOnObject("nw_it_medkit001", oPC, 2); //:: (2) Healer's Kit +1
|
||||
SendMessageToPC(oPC, "Sohei EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_SHAMAN)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
CreateItemOnObject("nw_wdbqs001", oPC); //:: Quarterstaff
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_it_medkit001", oPC, 2); //:: (2) Healer's Kits +1
|
||||
CreateItemOnObject("x1_wmgrenade006", oPC,5); //:: (5) Tanglefoot Bags
|
||||
SendMessageToPC(oPC, "Shaman EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_SAMURAI || iClass == CLASS_TYPE_CW_SAMURAI)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wswka001", oPC); //:: Katana
|
||||
CreateItemOnObject("nw_aarcl003", oPC); //:: Scale armor
|
||||
CreateItemOnObject("nw_wswss001", oPC); //:: Short Sword
|
||||
SendMessageToPC(oPC, "Samurai EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_FIGHTER || iClass == CLASS_TYPE_WARBLADE
|
||||
|| iClass == CLASS_TYPE_DUSKBLADE
|
||||
|| iClass == CLASS_TYPE_SOULBORN
|
||||
|| iClass == CLASS_TYPE_PSYWAR
|
||||
|| iClass == CLASS_TYPE_MARSHAL)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wswls001", oPC); //:: Longsword
|
||||
CreateItemOnObject("nw_aarcl011", oPC); //:: Banded Mail
|
||||
CreateItemOnObject("nw_ashlw001", oPC); //:: Large Shield
|
||||
CreateItemOnObject("nw_wswgs001", oPC); //:: Greatsword
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
SendMessageToPC(oPC, "Warrior EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_KNIGHT)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wswls001", oPC); //:: Longsword
|
||||
CreateItemOnObject("nw_aarcl011", oPC); //:: Banded Mail
|
||||
CreateItemOnObject("nw_ashlw001", oPC); //:: Large Shield
|
||||
SendMessageToPC(oPC, "Knight EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_MONK)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wspka001", oPC); //:: Kama
|
||||
CreateItemOnObject("nw_wthsh001", oPC, 25); //:: (25) Shuriken
|
||||
CreateItemOnObject("nw_mcloth018", oPC); //:: Robes of the Shining Hand +1
|
||||
CreateItemOnObject("nw_it_medkit001", oPC, 2); //:: (2) Healer's Kit +1
|
||||
SendMessageToPC(oPC, "Monk EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_PALADIN || iClass == CLASS_TYPE_CRUSADER)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wswls001", oPC); //:: Longsword
|
||||
CreateItemOnObject("nw_aarcl006", oPC); //:: Half Plate
|
||||
CreateItemOnObject("nw_ashlw001", oPC); //:: Large Shield
|
||||
CreateItemOnObject("nw_it_medkit001", oPC, 2); //:: (2) Healer's Kit +1
|
||||
CreateItemOnObject("x1_wmgrenade005", oPC,5); //:: (5) Vials of Holy Water
|
||||
SendMessageToPC(oPC, "Holy Warrior EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_SCOUT)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wbwsh001", oPC); //:: Short Bow
|
||||
CreateItemOnObject("nw_wamar001", oPC,25); //:: (25) Arrows
|
||||
CreateItemOnObject("nw_wamar001", oPC,25); //:: (25) Arrows
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
SendMessageToPC(oPC, "Scout EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_RANGER)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_aarcl002", oPC); //:: Studded Leather Armor
|
||||
CreateItemOnObject("nw_wbwln001", oPC); //:: Long bow
|
||||
CreateItemOnObject("nw_wamar001", oPC,25); //:: (25) Arrows
|
||||
CreateItemOnObject("nw_wswss001", oPC); //:: Short Sword
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
SendMessageToPC(oPC, "Ranger EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_HEALER)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_it_medkit001", oPC, 3); //:: (3) Healer's Kits +1
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
CreateItemOnObject("nw_wdbqs001", oPC); //:: Quarterstaff
|
||||
SendMessageToPC(oPC, "Healer EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_HEXBLADE)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade002", oPC,4); //:: (4) Alchemist's Fire
|
||||
CreateItemOnObject("nw_aarcl002", oPC); //:: Studded Leather Armor
|
||||
CreateItemOnObject("nw_wswsc001", oPC); //:: Scimitar
|
||||
SendMessageToPC(oPC, "Hexblade EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_BINDER)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade003", oPC, 5); //:: (5) Caltrops
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
SendMessageToPC(oPC, "Binder EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_WARLOCK || iClass == CLASS_TYPE_DRAGONFIRE_ADEPT)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade001", oPC, 5); //:: (5) Acid Flasks
|
||||
CreateItemOnObject("nw_aarcl002", oPC); //:: Studded Leather Armor
|
||||
CreateItemOnObject("nw_wblms001", oPC); //:: Morning Star
|
||||
SendMessageToPC(oPC, "Warlock EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_DRAGON_SHAMAN)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade007", oPC, 5); //:: (5) Thunderstones
|
||||
CreateItemOnObject("nw_ashsw001", oPC); //:: Small Shield
|
||||
CreateItemOnObject("nw_aarcl010", oPC); //:: Breastplate
|
||||
CreateItemOnObject("nw_wblms001", oPC); //:: Morning Star
|
||||
SendMessageToPC(oPC, "Dragonfire Shaman EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_WILDER)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade006", oPC, 3); //:: (3) Tanglefoot Bags
|
||||
CreateItemOnObject("nw_ashsw001", oPC); //:: Small Shield
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wblms001", oPC); //:: Morning Star
|
||||
SendMessageToPC(oPC, "Wilder EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_WARMAGE)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade002", oPC, 4); //:: (4) Alchemist's Fire
|
||||
CreateItemOnObject("nw_it_contain002", oPC); //:: Magic Pouch
|
||||
CreateItemOnObject("x1_it_sparscr103", oPC); //:: Scroll of Shield
|
||||
CreateItemOnObject("nw_it_sparscr202", oPC); //:: Scroll of Melf's Acid Arrow
|
||||
CreateItemOnObject("nw_ashsw001", oPC); //:: Small Shield
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wblms001", oPC); //:: Morning Star
|
||||
SendMessageToPC(oPC, "Warmage EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_INCARNATE)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade006", oPC, 3); //:: (3) Tanglefoot Bags
|
||||
CreateItemOnObject("nw_ashsw001", oPC); //:: Small Shield
|
||||
CreateItemOnObject("nw_aarcl004", oPC); //:: Chain Mail
|
||||
CreateItemOnObject("nw_wblms001", oPC); //:: Morning Star
|
||||
SendMessageToPC(oPC, "Incarnate EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_SOULKNIFE)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade003", oPC,3); //:: (3) Caltrops
|
||||
CreateItemOnObject("nw_ashlw001", oPC); //:: Large Shield
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
SendMessageToPC(oPC, "Soulknife EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_TRUENAMER)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade002", oPC,3); //:: (3) Alchemist's Fire
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
SendMessageToPC(oPC, "Truenamer EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_TOTEMIST)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade001", oPC,3); //:: (3) Acid Flasks
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
CreateItemOnObject("nw_ashsw001", oPC); //:: Small Shield
|
||||
SendMessageToPC(oPC, "Totemist EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_SWASHBUCKLER)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade003", oPC,3); //:: (3) Caltrops
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
CreateItemOnObject("nw_wswrp001", oPC); //:: Rapier
|
||||
SendMessageToPC(oPC, "Swashbuckler EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_SWORDSAGE)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade004", oPC,3); //:: (3) Choking Powder
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_wswls001", oPC); //:: Longsword
|
||||
SendMessageToPC(oPC, "Swordsage EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_ROGUE || iClass == CLASS_TYPE_BEGUILER
|
||||
|| iClass == CLASS_TYPE_PSYCHIC_ROGUE
|
||||
|| iClass == CLASS_TYPE_NINJA
|
||||
|| iClass == CLASS_TYPE_FACTOTUM)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade003", oPC, 5); //:: (5) Caltrops
|
||||
CreateItemOnObject("nw_aarcl001", oPC); //:: Leather Armor
|
||||
CreateItemOnObject("nw_it_picks001", oPC, 2); //:: (2) Lock Picks +1
|
||||
CreateItemOnObject("nw_it_trap001", oPC); //:: Minor Spike Trap Kit
|
||||
CreateItemOnObject("nw_wswss001", oPC); //:: Short Sword
|
||||
CreateItemOnObject("nw_wswdg001", oPC); //:: Dagger
|
||||
SendMessageToPC(oPC, "Rogue EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_DREAD_NECROMANCER)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("x1_wmgrenade004", oPC,3); //:: (3) Choking Powder
|
||||
CreateItemOnObject("nw_wblms001", oPC); //:: Morning Star
|
||||
CreateItemOnObject("nw_aarcl002", oPC); //:: Studded Leather Armor
|
||||
SendMessageToPC(oPC, "Dread Necromancer EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_PSION)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wdbqs001", oPC); //:: Quarterstaff
|
||||
CreateItemOnObject("nw_cloth005", oPC); //:: Wizard's Robe
|
||||
CreateItemOnObject("nw_it_contain002", oPC); //:: Magic Pouch
|
||||
SendMessageToPC(oPC, "Psion EQ");
|
||||
}
|
||||
|
||||
if(iClass == CLASS_TYPE_WIZARD || iClass == CLASS_TYPE_SORCERER || iClass == CLASS_TYPE_SHADOWCASTER)
|
||||
{
|
||||
CreateItemOnObject("nw_it_torch001", oPC, 2); //:: (2) Torches
|
||||
CreateItemOnObject("nw_it_mpotion020", oPC, 3); //:: (3) Potions of Cure Moderate Wounds
|
||||
CreateItemOnObject("nw_wdbqs001", oPC); //:: Quarterstaff
|
||||
CreateItemOnObject("nw_cloth005", oPC); //:: Wizard's Robe
|
||||
CreateItemOnObject("nw_it_contain002", oPC); //:: Magic Pouch
|
||||
CreateItemOnObject("x1_it_sparscr103", oPC); //:: Scroll of Shield
|
||||
CreateItemOnObject("nw_it_sparscr202", oPC); //:: Scroll of Melf's Acid Arrow
|
||||
CreateItemOnObject("nw_it_sparscr107", oPC); //:: Scroll of Charm Person
|
||||
CreateItemOnObject("nw_it_sparscr106", oPC); //:: Scroll of Identify
|
||||
SendMessageToPC(oPC, "Arcane EQ");
|
||||
}
|
||||
|
||||
//:: Give PC DMFI gear
|
||||
GivePCWands(oPC);
|
||||
|
||||
//:: Equip Armor
|
||||
DelayCommand(0.0f, ClearAllActions());
|
||||
DelayCommand(0.0f, ActionEquipMostEffectiveArmor());
|
||||
|
||||
}
|
||||
}
|
159
_module/nss/tar_lake_hb.nss
Normal file
159
_module/nss/tar_lake_hb.nss
Normal file
@@ -0,0 +1,159 @@
|
||||
//::////////////////////////////////////////////////////////////////////////////
|
||||
//::
|
||||
// tar_lake_hb.nss
|
||||
/*
|
||||
Just in case the players are dumb enough to jump into a lake of boiling tar.
|
||||
|
||||
"Should the PCs be inclined to dive into the tar, they suffer
|
||||
the following effects: 1/2 normal swim movement; 1d4 heat damage per
|
||||
round and zero visibility. The mephits, of course, suffer none of these
|
||||
effects. Magic, such as freedom of movement, water breathing, endure,
|
||||
resist, or protection from energy (fire) and true seeing can all help while
|
||||
within the tar."
|
||||
|
||||
*/
|
||||
//
|
||||
//::
|
||||
//::////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "prc_inc_spells"
|
||||
#include "prc_feat_const"
|
||||
#include "x0_i0_match"
|
||||
|
||||
|
||||
//:: 1d4 fire damage per round from the hot tar.
|
||||
void ApplyHeatEffect(object oCreature)
|
||||
{
|
||||
int iHeatDam = d4(1);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectDamage(iHeatDam, DAMAGE_TYPE_FIRE), oCreature, 6.0f);
|
||||
}
|
||||
|
||||
|
||||
//:: Can't breath in tar
|
||||
void ApplySuffocationEffect(object oCreature)
|
||||
{
|
||||
int iConstitution = GetAbilityScore(oCreature, ABILITY_CONSTITUTION);
|
||||
int iBreathRounds = iConstitution * 2;
|
||||
int iSuffocationDC = 10; // Starting suffocation DC
|
||||
|
||||
int iCurrentRound = GetLocalInt(oCreature, "SuffocationRound");
|
||||
|
||||
if (iCurrentRound <= iBreathRounds)
|
||||
{
|
||||
if (GetResRef(OBJECT_SELF) != "mepooze001" &&
|
||||
GetResRef(OBJECT_SELF) != "tarmephit001" &&
|
||||
!GetHasFeat(FEAT_WATER_BREATHING, oCreature) &&
|
||||
!GetHasFeat(FEAT_BREATHLESS, oCreature) &&
|
||||
!GetHasSpellEffect(SPELL_WATER_BREATHING, oCreature) &&
|
||||
(MyPRCGetRacialType(oCreature) != RACIAL_TYPE_UNDEAD) &&
|
||||
(MyPRCGetRacialType(oCreature) != RACIAL_TYPE_CONSTRUCT))
|
||||
{
|
||||
SendMessageToPC(oCreature, "You are struggling to breathe in the tar!");
|
||||
|
||||
if (d20() + GetFortitudeSavingThrow(oCreature) >= iSuffocationDC)
|
||||
{
|
||||
SendMessageToPC(oCreature, "You manage to hold your breath and avoid suffocation for now.");
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessageToPC(oCreature, "You are suffocating in the tar!");
|
||||
|
||||
if (iCurrentRound == 1)
|
||||
{
|
||||
AssignCommand(oCreature, ActionPlayAnimation(ANIMATION_LOOPING_SPASM, 0.5f, 6.0f));
|
||||
SetCurrentHitPoints(oCreature, 1);
|
||||
}
|
||||
else if (iCurrentRound == 2)
|
||||
{
|
||||
SetCurrentHitPoints(oCreature, 0);
|
||||
}
|
||||
else if (iCurrentRound == 3)
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_DEATH), oCreature);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectDeath(), oCreature);
|
||||
}
|
||||
|
||||
iCurrentRound++;
|
||||
}
|
||||
}
|
||||
|
||||
// Store the updated round counter back in the creature's local variables
|
||||
SetLocalInt(oCreature, "SuffocationRound", iCurrentRound);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//:: Tar slows creatures other than Tar Mephits to 1/2 speed
|
||||
//:: unless they are under the effect of Freedom of Movement
|
||||
void ApplySlowEffect(object oCreature)
|
||||
{
|
||||
if (GetResRef(OBJECT_SELF) != "mepooze001" &&
|
||||
GetResRef(OBJECT_SELF) != "tarmephit001" &&
|
||||
!GetHasSpellEffect(SPELL_FREEDOM_OF_MOVEMENT, oCreature) ||
|
||||
GetHasEffect(IMMUNITY_TYPE_MOVEMENT_SPEED_DECREASE, oCreature))
|
||||
{
|
||||
// Object has either Freedom of Movement spell effect or IMMUNITY_TYPE_MOVEMENT_SPEED_DECREASE effect
|
||||
SendMessageToPC(GetFirstPC(), "This object has Freedom of Movement or immunity to movement speed decrease!");
|
||||
}
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectMovementSpeedDecrease(50), oCreature, 6.0f);
|
||||
}
|
||||
|
||||
|
||||
//:: Can't see in tar without True Seeing or Blindsight
|
||||
void ApplySightEffect(object oCreature)
|
||||
{
|
||||
// Check if the PC has zero visibility
|
||||
if (GetResRef(OBJECT_SELF) != "mepooze001" &&
|
||||
GetResRef(OBJECT_SELF) != "tarmephit001" &&
|
||||
!GetHasSpellEffect(SPELL_TRUE_SEEING, oCreature) &&
|
||||
!GetHasFeat(FEAT_BLINDSIGHT_5_FT, oCreature) &&
|
||||
!GetHasFeat(FEAT_BLINDSIGHT_10_FT, oCreature) &&
|
||||
!GetHasFeat(FEAT_BLINDSIGHT_5_FEET, oCreature) &&
|
||||
!GetHasFeat(FEAT_BLINDSIGHT_10_FEET, oCreature) &&
|
||||
!GetHasFeat(FEAT_BLINDSIGHT_60_FEET, oCreature) &&
|
||||
!GetHasFeat(FEAT_PRESTIGE_BLINDSIGHT, oCreature))
|
||||
{
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectBlindness(), oCreature, 6.0f);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
object oArea = GetArea(OBJECT_SELF);
|
||||
object oCreature = GetFirstObjectInArea(oArea, OBJECT_TYPE_CREATURE);
|
||||
|
||||
string sResref = GetResRef(oCreature);
|
||||
|
||||
while (GetIsObjectValid(oCreature))
|
||||
{
|
||||
//:: Calculate the armor penalty
|
||||
int iArmorPenalty = 0;
|
||||
object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oCreature);
|
||||
if (GetIsObjectValid(oArmor))
|
||||
{
|
||||
iArmorPenalty = GetItemACValue(oArmor);
|
||||
}
|
||||
|
||||
//:: Calculate the DC for the Strength check
|
||||
int iStrengthDC = 15 + iArmorPenalty;
|
||||
|
||||
//:: Roll a Strength check against the DC
|
||||
if (GetResRef(OBJECT_SELF) != "mepooze001" &&
|
||||
GetResRef(OBJECT_SELF) != "tarmephit001" ||
|
||||
d20() + GetAbilityModifier(ABILITY_STRENGTH, oCreature) < iStrengthDC)
|
||||
{
|
||||
//:: Apply the other effects since the Strength check failed
|
||||
SendMessageToPC(oCreature, "You are floundering in the tar!");
|
||||
ApplySightEffect(oCreature);
|
||||
ApplySuffocationEffect(oCreature);
|
||||
}
|
||||
|
||||
//:: Tar is always hot & slowing
|
||||
ApplyHeatEffect(oCreature);
|
||||
ApplySlowEffect(oCreature);
|
||||
|
||||
oCreature = GetNextObjectInArea(oArea, OBJECT_TYPE_CREATURE);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user