Project1

标题: 设定状态 [打印本页]

作者: 悠哈悠哈    时间: 2008-5-10 21:48
标题: 设定状态
见到本区某斑斑如是说
有一件事新人要明白,你是来做游戏,还是来学脚本,若为前者,.....对RGSS只要知其然,忽视所以然即可,把更多的精力放在游戏本身。

若是后者,你可能深陷其中,使游戏成为一个永远完成不了的坑,我就是活生生的例子,如真马甲无双所言,通过RGSS学编程,学无止境,与“做游戏”已渐行渐远。

看到这个我顿时吓出一身冷汗,想想还是算了,脚本这东东还是不学了,把有限的时间放到无限的游戏制中去吧,我可不想离游戏越来越远.
只要我在网上做一个好人,脚本上有什么困难我想大家都会帮我的!(这个区里的高手可都是大好人啊!){/cy}
言归正传:
现在我要求三个状态,网上有例子大约不会太难,但例子好象有点问题,比如做了HP徐徐回复就没了HP徐徐减少.......所以还是发一个贴求助吧!(老实说那个我看了也不会做)
1.默认的有一种中毒状态,每回合少HP10%,HP为0时死亡.但是我个人觉得这个用来做猛毒效果比较合适,所以我想到了一种轻一点的中毒效果
中毒(名称):效果为每回合少HP5%,最小HP为1(也就上说在没有外力的情况下不会死亡),如果该状态在战斗后没解决的话,那么每走一步少HP1点.(同样不会死亡)
2再生(名称):与中毒相反,每回合HP回复5%,战斗后没解除的话行走中是不会回复HP的!
3诅咒(名称):如果此状态没有解除,任何HP回复均无效(包括再生状态)战斗后本状态没有解除的话,HP回复无效化同样有效.(注:死亡后诅咒未解除的话,复活后HP为1点)
以上三个状态设定方法高手们自定,可以用ID法,也可以用名称法,总之你们觉得怎么方便就怎弄.但是不能和RM中的其他状态效果相冲突,也就是说原来有的状态现在也还可以设定.还有这三个状态只是设定的效果,也就是说对应该效果的其他设定还是有效的(比如几会回后自动解解,战斗结束后是否解决除等)
最后还要说一下的是我要用到状态图标化脚本(主站上方出的那个)如设定中会有冲突的话请说一声,我马上放上我要用的那个状态图标化角本.
最好是独立脚本.
{/cy}
作者: 禾西    时间: 2008-5-10 22:09
算了,獨立腳本做不到。特別是第三個效果
http://rpg.blue/web/htm/news539.htm
作者: 天圣的马甲    时间: 2008-5-10 22:43
我真的不喜欢写独立脚本{/pz}
http://rpg.blue/web/htm/news1035.htm [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 278772543    时间: 2008-5-10 22:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 悠哈悠哈    时间: 2008-5-10 23:48
我和楼上的差不多!
另外我正在学他们给出的东东,(老实说真的好难,连看懂都有点难,不过这个好我象有点看懂了)
问一下,这个与状态显示图标化不冲突吧.......
还有就是禾西给出的这个有点看懂了,天圣的马甲给出的那个现在还云里雾里的完全不明白.不过他们好象都没有对战斗后没解除的情况下(比如装备自动附加的这类状态)如何处理的问题.比如我对第一个状态非战斗情况下效果的描述.
如果说@active_battler.hp += @active_battler.maxhp/5 # 恢复1/5的最大生命
那么@active_battler.hp -= @active_battler.maxhp/5 # 减少1/5的最大生命(可以这样理解理吗?)
还有这段话

# 当角色生命>0并且中了26号状态(假设26号状态为剑灵)
   if @active_battler.hp > 0 and @active_battler.state?(26)
     @active_battler.animation_id = 17             # 显示17号动画
     @active_battler.hp += @active_battler.maxhp/5 # 恢复1/5的最大生命
     @active_battler.sp += @active_battler.maxsp/5 # 恢复1/5的最大精神
     @active_battler.damage = "剑灵恢复"           # 设置伤害文字为"剑灵恢复"
     @active_battler.damage_pop = true             # 将伤害显示在屏幕上
   end
