签到天数: 1 天 [LV.1]初来乍到
- 积分
- 94
|
GowLom2战神引擎随机分配奖励脚本
1.先定义一个简单的随机给予奖励的样板函数,这个函数的功能是开天,玄天,镇天这三把刀必得也只能得一把,几率都是三分之一。
procedure GiveRandomRewards();
var
r : Integer;
begin
r := random(3);
if r = 0 then
begin
This_Player.Give('开天', 1)
end
else if r = 1 then
begin
This_Player.Give('玄天', 1)
end
else if r = 2 then
begin
This_Player.Give('镇天', 1);
end
else
begin
//……这里
end;
end;
2.以下模板是用以配置比较复杂的大型奖励时使用的模板,具体这个模板的使用还是最后口头描述比较方便。
//////////这部分代码用于生成随机奖励配置////////////
const REWARD_KIND = 15; //定义奖励的种类
const REWARD_NUM = 10; //每种奖励最大有多少件物品
//返回0表示发奖成功,-1表示空格不够, -2表示没有发奖品
function GiveRandomReward(): Integer;
var
name : array[1..REWARD_KIND] of array[1..REWARD_NUM] of string;
num : array[1..REWARD_KIND] of array[1..REWARD_NUM] of Integer;
pos : array[1..REWARD_KIND] of Integer;
total : Integer;
i : Integer;
j : Integer;
rand : Integer; //生成随机数
temp : Integer; //
begin
//发奖励之前,判断是否有足够的空格
if This_Player.FreeBagNum < REWARD_NUM then
begin
Result := -1;
Exit;
end;
//初始化
for i := 1 to REWARD_KIND do
begin
for j := 1 to REWARD_NUM do
begin
name[j] := '';
num[j] := 0;
end;
pos := 0;
end;
//初始化奖励的物品和数量
//1号奖励内容
name[1][1] := '屠龙';
name[1][2] := '半月';
name[1][3] := '神火魔甲';
num[1][1] := 1;
num[1][2] := 1;
num[1][3] := 1;
//2号奖励内容
name[2][1] := '开天';
name[2][2] := '幽灵战衣(男)';
name[2][3] := '上古道袍';
num[2][1] := 1;
num[2][2] := 0;
num[2][3] := 0;
//设置奖励的概率(如果需要可以考虑玩家的属性因素)
total := 100; //total表示奖励得到的概率都是50分之几
//根据人物属性可以调整不同奖项的获得几率
//0战士,1法师,2道士
if This_Player.Job = 2 then
begin
pos[1] := 40;
pos[2] := 10;
end
else
begin
pos[1] := 10;
pos[2] := 40;
end;
//进行随机生成奖励
rand := Random(total) + 1;
temp := 0;
for i := 1 to REWARD_KIND do
begin
temp := temp + pos;
if rand <= temp then
begin
//发放i号奖励,
for j := 1 to REWARD_NUM do
begin
if (name[j] <> '') and (num[j] > 0) then
begin
This_Player.Give(name[j], num[j]);
end;
end;
Result := 0;
Exit;
end;
end;
Result := -2;
end;
///////////////////////生成随机奖励配置/////////////////////// |
|
上一篇: GowLom2战神引擎延时执行脚本命令下一篇: GowLom2战神引擎完整脚本编写例子
|