Alle Enities löschen

» Siedler Map Source Forum » Siedler DEdK Script Forum » Alle Enities löschen

Seiten: 1

NintendoDS1993
#1
27.01.2010 18:07
Beiträge: 233

Alle Enities löschen

Hallo ich würde gerne alle Enities in einem bestimmten Bereich löschen. Aber das scheint irgendwie nicht hinzuhauen. Ich habe bisher diesen Befehl verwendet:

_OP_CleanUp(posFutsch1, 5000, Enities.PU_LeaderSword3)


Zusammen mit dieser Comfortfunktion:

function _OP_CleanUp(_position, _range,_entity)
    local Data = { Logic.GetEntitiesInArea( _entity, _position.X, _position.Y, _range, 20)};
    local i;
    for i=2, Data[1]+1 do
        DestroyEntity(Data[i]);
    end
end



Vielleicht wisst ihr ja einen Rat.

Wladimir
#2
27.01.2010 18:20
Beiträge: 489

Zitat von NintendoDS1993:
Hallo ich würde gerne alle Enities in einem bestimmten Bereich löschen. Aber das scheint irgendwie nicht hinzuhauen. Ich habe bisher diesen Befehl verwendet:

_OP_CleanUp(posFutsch1, 5000, Enities.PU_LeaderSword3)


Zusammen mit dieser Comfortfunktion:

function _OP_CleanUp(_position, _range,_entity)
    local Data = { Logic.GetEntitiesInArea( _entity, _position.X, _position.Y, _range, 20)};
    local i;
    for i=2, Data[1]+1 do
        DestroyEntity(Data[i]);
    end
end



Vielleicht wisst ihr ja einen Rat.



Dass das nicht hinhaut ist doch klar!
Du cleanst den Bereich ja nur von den Schwertkämpfern Level3!

Wladimir.

PS: Versuch mal keine Entity anzugeben:

_OP_CleanUp(posFutsch1, 5000)



____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

andre111
#3
27.01.2010 18:25
Beiträge: 220

Du musst es so schreiben:

_OP_CleanUp(GetPosition("posFutsch1"), 500, Entities.LeaderSword3)



