Whats the secret behind anti-delete?

 Catalytical


Join Date: 21 November 2013
Posts:5
Posted 9 May 2014 - 4:45 am
Create a bunch of junk triggers between it creating the thing you want to detect and the detect triggers. It may not have enough time to realize it's been created. I attempted to look at your triggers but then I got really tired. Anywho, I remember that throwing me off for a little while back in the day. Also, just find a scenario that has anti-delete in it and look at how they're programmed.

What exactly is a junk trigger? Like spawning a flag in the corner or something?
PIN3 wrote:
Here is a system Im doing on a CBA that Im working on, you can see if it helps you.
Same issue happens when I try this, the rams killing a tower sometimes count it as a delete. My guess is maybe too many towers are being killed too quickly or something? Starting to think that anti-delete might be more trouble than its worth :O
Link | Reply | Quote
 [GvR]Do0m


Join Date: 29 December 2009
Posts:306
Edited 9 May 2014 - 5:26 am by [GvR]Do0m
The Anti-Delete System you are Trying is not Perfect, it has some issues, like not Booting when you Delete. But it should not boot you when somebody else gets a Raze

This happens mainly due to lag, to counter this you must adjust the Anti-Delete System for some seconds to make sure no one is booted due to lag.

The Lag based trigger is Applied in CBA (v8 and above), you need to search that in Triggers but if you select it there is a chance some effects might not works so need to copy them in AOKTS very carefully.
Link | Reply | Quote
 knochenginni


Join Date: 27 April 2008
Posts:12
Edited 9 May 2014 - 6:47 am by knochenginni
This was the way it worked for me in the end.

The trick is that you detect the king only some seconds after the building was destroyed
to eliminate the chance that due to lag no hawk has been created yet.

Every raze a hawk will be created.

then i made this triggers:

Trigger 1: (for every building wich should be anti delete)
on / not looping.
condition 0: destroy object.
effect 0: create king
effect 1: task king
effect 2: activate Trigger 2
effect 3: activate trigger 3

Trigger 2: (for every player)
of/not looping
Condition 0: object in area : hawk
Effect 0: deactivate Trigger 3


Trigger 3: (for every player)
of/ not looping
condition 0: Object in area: king (some tiles away from the start)
effect 0: what ever i want to do with the deleter


Trigger 4:
on/ looping

effect 0: Remove king. (before his destination)
effect 1: Remove Hawk (some tiles from the start)
Link | Reply | Quote
 Catalytical


Join Date: 21 November 2013
Posts:5
Posted 9 May 2014 - 7:32 am
This was the way it worked for me in the end.

The trick is that you detect the king only some seconds after the building was destroyed
to eliminate the chance that due to lag no hawk has been created yet.

Every raze a hawk will be created.

then i made this triggers:

Trigger 1: (for every building wich should be anti delete)
on / not looping.
condition 0: destroy object.
effect 0: create king
effect 1: task king
effect 2: activate Trigger 2
effect 3: activate trigger 3

Trigger 2: (for every player)
of/not looping
Condition 0: object in area : hawk
Effect 0: deactivate Trigger 3


Trigger 3: (for every player)
of/ not looping
condition 0: Object in area: king (some tiles away from the start)
effect 0: what ever i want to do with the deleter


Trigger 4:
on/ looping

effect 0: Remove king. (before his destination)
effect 1: Remove Hawk (some tiles from the start)

This looks very promising, no false deletes on my ram test! Thank you so much!
Link | Reply | Quote
 BF_Basse


Join Date: 13 April 2009
Posts:560
Posted 22 May 2014 - 11:53 am
I implemented Basse's method but I'm still having the same issues. Out of about 50 tests I had around 6 where a raze was counted as a delete. I'm completely stumped as to what is making this happen. [You must login to view link] is how I'm doing it if anyone wants to take a look.

Take a look at my Kings Blood map, I've played it countless of times and I've never seen someone punished for deleting when their buildings were razed. It could be that the triggers Gallas quoted are not 100% correct, it's been many years since I last made any anti-delete triggers >.<

In Kings Blood, the anti-delete triggers looks exactly like this:
Quote:
Delete Detection 1:1 (On/Not looping)
C: Object Destroyed
C: Timer: 5
E: Activate Trigger: Delete Detection 1:2

Delete Detection 1:2 (Off/Not looping)
C: Timer: 6
E: Display Instructions
E: Kill Object
E: Send Tribute

Have Raze (On/Looping)
C: Accumulate Attribute: Raze 1
E: Activate Trigger: Razecounter
E: Create Object: Villager
E: Task Object: Villager
E: Send Chat: Villager created

Razecounter (Off/Not looping)
C: Accumulate Attribute: Raze 1
E: Send Tribute
E: Send Tribute
E: Send Tribute
E: Send Tribute
E: Change Object HP
E: Activate Trigger: Razing Made
E: Activate Trigger: Stop Raze

Razing Made (Off/Looping)
E: Deactivate Trigger: Delete Detection 1:2 (for all players and all buildings)

Stop Raze (On/Not looping)
C: Timer 6
E: Deactivate Trigger: Razing Made

I hope this helps.
Link | Reply | Quote
 Poppingoff


Join Date: 5 February 2017
Posts:1
Edited 23 March 2017 - 10:19 pm by Poppingoff
This was the way it worked for me in the end.

The trick is that you detect the king only some seconds after the building was destroyed
to eliminate the chance that due to lag no hawk has been created yet.

Every raze a hawk will be created.

then I made this triggers:

