Post your help here!! Part 2
IF YOU HAVEN'T SEEN PART 1: http://www.mpgh.net/forum/showthread.php?t=1113258
If you have a help request that you would like me to personally answer just post it in the comment section
Just remember I cannot release some items so if I deny your request its for a reason
If you have a question or request and it has been already answered by the community forums I will deny it
If anything has a #2 after it, that means that I released a #1 before it and it may be in my older post so read/use #1 before adding/reading #2
GOOD GAME Over 100 Posts
GOOD GAME Over 30 Spoilers
which is like 30x more likes I would have gotten if I didn't post it all in 2 threads XD atleast its all together so people can easily see it
Behavior Template #2 can be downloaded in my github
Just add <Consumable/> to it and it will be a one time use
but just to let you know it might not work if its equipped and might only work if its in the inventory slot(1-8) so you might need to accommodate your ability accordingly


If you can see this in Notepad++ when you open your client.swf with it then you need!!!! to obfuscate it OR anyone(and I mean anyone) can easily change vaules and make their T0 staff the most OP thing in the server


Most likely I will not be releasing Part 2 of the Player vs Player due to it being a "Feature" and something I believe you should figure out yourself...Here is a TIP tho: Look around Projectile Handlers
This is in Player.cs
Your going to want to edit a few things in the template and the set to fit in your db since I didn't account for type ids
Batman does change skins when he has all the items equipped just like the Swollen Paladin set (all the way at the bottom)
Make sure that your seal has noStack=true

The Balanced version has reduced time on invulnerability and now if the player has the invulnerability effect it does not reapply it to avoid tp bots abusing this....even tho tp already has a cooldown
I fixed a silly mistake XD I am such an airhead...
and I made it sorter
updated again to make it more understandable and easier to add to
Summon all is basically summon..just all the players instead of one
First add this to the XML of the enemy/event you want to spawn
I am pointing @@<Encounter/> and @@<PerRealmMax>3</PerRealmMax>
just to let you know that PerRealmMax is not how many its going to spawn...just whats the max it can spawn
Then you will need to add it to Oryx.cs
I am pointing @@ "shtrs Defense System"

JUST ADD MORE TO EM...SHOULD BE SIMPLE IF YOU KNOW THE ENGLISH LANGUAGE



You can change this in wServer/realm/RealmManager.cs
If you scroll down there is a long list of names, you can get rid of or add one.
~added comment by ~~Bear ~~ you can give thanks to him if he helped
Just change/add the values in this
THIS IS IN Oryx.cs

IN Oryx.cs
Anything that has "#Oryx the Mad God" Can be changed to your liking to fit what name you want

and in this you can change Oryx the Mad God....This is the message that the player receives when entering the realm
Its in Player.Leveling.cs and its pretty simple to add on since you can just copy from the others just make sure that you typed everything correctly

