Project1

标题: 关于柳柳的自己动手打造任务系统的主线任务置顶的问题 [打印本页]

作者: 幻耶    时间: 2012-5-2 21:14
标题: 关于柳柳的自己动手打造任务系统的主线任务置顶的问题
本帖最后由 幻耶 于 2012-5-2 21:15 编辑

这是个任务系统的教程,没有区分主线和支线任务,我希望排列在第一的任务一直作为主线任务置顶,其它的支线任务总是排在它下面,但是当我删除了第一个任务并改变了其描述内容再次添加进去后,它就排在支线任务后面了,请教让第一个任务一直置顶的方法,请看附件

工程附件:
任务系统.zip (203.88 KB, 下载次数: 88)

教程地址
http://rpg.blue/htm/Topic_25371.htm






dsu_plus_rewardpost_czw
作者: 灵魂の补给    时间: 2012-5-2 21:45
数据源.sort_by{|a,b|a.类型 <=> b.类型}
大概要这样做了再描绘项目吧
作者: 幻耶    时间: 2012-5-2 21:47
本帖最后由 幻耶 于 2012-5-2 21:56 编辑
灵魂の补给 发表于 2012-5-2 21:45
数据源.sort_by{|a,b|a.类型  b.类型}
大概要这样做了再描绘项目吧


具体怎么改啊?教程链接里的工程已经不能下载了,不知道是教程的问题还是我没改对,当接了两次同样的任务后,左窗口的显示异常,任务重复了


作者: 七夕小雨    时间: 2012-5-3 15:27
本帖最后由 七夕小雨 于 2012-5-3 15:43 编辑

#XXOO定义任务函数
  def new_msg(n1,n2)
    return if @list.include?(n1) && @contents.include?(n2)
    @list.insert(0,n1)
    @contents.insert(0,n2)
  end

你的所有需求全部都解决了


其实回头看看貌似没有解决啊= =

你可以写一个置顶方法
def msg_top(n1,n2)
    return if @list.include?(n1) && @contents.include?(n2)
    @list.insert(0,n1)
    @contents.insert(0,n2)
end
这样子用$game_system.msg_top(n1,n2)这个方法加入的都会到顶端,其余的加入用push还是加到最后面比较好

顺便吐槽= =柳子当时设计的数据结构还真是惨不忍睹,好歹做个类用类方法实现啊= =

另外给你一片参考文章http://blog.csdn.net/yq495/article/details/7003479 里面有关于String ,数组 hash的所有方法和用法,一定用得到的
作者: 幻耶    时间: 2012-5-3 17:15
本帖最后由 幻耶 于 2012-5-3 17:25 编辑
七夕小雨 发表于 2012-5-3 15:27
#XXOO定义任务函数
  def new_msg(n1,n2)
    return if @list.include?(n1) && @contents.include?(n2)


添加定义一个置顶任务函数,在Game_System下面添加成这样?但是接了任务之后选完成,再查看,主线任务怎么变成两个了?
附件:
置顶任务系统.zip (203.91 KB, 下载次数: 38)
  1.   #XXOO定义置顶任务函数
  2.   def msg_top(n1,n2)
  3.     return if @list.include?(n1) && @contents.include?(n2)
  4.     @list.insert(0,n1)
  5.     @contents.insert(0,n2)
  6.   end
  7.   
  8.   #XXOO定义任务函数
  9.   def new_msg(n1,n2)
  10.     @list.push(n1)
  11.     @contents.push(n2)
  12.   end
  13.   
  14.   #----------------------
  15.   # ● 删除任务
  16.   #----------------------
  17.   def del_msg(n1,n2)
  18.     # 首先用j作为变量,循环一下
  19.     for j in [email protected]
  20.       # 如果找到了标题名、内容都符合要求的位置j
  21.       if @list[j]==n1 and @contents[j]==n2
  22.         # 把j位置的内容删掉
  23.         @list.delete_at(j)
  24.         @contents.delete_at(j)
  25.       end
  26.     end
  27.   end
复制代码




作者: 七夕小雨    时间: 2012-5-3 17:41
晕= =你删掉过去的那个再添加新的啊,要不然自己在做个更新的方法,调用一下




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