Trigger 1: (for every building wich should be anti-delete)
on / not looping.
condition 0: destroy object.
effect 0: create king
effect 1: task king
effect 2: activate Trigger 2
effect 3: activate trigger 3

Trigger 2: (for every player)
of/not looping
Condition 0: object in area : hawk
Effect 0: deactivate Trigger 3


Trigger 3: (for every player)
of/ not looping
condition 0: Object in area: king (some tiles away from the start)
effect 0: whatever I want to do with the deleted


Trigger 4:
on/ looping

effect 0: Remove king. (before his destination)
effect 1: Remove Hawk (some tiles from the start)

+1 this worked for me. Except I needed to add a couple things. You need to make an accumulative razing for each razing and each player up to your max razings in your map. Then create a razing deactivate 1 razing after the max in your map to stop the kill effect. Also each player needs to spawn their own kings, and the king removal has to be further than the kick detection. Great work otherwise
Link | Reply | Quote
 [MM]Zix


Join Date: 28 July 2015
Posts:91
Edited 9 November 2019 - 9:20 am by [MM]Zix
My method for anti delete:

Trigger 1: ON, loop
Effect: damage FLAGX by 1 HP

Trigger 2: ON, loop
Condition: Player has 1 raze
Effect: Players sends 1 raze to gaya
Effect: Create FLAGX (it has 1 HP)
Effect: dagame FLAGX by -1 HP (now it has 2 HP)

Trigger 3: ON
Condition: Destroy object: gate/tower
Condition: Object in area: FLAGX
Effect: deactivate trigger 4

Trigger 4: ON
Condition: Destroy object gate/tower
Effect: Do something against player
Link | Reply | Quote
 +[MM]jason


Join Date: 13 June 2013
Posts:354
Edited 9 December 2019 - 3:01 pm by +[MM]jason
After much trail and error, I believe I have found the perfect anti delete. Thanks Zix your triggers really helped me.
I discovered the raze trigger will sometimes fire on the next trigger cycle causing false positives, I have over come this.
You will also only need 1 trigger per building.

Trigger 1: ON, loop
Condition: Object in area Gaia map revealer - amount 1.
Effect: Create Gaia map revealer on same location.
You need 1 trigger per player and choose the location unique to each player.

Trigger 2: ON
Condition: Destroy bulilding
Effect: Create Gaia map revealer on same location as before specific to who owns the building.
Set for all buildings. You can also use own fewer objects.

Trigger 3, ON, loop
Condition: Accumulate raze.
Effect: Tribute raze to Gaia.
Effect: Remove map revealers from all players location set in other triggers.
If you are using the resources “Px razes” or “Razed by Px” you will need to only remove the map revealers of the player who was razed location.

Trigger 4, ON
Condition: Object in area 2 map revealers in players location.
Effect: Kill player.

Link | Reply | Quote
 Gallas


Join Date: 25 May 2011
Posts:2751
Posted 9 December 2019 - 6:28 pm
With [You must login to view link] from 1.5 you can prevent deleting, instead of punishing for it.

Example if you want the market an un-deleteable building then:

Trigger 1: ON, loop OFF
Effect: Display instruction
timer: 99999
number: 9
text: up-effect 0,0,84,54,64,1
Link | Reply | Quote
 [MM]Zix


Join Date: 28 July 2015
Posts:91
Edited 11 December 2019 - 7:11 pm by [MM]Zix
Here is also my new version of anti-delete (not tested in multiplayer yet, but works perfectly in singleplayer, even in Definitive Edition):

Trigger 1:
C: Own fewer Objects: P1, Class: Gate, Area: location of the gate
E: Gaya sends 1 [unused resource] to P1

Trigger 2, Loop (optional):
C: Accumulate Attribute: P2, "P1 razings", Amount: 4
C: P1 is enemy for P2
E: P2 sends 4 "P1 razings" to Gaya
E: P1 sends 4 [unused resource] to Gaya

Trigger 3, Loop (optional):
C: Accumulate Attribute: P2, "P1 razings", Amount: 2
C: P1 is enemy for P2
E: P2 sends 2 "P1 razings" to Gaya
E: P1 sends 2 [unused resource] to Gaya


Trigger 4, Loop:
C: Accumulate Attribute: P2, "P1 razings", Amount: 1
C: P1 is enemy for P2
E: P2 sends 1 "P1 razings" to Gaya
E: P1 sends 1 [unused resource] to Gaya

Trigger 5, Loop:
C: Accumulate attribute P1: [unused resource], Amount: 1
E: P1 sends 1 [unused resource] to Gaya
E: Do something against P1

Gallas wrote:
With [You must login to view link] from 1.5 you can prevent deleting, instead of punishing for it.
Sometimes it is not enough. If a player razes own/allied building with Onager or Cannon, there must be a penalty for that too. Also sometimes it is worth to delete, even of the cost of punishment (unless it is the booting of the player), just to get some extra free space.
Link | Reply | Quote
 [_MD_]DaGhostInside


Join Date: 21 September 2008
Posts:709
Posted 14 December 2019 - 11:54 pm
tenchy was the goat he knew more about it than anyone else
Link | Reply | Quote
 Icey


Join Date: 24 June 2007
Posts:1919
Posted 27 June 2020 - 10:08 am
FLAGS ARE ALWAYS THE BEST CHOICE>
YOU CAN CREATE THEM ANYWHERE AND THEY STACK>

When making detection triggers, FLAGS are the best choice in my opinion


Link | Reply | Quote
1[2]
Displaying 16 - 27 out of 27 posts
Forum Jump:
3 User(s) are reading this topic (in the past 30 minutes)
0 members, 3 guests

Most active threads in past week: