Вход

Просмотр полной версии : Такое возможно?


KOPCAP
24.02.2009, 14:17
Здравствуйте, у меня такая трудности с заменой я не могу придумать скрипт который заменял бы {
"classname" "worldspawn"
"classname" "worldspawn"
"MaxRange" "4096"
"mapversion" "220"
"mapversion" "220"
"wad" "halflife.wad"
{
( 0 128 128 ) ( 128 128 128 ) ( 128 0 128 ) SKY [ 1 0 0 -64 ] [ 0 -1 0 64 ] 0 1 1
( 0 0 0 ) ( 128 0 0 ) ( 128 128 0 ) SKY [ 1 0 0 -64 ] [ 0 -1 0 64 ] 0 1 1
( 0 128 128 ) ( 0 0 128 ) ( 0 0 0 ) C1A3WALL01 [ 0 1 0 -64 ] [ 0 0 -1 0 ] 0 1 1
( 128 128 0 ) ( 128 0 0 ) ( 128 0 128 ) C1A3WALL01 [ 0 1 0 -64 ] [ 0 0 -1 0 ] 0 1 1
( 128 128 128 ) ( 0 128 128 ) ( 0 128 0 ) C1A3WALL01 [ 1 0 0 -64 ] [ 0 0 -1 0 ] 0 1 1
( 128 0 0 ) ( 0 0 0 ) ( 0 0 128 ) C1A3WALL01 [ 1 0 0 -64 ] [ 0 0 -1 0 ] 0 1 1
}
}
наk = "{\n( "+x+0+" "+y+128" 128 ) ( "+x+128+" "+y+128+" 128 ) ( "+x+128+" "+y+0+" 128 ) SKY [ 1 0 0 -64 ] [ 0 -1 0 64 ] 0 1 1 \n( "+x+0+" "+y+0+" 0 ) ( "+x+128+" "+y+0+" 0 ) ( "+x+128+" "+y+128+" 0 ) SKY [ 1 0 0 -64 ] [ 0 -1 0 64 ] 0 1 1 \n( "+x+0+" "+y+128+" 128 ) ( "+x+0+" "+y+0+" 128 ) ( "+x+0+" "+y+0+" 0 ) C1A3WALL01 [ 0 1 0 -64 ] [ 0 0 -1 0 ] 0 1 1 \n( "+x+128+" "+y+128+" 0 ) ( "+x+128+" " +y+0+ " 0 ) ( "+x+128+" "+y+0+" 128 ) C1A3WALL01 [ 0 1 0 -64 ] [ 0 0 -1 0 ] 0 1 1 \n( "+x+128+" "+y+128+" 128 ) ( "+x+0+" "+y+128+" 128 ) ( "+x+0+" "+y+128+" 0 ) C1A3WALL01 [ 1 0 0 -64 ] [ 0 0 -1 0 ] 0 1 1 \n( "+x+128+" "+y+0+" 0 ) ( "+x+0+" "+y+0+" 0 ) ( "+x+0+" "+y+0+" 128 ) C1A3WALL01 [ 1 0 0 -64 ] [ 0 0 -1 0 ] 0 1 1 \n}"; т.е. в исходном коде выбирал только объект и заменял Х У координаты.

Gvozd
24.02.2009, 16:08
мне достаточно неочевидно, как из первого получается второй у вас.
в любом случае полагаю вашу задачу можно отлично решить при помощи регулярных ьвыражений (http://javascript.ru/tutorial/basic/regular-expression)

Андрей Параничев
24.02.2009, 16:42
KOPCAP,
Редактор карт Gold Source на JavaScript пишете?

KOPCAP
24.02.2009, 19:18
KOPCAP,
Редактор карт Gold Source на JavaScript пишете?
не для source для обычного))) только я уже написал а теперь хочу упростить добавление объектов созданием еще одной програмки:)
P.S.
Gvozd спасибо за ссылку буду разбираться.

Андрей Параничев
24.02.2009, 19:22
KOPCAP,
Обычный и называется "Gold Source", но зачем писать редактор на JavaScript, это что-то новенькое.

