Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скриптинг в игре, Помогите со скриптингом 
:(
    Опции темы
Hidan
Дата 31.8.2010, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 31.8.2010

Репутация: нет
Всего: нет




Здравствуйте уважаемые товарищи программисты!
Не знаю на тот форум ли я обратился, но думаю здесь знающие люди смогут помочь. А дело вот в чем.
Начну издалека чтобы было понятнее.
Достаточно давно я начал играть в франчизу 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 всего скрипта. Если кто-то может помочь отпишитесь пожалуйста. 
PM MAIL ICQ Skype   Вверх
ИванМ
Дата 31.8.2010, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: 1
Всего: 23



Цитата(Hidan @  31.8.2010,  15:23 Найти цитируемый пост)
Скрипты все написаны на С++

Ничего подобного. Все скрипты написаны на си-подобном самописном языке. Если нужно разобраться в его синтаксисе, обратитесь к разработчику данной ботвы.
PM MAIL   Вверх
djamshud
Дата 31.8.2010, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: 8
Всего: 39



Из-за раскорячившегося текста я так и не понял, чем нужно помочь. Если привести второй код в удобочитаемый вид, то попробуйте программу astyle.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
REZiaMIX
Дата 31.8.2010, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 3.11.2007

Репутация: нет
Всего: 4



Цитата(djamshud @ 31.8.2010,  16:19)
Из-за раскорячившегося текста я так и не понял, чем нужно помочь. Если привести второй код в удобочитаемый вид, то попробуйте программу astyle.

+1
astyle должен помочь


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0652 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.