- 0
-
Posts
-
--- Interlude GvE PvP new season start at 2026-06-27 21:00 GMT+3 --- Gameplay: Chronicle: Interlude Type: Faction/GvE (Angels vs Nature vs Demons) GM Shop: B-S grade Buff slots: 20+4 Starting level: 74 + rebirth system New Features: Client: Modern interface based on Essence Balance: New class skills for better balance Achievement Rewards: Daily, Weekly, One-time TOP rankings: PvP, Event PvP, Map PvP, Clan PvP, Event MvP, Map MvP Zones: 70 different PvP zones, 18 different events (8 map events | 10 main events) 12 Grand/raid bosses. Castle siege Olympiad Clan Hall challenge Custom Enchant System: Dynamic success chance (greater enchant level or item grade less enchanting success chance) Enchant rate: Blessed scrolls dynamic from 100% to 25%. Crystal Scrolls: 100%; Max enchant weapon +12 Max enchant armor +8 Safe point enchant system Extra Features: PvP items with level upgrade Weapon/Armor upgrade (from B grade to S) system Attributes system Website: https://l2cygnus.com Community: Discord Facebook: https://www.facebook.com/l2cygnus Youtube:
-
🚀 L2JOne Website System — Features & Security Overview 📌 Overview The L2JOne Website System is a complete platform designed for Lineage 2 servers, providing account management, donation processing, game integration, automation tools, and advanced security protections. Built with a focus on: Security Performance Automation Scalability Easy Administration 🎮 Player Features ✔ Account Registration Direct account creation from the website Game database integration Data validation Optional email verification Google reCAPTCHA protection ✔ Secure Login System Protected user sessions Automatic Session ID regeneration Session Fixation protection Secure logout ✔ Player Control Panel Ticket balance management Purchase history Transfer history Character selection Automatic item delivery ✔ Account Recovery Email-based recovery Temporary recovery tokens Automatic token expiration 💰 Donation System Supported Payment Gateways Mercado Pago PIX Credit Card Debit Card Stripe International credit cards PayPal Worldwide payments Binance Pay Cryptocurrency payments ⚡ Automated Credit Delivery Once a payment is confirmed: Gateway validates the transaction. Webhook signature is verified. Order is marked as completed. Credits are added to the player's balance. Player transfers credits to a character. Items are automatically delivered in-game. No manual intervention required. 🎁 Coupon System Percentage discounts Fixed value discounts Usage limits Expiration dates Minimum purchase requirements 🎟 Ticket System Internal virtual currency Item conversion system Administrative adjustments Full transaction history Balance management 📊 Administrative Dashboard Real-Time Statistics Total revenue Daily revenue New registrations Total purchases Pending payments Approved payments Reports Sales reports Financial reports Player activity reports Transfer history Interactive Charts Revenue growth Daily earnings Monthly earnings Visitors by country Payment distribution 🌍 Analytics System Visitor countries Browser statistics Operating systems Device tracking Access history 📰 News Management System Unlimited news posts Featured images HTML editor support Homepage highlights 🎥 Video & Streaming System Supports: YouTube Twitch Kick Custom stream embeds ⏳ Countdown System Launch countdown timer Configurable date and time Timezone support Homepage integration 📥 Download Center Fully configurable: Game Client Official Patch Mirror Downloads Torrent Downloads External Download Links 📱 Social Media Integration Discord Facebook Instagram Telegram YouTube 🔒 Security Layer CSRF Protection All forms include: Unique security tokens Mandatory validation Automatic expiration Protects against: Cross-Site Request Forgery (CSRF) Google reCAPTCHA Protection Integrated Google reCAPTCHA v3 Protects against: Bots Automated registrations Brute-force attacks Session Security Session ID regeneration HttpOnly cookies SameSite cookie protection Secure cookie support Protects against: Session hijacking Session fixation attacks Upload Protection Sensitive file types are blocked: .sql .sqlite .log .pem .key Directory Protection Direct access denied to: config/ private/ storage/ cli/ database/ Unauthorized access is blocked. Anti-Replay Protection Financial callbacks include: Signed timestamps Expiration windows One-time validation Protects against: Payment replay attacks Duplicate transaction processing Webhook Security HMAC signature validation Shared secret verification Mandatory request authentication Protects against: Fake payment notifications Fraudulent credit generation Duplicate Payment Prevention Built-in: Idempotency control Transaction reference validation Payment status verification Prevents: Double credits Repeated processing SQL Injection Protection Secure database layer using: PDO Prepared Statements Parameter Binding No unsafe SQL concatenation. XSS Protection Output sanitization through: HTML escaping Input filtering Protects against: Cross-Site Scripting (XSS) Session theft Licensing Protection Centralized licensing system with: Unique license key Unique secret key Remote validation Domain verification Heartbeat monitoring Anti-Cloning Protection Licenses are linked to: Authorized domain Unique credentials Central validation server Unauthorized domain usage can be automatically blocked. ⚙ Administrative Tools User Management Create accounts Edit accounts Suspend users Adjust balances Financial Management Approve transactions Cancel orders Financial reports Content Management News management Download management Video management Social media management Global Settings Rates configuration Countdown management Payment gateway settings License management 🚀 Technology Stack PHP 8+ MySQL 9+ / MariaDB 11+ Bootstrap 5.3.8 AdminLTE 4..0.2 Mercado Pago SDK Stripe SDK PayPal API Binance Pay API Google reCAPTCHA v3 PDO Secure Database Layer 🛡 Final Result The L2JOne Website System delivers a professional-grade solution for Lineage 2 servers, combining: ✅ Modern Administrative Dashboard ✅ Advanced Donation System ✅ Automatic In-Game Delivery ✅ Real-Time Statistics ✅ Centralized Licensing Platform ✅ Financial Fraud Protection ✅ SQL Injection Protection ✅ XSS Protection ✅ CSRF Protection ✅ Anti-Replay Security ✅ Anti-Cloning Protection A complete, secure, and scalable platform built for professional Lineage 2 server operations DEMO SITE: "My Site" - Lineage II I am currently studying programming in Trybe | Cursos de Inteligência Artificial e Tecnologia Price: 150 USDT Payment methods: Crypto using the Tron network or PayPal (you pay an administrative fee). You can choose to pay a monthly fee to get new features or stick with your current version with security updates! The maintenance fee is only 30 USDT per month. Customers currently using my website: http://www.l2shadowwars.com/ Panel Admin: Database WebSIte PANEL PLAYER StartPack
-
By Banshee Garnet · Posted
Fixed a lot of null crashes, damn vanganth 🤣 Added engine that you can create your custom quests Extender dungeon systen so u can create as many dungeons as you like Possibility to create a server from scratch its possible just is the work + the license/month , many ask for the creation.. i can do everything u like, i can even implement UFOs to fly over gym so.. whatever your dream is i can be as close as possible! -
This is a bump: https://databay.com/
-
Hello, it is someone here to help me to make multiskill on helios pack? ( Not stacksub ) i want. On Hi5 i have this config . # When enabled, the following will be true: # All classes can learn all skills. # Skills of another class costs x2 SP to learn. # Skills of another race costs x2 SP to learn. # Skills of fighters/mages costs x3 SP to learn. # Default: False AltGameSkillLearn = True
-
-
Topics

