找回密码
 点一下
查看: 3123|回复: 15

[12.7更新]发布一个游戏系统---可以移植的

[复制链接]
发表于 2007-11-30 22:33:28 | 显示全部楼层 |阅读模式
------------------------------------

恩,整合了伤害显示系统,英雄复活系统,杀人系统的演示。。。

而且移植简便。

这个是系统地图~

移植方案在后面
--------------------------------------
1111111.JPG

GameSystem_EFF.rar

56 KB, 下载次数: 119

GameSystem_EFF.rar

71 KB, 下载次数: 89

 楼主| 发表于 2007-11-30 23:05:28 | 显示全部楼层
移植方案。。。。。。。。。。。
001.JPG
002.JPG
003.JPG
回复

使用道具 举报

发表于 2007-11-30 23:55:25 | 显示全部楼层
赞,对于像我一样的懒人再合适不过了:)
回复

使用道具 举报

 楼主| 发表于 2007-12-1 13:38:27 | 显示全部楼层
更新了一些新功能~
回复

使用道具 举报

发表于 2007-12-2 09:11:25 | 显示全部楼层
有连击系统没?
包括普通攻击和技能的
是不是太贪心了点?口黑口黑:)
回复

使用道具 举报

发表于 2007-12-2 09:59:19 | 显示全部楼层
不明白RPG_UnitBaseStatus_*
是哪里定义的,怎么可以到处用啊,到是省了用缓存了
蛮方便:)
回复

使用道具 举报

 楼主| 发表于 2007-12-2 13:27:21 | 显示全部楼层
common.j里面的。。那东西很有用
回复

使用道具 举报

 楼主| 发表于 2007-12-2 13:28:02 | 显示全部楼层
普通攻击的补抓正在测试中,如果可以补抓普通攻击,那么连击的话。。。貌似很简单很简单
回复

使用道具 举报

发表于 2007-12-2 14:10:53 | 显示全部楼层
哦,普通的我搞定了已经
就差技能和普通的整合了
[codes=jass]
function ClearScore takes nothing returns nothing
    local timer tm=GetExpiredTimer()
    call DestroyTimer(tm)
    set tm=null
endfunction

function Show_Con takes nothing returns boolean
    local trigger trg=GetTriggeringTrigger()
    local unit hero=I2U(GetStoredInteger(udg_GC,I2S(H2I(trg)),"Hero"))
    local texttag tag=I2TAG(GetStoredInteger(udg_GC,I2S(H2I(hero)),"TextTag"))
    local timer tm=I2TM(GetStoredInteger(udg_GC,I2S(H2I(hero)),"Timer"))
    local unit target=I2U(GetStoredInteger(udg_GC,I2S(H2I(hero)),"Target"))
    local real n= GetStoredReal(udg_GC,I2S(H2I(hero)),"ComboNum")
    if hero==GetAttacker() then
        if (n==0 or target!=GetAttackedUnitBJ()) then
            set n=1
            call StoreReal(udg_GC,I2S(H2I(hero)),"Damage",0)
            
            set tm=CreateTimer()
            
            call TimerStart(tm,999,false,function ClearScore)
            call DisplayTextToPlayer(GetOwningPlayer(hero),0,0,GetUnitName(hero)+"找到新单位")
        else
            set n=n+1
            if n>3 then
                call DestroyTextTag(tag)
                set tag=CreateTextTagUnitBJ( ( I2S(R2I(n)) + "击!" ), hero, 0,(10+n/10), 100, 0.00, 0.00, 0 )
                call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 24, 90 )
                call SetTextTagPermanent( GetLastCreatedTextTag(), false )
                call SetTextTagLifespan( GetLastCreatedTextTag(), 3.00 )
                call SetTextTagFadepoint( GetLastCreatedTextTag(), 2.60 )
            endif
        endif
    else
        set trg=null
        set hero=null
        set target=null
        set tm=null
        set tag=null
        return false
    endif
    call StoreInteger(udg_GC,I2S(H2I(trg)),"Hero",H2I(hero))
    call StoreReal(udg_GC,I2S(H2I(hero)),"ComboNum",n)
    call StoreInteger(udg_GC,I2S(H2I(hero)),"TextTag",H2I(tag))
    call StoreInteger(udg_GC,I2S(H2I(hero)),"Target",H2I(GetAttackedUnitBJ()))
    call StoreInteger(udg_GC,I2S(H2I(hero)),"Timer",H2I(tm))
    set trg=null
    set hero=null
    set target=null
    set tm=null
    set tag=null
    return false
endfunction

function Show takes unit hero returns nothing
    local trigger trg=CreateTrigger()
    call DisplayTextToPlayer(GetOwningPlayer(hero),0,0,GetUnitName(hero)+"显示启动")
    //call StoreInteger(udg_GC,I2S(H2I(hero)),"Trigger",H2I(trg))
    call StoreReal(udg_GC,I2S(H2I(hero)),"ComboNum",0)
    call StoreInteger(udg_GC,I2S(H2I(trg)),"Hero",H2I(hero))
    call TriggerRegisterAnyUnitEventBJ(trg,EVENT_PLAYER_UNIT_ATTACKED)
    call StoreInteger(udg_GC,I2S(H2I(trg)),"TriggerCondition",H2I(TriggerAddCondition(trg,Condition(function Show_Con))))
    set trg=null
endfunction
[/codes]
回复

使用道具 举报

发表于 2007-12-2 14:12:58 | 显示全部楼层
还差连击中的伤害统计,连击时间
搞定了就可以整个 刀剑封魔录 里面的连击分数了:)
回复

使用道具 举报

 楼主| 发表于 2007-12-2 20:30:46 | 显示全部楼层
噢对了。。

我作这个系统里面你要用Timer别CreateTimer()

直接GetTimer()就可以了

然后用完不用的Timer可以call ReleaseTimer(t)(别Destory)

这样的Timer你可以用GetTimerIndex(t)获得Timer索引,然后就可以用Timer数据组了

SYS_TimerData_I00[tmIndex]~SYS_TimerData_I09[tmIndex]
SYS_TimerData_R00[tmIndex]~SYS_TimerData_R09[tmIndex]
SYS_TimerData_U00[tmIndex]~SYS_TimerData_U09[tmIndex]

还有一些EFFECT,TimerDLG什么的数据可以保存用。
回复

使用道具 举报

发表于 2007-12-2 21:14:28 | 显示全部楼层
恩,正在研究common.j中
貌似带中文说明的才是你写的吧?定义了好多变量啊。。。。。很强大啊
回复

使用道具 举报

 楼主| 发表于 2007-12-2 21:31:45 | 显示全部楼层
是的。。。为啥要用common.j主要是因为触发里面不能声明全局变量,用变量管理器又不方便移植。
回复

使用道具 举报

 楼主| 发表于 2007-12-7 20:12:32 | 显示全部楼层
v0.21版本可能有点占内存,请酌情使用。
回复

使用道具 举报

发表于 2007-12-7 21:30:58 | 显示全部楼层
仇恨有什么用?
感觉就是一个bug,利用这个bug玩家可以轻松的灭掉强大的敌人……
对AI来说最好不要有仇恨
回复

使用道具 举报

 楼主| 发表于 2007-12-7 22:42:52 | 显示全部楼层
仇恨就是让玩家打boss用的。。。当然仅限rpg使用
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-23 11:09 , Processed in 0.234048 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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