如果改成减少HP的话他并没有解决不会死亡的问题(也就是HP小于减少量时,HP默认1点,即不会自动死亡)
还有,如果我只是需要他加减血,而不需要显示出具体数字时是不是可以把
@active_battler.damage = "剑灵恢复"           # 设置伤害文字为"剑灵恢复"
@active_battler.damage_pop = true             # 将伤害显示在屏幕上
这两句话删了呢?
第三个状态好象很难的样子,那就废弃不设了(反正这在游戏中不是必须的)
补充:不懂脚本的人有些问题问的有点脑残,而且比较烦,请各位脚本高人们不要见怪!



作者: IamI    时间: 2008-5-11 00:56
以下引用悠哈悠哈于2008-5-10 15:48:42的发言:

我和楼上的差不多!
另外我正在学他们给出的东东,(老实说真的好难,连看懂都有点难,不过这个好我象有点看懂了)
问一下,这个与状态显示图标化不冲突吧.......
还有就是禾西给出的这个有点看懂了,天圣的马甲给出的那个现在还云里雾里的完全不明白.不过他们好象都没有对战斗后没解除的情况下(比如装备自动附加的这类状态)如何处理的问题.比如我对第一个状态非战斗情况下效果的描述.
如果说@active_battler.hp += @active_battler.maxhp/5 # 恢复1/5的最大生命
那么@active_battler.hp -= @active_battler.maxhp/5 # 减少1/5的最大生命(可以这样理解理吗?)
还有这段话

# 当角色生命>0并且中了26号状态(假设26号状态为剑灵)
  if @active_battler.hp > 0 and @active_battler.state?(26)
    @active_battler.animation_id = 17             # 显示17号动画
    @active_battler.hp += @active_battler.maxhp/5 # 恢复1/5的最大生命
    @active_battler.sp += @active_battler.maxsp/5 # 恢复1/5的最大精神
    @active_battler.damage = "剑灵恢复"           # 设置伤害文字为"剑灵恢复"
    @active_battler.damage_pop = true             # 将伤害显示在屏幕上
  end
如果改成减少HP的话他并没有解决不会死亡的问题(也就是HP小于减少量时,HP默认1点,即不会自动死亡)
还有,如果我只是需要他加减血,而不需要显示出具体数字时是不是可以把
@active_battler.damage = "剑灵恢复"           # 设置伤害文字为"剑灵恢复"
@active_battler.damage_pop = true             # 将伤害显示在屏幕上
这两句话删了呢?
第三个状态好象很难的样子,那就废弃不设了(反正这在游戏中不是必须的)
补充:不懂脚本的人有些问题问的有点脑残,而且比较烦,请各位脚本高人们不要见怪!





[本贴由作者于 2008-5-10 15:51:31 最后编辑]

