Project1

标题: 【VA】自创武功 [打印本页]

作者: 杂兵天下    时间: 2012-3-10 17:31
标题: 【VA】自创武功
本帖最后由 杂兵天下 于 2012-3-11 00:08 编辑

RUBY 代码复制
  1. $imported = {} if $imported.nil?
  2. if $imported["RuntimeDB"].nil?
  3.   $imported["RuntimeDB"] = true
  4.   module DataManager
  5.     class <<self
  6.       alias make_save_contents_runtimedb_zabing make_save_contents
  7.       alias extract_save_contents_runtimedb_zabing extract_save_contents
  8.     end
  9.     def self.make_save_contents
  10.       contents = make_save_contents_runtimedb_zabing
  11.       contents[:dataactorszabing] = $data_actors
  12.       contents[:dataclasseszabing] = $data_classes
  13.       contents[:dataskillszabing] = $data_skills
  14.       contents[:dataitemszabing] = $data_items
  15.       contents[:dataweaponszabing] = $data_weapons
  16.       contents[:dataarmorszabing] = $data_armors
  17.       contents[:dataenemieszabing] = $data_enemies
  18.       contents[:datatroopszabing] = $data_troops
  19.       contents[:datastateszabing] = $data_states
  20.       contents[:dataanimationszabing] = $data_animations
  21.       contents[:datatilesetszabing] = $data_tilesets
  22.       contents[:datacommoneventszabing] = $data_common_events
  23.       contents[:datasystemzabing] = $data_system
  24.       contents[:datamapinfoszabing] = $data_mapinfos
  25.       contents
  26.     end
  27.     def self.extract_save_contents(contents)
  28.       extract_save_contents_runtimedb_zabing(contents)
  29.       $data_actors = contents[:dataactorszabing]
  30.       $data_classes = contents[:dataclasseszabing]
  31.       $data_skills = contents[:dataskillszabing]
  32.       $data_items = contents[:dataitemszabing]
  33.       $data_weapons = contents[:dataweaponszabing]
  34.       $data_armors = contents[:dataarmorszabing]
  35.       $data_enemies = contents[:dataenemieszabing]
  36.       $data_troops = contents[:datatroopszabing]
  37.       $data_states = contents[:datastateszabing]
  38.       $data_animations = contents[:dataanimationszabing]
  39.       $data_tilesets = contents[:datatilesetszabing]
  40.       $data_common_events = contents[:datacommoneventszabing]
  41.       $data_system = contents[:datasystemzabing]
  42.       $data_mapinfos = contents[:datamapinfoszabing]
  43.     end
  44.   end
  45. end
  46. #如果用了我的铸剑系统,可以删掉上面这一段。
  47. $imported = {} if $imported.nil?
  48. if $imported["RatiosZabi"].nil?
  49. #--------------------------------------------------------------------------
  50. # 多项比率选一(Ratios) By.杂兵天下
  51. # 使用 Ratios.Co({对象=>比率},分比数)
  52. #--------------------------------------------------------------------------
  53.   $imported["RatiosZabi"] = true  
  54.   module Ratios
  55.     def self.Co(data = {}, b = 100)
  56.       a = []
  57.       a[0] = 0
  58.       for i in 1..data.values.size
  59.         a[i] = data.values[i-1] + a[i-1]
  60.       end
  61.       b = rand(a[data.values.size])
  62.       for i in 1..data.values.size
  63.         if (b>=a[i-1])and(b<a[i])
  64.           p [data.keys[i-1],data.values[i-1]]
  65.           return [data.keys[i-1],data.values[i-1]]
  66.         end
  67.       end
  68.     end
  69.   end
  70. end
  71. class Game_Interpreter
  72.   def makeskill(zcid)
  73.     temp = RPG::Skill.new
  74.     temp.id = $data_skills.size
  75.     thishash = {
  76.     ["拳",116,0,6]=>10,
  77.     ["爆",119,0,79]=>10,
  78.     ["斧",128,1,12]=>10,
  79.     ["爪",129,2,86]=>10,
  80.     ["枪",130,3,90]=>10,
  81.     ["剑",131,4,11]=>10,
  82.     ["刀",132,5,89]=>10,
  83.     ["箭",133,6,17]=>10,
  84.     ["匕",134,7,88]=>10,
  85.     ["锤",135,8,24]=>10,
  86.     ["杖",136,9,23]=>10,
  87.     ["铳",137,10,93]=>10,
  88.     }
  89.     lwt=Ratios.Co(thishash, 100)
  90.     temp.icon_index = lwt[0][1]
  91.     temp.description = $game_actors[zcid].name+"自创的"+lwt[0][0]+"技。"
  92.     thishash = {
  93.     [nil,""]=>100,
  94.     }
  95.     temp1 = RPG::UsableItem::Effect.new
  96.     temp1.code = 21
  97.     temp1.data_id = 8
  98.     temp1.value1 = 0.25
  99.     temp1.value2 = 0.0
  100.     thishash[[temp1,"晕击"]] = 10
  101.     featur = Ratios.Co(thishash, 100)
  102.     temp.effects = [featur[0][0]] unless featur[0][0].nil?
  103.     temp.description += "特效1:" + featur[0][1] unless featur[0][1] == ""
  104.     thishash = {
  105.     ["",""]=>100,
  106.     }
  107.     notetexiao = Ratios.Co(thishash, 100)
  108.     temp.note = notetexiao[0][0]
  109.     temp.description += "\n特效2:" + notetexiao[0][1] unless notetexiao[0][1] == ""
  110.     thishash = {
  111.     ["之气",2,0]=>10,
  112.     ["#{ lwt[0][0]}法",1,1]=>10,
  113.     ["破击",6,1]=>10,
  114.     }
  115.     houzhui = Ratios.Co(thishash, 100)
  116.     temp.scope = houzhui[0][1]
  117.     temp.occasion = 1
  118.     temp.animation_id = lwt[0][3]
  119.     temp.hit_type = houzhui[0][2]
  120.     temp.damage.type = 1
  121.     thishash = {
  122.     ["地火",3,'a.atk * 4 - b.def * 2',5]=>10,
  123.     ["燃冰",4,'a.atk * 8 - b.def * 6',7]=>10,
  124.     ["奔雷",5,'a.atk * 2',7]=>10,
  125.     ["太极",1,'b.atk * 4 - b.def * 2',10]=>10,
  126.     ["青灵",0,'a.atk * 3',8]=>10,
  127.     ["紫霄",0,'a.atk * 4',9]=>10,
  128.     }
  129.     qianzhui = Ratios.Co(thishash, 100)
  130.     temp.damage.element_id = qianzhui[0][1]
  131.     temp.damage.formula = qianzhui[0][2]
  132.     temp.tp_cost = qianzhui[0][3]
  133.     temp.name = qianzhui[0][0] + houzhui[0][0]
  134.     temp.message1 = "发动了" + temp.name + "!"
  135.     temp.required_wtype_id1 = lwt[0][2]
  136.     $data_skills[$data_skills.size] = temp
  137.     $game_actors[zcid].learn_skill($data_skills.size - 1)
  138.   end
  139. end
