乐迷社区 和乐迷做兄弟 与乐迷共进步
乐迷社区»版 块 乐迷社区备用勿动 fid:189 【OpenBOR教程】OpenBOR技巧汇总1
2013-11-8 08:27:52 25460 跳转到指定楼层
1.对sprite进行clip操作
void cliptest()
{
int i, a;
int m = openborvariant("max_ent");
void e;

int depth = 30;

for(i=0; i<m; i++)
{
e = getentity(i);
if(getentityproperty(e, "exists") )
{
a = getentityproperty(e, "a");
changedrawmethod(e, "flag", 1);
changedrawmethod(e, "clip", -1000, -1000, 2000, 1000+a-depth);
}
}
}

2定义全局重力
        在levels.txt中定义,括号内为默认值。
        gravity {gravity(-0.1)} {maxfallspeed(-6)} {maxtossspeed(100)}

3定义全局fall曲线
        在models.txt中定义,括号内为默认值。        dropv {a(3.0)} {x(1.2)} {z(0)}
4暂时定格一个entity(比如MD幽游白书仙水的裂蹴反击拳)
void nextAnim(void ent,void time)

{
        void enextanim = getentityproperty(ent, "nextanim");
        void enextthink = getentityproperty(ent, "nextthink");
        void enextmove = getentityproperty(ent, "nextmove");
        void ctime=getentityproperty(ent, "tosstime");
        changeentityproperty(ent, "nextanim", enextanim + time);
        changeentityproperty(ent, "nextthink", enextthink + time);
        changeentityproperty(ent, "nextmove", enextmove + time);
        changeentityproperty(ent, "tosstime", ctime + time);
}
调用
nextAnim(self,100);//定格0.1秒

5读取一个alphamask的sprite
        loadsprite(srcfilepath,maskfilepath)

6取消本次攻击,令其无效
        ondoattackscript中*

        changeopenborvariant("lasthitc",0)

7动态脚本编译,执行.
void prepareScript()
{
        void snumber        =        0;
        void sh;
        void i=0;
        /***********************************
                        Register Scripts Here
        ***********************************/
        void file=openfilestream("data/scripts/updated/s"+i+".c");
        while(file!=-1)
        {
                snumber++;
                i++;
                closefilestream(file);
                file=openfilestream("data/scripts/updated/s"+i+".c");
        }
        if(snumber)
        {
                sh=array(snumber);
                //
                for(i=0;i<snumber;i++)
                {
                        set(sh,i,allocscript("script"+i));
                        loadscript(get(sh,i),"data/scripts/updated/s"+i+".c");
                        compilescript(get(sh,i));
                }
                setlocalvar("script",sh);
        }
}

void execs()
{
        void s,i;
        s=getlocalvar("script");
        if(!s)return;
        for(i=0;i<size(s);i++)
        {
                executescript(get(s,i));
        }
}
void frees()
{
        void s=getlocalvar("script");
        if(s)free(s);
}
动态脚本里可以有自己的oncreate和ondestroy,里面的localvar,scriptvar是独立的.




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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