#include "lod_include" #include "nw_i0_plot" string sLevels; int FindPreviousLevel( string sVar ) { string sTmp; int iPos = FindSubString( sLevels, sVar ); if ( iPos > -1 ) { iPos += GetStringLength( sVar); while ( GetSubString( sLevels, iPos, 1 ) != ";" ) sTmp += GetSubString( sLevels, iPos++, 1 ); if ( sTmp != "" ) { return StringToInt( sTmp ); } } return -100; } void main() { object oEnteringPlayer = GetEnteringObject(); int bIsDead = GetCampaignInt("p_death","is_dead",oEnteringPlayer); int bAlreadyJoinedThisReset = GetLocalInt(oEnteringPlayer, "alreadyJoined"); string sIP = GetPCIPAddress(oEnteringPlayer); WriteTimestampedLogEntry(sIP); if(!bAlreadyJoinedThisReset) { FloatingTextStringOnCreature("Please Read your Rules!", oEnteringPlayer, FALSE); // Add Journal entries AddJournalQuestEntry("rules1", 1, oEnteringPlayer, FALSE, FALSE, FALSE); AddJournalQuestEntry("rules2", 1, oEnteringPlayer, FALSE, FALSE, FALSE); AddJournalQuestEntry("BannedList", 1, oEnteringPlayer, FALSE, FALSE, FALSE); AddJournalQuestEntry("forum", 1, oEnteringPlayer, FALSE, FALSE, FALSE); AddJournalQuestEntry("xprules", 1, oEnteringPlayer, FALSE, FALSE, FALSE); AddJournalQuestEntry("lvl_adj", 1, oEnteringPlayer, FALSE, FALSE, FALSE); } // This is to relate to the new check for the 5k gold for new char if (GetXP(oEnteringPlayer) == 0) { GiveGoldToCreature(oEnteringPlayer, 5000); GiveXPToCreature(oEnteringPlayer, 1); } string sName = GetPCPlayerName(oEnteringPlayer); //SoulFlame - Added to simplify the DM check function. DM's should be added in // the IsLodDM function of elv_guildchecker if(IsLodDM(sName)) { SetLocalInt(oEnteringPlayer, "IsDm", TRUE); } SetLocalInt(oEnteringPlayer, "sBleeding", TRUE); if(bIsDead == TRUE) { ApplyPenalty(oEnteringPlayer); SetCampaignInt("p_death","is_dead",FALSE,oEnteringPlayer); if(bAlreadyJoinedThisReset) ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectDamage(GetCurrentHitPoints(oEnteringPlayer), DAMAGE_TYPE_DIVINE), oEnteringPlayer); } if(!bAlreadyJoinedThisReset) SetLocalInt(oEnteringPlayer, "alreadyJoined", TRUE); //Balance Hide //Ba'al int index, iLev, iCurLev; sLevels = GetCampaignString( "mycampaign", GetPCPlayerName( oEnteringPlayer ) + GetName( oEnteringPlayer ) + "Levels" ); if ( sLevels != "" ) { iCurLev = GetCurrentHitPoints( oEnteringPlayer ); iLev = FindPreviousLevel( "HP=" ); if ( iLev > -100 && iCurLev > iLev ) { effect eDamage = EffectDamage( iCurLev - iLev, DAMAGE_TYPE_DIVINE, DAMAGE_POWER_ENERGY ); ApplyEffectToObject( DURATION_TYPE_INSTANT, eDamage, oEnteringPlayer ); } } }