找回密码
 点一下
查看: 4751|回复: 17

WOW又见WOW

[复制链接]
发表于 2011-5-5 14:43:38 | 显示全部楼层 |阅读模式
11.jpg
【传说中的施法条系统】

12.jpg
【冰法技能系统】

13.jpg
14.jpg
15.jpg
【冰法天赋系统】

18.jpg
16.jpg
【这个是复活系统】

17.jpg

19.jpg

20.jpg

既然有人反感。装逼的话就不说了 留几张图吧。

顺便留个BUFF/DEBUFF系统,希望高手指点。
基本上魔兽世界中所有的DEBUFF和一些属性参数修改型的BUFF 都用这一条函数就能实现了
因为技能系统也是完全重做,技能数据也是完全绑定在哈希表中的。
因此这个函数还可以 影响技能数据。比如我的一个BUFF需要增加人物的寒冰箭技能伤害500点 也是这一个函数就OK了
再配合自己做的事件处理系统 添加一个BUFF结束事件的捕捉
比如生命绽放这种BUFF效果(每秒回血,可叠加3次 效果结束后 会额外治疗目标XX点 回复施法者XX点魔法) 也用不了几行调用
function AddBuff takes unit sbj,  //Buff释放者
                                         unit target,//Buff目标
                                         integer buffid,// buff马甲的技能ID (我用一个光环技能当作BUFF 并且塞到隐藏的魔法书里 来达到BUFF马甲的效果 这个ID是隐藏该BUFF的魔法书ID)
                                         integer attribid,//减少/增加的属性索引大于0的都是在人物数据绑定里的子索引 ,数据绑定见下文 。-1力量 -2 敏捷 -3 智力 -4 生命值 -5 魔法值
                                         real value,//改变的值
                                         real mode ,//改变的模式  1 是增加 -1是减少
                                         boolean isOverlay,//是否允许重叠。如 每秒掉100血的DOT 再加一个的话就会每秒掉200
                                         real rate,//DOT 或者HOT的暴击几率
                                         real timeslice,//时间片持续时间 对于持续性BUFF 意义是 指定的属性改变持续XX时间(此时时间片个数一定要为1) 对于DOT或者HOT 意义是 每一跳的时间 例如 腐蚀术 每3秒造成138点伤害 这里timeslice就是3
                                         integer slicenum ,//时间片个数 就是对于DOT HOT来说 持续多少跳 也就是说该BUFF 持续总时间为 timeslice*slicenum
                                         effect ef //该BUFF带有的魔法效果 用于BUFF结束后的删除 没有的话直接给NULL就行了
returns nothing


数据绑定
人物数据绑定
哈希表udg_hsUnitsBind
主索引= 单位的handle值
子索引 定义如下
  //1 攻击强度
    //2 近战暴击
    //3 法术伤害
    //4 法术爆击
    //5 躲闪几率
    //6 格挡几率
    //7 格挡值
    //8 护甲穿透  
    //9 法术急速
    // 11-施法条计时器
   // 12-施法条计时器 受攻击后退格数
    //14 护甲值
    //15 魔法抗性
    //21-22攻击力
    //23 攻击力附加
    //30 天赋点
    //31剩余天赋点
    //50+ 人物事件标志
    //60 人物Buff栈指针 61-79 人物Buff栈空间 用于记录 人物身上现在有的BUFF计时器 主要用于清除或者继续叠加人物身上指定个数的BUFF(如净化技能)
    //80 人物DeBuff栈指针 81-99 人物DeBuff栈空间


Buff马甲与具体BUFF绑定
(弄这个是为了 删除BUFF效果更好 因为如果只删除隐藏BUFF的魔法书 人物身上的BUFF图标总要延迟0.5-1秒才消失 所以我一用绑定 删除隐藏BUFF的魔法书同时 也删除对应(绑定)的BUFF)
哈希表 udg_hsExtraBind
主索引=1
子索引 隐藏BUFF的魔法书
存入值 隐藏BUFF的魔法书对应的BUFFid


BUFF信息与相应的计时器绑定
(buff的所有信息是与计时器绑定的 计时器虽然是临时变量申请的 但是会保存到人物绑定里的BUFF&DEBUFF栈里)
哈希表 udg_hsTimerBind
主索引= timer的handle值
子索引 定义如下
0 BUFF释放者
1 BUFF释放目标
2 BUFFid
3 BUFF改动目标属性的索引
4 BUFF改变属性的值
5 时间片个数
6 HOT 或DOT的 暴击几率
7 BUFF特效模型
8 BUFF改动模式

