Dropped rifle
» Siedler Map Source Forum » Siedler DEdK Script Forum » Dropped rifle
Seiten: 1
SH
|
#1 13.06.2018 18:53 Beiträge: 127 |
Dropped rifle
Hi,
How to remove a dropped rifle of PU_LeaderRifle2?
(like DestroyEntity)
____________________
Sorry for my German
Zedeg
|
#2 14.06.2018 16:24 Beiträge: 428 |
This will remove any rifle dropped on a battlefield (not tested):
Trigger.RequestTrigger(Events.LOGIC_EVENT_ENTITY_CREATED, nil, "DestroyRifles", 1) function DestroyRifles() local id = Event.GetEntityID() local type = Logic.GetEntityType(id) if type == Entities.XD_SoldierRifle1_Rifle or type == Entities.XD_SoldierRifle2_Rifle then DestroyEntity(id) end end
____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski
warrior1024
|
#3 14.06.2018 18:21 Beiträge: 345 |
Note that using DestroyEntity in a EntityCreated trigger breaks Event.GetEntityID(), so you need a workaround:
SW_ToDestroyEntities = {} function SW_DestroySafe(_entityID) function SW_DestroyJob() for i = table.getn( SW_ToDestroyEntities), 1, -1 do DestroyEntity( SW_ToDestroyEntities[i]) end SW_ToDestroyEntities = {} return true; end; table.insert(SW_ToDestroyEntities, _entityID); if table.getn(SW_ToDestroyEntities) == 1 then StartSimpleHiResJob("SW_DestroyJob"); end end
____________________
"Banken machen keine Fehlentscheidungen! Haben Euch das Eure Eltern nicht beigebracht?"
- Bankier Samael Silren, Enderal
mcb
|
#4 14.06.2018 19:41 Beiträge: 1472 |
Zitat von warrior1024:
Note that using DestroyEntity in a EntityCreated trigger breaks Event.GetEntityID(), so you need a workaround:
I noticed this too and added a fix to my mcbTrigger. (I think this version is not published at its thread) . But im not sure if it is caused by my code mapping one C++ trigger to all lua functions or by some C++ code.
Peter-FS
|
#5 14.06.2018 20:28 Beiträge: 1086 |
Delete droped weapons
If you know the position of the weapons or a battlefield you can use this function to clean an area. This function was created by Flodder
function DeleteWeapons(_pos, _range) if waffenTable==nil then GlobaleTables() end local posWaffen = GetPosition(_pos) local i local j for j=1,table.getn(waffenTable) do local Data = { Logic.GetEntitiesInArea( waffenTable[j], posWaffen.X, posWaffen.Y, _range, 20)}; for i=2, Data[1]+1 do DestroyEntity(Data[i]); end end end function GlobaleTables() waffenTable={ Entities.XD_MiscAxeShield, Entities.XD_MiscBow, Entities.XD_MiscShield, Entities.XD_MiscPoleArm, Entities.XD_MiscSword, Entities.XD_SoldierRifle1_Rifle, Entities.XD_SoldierRifle2_Rifle, Entities.XD_MiscSwordShield, Entities.XD_DroppedAxeShield, Entities.XD_DroppedBow, Entities.XD_DroppedPoleArm, Entities.XD_DroppedShield, Entities.XD_DroppedSword, Entities.XD_DroppedSwordShield, } end
____________________
Man muss nicht alles wissen, man muss nur wissen wo es steht!
SH
|
#6 16.06.2018 18:06 Beiträge: 127 |
Thank you
I also found a other way, but these can be useful.
____________________
Sorry for my German
Dieser Beitrag wurde von SH am 16.06.2018 um 18:17 editiert.
Der_Deutsche
|
#7 22.06.2018 23:37 Beiträge: 349 |
Zitat von Zedeg:
This will remove any rifle dropped on a battlefield (not tested):
Trigger.RequestTrigger(Events.LOGIC_EVENT_ENTITY_CREATED, nil, "DestroyRifles", 1) function DestroyRifles() local id = Event.GetEntityID() local type = Logic.GetEntityType(id) if type == Entities.XD_SoldierRifle1_Rifle or type == Entities.XD_SoldierRifle2_Rifle then DestroyEntity(id) end end
Ist es nicht so, dass du mit diesem Trigger alle auf einmal löschst?
____________________
Nachbau von Siedler 5 Lobbys "Ubi.Com"
Updatelösungen Siedler 5 Patch 1.06
Creators Update Lösung Windows 10
Siedler 5
mcb
|
#8 23.06.2018 13:50 Beiträge: 1472 |
Nicht wirklich. Der Trigger wird ausgeführt, wenn ein neues Entity erstellt wird. Das heißt, nachdem du den Trigger erstellst, werden keine neuen mehr liegenbleiben, aber alle alten die vorher schon irgendwo rumliegen bleiben da auch.
Seiten: 1