藏宝湾网游单机站

 找回密码
 注册

QQ登录

只需一步,快速开始

★【黑暗之光SF★我是大主宰SF】【神将三国SF】★

★【0.1折】★【变态网页游戏私服】★

★神将三国网页版上线送V5 5w元宝 5000w铜币 我是大主宰上线满v,80万元宝,小怪都爆元宝,耐玩长久稳定★

【原始传奇SF/维京传奇SF】【GM包站手游】

★【原始传奇SF/维京传奇SF】【GM包站手游】★

★2025火爆『传奇岁月+赤焰号角+维京传奇+原始传奇』爆战力称号BUFF+神装99999999万人PK★

首创可以单机 可以互动 可以赚烟钱的传奇

★全网独家 可以单机 可以互动的传奇!★

★全网唯一持续更新的可单机游戏!每15-25天更新一次内容,保持游戏新鲜度!! 众多独家的功能特色,众多你没见过的全新玩法,有能力的赚点烟钱,还能偶尔沙城战斗!★

★承接推广★
★承接推广★

★承接推广★

☆六一新区开放-放置传奇☆

★六一新区开放-放置传奇★

★可白嫖 上班摸鱼类 放置文字传奇游戏(放置休闲)qq群756025698★

★三职业复古★开局送神装★爆率100%★散人逆袭★

★三职业复古★开局送神装★爆率100%★散人逆袭★

★〖双线〗〖无忧传奇〗〖每日新区〗〖开局送神装 100%高爆率 装备元宝打怪爆〗★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★DNF★全职业平衡★公益服★
★DNF★全职业平衡★公益服★

【dnf86版本】【怀旧服】【全职业平衡】【非变态服】【非商业服】【775016356】

★承接推广★

★承接推广★

★承接推广★

★梦幻16门派全新大唐九黎★

★梦幻16门派全新大唐九黎★

★★新增全新门派九黎城,★不做垃圾,力争什么都做到最好★持续更新,长久稳定★

★承接推广★

★承接推广★

★承接推广★

查看: 865|回复: 2

[分享] [77M2] 传奇引擎 文采考官 脚本

[复制链接]
发表于 2015-6-24 10:29:19 | 显示全部楼层 |阅读模式

[77M2] 传奇引擎 文采考官 脚本

给会使用的朋友. 我不做任何解答. 77M2上手难度++++++

引擎的链接具体大家可以搜索一下 就不发类似广告的链接了.

unit Q3;

interface
  uses Classes, SysUtils, G_RankNameUnit, DefiniensConst;
  
procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
procedure Q3_1(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
procedure Q3_2(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
procedure Q3_3(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
procedure Q3_4(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
procedure Q_N(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
procedure Q_Y(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
procedure handover(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
procedure exam(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);

implementation

var
    QSize: Integer; //题库数量
    Questions: TStrings; //题库
                 
//随机提取题目
function RandomGetQuestion: String;
var
    Idx: Integer;
begin
    if QSize < 1 then Exit;
    Idx            :=    Random(QSize - 1);
  Result    :=    Questions[Idx];
end;

//获取经验值
function GetRewardExp(Player: TPlayObject): Integer;
begin
    Result    :=    0;
end;

//是否已经完成今日答题次数
function CheckFinished(Player: TPlayObject): Boolean;
begin

end;

//获取今日剩余答题次数
function GetOddDTCS(Player: TPlayObject): Integer;
begin
  Result    :=    0;
end;   
  
procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S=
[[
{S=<$UserName$>;C=70}\
  成为玛法大陆一个文武双全的勇士是很有必要的,如果不想被人\
说成四肢发达,头脑简单的人,那么你来找我就是摆脱前者冠以文人\
的第一步。\
<开始答题/@Q3_1>\
<存取考证/@Q3_2>                 {S=当前文采值:;C=251}{S=<$Value$>;C=250}\
<文官品位对照/@Q3_3>{S=【必读】;C=249}     {S=当前文官品位:;C=251}{S=<$OfficialRank$>;C=253}\
<奖励介绍/@Q3_4>{S=【奖励】;C=250}         {S=今日已答题次数:;C=251}{S=<$AddValue$>;C=250}\
<关闭/@exit>\
]];
var
    AMessage: String;
begin
    AMessage    :=    ReplaceStr(S, '<$UserName$>', Player.Name);
    AMessage    :=    ReplaceStr(AMessage, '<$Value$>', Player.N[_P_WC]);
    AMessage    :=    ReplaceStr(AMessage, '<$AddValue$>', Player.N[_P_YDTCS]);
    AMessage    :=    ReplaceStr(AMessage, '<$OfficialRank$>', GetOfficialRank(Player.N[_P_WC]));
    Npc.Say(Player, AMessage);
end;

procedure Q3_1(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S=
[[
{S=<$NPCName$>;C=243}:\
 {S=你当前的文采值为:;C=251}{S=<$Value$>;C=250}\
 文官品位为:{S=<$OfficialRank$>;C=253}\
 全部剩余答题数为:{S=<$Count$>;C=251} 次\
 今日已答题次数:{S=<$Value1$>;C=250} 次\
  今日剩余答题次数:{S=<$Value2$>;C=250} 次\
<$Command$>\\
<返回上一页/@Main>\
]];
var
    AMessage: String;
begin
    AMessage    :=    ReplaceStr(S, '<$NPCName$>', Npc.Name);
    AMessage    :=    ReplaceStr(AMessage, '<$Count$>', IntToStr(Player.N[_P_DTCS]));
    AMessage    :=    ReplaceStr(AMessage, '<$Value$>', IntToStr(Player.N[_P_WC]));
    AMessage    :=    ReplaceStr(AMessage, '<$Value1$>', IntToStr(Player.N[_P_YDTCS]));
    AMessage    :=    ReplaceStr(AMessage, '<$Value2$>', IntToStr(GetOddDTCS(Player)));
    AMessage    :=    ReplaceStr(AMessage, '<$OfficialRank$>', GetOfficialRank(Player.N[_P_WC]));
    AMessage    :=    ReplaceStr(AMessage, '<$Command$>', IIF(Player.N[_P_DTCS] = 0, '<{S=递交准考证书;C=250}/@handover>', '<开始答题/@exam>'));
    Npc.Say(Player, AMessage);
end;

procedure Q3_2(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S=[[
{S=<$UserName$>;C=70}:\
  如果你有很多考证没地方放,可以存放到我这里。{S=警告:存放的考;C=249}\
{S=证将被绑定。;C=249}\
  你当前寄存准考证数为:{S=<$Count$>;C=250}个\ \
<存放准考证书/@Q3_5>\
<取回准考证书/@Q3_6>\\
<返回/@main>
]];
var
  AMessage: String;
begin
  AMessage    :=    ReplaceStr(S, '<$UserName$>', Player.Name);
  AMessage    :=    ReplaceStr(AMessage, '<$Count$>', IntToStr(Player.N[_P_ZKZCF]));
    Npc.Say(Player, AMessage);
end;

procedure Q3_3(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S=
[[
{S=<$UserName$>;C=243}:\
 每正确回答我提出的问题,我将会给你一定{S=经验和声望;C=251}作为奖励,{S=同;C=250}\
{S=时你的文采值也会相应增加十点;C=250}。{S=文采值可以激发经验加成;C=254},文采值越\
高激发的经验倍数就越高。{S=官位对照表:;C=243}\
{S=81-400;C=254}          {S=书生;C=251}          {S=32001-45000;C=254}     {S=状元;C=251}\
{S=401-800;C=254}         {S=秀才;C=251}          {S=45001-60000;C=254}     {S=编修;C=251}\
{S=801-2000;C=254}        {S=举人;C=251}          {S=60001-100000;C=254}    {S=府丞;C=251}\
{S=2001-4000;C=254}       {S=解元;C=251}          {S=100001-150000;C=254}   {S=翰林学士;C=251}\
{S=4001-7000;C=254}       {S=贡士;C=251}          {S=150001-250000;C=254}   {S=御史中丞;C=251}\
{S=7001-10000;C=254}      {S=会元;C=251}          {S=250001-400000;C=254}   {S=詹士;C=251}\
{S=10001-14000;C=254}     {S=同进士出身;C=251}    {S=400001-700000;C=254}   {S=侍郎;C=251}\
{S=14001-18000;C=254}     {S=进士出身;C=251}      {S=700001-1000000;C=254}  {S=大学士;C=251}\
{S=18001-22000;C=254}     {S=探花;C=251}          {S=1000000以上;C=254}     {S=文曲星;C=251}\
{S=22001-32000;C=254}     {S=榜眼;C=251}\\\\\
[ <返回/@Main> ]
]];
var
  AMessage: String;
begin
  AMessage    :=    ReplaceStr(S, '<$UserName$>', Player.Name);
    Npc.SayEx(Player, 'Npc大窗口', AMessage);
end;

procedure Q3_4(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S=[[
出题费用= 1000 + 等级 X 1.1 X 100\\
<返回/@Main>
]];
begin
  
end;

procedure Q3_5(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin
    if Player.GetItemCount('准考证书') = 0 then     
      Player.SendCenterMessage('对不起,你身上没有准考证书了!', 0)
  else
  begin
    Npc.Take(Player, '准考证书', 1);
    Player.N[_P_ZKZCF]    :=    Player.N[_P_ZKZCF] + 1;
        Q3_2(Npc, Player, Args);
  end;
end;

procedure Q3_6(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
var
    AItem: TUserItem;
begin
  if Player.N[_P_ZKZCF] = 0 then         
      Player.SendCenterMessage('你已经没有存放的准考证书了', 0)
  else
  begin
    AItem    :=    Npc.GiveItem(Player, '准考证书');
    if AItem <> nil then
    begin
        AItem.Bind    :=    True;
      Player.UpdateItem(AItem);
            Player.N[_P_ZKZCF]    :=    Player.N[_P_ZKZCF] - 1;
    end;
    Q3_2(Npc, Player, Args);
  end;
end;

procedure handover(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
begin
    if Player.GetItemCount('准考证书') > 0 then
  begin  
      Npc.Take(Player, '准考证书');
        Player.N[_P_DTCS]    :=    Player.N[_P_DTCS] + 10;
      Q3_1(Npc, Player, Args);
  end
  else
      Npc.MessageBox(Player, '你的准考证呢,我怎么没看到?');
end;

procedure exam(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
var
    AQuestion: String;
begin
    if QSize > 0 then
  begin
      if not CheckFinished(Player) then
    begin
            if Player.N[_P_DTCS] > 0 then
          begin
            AQuestion    :=    RandomGetQuestion;
          if AQuestion <> '' then
          begin
              Player.Check[_P_CHECK_INExam]    :=    True; //设置当前处于答题状态
                    Player.N[_P_DTCS]    :=    Player.N[_P_DTCS] - 1;
                  Npc.Say(Player, AQuestion);
          end
          else
              Npc.MessageBox(Player, '无效的题目!!!');        
          end
          else
              Q3_1(Npc, Player, Args);
    end
    else
        Npc.MessageBox(Player, '你今天的答题次数已满,请明天再来吧!!!');
  end
  else
      Npc.MessageBox(Player, '题库为空,请稍候再来试试!');
end;

procedure Q_N(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S=[[
\\\
          {S=很遗憾,回答错误。;C=249}\
        你还有{S=<$Count$>次;C=250}答题机会。\\
          <继续答题/@exam>  <返回/@Q3_1>\
]];
begin
    if Player.Check[_P_CHECK_INExam] then //先检查是否处于答题状态,可以防止客户端数据包欺骗
  begin   
      Player.N[_P_YDTCS]    :=    Player.N[_P_YDTCS] + 1; //已答次数+1
        Player.Check[_P_CHECK_INExam]    :=    False; //答题结束
        Npc.Say(Player, ReplaceStr(S, '<$Count$>', IntToStr(Player.N[_P_DTCS])));
  end;
end;

procedure Q_Y(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
const
S=[[
\\
          {S=恭喜你,回答正确。;C=250}\\
        {S=你当前的文采值为:;C=251}{S=<$WC$>;C=250}\
        你还有{S=<$Count$>次;C=250}答题机会。\\
          <继续答题/@exam>  <返回/@Q3_1>\
]];
var
    AMessage: String;
  AOldWC: Integer;
begin
    if Player.Check[_P_CHECK_INExam] then //先检查是否处于答题状态,可以防止客户端数据包欺骗
  begin
      Player.N[_P_YDTCS]    :=    Player.N[_P_YDTCS] + 1; //已答次数+1
        Player.Check[_P_CHECK_INExam]    :=    False;  //答题结束
    AOldWC    :=    Player.N[_P_WC];
        Player.N[_P_WC]    :=    Player.N[_P_WC] + 10; //增加文采  
    Player.AddExp(GetRewardExp(Player));
      AMessage        :=    ReplaceStr(S, '<$WC$>', IntToStr(Player.N[_P_WC]));
      AMessage        :=    ReplaceStr(AMessage, '<$Count$>', IntToStr(Player.N[_P_DTCS]));
    if not SameOfficialRank(AOldWC, Player.N[_P_WC]) then
        SetPlayRankName(Player);
        Npc.Say(Player, AMessage);
  end;
end;

procedure LoadQuestions;
var
    ASource: TStrings;   
  S: String;
  I: Integer;
begin
    Questions.Clear;
    ASource    :=    Gamelib.TryGetResource('文采题库');
    if ASource <> nil then
  begin
        for I    :=    0 to ASource.Count - 1 do
    begin
            S    :=    ASource[I];
      //以";"开始的行被忽略掉
      if (Trim(S)<>'') and (S[1]<>';') then
          Questions.Add(S);
    end;   
  end;
    QSize    :=    Questions.Count;
end;

initialization
    Questions    :=    TStringList.Create;
  LoadQuestions;
  
finalization
    FreeAndNil(Questions);

end.


常量记得加上:
unit DefiniensConst;
const _P_CHECK_INExam    =    1; //是否处于答题状态
const _P_WC            =    2; //文采值
const _P_DTCS        =    3; //答题次数
const _P_YDTCS  = 4; //今日已答题次数
const _P_ZKZCF    =    5; //准考证存放数量






 楼主| 发表于 2015-6-24 10:30:00 | 显示全部楼层
还有  记得生成一个  '文采题库'

;一行一题,空白行及';'开始的行不计
战国史上“合纵”就是六国都听秦国的指挥,游说六国“连横”的是苏\秦对吗?\ \<对/@Q_Y>\<不对/@Q_N>\
如果你是一名篮球运动员,当你犯规5次的时候将?\ \<被罚黄牌/@Q_N>\<被罚红牌/@Q_N>\<被罚下场/@Q_Y>\
此日聚千人,空巷观潮头(打一中国地名)\ \<汶川/@Q_N>\<黑水/@Q_N>\<香港/@Q_Y>\<会泽/@Q_N>\
《红楼梦》中的男、女主人公分别是谁?\ \<贾宝玉、薛宝钗/@Q_Y>\<王熙凤、史湘云/@Q_N>\<林黛玉、贾宝玉/@Q_N>\<林黛玉、薛宝钗/@Q_N>\
第一次世界大战的导火索是什么?\ \<&意土战争/@ >\<&萨拉热窝事件/@  >\<&日德兰海战/@ >\<&俄波战争/@ >\
狗只靠舌头散发身体的热量是远远不够的,他还要通过急促喘气的方式\才能降温,是吗?\ \<是/@Q_Y>\<不是/@Q_N>\
在数学上,小数就是比1小的数,对吗?\ \<对/@Q_N>\<不对/@Q_Y>\
京剧《铡美案》中主持正义的官员是谁?被铡的是谁?\ \<宋慈,陈世美/@Q_N>\<包拯,庞太师/@Q_N>\<包拯,陈世美/@Q_Y>\<宋慈,西门庆/@Q_N>\
人工降雨是通过什么物质来是想的?\ \<冰/@Q_N>\<液态氮/@Q_N>\<干冰/@Q_Y>\<毛毛雨/@Q_N>\
远古时代人民用“钻木取火”得方法获得火种,这是利用震动发声的原\理,是吗?\ \<是/@Q_N>\<不是/@Q_Y>\
我国最大的煤矿在山西大同,是吗?\ \<是/@Q_Y>\<不是/@Q_N>\
战国时的“将相和”故事中,将是指廉颇,相是指蔺相如,都是齐国的\重臣对吗?\ \<对/@Q_N>\<不对/@Q_Y>\
太阳系中九大行星中被称为“飞毛腿”的是什么星?\ \<土星/@Q_N>\<金星/@Q_N>\<火星/@Q_N >\<水星/@Q_Y>\
“四岁让梨”,“七步成诗”分别说的是哪两个人的故事?\ \<孔融、曹植/@Q_Y>\<孔子、曹植/@Q_N>\<司马光、曹丕/@Q_N>\<孔融、曹丕/@Q_N>\
西游记中有一位占山为王,以火攻擅长的,自称是牛魔王孩儿的妖精\是红孩儿,又叫圣婴大王,对吗?\ \<对/@Q_Y>\<不对/@Q_N>\
人体最坚硬的部位是牙齿吗?\ \<是/@Q_Y>\<不是/@Q_N>\
推动经济全球化进程的首先和主要是( )。\ \<跨国公司/@Q_N>\<私人企业/@Q_N>\<发达资本主义国家/@Q_Y>\<发展中国家/@Q_N>\
地球每时每刻都在自转,自转的方向是自西向东,是吗?\ \<是/@Q_Y>\<不是/@Q_N>\
推铅球运动的起源是什么?\ \<搬运炮弹/@Q_Y>\<打猎/@Q_N>\<摘苹果/@Q_N>\
花盆内放蛋壳或茶叶是否有助于盆花的迅速生长和开花?\ \<是/@Q_N>\<否/@Q_Y>\
“出师未捷身先死,常使英雄泪满襟”是陆游的著名诗句,这首诗所怀念\的是诸葛亮,是吗?\ \<是/@Q_N>\<不是/@Q_Y>\
一个人从远处走向一块竖直挂着的平面镜,他在境内的像的大小:\ \<逐渐变小/@Q_N>\<逐渐变大/@Q_N>\<不变/@Q_Y>\<先变小再变大/@Q_N>\
小孔成像的实验中看到的是什么样的像?\ \<正立的像/@Q_N>\<倒立的像/@Q_Y>\
收录了从汉代到隋唐的全部乐府作品的诗集是哪部作品,编者是谁?\ \<《万首唐人绝句》,薛涛/@Q_N>\<《乐府诗集》,郭茂倩/@Q_Y>\<《陶渊明集》,陶渊明/@Q_N>\
著名画家毕加索是西班牙人嘛?\ \<是/@Q_Y>\&不是/@Q_N>\
正在运动中的物体,如果受到的所有外力突然消失,它将减速运动直\至停止,对嘛?\ \<是/@Q_N>\<不是/@Q_Y>\
世界上最早的风向计和自动计时器都是谁发明的?\ \<徐启光/@Q_N>\<荷马/@Q_N>\<张衡/@Q_Y>\<阿基米德/@Q_N>\
邮票的周围为什么有许多齿孔?\ \<方便撕开邮票/@Q_Y>\<方便邮寄/@Q_N>\<美观好看/@Q_N>\
“飞人”乔丹曾多少次获得NBA总冠军称号?\ \<六次/@Q_Y>\<七次/@Q_N>\<四次/@Q_N>\<五次/@Q_N>\
人体最坚硬的部位是指甲嘛?\ \<是/@Q_N>\<不是/@Q_Y>\
一个成熟的苹果,最甜的部位是中间,是吗?\ \<是/@Q_N>\<不是/@Q_Y>\
江边新月小,帘下放心悬(打一中国地名)\ \<牡丹江/@Q_N>\<潍坊/@Q_N>\<淮南/@Q_N>\<沙市/@Q_Y>\
多数鱼类背部发黑、腹部发白,其原因是:\ \<长期进化形成的保护色/@Q_Y>\<背部鱼鳞多,吸收光线多/@Q_N>\
我国最早的学校出现在什么时候?\ \<商/@Q_N>\<周/@Q_N>\<隋/@Q_N>\<夏/@Q_Y>\
下列哪项仅属国家所有?\ \<煤矿/@Q_Y>\<森林/@Q_N>\<00原/@Q_N>\<滩涂/@Q_N>\
远古时代人们用“钻木取火”的方法获得火种,这是利用摩擦生热的原\理,是吗?\ \<是/@Q_Y>\<不是/@Q_N>\
评定“安史之乱”的将领哪两位?\ \<安禄山和史思明/@Q_N>\<寇仲和徐子陵/@Q_N>\<李光弼和郭子仪/@Q_Y>\<秦琼和尉迟恭/@Q_N>\
“酸、甜、咸、苦”四味中,舌尖对什么味道最敏感?\ \<酸/@Q_N>\<甜/@Q_Y>\<咸/@Q_N>\<苦/@Q_N>\
佛教四大名山中,相传为观音菩萨所居之处的是?\ \<太行山/@Q_N\<普陀山/@Q_Y>\
被称为“起名星”的是太阳系中得什么星?\ \<木星/@Q_N>\<金星/@Q_Y>\
儒家是先秦诸子百家的主要思想派别之一,儒家的主要代表人物是墨\子嘛?\ \<是/@Q_Y>\<不是/@Q_N>\
发表于 2015-6-24 12:04:26 | 显示全部楼层
不明觉厉~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明

排行榜|联系我们|小黑屋|手机版|Archiver|游戏藏宝湾 |

GMT+8, 2025-5-29 06:03 , Processed in 0.052974 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表