Custom reward method * Example *

Custom reward method * Example *

Postby dzienny » 04 Feb 2012, 22:59

Here's an example that shows how the custom reward method should look like. The purpose of this method is to count the reward and add it to player's total money, and to notify a player about it.

Code: Select all
using System;

namespace MCDzienny
{
   public class CmdCustomPayReward : Command
   {
      // Don't change it.
      public override string name { get { return ""; } }
      public override string shortcut { get { return ""; } }
      public override string type { get { return ""; } }
      public override bool museumUsable { get { return false; } }
      public override LevelPermission defaultRank { get { return LevelPermission.Banned; } }

      // Init is executed when the code is loaded.
      public override void Init()
      {
         // You tell the server to send arguments to PayRewardCustom method when PayReward event occures
         LavaSystem.PayReward -= LavaSystem.PayRewardDefault;
         LavaSystem.PayReward += PayRewardCustom;
      }

      // Here's the place where you are supposed to write your PayReward method.
      // Player p - represents a player that was among the winners,
      // int rewardDifference - describes the difference between the reward for being above and for being below the sea level, it can be negative number if the reward for being below the sea level is higher than for being above,
      // The counted reward is directly added to player's total money.
     
      private void PayRewardCustom(Player p, int rewardDifference)
      {
         if (p.IsAboveSeaLevel)
            {
                Player.SendMessage(p, "You gained " + Settings.LavaSettings.All.RewardAboveSeaLevel + " " + Server.moneys + ".");
                p.money += Settings.LavaSettings.All.RewardAboveSeaLevel;
            }
            else
            {
                Player.SendMessage(p, "You gained " + Settings.LavaSettings.All.RewardBelowSeaLevel + " " + Server.moneys + "." + (rewardDifference < 1 ? "" : "You were rewarded " + rewardDifference.ToString() + " less than normal because you were below the Sea Level"));
                p.money += Settings.LavaSettings.All.RewardBelowSeaLevel;
            }
      }

      // Don't change it.
      public override void Help(Player p) { }
      public override void Use(Player p, string message) { }
   }
}
User avatar
dzienny
Administrator
 
Posts: 1181
Joined: 23 Jan 2011, 14:27

Return to Knowledge Base

Who is online

Users browsing this forum: No registered users and 1 guest

cron