设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: piaoy
打印 上一主题 下一主题

[已经过期] 求伤害计算脚本

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
11
发表于 2011-3-12 19:47:12 | 只看该作者
回复 piaoy 的帖子

好热闹~~
被攻击者.attack_effect(攻击者)
被攻击者.damage 就为伤害

比如
ar = $game_actors[2]
$game_actors[1].attack_effect(ar)
p $game_actors[1].damage
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

12
发表于 2011-3-12 19:50:10 | 只看该作者
沙漠点灰 发表于 2011-3-12 19:47
回复 piaoy 的帖子

好热闹~~

1、重复发帖了。
2、你这个也是要在战斗中吧?(似乎不是)
3、热闹?理解不能
4、原来可以这样写?
5、……先留着。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
13
发表于 2011-3-12 20:02:30 | 只看该作者
回复 忧雪の伤 的帖子
1、重复发帖了。

不好意思,换页了,以为没有发....
2、你这个也是要在战斗中吧?

地图上测试过....
3、热闹?理解不能

个人认为....个人观点....个人....
4、原来可以这样写?

Game_Battler有
  attr_accessor :damage                   # 伤害值
5、……先留着

我也先留着
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

14
发表于 2011-3-12 20:10:37 | 只看该作者
沙漠点灰 发表于 2011-3-12 20:02
回复 忧雪の伤 的帖子

那啥,会照成实际伤害吗?如果会的话记得加回去血(——大雾)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
15
发表于 2011-3-12 20:18:20 | 只看该作者
回复 忧雪の伤 的帖子

不会,因为没有执行
被攻击者.hp -= 被攻击者.damage

点评

额……  发表于 2011-3-12 20:20
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
16
发表于 2011-3-12 20:24:56 | 只看该作者
  1. def get_damage_louse(attacker,targer,miss=false)
  2.   louse_damage = 0
  3.   hit_result = (rand(100) < attacker.hit)
  4.   hit_result = false unless miss
  5.   if hit_result == true
  6.     atk = [attacker.atk - targer.pdef / 2, 0].max
  7.     louse_damage = atk * (20 + attacker.str) / 20
  8.     louse_damage *= elements_correct(attacker.element_set)
  9.     louse_damage /= 100
  10.     if louse_damage > 0
  11.       if targer.guarding?
  12.         louse_damage *= 100
  13.         louse_damage /= rand(100)+150
  14.       end
  15.     end
  16.     if louse_damage.abs > 0
  17.       amp = [louse_damage.abs * 15 / 100, 1].max
  18.       louse_damage += rand(amp+1) + rand(amp+1) - amp
  19.     end
  20.     eva = 8 * targer.agi / attacker.dex + targer.eva
  21.     hit = louse_damage < 0 ? 100 : 100 - eva
  22.     hit = targer.cant_evade? ? 100 : hit
  23.     hit_result = (rand(100) < hit)
  24.     hit_result = false unless miss
  25.   end
  26.   unless hit_result
  27.     louse_damage = 0
  28.   end
  29.   return louse_damage
  30. end
复制代码
调用方法:
事件中使用脚本
  1. 计算闪避(如果闪避返回0)
  2. get_damage_louse(攻击方,被攻击方,是否计算闪避)
  3. 不计算闪避:
  4. get_damage_louse(攻击方,被攻击方)
复制代码
注意:

括号中一定要用半角的逗号(,)而不能全角

示例:
  1. 1号角色攻击3号敌人:
  2. get_damage_louse($game_actors[1],$data_enemies[3])
  3. 2号角色攻击6号敌人:
  4. get_damage_louse($game_actors[2],$data_enemies[6])
  5. 1号敌人攻击2号角色:
  6. get_damage_louse($data_enemies[1],$game_actors[2])
复制代码

点评

又来个凑热闹的...  发表于 2011-3-12 20:29

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1140
在线时间
381 小时
注册时间
2010-10-9
帖子
386

开拓者

17
 楼主| 发表于 2011-3-13 08:57:04 | 只看该作者
你们这好象是直截调用了原定义的算法吧,我是要“重定义”(虽然算法一样)打个比方,魔塔战斗里不就有这样一段嘛

点评

我的稍微修改了一下……去掉了减少HP和判定会心一击  发表于 2011-3-13 09:45
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
364
在线时间
1198 小时
注册时间
2010-12-18
帖子
3928

贵宾

18
发表于 2011-3-13 10:03:37 | 只看该作者
piaoy 发表于 2011-3-13 08:57
你们这好象是直截调用了原定义的算法吧,我是要“重定义”(虽然算法一样)打个比方,魔塔战斗里不就有这样 ...

虱子君的可是没有调用原算法啊……
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1140
在线时间
381 小时
注册时间
2010-10-9
帖子
386

开拓者

19
 楼主| 发表于 2011-3-13 12:51:51 | 只看该作者
算了诺,各位至截告诉我攻击力的变量吧,$actor.atk什么的都不对NILCLASS
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-29 01:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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