铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 1554|回复: 5

我想把战斗查看状态修改成可以查看敌人和我方的,不用运行DIY文件,运行游戏出错 求解

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

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 fff71669 于 2012-6-29 09:29 编辑

ldcr.lua 原始数据是
--战斗查看状态
function War_StatusMenu()
  WAR.ShowHead = 0
  Menu_Status()
  WAR.ShowHead = 1
  Cls()
end
我修改的数据是
function War_StatusMenu()
  WAR.ShowHead = 0
local menu={
     {"地图选点查看",CC.MapWatch,1},
         {"我方人员列表",CC.FriList,1},
         {"敌方人员列表",CC.EnemyList,1},
    };
  local nexty=CC.MainSubMenuY+CC.SingleLineHeight;
  ShowMenu(menu,3, 0, CC.MainSubMenuX, CC.MainSubMenuY, 0, 0, 1, 1, CC.DefaultFont, C_ORANGE, C_WHITE)
               
end
function CC.MapWatch()
local x = WAR.Person[WAR.CurID]["坐标X"];
  local y = WAR.Person[WAR.CurID]["坐标Y"];
  local page = 1
  War_CalMoveStep(WAR.CurID,128,1);
  WarDrawMap(1,x,y);
  ShowScreen();
  x,y=War_SelectMove()
  if x == nil then
   return
  end
  local i
  local id = 0
for i = 0,WAR.PersonNum do
  if WAR.Person["坐标X"] == x and WAR.Person["坐标Y"] == y and WAR.Person["死亡"] == false then
   id = WAR.Person["人物编号"]
   break;
  end
end
while true do
  Cls()
  ShowPersonStatus_sub(id,page)
  ShowScreen();
  local keypress = WaitKey()
  if keypress == VK_LEFT then
      page = page - 1;
     elseif keypress == VK_RIGHT then
      page = page + 1;
  elseif keypress == 27 then
     break
  end