[jass]
function AddBuffIcon takes unit sbj,integer buffid returns nothing//给人物增加 BUFF马甲
if(buffid!=0) then
    call UnitAddAbilityBJ( buffid, sbj )
    call SetPlayerAbilityAvailableBJ( false, buffid, GetOwningPlayer(sbj))
  endif
endfunction  

function ClearBuffIcon takes unit sbj,integer buffid returns nothing//删除人物的BUFF马甲
if(buffid!=0)then
  call  UnitRemoveAbilityBJ( buffid, sbj )
  call  UnitRemoveBuffBJ(LoadIntegerBJ(buffid,1,gl_hsExtra),sbj)
endif
endfunction

////////////清楚BUFF效果////////////////
function DestroyBuff takes timer t returns nothing  
local integer attribid=LoadIntegerBJ(3,YDWEGetTimerID(t), udg_hsTimerBind )//更改属性的索引
local integer buffid=LoadIntegerBJ(2,YDWEGetTimerID(t), udg_hsTimerBind )//BUFF的ID 其实是隐藏BUFF的魔法书的ID
local unit u=LoadUnitHandleBJ(1,YDWEGetTimerID(t), udg_hsTimerBind)  
local real value=LoadRealBJ(4,YDWEGetTimerID(t), udg_hsTimerBind )
local unit tar=LoadUnitHandleBJ(1,YDWEGetTimerID(t), udg_hsTimerBind )
local real curvalue
local real mode=LoadRealBJ(8,YDWEGetTimerID(t), udg_hsTimerBind )
//恢复人物被改动的属性if(attribid==-1) then
    set curvalue=I2R(GetHeroStr(tar,true))
    call SetHeroStr(tar,R2I(curvalue-value*mode),true)
  elseif(attribid==-2)then
    set curvalue=I2R(GetHeroAgi(tar,true))
    call SetHeroAgi(tar,R2I(curvalue-value*mode),true)
  elseif(attribid==-3) then
    set curvalue=I2R(GetHeroInt(tar,true))
    call SetHeroInt(tar,R2I(curvalue-value*mode),true)
  elseif(attribid>0) then
    set curvalue=LoadRealBJ(attribid,YDWEGetUnitID(tar),udg_hsUnits )
    call SaveRealBJ(curvalue-value*mode,attribid,YDWEGetUnitID(tar), udg_hsUnits )
endif


call ClearBuffIcon(u,buffid)
call FlushChildHashtableBJ(YDWEGetTimerID(t), udg_hsTimerBind )
call DestroyTimer(t)
call DestroyEffect(LoadEffectHandleBJ(7,YDWEGetTimerID(t), udg_hsTimerBind ))
call SaveTimerHandleBJ(null,buffid,YDWEGetUnitID(u), udg_hsUnits ) //将BUFF计时器的保存位置清空 下文会讲
endfunction



//////////////////////////////////////////////////////////
////////////清除掉人物身上C个 BUFF或者DEBUFF/////
function DefuseBuff takes unit subject,integer c ,boolean isDebuff returns nothing
local integer l
local integer sp// 人物BUFF DEBUFF栈顶指针
local integer index
local timer t

if(isDebuff) then
  set l=80
else  
  set l=60
endif
  set sp=LoadIntegerBJ(l,GetHandleIdBJ(subject),udg_hsUnits )
  if(sp==0) then
  return
  endif
if(c>sp-1) then
set c=sp
endif
loop  
exitwhen(c==0)

set index=LoadIntegerBJ(l+sp,GetHandleIdBJ(subject),udg_hsUnits)
set sp=sp-1
call SaveIntegerBJ(sp,l,GetHandleIdBJ(subject),udg_hsUnits )
call DestroyBuff(LoadTimerHandleBJ(index,GetHandleIdBJ(subject),udg_hsUnits ))
set c=c-1
endloop
endfunction
  
  
/////////////////////////////////////////////////////
////////////BUFF动作 ////////////////////////////
function BuffAction takes nothing returns nothing
local unit sbj=LoadUnitHandleBJ(0,YDWEGetTimerID(GetExpiredTimer()), udg_hsTimerBind )
local unit tar=LoadUnitHandleBJ(1,YDWEGetTimerID(GetExpiredTimer()), udg_hsTimerBind )

