//:://////////////////////////////////////////////////////////////////////////// //:: Name - Simple New Player Setup v1.3 //:: File Name - se_new_player //:: File Type - include //:: Copyright (c) 2005 Melnibone Corp. //:://////////////////////////////////////////////////////////////////////////// /* NOTE - This is an include file so will not compile like a normal script once you have changed your settings save(Ctrl+S) You MUST also save the OnClientEnter script after any changes. DESCRIPTION: Simple include file for an on enter script for setting up new characters, set starting level, remove inventory, remove slots, remove gold, give starting gear/gold etc. APPLICATION: 1) Use the example code "on_client_enter" for your OnClientEnter event or create your own. 2) Change the settings below to suit your module. */ //:://////////////////////////////////////////////////// //:: Created By : Sir Elric //:: Created On : 25th June, 2005 //:: Modified On: 21st July, 2005 //:://////////////////////////////////////////////////// /************************************************************************************/ /****************** ADJUST SETTINGS BELOW TO SUIT YOUR MODULE ********************/ /************************************************************************************/ int nWhichPlayers = 1; // 0 Turns ALL settings off! // 1 New players only(ie: Only charcters with 0xp). // 2 New players lower than nStartingLevel only. // 3 All players once only(saves to database)PW Style int nStartingLevel = 1; // What level should players start on 1 - 40? int nStripAllItems = FALSE; // Strip all items in players inventory TRUE or FALSE? int nStripAllSlots = FALSE; // Strip all items in players slots TRUE or FALSE? int nStripAllGold = TRUE; // Strip all gold from player TRUE or FALSE? int nStartingGold = 500; // Give new player starting gold? - 0 is off int nStartingGear = TRUE; // Give new player starting gear TRUE or FALSE? // If TRUE add ResRef between the quotes below(not tag), // plus stack size,if applicable. // eg. string sResRef = "potion"; int nStack = 6; string sResRef = "nw_it_mpotion001"; int nStack = 10; string sResRef1 = ""; int nStack1 = 1; string sResRef2 = ""; int nStack2 = 1; string sResRef3 = ""; int nStack3 = 1; string sResRef4 = ""; int nStack4 = 1; /************************************************************************************/ /************************** END OF SETTINGS **********************************/ /************************************************************************************/ // Returns Experience min for level given int GetXPByLevel(int iLevel); int GetXPByLevel(int iLevel) { int nXP = (((iLevel - 1)*iLevel)/2)*1000; return nXP; } //Set up new players on enter of your module void SirElrics_SimplePlayerSetUp(object oPC); void SirElrics_SimplePlayerSetUp(object oPC) { object oMod = GetModule(); int i; object oItem; if(GetIsDM(oPC)) return;//DM so break... SendMessageToPC(GetFirstPC(), "Running Sir Elric's Simple Player Setup!"); if(!GetLocalInt(oMod, "INITIATE_VARIABLES")) { SetLocalInt(oMod, "STRIP_ALL_ITEMS", nStripAllItems); SetLocalInt(oMod, "STRIP_ALL_SLOTS", nStripAllSlots); SetLocalInt(oMod, "STRIP_ALL_GOLD", nStripAllGold); SetLocalInt(oMod, "GIVE_STARTING_GOLD", nStartingGold); SetLocalInt(oMod, "WHICH_PLAYERS", nWhichPlayers); SetLocalInt(oMod, "STARTING_GEAR", nStartingGear); SetLocalInt(oMod, "STARTING_LEVEL", nStartingLevel); SetLocalInt(oMod, "INITIATE_VARIABLES", 1); } if(GetLocalInt(oMod, "WHICH_PLAYERS") == 1 && !GetLocalInt(oPC, "SE_ENTERED")) { if(GetXP(oPC) > 0) return; GiveXPToCreature(oPC, 1); SetLocalInt(oPC, "SE_ENTERED", 1); } else if(GetLocalInt(oMod, "WHICH_PLAYERS") == 2 && !GetLocalInt(oPC, "SE_ENTERED")) { if(GetHitDice(oPC)>= nStartingLevel) return; SetLocalInt(oPC, "SE_ENTERED", 1); } else if(GetLocalInt(oMod, "WHICH_PLAYERS") == 3) { if(GetCampaignInt("New_Player_Setup", GetName(oPC), oPC)) return; SetCampaignInt("New_Player_Setup", GetName(oPC), 1, oPC); SendMessageToPC(GetFirstPC(), "New player found."); } else { SendMessageToAllDMs("Simple New Player Setup v1.3 is switched off!"); return;//Player set up is switched off! } if(GetLocalInt(oMod, "STARTING_LEVEL")) { int nCurrentXP = GetXP(oPC); int nGetXP = GetXPByLevel(nStartingLevel); int nNewXP = nGetXP - nCurrentXP; if(nCurrentXP < nGetXP) GiveXPToCreature(oPC, nNewXP); else SetXP(oPC, nGetXP); SendMessageToPC(oPC, "Levelling you to - "+IntToString(nStartingLevel)); } if(GetLocalInt(oMod, "STRIP_ALL_GOLD")) AssignCommand(oPC, TakeGoldFromCreature(GetGold(oPC), oPC, TRUE)); if(GetLocalInt(oMod, "GIVE_STARTING_GOLD")) AssignCommand(oPC, GiveGoldToCreature(oPC, nStartingGold)); if(GetLocalInt(oMod, "STRIP_ALL_SLOTS")) { for(i=0; i < NUM_INVENTORY_SLOTS; i++) { oItem = GetItemInSlot(i, oPC); if(GetIsObjectValid(oItem)) { SetPlotFlag(oItem, FALSE); SetItemCursedFlag(oItem, FALSE); DestroyObject(oItem); } } } if(GetLocalInt(oMod, "STRIP_ALL_ITEMS")) { oItem = GetFirstItemInInventory(oPC); while(GetIsObjectValid(oItem)) { SetPlotFlag(oItem, FALSE); SetItemCursedFlag(oItem, FALSE); DestroyObject(oItem); oItem = GetNextItemInInventory(oPC); } } if(GetLocalInt(oMod, "STARTING_GEAR")) { CreateItemOnObject(sResRef, oPC, nStack); CreateItemOnObject(sResRef1, oPC, nStack1); CreateItemOnObject(sResRef2, oPC, nStack2); CreateItemOnObject(sResRef3, oPC, nStack3); CreateItemOnObject(sResRef4, oPC, nStack4); } } /*void main() { }*/