Just check for misspelling, 99.99% of the time if you have an error in the behaviors either you misspelled something "strings" OR you added a new Shoot and told it to shoot a projectile the enemy does not have { ProjectileIndex: }
https://github.com/SavageLove/Source-Help
I am running out of TODO
there was like 11 todo....now only 3...4 if you count the better version of /anvil which i am still looking for(I have a mountain of usbs XD)
Release more behaviors templates
add part 3 of Silly Pally Hp Glitch Patch
add how to make custom abilities work for every class
add better version of /anvil command
BIG SHOUTOUT TO @Luis for posting how to make your pserver work and how to make it public
make sure to visit his forum post if you want to make your own P'server
Work:
http://www.mpgh.net/forum/showthread.php?t=1079084
Public:
http://www.mpgh.net/forum/showthread.php?t=1079090
This is old but I wanted to give a shout out to this thread these items are commonly found in the default package of the current RotMG sources: http://www.mpgh.net/forum/showthread.php?t=647024
Shoutout to @Masternx for making a post dedicated to fixing bugs I am sure he will be successful in his endeavors
Make sure to visit it if you find any bugs you would like fixed
Post:http://www.mpgh.net/forum/showthread.php?t=1112746
If your struggling in making your nexus custom these threads may help:
http://www.mpgh.net/forum/showthread...ighlight=Nexus
And if you want to make your Nexus White Fountain heal MP then check this out:
http://www.mpgh.net/forum/showthread...ighlight=Nexus http://www.mpgh.net/forum/showthread.php?t=1099912
Want to build real features? Check this out http://www.mpgh.net/forum/showthread.php?t=1099136
LIST OF MOST TUTORIALS: http://www.mpgh.net/forum/showthread.php?t=1109474 Check this out, you can easily find what you need to make your server better
@HGAEHaeheadhetdhtertherh was nice enough to bless the community with a behavior, map, and set piece for the Lod so if you want to add some content to your server without the work then go to this post : http://www.mpgh.net/forum/showthread...1#post11617131
IF YOU WANT TO HAVE YOUR OWN FABIANO SOURCE DOWNLOAD IT HERE: https://github.com/ossimc82/fabiano-swagger-of-doom
If you want to make your own weapon but don't want to type the code use this site: (Just google pfiffel dps calculator)
NOTE: I Am not the owner of this site
Also someone tell me if I can post the link pfiffels dps calculator or not @Luis @Danny @Raple

the Nation on that picture is really ugly
If you have a help request that you would like me to personally answer just post it in the comment section

Just remember I cannot release some items so if I deny your request its for a reason
If you have a question or request and it has been already answered by the community forums I will deny it
If anything has a #2 after it, that means that I released a #1 before it and it may be in my older post so read/use #1 before adding/reading #2
GOOD GAME Over 100 Posts

GOOD GAME Over 30 Spoilers
which is like 30x more likes I would have gotten if I didn't post it all in 2 threads XD atleast its all together so people can easily see it
Behavior Template #2 can be downloaded in my github

