Vorschläge für neue Maps von DEdK
» Siedler Map Source Forum » Mapping » Vorschläge für neue Maps von DEdK
Seiten: Zurück 1 ... 10 11 12 Nächste Seite
aCid
|
#251 17.11.2009 23:18 Beiträge: 275 |
mir ist folgendes aufgefallen, was ich nicht ganz verstehe.
wollte ganz normal den Befehl aufrufen:
CreateEntity(_playerId,_entity,_position,_name)
werte eingesetzt:
CreateEntity(0, Entities.XD_Rock7, {3000, 12000}, "sie")
ging nicht. dachte ich mir. na klar. du musst ja vorher den table machen.
_pos = {3000, 12000} CreateEntity(0, Entities.XD_Rock7, _pos, "sie")
ging wieder nicht.
also guckte ich zu der funktion, die ich schon nutze, die klappt:
CreateEntity(0, Entities.XD_Rock7, GetPosition("xyz"), "sie")
auf einmal ging es.
kann mir das bitte jemand erklären?
____________________
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
Noigi
|
#252 18.11.2009 01:26 Beiträge: 772 |
Jupp, ein kleiner aber feiner Unterschied:
Ein Positionstable braucht die Indizes "X" und "Y", nicht 1 und 2.
Also
_pos = {X=3000, Y=12000}
aCid
|
#253 18.11.2009 04:32 Beiträge: 275 |
das war ja mehr als dämlich.
danke für die schnelle erleuchtung. D:
____________________
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
totalwarANGEL
|
#254 21.12.2009 14:03 Beiträge: 2123 |
Zitat von Noigi:
_pos = {X=3000, Y=12000}
Ich persönlich bevorzuge immer GetPosition(...). Geht zwar nicht immer aber durch eine ScriptEntity kann man(so sehe ich das) viel besser eine Position abfragen. Gas ganze XY...und manchmal auch Z macht einen doch verrückt.
Und dieFunktion GetPosition(...) findet ja auch nur die XY-Koordinate einer Entity raus, oder nicht?
____________________
Die Welt ist arschlochförmig und wir leben in der Mitte.
Noigi
|
#255 21.12.2009 18:56 Beiträge: 772 |
Zitat von totalwarANGEL:
Zitat von Noigi:
_pos = {X=3000, Y=12000}
Ich persönlich bevorzuge immer GetPosition(...). Geht zwar nicht immer aber durch eine ScriptEntity kann man(so sehe ich das) viel besser eine Position abfragen. Gas ganze XY...und manchmal auch Z macht einen doch verrückt.
Und dieFunktion GetPosition(...) findet ja auch nur die XY-Koordinate einer Entity raus, oder nicht?
Völlig richtig, man sollte nur im Zweifelsfall wissen, was einen Positionstable formal ausmacht; zB wenn du mit dem Ergebnis von GetPosition weiterrechnen willst um eine relative Posi zu bestimmen.
warrior1024
|
#256 04.02.2010 19:51 Beiträge: 345 |
Meine Funktionen der Marke Eigenbau
Bis jetzt habe ich immerhin schon 2 Funktionen, die ich gemeinfrei stelle(es darf ohne mein Einverständnis genutzt werden, darf verändert werden, darf kostenlos erworben und kommerziell verbreitet werden, darf kommerziell erworben und kostenlos verkauft werden und und und...)
Bei beiden Funktionen möchte ich Fritz98 für den Denkanstoß danken, ansonsten sind sie von der Marke Eigenbau.
Die erste Funktion erstellt eine Ruinenstadt, der Platzbedarf liegt bei 7*7 Siedlermeter pro Ruine.
function CreateRuinen(_Pos, _xLenght, _yLenght) local pos = _Pos local VonX = -0.5 * _xLenght local BisX = ((0.5 * _xLenght) - 1) local VonY = -0.5 * _yLenght local BisY = ((0.5 * _yLenght) - 1) for i = VonX, BisX, 1 do for j = VonY, BisY, 1 do Logic.CreateEntity(Entities.CB_DestroyAbleRuinHouse1, (pos.X + (i * 700)), (pos.Y + (j * 700)), 0, 1) end end end
Die zweite ist etwas länger(gut 120 Zeilen) und erstellt ein Viertel mit 4 Sägewerken, 4 Lehmhütten, 4 Steinmetzen, ner Uni, einem DZ, ein Markt und ein par Wohnhäuser.
Und die Funktion löst eine Fehlermeldung aus, die mir nichts sagt und nicht behoben wurde, da sie die Funktion nicht stört!
function CreateGrundviertel(_x, _y, _player) local Grundviertel = {} Grundviertel.objekt[1] = { art = Entities.XD_VillageCenter, y_koordinate = -750, x_koordinate = -800 } Grundviertel.objekt[2] = { art = Entities.PB_VillageCenter1, y_koordinate = -750, x_koordinate = -800 } Grundviertel.objekt[3] = { art = Entities.PB_Sawmill1, y_koordinate = -500, x_koordinate = 650 } Grundviertel.objekt[4] = { art = Entities.PB_Sawmill1, y_koordinate = -500, x_koordinate = 1950 } Grundviertel.objekt[5] = { art = Entities.PB_Sawmill1, y_koordinate = -500, x_koordinate = 3250 } Grundviertel.objekt[6] = { art = Entities.PB_Sawmill1, y_koordinate = -500, x_koordinate = 4550 } Grundviertel.objekt[7] = { art = Entities.PB_Brickworks1, y_koordinate = 1250, x_koordinate = 1000 } Grundviertel.objekt[8] = { art = Entities.PB_Brickworks1, y_koordinate = 1250, x_koordinate = 2200 } Grundviertel.objekt[9] = { art = Entities.PB_Brickworks1, y_koordinate = 1250, x_koordinate = 3400 } Grundviertel.objekt[10] = { art = Entities.PB_Brickworks1, y_koordinate = 1250, x_koordinate = 4600 } Grundviertel.objekt[11] = { art = Entities.PB_Market1, y_koordinate = 800, x_koordinate = -800 } Grundviertel.objekt[12] = { art = Entities.PB_University1, y_koordinate = 2550, x_koordinate = -650 } Grundviertel.objekt[13] = { art = Entities.PB_StoneMason1, y_koordinate = 2700, x_koordinate = 1000 } Grundviertel.objekt[14] = { art = Entities.PB_StoneMason1, y_koordinate = 2700, x_koordinate = 2200 } Grundviertel.objekt[15] = { art = Entities.PB_StoneMason1, y_koordinate = 2700, x_koordinate = 3400 } Grundviertel.objekt[16] = { art = Entities.PB_StoneMason1, y_koordinate = 2700, x_koordinate = 4600 } Grundviertel.objekt[17] = { art = Entities.PB_Farm3, y_koordinate = 4200, x_koordinate = -100 } Grundviertel.objekt[18] = { art = Entities.PB_Farm3, y_koordinate = 4200, x_koordinate = -1100 } Grundviertel.objekt[19] = { art = Entities.PB_Farm3, y_koordinate = 4100, x_koordinate = 900 } Grundviertel.objekt[20] = { art = Entities.PB_Farm3, y_koordinate = 4100, x_koordinate = 1900 } Grundviertel.objekt[21] = { art = Entities.PB_Residence3, y_koordinate = 3850, x_koordinate = 2800 } Grundviertel.objekt[22] = { art = Entities.PB_Residence3, y_koordinate = 3850, x_koordinate = 3600 } Grundviertel.objekt[23] = { art = Entities.PB_Residence3, y_koordinate = 3850, x_koordinate = 4400 } Grundviertel.objekt[24] = { art = Entities.PB_Residence3, y_koordinate = 4750, x_koordinate = 2800 } Grundviertel.objekt[25] = { art = Entities.PB_Residence3, y_koordinate = 4750, x_koordinate = 3600 } for i = 1, 25, 1 do Logic.CreateEntity(Grundviertel.objekt[i].art, (_x + Grundviertel.objekt[i].x_koordinate), (_y + Grundviertel.objekt[i].y_koordinate), 0, _player) end end
MfG Warrior1024
____________________
"Banken machen keine Fehlentscheidungen! Haben Euch das Eure Eltern nicht beigebracht?"
- Bankier Samael Silren, Enderal
Noigi
|
#257 04.02.2010 21:14 Beiträge: 772 |
Du verwendest in deinem "Grundviertel"-table einen "objekt"-Untertable, der nicht als solcher initialisiert wird - da liegt der Fehler.
Auf den ersten Blick kannst du den einfach weglassen, also nur noch
function CreateGrundviertel(_x, _y, _player) local Grundviertel = {} Grundviertel[1] = { ...
warrior1024
|
#258 04.02.2010 21:31 Beiträge: 345 |
War dann wohl die alte Version
Sry, die Version war noch nicht getestet, in meiner Spielereinmap ist die Version, die einen seltsamen ERROR verursacht.
Aktuelle Version:
function CreateGrundviertel(_x, _y, _player) local Grundviertel = {} Grundviertel[1] = { art = Entities.XD_VillageCenter, y_koordinate = -750, x_koordinate = -800 } Grundviertel[2] = { art = Entities.PB_VillageCenter1, y_koordinate = -750, x_koordinate = -800 } Grundviertel[3] = { art = Entities.PB_Sawmill1, y_koordinate = -500, x_koordinate = 650 } Grundviertel[4] = { art = Entities.PB_Sawmill1, y_koordinate = -500, x_koordinate = 1950 } Grundviertel[5] = { art = Entities.PB_Sawmill1, y_koordinate = -500, x_koordinate = 3250 } Grundviertel[6] = { art = Entities.PB_Sawmill1, y_koordinate = -500, x_koordinate = 4550 } Grundviertel[7] = { art = Entities.PB_Brickworks1, y_koordinate = 1250, x_koordinate = 1000 } Grundviertel[8] = { art = Entities.PB_Brickworks1, y_koordinate = 1250, x_koordinate = 2200 } Grundviertel[9] = { art = Entities.PB_Brickworks1, y_koordinate = 1250, x_koordinate = 3400 } Grundviertel[10] = { art = Entities.PB_Brickworks1, y_koordinate = 1250, x_koordinate = 4600 } Grundviertel[11] = { art = Entities.PB_Market1, y_koordinate = 800, x_koordinate = -800 } Grundviertel[12] = { art = Entities.PB_University1, y_koordinate = 2550, x_koordinate = -650 } Grundviertel[13] = { art = Entities.PB_StoneMason1, y_koordinate = 2700, x_koordinate = 1000 } Grundviertel[14] = { art = Entities.PB_StoneMason1, y_koordinate = 2700, x_koordinate = 2200 } Grundviertel[15] = { art = Entities.PB_StoneMason1, y_koordinate = 2700, x_koordinate = 3400 } Grundviertel[16] = { art = Entities.PB_StoneMason1, y_koordinate = 2700, x_koordinate = 4600 } Grundviertel[17] = { art = Entities.PB_Farm3, y_koordinate = 4200, x_koordinate = -100 } Grundviertel[18] = { art = Entities.PB_Farm3, y_koordinate = 4200, x_koordinate = -1100 } Grundviertel[19] = { art = Entities.PB_Farm3, y_koordinate = 4100, x_koordinate = 900 } Grundviertel[20] = { art = Entities.PB_Farm3, y_koordinate = 4100, x_koordinate = 1900 } Grundviertel[21] = { art = Entities.PB_Residence3, y_koordinate = 3850, x_koordinate = 2800 } Grundviertel[22] = { art = Entities.PB_Residence3, y_koordinate = 3850, x_koordinate = 3600 } Grundviertel[23] = { art = Entities.PB_Residence3, y_koordinate = 3850, x_koordinate = 4400 } Grundviertel[24] = { art = Entities.PB_Residence3, y_koordinate = 4750, x_koordinate = 2800 } Grundviertel[25] = { art = Entities.PB_Residence3, y_koordinate = 4750, x_koordinate = 3600 } for i = 1, 25, 1 do Logic.CreateEntity(Grundviertel[i].art, (_x + Grundviertel[i].x_koordinate), (_y + Grundviertel[i].y_koordinate), 0, _player) end end
____________________
"Banken machen keine Fehlentscheidungen! Haben Euch das Eure Eltern nicht beigebracht?"
- Bankier Samael Silren, Enderal
fritz_98
|
#259 06.02.2010 10:16 Beiträge: 472 |
Da soll ein XD_VillageCenter entstehen?
Dann musst du beachten, dass ein VillageCenter immer die ID 0 hat. Wenn man Entities mit ID0 erstellt, kommt immer eine Fehlermeldung, die Entity wird aber dennoch erschaffen. Damit du die Fehlermeldung los wirst, braust du das hier in der FirstMapAction()
Score.Player[0] = {}; Score.Player[0]["buildings"] = 0; Score.Player[0]["all"] = 0 Score.Player[1].bisher=0
MfG
Fritz
aCid
|
#260 06.02.2010 13:41 Beiträge: 275 |
@fritz: Hmm, da verstehe ich was gar nicht.
Zum einen erstellt er ja XD_VillageCenter, obwohl es die ID0 hast, mit der ID des Spielers. Kann es eher daran liegen???
Habe auch so eine ähnliche kleine Siedlung und da erstelle ich ja auch Zäune, etc., die die ID0 haben. Habe allerdings keine Fehlermeldung und brauche diesen Workaround nicht.
Woran liegt das? Oder wo liegt da der Unterschied?
____________________
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
fritz_98
|
#261 06.02.2010 15:16 Beiträge: 472 |
Wahrscheinlich darin, dass ein VillageCenter so ne Art Gebäude ist. Bei Mauern hast du dasselbe Problem, wenn du sie mit ID0 erstellst.
Wladimir
|
#262 07.02.2010 10:07 Beiträge: 489 |
Alle Gebäude von Player ? erfassen
Kennt jemand einen Code, welcher alle bestehenden Gebäude einer ID(wenn er alles erfasst ist auch OK) erfasst und ich diese dann durch z.B.
SetHealth(data[i],5)
verwunden kann?
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
andre111
|
#263 07.02.2010 10:35 Beiträge: 220 |
Zitat von Wladimir:
Kennt jemand einen Code, welcher alle bestehenden Gebäude einer ID(wenn er alles erfasst ist auch OK) erfasst und ich diese dann durch z.B.
SetHealth(data[i],5)
verwunden kann?
Wladimir.
@Wladimir:
ich kenn da nur:
Logic.GetAllPlayerEntities(1)
1 = PlayerID
aber das erwischt dann alle Entities, nicht nur die Gebäude.
PS: habs jetzt(Glaub ich, konnte ich noch nicht testen):
function GebaudeHealth() local data = Logic.GetAllPlayerEntities(1) for i = 1,table.getn(data) do if Logic.IsBuilding(data[i]) == 1 then SetHealth(data[i],5) end end end
FG
andre111
Dieser Beitrag wurde von andre111 am 07.02.2010 um 10:44 editiert.
Wladimir
|
#265 07.02.2010 10:46 Beiträge: 489 |
Danke andre111,
ich schrieb bereits: ist auch ok, wenns alle erwischt.
Ist wie im echten Leben; manchmal erwischts alle, auch die Unschuldigen.
Jetzt bleibt noch zu lösen, ob diese Funktion auch mehr als 16 Entites erfassen kann, was ja bei vielen Funktionen nicht geht.
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
andre111
|
#266 07.02.2010 10:51 Beiträge: 220 |
@Wladimir:
Schau nochmal in meinen letzten Post, ich glaube es gelöst zu haben. (Musst du aber noch testen. Mein Siedler läuft gerade nicht mehr )
FG
andre111
Wladimir
|
#267 07.02.2010 11:03 Beiträge: 489 |
Leider...
...kommt bei der Funktion nur eine Fehlermeldung heraus:
[ 2010/02/07 11:00:34 ] ERROR: DEBUG ERROR!
Error: LUA_ERRRUN: [string "Map Script"]:70: bad argument #1 to `getn' (table expected, got number)
Auch wenn ichs so schreibe:
function GebaudeHealth() local data = Logic.GetAllPlayerEntities(1) for i = 1,table.getn(data[i]) do if Logic.IsBuilding(data[i]) == 1 then SetHealth(data[i],5) end end end
...Absturz sogar OHNE Fehlermeldung.
Wladimir.
PS: Dein letzter Post wurde von dir selbst gelöscht!
____________________
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
|
#268 07.02.2010 11:05 Beiträge: 220 |
@Wladimir:
Da weis ich auch nicht mehr weiter,
jetzt müssen die Profis her.
PS: Ja, dass weis ich doch
FG
andre111
Wladimir
|
#269 07.02.2010 11:08 Beiträge: 489 |
Zitat von andre111:
@Wladimir:
Da weis ich auch nicht mehr weiter,
jetzt müssen die Profis her.
PS: Ja, dass weis ich doch
FG
andre111
Fehler gefunden!!!!!
function GebaudeHealth() local data = Logic.GetAllPlayerEntities(1) for i = 1,table.getn(data) do if Logic.IsBuilding(data[i]) == 1 then SetHealth(data[i],5) end end end
Die werden nur geschwächt, wenn Player 1 nur Gebäude hat!
(wegen
if Logic.IsBuilding(data[i]) == 1 then
)
Wladimir.
PS: So isses richtig:
function GebaudeHealth() local data = Logic.GetAllPlayerEntities(1) for i = 1,table.getn(data) do SetHealth(data[i],5) end end
Da erwischts halt alles.
Edit: Leider immer noch:
[ 2010/02/07 11:10:44 ] ERROR: DEBUG ERROR!
Error: LUA_ERRRUN: [string "Map Script"]:70: bad argument #1 to `getn' (table expected, got number)
____________________
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
|
#270 07.02.2010 11:35 Beiträge: 220 |
@Wladimir:
Ich habs jetzt:
function GebaudeHealth() _groesse = Logic.WorldGetSize() _punkt = {X = _groesse/2, Y = _groesse/2} local data ={Logic.GetPlayerEntitiesInArea(1,nil, _punkt.X, _punkt.Y, math.floor(_groesse * 0.71), 100)} for i = 1,table.getn(data) do if Logic.IsBuilding(data[i]) ~= 0 then --Message(""..data[i].."") --zeigt die ID des gefundenen Gebäudes an. SetHealth(data[i],5) end end
Erwischt aber allerhöchstens 16 Gebäude, werden auch noch andere Entities erfasst wird die Zahl der Gebäude entsprechend weniger
PS: Hätte auch noch ne andere Lösung, die alle Gebäude erwischt(braucht dann aber SucheAufDerWelt). Soll ich sie Posten?
PPS: Das konnte ich auch wieder testen. Funktioniert
FG
andre111
Dieser Beitrag wurde von andre111 am 07.02.2010 um 11:40 editiert.
Wladimir
|
#271 07.02.2010 11:55 Beiträge: 489 |
Zitat von andre111:
@Wladimir:
Ich habs jetzt:
function GebaudeHealth() _groesse = Logic.WorldGetSize() _punkt = {X = _groesse/2, Y = _groesse/2} local data ={Logic.GetPlayerEntitiesInArea(1,nil, _punkt.X, _punkt.Y, math.floor(_groesse * 0.71), 100)} for i = 1,table.getn(data) do if Logic.IsBuilding(data[i]) ~= 0 then --Message(""..data[i].."") --zeigt die ID des gefundenen Gebäudes an. SetHealth(data[i],5) end end
Erwischt aber allerhöchstens 16 Gebäude, werden auch noch andere Entities erfasst wird die Zahl der Gebäude entsprechend weniger
PS: Hätte auch noch ne andere Lösung, die alle Gebäude erwischt(braucht dann aber SucheAufDerWelt). Soll ich sie Posten?
PPS: Das konnte ich auch wieder testen. Funktioniert
FG
andre111
SucheaufderWelt habe ich auch. Poste sie ruhig!
Kann ja nur von Vorteil sein!
Wladimir.
PS: Die Siedlung um dies geht hat um die 80 Gebäude(inkl. Türmen), da ist 16 einfach zu wenig.
____________________
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
|
#272 07.02.2010 12:05 Beiträge: 275 |
http://www.siedler-maps.de/for...rBuildings-fehlerhaft-8613.htm
____________________
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
|
#273 07.02.2010 12:44 Beiträge: 489 |
Brrrrr...
Das ist ein riesen Code!
Da warte ich erstmal auf den Vorschlag von andre111 und vergleiche die Größe der beiden.
Die Funktion SucheaufderWelt brauche ich ja so oder so, da wäre die Lösung von andre111 einfach praktischer.
Wladimir.
PS: Mein Script hat jetzt ~125 kb
____________________
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
Noigi
|
#274 07.02.2010 13:44 Beiträge: 772 |
Die Funktion Logic.GetAllPlayerEntities gibt ihre Ergebnisse nacheinander aus, und nicht in einem table. Du müsstest für die Schleifenverarbeitung selbst einen table draus machen.
function GebaudeHealth() local data = {Logic.GetAllPlayerEntities(1,40)}; -- Menge angeben! Maximum ist afaik 40 for i = 1,data[1] do SetHealth(data[i+1],5) end end
Ansonsten vllt:
http://www.siedler-portal.de/s...-durch-tore-durchlassen-2.html
andre111
|
#275 07.02.2010 16:26 Beiträge: 220 |
@Wladimir:
Hier ist sie nun(erfolgreich getestet und SucheAufDerWelt ist auch schon mit drin):
function GebaudeHealth() local data = SucheAufDerWelt(1) for i = 1,table.getn(data) do if Logic.IsBuilding(data[i]) ~= 0 then --Message(""..data[i].." ist ein Gebaeude!") --Messages nur TestAufrufe SetHealth(data[i],5) end end --Message("Das wars!") end function SucheAufDerWelt(_player, _entity, _groesse, _punkt) local punktX1, punktX2, punktY1, punktY2, data local gefunden = {} local rueck if not _groesse then _groesse = Logic.WorldGetSize() end if not _punkt then _punkt = {X = _groesse/2, Y = _groesse/2} end if _player == 0 then data ={Logic.GetEntitiesInArea(_entity, _punkt.X, _punkt.Y, math.floor(_groesse * 0.71), 16)} else data ={Logic.GetPlayerEntitiesInArea(_player,_entity, _punkt.X, _punkt.Y, math.floor(_groesse * 0.71), 16)} end if data[1] >= 16 then -- Aufteilen angesagt local _klgroesse = _groesse / 2 -- Ausgangspunkt ist _punkt -- _punkt verteilen local punktX1 = _punkt.X - _groesse / 4 local punktX2 = _punkt.X + _groesse / 4 local punktY1 = _punkt.Y - _groesse / 4 local punktY2 = _punkt.Y + _groesse / 4 rueck = SucheAufDerWelt(_player, _entity, _klgroesse, {X=punktX1,Y=punktY1}) for i = 1, table.getn(rueck) do if not IstDrin(rueck[i], gefunden) then table.insert(gefunden, rueck[i]) end end rueck = SucheAufDerWelt(_player, _entity, _klgroesse, {X=punktX1,Y=punktY2}) for i = 1, table.getn(rueck) do if not IstDrin(rueck[i], gefunden) then table.insert(gefunden, rueck[i]) end end rueck = SucheAufDerWelt(_player, _entity, _klgroesse, {X=punktX2,Y=punktY1}) for i = 1, table.getn(rueck) do if not IstDrin(rueck[i], gefunden) then table.insert(gefunden, rueck[i]) end end rueck = SucheAufDerWelt(_player, _entity, _klgroesse, {X=punktX2,Y=punktY2}) for i = 1, table.getn(rueck) do if not IstDrin(rueck[i], gefunden) then table.insert(gefunden, rueck[i]) end end else table.remove(data,1) for i = 1, table.getn(data) do if not IstDrin(data[i], gefunden) then table.insert(gefunden, data[i]) end end end return gefunden end function IstDrin(_wert, _table) for i = 1, table.getn(_table) do if _table[i] == _wert then return true end end return false end
Ich hoffe, dass das hilft
FG
andre111
Dieser Beitrag wurde von andre111 am 07.02.2010 um 16:33 editiert.