DarkSheep个人小站

  • 首页
  • 阿里云
    • 优惠活动
    • 应用教程
  • 博主日常
    • 陈年往事
    • 时光相册
    • 阴晴风雨
    • 学思笔记
  • 魔兽地图
    • 源图速递
    • 汉化发布
    • 地图攻略
    • 汉化笔记
    • 汉化教程
    • 编辑器教程
  • 关于肥羊
  • 打赏肥羊
人如蝼蚁,命若尘埃,却依旧想在这世间留下痕迹
  1. 首页
  2. 魔兽地图
  3. 汉化笔记
  4. 正文

肥羊修罗场_2.5 汉化笔记

2020年2月6日 2597点热度 0人点赞 4条评论

— — —本文最近由DarkSheep于2020年2月6日下午5时16分更新!— — —

网易官方对战平台的肥羊修罗场_2.5b已经将原有的save/load保存加载积分解锁英雄模式调整为开局输入-load识别你的地图等级来解锁相应等级的英雄。如下图:

我当前的平台等级为2
没有输入-load时漆黑之弓是锁定状态(不可选)
输入-load后就可以选择了

一、准备工作

endglobals
     native DzAPI_Map_HasMallItem takes player whichPlayer, string key returns boolean

二、英雄重复购买

function l1lIIII takes nothing returns nothing
call SetPlayerUnitAvailableBJ(GetUnitTypeId(GetSoldUnit()),false,GetEnumPlayer())
endfunction

把上面的false改成true后可以重复购买英雄


三、VIP英雄

function IlllI1I takes nothing returns boolean
if (DzAPI_Map_HasMallItem(GetTriggerPlayer(),"SPECARENA1") == true) then
return true
endif

四、积分系统→等级系统

 set l11I1I=CreateTrigger()
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(0),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(1),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(2),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(3),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(4),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(5),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(6),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(7),"-load ",false)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(8),"-load ",false)
 call TriggerAddCondition(l11I1I,Condition(function l11IlII))
 call TriggerAddAction(l11I1I,function l11l1II)
function l11IlII takes nothing returns boolean
 if(not(SubStringBJ(GetEventPlayerChatString(),1,6)==GetEventPlayerChatStringMatched()))then
 return false
 endif
 if(not(StringLength(GetEventPlayerChatString())>6))then
 return false
 endif
 return true
 endfunction
function l11l1II takes nothing returns nothing
 set ll11l1=SubStringBJ(GetEventPlayerChatString(),7,StringLength(GetEventPlayerChatString()))
 set ll1Il1=Illl1lI(ll11l1)
 if(l11l11I())then
 set lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())]=1
 set lIl111[GetConvertedPlayerId(GetTriggerPlayer())]=ll1I11[2]
 set l1III1[2]=200
 set l1III1[3]=450
 set l1III1[4]=750
 set l1III1[5]=1100
 set l1III1[6]=1450
 set l1III1[7]=2000
 set l1III1[8]=2500
 set l1III1[9]=3150
 set l1III1[10]=3500
 set l1III1[11]=4000
 set l1III1[12]=4700
 set l1III1[13]=5200
 set l1III1[14]=5750
 set l1III1[15]=6200
 set l1III1[16]=6750
 set l1III1[17]=7150
 set l1III1[18]=7700
 set l1III1[19]=8400
 set l1III1[20]=8800
 set l1III1[21]=9400
 set l1III1[22]=10000
 set l1III1[23]=12000
 set l1III1[24]=14000
 set l1III1[25]=18000
 set bj_forLoopAIndex=2
 set bj_forLoopAIndexEnd=25
 loop
 exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
 if(l11IllI())then
 set lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())]=GetForLoopIndexA()
 else
 endif
 set bj_forLoopAIndex=bj_forLoopAIndex+1
 endloop
 set bj_forLoopAIndex=1
 set bj_forLoopAIndexEnd=lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())]
 loop
 exitwhen bj_forLoopAIndex>bj_forLoopAIndexEnd
 call SetPlayerTechResearchedSwap(lIIl11[GetForLoopIndexA()],1,GetTriggerPlayer())
 set bj_forLoopAIndex=bj_forLoopAIndex+1
 endloop
 call DisplayTimedTextToForce(IlI111I(GetTriggerPlayer()),15.00,("你的积分 -"+(I2S((lIIII1[GetConvertedPlayerId(GetTriggerPlayer())]+lIl111[GetConvertedPlayerId(GetTriggerPlayer())]))+(" "+(("等级 - |cffd42424"+(I2S(lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())])+(" |r 下一等级积分 - "+I2S(l1III1[(lIIIl1[GetConvertedPlayerId(GetTriggerPlayer())]+1)])))))))))
 else
 call DisplayTextToForce(IlI111I(GetTriggerPlayer()),"代码加载错误!")
 endif
 endfunction

增加变量和DZapi代码

integer udg_dzdtdj=0

endglobals
native DzAPI_Map_GetMapLevel takes player whichPlayer returns integer

