public virtual void onDialog(L2Player player, int ask, int reply) { player.FolkNpc = this; AIProcessor.TalkedReply(player, ask, reply); return; if (ask > 0 && ask < 1000) { QuestManager.getInstance().onQuestTalk(player, this, ask, reply); return; } AITemplate t = AIManager.getInstance().checkDialogResult(Template.NpcId); if (t != null) { t.onDialog(player, ask, reply, this); return; } switch (ask) { case -1: switch (reply) { case 8: player.sendPacket(new ExBuySellList_Buy(player.getAdena())); player.sendPacket(new ExBuySellList_Sell(player)); break; default: NpcData.getInstance().buylist(player, this, (short)reply); break; } break; case -3: grandmaster_total.onReply(player, reply, this); break; case -19: //нобл запрос switch (reply) { case 0: case 1: player.ShowHtm(player.Noblesse == 1 ? "fornobless.htm" : "fornonobless.htm", this); break; } break; case -20: //нобл запрос switch (reply) { case 2: NpcData.getInstance().RequestTeleportList(this, player, 2); break; } break; case -21: //нобл запрос switch (reply) { case 2: NpcData.getInstance().RequestTeleportList(this, player, 3); break; } break; case -22: //нобл запрос switch (reply) { case 2: NpcData.getInstance().RequestTeleportList(this, player, 1); break; } break; case -303: MultiSell.getInstance().showList(player, this, reply); break; case -305: switch (reply) { case 1: // NpcData.getInstance().multisell(player, this, reply); //TEST break; } break; case -1000: { switch (reply) { case 1: //See the lord and get the tax rate information break; } } break; } }
public override void run() { L2Player player = getClient().CurrentPlayer; if (_amount < 0) { _amount = 1; } if (player.LastRequestedMultiSellId != _listId) { player.sendMessage("You are not authorized to use this list now."); player.sendActionFailed(); return; } MultiSellList list = null; if (player.CustomMultiSellList != null) { list = player.CustomMultiSellList; if (list.id != _listId) { list = MultiSell.getInstance().getList(_listId); } } else { list = MultiSell.getInstance().getList(_listId); } if (list == null || list.container.Count < _entryId) { player.sendSystemMessage(1802);//The attempt to trade has failed. player.sendActionFailed(); return; } MultiSellEntry entry = list.container[_entryId]; bool ok = true; foreach (MultiSellItem i in entry.take) { if (i.id > 0) { if (!player.hasItem(i.id, i.count)) { ok = false; break; } } else { switch (i.id) { case -100: //pvppoint if (player.Fame < i.count * _amount) { ok = false; } break; } } } if (!ok) { player.sendSystemMessage(701);//You do not have enough required items. player.sendActionFailed(); return; } foreach (MultiSellItem i in entry.take) { if (i.l2item != null) { player.Inventory.destroyItem(i.l2item, 1, true, true); } else { if (i.id > 0) { player.Inventory.destroyItem(i.id, i.count, true, true); } else { switch (i.id) { case -100: //pvppoint break; } } } } foreach (MultiSellItem i in entry.give) { if (i.id > 0) { if (i.l2item != null) { L2Item item = new L2Item(i.template); item.Enchant = i.l2item.Enchant; player.Inventory.addItem(item, true, true); } else { if (i.template.isStackable()) { player.Inventory.addItem(i.id, i.count * _amount, i.enchant, true, true); } else { player.Inventory.addItem(i.id, 1, i.enchant, true, true); } } } else { switch (i.id) { case -100: //pvppoint break; } } } player.sendSystemMessage(1656);//You have successfully traded the item with the NPC. }
public void Start() { Console.Title = "L2dotNET Gameserver"; CLogger.form(); Cfg.init("all"); CharTemplateTable.Instance.Initialize(); NetworkBlock.Instance.Initialize(); GameTime.Instance.Initialize(); IdFactory.Instance.Initialize(); L2World.Instance.Initialize(); MapRegionTable.Instance.Initialize(); ZoneTable.Instance.Initialize(); NpcTable.Instance.Initialize(); NpcData.getInstance(); // SpawnTable.getInstance(); // TSkillTable.getInstance(); ItemTable.getInstance(); ItemHandler.getInstance(); MultiSell.getInstance(); Capsule.getInstance(); RecipeTable.getInstance(); AIManager.getInstance(); BlowFishKeygen.GenerateKeys(); CLogger.info("Generated 20 Blowfish Keys"); AdminAccess.Instance.Initialize();; QuestManager.getInstance(); AnnouncementManager.Instance.Initialize(); AllianceTable.getInstance(); ClanTable.getInstance(); CLogger.info("NpcServer: "); StaticObjTable.Instance.Initialize(); MonsterRace.Instance.Initialize(); // SpawnTable.getInstance().Spawn(); StructureTable.Instance.Initialize(); HtmCache.Instance.Initialize(); AuthThread.Instance.Initialize(); // GeoData.getInstance(); CLogger.extra_info("Listening Gameservers on port " + Cfg.SERVER_PORT); _listener = new TcpListener(IPAddress.Any, Cfg.SERVER_PORT); _listener.Start(); TcpClient clientSocket = default(TcpClient); while (true) { clientSocket = _listener.AcceptTcpClient(); Accept(clientSocket); } }
protected internal override void use(L2Player admin, string alias) { // double dis = Calcs.calculateDistance(admin, admin._currentTarget, true); // admin.sendMessage("dis "+dis); // foreach (L2SkillCoolTime ct in admin._reuse.Values) // { // ct.forcedStop(); // } // admin._reuse.Clear(); // admin.updateReuse(); string s = alias.Split(' ')[1]; if (s == "1") { admin.AbnormalBitMaskEvent = int.Parse(alias.Split(' ')[2]); admin.updateAbnormalEventEffect(); } else if (s == "2") { int listid = int.Parse(alias.Split(' ')[2]); MultiSell.getInstance().showList(admin, null, listid); } else if (s == "4") { FortressOfTheDead d = new FortressOfTheDead(); d.start(); } else if (s == "5") { if (np == null) { int[] x = new int[] { -81166, -80913, -81952, -82554 }; int[] y = new int[] { 245118, 246031, 246551, 245619 }; np = new ZoneNPoly(x, y, -3727, -3727); } int count = int.Parse(alias.Split(' ')[2]); for (int i = 0; i < count; i++) { int[] rloc = this.rndXYZ(); // NpcTable.getInstance().spawnNpc("lector", rloc[0], rloc[1], rloc[3], new Random().Next(65000)); } } else if (s == "6") { L2Citizen npc = (L2Citizen)admin.CurrentTarget; if (npc.Template.DropData == null) { admin.sendMessage("no drops at this npc"); } else { npc.Template.DropData.showInfo(admin); } } else if (s == "7") { L2Citizen npc = (L2Citizen)admin.CurrentTarget; if (npc.Template.DropData == null) { admin.sendMessage("no drops at this npc"); } else { npc.Template.roll_drops(npc, admin); } } else if (s == "8") { L2Citizen npc = (L2Citizen)admin.CurrentTarget; if (npc.Template.DropData == null) { admin.sendMessage("no drops at this npc"); } else { npc.doDie(admin, false); npc.Template.roll_drops(npc, admin); } } else if (s == "9") { admin.destx = admin.X + 200; admin.desty = admin.Y + 200; admin.destz = admin.Z; admin.sendPacket(new CharMoveToLocation(admin)); } else if (s == "11") { admin.Boat.destx = -121385; admin.Boat.desty = 261660; admin.Boat.destz = -3610; admin.Boat.OnRoute = true; admin.Boat.broadcastPacket(new VehicleStarted(admin.Boat.ObjID, 1)); admin.Boat.broadcastPacket(new VehicleDeparture(admin.Boat, 400, 1800)); } else if (s == "12") { L2Boat boat = new L2Boat(); boat.X = -96622; boat.Y = 261660; boat.Z = -3610; L2World.Instance.RealiseEntry(boat, null, true); boat.onSpawn(); } else if (s == "13") { MonsterRace.Instance.startRace(); } else if (s == "17") { admin.Mount(NpcTable.Instance.getNpcTemplate(13146)); } else if (s == "18") { int count = int.Parse(alias.Split(' ')[2]); TransformManager.getInstance().transformTo(count, admin, 30); } else if (s == "19") { admin.sstt = int.Parse(alias.Split(' ')[2]); admin.broadcastUserInfo(); } else if (s == "20") { int sx = int.Parse(alias.Split(' ')[2]); admin.broadcastPacket(new MagicSkillUse(admin, admin, sx, 1, 0)); } else if (s == "21") { int sx = int.Parse(alias.Split(' ')[2]); admin.broadcastPacket(new MagicSkillUse(admin, admin, 261, 1, 1000, sx)); adm = admin; if (t == null) { t = new System.Timers.Timer(); t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed); } t.Interval = 900; t.Enabled = true; } else if (s == "22") { adm = admin; L2Warrior war = (L2Warrior)NpcTable.Instance.spawnNpc(21003, 14107, 182287, -3586, 32500); war.destx = 13107; war.desty = 182287; war.destz = -3586; admin.sendPacket(new CharMoveToLocation(war)); war.dtstart = DateTime.Now; admin.ChangeTarget(war); if (t == null) { t = new System.Timers.Timer(); t.Elapsed += new System.Timers.ElapsedEventHandler(t_Elapsed); } t.Interval = 2000 * 12; t.Enabled = true; } // admin._privateStoreType = byte.Parse(alias.Split(' ')[1]); // admin.broadcastUserInfo(); // int val = int.Parse(alias.Split(' ')[1]); // StatusUpdate su = new StatusUpdate(admin); // su.add(val, 5000); // admin.sendPacket(su); }
public override void TalkedReply(L2Player talker, int ask, int reply) { if (ask == -1) { switch (reply) { case 0: NpcData.getInstance().buylist(talker, myself, 0); break; case 1: NpcData.getInstance().buylist(talker, myself, 1); break; case 2: NpcData.getInstance().preview(talker, myself, 2); break; case 3: NpcData.getInstance().preview(talker, myself, 3); break; case 4: NpcData.getInstance().buylist(talker, myself, 4); break; case 5: NpcData.getInstance().buylist(talker, myself, 5); break; case 6: NpcData.getInstance().preview(talker, myself, 6); break; case 7: NpcData.getInstance().preview(talker, myself, 7); break; case 8: talker.sendPacket(new ExBuySellList_Buy(talker.getAdena())); talker.sendPacket(new ExBuySellList_Sell(talker)); break; } } else if (ask == -506) { MultiSell.getInstance().showList(talker, myself, 212); } else if (ask == -507) { MultiSell.getInstance().showList(talker, myself, 221); } else if (ask == -510) { if (reply == 1) { if (talker.Level < 40) { talker.ShowHtm("reflect_weapon_none.htm", myself); } else if (talker.Level >= 40 && talker.Level < 46) { talker.ShowHtm("reflect_weapon_d.htm", myself); } else if (talker.Level >= 46 && talker.Level < 52) { talker.ShowHtm("reflect_weapon_c.htm", myself); } else if (talker.Level >= 52) { talker.ShowHtm("reflect_weapon_b.htm", myself); } } } else { base.TalkedReply(talker, ask, reply); } }
public override void TalkedReply(L2Player talker, int ask, int reply) { if (ask == -1000) { if (reply == 0) { talker.ShowHtm(GetDialog("fnHi"), myself); } else if (reply == 1) { NpcHtmlMessage htm = new NpcHtmlMessage(talker, GetDialog(myself.residenceId > 0 ? "fnFeudInfo" : "fnNoFeudInfo"), myself.ObjID); if (myself.residenceId > 0) { Castle castle = CastleManager.getInstance().get(myself.residenceId); htm.replace("<?my_pledge_name?>", castle.OwningClanName); htm.replace("<?my_owner_name?>", castle.OwningPlayerName); htm.replace("<?current_tax_rate?>", (int)castle.Tax); } htm.replace("<?kingdom_name?>", FString.getInstance().get(myself.residenceId < 7 ? 1001000 : 1001100)); htm.replace("<?feud_name?>", FString.getInstance().get(myself.residenceId + 1001000)); talker.sendPacket(htm); } } else if (ask == -303) { if (reply == 579) { if (talker.Level > 40 && talker.Level < 46) { MultiSell.getInstance().showList(talker, myself, reply); } } else if (reply == 580) { if (talker.Level >= 46 && talker.Level < 52) { MultiSell.getInstance().showList(talker, myself, reply); } } else if (reply == 581) { if (talker.Level >= 52) { MultiSell.getInstance().showList(talker, myself, reply); } } else { MultiSell.getInstance().showList(talker, myself, reply); } } else if (ask == -503) { if (reply == 100) { ShowVariationMakeWindow(talker); } else if (reply == 200) { ShowVariationCancelWindow(talker); } } else if (ask == -601) { if (reply == 0) { if (!talker.hasAllOfThisItems(8957, 8958, 8959)) { talker.ShowHtm("welcomeback003.htm", myself); } else { talker.ShowHtm("welcomeback004.htm", myself); } } else if (reply == 0) { if (!talker.hasAllOfThisItems(8957, 8958, 8959)) { talker.ShowHtm("welcome_lin2_cat002.htm", myself); } else { talker.ShowHtm("welcome_lin2_cat004.htm", myself); } } else if (reply == 2) { if (talker.Level < 20) { MultiSell.getInstance().showList(talker, myself, 583); } else if (talker.Level >= 20 && talker.Level < 40) { MultiSell.getInstance().showList(talker, myself, 584); } else if (talker.Level >= 40 && talker.Level < 52) { MultiSell.getInstance().showList(talker, myself, 585); } else if (talker.Level >= 52 && talker.Level < 61) { MultiSell.getInstance().showList(talker, myself, 586); } else if (talker.Level >= 61 && talker.Level < 76) { MultiSell.getInstance().showList(talker, myself, 587); } else if (talker.Level >= 76) { MultiSell.getInstance().showList(talker, myself, 588); } } else if (reply == 3) { if (talker.Level < 20) { MultiSell.getInstance().showList(talker, myself, 589); } else if (talker.Level >= 20 && talker.Level < 40) { MultiSell.getInstance().showList(talker, myself, 590); } else if (talker.Level >= 40 && talker.Level < 52) { MultiSell.getInstance().showList(talker, myself, 591); } else if (talker.Level >= 52 && talker.Level < 61) { MultiSell.getInstance().showList(talker, myself, 592); } else if (talker.Level >= 61 && talker.Level < 76) { MultiSell.getInstance().showList(talker, myself, 593); } else if (talker.Level >= 76) { MultiSell.getInstance().showList(talker, myself, 594); } } else if (reply == 4) { if (talker.Level < 20) { MultiSell.getInstance().showList(talker, myself, 595); } else if (talker.Level >= 20 && talker.Level < 40) { MultiSell.getInstance().showList(talker, myself, 596); } else if (talker.Level >= 40 && talker.Level < 52) { MultiSell.getInstance().showList(talker, myself, 597); } else if (talker.Level >= 52 && talker.Level < 61) { MultiSell.getInstance().showList(talker, myself, 598); } else if (talker.Level >= 61 && talker.Level < 76) { MultiSell.getInstance().showList(talker, myself, 601); } else if (talker.Level >= 76) { MultiSell.getInstance().showList(talker, myself, 600); } } } }