editent: always all 7 attributes
This commit is contained in:
+26
-15
@@ -5,20 +5,18 @@ const MODEALIASES [map lms vip sendmap]
|
|||||||
|
|
||||||
// "editent" command:
|
// "editent" command:
|
||||||
// This command collects all the attributes of the nearest entity, and then
|
// This command collects all the attributes of the nearest entity, and then
|
||||||
// prompts that into a handy command that allows you to edit that entities
|
// prompts that into a handy command that allows you to edit that entities attributes easily.
|
||||||
// attributes easily.
|
tempalias __editentprefix ""
|
||||||
// Note: The editent command can NOT define rotation/yaw inside the command!
|
|
||||||
// However, the current yaw of the player will define the rotation/yaw when
|
|
||||||
// using the command!
|
|
||||||
const editent [
|
const editent [
|
||||||
if $editing [
|
if $editing [
|
||||||
if (strcmp (getenttype) mapmodel) [ saycommand "/entset" (getenttype) (getentattr 1) (getentattr 2) (getentattr 3) (getentattr 4) (getentattr 5) (getentattr 6) (getentattr 7) ] [
|
push n (getclosestent)
|
||||||
if (> (findlist [light sound clip plclip] (getenttype)) -1) [
|
if (> $n -1) [
|
||||||
saycommand "/entset" (getenttype) (getentattr 0) (getentattr 1) (getentattr 2) (getentattr 3) (getentattr 4) (getentattr 5) (getentattr 6) (getentattr 7)
|
push cced (editentity $n)
|
||||||
] [
|
__editentprefix = (concat $n (at $cced 1) (at $cced 2) (at $cced 3))
|
||||||
saycommand "/entset" (getenttype) (getentattr ((> (findlist [playerstart ctf-flag] (getenttype)) -1)))
|
saycommand "/editentattr" (at $cced 4) (at $cced 5) (at $cced 6) (at $cced 7) (at $cced 8) (at $cced 9) (at $cced 10)
|
||||||
]
|
pop cced
|
||||||
]
|
]
|
||||||
|
pop n
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -260,8 +258,6 @@ const toggleshowmap [ showmap 1; onrelease [ showmap 0 ] ]
|
|||||||
// arg5 1: private mode, 2: match mode
|
// arg5 1: private mode, 2: match mode
|
||||||
// arg6 1: banned, 2: blacklisted 3: both
|
// arg6 1: banned, 2: blacklisted 3: both
|
||||||
// arg7 "server description"
|
// arg7 "server description"
|
||||||
// TODO: interpret a#3,4,5,6 [ft:any1:2010apr04]
|
|
||||||
|
|
||||||
const sbconnect [
|
const sbconnect [
|
||||||
tempalias sbdns $arg1; tempalias sbport $arg2; tempalias sbdesc $arg7; tempalias sbpwd []; tempalias sbmsg []
|
tempalias sbdns $arg1; tempalias sbport $arg2; tempalias sbdesc $arg7; tempalias sbpwd []; tempalias sbmsg []
|
||||||
if (>= $arg5 1) [
|
if (>= $arg5 1) [
|
||||||
@@ -296,8 +292,8 @@ const listaverage [ push sum "" ; looplist $arg1 n [ +=f sum $n ] ; if (strlen $
|
|||||||
tempalias pasteent [if $editing [echo no entity copied, yet]]
|
tempalias pasteent [if $editing [echo no entity copied, yet]]
|
||||||
const copyent [
|
const copyent [
|
||||||
if $editing [
|
if $editing [
|
||||||
entidx = (getclosestent)
|
push entidx = (getclosestent)
|
||||||
if (> entidx -1) [
|
if (> $entidx -1) [
|
||||||
push n (format2 "%1 %5 %6 %7 %8 %9 %010 %011" (editentity $entidx))
|
push n (format2 "%1 %5 %6 %7 %8 %9 %010 %011" (editentity $entidx))
|
||||||
push d (switch (findlist "mapmodel sound" (at $n 0)) [mapmodelslotname (at $n 2)] [at (editmapsoundslot (at $n 1)) 0])
|
push d (switch (findlist "mapmodel sound" (at $n 0)) [mapmodelslotname (at $n 2)] [at (editmapsoundslot (at $n 1)) 0])
|
||||||
pasteent = [if $editing [if $editmetakeydown [showmenu [Paste entity]] [newent7 @@@n ; echo @@@n @@@d pasted.]]]
|
pasteent = [if $editing [if $editmetakeydown [showmenu [Paste entity]] [newent7 @@@n ; echo @@@n @@@d pasted.]]]
|
||||||
@@ -306,6 +302,7 @@ const copyent [
|
|||||||
echo $n $d copied.
|
echo $n $d copied.
|
||||||
pop n d
|
pop n d
|
||||||
]
|
]
|
||||||
|
pop entidx
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -321,6 +318,20 @@ const newent7 [ // like newent, but setting all seven attributes directly
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
// used by editent // editentity requires ent index, coordinates (via tempalias) and all seven attributes (via arguments)
|
||||||
|
const editentattr [
|
||||||
|
if (strlen $__editentprefix) [
|
||||||
|
if $numargs [
|
||||||
|
loop i 4 [ push [p@i] (if (< $i (listlen $__editentprefix)) [result (at $__editentprefix $i)])]
|
||||||
|
loop i 7 [ push [a@i] (if (< $i $numargs) [result $arg@(+ $i 1)])]
|
||||||
|
editentity $p0 $p1 $p2 $p3 $a0 $a1 $a2 $a3 $a4 $a5 $a6
|
||||||
|
__editentprefix = ""
|
||||||
|
loop i 7 [ pop [a@i] ]
|
||||||
|
loop i 4 [ pop [p@i] ]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
// countwalls - Counts cubes of a specific type in all selections
|
// countwalls - Counts cubes of a specific type in all selections
|
||||||
const countwalls [
|
const countwalls [
|
||||||
push __cnt 0
|
push __cnt 0
|
||||||
|
|||||||
@@ -535,8 +535,7 @@ void editentity(char **args, int numargs) // index x y z a1 a2 a3 a4 ...
|
|||||||
}
|
}
|
||||||
unsavededits++;
|
unsavededits++;
|
||||||
}
|
}
|
||||||
// give back unchanged or new entity properties
|
formatstring(res)("%s %d %d %d %s", entnames[t], e.x, e.y, e.z, formatentityattributes(e)); // double space is for human readability; scripts don't care.
|
||||||
formatstring(res)("%s %d %d %d %s", entnames[t], e.x, e.y, e.z, formatentityattributes(e));
|
|
||||||
}
|
}
|
||||||
result(res);
|
result(res);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user