0

所以这个题涉及到通过多种语言传递具体参数的过程;本质上,我在 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(); --  ignore this stuff, this is just html loading to appear nice
      $("#processTXT").delay(2500).fadeOut();
      $(".loader").delay(2500).fadeOut();
      $.post('http://lua-script/order', JSON.stringify({ --  this is important, passes the three items below to the lua script order function, which works, and is received as it should be.
          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 脚本处理并按应有的方式分发。我想要发生的是让用户能够在“meat2”项目和“burger-bun”上按下购买,并将列表传递到 LUA 函数中,然后可以使用 while 循环分发两个项目及其各自的数量,甚至可能更多项目,具体取决于用户按下购买的次数/要购买的项目数量。我对 JS 和部分 LUA 比较陌生,但我假设您可以将每个获得 JSON.stringified 的“购买”存储在 LUA 脚本中的列表中,

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

更多参考:传递给 LUA 脚本布尔值的 JS 关闭函数,触发 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 中的购买按钮

4

0 回答 0