Behavior Template #2
Code:
using wServer.logic.behaviors;
using wServer.logic.transitions;
using wServer.logic.loot;
namespace wServer.logic
{
partial class BehaviorDb
{
private _ TheDevil = () => Behav() //Becareful I am known to make very, very, very hard dungeons so if you plan on testing this watch out
.Init("The Devil",
new State(
new State("Idle", //In this state The Devil is waiting for the player to be in radius(or diamater) of 10 to go to Start
new PlayerWithinTransition(10, "Start"),
new ConditionalEffect(ConditionEffectIndex.Invulnerable) //The Devil is invulnerable while waiting for the player
),
new State("Start", //In this state the Devil is talking before he begins to attack the Player
new ConditionalEffect(ConditionEffectIndex.Invulnerable), //The Devil is invulnerable while talking
new TimedTransition(7000, "Fight"),
new State("Talk",
new Taunt("Welcome to hell my friend"),
new TimedTransition(1500, "Talk2") //Remember that time is based of ms so 1500ms is just 1.5 seconds
),
new State("Talk2",
new Taunt("I've been waiting for you"),
new TimedTransition(1500, "Talk3")
),
new State("Talk3",
new Taunt("You have been very naughty..."),
new TimedTransition(1500, "Talk4")
),
new State("Talk4",
new Taunt("And you know what we do to naughty people?"),
new TimedTransition(1500, "Talk5")
),
new State("Talk5",
new Taunt("Kill them!")
)
),
new State("Fight", //In this state The Devil begins to Fight the player by shooting at the player
new Shoot(20, 5, 1, 0, coolDown: 50, coolDownOffset: 500), //The Devil will shoot this forever...range: 20....shots:5...spread:1....projectileId:0....cooldown:0.05 secs.....time till first shot:0.5 secs
new State("Fight1",
new Taunt("Feel the heat of my Fire Breath!"),
new Spawn("Archdemon Malphas"), //He is spawning the abyss boss at the default speed..which is personally not enough for the devil but it will suffice
new HpLessTransition(0.95, "Fight2") //Once the player(s) have done 5% damage to The Devil he will go to Fight2
),
new State("Fight2",
new Taunt("Still alive huh..."),
new TimedTransition(500, "Fight3")
),
new State("Fight3",
new Taunt("Lets see how long you will survive..."),
new Shoot(20, 6, 2, 1, 180, coolDown: 5000),
new Shoot(20, 6, 2, 1, 170, coolDown: 5000, coolDownOffset: 500),
new Shoot(20, 6, 2, 1, 160, coolDown: 5000, coolDownOffset: 1000),
new Shoot(20, 6, 2, 1, 150, coolDown: 5000, coolDownOffset: 1500),
new Shoot(20, 6, 2, 1, 140, coolDown: 5000, coolDownOffset: 2000),
new Shoot(20, 6, 2, 1, 130, coolDown: 5000, coolDownOffset: 2500),
new Shoot(20, 6, 2, 1, 120, coolDown: 5000, coolDownOffset: 3000),
new Shoot(20, 6, 2, 1, 110, coolDown: 5000, coolDownOffset: 3500),
new Shoot(20, 6, 2, 1, 100, coolDown: 5000, coolDownOffset: 4000),
new Shoot(20, 6, 2, 1, 90, coolDown: 5000, coolDownOffset: 4500), //This is the Devil shooting in a simple to write pattern...test this to see what it does :)
new Shoot(20, 6, 2, 1, 190, coolDown: 5000, coolDownOffset: 500),
new Shoot(20, 6, 2, 1, 200, coolDown: 5000, coolDownOffset: 1000),
new Shoot(20, 6, 2, 1, 210, coolDown: 5000, coolDownOffset: 1500),
new Shoot(20, 6, 2, 1, 220, coolDown: 5000, coolDownOffset: 2000),
new Shoot(20, 6, 2, 1, 230, coolDown: 5000, coolDownOffset: 2500),
new Shoot(20, 6, 2, 1, 240, coolDown: 5000, coolDownOffset: 3000),
new Shoot(20, 6, 2, 1, 250, coolDown: 5000, coolDownOffset: 3500),
new Shoot(20, 6, 2, 1, 260, coolDown: 5000, coolDownOffset: 4000),
new Shoot(20, 6, 2, 1, 270, coolDown: 5000, coolDownOffset: 4500),
new HpLessTransition(0.66, "Fight4")
),
new State("Fight4",
new Taunt("Your only testing my patience"),
new Spawn("Archdemon Malphas"),
new Spawn("Oryx the Mad God 2"), //Spawning alot more since The Devil is the god of the hell
new Spawn("White Demon of the Abyss"),
new Shoot(20, 6, 60, 2, 0, coolDown: 3000),
new Shoot(20, 6, 60, 2, 10, coolDown: 3000, coolDownOffset: 500),
new Shoot(20, 6, 60, 2, 20, coolDown: 3000, coolDownOffset: 1000),
new Shoot(20, 6, 60, 2, 30, coolDown: 3000, coolDownOffset: 1500), //The Devil is now shooting in a sprial pattern...test to see the fire works :)
new Shoot(20, 6, 60, 2, 40, coolDown: 3000, coolDownOffset: 2000),
new Shoot(20, 6, 60, 2, 50, coolDown: 3000, coolDownOffset: 2500),
new HpLessTransition(0.33, "Fight5")
),
new State("Fight5", //Learn my friend so you can make your own :)
new Taunt("I...Will Not...Lose..."),
new ConditionalEffect(ConditionEffectIndex.Invulnerable),
new TimedTransition(1500, "Fight6")
),
new State("Fight6",
new ConditionalEffect(ConditionEffectIndex.Invulnerable),
new Taunt("But you will need to code the rest..."),
new TimedTransition(1500, "Fight7")
),
new State("Fight7",
new ConditionalEffect(ConditionEffectIndex.Invulnerable),
new Taunt("Learn my friend..."),
new TimedTransition(1500, "Fight8")
),
new State("Fight8",
new ConditionalEffect(ConditionEffectIndex.Invulnerable),
new Taunt("For the better of the P'server Nation") //For the better of the P'server Nation you must learn :)
)
)
)
);
}
}
How to make abilities a one time use
Just add <Consumable/> to it and it will be a one time use
but just to let you know it might not work if its equipped and might only work if its in the inventory slot(1-8) so you might need to accommodate your ability accordingly

