北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 485|回复: 2

请教一个诡异的问题

[复制链接]
发表于 2023-12-13 11:47:31 | 显示全部楼层 |阅读模式
用for循环生成了一个table,然后把这个table加入另一个table作为项,如下:
  1.         local npc_temp = {}       
            for npc,id in string.gmatch(npctext,"(%S+)%((%w+%s?%w*)%)") do  -- 获得两个变量
                   
                    if npc then
                            npc_temp.name = npc                      --将两个变量加入npc_temp,
                    end
                    if id then
                            npc_temp.id = string.lower(id)
                    end       
                    tprint(npc_temp)
                    table.insert(roomnpc,1,npc_temp)          --将npc_temp加入
                    tprint(roomnpc)
                    --roomnpc[i] = npc_temp or {}
                    --i = i+1
            end


  • 结果是:
    "name"="行者"        --npc_temp正确建立
    "id"="xingzhe"
    1:
      "name"="行者"          --正确加入
      "id"="xingzhe"
    "name"="流氓"     --第二次循环的npc_temp正确建立
    "id"="liu mang"
    1:                        --第二次正确加入
      "name"="流氓"
      "id"="liu mang"
    2=table: 02DE39C0    ---   但前面加入的变成这样了***
    "name"="流氓头"      --第三次建立npc_temp正确
    "id"="liumang tou"
    1:
      "name"="流氓头"  -- 第三次加入正确
      "id"="liumang tou"
    2=table: 02DE39C0      --第三次加入后,前面两项变成同样的了***
    3=table: 02DE39C0
    复制代码
    北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
    发表于 2023-12-13 11:50:21 | 显示全部楼层
            local npc_temp = {}        

    放到循环里面来。

    npc_temp只创建了一次,当然是同一个。

    你去饭店吃饭排队,拿100次号,排队的队列里也只有你一个人。
    哪怕你把帽子外套都换了。
    北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
     楼主| 发表于 2023-12-13 11:56:04 | 显示全部楼层
    哦,是这样啊,还是概念上的模糊了,谢谢杰佬哦我去试试
    北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

    GMT+8, 2024-4-28 03:24 AM , Processed in 0.009678 second(s), 14 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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