wichtig Ist das GetPosition("..."

FG
andre111

Wladimir
#4
27.01.2010 18:54
Beiträge: 489

Zitat von andre111:
Du musst es so schreiben:

_OP_CleanUp(GetPosition("posFutsch1"), 500, Entities.LeaderSword3)



wichtig Ist das GetPosition("..."

FG
andre111



@ andre111
Es soll doch alles gelöscht werden. Nicht nur die Schwerties Level3.

Wladimir.

PS: Kleine Verbesserung:

_OP_CleanUp(GetPosition("posFutsch1"), 5000)



____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

kingsia
#5
27.01.2010 21:32
Beiträge: 750

Hallo Wladimir,

Deine Verbesserung kann nicht funktionieren weil der "ComfortFunktion", wie vorgestellt, ein _Entity braucht.

Gruss
Kingsia

aCid
#6
28.01.2010 08:55
Beiträge: 275

function _OP_CleanUp_Player(_posEntity, _range, _entity, _id)
	local _t = {}
	_pos = GetPosition(_posEntity)
	if _id == nil then _id = 1 end
	repeat
		_t = {Logic.GetPlayerEntitiesInArea(_id, _entity, _pos.X, _pos.Y, _range, 1)}
		DestroyEntity(_t[table.getn(_t)])
	until table.getn(_t) <=1
end


Aufruf:
_OP_CleanUp_Player(_posEntity, _range, _entity, _id)
_OP_CleanUp_Player(posFutsch1, 5000, Enities.PU_LeaderSword3, 1)

Wenn keine Id aufgreufen wird, dann werden die Entities von Spieler 1 entfernt innerhalb des Radiuses.

Bsp.:
_OP_CleanUp_Player(posFutsch1, 5000, Enities.PU_LeaderSword3)


Wenn du generell alle Entities in der Region löschen willst, Bspw. alle Schwertlämpfer, egal welche ID sie haben (also von allen Spielern), dann muss die Comfortfunktion so aussehen:

function _OP_CleanUp_AllPlayer(_posEntity, _range, _entity)
	local _t = {}
	_pos = GetPosition(_posEntity)
	repeat
		_t = {Logic.GetEntitiesInArea(_entity, _pos.X, _pos.Y, _range, 1)}
		DestroyEntity(_t[table.getn(_t)])
	until table.getn(_t) <=1
end


Aufruf:
_OP_CleanUp_AllPlayer(_posEntity, _range, _entity)
_OP_CleanUp_AllPlayer(posFutsch1, 5000, Enities.PU_LeaderSword3)


Viel Erfolg.

____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm

Dieser Beitrag wurde von aCid am 28.01.2010 um 09:01 editiert.

NintendoDS1993
#7
28.01.2010 16:56
Beiträge: 233

Erstmal muss ich mich für meine undeutliche Ausdrucksweise entschuldigen. Ich meinte natürlich, dass ich will, dass alle Schwertkäpfer Level3 in diesem Bereich verschwinden. Bisher hat das Spiel immer danach sich aufgehängt*, wenn ich den Befehl aufgerufen habe.

Mit dem Befehl von aCid und der dazugehörigen Comfortfunktion waren dann auf einmal alle Enities, die eine ID hatten, weg:

_OP_CleanUp_AllPlayer(_posEntity, _range, _entity)

Aber es hat zumindest geklappt.

Und bei dem Befehl hier und der zugehörigen Comfortfunktion gabs das alte Problem, bei dem sich das Spiel aufhängte. Außerdem waren noch alle Schwertkämpfer da:

_OP_CleanUp_AllPlayer(posFutsch1, 5000, Enities.PU_LeaderSword3)



*Aufgehängt: Das Spiel ruckelt nur noch und die Kamera lässt sich nicht mehr verschieben. Genau so als ob man den Tributcomfort vergessen hätte.

Achja bei einer Sache bin ich mir noch unsicher. Ich habe bei der _posEnity einfach ein Objekt im Editor so: posFutsch1 benannt. Ist das so richtig?

Bitte helft mir nochmal!

Dieser Beitrag wurde von NintendoDS1993 am 28.01.2010 um 17:27 editiert.

Wladimir
#8
28.01.2010 17:28
Beiträge: 489

Zitat von NintendoDS1993:
Erstmal muss ich mich für meine undeutliche Ausdrucksweise entschuldigen. Ich meinte natürlich, dass ich will, dass alle Schwertkäpfer Level3 in diesem Bereich verschwinden. Bisher hat das Spiel immer danach sich aufgehängt*, wenn ich den Befehl aufgerufen habe.

Mit dem Befehl von aCid und der dazugehörigen Comfortfunktion waren dann auf einmal alle Enities, die eine ID hatten, weg:

_OP_CleanUp_AllPlayer(_posEntity, _range, _entity)

Aber es hat zumindest geklappt.

Und bei dem Befehl hier und der zugehörigen Comfortfunktion gabs das alte Problem, bei dem sich das Spiel aufhängte. Außerdem waren noch alle Schwertkämpfer da:

_OP_CleanUp_AllPlayer(posFutsch1, 5000, Enities.PU_LeaderSword3)



*Aufgehängt: Das Spiel ruckelt nur noch und die Kamera lässt sich nicht mehr verschieben. Genau so als ob man den Tributcomfort vergessen hätte.

Achja bei einer Sache bin ich mir noch unsicher. Ich habe bei der _posEnity einfach ein Objekt im Editor so benannt. Ist das so richtig?

Bitte helft mir nochmal!



gerne doch!

So muss das aussehen:

_OP_CleanUp_AllPlayer("posFutsch1", 5000, Entities.PU_LeaderSword3)



Da hat ein "t" gefehlt, sowie die " !

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

Dieser Beitrag wurde von Wladimir am 28.01.2010 um 17:51 editiert.

NintendoDS1993
#9
28.01.2010 18:04
Beiträge: 233

Zitat von Wladimir:

So muss das aussehen:

_OP_CleanUp_AllPlayer("posFutsch1", 5000, Entities.PU_LeaderSword3)



Da hat ein "t" gefehlt, sowie die " !

Wladimir.



Ok das wars jetzt ist der Error weg, aber die Soldaten bleiben trotzdem jedesmal. Außerdem glaube ich nicht das da Anführungszeichen hinsollen.

andre111
#10
28.01.2010 18:11
Beiträge: 220

Zitat von NintendoDS1993:

Zitat von Wladimir:

So muss das aussehen:

_OP_CleanUp_AllPlayer("posFutsch1", 5000, Entities.PU_LeaderSword3)



Da hat ein "t" gefehlt, sowie die " !

Wladimir.



Ok das wars jetzt ist der Error weg, aber die Soldaten bleiben trotzdem jedesmal. Außerdem glaube ich nicht das da Anführungszeichen hinsollen.



Hallo,

du musst den befehl in nem SimpleJob packen, sonst wird ja nur ein einziges mal entfernt!

FG
andre111

Wladimir
#11
28.01.2010 18:16
Beiträge: 489

Zitat von andre111:

Zitat von NintendoDS1993:

Zitat von Wladimir:

So muss das aussehen:

_OP_CleanUp_AllPlayer("posFutsch1", 5000, Entities.PU_LeaderSword3)



Da hat ein "t" gefehlt, sowie die " !

Wladimir.



Ok das wars jetzt ist der Error weg, aber die Soldaten bleiben trotzdem jedesmal. Außerdem glaube ich nicht das da Anführungszeichen hinsollen.



Hallo,

du musst den befehl in nem SimpleJob packen, sonst wird ja nur ein einziges mal entfernt!

FG
andre111



Es soll ja auch nur einmal entfernt werden, soweit ich es verstehen konnte.

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

aCid
#12
28.01.2010 18:25
Beiträge: 275

vlt. mal die range vergroessern. 5000 ist ziemlich wenig, so gesehen.

____________________
Das ist und bleibt ein Spiel! - Wir sind hier nicht vor Gericht.
----------------------------------------------------------------------
Mapperhilfen für S5:
http://www.siedler-maps.de/forum/Siedler-DEdK-Script-Forum-27/index.htm
http://www.siedler-maps.de/for...und-andere-Ressourcen-8688.htm
http://www.siedler-maps.de/for...unktionen-Skripte-etc-8706.htm

Wladimir
#13
28.01.2010 18:31
Beiträge: 489

Zitat von aCid:
vlt. mal die range vergroessern. 5000 ist ziemlich wenig, so gesehen.



Vorsicht!
Jedes Kästchen bedeutet einen Abstand von 100 scm. Da müssen funfzig Kästchen kommen, bis man von der Mitte am Rand ist.

Bei einem Durchschnitt von hundertb Kästchen würden alle verschwinden, wenn die nicht ewig weit gestreut sind!

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

NintendoDS1993
#14
29.01.2010 15:47
Beiträge: 233

Vielen Dank euch allen mit größerem Range hats dann geklappt.

Wladimir
#15
29.01.2010 15:48
Beiträge: 489

Zitat von NintendoDS1993:
Vielen Dank euch allen...



gerne doch!

Wladimir.

____________________
Viele, die leben, verdienen den Tod und viele die tot sind, das Leben. Kannst du es ihnen geben? Dann sei auch nicht so rasch mit einem Todesurteil zur Hand!

Gandalf

Seiten: 1

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum