我得到了这个由.MAMA2(游戏)的3D编辑器生成的.SQF文件。 这个编辑器在很多方面都有问题,但它是添加自定义地图内容的唯一“简单”方式。一个很好的例子是这个问题:
编辑器将某些行写入所谓的.SQF文件。每个对象由几行组成。问题是,行的顺序并不总是以正确的顺序写入。它导致对象生成错误。拥有超过1000个对象,超过10000多行时,以正确的顺序制作每个对象的行将成为一项艰巨的任务。
以下是文件中几个对象的示例:
_vehicle_372 = objNull;
if (true) then
{
_this = createVehicle ["MAP_asf2_1_1000", [13661.608, 2976.1057, 4.9591064e-005], [], 0, "CAN_COLLIDE"];
_vehicle_372 = _this;
_this setDir 40.844734;
_this setPos [13661.608, 2976.1057, 4.9591064e-005];
};
_vehicle_378 = objNull;
if (true) then
{
_this = createVehicle ["MAP_dum_mesto2", [13689.696, 2863.1313, 0.17608854], [], 0, "CAN_COLLIDE"];
_vehicle_378 = _this;
_this setDir -30.116863;
_this setVectorUp [0, 0, 1];
_this setPos [13689.696, 2863.1313, 0.17608854];
};
_vehicle_380 = objNull;
if (true) then
{
_this = createVehicle ["MAP_dum_mesto_in", [13686.867, 2907.3464, -0.009554117], [], 0, "CAN_COLLIDE"];
_vehicle_380 = _this;
_this setDir -63.79903;
_this setPos [13686.867, 2907.3464, -0.009554117];
};
_vehicle_384 = objNull;
if (true) then
{
_this = createVehicle ["MAP_HouseBlock_B1", [13722.756, 2839.5999, 0.29589382], [], 0, "CAN_COLLIDE"];
_vehicle_384 = _this;
_this setDir -216.63187;
_this setVectorUp [0, 0, 1];
_this setPos [13722.756, 2839.5999, 0.29589382];
};
我想交换的行是:
_this setVectorUp [0, 0, 1];
使用:
_this setPos [13722.756, 2839.5999, 0.29589382];
setvectorup行值是一致的,但setPos每次都会包含不同的coords。 (只有“_this setPos”保持不变)。
在notepad ++中是否有办法自动将所有“_t setvectorup”行与“_this setPos”行交换?
答案 0 :(得分:1)
假设两条线相邻,那么它们可以通过搜索交换并在Notepad ++中替换。将查找内容设置为^([ \t]*_this setVectorUp.*)\r\n([ \t]*_this setPos.*)$
,将替换为设置为\2\r\n\1
。确保选中正则表达式,并选择不匹配换行符 。
^
和$
匹配第一行的开头和第二行的结尾,\r\n
匹配它们之间的换行符。 [ \t]*
匹配行上的前导空格。 ([ \t]*
而不是\s*
使人类读者清楚地知道CR和LF被排除在外。).*
匹配不包含换行符的字符序列。所以[ \t]*_this setVectorUp.*
匹配线,类似于另一条线。加入(
和)
会将匹配的行记录为捕获文字。
替换文本会反转两条捕获的行的顺序并插入换行符序列。
这个答案还假设这两个项目恰好是两行。如果项目分成更多行,或者如果存在其他项目,则可能不会交换某些项目,或者交换可能会重新排序错误的项目。
答案 1 :(得分:-2)
544
4
-1269
770
4
325
tp@p[score_money_min=10000000,team=default] 96 4 -397
scoreboard teams join VIP @p[r=5]
scoreboard players remove @p money 10000000
23.23.76.109:25565