local integer attribid=LoadIntegerBJ(3,YDWEGetTimerID(GetExpiredTimer()), udg_hsTimerBind )
local real value=LoadRealBJ(4,YDWEGetTimerID(GetExpiredTimer()), udg_hsTimerBind )

local real curvalue
local integer n=LoadIntegerBJ(5,YDWEGetTimerID(GetExpiredTimer()), udg_hsTimerBind )
local real rate=LoadRealBJ(6,YDWEGetTimerID(GetExpiredTimer()), udg_hsTimerBind )
local real mode=LoadRealBJ(8,YDWEGetTimerID(GetExpiredTimer()), udg_hsTimerBind )

  
  if(attribid==-4) then
       if(OddsTest(rate)==1) then//暴击判断 OddsTest()是我自己写的几率发生器 如果几率命中则返回1
           set value=value*1.5
           call DisplayTextTag(I2S(R2I(value)),sbj,tar,3+R2I(mode),true)//这是我自己写的显示伤害的封装函数 可以忽略
       else
           call DisplayTextTag(I2S(R2I(value)),sbj,tar,3+R2I(mode),false)
       endif
       set curvalue=GetUnitState(tar,UNIT_STATE_LIFE)
       if(mode==1) then//如果 是加血则 直接设置生命值
           call SetUnitState(tar,UNIT_STATE_LIFE,curvalue+value)
       else //如果是减血 则造成伤害
           call UnitDamageTargetBJ(sbj,tar,value,ATTACK_TYPE_CHAOS,DAMAGE_TYPE_MAGIC)
       endif
    
  elseif(attribid==-5) then
    set curvalue=GetUnitState(tar,UNIT_STATE_MANA)
    call SetUnitState(tar,UNIT_STATE_MANA,curvalue+value*mode)
    call DisplayTextTag(I2S(R2I(value)),sbj,tar,3,false)
  
endif

  
set n=n-1
if(n==0) then //时间片数量用尽 BUFF结束
call DestroyBuff(GetExpiredTimer())
else  
call SaveIntegerBJ(n,5,YDWEGetTimerID(GetExpiredTimer()), udg_hsTimerBind )
endif
set sbj=null
set tar=null
endfunction
  
///////////////////////////////////////////
/////////////////主函数/////////////////
function AddBuff takes unit sbj,unit target,integer buffid,integer attribid,real value,real mode ,boolean isOverlay,real rate,real timeslice,integer slicenum ,effect ef returns nothing
  
  local real oldvalue
  local timer tm=CreateTimer()
  local timer rtm=LoadTimerHandleBJ(buffid,YDWEGetUnitID(target), udg_hsUnits )// rtm 用来取得人物身上是已有的BUFF的计时器 索引是BUFFID 会在后面判断rtm是否为空 也就是判断 该目标身上是否已经存在该BUFF (然后再进行相关叠加处理)
  local integer index
  if(mode==1) then
  set index=60  
  else  
  set index=80
  endif
  
  
  if(rtm==null) then //说明是新BUFF
  
   if(attribid==-1) then
    set oldvalue=I2R(GetHeroStr(target,true))
    call SetHeroStr(target,R2I(oldvalue+value*mode),true)
  elseif(attribid==-2)then
    set oldvalue=I2R(GetHeroAgi(target,true))
    call SetHeroAgi(target,R2I(oldvalue+value*mode),true)
  elseif(attribid==-3) then
    set oldvalue=I2R(GetHeroInt(target,true))
    call SetHeroInt(target,R2I(oldvalue+value*mode),true)
  elseif(attribid>0) then
    set oldvalue=LoadRealBJ(attribid,YDWEGetUnitID(target),udg_hsUnits )
    call SaveRealBJ(oldvalue+value*mode,attribid,YDWEGetUnitID(target), udg_hsUnits )
  endif
  call SaveUnitHandleBJ(sbj,0,YDWEGetTimerID(tm), udg_hsTimerBind )
  call SaveUnitHandleBJ(target,1,YDWEGetTimerID(tm), udg_hsTimerBind )
  call SaveIntegerBJ(buffid,2,YDWEGetTimerID(tm), udg_hsTimerBind )
  call SaveIntegerBJ(attribid,3,YDWEGetTimerID(tm), udg_hsTimerBind )
  call SaveRealBJ(value,4,YDWEGetTimerID(tm), udg_hsTimerBind )
  call SaveIntegerBJ(slicenum,5,YDWEGetTimerID(tm), udg_hsTimerBind )
  call SaveRealBJ(rate,6,YDWEGetTimerID(tm), udg_hsTimerBind )
  call SaveEffectHandleBJ(ef,7,YDWEGetTimerID(tm), udg_hsTimerBind )
  call SaveRealBJ(mode,8,YDWEGetTimerID(tm), udg_hsTimerBind )
  call SaveTimerHandleBJ(tm,buffid,YDWEGetUnitID(target), udg_hsUnits )
  call AddBuffIcon(target,buffid)
