Skip to content
View in the app

A better way to browse. Learn more.

主视角中国

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

moh8888

网站版主
  • 注册时间

  • 上次访问

由 moh8888 发表的全部内容

  1. 不用,只有2个文件,上面的程序没问题!
  2. 这是M1l1单人地图的SCR文件 单人地图只能在V0.9中建服务器,客户端才不用下载! 但有一种办法,将M1l1.DSP文件放到游戏安装版的MAIN/MAPS/DM/下(客户端同上)也可 建局域网和公网,且声音比V0.9正常! 这里说的是V0.9公网: 首先用WINRAR打开已安装GAME___MOHAA/MAIN/PAK5/MAPS文件,你可看到有DM和OBJ文件 那是网战多人用的地图不理它,看其它的一堆文件! 找到了,是M1l1.DSP和M1l1.SCR! 将2个文件拖出放在V0.9/MAIN/MAPS/下! 用记事本打开M1l1.SCR 将以下程序替换M1l1.SCR 保存后退出,进入V0.9MAIN/SERVER.TXT 将M1l1名加入即可! 单人地图的武器声音有些不正常,如何正常俺还不会!
  3. m410尽是平原,不可取,那个声音如何能正常还是没有好的方法, 文章的有关出生点的程序比俺简单 俺是 local.allied = spawn info_player_allied local.allied.angle = 42 local.allied.origin = ( -2272 2600 -64 ) local.axis = spawn info_player_axis local.axis.angle = 0 local.axis.origin = ( -4288.29 -6729.40 -135.88
  4. moh8888 回复 moh8888 的 主题 于 硝烟里的年华
    一个M313,俺删了这么多的德军原型还是没删干净! 苦呀! local.deathmatch = spawn info_player_deathmatch origin "1248 4368 -141" angle 42 local.deathmatch = spawn info_player_deathmatch origin "1129 3792 -134" angle 89 local.deathmatch = spawn info_player_deathmatch origin "1420 3792 -134" angle 92 local.deathmatch = spawn info_player_deathmatch origin "2259 4288 -154" angle -132 local.deathmatch = spawn info_player_deathmatch origin "1424 3711 -142" angle -49 local.deathmatch = spawn info_player_deathmatch origin "1497 3018 -146" angle 0 local.deathmatch = spawn info_player_deathmatch origin "1847 3360 -159" angle -56 local.deathmatch = spawn info_player_deathmatch origin "2480 2783 -162" angle 129 local.deathmatch = spawn info_player_deathmatch origin "2323 4297 -129" angle -56 local.deathmatch = spawn info_player_deathmatch origin "2716 4297 -129" angle -126 local.deathmatch = spawn info_player_deathmatch origin "3131 2977 -165" angle 173 local.deathmatch = spawn info_player_deathmatch origin "3167 3319 -165" angle -133 local.deathmatch = spawn info_player_deathmatch origin "2967 4351 -157" angle -61 local.deathmatch = spawn info_player_deathmatch origin "3077 4258 42" angle -95 local.deathmatch = spawn info_player_deathmatch origin "3216 4263 42" angle -44 local.deathmatch = spawn info_player_deathmatch origin "3775 4643 -108" angle -162 local.deathmatch = spawn info_player_deathmatch origin "4206 4236 -162" angle -158 local.deathmatch = spawn info_player_deathmatch origin "4629 4087 -243" angle -94 local.deathmatch = spawn info_player_deathmatch origin "5360 3704 -210" angle -137 local.deathmatch = spawn info_player_deathmatch origin "5585 3018 -218" angle -169 local.deathmatch = spawn info_player_deathmatch origin "5677 2480 -207" angle -173 local.deathmatch = spawn info_player_deathmatch origin "5776 2151 -221" angle -120 local.deathmatch = spawn info_player_deathmatch origin "4861 686 -236" angle 86 local.deathmatch = spawn info_player_deathmatch origin "4256 2207 -189" angle -36 local.deathmatch = spawn info_player_deathmatch origin "4448 1675 -166" angle 177 local.deathmatch = spawn info_player_deathmatch origin "4594 1675 -208" angle -94 local.deathmatch = spawn info_player_deathmatch origin "3561 1031 -219" angle 29 local.deathmatch = spawn info_player_deathmatch origin "3035 2608 -177" angle -39 local.deathmatch = spawn info_player_deathmatch origin "3496 1043 -201" angle 102 local.deathmatch = spawn info_player_deathmatch origin "2824 1950 -206" angle -98 local.deathmatch = spawn info_player_deathmatch origin "2774 311 -241" angle 37 local.deathmatch = spawn info_player_deathmatch origin "2935 -103 -245" angle 57 local.deathmatch = spawn info_player_deathmatch origin "4016 972 -262" angle -114 local.deathmatch = spawn info_player_deathmatch origin "4132 904 -269" angle 1 local.deathmatch = spawn info_player_deathmatch origin "4086 668 -269" angle -55 local.deathmatch = spawn info_player_deathmatch origin "4420 440 -85" angle 138 local.deathmatch = spawn info_player_deathmatch origin "4386 -238 -253" angle 89 local.deathmatch = spawn info_player_deathmatch origin "4272 -328 -253" angle 130 local.deathmatch = spawn info_player_deathmatch origin "3209 164 -53" angle -129 local.deathmatch = spawn info_player_deathmatch origin "4400 -556 -269" angle -92 local.deathmatch = spawn info_player_deathmatch origin "3992 -1400 -227" angle 137 local.deathmatch = spawn info_player_deathmatch origin "3121 -404 -266" angle -90
  5. moh8888 发表 1 个主题 于 硝烟里的年华
    来一点新鲜感吗? 将以下加入每个地图的.SCR中level waittill spawn之上, 进入后会看到一个黑天MOHAA $world farplane 2200 $world farplane_color (.000 .000 .000) $world.farplane_cull = 1 $world.fastsky = 1
  6. 测试通过,只是有些门和电梯的程序没有保留全都删了....
  7. moh8888 发表 1 个主题 于 硝烟里的年华
    俺有一个问题是M511已搞定,TEST也成功,俺记得那关 应是下雨的,俺看了半天不知是那个程序保留可下雨, 这是M511.SCR原单人图程序,请帮俺看一下,俺一一试太麻烦了... //----------------------------------------------------------------------------------- main: // Mackey crossed this path as well exec global/exploder.scr exec global/ai.scr exec global/loadout.scr maps/m5l1a.scr $leftgate notsolid $rightgate notsolid for (local.i=1;local.i $m5_crew[local.i] notsolid level waittill prespawn exec global/cabinet.scr local.count = 0 while ($ending_spawn) { local.count++ level.ending_spawn[local.count] = waitthread global/spawner.scr::spawner_create $ending_spawn[1] } // println ("local count is " + local.count) // println (" size is " + level.ending_spawn.size) waitthread setupcrew exec global/ambient.scr m5l1a // level.frienddebug = 2 // exec global/weather.scr 3500 (0.333 0.333 0.359) level.farplane = 3500 level.farplanecolor = (0.333 0.333 0.359) exec global/weather.scr exec global/shutter.scr exec global/door_locked.scr // setcvar "g_syncronousClients" "0" // setcvar "cg_rain_density" "0.0" // setcvar "ui_crosshair" "1" // setcvar "r_light_emphasize" "0" setcvar cg_playermodel 0 // soundtrack music/m5l1a.mus exec global/bomber.scr exec global/friendly.scr // waitthread global/friendly.scr::debug // Add's helpful messages level.gammacap = 0.4 level.flags[gotbazooka] = 0 level.flags[initialchat] = 0 level.flags[bazooka] = 0 level.flags[reunion] = 0 level.flags[reunion2] = 0 level.flags[thunder] = 0 level.flags[door] = 0 level.flags[obj3] = 0 cache weapons/colt45.tik cache weapons/springfield.tik cache weapons/m2frag_grenade_sp.tik cache weapons/thompsonsmg.tik level waittill spawn $player stufftext "tmstartloop sound/music/mus_SniperTown_01a.mp3" $fire loopsound fire_med for (local.i=1;local.i $autosave_health[local.i] thread health_save $bazookahit thread bazookahit $leftgate solid $leftgate disconnect_paths $rightgate solid $rightgate disconnect_paths $triggerA1 thread triggerA1prep // $triggerA2 thread triggerA2prep // $triggerB2 thread triggerB2prep // $triggerB3 thread triggerB3prep local.count = 0 if (getcvar(alive) == "1") { level.friendly1 nodamage level.friendly2 nodamage level.friendly3 nodamage level.friendly4 nodamage level.friendly5 nodamage } if (game.skill == "hard") local.kill_snipers = 1 else local.kill_snipers = 4 while (local.count { local.i = randomint ($enemy.size) + 1 if ($enemy[local.i].sniper != NIL) { // $enemy[local.i] delete $enemy[local.i] damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0 $enemy[local.i].origin = $enemy[local.i].origin + (0 0 -1000) local.count++ } } level.deadsnipers = 0 for (local.i=1;local.i if ($enemy[local.i].sniper != NIL) { if (game.skill == "hard") $enemy[local.i].noticescale = 40 else $enemy[local.i].noticescale = 60 $enemy[local.i].silent = 1 $enemy[local.i] thread maps/m5l1b.scr::sniperdeath 850 } else $enemy[local.i].silent = 1 if (getcvar(dead) == "1") while ($enemy[1]) $enemy[1] delete // $enemy[local.i] thread global/ai.scr::sniperthink // $player threatbias 25 thread initmap // $enemygenerator thread enemygenerator thread objectives level.friendly1 exec global/disable_ai.scr level.friendly2 exec global/disable_ai.scr level.friendly3 exec global/disable_ai.scr $enemy1 exec global/disable_ai.scr end tempe: println level.farplane println level.farplanecolor wait 1 goto tempe health_save: local.set = self.set while (self) wait 1 exec global/autosave.scr local.set end objectives: waitthread global/objectives.scr::add_objectives 1 2 "Locate the bazooka team." $ending_point waitthread global/objectives.scr::add_objectives 2 2 "Get past the gate into the rest of the town." $leftgate waitthread global/objectives.scr::add_objectives 3 2 "Proceed to the south edge of town." $ending_point waitthread global/objectives.scr::current_objectives 1 clear_objective_pos // set_objective_pos local.ent // Rendezvous with the tank crew" $endarea.origin end initmap: level.friendly4 exec global/disable_ai.scr level.friendly5 exec global/disable_ai.scr level.friendly4 exec global/crouch.scr level.friendly5 exec global/crouch.scr level.friendly4 turnto $ac9 level.friendly5 turnto $t1380 level.friendly4.avoidplayer = 0 level.friendly5.avoidplayer = 0 level.friendly4 threatbias ignoreme level.friendly5 threatbias ignoreme if (getcvar(alive) == "1") { level.friendly1 nodamage level.friendly2 nodamage level.friendly3 nodamage level.friendly4 nodamage level.friendly5 nodamage } level.friendly1.health = 1000 level.friendly2.health = 1000 level.friendly3.health = 1000 level.friendly4.health = 1000 level.friendly5.health = 1000 level.friendly1 accuracy 0 level.friendly2 accuracy 0 level.friendly3 accuracy 0 level.friendly4 accuracy 1 level.friendly5 accuracy 1 // self waittill trigger while (isalive $enemy1) wait 1 level.friendly1 thread friendlyinit level.friendly2 thread friendlyinit level.friendly3 thread friendlyinit level.friendly1 accuracy 1 level.friendly2 accuracy 1 level.friendly3 accuracy 1 level.friendly1.fnum = 1 level.friendly2.fnum = 2 level.friendly3.fnum = 3 level.friendly4.fnum = 4 level.friendly5.fnum = 5 /* level.friendly1.voicetype = "c" level.friendly2.vonicetype = "g" level.friendly3.voicetype = "a" level.friendly4.voicetype = "f" level.friendly5.voicetype = "h" */ //level.friendly1.hearing = 0 //level.friendly2.hearing = 0 //level.friendly3.hearing = 0 //level.friendly4.hearing = 0 //level.friendly5.hearing = 0 level.friendly1 type_attack "turret" // was turret level.friendly2 type_attack "turret" // was turret level.friendly3 type_attack "turret" // was turret level.friendly4 type_attack "turret" // was turret level.friendly5 type_attack "turret" // was turret // waitthread enemygen level.flagsA = 0 // Start the first scene level.flags1 = 0 // Friendlies move to objective 1 level.flags2 = 0 // Friendlies move to objective 2 level.flags3 = 0 // Friendlies move to objective 3 level.flags4 = 0 // Friendlies move to objective 4 level.flags5 = 0 // Friendlies move to objective 5 level.flags6 = 0 // Friendlies move to objective 6 end endlevel: thread global/bomber.scr::bomb 2015 thread global/bomber.scr::bomb 78 $ending_point playsound m5l1a_plane if (level.flags[obj3] == 0) { waitthread global/objectives.scr::add_objectives 3 3 "Proceed to the south edge of town." $ending_point level.flags[obj3] = 1 } wait 3.1 thread global/exploder.scr::explode 51 wait 0.5 if ($player istouching $killplayer) { $player damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0 end } if (isalive level.friendly1) if (level.friendly1 istouching $killplayer) level.friendly1 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0 if (isalive level.friendly2) if (level.friendly2 istouching $killplayer) level.friendly2 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0 if (isalive level.friendly3) if (level.friendly3 istouching $killplayer) level.friendly3 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0 if (isalive level.friendly4) if (level.friendly4 istouching $killplayer) level.friendly4 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0 if (isalive level.friendly5) if (level.friendly5 istouching $killplayer) level.friendly5 damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0 radiusdamage ( -152 -1104 -8) 700 700 wait 1 println "mission complete" if ((isalive level.friendly1) && (level.friendly1 istouching $friendride)) { // game.friendly1health = level.friendly1.health game.friendly1origin = level.friendly1.origin game.friendly1model = level.friendly1.model game.friendly1angles = level.friendly1.angles game.friendly1headmodel = level.friendly1.headmodel game.friendly1headskin = level.friendly1.headskin println ("KKK model 1 is " + game.friendly1model) } else game.friendly1health = -1 if ((isalive level.friendly2) && (level.friendly2 istouching $friendride)) { game.friendly2origin = level.friendly2.origin game.friendly2model = level.friendly2.model game.friendly2angles = level.friendly2.angles game.friendly2headmodel = level.friendly2.headmodel game.friendly2headskin = level.friendly2.headskin println ("KKK model 2 is " + game.friendly2model) } else game.friendly2health = -1 if ((isalive level.friendly3) && (level.friendly3 istouching $friendride)) { game.friendly3origin = level.friendly3.origin game.friendly3model = level.friendly3.model game.friendly3angles = level.friendly3.angles game.friendly3headmodel = level.friendly3.headmodel game.friendly3headskin = level.friendly3.headskin println ("KKK model 3 is " + game.friendly3model) } else game.friendly3health = -1 if ((isalive level.friendly4) && (level.friendly4 istouching $friendride)) { game.friendly4origin = level.friendly4.origin game.friendly4model = level.friendly4.model game.friendly4angles = level.friendly4.angles game.friendly4headmodel = level.friendly4.headmodel game.friendly4headskin = level.friendly4.headskin println ("KKK model 4 is " + game.friendly4model) } else game.friendly4health = -1 if ((isalive level.friendly5) && (level.friendly5 istouching $friendride)) { game.friendly5origin = level.friendly5.origin game.friendly5model = level.friendly5.model game.friendly5angles = level.friendly5.angles game.friendly5headmodel = level.friendly5.headmodel game.friendly5headskin = level.friendly5.headskin println ("KKK model 5 is " + game.friendly5model) } else game.friendly5health = -1 game.playerorigin = $player.origin game.playerangles = $player.viewangles game.windtime = level.windtime game.shuttertime = level.shuttertime game.raindensity = level.raindensity game.rainvolume = level.rainvolume game.thundertime = level.thundertime exec global/missioncomplete.scr m5l1b 1 end triggerB2prep: self waittill trigger centerprint "Stay back, there's a sniper up there!" end secondwavethread: while ((isalive level.friendly4) && (level.friendly4.thinkstate != "idle")) wait 1 if (level.flags[reunion2] == 1) end if (isalive level.friendly4) { level.friendly4 turnto $player level.friendly4 lookat $player } wait 0.25 while ((isalive level.friendly5) && (level.friendly5.thinkstate != "idle")) wait 1 if (level.flags[reunion2] == 1) end if (isalive level.friendly5) { level.friendly5 turnto $player level.friendly5 lookat $player } while ((isalive level.friendly4) && (level.friendly4.thinkstate != "idle")) wait 1 if (level.flags[reunion2] == 1) end if (isalive level.friendly4) { level.friendly4 say dfr_m5l3_548 level.friendly4 waittill saydone } wait 2 while ((isalive level.friendly5) && (level.friendly5.thinkstate != "idle")) wait 1 if (level.flags[reunion2] == 1) end if (isalive level.friendly5) { level.friendly5 say dfr_m5l3_550 level.friendly5 waittill saydone } if (level.flags[reunion2] == 1) end if ((isalive level.friendly4) && (isalive level.friendly5)) { level.friendly4 lookat level.friendly5 level.friendly5 lookat level.friendly4 wait 2 } if (level.flags[reunion2] == 1) end if (isalive level.friendly4) { level.friendly4 turnto $ac9 level.friendly4 lookat $ac9 } if (level.flags[reunion2] == 1) end if (isalive level.friendly5) { level.friendly5 turnto $t1380 level.friendly5 lookat $t1380 } end secondwave: // level.flags[thunder] = 1 if (level.flags[reunion] == 0) { level.friendly4 exec global/enable_ai.scr level.friendly5 exec global/enable_ai.scr level.friendly4 threatbias 0 level.friendly5 threatbias 0 level.friendly4.health = 120 level.friendly5.health = 120 level.friendly4 hearing 2000 level.friendly4 sight 2000 level.friendly4 maxdist 1500 level.friendly4 mindist 0 level.friendly4 leash 0 level.friendly5 hearing 2000 level.friendly5 sight 2000 level.friendly5 maxdist 1500 level.friendly5 mindist 0 level.friendly5 leash 0 // level.flags[reunion] = 1 } end friendlyinit: self.mins = -40 self.maxs = -10 self leash 0 self mindist 1100 self maxdist 1500 self hearing 2000 self sight 2000 self.friendtype = 0 // self exec global/disable_ai.scr self exec global/friendly.scr::friendlythink self.health = 120 end triggerA1prep: /* level.friendly1 accuracy 100 level.friendly2 accuracy 100 level.friendly3 accuracy 100 level.friendly1.mins = 30 level.friendly1.maxs = 50 level.friendly2.mins = 15 level.friendly2.maxs = 60 level.friendly3.mins = 40 level.friendly3.maxs = 80 */ /* println ("+head " + level.friendly1.headmodel) println ("+head " + level.friendly1.headskin) level.friendly1.mindist = 100 level.friendly1.maxdist = 700 level.friendly2.mindist = 400 level.friendly2.maxdist = 700 level.friendly3.mindist = 100 level.friendly3.maxdist = 300 level.friendly4.mindist = 100 level.friendly4.maxdist = 1700 level.friendly5.mindist = 500 level.friendly5.maxdist = 600 for (local.i=1;local.i { level.friendly[local.i].leash = 5000 level.friendly[local.i].hearing = 5000 level.friendly[local.i].sight = 5000 } level.friendly1 thread global/friendly.scr::friendlythink level.friendly2 thread global/friendly.scr::friendlythink level.friendly3 thread global/friendly.scr::friendlythink */ self waittill trigger println "a1 trigger" level.friendly1 exec global/enable_ai.scr level.friendly2 exec global/enable_ai.scr level.friendly3 exec global/enable_ai.scr $enemy1 exec global/enable_ai.scr thread global/bomber.scr::bomb 500 thread global/bomber.scr::bomb 501 wait 1.5 // $plane2sound playsound "sound/vehicle/plane1.wav" 0 1.5 1024 wait 2 thread global/shutter.scr::shuttrig 1 // $plane1sound playsound "sound/vehicle/plane2.wav" 0 1.5 1024 end /* Voices: voicetype */ triggerA2prep: self waittill trigger level.friendly2.mins = -15 level.friendly2.maxs = 30 level.friendly1.friendtype = 1 level.friendly1.distance = 150 level.friendly1.destination = $player level.friendly3.mins = -25 level.friendly3.maxs = 15 /* level.friendly1.destination = $player level.friendly1.friendtype = 1 level.friendly1.distance = 320 level.friendly2.destination = $player level.friendly2.friendtype = 1 level.friendly2.distance = 320 level.friendly3.destination = $player level.friendly3.friendtype = 1 level.friendly3.distance = 320 level.friendly4.destination = $player level.friendly4.friendtype = 1 level.friendly4.distance = 320 level.friendly5.destination = $player level.friendly5.friendtype = 1 level.friendly5.distance = 320 t: println ">>>>>>>>>>>>>" for (local.i=1;local.i { // if (level.friendly[local.i].destination.targetname == "friendly") // println ("friendly" + level.friendly[local.i].fnum + " goes to " + level.friendly[local.i].destination + "/" + level.friendly[local.i].destination.fnum) // else // println ("friendly" + level.friendly[local.i].fnum + " goes to player") if (level.friendly[local.i].destination.fnum == NIL) println ("friendly" + level.friendly[local.i].fnum + " : Type " + level.friendly[local.i].friendtype + " : Area " + level.friendly[local.i].area + " : AreaPast " + level.friendly[local.i].areapast + " : Destination Node " + level.friendly[local.i].destination.set) else println ("friendly" + level.friendly[local.i].fnum + " : Type " + level.friendly[local.i].friendtype + " : Area " + level.friendly[local.i].area + " : AreaPast " + level.friendly[local.i].areapast + " : Destination Entity " + level.friendly[local.i].destination.fnum) } println " wait 4 goto t */ end scene1: //while (level.flagsA == 0) // wait 0.5 //level.enemy1_1 ai_on wait 2 while (1==1) { if ($player istouching $door1) { local.distance = 500 local.arrived = 0 if (!(isalive level.friendly1) || (vector_length (level.friendly1.origin - $door1explode.origin) local.distance)) local.arrived++ if (!(isalive level.friendly2) || (vector_length (level.friendly2.origin - $door1explode.origin) local.distance)) local.arrived++ if (!(isalive level.friendly3) || (vector_length (level.friendly3.origin - $door1explode.origin) local.distance)) local.arrived++ if (!(isalive level.friendly4) || (vector_length (level.friendly4.origin - $door1explode.origin) local.distance)) local.arrived++ if (!(isalive level.friendly5) || (vector_length (level.friendly5.origin - $door1explode.origin) local.distance)) local.arrived++ println local.arrived if (local.arrived > 4) { thread global/exploder.scr::explode 100 } } wait 0.5 } end enemy1_1prep: level.enemy1_1 = self self ai_off end showorgg: println self.origin wait 0.5 thread showorgg end dialogue1: if (isalive $enemy1) level.friendly1 say "streamed_dfr_scripted_M5L3_01c" // "We're pinned down here! Help us out!" level.friendly1 lookat $player level.friendly2 lookat $player level.friendly3 lookat $player thread initialchat level.friendly1 thread initialchat level.friendly2 thread initialchat level.friendly3 end friendtypething: while (isalive self) { level waittill postthink println wtf print3d (self.origin + (0 0 90)) 2 (self.friendtype + " / " + self.destination) waitframe } end initialchat local.friend: if !(isalive local.friend) end // local.friend thread friendtypething while (((isalive $enemy1) || (local.friend.thinkstate != "idle")) && (isalive local.friend)) wait 1 if !(isalive local.friend) end local.friend.distance = 200 local.friend.friendtype = 1 wait 1 while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin - $player.origin) > 500)) wait 1 wait 2 while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin - $player.origin) > 500)) wait 1 if !(isalive local.friend) end local.friend lookat $player local.friend turnto $player if (level.flags[initialchat] == 0) { level.flags[initialchat]++ println ("chat is " + level.flags[initialchat]) local.friend say "dfr_M5L3_536c" // "Thanks. We got cut off from the rest of our squad. They're up ahead somewhere." local.friend waittill saydone level.flags[initialchat]++ wait 1 local.friend turnto NULL while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin - $player.origin) > 500)) wait 1 if !(isalive local.friend) end local.friend turnto $player local.friend say "dfr_M5L3_537c2" // "About an hour ago a regiment of Germans pushed us back through half the town. Heavy rifle action and some armor. Our squad was blown to wind, we don't know where anyone is now." local.friend waittill saydone wait 1 if (isalive local.friend) local.friend turnto NULL else end local.friend.friendtype = 0 for (local.i=1;local.i { if (level.friendlyused[local.i] == 0) { local.friend.destination = level.friendlynode[local.i] level.friendlyused[local.i] = 1 local.i = level.friendlynodes + 5 } } end } else { if !(isalive local.friend) end local.friend.friendtype = 0 local.friend turnto NULL for (local.i=1;local.i { if (level.friendlyused[local.i] == 0) { local.friend.destination = level.friendlynode[local.i] level.friendlyused[local.i] = 1 local.i = level.friendlynodes + 5 } } } end while (level.flags[initialchat] wait 1 while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin - $player.origin) > 500)) wait 1 wait 1 while ((isalive local.friend ) && (local.friend.thinkstate != "idle") && (vector_length (local.friend.origin - $player.origin) > 500)) wait 1 if !(isalive local.friend) end if (level.flags[initialchat] == 2) { level.flags[initialchat]++ local.friend say "dfr_M5L3_537c" // "About an hour ago a regiment of Germans pushed us back through half the town. Heavy rifle action and some armor. Our squad was blown to wind, we don't know where anyone is now." local.friend waittill saydone wait 1 } else { if !(isalive local.friend) end local.friend.friendtype = 0 local.friend turnto NULL for (local.i=1;local.i { if (level.friendlyused[local.i] == 0) { local.friend.destination = level.friendlynode[local.i] level.friendlyused[local.i] = 1 local.i = level.friendlynodes + 5 } } } while ((isalive local.friend) && (local.friend.thinkstate == "attack")) wait 1 if !(isalive local.friend) end local.friend say "dfr_M5L3_537c2" // "About an hour ago a regiment of Germans pushed us back through half the town. Heavy rifle action and some armor. Our squad was blown to wind, we don't know where anyone is now." local.friend waittill saydone if !(isalive local.friend) end local.friend.friendtype = 0 local.friend turnto NULL for (local.i=1;local.i { if (level.friendlyused[local.i] == 0) { local.friend.destination = level.friendlynode[local.i] level.friendlyused[local.i] = 1 local.i = level.friendlynodes + 5 } } end get_to_friends local.ent: if !(isalive local.ent) end local.ent.friendtype = -1 local.ent tether local.ent.target local.ent leash 0 local.ent runto local.ent.target local.ent waittill movedone while ((local.ent.thinkstate != "idle") && (isalive local.ent)) wait 1 if (isalive local.ent) { local.ent.ready = 1 local.ent exec global/disable_ai.scr } end go_time local.ent: if !(isalive local.ent) end local.ent.friendtype = 0 local.ent tether $player local.ent leash 512 local.ent exec global/enable_ai.scr end thunder: if (parm.other.targetname != "friendly") end self delete // while !(level.friendly4 cansee level.friendly1) // wait 0.5 local.friendly = parm.other if (isalive level.friendly4) { level.friendly4 lookat level.friendly1 level.friendly4 say "dfr_scripted_M5L3_07f" // "THUNDER!" } wait 0.2 if ((isalive level.friendly4) && (local.friendly)) { local.friendly lookat level.friendly4 level.friendly4 waittill saydone } wait 1.4 if (isalive local.friendly) { local.friendly say dfr_scripted_M5L3_08c // "FLASH!" local.friendly waittill saydone } thread get_to_friends level.friendly1 thread get_to_friends level.friendly2 thread get_to_friends level.friendly3 while (((isalive level.friendly1) && (level.friendly1.ready == NIL)) || ((isalive level.friendly2) && (level.friendly2.ready == NIL)) || ((isalive level.friendly3) && (level.friendly3.ready == NIL))) wait 1 level.flags[reunion2] = 1 if (isalive level.friendly4) level.friendly4 thread friendlyinit if (isalive level.friendly5) level.friendly5 thread friendlyinit thread go_time level.friendly1 thread go_time level.friendly2 thread go_time level.friendly3 if (isalive level.friendly1) { if (isalive level.friendly4) { level.friendly4 lookat level.friendly1 wait 0.25 level.friendly4 say dfr_scripted_M5L3_09f // "Hey Hill, look it's Parish." maps "m dm" level.friendly4 waittill saydone if (isalive level.friendly1) { level.friendly1 say dfr_scripted_M5L3_10c // "I figured you guys were dead" level.friendly1 waittill saydone } wait 2 if (isalive level.friendly5) { level.friendly5 say dfr_scripted_M5L3_11h // "Not yet" level.friendly5 waittill saydone } } } end // while ( if (isalive level.friendly4) { wait 0.25 level.friendly4 lookat local.friendly wait 0.25 level.friendly4 say dfr_scripted_M5L3_09f // "Hey Hill, look it's Parish." maps "m dm" } if (level.flags[reunion] == 0) { level.friendly4 thread friendlyinit level.friendly5 thread friendlyinit } level.flags[reunion] = 2 while ((level.friendly1.thinkstate != "idle") || (level.friendly2.thinkstate != "idle") || (level.friendly3.thinkstate != "idle") || (level.friendly4.thinkstate != "idle") || (level.friendly5.thinkstate != "idle")) wait 0.5 println "diag 05" while (thread idlelifecheck != 0) wait 1 wait 5 println "diag 06" while (thread idlelifecheck != 0) wait 0.5 println "diag 07" level.friendly1 lookat level.friendly5 level.friendly4 lookat level.friendly3 level.friendly2 lookat level.friendly4 level.friendly1 say dfr_scripted_M5L3_10c // "I figured you guys were dead" level.friendly1 waittill saydone while (thread idlelifecheck != 0) wait 0.5 println "diag 08" wait 0.25 level.friendly5 say dfr_scripted_M5L3_11h // "Not yet" level.friendly5 waittill saydone while (thread idlelifecheck != 0) wait 0.5 println "diag 09" wait 0.25 /* level.friendly5 say dfr_scripted_M5L3_11h // "Not yet" level.friendly5 waittill saydone while (thread idlelifecheck != 0) wait 0.5 wait 0.25 */ println "diag 10" level.friendly1 lookat $player level.friendly1 say dfr_scripted_M5L3_12c // "This is loot powell" level.friendly1 waittill saydone while (thread idlelifecheck != 0) wait 0.5 println "diag 11" wait 0.25 level.friendly4 lookat $player level.friendly4 say dfr_scripted_M5L3_13f // "Loot" level.friendly4 waittill saydone // "I figured you guys were dead." // dfr_scripted_M5L3_09f end locked_gate: if (self.timer == NIL) { self.timer = level.time - 5 self.count = 0 } if (level.time > self.timer) { self.timer = level.time + 2 local.self playsound door_metal_locked if (level.flags[gotbazooka] == 0) { // self.count++ if (self.count == 0) iprintlnbold "Locate the missing Bazooka team" else if (self.count == 1) iprintlnbold "Locate the missing Bazooka team" else if (self.count == 2) iprintlnbold "Locate the missing Bazooka team" else if (self.count == 3) iprintlnbold "Scour the area for the missing Bazooka team" else if (self.count == 4) iprintlnbold "The Bazooka team is missing, they must be found" else if (self.count == 5) iprintlnbold "Find the Bazooka team, spare no expense!" else if (self.count == 6) iprintlnbold "You must find them, before it's too late!" else if (self.count == 7) iprintlnbold "You know, Bazooka team. Probably carrying a long, tubular looking thing." else if (self.count == 8) iprintlnbold "Why are you banging away at this gate when you have yet to FIND THE BAZOOKA TEAM?!" else if (self.count == 9) iprintlnbold "STOP POKING ME" } else if (level.flags[door] == 0) iprintlnbold "Find a way through the gate" } end enemygenerator: if (level.totalbaddies == NIL) level.totalbaddies = 0 local.maxspawn = level.totalbaddies + 4 while (1) { while !($player istouching $enemygenerator) wait 1 if (level.totalbaddies exec global/ai.scr::spawn (50 + randomint(3)) wait (randomint (4) + 3) } end idlelifecheck: if !(isalive level.friendly1) end -2 if !(isalive level.friendly2) end -2 if !(isalive level.friendly3) end -2 if !(isalive level.friendly4) end -2 if !(isalive level.friendly5) end -2 if (level.friendly1.thinkstate != "idle") end -1 if (level.friendly2.thinkstate != "idle") end -1 if (level.friendly3.thinkstate != "idle") end -1 if (level.friendly4.thinkstate != "idle") end -1 if (level.friendly5.thinkstate != "idle") end -1 end 0 sneak: self playsound wood_creak end if (self.triggered == NIL) { self.triggered = 1 self playsound wood_creak $sneak walkto $sneakdestination wait 5 self damage $world 1500 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0 } end setupcrew: if ($m5_crew == NULL) level.m5_crews = 0 else level.m5_crews = $m5_crew.size if (level.m5_crews > 0) { level.m5_crew = exec global/makearray.scr $m5_crew for (local.i=1;local.i { if (level.m5_crew[local.i].set == NIL) { println ("Warning, m5_crew at " + level.m5_crew[local.i].origin + " has no #set, setting to 1") level.m5_crew[local.i].set = 1 } else println ("Spawned an m5_crew with set " + level.m5_crew[local.i].set) level.m5_crew[local.i] thread m5crew } } if ($m5_ammo == NULL) level.m5_ammos = 0 else level.m5_ammos = $m5_ammo.size if (level.m5_ammos > 0) { level.m5_ammo = exec global/makearray.scr $m5_ammo for (local.i=1;local.i { if (level.m5_ammo[local.i].set == NIL) { println ("Warning, m5_ammo at " + level.m5_ammo[local.i].origin + " has no #set, setting to 1") level.m5_ammo[local.i].set = 1 } level.m5_ammo[local.i] thread m5ammo local.i } } level.totalcrews = 0 level.searchedcrews = 0 if ($m5_trigger == NULL) level.m5_triggers = 0 else level.m5_triggers = $m5_trigger.size if (level.m5_triggers > 0) { level.m5_trigger = exec global/makearray.scr $m5_trigger for (local.i=1;local.i { level.totalcrews++ if (level.m5_trigger[local.i].set == NIL) { println ("Warning, m5_trigger at " + level.m5_trigger[local.i].origin + " has no #set, setting to 1") level.m5_trigger[local.i].set = 1 } level.crewused [level.m5_trigger[local.i].set] = 0 level.m5_trigger[local.i] thread m5trigger } } end m5trigger: self waittill trigger level.searchedcrews++ if (level.searchedcrews == level.totalcrews) { for (local.i=1;local.i { if (level.crewused[level.m5_trigger[local.i].set] == 0) { local.set = level.m5_trigger[local.i].set level.flags[bazooka] = 1 for (local.p=1;local.p { if (level.m5_ammo[local.p].set == local.set) { local.ent = spawn level.m5_ammo[local.p].mdl local.ent.origin = level.m5_ammo[local.p].origin local.ent.angles = level.m5_ammo[local.p].angles if (level.m5_ammo[local.p].target) { // if (level.m5_trigger[local.i] == level.m5_ammo[local.p].target) // { set_objective_pos local.ent level.m5_ammo[local.p].target.parent = local.ent println level.m5_ammo[local.p].target.origin println local.ent.origin println "spawned target thing" // } // else // println "wasnt the same target" } else println "had no target" // level.m5_ammo[local.p] show // level.m5_ammo[local.p] solid } } for (local.p=1;local.p if (level.m5_crew[local.p]) if (level.m5_crew[local.p].set == local.set) level.m5_crew[local.p] show // local.i = level.m5_triggers + 5 } } for (local.p=1;local.p if (level.m5_ammo[local.p].set != local.set) { if (level.m5_ammo[local.p].target) level.m5_ammo[local.p].target delete level.m5_ammo[local.p] delete } } else { level.crewused[self.set] = 1 } end m5crew: /* self.no_idle = 1 self exec global/disable_ai.scr if (randomint(100) > 50) self anim dead_pose2 // death_crotch else self anim dead_pose1 // death_prone self threatbias ignoreme */ self notsolid self hide end m5ammo local.i: /* self hide self notsolid // if (self.target) // self.target notsolid end */ local.ent = spawn script_origin local.ent.mdl = self.model local.ent.origin = self.origin local.ent.angles = self.angles local.ent.set = self.set if (self.target) { local.ent.target = self.target self.target.parent = local.ent self.target.parent = self } println ("ammo of type " + local.ent.mdl + " at " + local.ent.origin + " and angles " + local.ent.angles + " with set " + local.ent.set) // if (self.target) // local.ent.target = self.target level.m5_ammo[local.i] = local.ent level.m5_ammo[local.i].target = self.target self delete end bazookathread: // println "bazookathread!!" if (level.flags[bazooka] != 1) end if (self.parent) { println "didnt get bazooka" end } else println "there was no self parent" self delete // exec global/autosave.scr 1 level.flags[gotbazooka] = 1 waitthread global/objectives.scr::add_objectives 1 3 "Locate the bazooka team." $ending_point waitthread global/objectives.scr::add_objectives 2 2 "Get past the gate into the rest of the town." $leftgate waitthread global/objectives.scr::add_objectives 3 2 "Proceed to the south edge of town." $ending_point waitthread global/objectives.scr::current_objectives 2 wait 60 println "z 01" if (level.flags[door] == 1) end println "z 02" while (level.flags[door] == 0) { for (local.i=1;local.i { if !(isalive level.ending_spawned[local.i]) { println "z 03" level.ending_spawned[local.i] = waitthread global/spawner.scr::spawner_activate level.ending_spawn[local.i] level.ending_spawned[local.i] thread ending_spawn_think } } wait 1 } end escape local.ent local.num: if (isalive local.ent) { local.ent.friendtype = -1 local.ent exec global/enable_ai.scr local.ent threatbias -100 while (isalive local.ent) { local.ent runto $("friendly" + local.num + "destination") local.ent waittill movedone waitframe } } end ending_spawn_think: self exec global/disable_ai.scr while ((level.flags[door] == 0) && (isalive self)) { println "z 04" self runto self.target self waittill movedone if (vector_length (self.origin - self.target.origin) { if (level.flags[door] == 0) { $leftgate time 1 $rightgate time 1.2 $leftgate thread rotatedown 85 $rightgate thread rotateup 85 level.flags[door] = 1 thread escape level.friendly1 1 thread escape level.friendly2 2 thread escape level.friendly3 3 thread escape level.friendly4 4 thread escape level.friendly5 5 } } waitframe } if (isalive self) self exec global/enable_ai.scr while (isalive self) { self runto $player self waittill movedone waitframe } end bazookahit: self.health = 1000 local.health = self.health while (level.flags[door] == 0) { self waittill damage if ((local.health - self.health) == 110) { self delete if (level.flags[door] == 0) { $leftgate time 1 $rightgate time 1.2 $leftgate thread rotateup 85 $rightgate thread rotatedown 85 level.flags[door] = 1 thread escape level.friendly1 1 thread escape level.friendly2 2 thread escape level.friendly3 3 thread escape level.friendly4 4 thread escape level.friendly5 5 } } self.health = 1000 local.health = self.health } println ("parm other is " + parm.other) end throughgate: /* local.ent = spawn script_origin if ($ending_point == NULL) local.ent.origin = ( -352 -1056 136) else { local.ent.origin = $ending_point.origin println "ENDING POINT" } */ // waitthread global/objectives.scr::add_objectives 1 3 "Locate the bazooka team." $ending_point waitthread global/objectives.scr::add_objectives 2 3 "Get past the gate into the rest of the town." $leftgate waitthread global/objectives.scr::add_objectives 3 2 "Proceed to the south edge of town." $ending_point waitthread global/objectives.scr::current_objectives 3 wait 1 while (vector_length ($player.origin - $ending_point.origin) > 50) wait 0.5 if (level.flags[obj3] == 0) { waitthread global/objectives.scr::add_objectives 3 3 "Proceed to the south edge of town." $ending_point level.flags[obj3] = 1 } // local.ent delete end burn: if (parm.other == $player) parm.other damage $world 1 $world (0 0 0) (0 0 0) (0 0 0) 0 9 0 0 end bombers10-11: thread global/bomber.scr::bomb 510 wait 0.5 thread global/bomber.scr::bomb 511 end bombers14-15: thread global/bomber.scr::bomb 515 wait 0.5 thread global/bomber.scr::bomb 514 end rotatedown local.amount: self rotateydown local.amount self waitmove self connect_paths end rotateup local.amount: self rotateyup local.amount self waitmove self connect_paths end // #set 500 planes fly by /* Set 50 enemy generator */ 谢谢!
  8. moh8888 发表 1 个主题 于 硝烟里的年华
    今晚准备测试4张图,那是单人图m1l2a m4l0 m5l1b m6l2b程序已在班上抽空搞定, 只有那出生点的坐标要在家确定,但愿成功!
  9. moh8888 回复 moh8888 的 主题 于 硝烟里的年华
    早上一看,俺竟重发了一张贴子,哈,看来作晚是搞糊涂了....
  10. moh8888 回复 moh8888 的 主题 于 硝烟里的年华
    一晚上搞一个图,有点累,值得! 只是这个图有透明区要加东东,以后在说......
  11. moh8888 回复 moh8888 的 主题 于 硝烟里的年华
    一晚上搞一个图,有点累,值得! 只是这个图有透明区要加东东,以后在说......
  12. moh8888 发表 1 个主题 于 硝烟里的年华
    TEST,可以的,只是俺那出生点的位置可能搞错了...哈
  13. moh8888 发表 1 个主题 于 硝烟里的年华
    m313只有将M313.BSP文件放在DM/下才可以进入.... 那声音正常只有将M313.BSP(几乎所有的单人BSP)文件放在DM/下才正常...(服务器也要这样做才行) 这个DSP文件,也就是单人GAME中的地图文件,在MOHAA安装版的/MAIN下的 PAK5压缩文件内,比如就有M313.BSP放在MAIN/MAPS/DM/下(服务器也要这样做才行,是不是很麻繁?) 看来不是那么简单 目前,俺的水平有限,只能这样了....
  14. moh8888 回复 moh8888 的 主题 于 硝烟里的年华
    俺是走了,那些士兵傻瓜似的看着你不动,俺打几枪就完蛋了, 不好测定! 俺只会这个方法 local.deathmatch = spawn info_player_deathmatch origin "-2157 -2768 540" angle 123
  15. moh8888 发表 1 个主题 于 硝烟里的年华
    那单人MAP中的原固定人物(如德军射击手)的坐标如何测定, 想给去掉..... thANK!
  16. M111单人图第一关, 俺搞了一个和盟军乘坐的帐篷卡车和原作一样带盟军进入关卡, 俺看到是一辆破卡车,哈.....但在M211,和DM/MAP中却是帐篷卡车 vehicle_gmctruck.tik

Account

Navigation

搜索

搜索

设置浏览器推送通知

Chrome(安卓)
  1. 点击地址栏旁边的锁形图标。
  2. 点击 权限 → 通知
  3. 根据需要调整通知设置。
Chrome(桌面)
  1. 点击地址栏中的锁形图标。
  2. 选择 网站设置
  3. 找到 通知,然后根据需要调整设置。