Здравствуйте уважаемые товарищи программисты! Не знаю на тот форум ли я обратился, но думаю здесь знающие люди смогут помочь. А дело вот в чем. Начну издалека чтобы было понятнее. Достаточно давно я начал играть в франчизу Call of Duty. Думаю многие знают что это такое. Потом я узнал о создание модов и карт для этой игры. (В данный момент это КоД4). Разбирался со скриптами в модах и т.д. Скрипты все написаны на С++, потому что движок игры от Quake 3. Так вот. Недавно в сети нашел скрипт для создания очень нужной вещицы, (пока не буду уточнять что это, ибо не так важно) но вот тут была заминка... Все скрипты которые я видел раньше были написано "аккуратно", как например тут: Код | main() { thread secret_wall(); }
secret_wall() { wall = getent("do","targetname"); trig = getent("do1","targetname");
while(true) { trig waittill("trigger", player); if (player.score > 20) { player iprintln("^1Access ^0Granted"); wall movey (256,2,0.5,0.5); wall waittill ("movedone"); wait 3; wall movey (-256,2,0.5,0.5); wall waittill ("movedone"); } else { player iprintln("^1HaHa^0!"); } } }
|
А в этом скрипте все было, как бы перемешано и написано как обычный текст в книге или журнале. Вот, собственно и этот скрипт Код: Код | main() level.rh_fighter_missiles = rat_house\rat_house::createdvar("rat_house_fighter_missiles",3,1,20,"int");if(level.rh_fighter_missile_min_dmg >= level.rh_fighter_missile_max_dmg)level.rh_fighter_missile_min_dmg = level.rh_fighter_missile_max_dmg - 1;precacheModel("projectile_at4");level.fx_fighter_mg_muzz = loadFx("rat_house/fighter/fighter_flash");level.fx_fighter_missile_muzz = loadFx("rat_house/fighter/fighter_flash_rl");level.fx_fighter_missile_trail = loadFx("rat_house/fighter/fighter_missile_trail");level.fx_fighter_trail = loadFx("rat_house/fighter/fighter_engine_trail");level.fx_fighter_death_trail = loadFx("rat_house/fighter/fighter_death_trail");level.fx_fighter_exp = loadFx("explosions/vehicle_explosion_bmp");if(level.rh_fighter_boost_blur)precacheShellshock("rh_fighter_boost");dustfighters = getentarray("fighter","targetname"); for(i=0;i<dustfighters.size;i++)dustfighters[i] thread init();}init(){self.targetname = undefined;self.link = [];stuff = getentarray(self.target, "targetname");for(i=0;i<stuff.size;i++){if(!isDefined(stuff[i].script_noteworthy))continue;else if(stuff[i].script_noteworthy == "trig")self.trigger = stuff[i];else if(stuff[i].script_noteworthy == "link")self.link[self.link.size] = stuff[i];else if(stuff[i].script_noteworthy == "fx")self.tag_fx = stuff[i];else if(stuff[i].script_noteworthy == "tag_player")self.tag_player = stuff[i];else if(stuff[i].script_noteworthy == "tag_passenger")self.tag_passenger = stuff[i];}self.target = undefined;if(!level.rh_allow_fighter){self.tag_fx delete();self.tag_player delete();self.tag_passenger delete();self.trigger thread disallowfighter();return;}oldangles = self.angles;self.angles = (0,0,0); for(i=0;i<self.link.size;i++)self.link[i] linkto(self);self.tag_fx notsolid();self.tag_fx setcontents(0);self.tag_fx linkto(self);self.angles = oldangles;temp = self.tag_passenger.origin;self.tag_passenger delete();self.tag_passenger = temp;temp = self.tag_player.origin;self.tag_player delete();self.tag_player = temp;self.maxup = -50;self.maxdown = 50;self.restorigin = self.origin;self.restangles = self.angles;self.atrest = true;self.speed = level.rh_fighter_speed;self.crashed = false;self.wallnormal = (0,0,1);self.getoff = false;self.destroyed = false;self.attacker = undefined;self.owner = undefined;self.passenger = undefined;while(1){self.trigger waittill("trigger", player);if(isDefined(self.owner))continue;if(player.sessionstate != "playing")continue;if(isDefined(player.infighter))continue;if(isDefined(player.insam))continue; if(isDefined(player.inturret))continue;if(isDefined(player.islaunching))continue;if(isDefined(player.ispara))continue;if(player getStance() == "prone")continue;player.infighter = true;self.owner = player;self thread init_fighter();self thread waitforpassenger();self waittill("fighter_done");self.trigger rat_house\rat_house::entityOn();}}waitforpassenger(){self endon("fighter_dead");self endon("fighter_started");while(1){self.trigger waittill("trigger",player);if(player.sessionstate != "playing")continue;if(isDefined(player.infighter))continue;if(isDefined(player.insam))continue;if(isDefined(player.inturret))continue;if(isDefined(player.islaunching))continue;if(isDefined(player.ispara))continue;
|
Прошу помощи в "разлиновке" этого скрипта. P.S. Это только 1/6 всего скрипта. Если кто-то может помочь отпишитесь пожалуйста.
|