//保存到人物的DEBUFF BUFF栈    BUFF栈中存放的其实是BUFFID 然后 再通过BUFFID索引到该BUFF的计时器call SaveIntegerBJ(LoadIntegerBJ(index,GetHandleIdBJ(target),udg_hsUnits )+1,index,GetHandleIdBJ(target),udg_hsUnits )
    call SaveIntegerBJ(buffid,index+LoadIntegerBJ(index,GetHandleIdBJ(target),udg_hsUnits ),YDWEGetUnitID(target), udg_hsUnits )


   call TimerStart(tm,timeslice,true,function BuffAction)
  
else  
  
   if(isOverlay) then //如果允许覆盖 则继续改变相应的属性值 并更新 数据绑定4中的value
      if(attribid==-1) then
        set oldvalue=I2R(GetHeroStr(target,true))
        call SetHeroStr(target,R2I(oldvalue+value*mode),true)
      elseif(attribid==-2)then
        set oldvalue=I2R(GetHeroAgi(target,true))
        call SetHeroAgi(target,R2I(oldvalue+value*mode),true)
      elseif(attribid==-3) then
        set oldvalue=I2R(GetHeroInt(target,true))
        call SetHeroInt(target,R2I(oldvalue+value*mode),true)
      elseif(attribid>0) then
        set oldvalue=LoadRealBJ(attribid,YDWEGetUnitID(target),udg_hsUnits )
        call SaveRealBJ(oldvalue+value*mode,attribid,YDWEGetUnitID(target), udg_hsUnits )
        endif
        call SaveRealBJ(value+LoadRealBJ(4,YDWEGetTimerID(rtm), udg_hsTimerBind ),4,YDWEGetTimerID(rtm), udg_hsTimerBind )
      
   endif
//否则的话只会刷新时间片数量 重新开启计时器
call SaveIntegerBJ(slicenum,5,YDWEGetTimerID(rtm), udg_hsTimerBind )
call TimerStart(rtm,timeslice,true,function BuffAction)
  endif
set tm=null
set rtm=null
  
  endfunction
  
  //下面只是封装两个 针对常用简单用处的外部接口函数 减少一些不常用的参数 是函数调用方便//功能是 仅仅减少或者增加目标的属性 且不能叠加没有特效
  function AddAttribBuff takes unit obj,integer buffid,integer attribid,real val,real duration returns nothing
  call AddBuff(obj,obj,buffid,attribid,val,1,false,0,duration,1,null)
  endfunction  
  function  ReduceTargetAttrib takes unit obj,integer buffid,integer attribid,real val,real duration returns nothing
    call AddBuff(obj,obj,buffid,attribid,val,-1,false,0,duration,1,null)
  endfunction  
[/jass]
发表于 2011-5-6 14:43:32 | 显示全部楼层
为什么我觉得这帖是LZ在猛吹自己这套系统有多NB多NB?
真的很难么?没人做得出来么?
回复

使用道具 举报

 楼主| 发表于 2011-5-6 19:39:01 | 显示全部楼层

回 1楼(Boss) 的帖子

好吧 终于有人了,是我装逼了 估计也没人看了 删了算了
可能很简单 可能高手有很多。来拿作品砸我也正是我希望的。也正是我以此通过吸取别人图的长处来提高自己的水平的打算。因此高调些也算是哗众取宠,结果无人问津。
看来高手都不太喜欢这方面。
回复

使用道具 举报

发表于 2011-5-6 22:35:48 | 显示全部楼层
兄弟 我是战犯的作者`
对于这个系统你真的过于的把简单问题复杂话`

比如物理爆 和 法术爆 以及一些模型的纠结利用你更本没设计到