А что вам именно нужно сделать, я так и не понял.

KOPCAP
24.02.2009, 19:35
KOPCAP,
Обычный и называется "Gold Source", но зачем писать редактор на JavaScript, это что-то новенькое.

А что вам именно нужно сделать, я так и не понял.

Программу пишу для создания уровней под игру на телефоне))) просто так будет легче. а именно мне нужно чтобы программа обрабатывала текст таким образом:
1. удаляла начальные строки, не нужные далее:
{
"classname" "worldspawn"
"classname" "worldspawn"
"MaxRange" "4096"
"mapversion" "220"
"mapversion" "220"
"wad" "halflife.wad"
{
2. Заменяла ( 128 128 128 ) на ( "+(x*1+128*1)+" "+(y*1+128*1)+" 128 )
//Как оказалось надо скобки т.е. первые два числа.
при чем остаток SKY [ 1 0 0 16 ] [ 0 -1 0 -16 ] 0 1 1 не трогала.

KOPCAP
24.02.2009, 20:44
Gvozd спасибо почитал статью и вот что получилось:var fso, tf;
fso = new ActiveXObject("Scripting.FileSystemObject");
file=fso.openTextFile("index.map", 1, true);
file.readLine();
file.readLine();
file.readLine();
file.readLine();
file.readLine();
file.readLine();
file.readLine();
function drowbrush(){
var newbrush = "";
var repls = "";
newbrush=newbrush+file.readLine()+"\n";
repls = file.ReadLine();
repls = repls.replace(/\s/, "kp\"+(x*1+");
repls = repls.replace(/\s/, "*1)+\"kp\"+(y*1+");
repls = repls.replace(/\s/, "*1)+\"kp");
repls = repls.replace(/\s/, "kp");
repls = repls.replace(/\s/, "kp");
repls = repls.replace(/\s/, "kp\"+(x*1+");
repls = repls.replace(/\s/, "*1)+\"kp\"+(y*1+");
repls = repls.replace(/\s/, "*1)+\"kp");
repls = repls.replace(/\s/, "kp");
repls = repls.replace(/\s/, "kp");
repls = repls.replace(/\s/, "kp\"+(x*1+");
repls = repls.replace(/\s/, "*1)+\"kp\"+(y*1+");
repls = repls.replace(/\s/, "*1)+\"kp");
repls = repls.replace(/\s/, "kp");
repls = repls.replace(/\s/, "kp");
repls = repls.replace(/kp/g, " ");
alert(repls);
}
drowbrush(); в файле index.map хранится {
"classname" "worldspawn"
"classname" "worldspawn"
"MaxRange" "4096"
"mapversion" "220"
"mapversion" "220"
"wad" "\program files\valve\valve\halflife.wad;\program files\valve\valve\decals.wad"
{
( 0 128 128 ) ( 128 128 128 ) ( 128 0 128 ) SKY [ 1 0 0 -64 ] [ 0 -1 0 64 ] 0 1 1
( 0 0 0 ) ( 128 0 0 ) ( 128 128 0 ) SKY [ 1 0 0 -64 ] [ 0 -1 0 64 ] 0 1 1
( 0 128 128 ) ( 0 0 128 ) ( 0 0 0 ) C1A3WALL01 [ 0 1 0 -64 ] [ 0 0 -1 0 ] 0 1 1
( 128 128 0 ) ( 128 0 0 ) ( 128 0 128 ) C1A3WALL01 [ 0 1 0 -64 ] [ 0 0 -1 0 ] 0 1 1
( 128 128 128 ) ( 0 128 128 ) ( 0 128 0 ) C1A3WALL01 [ 1 0 0 -64 ] [ 0 0 -1 0 ] 0 1 1
( 128 0 0 ) ( 0 0 0 ) ( 0 0 128 ) C1A3WALL01 [ 1 0 0 -64 ] [ 0 0 -1 0 ] 0 1 1
}
}
вот начало но по крайней мере получаю то что нужно чуть доработаю и все Спасибо, тему можно закрывать.