将 JS 列表传递给 LUA 列表进行排序

因此,这个问题涉及通过多种语言传递特定参数的过程; 实际上,我在 JS 中有一块代码,作为一个 Web 浏览器(具有用于 UI 的 HTML / CSS),当用户选择购买该项目时,它将传递该项目,价格和数量到 LUA 脚本中,其中所述 LUA 脚本然后将其完全排序(LUA 方面区分客户端和服务器命令,因此是的,它必须进行这种交互),如下所示:

 $("#blackmarket-1-order").click(function() {
      $('.ui-body').hide();
      $('#processTXT').show();
      $(".loader").show();
      $(".ui-body").delay(2500).fadeIn(); --  忽略这些内容,这只是 HTML 加载,以出现漂亮
      $("#processTXT").delay(2500).fadeOut();
      $(".loader").delay(2500).fadeOut();
      $.post('http://lua-script/order', JSON.stringify({ --  这很重要,将下面的三个项目传递给 lua 脚本订购函数,它有效,并像应该一样接收。
          item: "meat2",
          price: 250,
          amount: 1
      }))
    });
    $("#blackmarket-2-order").click(function() {
      $('.ui-body').hide();
      $('#processTXT').show();
      $(".loader").show();
      $(".ui-body").delay(2500).fadeIn();
      $("#processTXT").delay(2500).fadeOut();
      $(".loader").delay(2500).fadeOut();
      $.post('http://lua-script/order', JSON.stringify({
          item: "burger-bun",
          price: 5,
          amount: 50
      }))
    });

这是接收订单的 LUA 函数:

RegisterNUICallback("order", function(data)
    print(data.item.. " : " ..data.amount.. ": $ " ..data.price)
    TriggerServerEvent('server:processPrice', data)
    TriggerEvent('server:processItems' , data)
    TriggerEvent('notification', "worked", 1)
end)

当然,这一切都像您所预期的那样工作,但是它目前设置为仅提供单个项目; 当进行购买时,将传递一个项目,一个价格和一个数量值,然后由 LUA 脚本进行处理,并按照应该的方式分配。我想要发生的是,用户能够在“肉2”项目和“汉堡面包”上点击购买,并且可以将一个列表传递到 LUA 函数中,然后可以使用 while 循环遍历其自身的数量,或者可能有更多的项目,这取决于用户点击购买/购买的项目数量。我相对较新于 JS 和部分 LUA,但我假设您可以将每个在 LUA 脚本中获得 JSON.stringified 的“购买”存储在列表中,然后在使用 close() 函数关闭 UI 后,将 LUA 列表传递给相应的服务器函数进行排序?

感谢您的帮助,如果需要,我愿意进行澄清。

更多参考资料: 传递给 LUA 脚本的 JS Close 函数布尔值,触发将 ui 设置为 false

function close(){
      $(".blackmarket-body").delay(2500).fadeIn();
      $("#processTXT").delay(2500).fadeOut();
      $(".loader").delay(2500).fadeOut();
      setTimeout(() => {
        $.post('http://lua-script/exit', JSON.stringify({}));
       }, 2900);

    }

UI 的外观: UI 中的购买按钮

原文链接 https://stackoverflow.com/questions/71169699

点赞