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

10楼更新习题解答视频Lv2

[复制链接]
发表于 2011-4-3 20:14:58 | 显示全部楼层 |阅读模式
MMORPG_Part1 移动 Lv2

简中版
中间有个小错误就是单位朝向角度实际为逆时针旋转,0度朝向为地图右侧

教程难度等级说明:
Lv1 图层及界面操作(如暴雪教程)
Lv2 触发器应用
Lv3 数据编辑器及简易actor仿制
Lv4 数据编辑器复合应用及actor进阶
Lv5 触发及数据编辑器综合应用

http://v.youku.com/v_show/id_XMjU0OTA5OTQ4.html
Youku720P 能看清字了

MMORPG part1.SC2Map

60 KB, 下载次数: 449

评分

参与人数 1威望 +10 收起 理由
Renee + 10

查看全部评分

发表于 2011-4-3 21:07:04 | 显示全部楼层
加油!
回复

使用道具 举报

 楼主| 发表于 2011-4-3 21:11:52 | 显示全部楼层
头目,我将部分url指向GA,
包括下载什么的,应该没啥事吧,
这东西没几个人看流量应该没多少吧
回复

使用道具 举报

发表于 2011-4-3 21:13:52 | 显示全部楼层
这个自然无问题~~
回复

使用道具 举报

发表于 2011-4-3 21:35:39 | 显示全部楼层
呀呀,好东西。
回复

使用道具 举报

发表于 2011-4-3 23:55:26 | 显示全部楼层
好东西,强烈支持!介绍的很详细
LZ能传一份高清的视频下载不?youku上看还是比较模糊
回复

使用道具 举报

 楼主| 发表于 2011-4-4 00:56:17 | 显示全部楼层
youku 720p已经很清晰了
全屏并且选超清模式即可
回复

使用道具 举报

发表于 2011-4-4 01:07:37 | 显示全部楼层
楼主有心了~受教!
回复

使用道具 举报

发表于 2011-4-4 22:25:02 | 显示全部楼层
支持啊 有教程太好了
回复

使用道具 举报

发表于 2011-4-5 14:03:21 | 显示全部楼层
好东西 赶紧收藏A!
回复

使用道具 举报

 楼主| 发表于 2011-4-13 07:14:59 | 显示全部楼层

习题教程

针对最近那俩视频做的,Lv2很简单很无脑适合新手
机枪毒爆部分出于降低难度需要未加入分离算法并升3攻
狗海坦克部分出于降低难度需要未加入过多的微操做
带阵型分离脚本的地图请参考下面的复杂样例
视频中的样例为简易版,不过想做提高的童鞋还是自己动脑做更好些;

优酷720p压制今天似乎很慢呢,先上低的
http://v.youku.com/v_show/id_XMjU4NDIyNDgw.html

简易机枪毒爆.SC2Map

42 KB, 下载次数: 1443

简易狗冲坦克.SC2Map

40 KB, 下载次数: 366

狗冲坦克复杂样例.SC2Map

189 KB, 下载次数: 497

回复

使用道具 举报

发表于 2011-4-13 07:33:29 | 显示全部楼层
噗...
回复

使用道具 举报

发表于 2011-4-13 07:49:12 | 显示全部楼层
支持了!

不过为啥不发个新帖呢?而且之前的帖子修改了标题的话,以后搜索起来会很麻烦的呀。
回复

使用道具 举报

发表于 2011-4-13 11:59:08 | 显示全部楼层
下载了LZ的演示仔细看了看,但是机器太卡测试不能哇,所以有几个问题希望LZ能解答一下。

我看的是演示  狗冲坦克复杂样例
首先是函数libNtve_gf_ClosestUnitToPoint(单位组中距离点最近的单位)的调用。
[codes=galaxy]

const int c_unitCountAll    = 0;
const int c_unitCountAlive  = 1;
const int c_unitCountDead   = 2;

unit libNtve_gf_ClosestUnitToPoint (point lp_point, unitgroup lp_group) {
    unitgroup auto9FF4A9A2_g;
    int auto9FF4A9A2_u;

    // Variable Declarations
    unit lv_pickedUnit;
    unit lv_closestUnit;
    fixed lv_distance;
    fixed lv_distanceShortest;
    point lv_unitLocation;
    fixed lv_xDiff;
    fixed lv_yDiff;

    // Variable Initialization
    lv_pickedUnit = null;
    lv_closestUnit = null;
    lv_distance = 0.0;
    lv_distanceShortest = 0.0;
    lv_unitLocation = null;
    lv_xDiff = 0.0;
    lv_yDiff = 0.0;

    // Implementation
    lv_distanceShortest = -1.0;
    lv_closestUnit = null;
    auto9FF4A9A2_g = lp_group;
    auto9FF4A9A2_u = 1;
    while (auto9FF4A9A2_u <= UnitGroupCount(auto9FF4A9A2_g, c_unitCountAll)) {
        lv_pickedUnit = UnitGroupUnit(auto9FF4A9A2_g, auto9FF4A9A2_u);
        lv_unitLocation = UnitGetPosition(lv_pickedUnit);
        lv_xDiff = (PointGetX(lv_unitLocation) - PointGetX(lp_point));
        lv_yDiff = (PointGetY(lv_unitLocation) - PointGetY(lp_point));
        lv_distance = ((lv_xDiff * lv_xDiff) + (lv_yDiff * lv_yDiff));
        if (((lv_distanceShortest < 0) || (lv_distance < lv_distanceShortest))) {
            lv_distanceShortest = lv_distance;
            lv_closestUnit = lv_pickedUnit;
        }
        else {
        }
        if (lv_pickedUnit == UnitGroupUnit(auto9FF4A9A2_g, auto9FF4A9A2_u)) {
            auto9FF4A9A2_u = auto9FF4A9A2_u + 1;
        }
    }
    return lv_closestUnit;
}
[/codes]
从这个函数来看,它是会返回已死亡单位的。
在演示中使用了它来返回距离小狗最近的坦克,可是因为在坦克死亡的时候并没有将其剔除出单位组,那么对gv_ZerglingTarget赋值后可能会出现bug吧。
1,是会对已死亡单位发送“攻击”命令,如果攻击地点在坦克阵之外的话,有可能造成坦克的剩余呢。
2,lv_ZergTargetCount会无法正确叠加,出现无法完成预期效果的问题。


另外一个就是躲避问题了,因为编号靠后的坦克的攻击产生的躲避命令会覆盖靠前的,那么小狗有可能无法有效躲避炮火吧。
理想的效果是活下来的小狗都是满血,不知道能不能达成呢。
回复

使用道具 举报

 楼主| 发表于 2011-4-13 18:12:51 | 显示全部楼层
正常的坦克也就是没设置死亡时间的坦克不用担心dead的问题

闪避只是辅助,并非必要,分散的阵型远比闪避有效,实际上无科技狗是不需要闪避的
回复

使用道具 举报

发表于 2011-4-13 20:03:54 | 显示全部楼层
啊哈哈,明白了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 12:21 , Processed in 0.161052 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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