论坛调整完毕,全面开放注册,无需认证。

问答竞赛脚本

回复
头像
hagcse
Mr.GL
Mr.GL
帖子: 151
注册时间: 2018-02-25 15:50

问答竞赛脚本

帖子 hagcse » 2018-03-03 15:18

代码: 全选

# 问答竞赛
# Creat by - kennji
import math
import sys
from com.l2jserver.gameserver                                import Announcements
from java.lang                                                import System
from com.l2jserver.gameserver.model.quest                import State
from com.l2jserver.gameserver.model.quest                import QuestState
from com.l2jserver.gameserver.model.quest.jython        import QuestJython as JQuest
from com.l2jserver.gameserver.model.actor.instance        import L2PcInstance
from com.l2jserver.gameserver.model.actor.instance        import L2NpcInstance
from com.l2jserver.gameserver.network.serverpackets        import PlaySound
from com.l2jserver.gameserver.network.serverpackets        import MagicSkillUse 
from com.l2jserver.gameserver.network.serverpackets        import MagicSkillLaunched
from com.l2jserver.gameserver.network.serverpackets        import NpcHtmlMessage
from com.l2jserver.gameserver.network.serverpackets        import ActionFailed
from com.l2jserver.gameserver.network.serverpackets        import SystemMessage
from com.l2jserver.gameserver.network                        import SystemMessageId
from com.l2jserver.gameserver.cache                        import HtmCache
from com.l2jserver.gameserver.model                        import L2World
from com.l2jserver.util                                        import Rnd

# 答对赠送礼物ID
Reward = 6577
Amount = 2
Reward2 = 6578
Amount2 = 2
Reward3 = 6578
Amount3 = 2

qn = "Trivia"
MANAGER = 90012
QUESTIONS_DELAY = 60000

#=======问题 (一共16个问题)=======
Questions =[
"中国的首都是?",#1
"韩国的首都是?",#2
"美国的首都是?",#3
"英国的首都是?",#4
"日本的首都是?",#5
"问题6?",#6
"问题7?",#7
"问题8?",#8
"问题9?",#9
"问题10?",#10
"问题11?",#11
"问题12?",#12
"问题13?",#13
"问题14?",#14
"问题15?",#15
"问题16?"]#16
#===========================

#======答======
Answers =[
"北京",#1
"首尔",#2
"华盛顿",#3
"伦敦",#4
"东京",#5
"答6",#6
"答7",#7
"答8",#8
"答9",#9
"答10",#10
"答11",#11
"答12",#12
"答13",#13
"答14",#14
"答15",#15
"答16"]#16
#===========================


class Quest (JQuest):

    def __init__(self,id,name,descr):
        JQuest.__init__(self,id,name,descr)
        self.activated = "disattiva"
        self.Question = None
        self.Answer = None
        self.Answered = False
        self.Tries = []
        self.Counter = []

    def onTalk (self,npc,player) :
        npcId = npc.getNpcId()
        if player.isGM() == 1 :
          return "setting.htm"
        elif npcId == MANAGER and self.activated == "attiva":
          return "answerme.htm"
        elif npcId == MANAGER and self.activated == "loading":
          return "<html><body>现在正开始游戏<br> 请稍等!!!</body></html>"
        else:
          return "notstart.htm"

    def onAdvEvent (self,event,npc,player):

      if event == "StartEvent":
        if player.isGM():
          self.activated = "loading"
          self.startQuestTimer("AnnounceQuestion", QUESTIONS_DELAY,None, None, True) #StartTimer for questions (repeatable)
          Announcements.getInstance().announceToAll("知识竞赛比赛开始!")

      if event == "StopEvent":
          self.cancelQuestTimer("AnnounceQuestion", None, None)
          self.activated = "disattiva"
          self.Question = None
          self.Answer = None
          self.Answered = False
          self.Tries = []
          self.Counter = []
          Announcements.getInstance().announceToAll("知识竞赛比赛结束!")

      if event == "AnnounceQuestion":
        self.activated = "attiva"
        if len(self.Counter) >= len(Questions):
          self.startQuestTimer("StopEvent", 1000,None, None) #No more questions so event can stop
          Announcements.getInstance().announceToAll("问题没有了~结束了!拜拜~~~")
          return ""
        question = Rnd.get(len(Questions))      
        while self.Counter.count(question) > 0:
            question = Rnd.get(len(Questions))              
        else:                                
            self.Counter.append(question) 
        Announcements.getInstance().announceToAll(str(Questions[question]))
        self.Question = Questions[question]
        self.Answer = Answers[question]
        self.Tries = []
        self.Answered = False

      if event != ("AnnounceQuestion" or "StopEvent" or "StartEvent"):                          
        eventSplit = event.split( " " )
        evtType = eventSplit[ 0 ]
        if len(eventSplit) == 2:
          evtParam = eventSplit[ 1 ]
        else:
          return ""
        if evtType == "answer":
          if self.activated == "attiva":
            if not self.Answered:
              self.Tries.append(player)
              if self.Tries.count(player) <= 3:
                if str(evtParam) == str(self.Answer):
                  player.getQuestState(qn).giveItems(Reward,Amount)
                  player.sendPacket(PlaySound("ItemSound.quest_itemget"))
                  if Rnd.get(100) <= 30:
                      player.getQuestState(qn).giveItems(Reward2,Amount2)
                  if Rnd.get(100) <= 30:
                      player.getQuestState(qn).giveItems(Reward3,Amount3)
                  Announcements.getInstance().announceToAll(""+player.getName()+"答对了!!!恭喜")
                  self.Answered = True
                  return "answerme.htm"
                else:
                  player.sendPacket(SystemMessage.sendString("哈哈!错了~"))
                  return "answerme.htm"
              else:
                  player.sendPacket(SystemMessage.sendString("你的机会已用完,抢答下一道题目吧~^^ 加油~加油"))
            else:
                  player.sendPacket(SystemMessage.sendString("完了一点~别人已经答对了!!!"))
                  return "answerme.htm"


QUEST       = Quest(-1, qn, "events")


QUEST.addStartNpc(90012)
QUEST.addTalkId(90012)


-----------------------------------------------------------------------------------------------

l2jcn版本 请把l2jserver换成l2jcn

Trivia文件夹 放到 gameserver\data\scripts\events 内

90012.htm 文件 放到 gameserver\data\html\default 内

sql语句

INSERT INTO custom_npc VALUES ('90012', '14871', '猜猜看', '1', '问答竞赛管理员', '1', 'LineageMonster2.queen_of_cat', '8.00', '16.01', '85', 'female', 'L2Npc', '40', '2444', '1225', '0.00', '0.00', '40', '43', '30', '21', '20', '20', '0', '0', '1086', '471', '749', '313', '230', '0', '333', '0', '0', '0', '68', '109', '0', '0'); 
您没有权限查看这个主题的附件。
图片

回复