How to view your client.swf in binary/hex mode

How to see if your client requires encryption/obfuscation
If you can see this in Notepad++ when you open your client.swf with it then you need!!!! to obfuscate it OR anyone(and I mean anyone) can easily change vaules and make their T0 staff the most OP thing in the server


Most likely I will not be releasing Part 2 of the Player vs Player due to it being a "Feature" and something I believe you should figure out yourself...Here is a TIP tho: Look around Projectile Handlers

Player VS Player Part 1
This is in Player.cs
Code:
public override bool HitByProjectile(Projectile projectile, RealmTime time)
{
if (Owner.Name == "WORLDNAME")
return true;
else
{
if (projectile.ProjectileOwner is Player ||
HasConditionEffect(ConditionEffectIndex.Paused) ||
HasConditionEffect(ConditionEffectIndex.Stasis) ||
HasConditionEffect(ConditionEffectIndex.Invincible))
return false;
}
return base.HitByProjectile(projectile, time);
}
Your going to want to edit a few things in the template and the set to fit in your db since I didn't account for type ids
Batman :: Custom Character Template
Code:
<Object type="0x0666" id="Batman">
<Class>Player</Class>
<Description>{players.The_Batman_relies_on_his_wits_and_pure_strength_to_defeat_his_foes}</Description>
<AnimatedTexture>
<File>players</File>
<Index>4</Index>
</AnimatedTexture>
<HitSound>player/knight_hit</HitSound>
<DeathSound>player/warrior_death</DeathSound>
<Player/>
<BloodProb>1.0</BloodProb>
<SlotTypes>26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 0</SlotTypes>
<Equipment>0x0700, 0x0701, 0x0702, 0x0703, 0xa22, -1, -1, -1, -1, -1, -1, -1</Equipment>
<MaxHitPoints max="800">230</MaxHitPoints>
<MaxMagicPoints max="0">0</MaxMagicPoints>
<Attack max="75">15</Attack>
<Defense max="50">0</Defense>
<Speed max="50">7</Speed>
<Dexterity max="50">10</Dexterity>
<HpRegen max="75">20</HpRegen>
<MpRegen max="0">0</MpRegen>
<LevelIncrease min="20" max="30">MaxHitPoints</LevelIncrease>
<LevelIncrease min="0" max="0">MaxMagicPoints</LevelIncrease>
<LevelIncrease min="1" max="2">Attack</LevelIncrease>
<LevelIncrease min="0" max="0">Defense</LevelIncrease>
<LevelIncrease min="0" max="2">Speed</LevelIncrease>
<LevelIncrease min="0" max="2">Dexterity</LevelIncrease>
<LevelIncrease min="0" max="2">HpRegen</LevelIncrease>
<LevelIncrease min="0" max="0">MpRegen</LevelIncrease>
<UnlockLevel level="20" type="0x0326">Ninja</UnlockLevel>
<UnlockLevel level="20" type="0x031d">Warrior</UnlockLevel>
<UnlockLevel level="20" type="0x031e">Knight</UnlockLevel>
<UnlockCost>1499</UnlockCost>
<DisplayId>{players.Batman}</DisplayId>
</Object>
Batman does change skins when he has all the items equipped just like the Swollen Paladin set (all the way at the bottom)
Batman Custom Item set
Code:
<Object type="0x0700" id="Iron Fists">
<Class>Equipment</Class>
<Item/>
<Texture>
<File>lofiObj5</File>
<Index>0x3c</Index>
</Texture>
<SlotType>26</SlotType>
<Description>{equip.Iron_gloves_with_a_comfortable_interior_to_allow_easy_movement.}</Description>
<RateOfFire>1</RateOfFire>
<Sound>weapon/mithril_sword</Sound>
<Projectile>
<ObjectId>Iron Fist Shot</ObjectId>
<Speed>100</Speed>
<MinDamage>250</MinDamage>
<MaxDamage>300</MaxDamage>
<LifetimeMS>200</LifetimeMS>
</Projectile>
<BagType>4</BagType>
<FameBonus>6</FameBonus>
<OldSound>bladeSwing</OldSound>
<feedPower>5</feedPower>
<DisplayId>{equip.Iron_Fists}</DisplayId>
</Object>
<Object type="0x0704" id="Iron Fist Shot">
<Class>Projectile</Class>
<Texture>
<File>lofiObj2</File>
<Index>0x72</Index>
</Texture>
<AngleCorrection>1</AngleCorrection>
</Object>
<Object type="0x0701" id="Batarang">
<Class>Equipment</Class>
<Item/>
<Texture>
<File>lofiObj3</File>
<Index>0x22b</Index>
</Texture>
<SlotType>27</SlotType>
<Description>{equip.Batman's_Batarang.}</Description>
<Sound>spell/fire_spray</Sound>
<ExtraTooltipData>
<EffectInfo name="{equip.While_Key_Held}" description=""/>
<EffectInfo name="" description="{equip.Invisibility}"/>
<EffectInfo name="{equip.When_Key_Released}" description=""/>
</ExtraTooltipData>
<Projectile>
<ObjectId>Batarang Shot</ObjectId>
<Speed>200</Speed>
<MinDamage>100</MinDamage>
<MaxDamage>200</MaxDamage>
<LifetimeMS>250</LifetimeMS>
<Size>120</Size>
<PassesCover/>
</Projectile>
<Usable/>
<Cooldown>10</Cooldown>
<BagType>4</BagType>
<MpCost>0</MpCost>
<MpEndCost>0</MpEndCost>
<MultiPhase/>
<Activate>BatmanAbility</Activate>
<FameBonus>6</FameBonus>
<feedPower>5</feedPower>
<DisplayId>{equip.Basic_Star}</DisplayId>
</Object>
<Object type="0x0705" id="Batarang Shot">
<Class>Projectile</Class>
<Texture>
<File>lofiObj3</File>
<Index>0x258</Index>
</Texture>
<Rotation>70</Rotation>
</Object>
<Object type="0x0702" id="Batman Armor">
<Class>Equipment</Class>
<Item/>
<Texture>
<File>lofiObj5</File>
<Index>0x2c</Index>
</Texture>
<SlotType>28</SlotType>
<Description>{equip.Unbreakable_and_Indestructible_armor_made_from_flexible_kevlar_and_steel_plating.}</Description>
<ActivateOnEquip stat="21" amount="30">IncrementStat</ActivateOnEquip>
<BagType>4</BagType>
<FameBonus>6</FameBonus>
<feedPower>435</feedPower>
<DisplayId>{equip.Acropolis_Armor}</DisplayId>
</Object>
<Object type="0x0703" id="Batman's Helmet">
<Class>Equipment</Class>
<Item/>
<Texture>
<File>lofiObj5</File>
<Index>0xc6</Index>
</Texture>
<SlotType>9</SlotType>
<Tier>5</Tier>
<Description>{equip.Batman's_metel_plate_helmet.}</Description>
<BagType>4</BagType>
<FameBonus>6</FameBonus>
<feedPower>5</feedPower>
<DisplayId>{equip.Batman's_Helmet}</DisplayId>
</Object>
<Object type="0x0706" id="Batman Skin Set">
<Skin/>
<Class>Skin</Class>
<AnimatedTexture>
<File>playerskins16</File>
<Index>06</Index>
</AnimatedTexture>
<PlayerClassType>0x0666</PlayerClassType>
<UnlockSpecial>Set Skin</UnlockSpecial>
<NoSkinSelect/>
<DisplayId>{skins.Batman_Skin_Set}</DisplayId>
</Object>
<EquipmentSet type="0x0999" id="Batman Set">
<Setpiece slot="0" itemtype="0x0x700">Equipment</Setpiece>
<Setpiece slot="1" itemtype="0x0701">Equipment</Setpiece>
<Setpiece slot="2" itemtype="0x0702">Equipment</Setpiece>
<Setpiece slot="3" itemtype="0x0703">Equipment</Setpiece>
<ActivateOnEquipAll skinType="0x0706" size="70" color="0x92A9BA" bulletType="Iron Fist Shot">ChangeSkin</ActivateOnEquipAll>
</EquipmentSet>
Silly Pally Hp Glitch Patch Part 2
Make sure that your seal has noStack=true

The Balanced version has reduced time on invulnerability and now if the player has the invulnerability effect it does not reapply it to avoid tp bots abusing this....even tho tp already has a cooldown
Safe TP Command *Balanced*
Code:
internal class SafeTPCommand : Command
{
public SafeTPCommand()
: base("safetp")
{
}
protected override bool Process(Player player, RealmTime time, string[] args)
{
try
{
if (String.Equals(player.Name.ToLower(), args[0].ToLower()))
{
player.SendInfo("You are already at yourself, and always will be!");
return false;
}
foreach (KeyValuePair<int, Player> i in player.Owner.Players)
{
if (i.Value.Name.ToLower() == args[0].ToLower().Trim())
{
player.Teleport(time, new TeleportPacket
{
ObjectId = i.Value.Id
});
if (player.HasConditionEffect(ConditionEffectIndex.Invulnerable) == false)
{
player.ApplyConditionEffect(new ConditionEffect
{
Effect = ConditionEffectIndex.Invulnerable,
DurationMS = 1000
});
}
return true;
}
}
player.SendInfo(string.Format("Cannot teleport, {0} not found!", args[0].Trim()));
}
catch
{
player.SendHelp("Usage: /safetp <player name>");
}
return false;
}
}
I fixed a silly mistake XD I am such an airhead...
and I made it sorter
updated again to make it more understandable and easier to add to
Anvil Command *fixed*
Code:
public Anvil()
: base("anvil")
{
}
protected override bool Process(Player player, RealmTime time, string[] args)
{
if (args.Length == 2)
{
int num2 = int.Parse(args[1]) + 3;
int num1 = int.Parse(args[0]) + 3;
if (num1 == num2) { player.SendError("Don't try to cheat the system fool ~ Tpain"); return false; }
else if (num1 > 8 || num2 > 8) { player.SendError("Slots: 1, 2, 3, 4, 5, 6, 7, 8"); return false; }
else if (num1 < 9 && num2 < 9)
{
var Slot1 = player.Inventory[num1];
var Slot2 = player.Inventory[num2];
Item Agate = player.Manager.GameData.Items[0xa8a]; //Agate dagger
Item Astral = player.Manager.GameData.Items[0xaa2]; //Astral Staff
Item BloodBow = player.Manager.GameData.Items[0xa8d]; //Blood Bow
Item AncientWarning = player.Manager.GameData.Items[0xa8d]; //Ancient Warning Wand
Item Acclaim = player.Manager.GameData.Items[0xc50]; //Sword of Acclaim
Item Masamune = player.Manager.GameData.Items[0xb0b]; //Masamune Katana
int item1 = 0;
int item2 = 0;
if (Slot1 == Agate) { item1 = 1; }
if (Slot1 == Astral) { item1 = 2; }
if (Slot2 == BloodBow) { item2 = 1; }
if (Slot2 == AncientWarning) { item2 = 2; }
if (item1 == item2) //<= Do not bother this but if the player does not have the exact two items requird to craft it then it will fail
{
if (item1 == 0) //if player does not have any of the items then it will fail
{
player.SendError("Don't try to cheat the system fool ~Tpain");
return false;
}
else if (item1 == 1) //Agate + Blood Bow = Sword of Acclaim
{
Slot2 = null;
Slot1 = Acclaim;
player.UpdateCount++;
player.SaveToCharacter();
player.SendInfo("Congrats...enjoy your sword :*");
}
else if (item1 == 2) //Astral Staff + Ancient Warning = Masamune
{
Slot2 = null;
Slot1 = Masamune;
player.UpdateCount++;
player.SaveToCharacter();
player.SendInfo("Congrats...enjoy your katana :*");
}
else { player.SendInfo("Crafting Failed..."); return false; } //if player does not have any of the items then it will fail
}
}
else { player.SendError("Slots: 1, 2, 3, 4, 5, 6, 7, 8"); return false; }
return true;
}
else
{
player.SendHelp("Usage: /anvil <Slot1> <slot2>");
player.SendHelp("Slots: 1, 2, 3, 4, 5, 6, 7, 8");
return false;
}
}
}
Summon all is basically summon..just all the players instead of one
Summon All command
Code:
internal class Summonall : Command
{
public Summonall()
: base("summonall", 1)
{
}
protected override bool Process(Player player, RealmTime time, string[] args)
{
if (player.Owner is Vault || player.Owner is PetYard)
{
player.SendInfo("You cant summon in this world.");
return false;
}
foreach (var i in player.Manager.Clients.Values)
{
Packet pkt;
pkt = new ReconnectPacket
{
GameId = player.Owner.Id,
Host = "",
IsFromArena = false,
Key = player.Owner.PortalKey,
KeyTime = -1,
Name = player.Owner.Name,
Port = -1
};
player.SendInfo("Player(s) will connect to you now!");
i.SendPacket(pkt);
return true;
}
player.SendError("Player(s) info could not be found!");
return false;
}
}
How to add Events to the Realm
First add this to the XML of the enemy/event you want to spawn
I am pointing @@<Encounter/> and @@<PerRealmMax>3</PerRealmMax>
just to let you know that PerRealmMax is not how many its going to spawn...just whats the max it can spawn
Code:
<Object type="0x734d" id="shtrs Defense System">
<DisplayId>{encounters.shtrs_Defense_System}</DisplayId>
<Enemy/>
<Class>Character</Class>
<Quest/>
<Level>20</Level>
<God/>
<StasisImmune/>
<Encounter/>
<PerRealmMax>3</PerRealmMax>
<StunImmune/>
<ParalyzeImmune/>
<DazedImmune/>
<HitSound>monster/golems_hit</HitSound>
<DeathSound>monster/beholder_death</DeathSound>
<MaxHitPoints>500000</MaxHitPoints>
<Size>200</Size>
<Defense>90</Defense>
<XpMult>0.3</XpMult>
<AnimatedTexture>
<File>chars16x16dEncounters2</File>
<Index>88</Index>
</AnimatedTexture>
<AltTexture id="1">
<AnimatedTexture>
<File>chars16x16dEncounters2</File>
<Index>89</Index>
</AnimatedTexture>
</AltTexture>
<Projectile id="0">
<ObjectId>Fire Spinner</ObjectId>
<Damage>150</Damage>
<Speed>30</Speed>
<LifetimeMS>4000</LifetimeMS>
<Size>100</Size>
<ConditionEffect duration="4">Confused</ConditionEffect>
<ConditionEffect duration="4">Unstable</ConditionEffect>
</Projectile>
<Projectile id="1">
<ObjectId>Fire Bullet</ObjectId>
<Speed>30</Speed>
<Damage>170</Damage>
<LifetimeMS>4000</LifetimeMS>
<ConditionEffect duration="4">Unstable</ConditionEffect>
<Size>100</Size>
</Projectile>
</Object>
I am pointing @@ "shtrs Defense System"
Code:
private readonly List<Tuple<string, ISetPiece>> events = new List<Tuple<string, ISetPiece>>
{
Tuple.Create("Skull Shrine", (ISetPiece) new SkullShrine()),
Tuple.Create("Pentaract", (ISetPiece) new Pentaract()),
Tuple.Create("Grand Sphinx", (ISetPiece) new Sphinx()),
Tuple.Create("Hermit God", (ISetPiece) new Hermit()),
Tuple.Create("Ghost Ship", (ISetPiece) new GhostShip()),
Tuple.Create("Cube God", (ISetPiece) new CubeGod()),
Tuple.Create("shtrs Defense System", (ISetPiece) new Avatar()),
};

How to make Oryx talk for events
JUST ADD MORE TO EM...SHOULD BE SIMPLE IF YOU KNOW THE ENGLISH LANGUAGE



How to change the names of realms
You can change this in wServer/realm/RealmManager.cs
If you scroll down there is a long list of names, you can get rid of or add one.
~added comment by ~~Bear ~~ you can give thanks to him if he helped

How to change the rates of spawns in the Realm
Just change/add the values in this
THIS IS IN Oryx.cs

How to change Oryx name in the realm
IN Oryx.cs
Anything that has "#Oryx the Mad God" Can be changed to your liking to fit what name you want


and in this you can change Oryx the Mad God....This is the message that the player receives when entering the realm
Code:
public void OnPlayerEntered(Player player)
{
player.SendInfo("Welcome to Realm of the Mad God");
player.SendEnemy("Oryx the Mad God", "You are food for my minions!");
}
How to add quests
Its in Player.Leveling.cs and its pretty simple to add on since you can just copy from the others just make sure that you typed everything correctly


How to add more stars/class quests
This is in Player.Leveling.cs
You are going to want to add more to this...its simple don't expect me to explain something so simple
It's the GetFameGoal() and the GetStars()
You are going to want to add more to this...its simple don't expect me to explain something so simple
It's the GetFameGoal() and the GetStars()
How to fix wServer errors caused by behaviors
Just check for misspelling, 99.99% of the time if you have an error in the behaviors either you misspelled something "strings" OR you added a new Shoot and told it to shoot a projectile the enemy does not have { ProjectileIndex: }
https://github.com/SavageLove/Source-Help
I am running out of TODO
there was like 11 todo....now only 3...4 if you count the better version of /anvil which i am still looking for(I have a mountain of usbs XD)TODO
Release more behaviors templates
add part 3 of Silly Pally Hp Glitch Patch
add how to make custom abilities work for every class
add better version of /anvil command
BIG SHOUTOUT TO @Luis for posting how to make your pserver work and how to make it public
make sure to visit his forum post if you want to make your own P'server
Work:
http://www.mpgh.net/forum/showthread.php?t=1079084
Public:
http://www.mpgh.net/forum/showthread.php?t=1079090
This is old but I wanted to give a shout out to this thread these items are commonly found in the default package of the current RotMG sources: http://www.mpgh.net/forum/showthread.php?t=647024
Shoutout to @Masternx for making a post dedicated to fixing bugs I am sure he will be successful in his endeavors
Make sure to visit it if you find any bugs you would like fixed
Post:http://www.mpgh.net/forum/showthread.php?t=1112746
If your struggling in making your nexus custom these threads may help:
http://www.mpgh.net/forum/showthread...ighlight=Nexus
And if you want to make your Nexus White Fountain heal MP then check this out:
http://www.mpgh.net/forum/showthread...ighlight=Nexus http://www.mpgh.net/forum/showthread.php?t=1099912
Want to build real features? Check this out http://www.mpgh.net/forum/showthread.php?t=1099136
LIST OF MOST TUTORIALS: http://www.mpgh.net/forum/showthread.php?t=1109474 Check this out, you can easily find what you need to make your server better
@HGAEHaeheadhetdhtertherh was nice enough to bless the community with a behavior, map, and set piece for the Lod so if you want to add some content to your server without the work then go to this post : http://www.mpgh.net/forum/showthread...1#post11617131
IF YOU WANT TO HAVE YOUR OWN FABIANO SOURCE DOWNLOAD IT HERE: https://github.com/ossimc82/fabiano-swagger-of-doom
If you want to make your own weapon but don't want to type the code use this site: (Just google pfiffel dps calculator)
NOTE: I Am not the owner of this site
Also someone tell me if I can post the link pfiffels dps calculator or not @Luis @Danny @Raple

the Nation on that picture is really ugly