比如物理爆的 标准模拟只能靠技能如果高JASS模拟你动作无法完美统一而且效率没原始的爆好
对于技能模拟来说 这些无非是几个变量就能达到的效果
先不说多的你看过我发的老版战犯没。

更别说新版
WOW里的一些东西用语WAR3要实践才能得到结论 否则用于游戏 无任何意义`

对于BUFF模拟实话告诉 你WAR3里没有真正好的BUFF模版~
你只能尽量的把几个技能定义成几个大类。然后有些特殊BUFF靠光环硬模拟只能如此 对于其他歪门我不谈因为实际上用起来毛病太多`

对于WOW的复杂话系统我看你写的J并没有利用到调用 而有不少相同动作反复的写

其实WOW里的东西并不复杂她无非是互相调用几个相同的大体模版而已
现在的人写内部系统无非是对应模拟这样写无非消耗更大的时间
事实证明过 体力永远 在特殊情况很难战胜利智力~

要做WOW首相就是人物 天赋 技能 物品 数据值统计 属性 特效 治疗 治疗加成 治疗影响仇恨 以及模型利用

不过你这个系统我还是很看好释法条 不过我最后依然决定放弃 WAR3实在没必要`~
回复

使用道具 举报

发表于 2011-5-6 22:49:07 | 显示全部楼层
这个属于体力劳动 `并非智力劳动`我深有感触!上面没说你装B而是
兄弟发了一个并非有研究价值的东西`~
回复

使用道具 举报

 楼主| 发表于 2011-5-6 22:57:41 | 显示全部楼层

回 3楼(rex) 的帖子

嗯 我看看你的图哈。
评价挺中肯 呵呵 不过有些地方我没看大明白

比如物理爆 和 法术爆 以及一些模型的纠结利用你更本没设计到
对于WOW的复杂话系统我看你写的J并没有利用到调用 而有不少相同动作反复的写
这是啥意思  呵呵
这个BUFF系统 是我之前写的了 只是系统中的一个小部分 。也只能管中窥豹

物爆法爆系统我做的还是比较灵活的 可以任意几率 任意系数 而且应该也没啥问题 还有效率应该也没啥问题 。物爆 我阉割了物理攻击 所以攻击特效处理十分灵活,技能伤害全是用语句做的 因此 暴击处理同样很方便
(像 冰枪术打被冰冻的目标 和冰系法术攻击被冻目标暴击提高 这类效果也都处理了 而且通用)
技能系统 我也是封装好的
数据封装到哈希表中
然后 由接口函数统一释放 甚至不用无视你又没有这个技能
这样的话 设计BOSS AI非常方便 只需要判定与直接调用技能接口

不过毕竟我刚学做图没多久,确实还有很多不足,最近我就在重构代码。准备重新做个,但是正如你所言 ,WOW太复杂了 。需要耗费大量的体力,当然还需要足够的智慧以及经验
不过还是 谢谢前辈了 来关注我的帖子
回复

使用道具 举报

发表于 2011-5-6 23:03:51 | 显示全部楼层
你去摆渡百科里 搜索 战犯II这个词
~

对于调用其实WOW里分5大系统
技能 伤害 特效 物品 AI!这5大类别
但是这5大类别都要以伤害系统为核心
因为效率和效果模拟太需要它了。
物理爆可能你不会模型 你感触不深 攻击动作和爆几动作只能靠原始技能100级来完美完成。
靠JASS模拟动作 虽然可以但是很不完美没有恢复点。
因为这个动画速率你要单独写个庞大的系统才能完美。
所以没必要。。
其他的东西都很简单几个变量附加值就OK或者改动改动
调用法就是把所有的相同东西 写在一起直接运行后续动作
对于BUFF不止你头疼`我更头疼 BUFF上限17 还是12我忘记了所以别想了放弃把

把技能归类 然后特殊的单独模拟 上之上策也`我写WOW地图写了4年到现在还在写`~~

你还是很能吃苦的`~~技能能给BOSS用所有单位通用是非常牛的一种想法`
但实际无用BOSS用不到那种人物的菜鸟技能
BOSS技能你还是要从新写呵呵`包括仇恨系统以及一些纠结东西
并非真的要完整模拟成WOW的那种效果
因为有些高效率需要的地方 不能用在没太大作用的小接点上比如庞大的记时器系统用于技能就很吃亏了
如果用于BUFF天啊。。
回复