事实上,毒状态地图上削减HP是一个独立的部分,涉及到许多非战斗的类,如果丢掉这部分不去考虑完全可以无视之。恩,还有就是提出的两个疑问都正确。
作者: 悠哈悠哈    时间: 2008-5-11 01:24
是这样啊........又一种构思破灭...............{/dk}
最后问一下,如果以上状态我设定为战斗后100%解除,那么当是自动装备时会发生什么情况(比如装备自带的情况下?)这样我虽然设定了解除,可因为装备的关系,角色们还会带有这种效果,这样回复(或减少)效果的状态会不会出生效果?如果是的话,那么我只好在装备上不设定这种状态了.....T_T{/ll}不然.......
作者: IamI    时间: 2008-5-11 01:43
如果我没有猜错,应该是战斗开始以后附加状态……那么也可以无视
以上纯粹猜想……
还有一个就是关于诅咒……在想能不能监视hp的状态一旦发生改变,立即卡嚓之。
作者: 悠哈悠哈    时间: 2008-5-11 02:51
猜想...........{/gg}
那就再等等吧(本想结贴了,可是看到很多不确定因系所以临时决定再等一天再说......)
作者: lldjjf    时间: 2008-5-11 04:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: 悠哈悠哈    时间: 2008-5-11 05:00
看来第三种状态无果了,大约还是放弃的好(就算做出来了一定也是麻烦多多)
不知道再生和中毒叠加后会是什么效果........{/gg}
就象LS所说,因为全新世纪1争意很大,有人的觉得那是垃圾(大约是带了点感情因素===>某人博客上是这样说的)有人则说这是他玩过的最爽的游戏(同样带感情因素),但不管怎么说这部全新世纪让我毁誉参半..........{/ll}
所以没办法了,为了自己,也为了RM,这次我要不计成本去设计出一个游戏来.不会在呼花多少VIP和积分,也不在呼花多少时间去做,我只想做出一个让多数人满意的作品来(努力的方向)
目前最担心的还是到时美工和脚本高手们能不能拉我一把(因为真正的高人是不会在意这些VIP什么的).如果没有他们的爱心帮忙很多东西只能是停留在脑子里.因为我不是RM全能,也不是美工高手,更不是脚本高手(我是脚本文盲),所以只有在66各位高人的帮助下我才能有所突破.
先在这里对大家说声谢谢了!到时候还会有更难更烦的东东要劳驾大家,请大家一定要帮我一把啊!{/pz}
作者: 小lim    时间: 2008-5-11 05:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: 悠哈悠哈    时间: 2008-5-11 05:16
对,我改了很多有关战斗计算的内容......
所以我说放弃第三状态设定了,不然冲突多多,象我这种脚本白痴会死得很惨的......{/gg}
.........打算今天再研究一下这些东东,明天结贴.......
作者: 禾西    时间: 2008-5-11 08:20
不是不行,而是獨立腳本不行。(實際上我已經把這幾個效果偷進自己的工程當中去了)
修改的位置都是處於某個語句的中央部分,不懂腳本的很容易發生衝突...(其實一定程度的腳本知識還是需要的|||)
不然這個,把腳本文件(script.rxdata)上傳過來。應該就方便很多...
作者: 天圣的马甲    时间: 2008-5-11 08:45
我是想说呢……只要不怕麻烦,事件同样能实现很多强大的效果……{/fd}
关键就是要看会不会想到了,状态相关的效果,用状态法,多半也都能实现……

目前有个尽量不动脚本用默认的系统作出满意的游戏的想法{/hx}
作者: 禾西    时间: 2008-5-11 08:48
用事件調用方法?天聖殿下這倒是提醒了我甚麽東西{/fd}
作者: 悠哈悠哈    时间: 2008-5-11 17:37
是吗?不管怎么说还是先放上目前的脚本好了
ftp://[email protected]/临� ... 本管理工程.rar
高人就帮改一下吧,(改过地方请注明)
顺便帮改一下:升级后要全回复(可以无视诅咒,当然也可以诅咒有效,视处理难度而定)因为我照66上说的方法改过,没有全回复效果,(大约是升级后提示的那个脚本在做怪,我猜的)
还有彩虹神剑MISS显示没调好的问题(还有数字显示太大的问题,在约再小个1/3就可以了)
以上两个要求不是本主贴要求内容,如不想做的请无视.
还有我以后会用CP制战斗,同时加入气力槽(就是通常说的超杀系统)菜单方面主要会增加防具装备数量,设定时想注意与这些脚本的冲突问题.
作者: 禾西    时间: 2008-5-11 20:15
ftp://[email protected]/临� ... ��管理工程2.rar
半成品,由於顯示腳本問題,重複顯示狀態損血會有不協調感。
作者: 悠哈悠哈    时间: 2008-5-11 20:17
不太明白你的意思......真的.......什么叫不太协调?....冲突?
作者: 悠哈悠哈    时间: 2008-5-11 21:52
if @active_battler.hp > 0
      if @active_battler.state?(17) <===
        if @active_battler.hp > @active_battler.maxhp/5
          @active_battler.damage=@active_battler.maxhp/5
        else
          @active_battler.damage=@active_battler.hp-1
        end
        @active_battler.damage=@active_battler.damage.to_i
        @active_battler.hp-=@active_battler.damage
        @active_battler.animation_id = 21<=====
        @active_battler.damage_pop = true
      end
      if @active_battler.state?(18) and not @active_battler.state?(18)
        @active_battler.damage=-@active_battler.maxhp/5
        @active_battler.damage=@active_battler.damage.to_i
        @active_battler.hp-=@active_battler.damage
        @active_battler.animation_id = 20
        @active_battler.damage_pop = true
      end
      if @active_battler.slip_damage?
        @active_battler.slip_damage_effect
        @active_battler.damage_pop = true
      end
    end