用makeskill(1)这样来让角色1习得一个自创武功。
各种破击攻击随机四个对象。
各种之气可以同时攻击全体敌人。
各种剑法、锤法、斧法神马的只能攻击单体敌人。
下面是伤害公式:
地火代表火属性普通攻击
燃冰代表冰系双倍普通攻击-敌人防御*2
奔雷代表雷系2×发动者攻击
太极代表物理系让敌人自己打自己后的伤害
青灵代表无属性3×发动者攻击
紫霄代表无属性4×发动者攻击
这些数据都可以在哈希表中更改。
注意这里的多项比率选一与菜鸟飞呀飞的版本完全不同。
完全独立原创,版主请勿扣分。
默认数据库共有216种可能自创的武功。
在打防御高的怪物时最强的两种武功:紫霄破击(4个以下怪物),紫霄之气(4个以上怪物)
在打攻击高的怪物时最强的两种武功:太极破击(4个以下怪物),太极之气(4个以上怪物)
在打防御低的怪物时最强的两种武功:燃冰破击(4个以下怪物),燃冰之气(4个以上怪物)
恩,好了!就这样,大家自己研究去吧
怎么没人回复啊!!!
经验是象征性的。看看有谁看了帖子
作者: 光的圆周率    时间: 2012-3-10 21:00
坐等解 密
作者: z12508186    时间: 2012-3-10 21:19
很好。。花钱不冤枉。。。LZ这个自创的功法是随机的么??还是可控的选择自创??
作者: [email protected]    时间: 2012-3-10 21:59
代码可以改下不   复制不了
作者: tang19990919    时间: 2012-4-2 18:40
Me too!复制不了!
作者: y610407721    时间: 2012-4-4 14:31
本帖最后由 y610407721 于 2012-4-4 14:31 编辑

跟我一样复制不了~
作者: tang19990919    时间: 2012-5-9 23:51
看不懂脚本以及说明……
作者: swbxhlh    时间: 2012-6-17 13:39
LZ脚本没注释的话会让人很无奈的。。。
作者: 风雪优游    时间: 2012-8-5 09:23
看不懂细节,建议LZ说明写详细点
作者: 神秘来客3    时间: 2013-2-24 15:12
谁说复制不了?
作者: zhangchufeng    时间: 2013-3-2 18:23
看不懂脚本的给跪了……
作者: 黄濑凉太    时间: 2013-3-31 21:28
复制不了。。。。求解决。。。
作者: 萧十一郎    时间: 2013-9-30 21:54
写的很好,楼主辛苦了!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1