使用道具 举报

发表于 2011-5-6 23:16:24 | 显示全部楼层
兄弟我真的建议你去研究研究千万别去做WOW图 吃力不讨好
我写了4年的脚本 9个地图现在还在 跳票 没发布 只有预告。
复杂的不是技能编写系统编写 而是庞大的平衡数据 先要通透DND规则来制作WOW
才事办工倍 出1个地图 写这么大的系统没意义``~
回复

使用道具 举报

发表于 2011-5-7 05:10:12 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2011-5-7 08:00:41 | 显示全部楼层

回 7楼(rex) 的帖子

哈哈,果然遇到做WOW的大神了。嗯 这次明白你说的了。以后相关问题 还请多多指点,呵呵。关于作图,其实无所谓的,我只是喜欢WE和WOW,单纯的喜欢而已,无所谓结果,做得出做不出,因为这是我的兴趣,就像我喜欢编程一样。无论怎样,开心就好。我也准备赶快重构好系统代码,出个DEMO图,到时候请Rex大 莅临指导下,呵呵。还有我没事准备先发个系统讨论贴,Rex也没事来指导建议下吧。 思想和思路很重要。
回复

使用道具 举报

 楼主| 发表于 2011-5-7 08:08:51 | 显示全部楼层

回 8楼(我干过羊) 的帖子

呵呵,嗯,不错,那么为什么你出生时会模仿父母的语言,。而不是自己创造一门新的语言。而小时候为什么不天生就写出一些好文章,而要学甚者抄一些或者模仿一些作文呢。因为模仿并不是简单的抄袭,而是为了学习,吸收,吸取一些新的思想思路,而后才能谈创新。不过谈到创新,我也确实没啥好辩驳的,因为中国人的创新能力,确实很缺乏。这里就不得不吐槽一下。各种山寨王再加上山寨神腾讯,使得中国的创新环境十分恶劣。一直和朋友在策划做一些创意的IT项目,但是我们最先想到的和最难克服正是,如何避免被腾讯复制。不过最好的结果是最终卖给腾讯,想做大,照现在的环境不太可能只能换个起点继续想。
回复

使用道具 举报

 楼主| 发表于 2011-5-7 08:10:12 | 显示全部楼层

回 9楼(acomc) 的帖子

嗯 很好啊,我就是喜欢看看别人的作品,这样可以避免自己目光短浅成为井底之蛙,也能不断的完善自己的不足,做出更好的东西
回复

使用道具 举报

发表于 2011-7-28 11:25:23 | 显示全部楼层
其实你们都一样简单的问题复杂话了,进度条在WR3里没实际意义,什么物理爆法术爆还用J写REX你脑袋有问题吧,爆率是有几率的用循环数字再简单不过了。WOW重才数据的平衡!
回复

使用道具 举报

发表于 2011-7-28 12:26:58 | 显示全部楼层
MVP 你不记得我了?

我就是霜`泣Rex
在WAR3里模拟重在效果 数据平衡 哈哈
2年不见 你还是老样子 循环数? 你别提了
你的优越感觉 不知道是那里来的

1年前我就和T系列作者化开了档次~~

这哥门 hash调用用的非常到位 模型和细节捕捉经验不足而已。。

现在我们研究的都是内部数据效果 而早已不是原始技能通过T来写后续`~
回复

使用道具 举报

 楼主| 发表于 2011-8-12 11:32:55 | 显示全部楼层
呵呵 我也发现其实所谓高仿WOW意义不大,很多东西复杂了 并不适合WAR3 顶多是让玩过WOW简单惊叹一下。
所以 我那个WOW图 也只是做出来个DEMO 就停工了。
或许是够没有毅力吧,只能半途而废了。因为想吃饭还得靠JAVA 而不是JASS 。只能偶尔回来看看了。
回复

使用道具 举报

发表于 2011-12-21 15:35:10 | 显示全部楼层
不成熟的系统
回复

使用道具 举报

发表于 2011-12-23 21:50:33 | 显示全部楼层
都是沉醉于思考 系统的写法 之中的人才啊。。。。

思考是自娱自乐~~

别人的惊叹声是对自己的肯定。。如果没人欣赏,会有种失落感吧~~
回复

使用道具 举报

发表于 2012-4-30 01:40:56 | 显示全部楼层
求学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-4-26 00:50 , Processed in 0.205719 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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