end
end
function CC.FriList()
local menu = {};
local list = {}
local page = 1
for i = 1,WAR.PersonNum do
  if WAR.Person[i - 1]["我方"] == true and WAR.Person[i - 1]["死亡"] == false then
   menu[#menu + 1] = {JY.Person[WAR.Person[i - 1]["人物编号"]]["姓名"],nil,1}
   list[#list + 1] = WAR.Person[i - 1]["人物编号"]
  end
end
Cls()
local r = ShowMenu(menu,#menu, 0, CC.MainSubMenuX, CC.MainSubMenuY, 0, 0, 1, 1, CC.DefaultFont, C_ORANGE, C_WHITE)
if r < 1 then
  return
end
while true do
  Cls()
  ShowPersonStatus_sub(list[r],page)
  ShowScreen();
  local keypress = WaitKey()
  if keypress == VK_LEFT then
     page = page - 1;
     elseif keypress == VK_RIGHT then
     page = page + 1;
    elseif keypress == VK_UP then
     r = r - 1
    elseif keypress == VK_DOWN then
     r = r + 1
  elseif keypress == 27 then
     break
  end
  if r < 1 then
   r = 1
  end
  if r > #list then
   r = #list
  end
end
end
function CC.EnemyList()
local menu = {};
local list = {}
local page = 1
for i = 1,WAR.PersonNum do
  if WAR.Person[i - 1]["我方"] == false and WAR.Person[i - 1]["死亡"] == false then
   menu[#menu + 1] = {JY.Person[WAR.Person[i - 1]["人物编号"]]["姓名"],nil,1}
   list[#list + 1] = WAR.Person[i - 1]["人物编号"]
  end
end
Cls()
local r = ShowMenu(menu,#menu, 0, CC.MainSubMenuX, CC.MainSubMenuY, 0, 0, 1, 1, CC.DefaultFont, C_ORANGE, C_WHITE)
if r < 1 then
  return
end
local id = list[r]
while true do
  Cls()
  ShowPersonStatus_sub(list[r],page)
  ShowScreen();
  local keypress = WaitKey()
  if keypress == VK_LEFT then
     page = page - 1;
     elseif keypress == VK_RIGHT then
     page = page + 1;
    elseif keypress == VK_UP then
     r = r - 1
    elseif keypress == VK_DOWN then
     r = r + 1
  elseif keypress == 27 then
     break
  end
  if r < 1 then
   r = 1
  end
  if r > #list then
   r = #list
  end
end
  WAR.ShowHead = 1
  Cls()
end
能够进入新开游戏读档界面 但是下一步界面就出错了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-6-29 09:55 | 显示全部楼层
本帖最后由 二宫和也 于 2012-6-29 09:58 编辑

回复 fff71669 的帖子

把以下代码黏贴到LDCR.lua的末尾试试,不用删掉原来的函数,运行的时候会自动覆盖;其实就是把原本的cc.xxx改成了local function xxx

代码出自http://www.txdx.net/forum.php?mod=viewthread&tid=529463&highlight=%D7%B4%CC%AC

  1. local function MapWatch()
  2.         local x = WAR.Person[WAR.CurID]["坐标X"];
  3.   local y = WAR.Person[WAR.CurID]["坐标Y"];
  4.   local page = 1
  5.   War_CalMoveStep(WAR.CurID,128,1);
  6.   WarDrawMap(1,x,y);
  7.   ShowScreen();
  8.   x,y=War_SelectMove()
  9.   if x == nil then
  10.           return
  11.   end
  12.   local i
  13.   local id = 0
  14.         for i = 0,WAR.PersonNum do
  15.                 if WAR.Person[i]["坐标X"] == x and WAR.Person[i]["坐标Y"] == y and WAR.Person[i]["死亡"] == false then
  16.                         id = WAR.Person[i]["人物编号"]
  17.                         break;
  18.                 end
  19.         end
  20.         while true do
  21.                 Cls()
  22.                 ShowPersonStatus_sub(id,page)
  23.                 ShowScreen();
  24.                 local keypress = WaitKey()
  25.                 if keypress == VK_LEFT then
  26.                     page = page - 1;
  27.                    elseif keypress == VK_RIGHT then
  28.                     page = page + 1;
  29.                 elseif keypress == 27 then
  30.                           break
  31.                 end
  32.         end
  33. end

  34. local function FriList()
  35.         local menu = {};
  36.         local list = {}
  37.         local page = 1
  38.         for i = 1,WAR.PersonNum do
  39.                 if WAR.Person[i - 1]["我方"] == true and WAR.Person[i - 1]["死亡"] == false then
  40.                         menu[#menu + 1] = {JY.Person[WAR.Person[i - 1]["人物编号"]]["姓名"],nil,1}
  41.                         list[#list + 1] = WAR.Person[i - 1]["人物编号"]
  42.                 end
  43.         end
  44.         Cls()
  45.         local r = ShowMenu(menu,#menu, 0, CC.MainSubMenuX, CC.MainSubMenuY, 0, 0, 1, 1, CC.DefaultFont, C_ORANGE, C_WHITE)
  46.         if r < 1 then
  47.                 return
  48.         end
  49.         while true do
  50.                 Cls()
  51.                 ShowPersonStatus_sub(list[r],page)
  52.                 ShowScreen();
  53.                 local keypress = WaitKey()
  54.                 if keypress == VK_LEFT then
  55.                           page = page - 1;
  56.                    elseif keypress == VK_RIGHT then
  57.                           page = page + 1;
  58.                   elseif keypress == VK_UP then
  59.                           r = r - 1
  60.                   elseif keypress == VK_DOWN then
  61.                           r = r + 1
  62.                 elseif keypress == 27 then
  63.                           break
  64.                 end
  65.                 if r < 1 then
  66.                         r = 1
  67.                 end
  68.                 if r > #list then
  69.                         r = #list
  70.                 end
  71.         end
  72. end

  73. local function EnemyList()
  74.         local menu = {};
  75.         local list = {}
  76.         local page = 1
  77.         for i = 1,WAR.PersonNum do
  78.                 if WAR.Person[i - 1]["我方"] == false and WAR.Person[i - 1]["死亡"] == false then
  79.                         menu[#menu + 1] = {JY.Person[WAR.Person[i - 1]["人物编号"]]["姓名"],nil,1}
  80.                         list[#list + 1] = WAR.Person[i - 1]["人物编号"]
  81.                 end
  82.         end
  83.         Cls()
  84.         local r = ShowMenu(menu,#menu, 0, CC.MainSubMenuX, CC.MainSubMenuY, 0, 0, 1, 1, CC.DefaultFont, C_ORANGE, C_WHITE)
  85.         if r < 1 then
  86.                 return
  87.         end
  88.         local id = list[r]
  89.         while true do
  90.                 Cls()
  91.                 ShowPersonStatus_sub(list[r],page)
  92.                 ShowScreen();
  93.                 local keypress = WaitKey()
  94.                 if keypress == VK_LEFT then
  95.                           page = page - 1;
  96.                    elseif keypress == VK_RIGHT then
  97.                           page = page + 1;
  98.                   elseif keypress == VK_UP then
  99.                           r = r - 1
  100.                   elseif keypress == VK_DOWN then
  101.                           r = r + 1
  102.                 elseif keypress == 27 then
  103.                           break
  104.                 end
  105.                 if r < 1 then
  106.                         r = 1
  107.                 end
  108.                 if r > #list then
  109.                         r = #list
  110.                 end
  111.         end
  112. end

  113. function War_StatusMenu()          ---战斗中显示状态
  114.         local menu={
  115.                                  {"地图选点查看",MapWatch,1},
  116.          {"我方人员列表",FriList,1},
  117.          {"敌方人员列表",EnemyList,1},
  118.                          };

  119.   local nexty=CC.MainSubMenuY+CC.SingleLineHeight;
  120.   ShowMenu(menu,3, 0, CC.MainSubMenuX, CC.MainSubMenuY, 0, 0, 1, 1, CC.DefaultFont, C_ORANGE, C_WHITE)
  121.                

  122. end
复制代码


【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-6-29 10:03 | 显示全部楼层
回复 二宫和也 的帖子

谢谢,我去试试看看
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-6-29 10:36 | 显示全部楼层
本帖最后由 fff71669 于 2012-6-29 10:47 编辑

终于搞定了嘿嘿
请把
  1. function War_StatusMenu()
  2.   WAR.ShowHead = 0
  3.   Menu_Status()
  4.   WAR.ShowHead = 1
  5.   Cls()        

  6. end
复制代码
改变成

  1. function War_StatusMenu()          ---战斗中显示状态
  2.         WAR.ShowHead = 0
  3.   local function MapWatch()
  4.         local x = WAR.Person[WAR.CurID]["坐标X"];
  5.   local y = WAR.Person[WAR.CurID]["坐标Y"];
  6.   local page = 1
  7.   War_CalMoveStep(WAR.CurID,128,1);
  8.   WarDrawMap(1,x,y);
  9.   ShowScreen();
  10.   x,y=War_SelectMove()
  11.   if x == nil then
  12.           return
  13.   end
  14.   local i
  15.   local id = 0
  16.         for i = 0,WAR.PersonNum do
  17.                 if WAR.Person[i]["坐标X"] == x and WAR.Person[i]["坐标Y"] == y and WAR.Person[i]["死亡"] == false then
  18.                         id = WAR.Person[i]["人物编号"]
  19.                         break;
  20.                 end
  21.         end
  22.         while true do
  23.                 Cls()
  24.                 ShowPersonStatus_sub(id,page)
  25.                 ShowScreen();
  26.                 local keypress = WaitKey()
  27.                 if keypress == VK_LEFT then
  28.                     page = page - 1;
  29.                    elseif keypress == VK_RIGHT then
  30.                     page = page + 1;
  31.                 elseif keypress == 27 then
  32.                           break
  33.                 end
  34.         end
  35. end
  36. local function FriList()
  37.         local menu = {};
  38.         local list = {}
  39.         local page = 1
  40.         for i = 1,WAR.PersonNum do
  41.                 if WAR.Person[i - 1]["我方"] == true and WAR.Person[i - 1]["死亡"] == false then
  42.                         menu[#menu + 1] = {JY.Person[WAR.Person[i - 1]["人物编号"]]["姓名"],nil,1}
  43.                         list[#list + 1] = WAR.Person[i - 1]["人物编号"]
  44.                 end
  45.         end
  46.         Cls()
  47.         local r = ShowMenu(menu,#menu, 0, CC.MainSubMenuX, CC.MainSubMenuY, 0, 0, 1, 1, CC.DefaultFont, C_ORANGE, C_WHITE)
  48.         if r < 1 then
  49.                 return
  50.         end
  51.         while true do
  52.                 Cls()
  53.                 ShowPersonStatus_sub(list[r],page)
  54.                 ShowScreen();
  55.                 local keypress = WaitKey()
  56.                 if keypress == VK_LEFT then
  57.                           page = page - 1;
  58.                    elseif keypress == VK_RIGHT then
  59.                           page = page + 1;
  60.                   elseif keypress == VK_UP then
  61.                           r = r - 1
  62.                   elseif keypress == VK_DOWN then
  63.                           r = r + 1
  64.                 elseif keypress == 27 then
  65.                           break
  66.                 end
  67.                 if r < 1 then
  68.                         r = 1
  69.                 end
  70.                 if r > #list then
  71.                         r = #list
  72.                 end
  73.         end
  74. end
  75. local function EnemyList()
  76.         local menu = {};
  77.         local list = {}
  78.         local page = 1
  79.         for i = 1,WAR.PersonNum do
  80.                 if WAR.Person[i - 1]["我方"] == false and WAR.Person[i - 1]["死亡"] == false then
  81.                         menu[#menu + 1] = {JY.Person[WAR.Person[i - 1]["人物编号"]]["姓名"],nil,1}
  82.                         list[#list + 1] = WAR.Person[i - 1]["人物编号"]
  83.                 end
  84.         end
  85.         Cls()
  86.         local r = ShowMenu(menu,#menu, 0, CC.MainSubMenuX, CC.MainSubMenuY, 0, 0, 1, 1, CC.DefaultFont, C_ORANGE, C_WHITE)
  87.         if r < 1 then
  88.                 return
  89.         end
  90.         local id = list[r]
  91.         while true do
  92.                 Cls()
  93.                 ShowPersonStatus_sub(list[r],page)
  94.                 ShowScreen();
  95.                 local keypress = WaitKey()
  96.                 if keypress == VK_LEFT then
  97.                           page = page - 1;
  98.                    elseif keypress == VK_RIGHT then
  99.                           page = page + 1;
  100.                   elseif keypress == VK_UP then
  101.                           r = r - 1
  102.                   elseif keypress == VK_DOWN then
  103.                           r = r + 1
  104.                 elseif keypress == 27 then
  105.                           break
  106.                 end
  107.                 if r < 1 then
  108.                         r = 1
  109.                 end
  110.                 if r > #list then
  111.                         r = #list
  112.                 end
  113.         end
  114. end
  115.    local menu={
  116.                                  {"地图选点查看",MapWatch,1},
  117.          {"我方人员列表",FriList,1},
  118.          {"敌方人员列表",EnemyList,1},
  119.                          };
  120.   local nexty=CC.MainSubMenuY+CC.SingleLineHeight;
  121.   ShowMenu(menu,3, 0, CC.MainSubMenuX, CC.MainSubMenuY, 0, 0, 1, 1, CC.DefaultFont, C_ORANGE, C_WHITE)
  122.                
  123.    WAR.ShowHead = 1
  124.   Cls()
  125. end
复制代码
悲剧 刚没发完 嘿嘿
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-6-29 10:38 | 显示全部楼层
如果你用我改的代码不能进游戏那你的代码就多了个END
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-6-29 10:41 | 显示全部楼层
这代码要感谢原作者 嘿嘿
http://www.txdx.net/forum.php?mod=viewthread&tid=529463&highlight=%D7%B4%CC%AC
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-19 04:15

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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