You kind of have the gist of it...
The custom conversation system I designed sets variables on the PC to keep track of what conversation they are in (1), which section of the conversation they are in (2), and checks each starting conditional for that section (3), and then figures out what to do based upon which line the PC selects (4), and all of that comes together in the 2 includes, the other 4 scripts are Tmplates for setting up the conversation # / section # / checking Starting Conditionals / and last & most important performing functions based upon what line the PC selects..
If you get the gist of the system you will see how easy it is to integrate 30 + conversations into these very simple script routines.. (Simple but brilliant I might add) Though, dont' get me wrong, it may be easy, but it will take you a long time to integrate say, 20 big conversations, especially if you are talking like forge and other nasty conversations... (It took me over a week! to integrate my main 20+ conversations)
The benefit of the system for me was, taking 2100+ Scripts and reducing them down to just a mere 428!
(Mind you, I could have wittled it down to just 200 scripts if I would have put the forge system in the same include as well)
One last thing you should definitely note, if the main include "gen_cs_act_inc" becomes too long an hard to work with, especially if you have too many includes attached to it, then don't be afraid to take this custom template system and use it for MORE / similar systems, just change the names of script and viola.
I had to do this because my forge has 4 major conversations, and I didn't want to put that with my other main convesations, because the scripting for the forge is HUGE! To give you an idea of what I'm talking about here, take a look at this.. (And that's not even counting the 10++ includes attached to it, lulz!)
(NOTE: This script system was designed BEFORE I made the custom integrated conversation system above)
(This script uses sections #s followed by Covnersation Numbers, instead of the reverse, which is better!)
-----------------------------------
// gen_forge2_mods
//////////////////////////////////////////////////////////////////////////////
// Created By: Genisys / Guile
// Created On: 10/29/2011
// Contact At: galefer003@hotmail.com
/////////////////////////////////////////////////////////////////////////////
/*
This is the second revision of the Genisys Forge, this is the main
include which will handles setting everything in the forge system, including
the Item Property Removal System, and The Item Changing Forge as well.
Copy the entire line for for debugging any part of this include...
SendMessageToPC(oPC, "This Message"); // (For Debugging)
*/
/////////////////////////////////////////////////////////////////////////////
//Required Includes (DO NOT TOUCH!)
//Strictly for the Omega Pool Only... (Note this has all other includes!)
#include "omega_pool_inc"
/////////////////////////////////////////////////////////////////////////////
//Define Prototype
void SET_LINE_OPTIONS(object oPC, int nLine)
{
//Declare All Major Variables Used
int nSec = GetLocalInt(oPC, "gf_sec");
int nConv = GetLocalInt(oPC, "CONV_NUM");
int nProp = GetLocalInt(oPC, "PROPERTY_TYPE");
object oItem, oForge, oSlot, oAnvil;
string sMsg, sColor, sFinal;
int nAdj;
//==============================================================================
// Strictly for Feats Only (as the code is far too long for this include!)
if(nSec >= 13 && nSec <= 23)
{
CheckSection(oPC, nSec, nLine);
}
if(nSec == 36)
{
CheckSection(oPC, nSec, nLine);
}
//=============================================================================
switch(nSec){ //Main Switch (The entire system works off sections)
//=============================================================================
case 0: //Section 0 (First section in EVERY Conversation)
{
switch(nConv) //Which Convesation are we in?
{
case 0://The Genisys Forge Conversation //---------------------
{
switch(nLine)
{
case 1: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_RIGHTHAND);
oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 2: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_LEFTHAND);
oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 3: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_ARROWS);
oItem = GetItemInSlot(INVENTORY_SLOT_ARROWS, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 4: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_BOLTS);
oItem = GetItemInSlot(INVENTORY_SLOT_BOLTS, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 5: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_BULLETS);
oItem = GetItemInSlot(INVENTORY_SLOT_BULLETS, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 6: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_ARMS);
oItem = GetItemInSlot(INVENTORY_SLOT_ARMS, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 7: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_NECK);
oItem = GetItemInSlot(INVENTORY_SLOT_NECK, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 8: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_CHEST);
oItem = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 9: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_BELT);
oItem = GetItemInSlot(INVENTORY_SLOT_BELT, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 10: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_BOOTS);
oItem = GetItemInSlot(INVENTORY_SLOT_BOOTS, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 11: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_ARMS);
oItem = GetItemInSlot(INVENTORY_SLOT_ARMS, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 12: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_CLOAK);
oItem = GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 13: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_HEAD);
oItem = GetItemInSlot(INVENTORY_SLOT_HEAD, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 14: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_LEFTRING);
oItem = GetItemInSlot(INVENTORY_SLOT_LEFTRING, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 15: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_RIGHTRING);
oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTRING, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 16: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_LEFTHAND);
oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
case 17: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_LEFTHAND);
oItem = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
SetLocalInt(oItem, "FORGING", TRUE);} break;
} //END switch(nLine)
}break;
//-------------------------------------------------------------------
case 1:// Item Property Removal System Only
{
switch(nLine) //Which Item the PC Is Working With
{
case 1: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_NECK);} break;
case 2: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_CHEST);} break;
case 3: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_BELT);} break;
case 4: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_BOOTS);} break;
case 5: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_ARMS);} break;
case 6: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_CLOAK);} break;
case 7: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_HEAD);} break;
case 8: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_LEFTRING);} break;
case 9: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_RIGHTRING);} break;
case 10: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_LEFTHAND);} break;
case 11: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_RIGHTHAND);} break;
case 12: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_ARROWS);} break;
case 13: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_BOLTS);} break;
case 14: { SetLocalInt(oPC, "ITEM_SLOT", INVENTORY_SLOT_BULLETS);} break;
} //END switch(nLine)
}break;
//-------------------------------------------------------------------
//====================================================================
} //END switch(nConv)
}break; //END case 0: for switch(nSec)
//==============================================================================
case 1: //----------------------------------
{
switch(nConv)
{
case 0://Forge Only
{
switch(nLine)
{
case 1: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ATTACK_BONUS); } break;
case 2: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_DAMAGE_BONUS); } break;
case 3: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ENHANCEMENT_BONUS); } break;
case 4: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE); } break;
case 5: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE); } break;
case 6: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_HOLY_AVENGER); } break;
case 7: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_KEEN); } break;
case 8: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_MASSIVE_CRITICALS); } break;
case 9: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_MIGHTY); } break;
case 10: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ONHITCASTSPELL); } break;
case 11: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ON_HIT_PROPERTIES); } break;
case 12: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_REGENERATION_VAMPIRIC); } break;
case 13: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_VISUALEFFECT); } break;
case 14: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ABILITY_BONUS); } break;
case 15: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_AC_BONUS); } break;
case 16: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N); } break;
case 17: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_DAMAGE_REDUCTION); } break;
case 18: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_DAMAGE_RESISTANCE); } break;
case 19: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_BONUS_FEAT); } break;
case 20: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_REGENERATION); } break;
case 21: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_SAVING_THROW_BONUS);
SetLocalInt(oPC, "option_a", 1); } break;
case 22: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_SAVING_THROW_BONUS);
SetLocalInt(oPC, "option_a", 2); } break;
case 23: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_SAVING_THROW_BONUS);
SetLocalInt(oPC, "option_a", 3); } break;
case 24: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_SAVING_THROW_BONUS);
SetLocalInt(oPC, "option_a", 4); } break;
case 25: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_SKILL_BONUS); } break;
case 26: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_SPELL_RESISTANCE); } break;
}//END switch(nLine)
}break;
//-------------------------------------------------------------------
case 1://Item Property Removal System Only
{
switch(nLine)
{
//Set the Property Type they have selected (for later use)
case 1: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ABILITY_BONUS); } break;
case 2: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_AC_BONUS); } break;
case 3: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ARCANE_SPELL_FAILURE); } break;
case 4: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ATTACK_BONUS); } break;
case 5: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_BASE_ITEM_WEIGHT_REDUCTION); } break;
case 6: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_BONUS_FEAT); } break;
case 7: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N); } break;
case 8: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_CAST_SPELL); } break;
case 9: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_DAMAGE_BONUS); } break;
case 10: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_DAMAGE_REDUCTION); } break;
case 11: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_DAMAGE_RESISTANCE); } break;
case 12: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE); } break;
case 13: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ENHANCEMENT_BONUS); } break;
case 14: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE); } break;
case 15: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE); } break;
case 16: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_FREEDOM_OF_MOVEMENT); } break;
case 17: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_HASTE); } break;
case 18: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_HOLY_AVENGER); } break;
case 19: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS); } break;
} //END switch(nLine)
}break;
//------------------------------------------------------------------
case 2://Item Changing Forge
{
//SendMessageToPC(oPC, "Weapon Type Set"); // (For Debugging)
SetLocalInt(GetPCSpeaker(), "WEAPON_CHANGE_TYPE", nLine);
//SendMessageToPC(oPC, "Wpn Line Set");
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool Forge
{
switch(nLine)
{
case 1: { SetLocalInt(oPC, "SpellLevel", 0); } break;
case 2: { SetLocalInt(oPC, "SpellLevel", 1); } break;
case 3: { SetLocalInt(oPC, "SpellLevel", 2); } break;
case 4: { SetLocalInt(oPC, "SpellLevel", 3); } break;
case 5: { SetLocalInt(oPC, "SpellLevel", 4); } break;
case 6: { SetLocalInt(oPC, "SpellLevel", 5); } break;
case 7: { SetLocalInt(oPC, "SpellLevel", 6); } break;
case 8: { SetLocalInt(oPC, "SpellLevel", 7); } break;
case 9: { SetLocalInt(oPC, "SpellLevel",
; } break;
case 10: { SetLocalInt(oPC, "SpellLevel", 9); } break;
case 11: { SetLocalInt(oPC, "SpellLevel", 10); } break;
} //END switch(nLine)
}break;
//------------------------------------------------------------------
//====================================================================
} //END switch(nConv)
}break; //END case 1: for switch(nSec)
//==============================================================================
case 2: //-------------------------------
{
switch(nConv)
{
case 0://Forge Only
{
switch(nLine)
{
case 1: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE); } break;
case 2: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_SPECIFIC_SPELL); } break;
case 3: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_SPELLS_BY_LEVEL); } break;
case 4: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_SPELL_SCHOOL); } break;
case 5: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS); } break;
case 6: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ARCANE_SPELL_FAILURE); } break;
case 7: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_BASE_ITEM_WEIGHT_REDUCTION); } break;
case 8: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_FREEDOM_OF_MOVEMENT); } break;
case 9: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_HASTE); } break;
case 10: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMPROVED_EVASION); } break;
case 11: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_LIGHT); SetLocalInt(oPC, "option_a", 1); } break;
case 12: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_LIGHT); SetLocalInt(oPC, "option_a", 2); } break;
case 13: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_LIGHT); SetLocalInt(oPC, "option_a", 3); } break;
case 14: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_LIGHT); SetLocalInt(oPC, "option_a", 4); } break;
case 15: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_LIGHT); SetLocalInt(oPC, "option_a", 5); } break;
case 16: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_LIGHT); SetLocalInt(oPC, "option_a", 6); } break;
case 17: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_LIGHT); SetLocalInt(oPC, "option_a", 7); } break;
case 18: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_TRUE_SEEING); } break;
} //END switch(nLine)
}break;
//-------------------------------------------------------------------
case 1://Item Property Removal System Only
{
switch(nLine)
{
case 1: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_SPECIFIC_SPELL); } break;
case 2: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_SPELL_SCHOOL); } break;
case 3: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMMUNITY_SPELLS_BY_LEVEL); } break;
case 4: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_IMPROVED_EVASION); } break;
case 5: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_KEEN); } break;
case 6: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_LIGHT); } break;
case 7: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_MASSIVE_CRITICALS); } break;
case 8: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_MIGHTY); } break;
case 9: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ON_HIT_PROPERTIES); } break;
case 10: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_ONHITCASTSPELL); } break;
case 11: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_USE_LIMITATION_class); } break;
case 12: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_REGENERATION); } break;
case 13: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_SAVING_THROW_BONUS); } break;
case 14: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_SKILL_BONUS); } break;
case 15: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_SPELL_RESISTANCE); } break;
case 16: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_TRUE_SEEING); } break;
case 17: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_REGENERATION_VAMPIRIC); } break;
case 18: { SetLocalInt(oPC, "PROPERTY_TYPE", ITEM_PROPERTY_VISUALEFFECT); } break;
} //END switch(nLine)
}break;
//------------------------------------------------------------------
case 2://Item Changing Forge
{
SendMessageToPC(oPC, "Other Items Set");
switch(nLine)
{
case 1: { SetLocalInt(GetPCSpeaker(), "WEAPON_CHANGE_TYPE", 32); } break;
case 2: { SetLocalInt(GetPCSpeaker(), "WEAPON_CHANGE_TYPE", 33); } break;
case 3: { SetLocalInt(GetPCSpeaker(), "WEAPON_CHANGE_TYPE", 34); } break;
case 4: { SetLocalInt(GetPCSpeaker(), "WEAPON_CHANGE_TYPE", 35); } break;
case 5: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 0); } break;
case 6: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 1); } break;
case 7: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 2); } break;
case 8: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 3); } break;
case 9: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 4); } break;
case 10: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 5); } break;
case 11: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 6); } break;
case 12: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 7); } break;
case 13: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE",
; } break;
case 14: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 9); } break;
case 15: { SetLocalInt(GetPCSpeaker(), "ARMOR_CHANGE_TYPE", 10); } break;
case 16: { SetLocalInt(GetPCSpeaker(), "SHIELD_CHANGE_TYPE", 0); } break;
case 17: { SetLocalInt(GetPCSpeaker(), "SHIELD_CHANGE_TYPE", 1); } break;
case 18: { SetLocalInt(GetPCSpeaker(), "SHIELD_CHANGE_TYPE", 2); } break;
}
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC ,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 2: for switch(nSec)
//==============================================================================
case 3: //------------------------------
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
}break;
//-------------------------------------------------------------------
case 1://Item Property Removal System Only
{
SetLocalInt(oPC, "option_b", nLine);
}break;
//-------------------------------------------------------------------
case 2://Item Changing Forge
{
object oForge = GetNearestObjectByTag("gen_wpn_forge", oPC);
int nChange;
object oWpn;
string sWhich;
sWhich = "WEAPON_CHANGE_TYPE";
nChange = GetLocalInt(oPC, sWhich);
oWpn = GetFirstItemInInventory(oForge);
while(GetIsObjectValid(oWpn)) {
//Alter the torso of the armor only..
ChangeWeapon(oWpn, oForge, nChange, oPC);
break; //Do ONE TIME!
oWpn = GetNextItemInInventory(oForge); }
//Make the PC Pay for the change (take gold)
int nGP = GetLocalInt(oPC, "WC_GOLD_COST");
TakeGoldFromCreature(nGP, oPC, TRUE);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 3: for switch(nSec)
//==============================================================================
case 4:
{
switch(nConv)
{
case 0://Forge Only
{
nAdj = 24 + nLine;
SetLocalInt(oPC, "option_a", nAdj);
}break;
//-------------------------------------------------------------------
case 2://Item Changing Forge
{
object oForge = GetNearestObjectByTag("gen_wpn_forge", oPC);
int nChange;
object oWpn;
string sWhich;
sWhich = "ARMOR_CHANGE_TYPE";
nChange = GetLocalInt(oPC, sWhich);
oWpn = GetFirstItemInInventory(oForge);
while(GetIsObjectValid(oWpn)){
//Alter the torso of the armor only..
ChangeArmor(oWpn, oForge, nChange, oPC);
break; //Do ONE TIME!
oWpn = GetNextItemInInventory(oForge); }
//Make the PC Pay for the change (take gold)
int nGP = GetLocalInt(oPC, "WC_GOLD_COST");
TakeGoldFromCreature(nGP, oPC, TRUE);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
int nMod = 20 + nLine;
SetLocalInt(oPC,"MODCODE", nMod);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 4: for switch(nSec)
//==============================================================================
case 5:
{
switch(nConv)
{
case 0://Forge Only
{
nAdj = 48 + nLine;
SetLocalInt(oPC, "option_a", nAdj);
}break;
//-------------------------------------------------------------------
case 2://Item Changing Forge (Last Section)
{
object oForge = GetNearestObjectByTag("gen_wpn_forge", oPC);
int nChange;
object oWpn;
string sWhich;
sWhich = "SHIELD_CHANGE_TYPE";
nChange = GetLocalInt(oPC, sWhich);
oWpn = GetFirstItemInInventory(oForge);
while(GetIsObjectValid(oWpn)){
//Alter the torso of the armor only..
ChangeShield(oWpn, oForge, nChange, oPC);
break; //Do ONE TIME!
oWpn = GetNextItemInInventory(oForge); }
//Make the PC Pay for the change (take gold)
int nGP = GetLocalInt(oPC, "WC_GOLD_COST");
TakeGoldFromCreature(nGP, oPC, TRUE);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 5: for switch(nSec)
//==============================================================================
case 6:
{
switch(nConv)
{
case 0://Forge Only
{
nAdj = 72 + nLine;
SetLocalInt(oPC, "option_a", nAdj);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
int nMod = 20 + nLine;
SetLocalInt(oPC,"MODCODE", nMod);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 6: for switch(nSec)
//==============================================================================
case 7: // (Sector 7 is Re-Used throughout the Forge to set the int ("option_a", nLine)
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
//For Bonus Spell Slots Only
if(nProp == ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N)
{
switch(nLine)
{
case 1: { SetLocalInt(oPC, "PROPERTY_class", IP_CONST_class_BARD); } break;
case 2: { SetLocalInt(oPC, "PROPERTY_class", IP_CONST_class_CLERIC); } break;
case 3: { SetLocalInt(oPC, "PROPERTY_class", IP_CONST_class_DRUID); } break;
case 4: { SetLocalInt(oPC, "PROPERTY_class", IP_CONST_class_PALADIN); } break;
case 5: { SetLocalInt(oPC, "PROPERTY_class", IP_CONST_class_RANGER); } break;
case 6: { SetLocalInt(oPC, "PROPERTY_class", IP_CONST_class_SORCERER); } break;
case 7: { SetLocalInt(oPC, "PROPERTY_class", IP_CONST_class_WIZARD); } break;
}
}
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 6: for switch(nSec)
//==============================================================================
case 8:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_b", nLine);
//If we are looking at Bonus Feats..
if(nProp == ITEM_PROPERTY_BONUS_FEAT)
{
SetLocalInt(oPC, "WPN_FEAT", nLine);
}
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
int nMod = 20 + nLine;
SetLocalInt(oPC,"MODCODE", nMod);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 6: for switch(nSec)
//==============================================================================
case 9:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_b", nLine);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 9: for switch(nSec)
//==============================================================================
case 10:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_b", nLine); // Immunity to Spells by Level (option
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 10: for switch(nSec)
//==============================================================================
case 11:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
int nMod = 20 + nLine;
SetLocalInt(oPC,"MODCODE", nMod);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 11: for switch(nSec)
//==============================================================================
case 12:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_b", nLine);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 12: for switch(nSec)
//==============================================================================
case 13: // Bonus Feats...
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 13: for switch(nSec)
//==============================================================================
case 14:
{
switch(nConv)
{
case 0://Forge Only
{
nAdj = 24 + nLine;
SetLocalInt(oPC, "option_a", nAdj);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 14: for switch(nSec)
//==============================================================================
case 15:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
switch(nLine)
{
case 6: { SetLocalInt(oPC, "EDR_TYPE", 1); } break;
case 7: { SetLocalInt(oPC, "EDR_TYPE", 2); } break;
case 8: { SetLocalInt(oPC, "EDR_TYPE", 3); } break;
case 9: { SetLocalInt(oPC, "EDR_TYPE", 4); } break;
case 10: { SetLocalInt(oPC, "EDR_TYPE", 5); } break;
}
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 15: for switch(nSec)
//==============================================================================
case 16:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
switch(nLine)
{
case 14: { SetLocalInt(oPC, "SPELL_FOCUS", 1); } break; ///Epic Spell Focus
case 16: { SetLocalInt(oPC, "SPELL_FOCUS", 2); } break; ///Greater
case 21: { SetLocalInt(oPC, "SPELL_FOCUS", 3); } break; ///Normal
}
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool
{
SetLocalInt(oPC,"MODCODE", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 16: for switch(nSec)
//==============================================================================
case 17:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_b", nAdj);
}break;
//-------------------------------------------------------------------
case 3://The Omega Pool (Last Section)
{
switch(nLine) //Uses Per Day
{
case 1: { SetLocalInt(oPC,"Mods",IP_CONST_CASTSPELL_NUMUSES_1_USE_PER_DAY);} break;
case 2: { SetLocalInt(oPC,"Mods",IP_CONST_CASTSPELL_NUMUSES_2_USES_PER_DAY);} break;
case 3: { SetLocalInt(oPC,"Mods",IP_CONST_CASTSPELL_NUMUSES_3_USES_PER_DAY);} break;
case 4: { SetLocalInt(oPC,"Mods",IP_CONST_CASTSPELL_NUMUSES_4_USES_PER_DAY);} break;
case 5: { SetLocalInt(oPC,"Mods",IP_CONST_CASTSPELL_NUMUSES_5_USES_PER_DAY);} break;
case 6: { SetLocalInt(oPC,"Mods",IP_CONST_CASTSPELL_NUMUSES_UNLIMITED_USE);} break;
} //END switch(nLine)
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 17: for switch(nSec)
//==============================================================================
case 18:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 18: for switch(nSec)
//==============================================================================
// Sections 19 - 23 are used in the first statement of this script!
//==============================================================================
case 24:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 25:
{
switch(nConv)
{
case 0://Forge Only
{
nAdj = 24 + nLine;
SetLocalInt(oPC, "option_a", nAdj);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 26:
{
switch(nConv)
{
case 0://Forge Only
{
nAdj = 48 + nLine;
SetLocalInt(oPC, "option_a", nAdj);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 27:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 28:
{
switch(nConv)
{
case 0://Forge Only
{
switch(nLine)
{
case 1: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_ACID); } break;
case 2: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_BLUDGEONING); } break;
case 3: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_COLD); } break;
case 4: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_DIVINE); } break;
case 5: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_ELECTRICAL); } break;
case 6: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_FIRE); } break;
case 7: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_MAGICAL); } break;
case 8: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_NEGATIVE); } break;
case 9: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_PIERCING); } break;
case 10: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_POSITIVE); } break;
case 11: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_SLASHING); } break;
case 12: { SetLocalInt(oPC, "DAMAGE_TYPE", IP_CONST_DAMAGETYPE_SONIC); } break;
}
SetLocalInt(oPC, "option_a", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 29:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_b", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 30:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 31:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine); //Massive Criticals Option A (checked)
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 32:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 33:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_a", nLine); // SR = Option A (dbl checked)
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 34:
{
switch(nConv)
{
case 0://Forge Only
{
SetLocalInt(oPC, "option_b", nLine);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
case 35:
{
switch(nConv)
{
case 0://Forge Only
{
nAdj = 20 + nLine;
SetLocalInt(oPC, "option_b", nAdj);
}break;
//====================================================================
} //END switch(nConv)
}break; //END case 19: for switch(nSec)
//==============================================================================
//For Weapon Feats (Type of Weapon)
case 36:
{
SetLocalInt(oPC, "option_a", nLine);
} break;
//=============================================================================
//=============================================================================
} //END switch(nSec)
//=============================================================================
} //END PROTOTYPE
////////////////////////////////////////////////////////////////////////////////
Modifié par _Guile, 20 mai 2012 - 03:20 .