diff --git a/2001/ze_obff_npst_v24/defence.js b/2001/ze_obff_npst_v24/defence.js new file mode 100644 index 0000000..ecc20d8 --- /dev/null +++ b/2001/ze_obff_npst_v24/defence.js @@ -0,0 +1,128 @@ +//⠀⡐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠃⠀⠀⠀⠀⢀⢠⡀⠐⠂⠀⠀⠒⠒⠒⠠⠀⠠⠤⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +//⢠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⣠⠐⠌⠋⠑⣂⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +//⡄⠀⠀⠀⣰⡆⠀⠀⠀⠀⣠⠕⠏⠀⠀⠀⠀⠀⠀⠈⠉⠙⠲⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠀⡀⠀⠀⠀⠀⠀⠀ +//⠅⠀⠀⠐⠀⠇⠀⠀⢀⠞⠁⡠⠄⢀⠄⣀⣠⣤⣶⣶⣶⣾⣿⣿⣷⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢄⠀⠀⠀⠀ +//⠸⠀⠀⠀⠀⡀⠀⠐⠁⢠⠞⡁⣠⣶⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⣿⠿⠷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀ +// ⣆⢀⠀⢀⠀⠂⠀⢰⣯⣴⣿⣿⣿⣿⠿⠛⣉⠁⠀⢂⠀⠀⠀⠈⠃⠀⠈⢧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠃⡀⠀ +// ⠊⠳⣢⠁⠀⢠⣿⣿⣿⣿⠟⠉⠂⠀⠀⠠⠂⠀⠀⢂⠀⠀⠀⠀⠈⠂⠀⠱⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣀⠀⠀ +// ⠀⣰⠃⠀⠀⣾⣿⡿⢋⢿⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⢢⠀⠀⠀⠀⠀⠐⠀⠘⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠐⣂⠀ +// ⢤⠍⠀⠀⢰⣿⡟⠀⠸⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣆⠀⠀⠀⠀⠀⠈⢀⠈⠄⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⢂ +//⠀⠁⡾⠢⠀⠀⣼⢇⠁⠀⠀⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠋⡀⠀⠀⠀⠀⠀⠂⠘⡀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀ +//⢀⣸⡓⠀⠀⢀⡧⠈⠀⠀⠀⡄⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠈⠁⠀⢀⣀⣀⠀⠀⠰⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⠀⠀⠀ +//⣵⣟⠄⠀⠀⢸⡁⠂⠀⠀⠀⢀⠠⠀⠁⠀⠀⠀⠀⠀⠐⠀⠀⠐⠃⠉⠀⠀⢄⠀⠀⠀⠀⠉⣥⠀⠀⠀⢀⠀⠀⠀⠀⡄⠀⠀⠀⠀⠀⠀ +//⡧⣃⠈⠀⠰⢸⠁⠀⠀⠀⠘⠀⠂⠂⠠⠀⠀⠀⠀⠀⠀⠆⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠊⡄⠀⠀⠈⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀ +//⡼⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠌⠄⠀⠀⠀⠀⠀⠀⢰⠀⠀⢰⠀⠀⠀⠀⠀⠀⠀⠀⣐⠄⢱⠀⠀⠀⠀⠀⠀⠀⠈⠄⠀⠀⠀⠀⠀ +//⣏⠄⡇⠀⠀⠀⠀⠀⠀⢀⠔⠎⠀⡈⡌⠄⠀⠀⠀⠀⠆⢸⡄⡅⠸⠠⠔⡀⢅⣰⣤⣤⣾⣿⣷⣾⣤⢤⠀⠀⠀⠀⠀⢸⡀⠀⠀⠀⠀⠀ +//⠃⢀⠇⠀⠰⢠⡀⠀⠔⠁⠈⢠⠀⠠⠀⢊⠀⠀⠀⠀⠀⢸⠀⢀⠀⠐⡨⣶⢿⢿⣿⣿⣿⣿⣿⢻⡇⠀⠂⠄⠠⡀⣀⣸⡙⡀⠀⠀⠀⠀ +//⠉⡯⠀⠀⠀⠸⠁⠂⠀⠀⠀⡘⠤⠀⢆⠀⠱⡠⡀⠀⡀⠘⢠⠸⠄⠈⠊⠉⠀⠸⣽⣿⣿⣿⡿⠈⠇⠀⢈⠀⠀⠀⠀⠘⢇⠀⠀⠀⠀⠀ +//⠀⠀⠄⠀⠀⠀⡒⠠⠀⠀⠀⢀⠏⣀⠘⡂⠀⠈⠈⠦⠳⠸⠸⡤⠀⠀⠀⠀⠀⠀⠛⠛⠉⠉⠁⠀⠀⠀⠄⠀⠀⠀⠈⡜⠜⠀⠀⠀⠀⠀ +// ⢱⠡⠀⠀⠐⠐⠀⠄⠀⠀⠀⣠⣲⣦⡶⣶⡒⠀⢀⠬⠃⠈⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠑⠀⠈⠀⡄⠀⠀⠀⡀⢆⠀⢀⠀⠀⠀⠀⠀ +// ⢿⠐⠆⠀⡈⣁⠐⡐⠀⠀⣴⡾⠿⣷⣿⣿⣷⠇⠁⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠠⢁⣒⠁⠀⠀⢀⠠⠈⢀⡌⠀⠀⠀⠀⠀ +//⠀⠼⡆⠓⠄⠐⡀⠀⠐⡨⢟⣟⠖⡃⠘⢿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢑⠗⡂⠀⠀⠀⠌⠆⠑⢹⠐⠀⡄⠀⠀⠰ +//⠀⠀⡲⠈⢉⢀⠀⢍⡆⠘⢔⣿⢮⡁⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠜⠡⠀⠀⠀⡀⠼⡈⠀⢸⠀⠀⡇⠀⠀⠀ +// ⠀⠆⠆⠀⠦⡀⠀⠈⢑⣦⠲⡉⡳⡀⠀⠄⠀⠀⠀⠀⠀⠰⠿⠗⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠂⠀⠀⠄⡬⢲⠦⠀⡌⢰⡄⢇⠀⠀⠆ +// ⢱⣄⣀⠨⠐⠀⢀⣀⠙⣂⠉⢰⢖⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡂⡊⠀⡠⠂⠊⠑⠈⠐⠢⠱⡪⢂⠸⠀⠀⢠ +// ⣆⢤⡮⠋⠔⠁⠀⠈⠤⠀⢊⠈⠢⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠄⠀⣐⡙⠠⢪⠃⠀⠊⠀⠀⠀⠀⠀⢰⣕⡀⠀⠀⢠ +// ⡭⠋⠴⢁⠈⠘⠀⡀⠈⢖⠀⢢⠀⠀⢫⠀⠒⠀⢠⠄⠀⢀⢠⣴⢞⣡⣴⣶⣓⠀⢀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⡜⡍⠄⢠⢸ +//⠰⣄⢇⢟⠑⠃⢀⠀⠈⠐⠀⠀⠀⢀⠋⡼⠀⠨⢹⠂⠀⠠⠁⠄⠀⠀⢪⣿⣿⣿⣿⡑⠁⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⡘⢊⢸⡞ +//⠀⣻⡂⡀⠄⠀⠀⠈⠀⠀⠀⠠⠀⠀⠈⠣⠾⢣⡀⠉⠄⠀⠀⠁⡄⠀⠀⠸⡟⣫⠂⢀⢔⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠽⠺⣇ +//⡄⢱⣧⠰⠌⣠⠀⠀⠠⠀⠃⠀⠀⢀⠀⠑⠀⠤⡃⡲⡒⠒⢀⣶⠞⠉⢁⡀⠱⣱⣞⠑⣻⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠳⣿ +//⠘⡼⣵⡄⠾⠟⠊⠁⠀⠀⠀⠀⠀⠀⠀⠁⢡⢡⠷⢞⣳⢀⣿⠛⠤⠀⡀⡠⠎⠝⠉⣼⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠊⣇ +//⠈⠱⡀⠒⡐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠄⠀⠙⠡⠘⠻⠀⠀⠀⠉⠀⠈⠀⠀⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢙ +//⠀⠡⢱⣀⢡⡀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠶⠀⠀⠀⠀⠀⠸⡧⠇⠀⠀⠀⠀⠀⠀⢠⣿⣃⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +//⠀⠀⢿⢣⠠⢐⠀⠀⠀⠀⠈⡀⠀⠀⠐⠀⠀⠀⠀⠀⠀⢻⡶⢅⠄⠀⠀⠀⠀⠀⠘⡃⠀⠀⠀⠀⠀⠁⠂⠄⡀⠀⠀⠀⠀⠀⡀⠀⠀⠀ +//⠀⠀⢸⢌⠁⢇⠀⡀⠄⠐⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⢠⠡⢁⡀⡘⠀⠀⡀⠀⢀⠵⠪⠁⠀⠀⠉⠀⠀⠀⠐⠈⠐⠄⠀⠀⡐⠀⠀⠀⠀ +//⠀⢀⣾⢄⠀⠀⠑⠌⠀⠀⠀⠐⠁⠀⠀⠀⠀⠀⠀⠀⡄⡩⢈⠊⢢⡀⠐⠁⠠⠁⠠⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠈⠘⢅⠀⠀⠀⠀ +//⠀⢨⠏⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠣⡁⡀⢀⠀⢄⡖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠄⠀⠀⠢⠀⠀ +//⠀⢸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⡇⠈⠃⠡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⢀⠀⠁⠐⢀⠀⠁ +//⠀⠀⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠆⡄⠠⡀⠀⠀⠁⠠⠀⢀⠀⠠⠀⠀⠐⠁⠀⠁⠀⠀⠀⠀⠀⠀⠀⠂ +//⠀⠀⠀⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠅⠀⠀⠀⢈⢀⠄⠔⠠⠀⠐⠀⠈⠀⠀⠈⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⠀⠐ +//⠀⠀⠀⠘⡼⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡂⠀⠀⠰⠻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠀⠀⠀⠀⠀⠀⠀⠀⠀⡚⠀⠀⠀ +//⠀⠀⠀⠀⢠⠹⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠁⢨⠂⠅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀ +//⠀⠀⠀⠀⠀⡇⠄⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⡀⠀⠈⠀⠀⠛⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⢀⠁⠀⠀⠀⠀ +//⠀⠀⠀⠀⠀⣿⠴⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠌⠀⠀⢠⡄⠀⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠄⠀⠀⠀⠀⢀ +//⠀⠀⠀⠐⢀⠉⠗⡃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠁⠀⠀⠀⠌⠀⠀⠘⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠐⠀⠀⠀⠀⠔⠁ +//⠀⠀⠀⠀⠆⡀⢀⢚⡄⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠂⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠁⠀⠀⠀⠌⠁⠘ +//⠀⠀⠀⢠⣸⠃⡸⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⡄⠀⠀⠀⠀⠀⠀⡄⠀⠀⠀⠀⢠⠀⠡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠐⡀⢀⠖⠀⠀⠀ +//⠀⠀⠀⠈⠹⠀⠀⠀⠀⢃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠁⠀⠀⣠⣇⠠⠀⠂⠉ +//⠀⠀⠀⠀⡀⠀⡅⡆⠀⠀⢂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠁⠀⢀⠔⠁⠀⠀⠀⠀⠀ +//⠀⠀⠀⢰⠁⠀⢣⠃⠀⠀⠀⢂⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⡀⠀⠀⠀⠈⡀⠀⠀⠀⠀⠀⢀⠂⠀⠀⡰⠁⠀⠀⠀⠀⠀⠀⠀ +//⠀⠀⠀⠠⠀⠀⠓⠔⡀⠀⠀⠀⢂⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⡀⠀⠀⠀⡐⠂⠀⣠⠞⠦⠀⢀⠀⠀⠀⠀⠀⠀ +//⠀⠀⠀⠀⠀⡰⠐⢱⡀⠄⢀⠀⠀⢂⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠐⠀⠀⠀⢀⠞⠁⠀⠀⠀⠀⠀⠁⠀⠂⠀⠄ +//⠀⠀⠀⠀⠀⡧⠄⠡⢖⠐⡀⠀⡀⠀⠄⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠈⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ +//⠀⠀⠀⠀⠃⠃⠢⠀⠩⢆⠀⠄⠚⢤⣈⡄⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⣠⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ + +import { Instance } from "cs_script/point_script"; + +const Distance = 921; + +Instance.SetThink(EliminateFlyingEntity); + +Instance.OnScriptInput("Defence",() => { + const Time = Instance.GetGameTime(); + Instance.SetNextThink(Time); +}); + +Instance.OnBeforePlayerDamage(({ player, damage }) => { + + if (!player || !player.IsValid()) return; + + const playerPos = player.GetAbsOrigin(); + const TG = Instance.FindEntityByName("ItemEX_Scholar_Shield_Particle"); + const TGPos = TG.GetAbsOrigin(); + const Dis = VectorDistance(playerPos, TGPos); + + if (Dis < Distance && player.GetTeamNumber() == 3) { + return { damage: damage / 2 }; + } + else return { damage: damage }; +}); + +function EliminateFlyingEntity() { + const TG = Instance.FindEntityByName("Item_Scholar_Shield_Particle"); + if (!TG) return; + const C_O_D = Instance.FindEntityByName("ZM_C_O_D_Magic_Movelinear"); + const Storm = Instance.FindEntityByName("ZM_Storm_Movelinear"); + const Push = Instance.FindEntityByName("Storm_Push_System"); + const TGPos = TG.GetAbsOrigin(); + if (C_O_D) { + const Pos1 = C_O_D.GetAbsOrigin(); + const DisCOD = VectorDistance(TGPos, Pos1); + if (DisCOD < Distance) EliminateCOD(); + } + if (Storm) { + const Pos2 = Storm.GetAbsOrigin(); + const DisStorm = VectorDistance(TGPos, Pos2); + if (DisStorm < Distance) EliminateStorm(); + } + if (Push) { + const Pos3 = Push.GetAbsOrigin(); + const DisPush = VectorDistance(TGPos, Pos3); + if (DisPush < Distance) EliminatePush(); + } + const Time = Instance.GetGameTime(); + Instance.SetNextThink(Time); +} + +function EliminateCOD(){ + Instance.EntFireAtName({name: "ZM_C_O_D_Magic_Movelinear", input: "KillHierarchy"}); + Instance.EntFireAtName({ name: "ZM_C_O_D_Magic_Maker", input: "Kill"}); + return; +} + +function EliminateStorm(){ + Instance.EntFireAtName({name: "ZM_Storm_Movelinear", input: "KillHierarchy"}); + return; +} + +function EliminatePush(){ + Instance.EntFireAtName({name: "Storm_Push_System", input: "FireUser4"}); + return; +} + +function VectorDistance(vec1, vec2) { + const dx = vec1.x - vec2.x; + const dy = vec1.y - vec2.y; + const dz = vec1.z - vec2.z; + return Math.sqrt(dx * dx + dy * dy + dz * dz); +} \ No newline at end of file