Question
extr3me
Hy i have this error
and this is __init__.py
import sys from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance from java.util import Iterator from net.sf.l2j.gameserver.datatables import SkillTable from net.sf.l2j import L2DatabaseFactory from net.sf.l2j.gameserver.model.quest import State from net.sf.l2j.gameserver.model.quest import QuestState from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest qn = "9999_NPCBuffer" NPC=[40006] ADENA_ID=57 QuestId = 9999 QuestName = "NPCBuffer" QuestDesc = "custom" InitialHtml = "1.htm" print "importing custom: 9999: NPCBuffer" class Quest (JQuest) : def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr) def onEvent(self,event,st): htmltext = event count=st.getQuestItemsCount(ADENA_ID) if count < 1000 or st.getPlayer().getLevel() < 0 : htmltext = "<html><head><body>You dont have enought Adena.</body></html>" else: st.takeItems(ADENA_ID,0) st.getPlayer().setTarget(st.getPlayer()) #Wind Walk if event == "1": st.takeItems SkillTable.getInstance().getInfo(4342,2).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Acument if event == "2": st.takeItems SkillTable.getInstance().getInfo(4355,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Agility if event == "3": st.takeItems SkillTable.getInstance().getInfo(4355,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Berserker Spirit if event == "4": st.takeItems SkillTable.getInstance().getInfo(4352,2).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Bless Shield if event == "5": st.takeItems SkillTable.getInstance().getInfo(4353,6).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Blessed Body if event == "6": st.takeItems SkillTable.getInstance().getInfo(4347,6).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Blessed Soul if event == "7": st.takeItems SkillTable.getInstance().getInfo(4348,6).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) st.setState(COMPLETED) #Concentration if event == "8": st.takeItems SkillTable.getInstance().getInfo(4351,6).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Death Whisper if event == "9": st.takeItems SkillTable.getInstance().getInfo(4360,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Empower if event == "10": st.takeItems SkillTable.getInstance().getInfo(4356,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Focus if event == "11": st.takeItems SkillTable.getInstance().getInfo(4359,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Guidance if event == "12": st.takeItems SkillTable.getInstance().getInfo(4358,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Haste if event == "13": st.takeItems SkillTable.getInstance().getInfo(4357,2).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Magic Barrier if event == "14": st.takeItems SkillTable.getInstance().getInfo(4349,2).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Mental Shield if event == "15": st.takeItems SkillTable.getInstance().getInfo(4346,4).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Might if event == "16": st.takeItems SkillTable.getInstance().getInfo(4345,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Resist Shock if event == "17": st.takeItems SkillTable.getInstance().getInfo(4350,4).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Shield if event == "18": st.takeItems SkillTable.getInstance().getInfo(4344,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Vampiric Rage if event == "19": st.takeItems SkillTable.getInstance().getInfo(4354,4).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Dance of Aqua Guard if event == "30": st.takeItems SkillTable.getInstance().getInfo(307,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Concentration if event == "31": st.takeItems SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Earth Guard if event == "32": st.takeItems SkillTable.getInstance().getInfo(309,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Fire if event == "33": st.takeItems SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Fury if event == "34": st.takeItems SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Inspiration if event == "35": st.takeItems SkillTable.getInstance().getInfo(272,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Light if event == "36": st.takeItems SkillTable.getInstance().getInfo(277,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of the Mystic if event == "37": st.takeItems SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of Protection if event == "38": st.takeItems SkillTable.getInstance().getInfo(311,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Siren's Dance if event == "39": st.takeItems SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of the Vampire if event == "40": st.takeItems SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Dance of the Warrior if event == "41": st.takeItems SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer(),st.getPlayer()) return "3.htm" st.setState(State.COMPLETED) #Song of Champion if event == "50": st.takeItems SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Earth if event == "51": st.takeItems SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Flame Guard if event == "52": st.takeItems SkillTable.getInstance().getInfo(306,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Hunter if event == "53": st.takeItems SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Invocation if event == "54": st.takeItems SkillTable.getInstance().getInfo(270,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Life if event == "55": st.takeItems SkillTable.getInstance().getInfo(265,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Meditation if event == "56": st.takeItems SkillTable.getInstance().getInfo(363,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Renewal if event == "57": st.takeItems SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Storm Guard if event == "58": st.takeItems SkillTable.getInstance().getInfo(308,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Vengeance if event == "59": st.takeItems SkillTable.getInstance().getInfo(305,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Vitality if event == "60": st.takeItems SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Warding if event == "61": st.takeItems SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Water if event == "62": st.takeItems SkillTable.getInstance().getInfo(266,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Song of Wind if event == "63": st.takeItems SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer()) return "4.htm" st.setState(State.COMPLETED) #Greater Might if event == "64": st.takeItems SkillTable.getInstance().getInfo(1388,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Greater Shield if event == "65": st.takeItems SkillTable.getInstance().getInfo(1389,3).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Chant of Victory if event == "66": st.takeItems SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer(),st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Prophecy of Fire if event == "67": st.takeItems SkillTable.getInstance().getInfo(1356,1).getEffects(st.getPlayer(),st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Prophecy of Water if event == "68": st.takeItems SkillTable.getInstance().getInfo(1355,1).getEffects(st.getPlayer(),st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Prophecy of Wind if event == "69": st.takeItems SkillTable.getInstance().getInfo(1357,1).getEffects(st.getPlayer(),st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Cancellation if event == "70": st.takeItems SkillTable.getInstance().getInfo(4094,12).getEffects(st.getPlayer(),st.getPlayer()) st.getPlayer().stopAllEffects() return "1.htm" st.setState(State.COMPLETED) #MP-HP if event == "71": st.takeItems st.getPlayer().setCurrentCp(st.getPlayer().getMaxCp()) st.getPlayer().setCurrentHp(st.getPlayer().getMaxHp()) st.getPlayer().setCurrentMp(st.getPlayer().getMaxMp()) return "1.htm" st.setState(COMPLETED) #Chant of Magnus if event == "74": st.takeItems SkillTable.getInstance().getInfo(1413,1).getEffects(st.getPlayer(),st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Wild Magic if event == "75": st.takeItems SkillTable.getInstance().getInfo(1303,1).getEffects(st.getPlayer(),st.getPlayer()) return "2.htm" st.setState(State.COMPLETED) #Blesing Of Queen if event == "78": st.takeItems SkillTable.getInstance().getInfo(4699,3).getEffects(st.getPlayer(),st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Gift Of Queen if event == "79": st.takeItems SkillTable.getInstance().getInfo(4700,3).getEffects(st.getPlayer(),st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Blessing Of Seraphim if event == "80": st.takeItems SkillTable.getInstance().getInfo(4702,3).getEffects(st.getPlayer(),st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Gift Of Seraphim if event == "81": st.takeItems SkillTable.getInstance().getInfo(4703,3).getEffects(st.getPlayer(),st.getPlayer()) return "5.htm" st.setState(State.COMPLETED) #Fighter Buffs if event == "76": st.takeItems SkillTable.getInstance().getInfo(4360,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1388,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4342,2).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4359,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4358,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4357,2).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1354,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4350,4).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4347,6).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4346,4).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4344,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4345,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1393,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1392,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4352,2).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4349,2).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(274,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1182,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1189,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(275,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(271,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(310,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(269,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1356,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1352,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4346,4).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4700,3).getEffects(st.getPlayer(),st.getPlayer()) return "6.htm" st.setState(State.COMPLETED) #Mage Buffs if event == "77": st.takeItems SkillTable.getInstance().getInfo(4342,2).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4351,6).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4355,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4353,6).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4356,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4350,4).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4349,2).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4347,6).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4344,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4352,2).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1182,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1303,2).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(365,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(349,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(364,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(304,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(276,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(273,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1393,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(267,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(268,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(264,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1363,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1389,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1354,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1353,1).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1189,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(1392,3).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4346,4).getEffects(st.getPlayer(),st.getPlayer()) SkillTable.getInstance().getInfo(4702,3).getEffects(st.getPlayer(),st.getPlayer()) return "6.htm" st.setState(State.COMPLETED) #Noblesse Blessing if event == "98": st.takeItems SkillTable.getInstance().getInfo(1323,1).getEffects(st.getPlayer(),st.getPlayer()) return "1.htm" st.setState(State.COMPLETED) if htmltext != event: st.setState(COMPLETED) st.exitQuest(1) return htmltext def onTalk (self,npc,player): st = player.getQuestState(qn) htmltext = "<html><head><body>I have nothing to say to you</body></html>" st.setState(STARTED) return InitialHtml QUEST = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc) CREATED=State('Start',QUEST) STARTED=State('Started',QUEST) COMPLETED=State('Completed',QUEST) QUEST.setInitialState(CREATED) for npcId in NPC: QUEST.addStartNpc(npcId) QUEST.addTalkId(npcId)13 answers to this question
Recommended Posts