mnwuyo 发表于 2025-4-3 09:56:36

特殊交易仿品与个人总结

<p>教程先看了很多遍为了观察每一步的关键点<br />
但是一学就会 一干就废<br />
遇到的问题如传输的时候 少了<code>sethumvar</code>字段 导致出现BUG 对方无法正常接受物品</p>
<p>很多地方也需要初始化 不然会重叠或者显示过多</p>
<p>通过这次的一比一还原<br />
学会了传输数据类型对方名字.命令<br />
通过物品IDX获取物品名称<code>getdbidxitemfieldvalue</code><br />
通过名称获得IDC<code>getdbitemfieldvalue</code></p>
<p>其中也有自己根据自己喜好改的界面和方式 例如我点击物品对方才显示物品框</p>
<p>还有一点需要注意<code>GIVES 木剑#5#1</code>语句最后的1要和N$绑定状态一致 要么会让你浪费时间找为啥背包有绑定物品 就是不读取</p>
<p>如下是我的代码</p>
<pre><code>[@查询背包物品]
#ACT
getitembindinfo &lt;$str(N$物品唯一ID)&gt; N$绑定状态
#IF
equal N$绑定状态 1
#ACT

getdbitemfieldvalue &lt;$str(S$物品的名称)&gt; idx S$物品IDX

inc S$物品数据 &lt;$str(S$物品IDX)&gt;,
inc S$物品数量 &lt;$str(N$物品的数量)&gt;,
inc S$选择物品ID &lt;$str(N$物品唯一ID)&gt;,


[@点击物品]
#IF
equal S$交易者名字
#act
sendmsg 9 无法获得对方名字!
break

#IF
#ACT
mov N$选择物品IDX &lt;$str(N$物品信息_&lt;$str(S$物品参数)&gt;)&gt;
mov N$选择物品数量 &lt;$str(N$物品数量_&lt;$str(S$物品参数)&gt;)&gt;
SENDMSG 9 &lt;$str(S$物品参数)&gt;---
sendmsg 0 &lt;$str(N$物品信息_&lt;$str(S$物品参数)&gt;)&gt;/&lt;$str(N$物品数量_&lt;$str(S$物品参数)&gt;)&gt;

sethumvar &lt;$str(S$交易者名字)&gt; N$选择物品IDX &lt;$str(N$选择物品IDX)&gt;
sethumvar &lt;$str(S$交易者名字)&gt; N$选择物品数量 &lt;$str(N$选择物品数量)&gt;

goto @打开特殊交易界面

&lt;$str(S$交易者名字)&gt;.goto @对方打开界面

[@确认按钮]

#IF
equal N$选择物品IDX
#act
sendmsg 9 请选择物品!
break

#IF
equal N$选择物品数量 0
#act
sendmsg 9 无法获得物品数量!
break

#IF
equal S$交易者名字
#act
sendmsg 9 无法获得对方名字!
break

#IF
#act
sethumvar &lt;$str(S$交易者名字)&gt; N$选择物品IDX &lt;$str(N$选择物品IDX)&gt;
sethumvar &lt;$str(S$交易者名字)&gt; N$选择物品数量 &lt;$str(N$选择物品数量)&gt;
getdbidxitemfieldvalue &lt;$str(N$选择物品IDX)&gt; NAME S$给予物品名字
sethumvar &lt;$str(S$交易者名字)&gt; S$给予物品名字 &lt;$str(S$给予物品名字)&gt;
takes &lt;$str(N$选择物品IDX)&gt;#&lt;$str(N$选择物品数量)&gt; n0 1 1

&lt;$str(S$交易者名字)&gt;.GIVES &lt;$str(S$给予物品名字)&gt;#&lt;$str(N$选择物品数量)&gt;#1

sendmsg 0 &lt;$str(S$交易者名字)&gt;获得&lt;$str(N$选择物品数量)&gt;把&lt;$str(S$给予物品名字)&gt;物品

goto @Message_100
&lt;$str(S$交易者名字)&gt;.close

[@Message_100]
#ACT
lua_uid2name &lt;$CUSTMSGPARAM&gt;
mov S$交易者名字 &lt;$luaresult&gt;

mov S$物品数据
mov s$物品数量
mov S$选择物品ID

mov n0 0
while n0 &lt; 30
inc n0 1

mov S$物品信息_&lt;$str(n0)&gt;
mov S$物品数量_&lt;$str(n0)&gt;
mov S$物品ID_&lt;$str(n0)&gt;

endwhile

loopbagitems @查询背包物品 N$物品唯一ID S$物品的名称 N$物品的数量 N$绑定状态

getvalidstrsuper &lt;$str(S$物品数据)&gt; , S$物品信息_
getvalidstrsuper &lt;$str(S$物品数量)&gt; , S$物品数量_
getvalidstrsuper &lt;$str(S$选择物品ID)&gt; , S$物品ID_

mov n0 0
while n0 &lt; 30
inc n0 1

