铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 2005|回复: 4

[通用] 新设置人物属性

[复制链接]
发表于 2010-2-7 10:31 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
话说敝人现在那一点点的微末道行也是在达摩堂和各位大大学的,看到winson大一直发布新的技术,我也想发些东西为达摩堂做些贡献。
但想想我手边的源码没一个比得上winson大大,让我惭愧无比。。。
因此,我只好来重新完善这个设置人物属性的指令来鱼目混珠加滥竽充数一下。
  1. procedure settinghero(rnum, mode, addexp, min, max:integer);
  2. var
  3. i, minlvl, maxlvl, hero, mubiao, x:integer;
  4. begin
  5.   minlvl := 60;
  6.   maxlvl := 0;
  7.   if min <= 0 then min := 1;
  8.   if max <= 0 then max := max_level;
  9.   for i := 0 to 5 do
  10.   begin
  11.     //这里判断队伍人物最高和最低的等级
  12.     if TeamList[i] > 0 then
  13.     begin
  14.       x := rrole[teamlist[i]].Level;
  15.       if x > maxlvl then maxlvl := x;
  16.       if x < minlvl then minlvl := x;
  17.     end;
  18.   end;
  19.   if maxlvl > max then maxlvl := max;
  20.   if minlvl < min then minlvl := min;
  21.   case mode of
  22.   0: mubiao := rrole[0].Level;
  23.   1: mubiao := maxlvl;
  24.   2: mubiao := minlvl;
  25.   end;
  26.   hero := rrole[rnum].Level;
  27.   //如果人物等级小于目标等级则升级
  28.   if mubiao > hero then
  29.   begin
  30.     mubiao := mubiao - hero;
  31.     for i := 0 to mubiao - 1 do
  32.     begin
  33.       rrole[rnum].Level := rrole[rnum].Level + 1;
  34.       lvlup(rnum);
  35.     end;
  36.     exit;
  37.   end;
  38.   //如果人物等级大于目标等级则降低等级
  39.   if hero > mubiao then
  40.   begin
  41.     mubiao := hero - mubiao;
  42.     for i := 0 to mubiao - 1 do
  43.     begin
  44.       rrole[rnum].Level := rrole[rnum].Level - 1;
  45.       lvldown(rnum);
  46.     end;
  47.     exit;
  48.   end;
  49. end;
复制代码

[ 本帖最后由 轩辕夏禹 于 2010-2-7 10:58 编辑 ]
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-7 10:32 | 显示全部楼层
  1. procedure LvlUp(bnum: integer);
  2. var
  3.   i, rnum, add: integer;
  4.   str: widestring;
  5. begin

  6.   rnum := bnum;
  7.   RRole[rnum].MaxHP := RRole[rnum].MaxHP + Rrole[rnum].IncLife * 3 + random(6);
  8.   if RRole[rnum].MaxHP > MAX_HP then RRole[rnum].MaxHP := MAX_HP;
  9.   RRole[rnum].CurrentHP := RRole[rnum].MaxHP;

  10.   add := Rrole[rnum].Aptitude div 15 + 1;
  11.   add := random(add) + 1;

  12.   RRole[rnum].MaxMP := RRole[rnum].MaxMP + (9 - add) * 3;
  13.   if RRole[rnum].MaxMP > MAX_MP then RRole[rnum].MaxMP := MAX_MP;
  14.   RRole[rnum].CurrentMP := RRole[rnum].MaxMP;

  15.   RRole[rnum].Attack := RRole[rnum].Attack + add;
  16.   Rrole[rnum].Speed := Rrole[rnum].Speed + add;
  17.   Rrole[rnum].Defence := Rrole[rnum].Defence + add;

  18.   for i := 46 to 54 do
  19.   begin
  20.     if rrole[rnum].data[i] > 0 then
  21.       rrole[rnum].data[i] := rrole[rnum].data[i] + random(3) + 1;
  22.   end;
  23.   for i := 43 to 58 do
  24.   begin
  25.     if rrole[rnum].data[i] > maxprolist[i] then
  26.       rrole[rnum].data[i] := maxprolist[i];
  27.   end;

  28.   RRole[rnum].PhyPower := MAX_PHYSICAL_POWER;
  29.   RRole[rnum].Hurt := 0;
  30.   RRole[rnum].Poision := 0;
  31. end;
复制代码
  1. procedure Lvldown(bnum: integer);
  2. var
  3.   i, rnum, add: integer;
  4.   str: widestring;
  5. begin

  6.   rnum := bnum;
  7.   RRole[rnum].MaxHP := RRole[rnum].MaxHP - Rrole[rnum].IncLife * 3 + random(6);
  8.   if RRole[rnum].MaxHP < 50 then RRole[rnum].MaxHP := 50;
  9.   RRole[rnum].CurrentHP := RRole[rnum].MaxHP;

  10.   add := Rrole[rnum].Aptitude div 15 + 1;
  11.   add := random(add) + 1;

  12.   RRole[rnum].MaxMP := RRole[rnum].MaxMP - (9 - add) * 3;
  13.   if RRole[rnum].MaxMP < 40 then RRole[rnum].MaxMP := 40;
  14.   RRole[rnum].CurrentMP := RRole[rnum].MaxMP;

  15.   RRole[rnum].Attack := RRole[rnum].Attack - add;
  16.   Rrole[rnum].Speed := Rrole[rnum].Speed - add;
  17.   Rrole[rnum].Defence := Rrole[rnum].Defence - add;

  18.   for i := 46 to 54 do
  19.   begin
  20.     if rrole[rnum].data[i] > 0 then
  21.       rrole[rnum].data[i] := rrole[rnum].data[i] - (random(3) + 1);
  22.   end;
  23.   for i := 43 to 58 do
  24.   begin
  25.     if rrole[rnum].data[i] < 0 then
  26.       rrole[rnum].data[i] := 0;
  27.   end;

  28.   RRole[rnum].PhyPower := MAX_PHYSICAL_POWER;
  29.   RRole[rnum].Hurt := 0;
  30.   RRole[rnum].Poision := 0;
  31. end;
复制代码

[发帖际遇]: 轩辕夏禹参加论坛才艺展示活动,其所展示的才艺被游戏制作团队看上,认为可以为游戏制作作出贡献,收编入队,增加声望10。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-7 15:32 | 显示全部楼层
首先:关我什么事~~

其次:能加个解释不?哪怕一句……也好~

[发帖际遇]: winson7891帮张无忌翻译小昭写的情书,得到辛苦费银两16。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2010-2-8 08:15 | 显示全部楼层

回复 三当家 的帖子

呃。。。一楼已经有注释了啊,二楼的都是原版升级的代码,不需要注释吧?

[发帖际遇]: 轩辕夏禹在擂谷山和苏星河下棋,于机缘巧合之下破解“珍珑棋局”,得到无崖子七十年内力,增加声望3。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2010-2-8 08:16 | 显示全部楼层
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-11-15 22:43

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表