Exemplo n.º 1
0
 protected override void Initialize()
 {
     log.WriteLine("Scipting", "Initialize warper class npc");
     NpcFunction.Create <Saga.Npc.Functions.EverydayConversation>(this);
     NpcFunction.Create <Saga.Npc.Functions.WarperConversation>(this);
     NpcFunction.Create <Saga.Npc.Functions.QuestConversation>(this);
 }
Exemplo n.º 2
0
 public void RemoveEventListener(NpcFunction function, NpcEventHandler handler)
 {
     if (NpcEvents.ContainsKey(function))
     {
         NpcEvents[function] -= handler;
     }
 }
Exemplo n.º 3
0
        private static void AnswerOnNpcQuestion(ZoneCharacter character, byte answer)
        {
            NPC     npc = (character.Question.Object as NPC);
            MobInfo mob = DataProvider.Instance.GetMobInfo(npc.ID);
            string  NpcFunction;

            DataProvider.Instance.ShineNpcTable.TryGetValue(mob.Name + "\t" + npc.Map.MapInfo.ShortName + "\t" + npc.Position.X + "\t" + npc.Position.Y, out NpcFunction);
            if (NpcFunction != null)
            {
                switch (answer)
                {
                case 0: break;

                case 1:
                    if (NpcFunction.Split('\t')[1] == "1" && NpcFunction.Split('\t')[2] == "Merchant" && NpcFunction.Split('\t')[3] == "SoulStone")
                    {
                        SendSellHPSP(character);
                    }
                    else if (NpcFunction.Split('\t')[1] == "1" && NpcFunction.Split('\t')[2] == "Merchant" && NpcFunction.Split('\t')[3] == "Item")
                    {
                        SendSellItems(character, mob.Name);
                    }
                    break;

                default:
                    Log.WriteLine(LogLevel.Warn, "Invalid gate question response.");
                    break;
                }
            }
            else
            {
                Log.WriteLine(LogLevel.Error, "NpcHandler :: Can not find NpcAction for {0} on M: {1}", mob.Name, npc.Map.MapInfo.FullName);
            }
        }
Exemplo n.º 4
0
 protected override void Initialize()
 {
     log.WriteLine("Scipting", "Initialize BlackSmith class npc");
     NpcFunction.Create <Saga.Npc.Functions.EverydayConversation>(this);
     NpcFunction.Create <Saga.Npc.Functions.BlackSmith>(this);
     NpcFunction.Create <Saga.Npc.Functions.ShopConversation>(this);
     NpcFunction.Create <Saga.Npc.Functions.TraderConversation>(this);
     NpcFunction.Create <Saga.Npc.Functions.QuestConversation>(this);
 }
Exemplo n.º 5
0
 public void RegisterNpcEvent(NpcFunction function, NpcActionHandler action)
 {
     if (!EventMap.ContainsKey(function))
     {
         EventMap[function] = action;
     }
     else
     {
         EventMap[function] += action;
     }
 }
Exemplo n.º 6
0
 public void RegisterNpcEvent(NpcFunction npcFunction, NpcActionHanger npcActionHanger)
 {
     if (!eventMap.ContainsKey(npcFunction)) //如果不存在 添加字典
     {
         eventMap[npcFunction] = npcActionHanger;
     }
     else//是不是应该去掉?
     {
         eventMap[npcFunction] += npcActionHanger;//如果存在注册委托
     }
 }
Exemplo n.º 7
0
 public void AddEventListener(NpcFunction function, NpcEventHandler handler)
 {
     if (NpcEvents.ContainsKey(function))
     {
         NpcEvents[function] += handler;
     }
     else
     {
         NpcEvents.Add(function, handler);
     }
 }
Exemplo n.º 8
0
 protected override void Initialize()
 {
     NpcFunction.Create <Saga.Npc.Functions.TraderConversation>(this);
     NpcFunction.Create <Saga.Npc.Functions.QuestConversation>(this);
 }
Exemplo n.º 9
0
 protected override void Initialize()
 {
     NpcFunction.Create <Saga.Npc.Functions.QuestConversation>(this);
     NpcFunction.Create <Saga.Npc.Functions.EverydayConversation>(this);
     NpcFunction.Create <BlacksmithFunction>(this);
 }
Exemplo n.º 10
0
 public void Attach(NpcFunction fun)
 {
     Fun          = fun;
     FunName.text = Fun.Name;
 }
Exemplo n.º 11
0
 internal void Add(DialogType id, byte menu, NpcFunction.FunctionCallback callback)
 {
     ButtonCallback mycallback = __callbacks[(byte)id];
     mycallback.callbacks.Add(menu, callback);
 }
Exemplo n.º 12
0
 internal void Add(DialogType id, NpcFunction.FunctionCallback callback)
 {
     ButtonCallback mycallback = new ButtonCallback();
     mycallback.callback = callback;
     __callbacks.Add((byte)id, mycallback);
 }