问一下,因为同时想学一下,如我箭头所指,ID一会儿17,一会儿21,这是什么意思,还有我找不到第三属性设置在哪儿了?我找不到的说!
还有,你确认不会有错吗?目前这个脚本我没法测试,所以就先问一下了!
另外说一下,禾西大人,你好强大!!!{/cy}
作者: 禾西    时间: 2008-5-11 21:57
@active_battler.state?(17)        #角色含有 17 號狀態
@active_battler.animation_id = 21 #顯示21號動畫

另外,
if @active_battler.state?(18) and not @active_battler.state?(18)

這句應該是
if @active_battler.state?(18) and not @active_battler.state?(19)

看來我又按錯鍵盤了|||
作者: IamI    时间: 2008-5-11 22:03
某人手残频发= =我来解释一下那个序号的问题:
     if @active_battler.state?(17)
意思是:战斗者存在17号状态?
       @active_battler.animation_id = 21
意思是:在战斗者身上播放21号动画。
作者: 悠哈悠哈    时间: 2008-5-11 22:35
问一下19与18有什么区别?两个都是18会发生什么事?
现在这个工程我已经不大敢乱了.......
自我感觉已经很乱了......(有时候在想不改脚本到底能不能做出华丽的好东东来?){/jy}
还有那个诅咒,完全看不懂斑班大人是怎么设的
弱弱的问一下,怎样进入全局查找界面?...........
作者: IamI    时间: 2008-5-11 22:37
两个都是18,等效于:
存在18号状态并且不存在18号状态?
则这个可能永远不成立,因为这两个命题互否。
原意:
存在18号状态并且不存在19号状态?
全局查找:Ctrl+Shift+f,顺序不能颠倒 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 禾西    时间: 2008-5-11 22:38
Ctrl + Shift + F
或者直接在左邊欄目按下右鍵
作者: 悠哈悠哈    时间: 2008-5-11 23:39
终于可以结贴了,这个18和19是针对诅咒这个状态作的判断设定吧!呵呵,还有班班改的是脚本如果我没理解错的话是不是每回合20%MAXHP对面,如果是5%MAXHP的话大约是
# 连续伤害
    # 禾西
    if @active_battler.hp > 0
      if @active_battler.state?(17)
        if @active_battler.hp > @active_battler.maxhp/5
          @active_battler.damage=@active_battler.maxhp/5
        else
          @active_battler.damage=@active_battler.hp-1
        end
        @active_battler.damage=@active_battler.damage.to_i
        @active_battler.hp-=@active_battler.damage
        @active_battler.animation_id = 21
        @active_battler.damage_pop = true
      end
      if @active_battler.state?(18) and not @active_battler.state?(19)
        @active_battler.damage=-@active_battler.maxhp/5
        @active_battler.damage=@active_battler.damage.to_i
        @active_battler.hp-=@active_battler.damage
        @active_battler.animation_id = 20
        @active_battler.damage_pop = true
      end
      if @active_battler.slip_damage?
        @active_battler.slip_damage_effect
        @active_battler.damage_pop = true
      end
    end
是不是应改为:
if @active_battler.hp > 0
      if @active_battler.state?(17)
        if @active_battler.hp > @active_battler.maxhp/20
          @active_battler.damage=@active_battler.maxhp/20
        else
          @active_battler.damage=@active_battler.hp-1
        end
        @active_battler.damage=@active_battler.damage.to_i
        @active_battler.hp-=@active_battler.damage
        @active_battler.animation_id = 21
        @active_battler.damage_pop = true
      end
      if @active_battler.state?(18) and not @active_battler.state?(19)
        @active_battler.damage=-@active_battler.maxhp/20
        @active_battler.damage=@active_battler.damage.to_i
        @active_battler.hp-=@active_battler.damage
        @active_battler.animation_id = 20
        @active_battler.damage_pop = true
      end
      if @active_battler.slip_damage?
        @active_battler.slip_damage_effect
        @active_battler.damage_pop = true
      end
    end
这样改对吗?
还有原有的默认那个连续伤害是否还有效?




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