保留原有触发事件

 call TriggerRegisterPlayerChatEvent(l11I1I,Player(0),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(1),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(2),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(3),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(4),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(5),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(6),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(7),"-load",true)
 call TriggerRegisterPlayerChatEvent(l11I1I,Player(8),"-load",true)
 call TriggerAddAction(l11I1I,function l11l1II)

删除对代码长度的判断:

function l11IlII takes nothing returns boolean
 if(not(SubStringBJ(GetEventPlayerChatString(),1,6)==GetEventPlayerChatStringMatched()))then
 return false
 endif
 if(not(StringLength(GetEventPlayerChatString())>6))then
 return false
 endif
 return true
 endfunction 

以下是错误的动作写法:

function l11l1II takes nothing returns nothing
     set udg_dzdtdj=DzAPI_Map_GetMapLevel(GetTriggerPlayer())
     if ( ( udg_dzdtdj == 1 ) ) then
         call DisplayTimedTextToPlayer(GetTriggerPlayer(), 0, 0, 10.00, "|cFFFF3333你的地图等级只有1级,只能选择初始的9个英雄!请尽快提升地图等级吧!|r")
     else
         if ( ( udg_dzdtdj == 2 ) ) then
             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00B', 1)
         else
             if ( ( udg_dzdtdj == 3 ) ) then
                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00D', 1)
             else
                 if ( ( udg_dzdtdj == 4 ) ) then
                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00E', 1)
                 else
                     if ( ( udg_dzdtdj == 5 ) ) then
                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00F', 1)
                     else
                         if ( ( udg_dzdtdj == 6 ) ) then
                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00G', 1)
                         else
                             if ( ( udg_dzdtdj == 7 ) ) then
                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00H', 1)
                             else
                                 if ( ( udg_dzdtdj == 8 ) ) then
                                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00I', 1)
                                 else
                                     if ( ( udg_dzdtdj == 9 ) ) then
                                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00J', 1)
                                     else
                                         if ( ( udg_dzdtdj == 10 ) ) then
                                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00K', 1)
                                         else
                                             if ( ( udg_dzdtdj == 11 ) ) then
                                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00L', 1)
                                             else
                                                 if ( ( udg_dzdtdj == 12 ) ) then
                                                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00M', 1)
                                                 else
                                                     if ( ( udg_dzdtdj == 13 ) ) then
                                                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00N', 1)
                                                     else
                                                         if ( ( udg_dzdtdj == 14 ) ) then
                                                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00O', 1)
                                                         else
                                                             if ( ( udg_dzdtdj == 15 ) ) then
                                                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00P', 1)
                                                             else
                                                                 if ( ( udg_dzdtdj == 16 ) ) then
                                                                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00Q', 1)
                                                                 else
                                                                     if ( ( udg_dzdtdj == 17 ) ) then
                                                                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00R', 1)
                                                                     else
                                                                         if ( ( udg_dzdtdj == 18 ) ) then
                                                                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00S', 1)
                                                                         else
                                                                             if ( ( udg_dzdtdj == 19 ) ) then
                                                                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00T', 1)
                                                                             else
                                                                                 if ( ( udg_dzdtdj == 20 ) ) then
                                                                                     call AddPlayerTechResearched(GetTriggerPlayer(), 'R00U', 1)
                                                                                 else
                                                                                     if ( ( udg_dzdtdj == 21 ) ) then
                                                                                         call AddPlayerTechResearched(GetTriggerPlayer(), 'R00A', 1)
                                                                                     else
                                                                                         if ( ( udg_dzdtdj == 22 ) ) then
                                                                                             call AddPlayerTechResearched(GetTriggerPlayer(), 'R00V', 1)
                                                                                         else
                                                                                             if ( ( udg_dzdtdj == 23 ) ) then
                                                                                                 call AddPlayerTechResearched(GetTriggerPlayer(), 'R00W', 1)
                                                                                             else
                                                                                             endif
                                                                                         endif
                                                                                     endif
                                                                                 endif
                                                                             endif
                                                                         endif
                                                                     endif
                                                                 endif
                                                             endif
                                                         endif
                                                     endif
                                                 endif
                                             endif
                                         endif
                                     endif
                                 endif
                             endif
                         endif
                     endif
                 endif
             endif
         endif
     endif
 endfunction

上面的动作写法忽略了源代码中的一段循环,这段循环是给玩家设置N个科技。这样玩家才可以选择等级以下的英雄。所以,我们来尝试正确的写法!

