Autor |
|
|
GLOOP mit Internen Nummern |
|
|
|
Gestern ist die Frage aufgetaucht was denn das für ein komischer GLOOP in dem Wac-Script ist, was die Bots zu den Waffen schickt. Gemeint war dieser:
if v10 == 1 and never then
v6 = 4102
GLOOP Weapon
ssn2ssn(item,v6)
ssnuse(item)
dec(v6)
END
GLOOP Weap2
removessn(item)
END
endif
Ich beziehe mich jetzt nur auf folgenden Bereich davon:
if v10 == 1 and never then
v6 = 4102
GLOOP Weapon
ssn2ssn(item,v6)
ssnuse(item)
dec(v6)
END
V10 löst das Ereignis aus, soweit sollte es klar sein. Das Ereignis ist, dass die einzelnen Bots(bei mir 8 Bots) einer Gruppe zu verschiedenen Waffenstellungen(bei mir 8 Waffenstellungen) sollen. Das heißt ich hätte eine Gruppe für die Bots und eine Gruppe für die Waffenstellungen. Jetzt kann ich natürlich in einem GLOOP nicht zwei unterschiedliche Gruppen ansteuern und ich kann auch nicht diese 2 GLOOPs mit einander verbinden. Also müsste ich nun per Befehl jeden einzelnen Bot zu seiner Waffenstellung schicken. Das würde dann etwa so aussehen:
if v10 == 1 and never then
ssn2ssn(Bot1,Waffenstellung1)
ssnuse(Bot1)
ssn2ssn(Bot2,Waffenstellung2)
ssnuse(Bot2)
ssn2ssn(Bot3,Waffenstellung3)
ssnuse(Bot3)
ssn2ssn(Bot4,Waffenstellung4)
ssnuse(Bot4)
ssn2ssn(Bot5,Waffenstellung5)
ssnuse(Bot5)
ssn2ssn(Bot6,Waffenstellung6)
ssnuse(Bot6)
ssn2ssn(Bot7,Waffenstellung7)
ssnuse(Bot7)
ssn2ssn(Bot8,Waffenstellung8)
ssnuse(Bot8)
endif
je nachdem wie viele dieser Aktionen ich mit V10 auslösen will, ist das in dieser Weise sehr viel Schreibarbeit. Also nutze ich die Internen Nummern des Programms. Diese Nummer wird vergeben wenn ich Gegenstände in die Map plaziere.... und zwar Fortlaufend. Das bedeutet ich muss die Waffenstellungen direkt hintereinander plazieren, ohne dazwischen etwas anderes zu setzen. Dann verwende ich die interne Nummer des zuletzt plazierten Geschützes (in diesem Fall die Nummer 4102). So, damit ihr nicht ständig hoch und runter scrollen müsst, hier noch mal der GLOOP:
if v10 == 1 and never then
v6 = 4102
GLOOP Weapon
ssn2ssn(item,v6)
ssnuse(item)
dec(v6)
END
Was macht der also:
V6 bekommt die interne Nummer des letzten Geschützes. die Gruppe Weapon sind bei mir die 8 Bots die zu den Waffenstellungen sollen. Im GLOOP selbst schicke ich den ersten Bot zu v6(interne Nummer des letzten Geschützes) und reduziere dann die Variable V6 um 1. Somit wird V6 zu dem als vorletztem gesetzten Geschütz(4101). Der GLOOP läuft von vorne durch und der nächste Bot wird jetzt natürlich zu 4101 geschickt. Der GLOOP steuert entsprechend immer ein Geschütz mit einer kleineren internen Nummer an bis alle 8 Bots an einem Geschütz (Waffenstellung) ist. Jetzt erkennt ihr vllt weshalb es wichtig ist, zwischen den Geschützen kein Haus zu setzen. Dies würde einen Sysdump verursachen. Ebenso wichtig ist es mindestens die gleiche Anzahl an Geschützen zu setzen, wie ihr Bots in eurer Gruppe habt. Bei weniger Geschützen würde ein Bot an ein bereits besetztes Geschütz wollen!
 |
Mittlerweile kann ich schon ein bissl was  |
Dieser Beitrag wurde 1 mal editiert, zuletzt von sleepless am 09.01.2019 - 14:08.
|
Beitrag vom 09.01.2019 - 09:18 |
|