Jump to content
主视角中国

moh8888

网站版主
  • 帖子总数

    1,704
  • 注册时间

  • 上次访问

博客条文 由 moh8888 发布的

  1. moh8888
    无条件循环&有条件循环
    通常,如果要写一个无限循环,我们可以这么写:


    while ( 1 ) { /* ... ... */ } 这么写完全正确。不过,while (1) 是一个有条件循环,每次循环都会判断 1 的真假性, 因为 1 永远为真,所以这个循环会无限执行。正因为 while (1) 是有条件循环, 所以在效率上比无条件循环要略孙一筹。哪怎么写无条件循环呢? 很简单。请看: for ( /* 可以有代码 */; /* 必须为空 */; /* 可以有代码 */ ) { /* ... ... */ }
    上面的代码就是一个无条件循环,每次循环不用进行任何判断,所以效率比 while (1) 高。
    来源: C/C++ 标准编程
  2. moh8888
    定点录影
    位置是固定的,从这一个视点观看画面
    功用是提示要完成的任务或显示已完成的结果画面特写
    这是代码公布


    spawn func_camera "origin" "X X X" "angles" "Y Y Y" "targetname" "ALLIES_WIN_CAM" // cuecamera $ALLIES_WIN_CAM letterbox 0.5 //这是上下黑幕压幅 drawhud 0 freezeplayer $player physics_off $player nodamage $player hide letterbox 0.5 // 这里加入要观看的画面特写内容(如爆炸) wait 4 //看几分钟 $player stufftext "stopmp3" $player physics_on $player takedamage $player show clearletterbox cueplayer releaseplayer $player drawhud 1
  3. moh8888
    local.player attachmodel items/gasmask.tik "bip01 head" 1 ("gasmask" + local.i) -1 -1 -1 -1 -1 ( -1 10 0 ) $("gasmask" + local.i).angles = local.player.viewangles + ( -90 90 30 )
  4. moh8888
    要执行xxx/yyy.scr内的zzz指令
    :: = exec xxx/yyy.scr( thread zzz )

    写成这样


    exec xxx/yyy.scr::zzz
    今儿看到这个
    exec xxx/yyy.scr zzz
    不知是?了....呵呵...
  5. moh8888
    salvation 1.0
    拯救MOD写了初稿,TEST中,这是DM3的MAP
    1.按USE把这个模特背在身上
    2.会出现一架F47,降下梯子
    3.背上这个家伙上到梯子顶端完成OBJ
    4死掉后模特掉地待救
    5德军不得背模特
    6.叛变的自动KILL
    初稿TEST中
  6. moh8888
    新的TANK_MOD2.0
    昨晚是整空降MOD的飞机不间断循环飞行(已
    TEST完),临时看了以前的一个TANK稿子,
    灵机一动,有了个替代想法,俺的TANK_MOD
    程序也改了拾多次了,可以说是SERVER-SIDE
    目前最好的PK3(俺还没有看到超过它的...),只有
    一个BUG,它是人物驾驶后那炮塔会透墙显示出
    来,毫无隐藏的暴露,给对方反击的准备....
    将原炮塔用一样的物件替代(这可是机密...呵呵)
    从而解决了炮塔显示问题,但也带来一个BUG,那是
    替代物件炮塔打炮不会伸缩....整了这个BUG又有那个BUG
    呵呵,以后再整了...新的TANK_MOD2.0
    替代的出现将演变成MOHAA一切可用的武器物件的MOD
    比如海战.....
  7. moh8888
    object spawn 的用法
    产生物件的程序
    俺输的是bmwbike,以下略
    script comment------>bmwbike
    ID name ------>oi
    model ------->vehicles/bmwbike.tik---物件(S_22物件表)
    origin-------->215 56 57--->位置
    angle--------->0 0 0----->方向
    scale---------->1--->放大倍数

    点add to script自动生成以下的内容
    //bmwbike
    local.oi = spawn script_model
    local.oi model "vehicles/bmwbike.tik"
    local.oi.origin = ( 215 56 57 )
    local.oi.angle = ( 0 0 0 )
    local.oi.scale = 1.0
    复制一下粘到你的.scr
    方便吧?......
  8. moh8888
    MoHAAeasyscripter 简单程序编写器的使用之1
    网上找的,用起来容易的软件,含2个
    MOHAA的小程序导出
    1.产生物件的程序
    2.人物的触发程序
    同样它适用SH,BT...
    不知有感兴趣的人在吗?
    ............
    MoHAAeasy.exe为绿色软件,不用
    安装,解压后双击即可,
    trigger spawn的用法
    产生人物触发的程序
    script comment----->程序说明(俺输的是fff,以下略)
    ID name ------>物件的替代名称 ----->fg
    origin---------->位置------>000
    set size -------->范围---->10 10 10 -10 -10 -10长20宽20高20
    set thread ----->指行指定程序名称hh(hh的内容要自己编了)
    message-------->触发后打印消息内容hi
    点add to script自动生成以下的内容


    //fff local.fg = spawn trigger_multiple local.fg.origin = ( 0 0 0 ) local.fg setsize = ( 10 10 10 ) ( -10 -10 -10 ) local.fg setthread hh local.fg message "hi" local.fg wait 1 local.fg delay 0
    复制一下粘到你的.scr
    编程器这就上传
  9. moh8888
    PK3之间是如何发生冲突的
    有时你在MOHAA内放了2个
    你都想要的PK3,但会发现只
    有一个起作用,另一个没起作
    用是为什么?电脑就会不运行....
    严重时会死机....
    这里的原因有2种
    1.2个PK3内有相同明名的文件,比如
    在一个PK3内有这个global/mike_torso.st文件
    另一个PK3内也有这个global/mike_torso.st文件
    这样的话,电脑会执行那个PK3呢?它会看PK3的起
    名是什么?它会执行起名英文子母最后命名的PK3
    (如ZZZ.PK3而不执行YYY.PK3,执行ZZZ.PK3而不
    执行ZZ.PK3)
    2.程序冲突
    这种现象不好解决,是多方面的,
    大多是相同的程序造成的...
    比如2个PK3都有同样的运行循环程序要运行


    while(1) { for(local.i=1;local.i<=$player.size;local.i++) { 象上面的程序冲突,将另一个循环程序改成 while(1) { for(local.k=1;local.k<=$player.size;local.k++) {
    也有PK3的程序自身就存在编写问题,这里不谈了,...
    (个人观点,仅作参考)
  10. moh8888
    简化
    一个箱子的代码


    local.crate = spawn script_model local.crate model "static/indycrate.tik" local.crate.origin = ( 1 1 -9999 ) local.crate solid 可以这样 local.c = spawn script_model local.c model "static/indycrate.tik" local.c.origin = ( 1 1 -9999 ) local.c solid 也可以这样 local.object = spawn script_model "targetname" "c" $c model "static/indycrate.tik" $c.origin = ( 1 1 -9999 ) $c solid
    还有的就不写了....
    要是让它随机生成100个不同位置箱子的代码,
    1.要有一个计数器
    2.3个随机的函数(X.Y.Z)
    3.>=100 循环停止
    呵呵,留给你们想了....
  11. moh8888
    SH高射炮的加法
    准备好了吗?
    Are you ready?
    今天把这个大家伙加上
    这是代码


    spawn statweapons/P_aagun_base.tik "targetname" "aa1" "classname" "turretweapon_player_aagun" $aa1.origin = ( 4951 -4661 113) $aa1.angles = (0 175 0) //init aagun params spawn statweapons/P_aagun_cannon.tik "targetname" "aa1g" "classname" "ProjectileGenerator_gun" $aa1g.origin = ( 4951 -4661 113) $aa1g.angles = (0 175 0) $aa1g.accuracy = 10 $aa1g.bulletlarge = 3 $aa1g.cycles = 0 $aa1g.maxdelay = 4 $aa1g.maxduration = 4 $aa1g.maxnumshots = 40 $aa1g.mindelay = 3 $aa1g.minduration = 4 $aa1g.minnumshots = 40 $aa1g.spawnflags = 128 $aa1g.tracerspeed = 0.5 $aa1g.testanim = idle $aa1g_turret0 maxyawoffset 115.0 $aa1g_turret0 turnspeed 25 $aa1g_turret0 pitchspeed 25 $aa1g_turret0 pitchcaps "-50 50 -50" // changed "-50 10 0" $aa1g_turret0 viewjitter 1 $aa1g_turret0 firedelay 0.08 $aa1g immune aagun $aa1g_turret0 setaimtarget $aagun1_aim $aa1g nodamage $aa1 nodamage
    he he,使用起来爽吗?
  12. moh8888
    修改武器的大小尺寸之3
    发现问题了吗?
    呵呵,


    dmbulletcount 1 dmstartammo 200 dmammorequired 1 dmfiredelay 0.08 dmbulletrange 4000 的前面有这个存在 init { server { 那些参数起作用是因为在 server { 之后,这样就好办了,把 scale 5 放入成这个样子就行了, init { server { scale 5 ......
    这样,你建了SERVER,别人就会
    看到你的改动了,当然你也可改小
    (手雷扔出的尺寸除外)

  13. moh8888
    修改武器的大小尺寸之2
    这个


    scale 5 放在那儿才是SERVER-SIDE? 记得原来有一篇S_22介绍修改 弹药数量的文呢,看一看有 什区别?这里,就是这个 dmbulletcount 1 dmstartammo 200 dmammorequired 1 dmfiredelay 0.08 dmbulletrange 4000
    乱78遭的参数不管,看一看它的位置在那里就知道了,
    为什么改了这儿的参数就是SEVER-SIDE?
    待续....
  14. moh8888
    又一款BULID建筑MOD发现,MOHAA再次增加一MOD,
    这是仅用箱子来建,与以前的相比方便了很多
    1.用USE键调出箱子
    2.用鼠标左键放置
    3.用右键消除已放好的箱子(点一下,箱子变红,2下消)
    4.连点右,箱子扔远
    TEST 中


  15. moh8888
    安雷和排雷的构思
    安雷不是OBJ的安雷,而是
    安地雷,安雷人也是排雷人
    本队人地雷不炸......
    安雷人OVER后不能重生?
    BOMB---MOD1.0?....
    .........
    好象突出重围有这MOD,
    好久了,突出重围的内容
    忘了........
  16. moh8888
    修改武器的大小尺寸
    打开.tik
    会看到这个代玛


    setup { scale 0.52 .....
    这个
    scale 0.52
    就是尺寸的大小
    但是单改这个
    scale 0.52 ----->scale 5
    是不够的,把它做成PK3也只是
    你能看到它变大了.而SERVER内
    别的人没有你的PK3,看到它还是原来的大小,
    如何修改成SERVER-SIDE?
    呵呵
    待续....
  17. moh8888
    SH(先头部队)六管炮的加法


    spawn statweapons/P_nebelwerfer.tik "targetname" "nebel" "classname" "turretweapon_german_nebelwerfer-w" $nebel.angles = (0 0 0) $nebel.launchsound = nebelwerfer_launch $nebel.origin = ( -574 2297 385) //这是mohdm1的位置 $nebel nodamage spawn script_object "targetname" "nebelwerfer" "classname" "ProjectileGenerator_Heavy" $nebelwerfer.angles = (0 0 0) $nebelwerfer.launchsound = nebelwerfer_launch $nebelwerfer.projectile = projectile/nebelwerferproj.tik $nebelwerfer.spawnflags = 128 $nebelwerfer nodamage $nebel immune bullet $nebel immune fast_bullet $nebel immune bash // $nebel.collisionent = $nebelwerfer_collision // $nebel_turret0.collisionent = $nebelwerfer_turret_collision $nebel_turret0 immune bullet $nebel_turret0 immune fast_bullet $nebel_turret0 immune bash $nebel_turret0 thread global/turret.scr::playerturret_proj_think_aim $nebel $nebelwerfer $nebel_turret0 maxyawoffset 115.0 $nebel_turret0 turnspeed 45 $nebel_turret0 pitchspeed 45 $nebel_turret0 pitchcaps "-50 50 -50" //"-50 -50 50"stuck high//"-50 10 -50"high no low//"50 10 50"half high//"-50 10 50"high but not low//"-0 10 0"nothing//changed"-50 10 0" $nebel_turret0 viewjitter 1 $nebel_turret0 firedelay 1.5 // changed 0.08
  18. moh8888
    set sniper 1
    放在那?
    V1.11的迷你SERVER内有一个
    SERVER.TXT文件,是用来设置SERVER的
    名称以及图的顺序之用的,set sniper 1就放
    在这里面,上下的位置都可以,只要是单独占
    一行就行了...
    当然还有这个PK3,要放到MOHAA/MAIN/
    PK3这就上传....
  19. moh8888
    可仅使用一种的武器,这样就可以作为各战队的训练使用,
    它不是将各种武器的弹药简单的改成0,而是你选别的武器
    后会自动的变为你起始设定的武器.....
    如何设定?

    这里仅说明在迷你SERVERV1.11使用
    set sniper 1 // this will make your server sniper only这仅允许你的服务器使用狙

    set rifle 1 // this will make your server rifle only......步枪

    set sprinfield 1 // this will make your server springfield only........春田...以下懒得翻了

    set kar98sniper 1 // this will make your server kar98sniper only

    set m1grand 1 // this will make your server m1 only

    set kar98 1 // this will make your server kar98 only

    set shotgun 1 // this will make your server shotgun only

    set rocket 1 // this will make your server bazzoka only

    set all_weapons 1 // this will make your server all weapons

    set smg 1 // this will make your server smg only

    set mg 1 // this will make your server mg only

    set pistol 1 // this will make your server pistol only

    set dual_sniper 1 // this will make your server dual sniper only

    它只能使用一条代码
    这个代码放在那里?
    比如这一条


    set sniper 1
    待续....
  20. moh8888
    可搬运的M42(SH)

    想不想在图中加上它?很简单,就是这个代码


    spawn weapons/mg42carryable "targetname" "xtra1" $xtra1.origin = ( 207 -2529 175) //此位置是mohdm5 $xtra1.angles = (0 270 0)
  21. moh8888
    可使用的FLAK88炮(SH)
    加在图的.SCR中


    spawn statweapons/P_flak88 "targetname" "flakcannon" "classname" "turretweapon_german_flak88" $flakcannon.origin = ( -1093 -1191 -280) //<----此位置是mohdm7中 $flakcannon.angles = (0 45 0) $flakcannon_turret0 maxyawoffset 80 // changed 35 $flakcannon_turret0 pitchcaps "-50 50 -50" // changed "-20 20 0" $flakcannon_turret0 turnspeed 30 // changed 15 $flakcannon_turret0 pitchspeed 7.5 $flakcannon_turret0 viewjitter 7 $flakcannon_turret0 firedelay 3 // changed 4 //$flakcannon_turret0.collisionent = $flak88_turret_collision //$flakcannon.collisionent = $flak88_collision $flakcannon nodamage
  22. moh8888
    消除SH雾状的天气

    大多数的MOHAA的PK3可在SH中使用
    但会发现有一种现象是SH空间是不透明的
    有雾状的,需要加一条代码消除它
    位置是.SCR的这里


    level waittill spawn $world farclipoverride -1 //<---加上它
    就可以了
  23. moh8888
    MOHAA早就有这一个PK3,是老外写的,一
    直就没有TEST,这2天看到后应是爆头的内容
    一TEST,呵呵.SERVER-SIDE,还有一些BUG,
    不过还可以,有时间的话改一改,效果出现
    最好是射击在对方的2个眼中(脑袋上)
    会有一片血雾(加红色),脑袋被打掉了....
×
×
  • 创建新的...