先对地图等级做判断,如果地图等级=1,则直接显示游戏文本。否则用变量捕捉地图等级,再使用循环整数A进行循环,当循环整数A小于地图等级时,执行一次玩家科技动作。全部循环结束后,显示游戏提示文本。
function l11l1II takes nothing returns nothing
   if ((DzAPI_Map_GetMapLevel(GetTriggerPlayer()) == 1)) then
        call DisplayTimedTextToPlayer( GetTriggerPlayer(), 0, 0, 30, "|cffd42424地图等级1级,解锁英雄失败!|r" )
    else
        set udg_dzdtdj = DzAPI_Map_GetMapLevel(GetTriggerPlayer())
        set bj_forLoopAIndex = 2
        set bj_forLoopAIndexEnd = udg_dzdtdj
        loop
            exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
            call SetPlayerTechResearchedSwap(lIIl11[GetForLoopIndexA()], 1, GetTriggerPlayer() )
            set bj_forLoopAIndex = bj_forLoopAIndex + 1
        endloop
        call DisplayTimedTextToPlayer( GetTriggerPlayer(), 0, 0, 30, "|cffd42424解锁英雄成功!|r" )
    endif
endfunction

相关文章

  • 魔兽地图汉化新教程第11章:如何快速更新汉化地图
  • 使用魔兽争霸编辑器碰到的问题
  • 《黑暗前幕_正邪之战 1.75》预览图和载入图替换笔记
  • 肥羊镇最后的30分钟_EX8.修复笔记
  • 肥羊修罗场_2.5a 冷冷先生的装备图鉴
标签: 肥羊修罗场
最后更新:2020年2月6日

DarkSheep

给我买杯咖啡吧!感谢您使用肥羊汉化系列地图。如果您觉得地图有趣,给我买杯咖啡吧!您的打赏将激励着我,我将为之继续努力。您可以通过微信或支付宝打赏。

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • 林俊億

    肥羊修羅2.5 可改成單人也可以有積分獎勵嗎
    沒人跟我玩嗚嗚

    2019年2月11日
    回复
    • DarkSheep

      @林俊億 我博客的版本单人可以存积分呀。

      2019年2月15日
      回复
  • 滕宝聚

    保存的积分在文件夹里找不到 怎么解决

    2019年2月16日
    回复
    • DarkSheep

      @滕宝聚 在魔兽根目录的SpecArena文件夹中。

      2019年2月16日
      回复
  • 取消回复

    此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据。

    DarkSheep

    给我买杯咖啡吧!感谢您使用肥羊汉化系列地图。如果您觉得地图有趣,给我买杯咖啡吧!您的打赏将激励着我,我将为之继续努力。您可以通过微信或支付宝打赏。

    关于肥羊
    打赏肥羊
    全博客搜索(非常实用!)
    标签聚合
    肥羊竞技场 肥羊毁灭记 阿里云 绝地羊岛:快活战场 神域镇魂曲 肥羊修罗场 肥羊军团的荣耀战争 肥羊镇最后的30分钟 游戏剧本怎么写 肥羊世纪的咸鱼生活 肥羊神教的暗黑地牢 五月的肥羊斗兽场 肥羊的圣诞礼物 肥羊营地的BOSS战 肥羊镇的暴虐魔王 魔兽编辑器教程 肥羊们的征途 魔兽地图汉化新教程 命运进行曲ORPG 德州电锯杀羊狼
    最新 热点 随机
    最新 热点 随机
    肥羊的圣诞礼物_1.24 单位建议收集 肥羊的圣诞礼物_1.23 装备合成指南 肥羊的圣诞礼物_1.23 魔兽地图下载 肥羊镇的暴虐魔王_1.48 更新日志速递 肥羊镇最后的30分钟_EX26 更新日志速递 肥羊的圣诞礼物_1.11 魔兽地图下载 《游戏剧本怎么写》读书笔记4 文本 肥羊镇的暴虐魔王_1.47 更新日志速递 肥羊镇的暴虐魔王_1.46 更新日志速递 肥羊镇的暴虐魔王_1.44 更新日志速递
    肥羊镇最后的30分钟_EX25 更新日志速递肥羊镇的暴虐魔王_1.46 更新日志速递肥羊镇的暴虐魔王_1.47 更新日志速递《游戏剧本怎么写》读书笔记4 文本肥羊镇的暴虐魔王_1.48 更新日志速递肥羊的圣诞礼物_1.23 魔兽地图下载肥羊的圣诞礼物_1.23 装备合成指南肥羊的圣诞礼物_1.24 单位建议收集肥羊镇的暴虐魔王_1.42 更新日志速递肥羊竞技场_1.03 更新日志速递
    WorldEdit触发器(Trigger)浅析:第三章 ★Triggert动作 肥羊修罗场_2.5a 冷冷先生的装备图鉴 肥羊镇的暴虐魔王_1.31 更新日志速递 肥羊军团的荣耀战争_1.11 更新日志速度 肥羊镇的暴虐魔王_1.00 星辰、闪耀的新手指南 2020年2月13日 成年人的选择 肥羊镇最后的30分钟_EX5 更新日志精翻 2019.02.02 不知道说什么 肥羊镇的暴虐魔王_1.00 萌新常见误区 肥羊镇最后的30分钟_5.5.8 魔兽地图下载
    传送门
    Irinabot源图库 俄语单词翻译 Irina征战海外

    COPYRIGHT © 2021 DarkSheep. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    赣ICP备20000111号-1