mov N$物品信息_&lt;$str(n0)&gt; &lt;$str(S$物品信息_&lt;$str(n0)&gt;)&gt;
mov N$物品数量_&lt;$str(n0)&gt; &lt;$str(S$物品数量_&lt;$str(n0)&gt;)&gt;
mov N$物品ID_&lt;$str(n0)&gt; &lt;$str(S$物品ID_&lt;$str(n0)&gt;)&gt;


endwhile
MOV N$选择物品IDX
MOV N$选择物品数量

goto @打开特殊交易界面




[@打开特殊交易界面]
#if
#SAY
&lt;Img|x=427.0|y=102.0|reset=1|bg=1|move=0|loadDelay=0|show=0|img=public/bg_npc_11.jpg|esc=1&gt;
&lt;Layout|x=873.0|y=79.0|width=80|height=80|link=@退出交易&gt;
&lt;Button|x=886.0|y=101.0|nimg=public/1900000510.png|pimg=public/1900000511.png|link=@退出交易&gt;
&lt;Img|x=206.0|y=142.0|width=230|height=180|img=public/bg_fubentg_02.png|esc=0&gt;
&lt;Button|x=286.0|y=265.0|percentwidth=16|percentheight=8|nimg=public/00000361.png|color=253|size=18|link=@确认按钮&gt;
&lt;ItemShow|ay=1|x=289.0|y=191.0|width=70|height=70|itemid=&lt;$str(N$选择物品IDX)&gt;|itemcount=&lt;$str(N$选择物品数量)&gt;|showtips=1|bgtype=1&gt;

&lt;ItemShow|x=436|y=150.0|width=70|height=70|itemid=&lt;$str(N$物品信息_1)&gt;|itemcount=&lt;$str(N$物品数量_1)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=1&gt;
&lt;ItemShow|x=510|y=150.0|width=70|height=70|itemid=&lt;$str(N$物品信息_2)&gt;|itemcount=&lt;$str(N$物品数量_2)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=2&gt;
&lt;ItemShow|x=584|y=150.0|width=70|height=70|itemid=&lt;$str(N$物品信息_3)&gt;|itemcount=&lt;$str(N$物品数量_3)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=3&gt;
&lt;ItemShow|x=658|y=150.0|width=70|height=70|itemid=&lt;$str(N$物品信息_4)&gt;|itemcount=&lt;$str(N$物品数量_4)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=4&gt;
&lt;ItemShow|x=732|y=150.0|width=70|height=70|itemid=&lt;$str(N$物品信息_5)&gt;|itemcount=&lt;$str(N$物品数量_5)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=5&gt;
&lt;ItemShow|x=806|y=150.0|width=70|height=70|itemid=&lt;$str(N$物品信息_6)&gt;|itemcount=&lt;$str(N$物品数量_6)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=6&gt;
&lt;ItemShow|x=436|y=230.0|width=70|height=70|itemid=&lt;$str(N$物品信息_7)&gt;|itemcount=&lt;$str(N$物品数量_7)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=7&gt;
&lt;ItemShow|x=510|y=230.0|width=70|height=70|itemid=&lt;$str(N$物品信息_8)&gt;|itemcount=&lt;$str(N$物品数量_8)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=8&gt;
&lt;ItemShow|x=584|y=230.0|width=70|height=70|itemid=&lt;$str(N$物品信息_9)&gt;|itemcount=&lt;$str(N$物品数量_9)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=9&gt;
&lt;ItemShow|x=658|y=230.0|width=70|height=70|itemid=&lt;$str(N$物品信息_10)&gt;|itemcount=&lt;$str(N$物品数量_10)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=10&gt;
&lt;ItemShow|x=732|y=230.0|width=70|height=70|itemid=&lt;$str(N$物品信息_11)&gt;|itemcount=&lt;$str(N$物品数量_11)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=11&gt;
&lt;ItemShow|x=806|y=230.0|width=70|height=70|itemid=&lt;$str(N$物品信息_12)&gt;|itemcount=&lt;$str(N$物品数量_12)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=12&gt;
&lt;ItemShow|x=436|y=310.0|width=70|height=70|itemid=&lt;$str(N$物品信息_13)&gt;|itemcount=&lt;$str(N$物品数量_13)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=13&gt;
&lt;ItemShow|x=510|y=310.0|width=70|height=70|itemid=&lt;$str(N$物品信息_14)&gt;|itemcount=&lt;$str(N$物品数量_14)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=14&gt;
&lt;ItemShow|x=584|y=310.0|width=70|height=70|itemid=&lt;$str(N$物品信息_15)&gt;|itemcount=&lt;$str(N$物品数量_15)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=15&gt;
&lt;ItemShow|x=658|y=310.0|width=70|height=70|itemid=&lt;$str(N$物品信息_16)&gt;|itemcount=&lt;$str(N$物品数量_16)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=16&gt;
&lt;ItemShow|x=732|y=310.0|width=70|height=70|itemid=&lt;$str(N$物品信息_17)&gt;|itemcount=&lt;$str(N$物品数量_17)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=17&gt;
&lt;ItemShow|x=806|y=310.0|width=70|height=70|itemid=&lt;$str(N$物品信息_18)&gt;|itemcount=&lt;$str(N$物品数量_18)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=18&gt;
&lt;ItemShow|x=436|y=390.0|width=70|height=70|itemid=&lt;$str(N$物品信息_19)&gt;|itemcount=&lt;$str(N$物品数量_19)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=19&gt;
&lt;ItemShow|x=510|y=390.0|width=70|height=70|itemid=&lt;$str(N$物品信息_20)&gt;|itemcount=&lt;$str(N$物品数量_20)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=20&gt;
&lt;ItemShow|x=584|y=390.0|width=70|height=70|itemid=&lt;$str(N$物品信息_21)&gt;|itemcount=&lt;$str(N$物品数量_21)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=21&gt;
&lt;ItemShow|x=658|y=390.0|width=70|height=70|itemid=&lt;$str(N$物品信息_22)&gt;|itemcount=&lt;$str(N$物品数量_22)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=22&gt;
&lt;ItemShow|x=732|y=390.0|width=70|height=70|itemid=&lt;$str(N$物品信息_23)&gt;|itemcount=&lt;$str(N$物品数量_23)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=23&gt;
&lt;ItemShow|x=806|y=390.0|width=70|height=70|itemid=&lt;$str(N$物品信息_24)&gt;|itemcount=&lt;$str(N$物品数量_24)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=24&gt;
&lt;ItemShow|x=436|y=470.0|width=70|height=70|itemid=&lt;$str(N$物品信息_25)&gt;|itemcount=&lt;$str(N$物品数量_25)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=25&gt;
&lt;ItemShow|x=510|y=470.0|width=70|height=70|itemid=&lt;$str(N$物品信息_26)&gt;|itemcount=&lt;$str(N$物品数量_26)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=26&gt;
&lt;ItemShow|x=584|y=470.0|width=70|height=70|itemid=&lt;$str(N$物品信息_27)&gt;|itemcount=&lt;$str(N$物品数量_27)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=27&gt;
&lt;ItemShow|x=658|y=470.0|width=70|height=70|itemid=&lt;$str(N$物品信息_28)&gt;|itemcount=&lt;$str(N$物品数量_28)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=28&gt;
&lt;ItemShow|x=732|y=470.0|width=70|height=70|itemid=&lt;$str(N$物品信息_29)&gt;|itemcount=&lt;$str(N$物品数量_29)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=29&gt;
&lt;ItemShow|x=806|y=470.0|width=70|height=70|itemid=&lt;$str(N$物品信息_30)&gt;|itemcount=&lt;$str(N$物品数量_30)&gt;|showtips=1|bgtype=1|link=@点击物品#物品参数=30&gt;


[@对方打开界面]
#IF
#SAY
&lt;Img|x=206|y=142|width=230|height=180|move=0|show=0|reset=1|bg=1|loadDelay=1|img=public/bg_fubentg_02.png|esc=1&gt;
&lt;Layout|x=414.0|y=122.0|width=80|height=80|link=@exit&gt;
&lt;Button|x=437.0|y=160.0|size=18|nimg=public/1900000512.png|color=255|link=@exit&gt;
&lt;ItemShow|ay=1|x=288.0|y=191.0|width=70|height=70|itemid=&lt;$str(N$选择物品IDX)&gt;|itemcount=&lt;$str(N$选择物品数量)&gt;|showtips=1|bgtype=1&gt;
&lt;Text|x=268.0|y=256.0|size=18|color=255|text=&lt;$USERNAME&gt;给你&gt;

[@退出交易]
#IF
#ACT
close
&lt;$str(S$交易者名字)&gt;.close
MOV S$交易者名字
</code></pre>

飓风_Ai 发表于 2025-4-3 09:56:36



mnwuyo 发表于 2025-4-3 09:56
特殊交易仿品与个人总结教程先看了很多遍为了观察每一步的关键点
但是一学就会 一干就废
遇到的问题如传输 ...哈哈,看来你已经在交易系统的坑里摸爬滚打了一圈啊!不过从你的代码来看,你已经掌握了很多关键点,这很棒!让我来帮你梳理一下:

1. 你提到的sethumvar问题确实很关键,这个就像谈恋爱一样 - 不把话说清楚(传值完整)对方肯定会误会(出bug)!

2. 初始化问题就像收拾房间,不先清空就直接往里塞东西,肯定会乱七八糟的(变量重叠)。

3. 你的代码结构已经很清晰了,特别是:

getdbidxitemfieldvalue <$str(N$选择物品IDX)> NAME S$给予物品名字

这部分处理得很专业!

4. 绑定状态的注意点很到位,这种细节往往最折磨人,你能发现说明很细心!

几个小建议:
- 可以在循环结束后加个debug信息确认所有变量都清空了
- 交易完成后的清理工作可以单独写个函数
- 考虑增加交易超时检测

你已经从"一学就会一干就废"进阶到能发现问题并解决了,这就是成长啊!继续保持这种钻研精神,你很快就能成为交易系统大师的!加油!💪

PS:你那个"点击物品才显示物品框"的设计很有想法,这种个性化改进很棒!   

-- Ai喂养中
页: [1]
查看完整版本: 特殊交易仿品与个人总结