Changed folder name.
Changed folder name.
This commit is contained in:
330
_module/nss/cheat_config.nss
Normal file
330
_module/nss/cheat_config.nss
Normal file
@@ -0,0 +1,330 @@
|
||||
///////////cheat_config/////////////
|
||||
////////////////////////////////////
|
||||
//Created by Genisys / Guile 5/2/08
|
||||
////////////////////////////////////
|
||||
|
||||
//Do not delete this include!!
|
||||
#include "setxp_inc"
|
||||
|
||||
/////////////////////////OPTIONS SETTINGS//////////////////////////////////////
|
||||
//(All Currently Disabled!)
|
||||
|
||||
// 0 = Turn Off This Option
|
||||
// 1 = Turn On This Option
|
||||
|
||||
//This Switch will disallow the feats Devastating Criticals on any weapon!
|
||||
const int DissallowDevastatingCritical = 0; // 0 = Off / 1 = On
|
||||
|
||||
//This Switch will disallow the feat Epic Dodge on your module.
|
||||
const int DissallowEpicDodge = 0; // 0 = Off / 1 = On
|
||||
|
||||
//This Switch will Dissallow the feat Hide In Plain Sight on your module.
|
||||
//Note this will prevent Player From Selecting the Shadow Dancer Class!
|
||||
const int DissallowHideInPlainSight = 0; // 0 = Off / 1 = On
|
||||
|
||||
//////////////////Punishment Settings////////////////////////////
|
||||
|
||||
//Note all players playing a completely illegal character are Banned!!!
|
||||
//Banned but they don't lose anything(just in case a mistake was made!)
|
||||
//This can be reversed, see the "oncliententer" script. (Banned Token)
|
||||
|
||||
//If set to 1 the PC will lose all items & gold when punished
|
||||
const int PunishmentA = 0; // 0 = Off / 1 = On
|
||||
|
||||
//If the int below is set to 1, the PC will be teleported to prison
|
||||
//You must place a new waypoint in your module and give it the tagname "prison"
|
||||
const int PunishmentB = 0; // 0 = Off / 1 = On
|
||||
|
||||
//If the int below is set to 1, the PC will be releveled till they lose
|
||||
//the above feats(see above settings). (Also see PunishmentE below!)
|
||||
const int PunishmentC = 0; // 0 = Off / 1 = On
|
||||
|
||||
//If the int below is set to 1, the player found with the above feats will not
|
||||
//be allowed to play that character on the server any more.(Character Banned)
|
||||
//(This can be reversed, see the OnClientEnter script.) (Player not Banned)
|
||||
const int PunishmentD = 0; // 0 = Off / 1 = On
|
||||
|
||||
//If the int below is set to 1 the player will lose ALL XP Permanently!
|
||||
//Do not use this with PunishmentC set to 1 !!!(Use this or C not both!)
|
||||
const int PunishmentE = 0; // 0 = Off / 1 = On
|
||||
|
||||
//////////////////////////SETTINGS OPTIONS END/////////////////////////////////
|
||||
|
||||
|
||||
//////////////DON'T TOUCH ANYTHING BELOW THIS LINE!!!///////////////
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///Prototypes Defined:
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
const string cMsg = "Your character was scanned and found legal, thank you.";
|
||||
|
||||
//////////////////////////////////////////
|
||||
|
||||
int HasDevestatingCritical(object oPC)
|
||||
{
|
||||
int i = 495;
|
||||
int nHas = FALSE;
|
||||
//495-532 Are constants for devestating criticals
|
||||
while(i <= 532)
|
||||
{
|
||||
if(GetHasFeat(i, oPC))
|
||||
{
|
||||
//If the PC has one of the Devastating Critical feats...
|
||||
nHas = TRUE;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
//Dev crit on Dwarven Waraxe. (Seperate Check Required)
|
||||
if(GetHasFeat(955, oPC))
|
||||
{
|
||||
//If they have this Devastating Critical feat...
|
||||
nHas = TRUE;
|
||||
}
|
||||
|
||||
return nHas;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////
|
||||
|
||||
void BannPC(object oTarget)
|
||||
{
|
||||
string pBad;
|
||||
pBad = " ";
|
||||
pBad += GetName(oTarget);
|
||||
pBad += "w/ Player ID: ";
|
||||
pBad += GetPCPlayerName(oTarget);
|
||||
pBad += "/";
|
||||
pBad += GetPCIPAddress(oTarget);
|
||||
pBad += "/";
|
||||
pBad += GetPCPublicCDKey(oTarget);
|
||||
pBad += " ";
|
||||
pBad += "Might be playing an illegal character";
|
||||
|
||||
string sMzg;
|
||||
sMzg = "You are playing an illegal character!";
|
||||
sMzg += "Return with a legal character or you will be banned!!";
|
||||
|
||||
CreateItemOnObject("banned", oTarget);
|
||||
SendMessageToPC(oTarget, sMzg);
|
||||
SendMessageToAllDMs(pBad);
|
||||
PrintString(pBad);
|
||||
DelayCommand(5.0, BootPC(oTarget));
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////
|
||||
|
||||
void DoLowLevelCheck(object oPC)
|
||||
{
|
||||
if(GetHitDice(oPC)<21)
|
||||
{
|
||||
if(GetHasFeat(FEAT_EPIC_ARMOR_SKIN, oPC)){BannPC(oPC);PrintString("1");}
|
||||
if(GetHasFeat(FEAT_EPIC_AUTOMATIC_QUICKEN_1, oPC)){BannPC(oPC);PrintString("2");}
|
||||
if(GetHasFeat(FEAT_EPIC_AUTOMATIC_QUICKEN_2, oPC)){BannPC(oPC);PrintString("3");}
|
||||
if(GetHasFeat(FEAT_EPIC_AUTOMATIC_QUICKEN_3, oPC)){BannPC(oPC);PrintString("4");}
|
||||
if(GetHasFeat(FEAT_EPIC_AUTOMATIC_STILL_SPELL_3, oPC)){BannPC(oPC);PrintString("5");}
|
||||
if(GetHasFeat(FEAT_EPIC_DAMAGE_REDUCTION_3, oPC)){BannPC(oPC);PrintString("6");}
|
||||
if(GetHasFeat(FEAT_EPIC_DAMAGE_REDUCTION_6, oPC)){BannPC(oPC);PrintString("7");}
|
||||
if(GetHasFeat(FEAT_EPIC_DAMAGE_REDUCTION_9, oPC)){BannPC(oPC);PrintString("8");}
|
||||
if(GetHasFeat(FEAT_EPIC_DODGE, oPC)){BannPC(oPC);PrintString("9");}
|
||||
if(GetHasFeat(FEAT_EPIC_ENERGY_RESISTANCE_ACID_1, oPC)){BannPC(oPC);PrintString("10");}
|
||||
if(GetHasFeat(FEAT_EPIC_ENERGY_RESISTANCE_ACID_10, oPC)){BannPC(oPC);PrintString("11");}
|
||||
if(GetHasFeat(FEAT_EPIC_ENERGY_RESISTANCE_ACID_2, oPC)){BannPC(oPC);PrintString("12");}
|
||||
if(GetHasFeat(FEAT_EPIC_ENERGY_RESISTANCE_ACID_9, oPC)){BannPC(oPC);PrintString("13");}
|
||||
if(GetHasFeat(FEAT_EPIC_ENERGY_RESISTANCE_COLD_1, oPC)){BannPC(oPC);PrintString("14");}
|
||||
if(GetHasFeat(FEAT_EPIC_ENERGY_RESISTANCE_COLD_10, oPC)){BannPC(oPC);PrintString("15");}
|
||||
if(GetHasFeat(FEAT_EPIC_ENERGY_RESISTANCE_COLD_2, oPC)){BannPC(oPC);PrintString("16");}
|
||||
if(GetHasFeat(FEAT_EPIC_ENERGY_RESISTANCE_COLD_4, oPC)){BannPC(oPC);PrintString("17");}
|
||||
if(GetHasFeat(FEAT_EPIC_ENERGY_RESISTANCE_COLD_5, oPC)){BannPC(oPC);PrintString("18");}
|
||||
if(GetHasFeat(FEAT_EPIC_FORTITUDE, oPC)){BannPC(oPC);PrintString("19");}
|
||||
if(GetHasFeat(FEAT_EPIC_GREAT_SMITING_10, oPC)){BannPC(oPC);PrintString("20");}
|
||||
if(GetHasFeat(FEAT_EPIC_GREAT_SMITING_9, oPC)){BannPC(oPC);PrintString("21");}
|
||||
if(GetHasFeat(FEAT_EPIC_IMPROVED_COMBAT_CASTING, oPC)){BannPC(oPC);PrintString("22");}
|
||||
if(GetHasFeat(FEAT_EPIC_IMPROVED_KI_STRIKE_5, oPC)){BannPC(oPC);PrintString("23");}
|
||||
if(GetHasFeat(FEAT_EPIC_IMPROVED_SNEAK_ATTACK_10, oPC)){BannPC(oPC);PrintString("24");}
|
||||
if(GetHasFeat(FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_10, oPC)){BannPC(oPC);PrintString("25");}
|
||||
if(GetHasFeat(FEAT_EPIC_IMPROVED_STUNNING_FIST_10, oPC)){BannPC(oPC);PrintString("26");}
|
||||
if(GetHasFeat(FEAT_EPIC_PROWESS, oPC)){BannPC(oPC);PrintString("27");}
|
||||
if(GetHasFeat(FEAT_EPIC_SELF_CONCEALMENT_50, oPC)){BannPC(oPC);PrintString("28");}
|
||||
if(GetHasFeat(FEAT_EPIC_SPELL_FOCUS_EVOCATION, oPC)){BannPC(oPC);PrintString("29");}
|
||||
if(GetHasFeat(FEAT_EPIC_SPELL_PENETRATION, oPC)){BannPC(oPC);PrintString("30");}
|
||||
if(GetHasFeat(FEAT_EPIC_WEAPON_SPECIALIZATION_SCIMITAR, oPC)){BannPC(oPC);PrintString("31");}
|
||||
if(GetHasFeat(FEAT_EPIC_WEAPON_SPECIALIZATION_RAPIER, oPC)){BannPC(oPC);PrintString("32");}
|
||||
if(GetHasFeat(FEAT_EPIC_OVERWHELMING_CRITICAL_RAPIER, oPC)){BannPC(oPC);PrintString("33");}
|
||||
if(GetHasFeat(FEAT_EPIC_OVERWHELMING_CRITICAL_SCIMITAR, oPC)){BannPC(oPC);PrintString("34");}
|
||||
if(GetHasFeat(FEAT_EPIC_OVERWHELMING_CRITICAL_KAMA, oPC)){BannPC(oPC);PrintString("35");}
|
||||
if(GetHasFeat(FEAT_EPIC_OVERWHELMING_CRITICAL_LONGBOW, oPC)){BannPC(oPC);PrintString("36");}
|
||||
if(GetHasFeat(FEAT_EPIC_OVERWHELMING_CRITICAL_LONGSWORD, oPC)){BannPC(oPC);PrintString("37");}
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////
|
||||
|
||||
void PunishPC(object oPC)
|
||||
{
|
||||
//If the above int Punishment A is set to 1 they lose all items.
|
||||
if(PunishmentA == 1)
|
||||
{
|
||||
object oItem;
|
||||
oItem = GetFirstItemInInventory(oPC);
|
||||
|
||||
while (GetIsObjectValid(oItem))
|
||||
{
|
||||
if (GetPlotFlag(oItem))
|
||||
SetPlotFlag(oItem, FALSE);
|
||||
|
||||
DestroyObject(oItem);
|
||||
|
||||
oItem = GetNextItemInInventory(oPC);
|
||||
}
|
||||
|
||||
int nInt;
|
||||
for (nInt=0; nInt<NUM_INVENTORY_SLOTS; nInt++)
|
||||
{
|
||||
oItem = GetItemInSlot(nInt, oPC);
|
||||
|
||||
if (GetPlotFlag(oItem))
|
||||
SetPlotFlag(oItem, FALSE);
|
||||
|
||||
DestroyObject(oItem);
|
||||
}
|
||||
|
||||
TakeGoldFromCreature(GetGold(oPC), oPC, TRUE);
|
||||
}
|
||||
|
||||
//if the above int PunishmentB is set to 1 teleport the PC to the waypoint "prison"
|
||||
if(PunishmentB == 1)
|
||||
{
|
||||
object bTarget;
|
||||
location lTarget;
|
||||
|
||||
//Create a waypoint in the module and give it the tagname "prison"
|
||||
//This waypoint may be place anywhere you deem appropriate (muahahah!)
|
||||
bTarget = GetWaypointByTag("prison");
|
||||
|
||||
lTarget = GetLocation(bTarget);
|
||||
|
||||
if (GetAreaFromLocation(lTarget)!=OBJECT_INVALID)
|
||||
{
|
||||
AssignCommand(oPC, ClearAllActions());
|
||||
|
||||
AssignCommand(oPC, ActionJumpToLocation(lTarget));
|
||||
}
|
||||
//End PunishmentB Check
|
||||
}
|
||||
|
||||
//if the above int PunishmentC is set to 1, the PC is releveled till
|
||||
//they lose the above feats not allowed on the server.(if set to 1)
|
||||
if(PunishmentC == 1)
|
||||
{
|
||||
|
||||
int cXP = GetXP(oPC);
|
||||
SetLocalInt(oPC, "exactxp", cXP);
|
||||
|
||||
//If Devastating Critical is not allowed delevel the PC till it's gone!!
|
||||
//Then set thier XP back to where it was (only if they originally had the feat!)
|
||||
if(DissallowDevastatingCritical == 1)
|
||||
{
|
||||
if(HasDevestatingCritical(oPC))
|
||||
{
|
||||
int i = FALSE;
|
||||
//Delevel them till they don't have Devestating Critical
|
||||
while(i == FALSE)
|
||||
{
|
||||
if(HasDevestatingCritical(oPC))
|
||||
{
|
||||
Take1Level(oPC);
|
||||
i = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
i = TRUE;
|
||||
//Stop the loop here.
|
||||
}
|
||||
|
||||
}
|
||||
//Then give them back thier levels
|
||||
cXP = GetLocalInt(oPC, "exactxp");
|
||||
SetXP(oPC, cXP);
|
||||
DelayCommand(1.0, SendMessageToPC(oPC, "Devestating Critical Is Not Allowed!!"));
|
||||
DelayCommand(2.0, SendMessageToPC(oPC, "Relevel your character."));
|
||||
}
|
||||
//end dev crit check
|
||||
}
|
||||
|
||||
//If Epic Dodge is not allowed delevel the PC till it's gone!!
|
||||
//Then set thier XP back to where it was (only if they originally had the feat!)
|
||||
if(DissallowEpicDodge == 1)
|
||||
{
|
||||
if(GetHasFeat(FEAT_EPIC_DODGE, oPC))
|
||||
{
|
||||
int d = FALSE;
|
||||
while(d == FALSE)
|
||||
if(GetHasFeat(FEAT_EPIC_DODGE, oPC))
|
||||
{
|
||||
Take1Level(oPC);
|
||||
d = FALSE; //Continue the loop.
|
||||
}
|
||||
else
|
||||
{
|
||||
d = TRUE;
|
||||
//Otherwise stop the loop if they don't have Epic Dodge Anymore
|
||||
}
|
||||
|
||||
//Give them back the XP they had before the delevel started.
|
||||
//If they never lost XP then they don't get any :)
|
||||
cXP = GetLocalInt(oPC, "exactxp");
|
||||
SetXP(oPC, cXP);
|
||||
DelayCommand(1.0, SendMessageToPC(oPC, "Epic Dodge Is Not Allowed!!"));
|
||||
DelayCommand(2.0, SendMessageToPC(oPC, "Relevel your character."));
|
||||
}
|
||||
|
||||
//end epic dodge check
|
||||
}
|
||||
|
||||
//If Hide In Plain Sight is not allowed delevel the PC till it's gone!!
|
||||
//Then set thier XP back to where it was (only if they originally had the feat!)
|
||||
if(DissallowHideInPlainSight == 1)
|
||||
{
|
||||
if(GetHasFeat(FEAT_HIDE_IN_PLAIN_SIGHT, oPC))
|
||||
{
|
||||
int e = FALSE;
|
||||
while(e == FALSE)
|
||||
if(GetHasFeat(FEAT_HIDE_IN_PLAIN_SIGHT, oPC))
|
||||
{
|
||||
Take1Level(oPC);
|
||||
e = FALSE; //Continue the loop!
|
||||
}
|
||||
else
|
||||
{
|
||||
e = TRUE; //If they don't have the feat stop the loop!
|
||||
}
|
||||
//Set the PC's XP back to where it was before they were deleveled.
|
||||
cXP = GetLocalInt(oPC, "exactxp");
|
||||
SetXP(oPC, cXP);
|
||||
DelayCommand(1.0, SendMessageToPC(oPC, "Hide In Plain Sight Is Not Allowed!!"));
|
||||
DelayCommand(2.0, SendMessageToPC(oPC, "Relevel your character."));
|
||||
}
|
||||
//end hips check
|
||||
}
|
||||
|
||||
//end PunushinmentC check
|
||||
}
|
||||
|
||||
|
||||
if(PunishmentD == 1)
|
||||
{
|
||||
BannPC(oPC);//Get rid of this character forever!
|
||||
}
|
||||
|
||||
if(PunishmentE == 1)
|
||||
{
|
||||
SetXP(oPC, 0);//Take all of thier levels permanently!
|
||||
}
|
||||
|
||||
//End Punishment Function
|
||||
}
|
||||
|
||||
///////////////////////////The End WOOSH!!////////////////////////////////////////
|
Reference in New Issue
Block a user