貊桔错 发表于 2023-1-10 14:33:39

77M2引擎如何给玩家发放物品,91M2传奇私服给玩家发送指定物品的方法

如何给玩家发放物品

unit Q2;

inte**ce
uses Classes, SysUtils;      

procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);

implementation

procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
var
AItem: TUserItem;
begin
//方式1:NPC给玩家发放
Npc.Give(Player, '乌木剑'{物品名称}, 1{数量}, True{是否随机升级属性,只对可穿戴物品有效});//普通的发放方式
AItem := Npc.GiveItem(Player, '乌木剑'{物品名称}, True{是否随机升级属性,只对可穿戴物品有效});//发放物品后可修改发放的物品,一次只能发放一个
if AItem <> nil then //如果物品存在(发放成功)
begin
    AItem.AddDC := AItem.AddDC + 10; //修改物理攻击
    AItem.AddSC := AItem.AddSC + 10; //修改道术
    Player.UpdateItem(AItem); //客户端更新物品信息,针对一个物品属性修改完成后再调用此函数
end;
AItem := Npc.GiveItemByIndex(Player, 30{物品在数据库中的序号,示范版本中30是乌木剑}, True);//根据物品的序号发放物品比如在取下镶嵌物品的时候,只知道镶嵌物品的ID
if AItem <> nil then //如果物品存在(发放成功)
begin
    //这里的操作和前面一样,可以针对物品做任何的修改
end;

//方式2:Player对象自己发放,和NPC发放的函数不同点在于少了一个参数,不依赖于NPC
Player.Give('乌木剑'{物品名称}, 1{数量}, True{是否随机升级属性,只对可穿戴物品有效});
AItem := Player.GiveItem('乌木剑'{物品名称}, True{是否随机升级属性,只对可穿戴物品有效});
if AItem <> nil then //如果物品存在(发放成功)
begin
    //可针对物品做任何的修改
end;
AItem := Player.GiveItemByIndex(30{物品在数据库中的序号,示范版本中30是乌木剑}, True);
if AItem <> nil then //如果物品存在(发放成功)
begin
    //可针对物品做任何的修改
end;
end;

end.

物品发放的时候可以针对发放的物品做出属性调整,可调整属性参考TUserItem

恺泊 发表于 2023-1-10 14:34:24

64gm论坛-速记=爱上你GM,版本下载,素材下载,脚本下载,服务器租用,传奇一条龙,等各种业务都有!

爱琬琰 发表于 2023-1-10 14:35:15

新开复古传奇私服

晋可心 发表于 2023-1-10 14:35:43

1.76sf发布网

匹生踏 发表于 2023-1-10 14:35:55

私服传奇网站

浬浇渔 发表于 2023-1-10 14:36:16

合击传奇

龚雪漫 发表于 2023-1-10 14:37:15

变态私服传奇

封启 发表于 2023-1-10 14:37:52

1.76极品合击

勇敢牛牛 发表于 2023-11-20 16:51:21

感谢楼主提供这么好的论坛!

鸿蒙神器 发表于 2023-11-20 18:55:54

这个帖子不回对不起自己!
页: [1] 2
查看完整版本: 77M2引擎如何给玩家发放物品,91M2传奇私服给玩家发送指定物品的方法