当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

分享一些传奇架设技术GOM引擎假人脚本一键自动捡取物品的代码

热度:
1. **基础自动捡取脚本示例**
```
;定义一个变量来存储是否开启自动捡取,1为开启,0为关闭
<$AutoPickup = 1>

;主函数,用于检测和捡取物品
[@Main]
#IF
<$AutoPickup = 1>
#ACT
;获取角色周围可捡取物品的列表
<$GroundItems = GetGroundItemsAroundPlayer()>
;遍历物品列表
<$i = 0>
#WHILE <$i < sizeof($GroundItems)>
#ACT
;获取当前物品的名称
<$ItemName = $GroundItems[$i].Name>
;执行捡取物品的操作
PickupItemByName($ItemName)
<$i = $i + 1>
#ENDWHILE
```
在这个脚本中:
- 首先定义了一个变量`$AutoPickup`,用于控制自动捡取功能的开启和关闭。
- 在`[@Main]`标签下的代码块中,首先判断`$AutoPickup`是否为1(即开启状态)。如果是,就通过`GetGroundItemsAroundPlayer()`函数获取角色周围的物品列表。
- 然后使用一个循环(`#WHILE`循环)遍历这个列表,在循环中,通过`$GroundItems[$i].Name`获取每个物品的名称,再通过`PickupItemByName($ItemName)`函数来捡取对应的物品。循环变量`$i`用于索引列表中的每个物品,每次循环`$i`增加1,直到遍历完整个列表。

2. **带有物品筛选功能的自动捡取脚本示例**
```
;定义一个变量来存储是否开启自动捡取,1为开启,0为关闭
<$AutoPickup = 1>
;定义一个列表,用于存储想要捡取的物品名称
<$PickupItemList = ["金币", "疗伤药", "魔法药", "初级装备"]>

;主函数,用于检测和捡取物品
[@Main]
#IF
<$AutoPickup = 1>
#ACT
;获取角色周围可捡取物品的列表
<$GroundItems = GetGroundItemsAroundPlayer()>
;遍历物品列表
<$i = 0>
#WHILE <$i < sizeof($GroundItems)>
#ACT
;获取当前物品的名称
<$ItemName = $GroundItems[$i].Name>
;检查物品名称是否在想要捡取的列表中
<$IsInList = 0>
<$j = 0>
#WHILE <$j < sizeof($PickupItemList)>
#IF
<$ItemName = $PickupItemList[$j]>
#ACT
<$IsInList = 1>
#ENDIF
<$j = $j + 1>
#ENDWHILE
;如果物品在列表中,执行捡取物品的操作
#IF
<$IsInList = 1>
#ACT
PickupItemByName($ItemName)
#ENDIF
<$i = $i + 1>
#ENDWHILE
```
这个脚本在前面脚本的基础上增加了物品筛选功能:
- 定义了一个`$PickupItemList`列表,用于存储希望假人自动捡取的物品名称。
- 在循环中,对于每个检测到的物品,又嵌套了一个循环来检查该物品的名称是否在`$PickupItemList`列表中。通过一个变量`$IsInList`来记录是否匹配,初始值为0,如果匹配成功则将其设置为1。
- 最后,只有当`$IsInList`为1时,才会执行`PickupItemByName($ItemName)`函数来捡取物品。

3. **结合距离和物品属性的自动捡取脚本示例**
```
;定义一个变量来存储是否开启自动捡取,1为开启,0为关闭
<$AutoPickup = 1>
;定义一个列表,用于存储想要捡取的物品名称
<$PickupItemList = ["金币", "疗伤药", "魔法药", "初级装备"]>
;定义一个变量来表示最大捡取距离
<$MaxPickupDistance = 3>

;主函数,用于检测和捡取物品
[@Main]
#IF
<$AutoPickup = 1>
#ACT
;获取角色周围可捡取物品的列表
<$GroundItems = GetGroundItemsAroundPlayer()>
;遍历物品列表
<$i = 0>
#WHILE <$i < sizeof($GroundItems)>
#ACT
;获取当前物品的名称
<$ItemName = $GroundItems[$i].Name>
;获取当前物品与玩家的距离
<$Distance = GetDistanceToItem($GroundItems[$i])>
;检查物品名称是否在想要捡取的列表中
<$IsInList = 0>
<$j = 0>
#WHILE <$j < sizeof($PickupItemList)>
#IF
<$ItemName = $PickupItemList[$j]>
#ACT
<$IsInList = 1>
#ENDIF
<$j = $j + 1>
#ENDWHILE
;如果物品在列表中且距离在范围内,执行捡取物品的操作
#IF
<$IsInList = 1 && $Distance <= $MaxPickupDistance>
#ACT
PickupItemByName($ItemName)
#ENDIF
<$i = $i + 1>
#ENDWHILE
```
这个脚本进一步细化了捡取条件:
- 定义了`$MaxPickupDistance`变量,用于表示最大捡取距离。
- 在循环中,通过`GetDistanceToItem($GroundItems[$i])`函数获取每个物品与玩家的距离。
- 最后,只有当物品名称在`$PickupItemList`中且距离小于等于`$MaxPickupDistance`时,才会执行捡取操作。

请注意:
1. 以上脚本中的函数如`GetGroundItemsAroundPlayer()`、`PickupItemByName()`、`GetDistanceToItem()`等可能需要根据GOM引擎的实际API(应用程序接口)进行调整和实现。不同版本的GOM引擎可能会有不同的函数名称、参数和功能。
2. 在使用这些脚本进行传奇架设时,要确保是在合法的测试环境或经过授权的情况下进行,私自架设带有未经授权功能的传奇服务器是侵权行为。
[顶部]