Author Topic: Necrolyte, H&S Project  (Read 2698 times)

Offline Stinkyfax

  • I <3 WCS
  • Level 7 Expert
  • *****
  • Posts: 1977
    • WarCraft III Custom races and more Server
Necrolyte, H&S Project
« on: September 08, 2007, 12:51:37 PM »
Necrolyte ! ! (100% tested)
Hero was made by Stinkyfax and Holliday. Few ideas were taken from DotA map (warcraft TFT game).


Futures: every skill is customized and not standart. It's first race which is using wcs_dalias command and such skills like aura (a real aura, same as in warcraft III game).
Install:  Read FAQ for installation details: http://www.warcraft-source.com/board/index.php?topic=1263.0
All skills are tested and working, W0W!
"Deals extra damage based on enemy's lost hp|Cast shadow lightning to \ndamage and stun enemy, 5-17%.|Shadow Aura damages nearby enemies for 2-6 hp.|Creates a gigantic wave of sound which \ndeals heavy damage to all units in a line, \nHigher level - higher distance."
Skill 1 : Reaper's Scythe (Deals extra damage based on enemy's lost hp)
Skill 2 : Shadow Lightning (Cast shadow lightning to damage and stun enemy, 5-17%)
Skill 3 : Aura (Shadow Aura damages nearby enemies for 2-6 hp)
Skill 4 : Sonic Wave (Creates a gigantic wave of sound which deals heavy damage to all units in a line, Higher level - higher distance.)

Feedback is welcome.

Changelog:
Aura range has been nerfed, and now can be changed in _settings.
Fixed chance of skill 2.

[attachment deleted by admin - older than 200 days!]
« Last Edit: September 09, 2007, 12:01:23 PM by Stinkyfax »



Offline NovaKiller

  • <WCS coder>
  • Level 7 Expert
  • *****
  • Posts: 783
  • Loves WCS. Loves to make races. Loves to play WCS
    • |UbEr MiCrO ReVoLuTiOn|UMR|
Re: Necrolyte, H&S Project
« Reply #1 on: September 08, 2007, 04:56:05 PM »
Nice race. I like the Sonic Wave. Was it this one i should use to my Rocket Launcher??

Offline Frodo

  • Level 7 Expert
  • *****
  • Posts: 857
  • Actinosphaerium eichhorni
    • Belgium Force!
Re: Necrolyte, H&S Project
« Reply #2 on: September 08, 2007, 07:16:11 PM »
Aww... H&S = HOLLIDAY & StinkyFax? COOL THAT'S WHAT I EXPECTED.

And this is the race which i was thinking about "wtf is H&S" on your server (finally i connected !  :mrgreen: )

Skill 1: You mean if enemy got lower hp, you do more damage? Nice.
Skill 2: Just stun or + dmg? Can you give me screenshots of this? Only one guy played necrolyte on your server and usually i couldn't see the gfxses because i was already dead.
Skill 3: Does it say to the player that he hit someone with this? If yes (sorry i didn't read .txt - too lazy), you should delete messages that you hit someone and that you got hit by someone using Necrolyte... I think both would be/are useless: first, it would inform you about incoming enemy and campers, second, i think players aren't blind and they can see they got hp running away.

Btw how is delay?

Ultimate: Wow, it hits thru walls? I was just camping behind a door, there i was killed by this something first, then, on mcdonalds, i got hit thru a wall (or not?) and dead  :shock:

Anyway, good.

Edit: and don't try to make [TAG] again! Tags really suck and won't inform people that race is more customized or not. They should do it theirselves (themselves? how is it?)

Actually I found it as best Bux ever. Everything's automated!

Offline =[LSS]= Soldier

  • Level 7 Expert
  • *****
  • Posts: 538
    • Last Standing Soldier Homepage
Re: Necrolyte, H&S Project
« Reply #3 on: September 08, 2007, 07:28:53 PM »
In the .txt skill 2 and 4 are together

"skill3_sfx"        "0"
// wcs_max  - maximum distance ((variable + 1) * 250), wcs_tmp11  - damage dealth with 1 wave (person will get often 1-2 hits, don't set too high)
    "skill4_setting"    "es_xsetinfo wcs_max 4;es_xsetinfo wcs_tmp11 14|es_xsetinfo wcs_max

=[LSS]= NEW Wc3 Server

Offline NovaKiller

  • <WCS coder>
  • Level 7 Expert
  • *****
  • Posts: 783
  • Loves WCS. Loves to make races. Loves to play WCS
    • |UbEr MiCrO ReVoLuTiOn|UMR|
Re: Necrolyte, H&S Project
« Reply #4 on: September 08, 2007, 07:36:56 PM »
That i cant see

Offline Stinkyfax

  • I <3 WCS
  • Level 7 Expert
  • *****
  • Posts: 1977
    • WarCraft III Custom races and more Server
Re: Necrolyte, H&S Project
« Reply #5 on: September 08, 2007, 08:54:20 PM »
I answer your questions now.
There is no need to make empty string between skills (or it's a must?).
People are not blind but when they are concentrated most of them don't watch their HP.
This race is expected to be anti camper. You can damage camper with ultimate if know where he can be, you can damage him only by comming close and wait.
skill2 does stun and damage.
what means "how is delay?" Aura has 1.8 delay between ticks.
Ultimate can't go throw walls but it can hit throw walls if person is close enough to wall.
What [TAG] u're talking about?
Yes sonic wave can be modified to rocket launcher.



Offline HOLLIDAY

  • <Race Maker>
  • Moderator
  • Level 7 Expert
  • *****
  • Posts: 2384
  • Country: 00
  • of all the things ive lost i miss my mind the most
    • http://holliday.clanservers.com
Re: Necrolyte, H&S Project
« Reply #6 on: September 08, 2007, 09:43:03 PM »
Quote
i think players aren't blind and they can see they got hp running away.
« Last Edit: September 09, 2007, 01:09:09 PM by HOLLIDAY »


Offline Maxxi

  • Level 7 Expert
  • *****
  • Posts: 1486
Re: Necrolyte, H&S Project
« Reply #7 on: March 12, 2009, 11:10:52 AM »
you missed the part were you make wcs_dalias a cmd

Code: [Select]
////////////////////////////////////////
// WCS - Warcraft:Source              //
// ---------------------------------- //
//  by kRypT0n!Te                     //
//      http://wc3source.de           //
// ---------------------------------- //
// Content of this subscript          //
// - all ultimates                    //
////////////////////////////////////////
// commands:
// wcs_mole_activate <userid>
// wcs_regeneration <userid> <amount> <time> <maxHP> <maxHeal> <radius>
// wcs_warden  <userid> <duration> <damage> <radius> <target team> <team target name> <x> <y> <z> <round>
//
////////////////////////////////////////
// You can define here new ultimates, then use the command
// es_xdoblock wcs/WCSultimates/wcs_YOURSCRIPT
// to execute wcs_YOURSCRIPT block.
//

block load
{
  es_xexists ex command wcs_mole_activate
  if (server_var(ex) = 0) then es_xregcmd wcs_mole_activate wcs/WCSultimates/wcs_mole_activate "A player becomes a mole"
  es_xexists ex command wcs_regeneration
  if (server_var(ex) = 0) then es_xregcmd wcs_regeneration wcs/WCSultimates/wcs_regeneration "wcs_regeneration <userid> <amount> <time> <maxHP> <maxHeal> <radius> - Regenerate player for the current round"
  es_xexists ex command wcs_warden
  if (server_var(ex) = 0) then es_xregcmd wcs_warden wcs/WCSultimates/wcs_warden "Warden, deals damage on nearby enemies"
  es_xexists wcs_exists command wcs_dalias
  es es_xif (server_var(wcs_exists) = 0) then es_xregcmd wcs_dalias wcs/WCSultimates/wcs_dalias "Executes alias with delay without loosing data"
  es_xset wcs_maxhp 0
  es_xset wcs_maxheal 0
  // new event
  es_xloadevents declare addons/eventscripts/wcs/WCSultimates/es_WCSultimates.res
}

// >>>>>>>>>>>>>>>>> SPECIAL ULTIMATE SKILL CODE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
block wcs_ulti_teleport
{
wcs_debuglog wcs_ulti_teleport start
  // alot of calculations....does anyone know what I'm doing here ?
  es_xset wcs_ok 1
  es est_GetViewCoord server_var(wcs_userid) wcs_x1 wcs_y1 wcs_z1
  es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_userid)
  //es_mathparse wcs_x "abs ( wcs_x1 - wcs_x2 )"
  //es_mathparse wcs_y "abs ( wcs_y1 - wcs_y2 )"
  //es_mathparse wcs_z "abs ( wcs_z1 - wcs_z2 )"
  es_xcopy wcs_x wcs_x1
  es_xcopy wcs_y wcs_y1
  es_xcopy wcs_z wcs_z1
  es_math wcs_x - server_var(wcs_x2)
  es_math wcs_y - server_var(wcs_y2)
  es_math wcs_z - server_var(wcs_z2)
  if (server_var(wcs_x) < 0) then es_xmath wcs_x * -1
  if (server_var(wcs_y) < 0) then es_xmath wcs_y * -1
  if (server_var(wcs_z) < 0) then es_xmath wcs_z * -1
  ifx parse("(wcs_range < wcs_x) or (wcs_range < wcs_y) or (wcs_range < wcs_z)") do
  {
    es_xset wcs_ok 0
  }
  // invisible while teleporting! (thx Lupus)
  es_keygetvalue wcs_tmp WCSuserdata server_var(wcs_userid) invisp
  if (server_var(wcs_tmp) != 0) do
  {
    es_xmath wcs_tmp float
    es_xmath wcs_tmp - 100
    es_xmath wcs_tmp * -2.55;
    es est_rounddecimal wcs_tmp server_var(wcs_tmp) 0;
    es est_setplayercolor server_var(wcs_userid) 255 255 255 0 1
    es_delayed 1 est_setplayercolor server_var(wcs_userid) 255 255 255 server_var(wcs_tmp) 1
  }
  ifx true(wcs_ok) do
  {
    ifx false(wcs_noskywalking) do
    {
      es_exists ex command "ma_teleport"
      if (server_var(ex) = 1) then ma_teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
      if (server_var(ex) != 1) then est_Teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
    }
    if (server_var(wcs_noskywalking) = "1") then est_PushTo server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) "2"
    wcs_getlanguage "wcs_lng" "wcs_lng_teleported"
    es_tell server_var(wcs_userid) #multi server_var(wcs_lng)
    es est_Fade server_var(wcs_userid) 0 server_var(wcs_fadetimer) 1 0 0 0 250
  }
  es_xelse do
  {
    // one or more vectors are too long to teleport .... damn math...
    if (server_var(wcs_range) < server_var(wcs_x)) do
    {
     
      if (server_var(wcs_x2) >= 0) do
      {
        if (server_var(wcs_x1) >= 0) do
        {
          if (server_var(wcs_x2) <= server_var(wcs_x1)) then es_xmath wcs_x2 + server_var(wcs_range)
          if (server_var(wcs_x2) > server_var(wcs_x1)) then es_xmath wcs_x2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_x2 - server_var(wcs_range)
        }
      }
      es_xelse do
      {
        if (server_var(wcs_x1) < 0) do
        {
          if (server_var(wcs_x2) <= server_var(wcs_x1)) then es_xmath wcs_x2 + server_var(wcs_range)
          if (server_var(wcs_x2) > server_var(wcs_x1)) then es_xmath wcs_x2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_x2 + server_var(wcs_range)
        }       
      }
      es_xcopy wcs_x1 wcs_x2
    }
    if (server_var(wcs_range) < server_var(wcs_y)) do
    {
      if (server_var(wcs_y2) >= 0) do
      {
        if (server_var(wcs_y1) >= 0) do
        {
          if (server_var(wcs_y2) <= server_var(wcs_y1)) then es_xmath wcs_y2 + server_var(wcs_range)
          if (server_var(wcs_y2) > server_var(wcs_y1)) then es_xmath wcs_y2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_y2 - server_var(wcs_range)
        }
      }
      es_xelse do
      {
        if (server_var(wcs_y1) < 0) do
        {
          if (server_var(wcs_y2) <= server_var(wcs_y1)) then es_xmath wcs_y2 + server_var(wcs_range)
          if (server_var(wcs_y2) > server_var(wcs_y1)) then es_xmath wcs_y2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_y2 + server_var(wcs_range)
        }       
      }
      es_xcopy wcs_y1 wcs_y2
    }
    if (server_var(wcs_range) < server_var(wcs_z)) do
    {
      if (server_var(wcs_z2) >= 0) do
      {
        if (server_var(wcs_z1) >= 0) do
        {
          if (server_var(wcs_z2) <= server_var(wcs_z1)) then es_xmath wcs_z2 + server_var(wcs_range)
          if (server_var(wcs_z2) > server_var(wcs_z1)) then es_xmath wcs_z2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_z2 - server_var(wcs_range)
        }
      }
      es_xelse do
      {
        if (server_var(wcs_z1) < 0) do
        {
          if (server_var(wcs_z2) <= server_var(wcs_z1)) then es_xmath wcs_z2 + server_var(wcs_range)
          if (server_var(wcs_z2) > server_var(wcs_z1)) then es_xmath wcs_z2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_z2 + server_var(wcs_range)
        }       
      }
      es_xcopy wcs_z1 wcs_z2
    }
    ifx false(wcs_noskywalking) do
    {
      es_exists ex command "ma_teleport"
      if (server_var(ex) = 1) then ma_teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
      if (server_var(ex) != 1) then est_Teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
    }
    if (server_var(wcs_noskywalking) = "1") then est_PushTo server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) "1"
    wcs_getlanguage "wcs_lng" "wcs_lng_toofaraway"
    es_tell server_var(wcs_userid) #multi server_var(wcs_lng)
    es est_Fade server_var(wcs_userid) 0 server_var(wcs_fadetimer) 0.2 0 0 0 220
  }
wcs_debuglog wcs_ulti_teleport end
}

block wcs_ulti_suicide
{
wcs_debuglog wcs_ulti_suicide start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      alias wcs_run_ulti_suicide1 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_suicide2;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_suicide2 "es_xmath wcs_counter + 1;es wcs_explode server_var(wcs_userid) server_var(wcs_targetid) server_var(wcs_magnitude) server_var(wcs_radius)"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_run_ulti_suicide1"
      // no more needed
      //if (server_var(wcs_counter) > 0) then wcs_explode server_var(wcs_userid) server_var(wcs_userid) server_var(wcs_magnitude) server_var(wcs_radius)
    }
  }
wcs_debuglog wcs_ulti_suicide end
}

block wcs_ulti_flash
{
wcs_debuglog wcs_ulti_flash start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      alias wcs_run_ulti_flash1 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_flash2;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_flash2 "es_xmath wcs_counter + 1;es est_fade server_var(wcs_targetid) 0 1.5 0 255 255 255 255"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_run_ulti_flash1"
    }
  }
wcs_debuglog wcs_ulti_flash end
}

block wcs_ulti_chain
{
wcs_debuglog wcs_ulti_chain start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      es est_Fade server_var(wcs_userid) 0 2 1 240 240 240 100
      es_xset wcs_wall "1"
      alias wcs_run_ulti_chain1 "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es_xmath wcs_z1 + 50;es_xmath wcs_z2 + 50;es est_getwallbetween wcs_wall server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2);if (server_var(wcs_wall) = 0) then wcs_run_ulti_chain2"
      alias wcs_run_ulti_chain2 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_chain3;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_chain3 "es_xmath wcs_counter + 1;if (server_var(wcs_graphicfx) = 1) then est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 10 200 255 255 255;es wcs_dealdamage server_var(wcs_userid) server_var(wcs_targetid) 32"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then es_xif (server_var(wcs_counter) < server_var(wcs_maxtargets)) then wcs_run_ulti_chain1"
      if (server_var(wcs_counter) > 0) do
      {
        wcs_getlanguage "wcs_lng" "wcs_lng_chainlightning"
        wcs_getlanguage "wcs_lng2" "wcs_lng_playersdamaged"
        esnq est_csay server_var(wcs_userid) server_var(wcs_lng) : server_var(wcs_counter) server_var(wcs_lng2)
      }
      es_xelse do
      {
        es_xset wcs_ultinotexec 1
      }
    }
    es_xelse do
    {
      es_xset wcs_ultinotexec 1
    }
  }
  wcs_getlanguage "wcs_lng" "wcs_lng_chainfailed"
  if (server_var(wcs_ultinotexec) = 1) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng)
wcs_debuglog wcs_ulti_chain end
}

block wcs_ulti_roots
{
wcs_debuglog wcs_ulti_roots start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      es est_Fade server_var(wcs_userid) 0 1 1 10 55 5 200
      es_xset wcs_wall "1"
      alias wcs_run_ulti_roots1 "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es_xmath wcs_z1 + 50;es_xmath wcs_z2 + 50;es est_getwallbetween wcs_wall server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2);if (server_var(wcs_wall) = 0) then wcs_run_ulti_roots2"
      alias wcs_run_ulti_roots2 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_roots3;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_roots3 "es_xmath wcs_counter + 1;es est_Freeze server_var(wcs_targetid) 1;es_delayed server_var(wcs_freezetime) wcs_removefx freeze server_var(wcs_targetid);if (server_var(wcs_graphicfx) = 1) then est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 10 0 255 0 255"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_run_ulti_roots1"
      if (server_var(wcs_counter) > 0) do
      {
        wcs_getlanguage "wcs_lng" "wcs_lng_entangleroots"
        esnq est_csay server_var(wcs_userid) server_var(wcs_lng) : server_var(wcs_counter)
      }
      es_xelse do
      {
        es_xset wcs_ultinotexec 1
      }
    }
    es_xelse do
    {
      es_xset wcs_ultinotexec 1
    }
  }
  wcs_getlanguage "wcs_lng" "wcs_lng_entanglefailed"
  if (server_var(wcs_ultinotexec) = 1) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng)
wcs_debuglog wcs_ulti_roots end
}

block wcs_regeneration
{
if (server_var(wcs_debug) = 1) then profile begin regeneration
  es_xgetargv wcs_uid 1
  es_xgetargv wcs_amount 2
  es_xgetargv wcs_time 3
  es_xgetargv wcs_maxhp 4
  es_xgetargv wcs_maxheal 5
  es_xgetargv wcs_radius 6
  es_exists ex key WCSuserdata server_var(wcs_uid)
  ifx parse("(ex == 1) and (wcs_time >= 1)") do
  {
    es_xset wcs_regenerate 0
    es_keygetvalue wcs_regenerate WCSuserdata server_var(wcs_uid) regeneration
    es_keygetvalue wcs_round WCSuserdata server_var(wcs_uid) regen_round
    ifx parse("(wcs_regenerate == 1) and (wcs_roundcounter == wcs_round)") do
    {
      es_getplayerprop wcs_dead server_var(wcs_uid) "CCSPlayer.baseclass.pl.deadflag"
      ifx parse("((wcs_maxheal > 0) or (wcs_maxheal == -1)) and (wcs_dead == 0)") do
      {
        es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_uid)
        if (server_var(wcs_maxheal) != -1) then es_xif (server_var(wcs_maxheal) != 0) then es_xmath wcs_maxheal - 1
        // check for team healing or single person
        ifx true(wcs_radius) do
        {
          es_getplayerteam wcs_team server_var(wcs_uid)
          // check teams (T=2, CT=3)
          if (server_var(wcs_team) = 2) then es_xset wcs_team "#t!d"
          if (server_var(wcs_team) = 3) then es_xset wcs_team "#c!d"
          es_xmath wcs_z1 + 50
          wcs_getlanguage "wcs_lng" "wcs_lng_healed"
          alias wcs_run_heal "es est_sethealth server_var(wcs_targetid) server_var(wcs_health);es_tell server_var(wcs_targetid) #multi server_var(wcs_lng);es est_fade server_var(wcs_targetid) 0 0.4 0 0 200 25 50;es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es_xmath wcs_z2 + 50;es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 2 2 0 255 0 255"
          es est_Near wcs_targetid server_var(wcs_team) server_var(wcs_radius) server_var(wcs_uid) "es est_gethealth wcs_health server_var(wcs_targetid);es_math wcs_health + server_var(wcs_amount);if (server_var(wcs_maxhp) > 0) then es_xif (server_var(wcs_maxhp) >= server_var(wcs_health)) then wcs_run_heal;if (server_var(wcs_maxhp) = 0) then wcs_run_heal"
          es_delayed server_var(wcs_time) wcs_regeneration server_var(wcs_uid) server_var(wcs_amount) server_var(wcs_time) server_var(wcs_maxhp) server_var(wcs_maxheal) server_var(wcs_radius)
        }
        es_xelse do
        {
          es est_GetHealth wcs_health server_var(wcs_uid)
          es_math wcs_health + server_var(wcs_amount)
          if (server_var(wcs_maxhp) > 0) then es_xif (server_var(wcs_maxhp) >= server_var(wcs_health)) then est_SetHealth server_var(wcs_uid) server_var(wcs_health)
          if (server_var(wcs_maxhp) = 0) then est_SetHealth server_var(wcs_uid) server_var(wcs_health)
          es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_uid)
          es_xmath wcs_z2 + 200
          es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 2 2 0 255 0 255
          wcs_getlanguage "wcs_lng" "wcs_lng_healed"
          es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
          es_delayed server_var(wcs_time) wcs_regeneration server_var(wcs_uid) server_var(wcs_amount) server_var(wcs_time) server_var(wcs_maxhp) server_var(wcs_maxheal) "0"
        }
      }
    }
    es_xelse do
    {
      es_keysetvalue WCSuserdata server_var(wcs_uid) regen_round 0
    }
  }
if (server_var(wcs_debug) = 1) then profile end regeneration
}

block wcs_warden
{
wcs_debuglog wcs_warden start
  es_xset wcs_uid 0
  es_xset wcs_duration 0
  es_xset wcs_dmg 0
  es_xset wcs_radius 0
  es_xset wcs_team_target 0
  es_xset wcs_wardenround 0
  es_xgetargv wcs_uid 1
  es_xgetargv wcs_duration 2
  es_xgetargv wcs_dmg 3
  es_xgetargv wcs_radius 4
  es_xgetargv wcs_team_target 5
  es_xgetargv wcs_team_targetn 6
  es_xgetargv wcs_x1 7
  es_xgetargv wcs_y1 8
  es_xgetargv wcs_z1 9
  es_xgetargv wcs_wardenround 10
  es_exists ex userid server_var(wcs_uid)
  es_getlivingplayercount wcs_alive server_var(wcs_team_target)
  ifx parse("(wcs_alive >= 1) and (wcs_wardenround == wcs_wardencounter) and ex and (wcs_duration > 0) and (wcs_radius != 0) and (wcs_team_target != 0)") do
  {
    es wcs_debuglog warden deals damage round server_var(wcs_wardenround) duration server_var(wcs_duration)
  es_xset wcs_sward_invul 0
es_xset wcs_sward_resist 0
    es est_Effect 10 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 20 server_var(wcs_radius) 1 20 100 1 255 150 70 100 10
    //es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_uid) "es wcs_dealdamage server_var(wcs_uid) server_var(wcs_targetid) server_var(wcs_dmg);es_tell server_var(wcs_targetid) #multi server_var(wcs_lng_wardenhit);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 20 255 150 70 255"
    es_xset wcs_wall 1
    wcs_getlanguage "wcs_lng" "wcs_lng_wardenhit"
    alias wcs_run_warden "es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es est_getwallbetween wcs_wall server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2);es_keygetvalue wcs_sward_invul WCSuserdata server_var(wcs_targetid) swardinvul;es_keygetvalue wcs_sward_resist WCSuserdata server_var(wcs_targetid) swardresist;if (server_var(wcs_sward_invul) = 1) then shopalias_asw1_off;if (server_var(wcs_wall) = 0) then es_xif (server_var(wcs_sward_invul) = 0) then wcs_run_warden2"
  alias wcs_run_warden2 "es_xcopy wcs_damage wcs_dmg;if (server_var(wcs_sward_resist) != 0) then es_xmath wcs_damage / 2;es est_speed server_var(wcs_targetid) 0.7;if (server_var(wcs_speed) != 0) then es_xdelayed 2 wcs_removefx speed server_var(wcs_targetid);es wcs_dealdamage server_var(wcs_uid) server_var(wcs_targetid) server_var(wcs_damage);es_tell server_var(wcs_targetid) #multi server_var(wcs_lng);es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 20 255 150 70 255"
    es nearcoord wcs_targetid server_var(wcs_team_targetn) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_radius) server_var(wcs_radius) server_var(wcs_radius) "es_getplayerprop wcs_dead server_var(wcs_targetid) CCSPlayer.baseclass.pl.deadflag;if (server_var(wcs_dead) = 0) then wcs_run_warden"
    es_xmath wcs_duration - 1
    es_delayed 1 wcs_warden server_var(wcs_uid) server_var(wcs_duration) server_var(wcs_dmg) server_var(wcs_radius) server_var(wcs_team_target) server_var(wcs_team_targetn) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_wardenround)
  }
wcs_debuglog wcs_warden end
}

block wcs_mole_activate
{
wcs_debuglog wcs_mole_activate start
  es_xset wcs_uid 0
  es_xgetargv wcs_uid 1
  es_exists ex userid server_var(wcs_uid)
  if (server_var(ex) = 1) do
  {
    es_xset wcs_team_target 0
    es_getplayerteam wcs_team server_var(wcs_uid)
    // check teams (T=2, CT=3)
    if (server_var(wcs_team) = 2) do
    {
      es_xset wcs_team_target 3
      es_xset wcs_team_targetn "#c!d"
    }
    if (server_var(wcs_team) = 3) do
    {
      es_xset wcs_team_target 2
      es_xset wcs_team_targetn "#t!d"
    }
    if (server_var(wcs_team_target) != "0") do
    {
      es_xset wcs_pcount 0
      es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
      if (server_var(wcs_pcount) > 0) do
      {
        es_xset wcs_player 0
        if(server_var(wcs_game) = server_var(wcs_game_css)) then es_xif (server_var(wcs_team) = 3) then est_SetModel server_var(wcs_uid) "player/t_phoenix"
        if(server_var(wcs_game) = server_var(wcs_game_css)) then es_xif (server_var(wcs_team) = 2) then est_SetModel server_var(wcs_uid) "player/ct_urban"
        if(server_var(wcs_game) = server_var(wcs_game_dods)) then es_xif (server_var(wcs_team) = 2) then est_SetModel server_var(wcs_uid) "player/german_assault"
        if(server_var(wcs_game) = server_var(wcs_game_dods)) then es_xif (server_var(wcs_team) = 3) then est_SetModel server_var(wcs_uid) "player/american_assault"
        es est_RandPlayer wcs_player server_var(wcs_team_targetn)
        es_exists ex userid server_var(wcs_player)
        if (server_var(ex) = 1) do
        {
          //es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
          //es_xmath wcs_x + 40
          //es_xmath wcs_y + 40
          // new pos
          if (server_var(wcs_team) = 2) do
          {
            if (server_var(wcs_location_c) != "0") do
            {
            es_token wcs_x server_var(wcs_location_c) 1 |
            es_token wcs_y server_var(wcs_location_c) 2 |
            es_token wcs_z server_var(wcs_location_c) 3 |
            }
            es_xelse do
            {
              es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
            }
          }
          if (server_var(wcs_team) = 3) do
          {
            if (server_var(wcs_location_t) != "0") do
            {
            es_token wcs_x server_var(wcs_location_t) 1 |
            es_token wcs_y server_var(wcs_location_t) 2 |
            es_token wcs_z server_var(wcs_location_t) 3 |
            }
            es_xelse do
            {
              es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
            }
          }
          // new, delayed teleport
          es_set wcs_tmp server_var(mp_freezetime)
          es_xmath wcs_tmp + 3
          wcs_getlanguage "wcs_lng" "wcs_lng_moledelay"
          es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
          es_delayed server_var(mp_freezetime) es_xtell server_var(wcs_uid) #multi server_var(wcs_lng)
          es_delayed server_var(wcs_tmp) est_Teleport server_var(wcs_uid) server_var(wcs_x) server_var(wcs_y) server_var(wcs_z)
          es_keysetvalue "WCSuserdata" server_var(wcs_uid) "ismole" "1"
        }
        wcs_getlanguage "wcs_lng" "wcs_lng_mole"
        es_delayed server_var(mp_freezetime) es_xtell server_var(wcs_uid) #multi server_var(wcs_lng)
      }
      es_xelse do
      {
        wcs_getlanguage "wcs_lng" "wcs_lng_molefailed"
        es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
      }
    }
    es_xelse do
    {
      wcs_getlanguage "wcs_lng" "wcs_lng_molefailed"
      es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
    }
  }
wcs_debuglog wcs_mole_activate end
}

block wcs_ability_warden
{
  es_xset wcs_params 0
  es_keygetvalue wcs_params WCSuserdata server_var(wcs_userid) "ability_parameter"
  if (server_var(wcs_params) != "0") do
  {
  es_getplayerteam wcs_team server_var(wcs_userid)
  // colored wards, thanks to Sol | Pikachu
  es_xset wcs_color "10 0 255 70"
  ifx parse("wcs_team == 2") do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#ct"
    es_xset wcs_color "255 0 10 150"
  }
  ifx parse("wcs_team == 3") do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t"
    es_xset wcs_color "10 0 255 150"
  }
              es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid)
              es_xset wcs_duration 0
              es_token wcs_duration server_var(wcs_params) 1 "_"
              ifx true(wcs_graphicfx) do
              {
                es_xcopy wcs_x2 wcs_x1
                es_xcopy wcs_y2 wcs_y1
                es_xcopy wcs_z2 wcs_z1
                es_xmath wcs_z1 + 120
                esnq est_Effect 11 #a 0 "sprites/purpleglow1.vmt" server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_duration) 2 50
                esnq est_Effect 3 #a 0 "sprites/lgtning.vmt" server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) server_var(wcs_duration) 20 20 server_var(wcs_color)
                es_xmath wcs_z1 - 120
              }
              es_token wcs_dmg server_var(wcs_params) 2 "_"
              es_token wcs_radius server_var(wcs_params) 3 "_"
              es wcs_warden server_var(wcs_userid) server_var(wcs_duration) server_var(wcs_dmg) server_var(wcs_radius) server_var(wcs_team_target) server_var(wcs_team_targetn) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_wardencounter)
              wcs_getlanguage "wcs_lng" "wcs_lng_wardencreated"
              es_tell server_var(wcs_userid) #multi server_var(wcs_lng)
            }
}


block wcs_dalias
{

if (server_var(wcs_debug) = "1") then echo wcs_dalias start
  es_xsetinfo wcs_tmp1 0
es_xsetinfo wcs_tmp2 0
es_xsetinfo wcs_tmp3 0
es_xsetinfo wcs_tmp4 0
es_xsetinfo wcs_tmp5 0
  es_xsetinfo wcs_tmp6 0
es_xsetinfo wcs_tmp7 0
es_xsetinfo wcs_tmp8 0
es_xsetinfo wcs_tmp9 0
es_xsetinfo wcs_tmp10 0
  es_xsetinfo wcs_tmp11 0
es_xsetinfo wcs_tmp12 0
es_xsetinfo wcs_tmp13 0
es_xsetinfo wcs_tmp14 0
es_xsetinfo wcs_tmp15 0
es_xgetargv wcs_tmp1 1
es_xgetargv wcs_tmp2 2
es_xgetargv wcs_tmp3 3
es_xgetargv wcs_tmp4 4
es_xgetargv wcs_tmp5 5
es_xgetargv wcs_tmp6 6
es_xgetargv wcs_tmp7 7
es_xgetargv wcs_tmp8 8
es_xgetargv wcs_tmp9 9
es_xgetargv wcs_tmp10 10
es_xgetargv wcs_tmp11 11
es_xgetargv wcs_tmp12 12
es_xgetargv wcs_tmp13 13
es_xgetargv wcs_tmp14 14
es_xgetargv wcs_tmp15 15
es server_var(wcs_tmp1)
if (server_var(wcs_debug) = "1") then echo wcs_dalias end
}
// <<<<<<<<<<<<<<<<< END ULTIMATE SKILL CODE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


this should work

Offline Stinkyfax

  • I <3 WCS
  • Level 7 Expert
  • *****
  • Posts: 1977
    • WarCraft III Custom races and more Server
Re: Necrolyte, H&S Project
« Reply #8 on: March 12, 2009, 01:28:12 PM »
you missed the part were you make wcs_dalias a cmd

Code: [Select]
////////////////////////////////////////
// WCS - Warcraft:Source              //
// ---------------------------------- //
//  by kRypT0n!Te                     //
//      http://wc3source.de           //
// ---------------------------------- //
// Content of this subscript          //
// - all ultimates                    //
////////////////////////////////////////
// commands:
// wcs_mole_activate <userid>
// wcs_regeneration <userid> <amount> <time> <maxHP> <maxHeal> <radius>
// wcs_warden  <userid> <duration> <damage> <radius> <target team> <team target name> <x> <y> <z> <round>
//
////////////////////////////////////////
// You can define here new ultimates, then use the command
// es_xdoblock wcs/WCSultimates/wcs_YOURSCRIPT
// to execute wcs_YOURSCRIPT block.
//

block load
{
  es_xexists ex command wcs_mole_activate
  if (server_var(ex) = 0) then es_xregcmd wcs_mole_activate wcs/WCSultimates/wcs_mole_activate "A player becomes a mole"
  es_xexists ex command wcs_regeneration
  if (server_var(ex) = 0) then es_xregcmd wcs_regeneration wcs/WCSultimates/wcs_regeneration "wcs_regeneration <userid> <amount> <time> <maxHP> <maxHeal> <radius> - Regenerate player for the current round"
  es_xexists ex command wcs_warden
  if (server_var(ex) = 0) then es_xregcmd wcs_warden wcs/WCSultimates/wcs_warden "Warden, deals damage on nearby enemies"
  es_xexists wcs_exists command wcs_dalias
  es es_xif (server_var(wcs_exists) = 0) then es_xregcmd wcs_dalias wcs/WCSultimates/wcs_dalias "Executes alias with delay without loosing data"
  es_xset wcs_maxhp 0
  es_xset wcs_maxheal 0
  // new event
  es_xloadevents declare addons/eventscripts/wcs/WCSultimates/es_WCSultimates.res
}

// >>>>>>>>>>>>>>>>> SPECIAL ULTIMATE SKILL CODE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
block wcs_ulti_teleport
{
wcs_debuglog wcs_ulti_teleport start
  // alot of calculations....does anyone know what I'm doing here ?
  es_xset wcs_ok 1
  es est_GetViewCoord server_var(wcs_userid) wcs_x1 wcs_y1 wcs_z1
  es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_userid)
  //es_mathparse wcs_x "abs ( wcs_x1 - wcs_x2 )"
  //es_mathparse wcs_y "abs ( wcs_y1 - wcs_y2 )"
  //es_mathparse wcs_z "abs ( wcs_z1 - wcs_z2 )"
  es_xcopy wcs_x wcs_x1
  es_xcopy wcs_y wcs_y1
  es_xcopy wcs_z wcs_z1
  es_math wcs_x - server_var(wcs_x2)
  es_math wcs_y - server_var(wcs_y2)
  es_math wcs_z - server_var(wcs_z2)
  if (server_var(wcs_x) < 0) then es_xmath wcs_x * -1
  if (server_var(wcs_y) < 0) then es_xmath wcs_y * -1
  if (server_var(wcs_z) < 0) then es_xmath wcs_z * -1
  ifx parse("(wcs_range < wcs_x) or (wcs_range < wcs_y) or (wcs_range < wcs_z)") do
  {
    es_xset wcs_ok 0
  }
  // invisible while teleporting! (thx Lupus)
  es_keygetvalue wcs_tmp WCSuserdata server_var(wcs_userid) invisp
  if (server_var(wcs_tmp) != 0) do
  {
    es_xmath wcs_tmp float
    es_xmath wcs_tmp - 100
    es_xmath wcs_tmp * -2.55;
    es est_rounddecimal wcs_tmp server_var(wcs_tmp) 0;
    es est_setplayercolor server_var(wcs_userid) 255 255 255 0 1
    es_delayed 1 est_setplayercolor server_var(wcs_userid) 255 255 255 server_var(wcs_tmp) 1
  }
  ifx true(wcs_ok) do
  {
    ifx false(wcs_noskywalking) do
    {
      es_exists ex command "ma_teleport"
      if (server_var(ex) = 1) then ma_teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
      if (server_var(ex) != 1) then est_Teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
    }
    if (server_var(wcs_noskywalking) = "1") then est_PushTo server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) "2"
    wcs_getlanguage "wcs_lng" "wcs_lng_teleported"
    es_tell server_var(wcs_userid) #multi server_var(wcs_lng)
    es est_Fade server_var(wcs_userid) 0 server_var(wcs_fadetimer) 1 0 0 0 250
  }
  es_xelse do
  {
    // one or more vectors are too long to teleport .... damn math...
    if (server_var(wcs_range) < server_var(wcs_x)) do
    {
     
      if (server_var(wcs_x2) >= 0) do
      {
        if (server_var(wcs_x1) >= 0) do
        {
          if (server_var(wcs_x2) <= server_var(wcs_x1)) then es_xmath wcs_x2 + server_var(wcs_range)
          if (server_var(wcs_x2) > server_var(wcs_x1)) then es_xmath wcs_x2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_x2 - server_var(wcs_range)
        }
      }
      es_xelse do
      {
        if (server_var(wcs_x1) < 0) do
        {
          if (server_var(wcs_x2) <= server_var(wcs_x1)) then es_xmath wcs_x2 + server_var(wcs_range)
          if (server_var(wcs_x2) > server_var(wcs_x1)) then es_xmath wcs_x2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_x2 + server_var(wcs_range)
        }       
      }
      es_xcopy wcs_x1 wcs_x2
    }
    if (server_var(wcs_range) < server_var(wcs_y)) do
    {
      if (server_var(wcs_y2) >= 0) do
      {
        if (server_var(wcs_y1) >= 0) do
        {
          if (server_var(wcs_y2) <= server_var(wcs_y1)) then es_xmath wcs_y2 + server_var(wcs_range)
          if (server_var(wcs_y2) > server_var(wcs_y1)) then es_xmath wcs_y2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_y2 - server_var(wcs_range)
        }
      }
      es_xelse do
      {
        if (server_var(wcs_y1) < 0) do
        {
          if (server_var(wcs_y2) <= server_var(wcs_y1)) then es_xmath wcs_y2 + server_var(wcs_range)
          if (server_var(wcs_y2) > server_var(wcs_y1)) then es_xmath wcs_y2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_y2 + server_var(wcs_range)
        }       
      }
      es_xcopy wcs_y1 wcs_y2
    }
    if (server_var(wcs_range) < server_var(wcs_z)) do
    {
      if (server_var(wcs_z2) >= 0) do
      {
        if (server_var(wcs_z1) >= 0) do
        {
          if (server_var(wcs_z2) <= server_var(wcs_z1)) then es_xmath wcs_z2 + server_var(wcs_range)
          if (server_var(wcs_z2) > server_var(wcs_z1)) then es_xmath wcs_z2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_z2 - server_var(wcs_range)
        }
      }
      es_xelse do
      {
        if (server_var(wcs_z1) < 0) do
        {
          if (server_var(wcs_z2) <= server_var(wcs_z1)) then es_xmath wcs_z2 + server_var(wcs_range)
          if (server_var(wcs_z2) > server_var(wcs_z1)) then es_xmath wcs_z2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_z2 + server_var(wcs_range)
        }       
      }
      es_xcopy wcs_z1 wcs_z2
    }
    ifx false(wcs_noskywalking) do
    {
      es_exists ex command "ma_teleport"
      if (server_var(ex) = 1) then ma_teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
      if (server_var(ex) != 1) then est_Teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
    }
    if (server_var(wcs_noskywalking) = "1") then est_PushTo server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) "1"
    wcs_getlanguage "wcs_lng" "wcs_lng_toofaraway"
    es_tell server_var(wcs_userid) #multi server_var(wcs_lng)
    es est_Fade server_var(wcs_userid) 0 server_var(wcs_fadetimer) 0.2 0 0 0 220
  }
wcs_debuglog wcs_ulti_teleport end
}

block wcs_ulti_suicide
{
wcs_debuglog wcs_ulti_suicide start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      alias wcs_run_ulti_suicide1 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_suicide2;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_suicide2 "es_xmath wcs_counter + 1;es wcs_explode server_var(wcs_userid) server_var(wcs_targetid) server_var(wcs_magnitude) server_var(wcs_radius)"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_run_ulti_suicide1"
      // no more needed
      //if (server_var(wcs_counter) > 0) then wcs_explode server_var(wcs_userid) server_var(wcs_userid) server_var(wcs_magnitude) server_var(wcs_radius)
    }
  }
wcs_debuglog wcs_ulti_suicide end
}

block wcs_ulti_flash
{
wcs_debuglog wcs_ulti_flash start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      alias wcs_run_ulti_flash1 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_flash2;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_flash2 "es_xmath wcs_counter + 1;es est_fade server_var(wcs_targetid) 0 1.5 0 255 255 255 255"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_run_ulti_flash1"
    }
  }
wcs_debuglog wcs_ulti_flash end
}

block wcs_ulti_chain
{
wcs_debuglog wcs_ulti_chain start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      es est_Fade server_var(wcs_userid) 0 2 1 240 240 240 100
      es_xset wcs_wall "1"
      alias wcs_run_ulti_chain1 "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es_xmath wcs_z1 + 50;es_xmath wcs_z2 + 50;es est_getwallbetween wcs_wall server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2);if (server_var(wcs_wall) = 0) then wcs_run_ulti_chain2"
      alias wcs_run_ulti_chain2 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_chain3;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_chain3 "es_xmath wcs_counter + 1;if (server_var(wcs_graphicfx) = 1) then est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 10 200 255 255 255;es wcs_dealdamage server_var(wcs_userid) server_var(wcs_targetid) 32"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then es_xif (server_var(wcs_counter) < server_var(wcs_maxtargets)) then wcs_run_ulti_chain1"
      if (server_var(wcs_counter) > 0) do
      {
        wcs_getlanguage "wcs_lng" "wcs_lng_chainlightning"
        wcs_getlanguage "wcs_lng2" "wcs_lng_playersdamaged"
        esnq est_csay server_var(wcs_userid) server_var(wcs_lng) : server_var(wcs_counter) server_var(wcs_lng2)
      }
      es_xelse do
      {
        es_xset wcs_ultinotexec 1
      }
    }
    es_xelse do
    {
      es_xset wcs_ultinotexec 1
    }
  }
  wcs_getlanguage "wcs_lng" "wcs_lng_chainfailed"
  if (server_var(wcs_ultinotexec) = 1) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng)
wcs_debuglog wcs_ulti_chain end
}

block wcs_ulti_roots
{
wcs_debuglog wcs_ulti_roots start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      es est_Fade server_var(wcs_userid) 0 1 1 10 55 5 200
      es_xset wcs_wall "1"
      alias wcs_run_ulti_roots1 "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es_xmath wcs_z1 + 50;es_xmath wcs_z2 + 50;es est_getwallbetween wcs_wall server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2);if (server_var(wcs_wall) = 0) then wcs_run_ulti_roots2"
      alias wcs_run_ulti_roots2 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_roots3;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_roots3 "es_xmath wcs_counter + 1;es est_Freeze server_var(wcs_targetid) 1;es_delayed server_var(wcs_freezetime) wcs_removefx freeze server_var(wcs_targetid);if (server_var(wcs_graphicfx) = 1) then est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 10 0 255 0 255"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_run_ulti_roots1"
      if (server_var(wcs_counter) > 0) do
      {
        wcs_getlanguage "wcs_lng" "wcs_lng_entangleroots"
        esnq est_csay server_var(wcs_userid) server_var(wcs_lng) : server_var(wcs_counter)
      }
      es_xelse do
      {
        es_xset wcs_ultinotexec 1
      }
    }
    es_xelse do
    {
      es_xset wcs_ultinotexec 1
    }
  }
  wcs_getlanguage "wcs_lng" "wcs_lng_entanglefailed"
  if (server_var(wcs_ultinotexec) = 1) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng)
wcs_debuglog wcs_ulti_roots end
}

block wcs_regeneration
{
if (server_var(wcs_debug) = 1) then profile begin regeneration
  es_xgetargv wcs_uid 1
  es_xgetargv wcs_amount 2
  es_xgetargv wcs_time 3
  es_xgetargv wcs_maxhp 4
  es_xgetargv wcs_maxheal 5
  es_xgetargv wcs_radius 6
  es_exists ex key WCSuserdata server_var(wcs_uid)
  ifx parse("(ex == 1) and (wcs_time >= 1)") do
  {
    es_xset wcs_regenerate 0
    es_keygetvalue wcs_regenerate WCSuserdata server_var(wcs_uid) regeneration
    es_keygetvalue wcs_round WCSuserdata server_var(wcs_uid) regen_round
    ifx parse("(wcs_regenerate == 1) and (wcs_roundcounter == wcs_round)") do
    {
      es_getplayerprop wcs_dead server_var(wcs_uid) "CCSPlayer.baseclass.pl.deadflag"
      ifx parse("((wcs_maxheal > 0) or (wcs_maxheal == -1)) and (wcs_dead == 0)") do
      {
        es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_uid)
        if (server_var(wcs_maxheal) != -1) then es_xif (server_var(wcs_maxheal) != 0) then es_xmath wcs_maxheal - 1
        // check for team healing or single person
        ifx true(wcs_radius) do
        {
          es_getplayerteam wcs_team server_var(wcs_uid)
          // check teams (T=2, CT=3)
          if (server_var(wcs_team) = 2) then es_xset wcs_team "#t!d"
          if (server_var(wcs_team) = 3) then es_xset wcs_team "#c!d"
          es_xmath wcs_z1 + 50
          wcs_getlanguage "wcs_lng" "wcs_lng_healed"
          alias wcs_run_heal "es est_sethealth server_var(wcs_targetid) server_var(wcs_health);es_tell server_var(wcs_targetid) #multi server_var(wcs_lng);es est_fade server_var(wcs_targetid) 0 0.4 0 0 200 25 50;es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es_xmath wcs_z2 + 50;es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 2 2 0 255 0 255"
          es est_Near wcs_targetid server_var(wcs_team) server_var(wcs_radius) server_var(wcs_uid) "es est_gethealth wcs_health server_var(wcs_targetid);es_math wcs_health + server_var(wcs_amount);if (server_var(wcs_maxhp) > 0) then es_xif (server_var(wcs_maxhp) >= server_var(wcs_health)) then wcs_run_heal;if (server_var(wcs_maxhp) = 0) then wcs_run_heal"
          es_delayed server_var(wcs_time) wcs_regeneration server_var(wcs_uid) server_var(wcs_amount) server_var(wcs_time) server_var(wcs_maxhp) server_var(wcs_maxheal) server_var(wcs_radius)
        }
        es_xelse do
        {
          es est_GetHealth wcs_health server_var(wcs_uid)
          es_math wcs_health + server_var(wcs_amount)
          if (server_var(wcs_maxhp) > 0) then es_xif (server_var(wcs_maxhp) >= server_var(wcs_health)) then est_SetHealth server_var(wcs_uid) server_var(wcs_health)
          if (server_var(wcs_maxhp) = 0) then est_SetHealth server_var(wcs_uid) server_var(wcs_health)
          es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_uid)
          es_xmath wcs_z2 + 200
          es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 2 2 0 255 0 255
          wcs_getlanguage "wcs_lng" "wcs_lng_healed"
          es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
          es_delayed server_var(wcs_time) wcs_regeneration server_var(wcs_uid) server_var(wcs_amount) server_var(wcs_time) server_var(wcs_maxhp) server_var(wcs_maxheal) "0"
        }
      }
    }
    es_xelse do
    {
      es_keysetvalue WCSuserdata server_var(wcs_uid) regen_round 0
    }
  }
if (server_var(wcs_debug) = 1) then profile end regeneration
}

block wcs_warden
{
wcs_debuglog wcs_warden start
  es_xset wcs_uid 0
  es_xset wcs_duration 0
  es_xset wcs_dmg 0
  es_xset wcs_radius 0
  es_xset wcs_team_target 0
  es_xset wcs_wardenround 0
  es_xgetargv wcs_uid 1
  es_xgetargv wcs_duration 2
  es_xgetargv wcs_dmg 3
  es_xgetargv wcs_radius 4
  es_xgetargv wcs_team_target 5
  es_xgetargv wcs_team_targetn 6
  es_xgetargv wcs_x1 7
  es_xgetargv wcs_y1 8
  es_xgetargv wcs_z1 9
  es_xgetargv wcs_wardenround 10
  es_exists ex userid server_var(wcs_uid)
  es_getlivingplayercount wcs_alive server_var(wcs_team_target)
  ifx parse("(wcs_alive >= 1) and (wcs_wardenround == wcs_wardencounter) and ex and (wcs_duration > 0) and (wcs_radius != 0) and (wcs_team_target != 0)") do
  {
    es wcs_debuglog warden deals damage round server_var(wcs_wardenround) duration server_var(wcs_duration)
  es_xset wcs_sward_invul 0
es_xset wcs_sward_resist 0
    es est_Effect 10 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 20 server_var(wcs_radius) 1 20 100 1 255 150 70 100 10
    //es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_uid) "es wcs_dealdamage server_var(wcs_uid) server_var(wcs_targetid) server_var(wcs_dmg);es_tell server_var(wcs_targetid) #multi server_var(wcs_lng_wardenhit);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 20 255 150 70 255"
    es_xset wcs_wall 1
    wcs_getlanguage "wcs_lng" "wcs_lng_wardenhit"
    alias wcs_run_warden "es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es est_getwallbetween wcs_wall server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2);es_keygetvalue wcs_sward_invul WCSuserdata server_var(wcs_targetid) swardinvul;es_keygetvalue wcs_sward_resist WCSuserdata server_var(wcs_targetid) swardresist;if (server_var(wcs_sward_invul) = 1) then shopalias_asw1_off;if (server_var(wcs_wall) = 0) then es_xif (server_var(wcs_sward_invul) = 0) then wcs_run_warden2"
  alias wcs_run_warden2 "es_xcopy wcs_damage wcs_dmg;if (server_var(wcs_sward_resist) != 0) then es_xmath wcs_damage / 2;es est_speed server_var(wcs_targetid) 0.7;if (server_var(wcs_speed) != 0) then es_xdelayed 2 wcs_removefx speed server_var(wcs_targetid);es wcs_dealdamage server_var(wcs_uid) server_var(wcs_targetid) server_var(wcs_damage);es_tell server_var(wcs_targetid) #multi server_var(wcs_lng);es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 20 255 150 70 255"
    es nearcoord wcs_targetid server_var(wcs_team_targetn) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_radius) server_var(wcs_radius) server_var(wcs_radius) "es_getplayerprop wcs_dead server_var(wcs_targetid) CCSPlayer.baseclass.pl.deadflag;if (server_var(wcs_dead) = 0) then wcs_run_warden"
    es_xmath wcs_duration - 1
    es_delayed 1 wcs_warden server_var(wcs_uid) server_var(wcs_duration) server_var(wcs_dmg) server_var(wcs_radius) server_var(wcs_team_target) server_var(wcs_team_targetn) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_wardenround)
  }
wcs_debuglog wcs_warden end
}

block wcs_mole_activate
{
wcs_debuglog wcs_mole_activate start
  es_xset wcs_uid 0
  es_xgetargv wcs_uid 1
  es_exists ex userid server_var(wcs_uid)
  if (server_var(ex) = 1) do
  {
    es_xset wcs_team_target 0
    es_getplayerteam wcs_team server_var(wcs_uid)
    // check teams (T=2, CT=3)
    if (server_var(wcs_team) = 2) do
    {
      es_xset wcs_team_target 3
      es_xset wcs_team_targetn "#c!d"
    }
    if (server_var(wcs_team) = 3) do
    {
      es_xset wcs_team_target 2
      es_xset wcs_team_targetn "#t!d"
    }
    if (server_var(wcs_team_target) != "0") do
    {
      es_xset wcs_pcount 0
      es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
      if (server_var(wcs_pcount) > 0) do
      {
        es_xset wcs_player 0
        if(server_var(wcs_game) = server_var(wcs_game_css)) then es_xif (server_var(wcs_team) = 3) then est_SetModel server_var(wcs_uid) "player/t_phoenix"
        if(server_var(wcs_game) = server_var(wcs_game_css)) then es_xif (server_var(wcs_team) = 2) then est_SetModel server_var(wcs_uid) "player/ct_urban"
        if(server_var(wcs_game) = server_var(wcs_game_dods)) then es_xif (server_var(wcs_team) = 2) then est_SetModel server_var(wcs_uid) "player/german_assault"
        if(server_var(wcs_game) = server_var(wcs_game_dods)) then es_xif (server_var(wcs_team) = 3) then est_SetModel server_var(wcs_uid) "player/american_assault"
        es est_RandPlayer wcs_player server_var(wcs_team_targetn)
        es_exists ex userid server_var(wcs_player)
        if (server_var(ex) = 1) do
        {
          //es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
          //es_xmath wcs_x + 40
          //es_xmath wcs_y + 40
          // new pos
          if (server_var(wcs_team) = 2) do
          {
            if (server_var(wcs_location_c) != "0") do
            {
            es_token wcs_x server_var(wcs_location_c) 1 |
            es_token wcs_y server_var(wcs_location_c) 2 |
            es_token wcs_z server_var(wcs_location_c) 3 |
            }
            es_xelse do
            {
              es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
            }
          }
          if (server_var(wcs_team) = 3) do
          {
            if (server_var(wcs_location_t) != "0") do
            {
            es_token wcs_x server_var(wcs_location_t) 1 |
            es_token wcs_y server_var(wcs_location_t) 2 |
            es_token wcs_z server_var(wcs_location_t) 3 |
            }
            es_xelse do
            {
              es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
            }
          }
          // new, delayed teleport
          es_set wcs_tmp server_var(mp_freezetime)
          es_xmath wcs_tmp + 3
          wcs_getlanguage "wcs_lng" "wcs_lng_moledelay"
          es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
          es_delayed server_var(mp_freezetime) es_xtell server_var(wcs_uid) #multi server_var(wcs_lng)
          es_delayed server_var(wcs_tmp) est_Teleport server_var(wcs_uid) server_var(wcs_x) server_var(wcs_y) server_var(wcs_z)
          es_keysetvalue "WCSuserdata" server_var(wcs_uid) "ismole" "1"
        }
        wcs_getlanguage "wcs_lng" "wcs_lng_mole"
        es_delayed server_var(mp_freezetime) es_xtell server_var(wcs_uid) #multi server_var(wcs_lng)
      }
      es_xelse do
      {
        wcs_getlanguage "wcs_lng" "wcs_lng_molefailed"
        es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
      }
    }
    es_xelse do
    {
      wcs_getlanguage "wcs_lng" "wcs_lng_molefailed"
      es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
    }
  }
wcs_debuglog wcs_mole_activate end
}

block wcs_ability_warden
{
  es_xset wcs_params 0
  es_keygetvalue wcs_params WCSuserdata server_var(wcs_userid) "ability_parameter"
  if (server_var(wcs_params) != "0") do
  {
  es_getplayerteam wcs_team server_var(wcs_userid)
  // colored wards, thanks to Sol | Pikachu
  es_xset wcs_color "10 0 255 70"
  ifx parse("wcs_team == 2") do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#ct"
    es_xset wcs_color "255 0 10 150"
  }
  ifx parse("wcs_team == 3") do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t"
    es_xset wcs_color "10 0 255 150"
  }
              es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid)
              es_xset wcs_duration 0
              es_token wcs_duration server_var(wcs_params) 1 "_"
              ifx true(wcs_graphicfx) do
              {
                es_xcopy wcs_x2 wcs_x1
                es_xcopy wcs_y2 wcs_y1
                es_xcopy wcs_z2 wcs_z1
                es_xmath wcs_z1 + 120
                esnq est_Effect 11 #a 0 "sprites/purpleglow1.vmt" server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_duration) 2 50
                esnq est_Effect 3 #a 0 "sprites/lgtning.vmt" server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) server_var(wcs_duration) 20 20 server_var(wcs_color)
                es_xmath wcs_z1 - 120
              }
              es_token wcs_dmg server_var(wcs_params) 2 "_"
              es_token wcs_radius server_var(wcs_params) 3 "_"
              es wcs_warden server_var(wcs_userid) server_var(wcs_duration) server_var(wcs_dmg) server_var(wcs_radius) server_var(wcs_team_target) server_var(wcs_team_targetn) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_wardencounter)
              wcs_getlanguage "wcs_lng" "wcs_lng_wardencreated"
              es_tell server_var(wcs_userid) #multi server_var(wcs_lng)
            }
}


block wcs_dalias
{

if (server_var(wcs_debug) = "1") then echo wcs_dalias start
  es_xsetinfo wcs_tmp1 0
es_xsetinfo wcs_tmp2 0
es_xsetinfo wcs_tmp3 0
es_xsetinfo wcs_tmp4 0
es_xsetinfo wcs_tmp5 0
  es_xsetinfo wcs_tmp6 0
es_xsetinfo wcs_tmp7 0
es_xsetinfo wcs_tmp8 0
es_xsetinfo wcs_tmp9 0
es_xsetinfo wcs_tmp10 0
  es_xsetinfo wcs_tmp11 0
es_xsetinfo wcs_tmp12 0
es_xsetinfo wcs_tmp13 0
es_xsetinfo wcs_tmp14 0
es_xsetinfo wcs_tmp15 0
es_xgetargv wcs_tmp1 1
es_xgetargv wcs_tmp2 2
es_xgetargv wcs_tmp3 3
es_xgetargv wcs_tmp4 4
es_xgetargv wcs_tmp5 5
es_xgetargv wcs_tmp6 6
es_xgetargv wcs_tmp7 7
es_xgetargv wcs_tmp8 8
es_xgetargv wcs_tmp9 9
es_xgetargv wcs_tmp10 10
es_xgetargv wcs_tmp11 11
es_xgetargv wcs_tmp12 12
es_xgetargv wcs_tmp13 13
es_xgetargv wcs_tmp14 14
es_xgetargv wcs_tmp15 15
es server_var(wcs_tmp1)
if (server_var(wcs_debug) = "1") then echo wcs_dalias end
}
// <<<<<<<<<<<<<<<<< END ULTIMATE SKILL CODE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


this should work

Line 152-153:
  es_xexists wcs_exists command wcs_dalias
  es es_xif (server_var(wcs_exists) = 0) then es_xregcmd wcs_dalias wcs/WCSultimates/wcs_dalias "Executes alias with delay without loosing data"
.....



Offline Maxxi

  • Level 7 Expert
  • *****
  • Posts: 1486
Re: Necrolyte, H&S Project
« Reply #9 on: March 12, 2009, 02:16:57 PM »
you missed the part were you make wcs_dalias a cmd

Code: [Select]
////////////////////////////////////////
// WCS - Warcraft:Source              //
// ---------------------------------- //
//  by kRypT0n!Te                     //
//      http://wc3source.de           //
// ---------------------------------- //
// Content of this subscript          //
// - all ultimates                    //
////////////////////////////////////////
// commands:
// wcs_mole_activate <userid>
// wcs_regeneration <userid> <amount> <time> <maxHP> <maxHeal> <radius>
// wcs_warden  <userid> <duration> <damage> <radius> <target team> <team target name> <x> <y> <z> <round>
//
////////////////////////////////////////
// You can define here new ultimates, then use the command
// es_xdoblock wcs/WCSultimates/wcs_YOURSCRIPT
// to execute wcs_YOURSCRIPT block.
//

block load
{
  es_xexists ex command wcs_mole_activate
  if (server_var(ex) = 0) then es_xregcmd wcs_mole_activate wcs/WCSultimates/wcs_mole_activate "A player becomes a mole"
  es_xexists ex command wcs_regeneration
  if (server_var(ex) = 0) then es_xregcmd wcs_regeneration wcs/WCSultimates/wcs_regeneration "wcs_regeneration <userid> <amount> <time> <maxHP> <maxHeal> <radius> - Regenerate player for the current round"
  es_xexists ex command wcs_warden
  if (server_var(ex) = 0) then es_xregcmd wcs_warden wcs/WCSultimates/wcs_warden "Warden, deals damage on nearby enemies"
  es_xexists wcs_exists command wcs_dalias
  es es_xif (server_var(wcs_exists) = 0) then es_xregcmd wcs_dalias wcs/WCSultimates/wcs_dalias "Executes alias with delay without loosing data"
  es_xset wcs_maxhp 0
  es_xset wcs_maxheal 0
  // new event
  es_xloadevents declare addons/eventscripts/wcs/WCSultimates/es_WCSultimates.res
}

// >>>>>>>>>>>>>>>>> SPECIAL ULTIMATE SKILL CODE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
block wcs_ulti_teleport
{
wcs_debuglog wcs_ulti_teleport start
  // alot of calculations....does anyone know what I'm doing here ?
  es_xset wcs_ok 1
  es est_GetViewCoord server_var(wcs_userid) wcs_x1 wcs_y1 wcs_z1
  es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_userid)
  //es_mathparse wcs_x "abs ( wcs_x1 - wcs_x2 )"
  //es_mathparse wcs_y "abs ( wcs_y1 - wcs_y2 )"
  //es_mathparse wcs_z "abs ( wcs_z1 - wcs_z2 )"
  es_xcopy wcs_x wcs_x1
  es_xcopy wcs_y wcs_y1
  es_xcopy wcs_z wcs_z1
  es_math wcs_x - server_var(wcs_x2)
  es_math wcs_y - server_var(wcs_y2)
  es_math wcs_z - server_var(wcs_z2)
  if (server_var(wcs_x) < 0) then es_xmath wcs_x * -1
  if (server_var(wcs_y) < 0) then es_xmath wcs_y * -1
  if (server_var(wcs_z) < 0) then es_xmath wcs_z * -1
  ifx parse("(wcs_range < wcs_x) or (wcs_range < wcs_y) or (wcs_range < wcs_z)") do
  {
    es_xset wcs_ok 0
  }
  // invisible while teleporting! (thx Lupus)
  es_keygetvalue wcs_tmp WCSuserdata server_var(wcs_userid) invisp
  if (server_var(wcs_tmp) != 0) do
  {
    es_xmath wcs_tmp float
    es_xmath wcs_tmp - 100
    es_xmath wcs_tmp * -2.55;
    es est_rounddecimal wcs_tmp server_var(wcs_tmp) 0;
    es est_setplayercolor server_var(wcs_userid) 255 255 255 0 1
    es_delayed 1 est_setplayercolor server_var(wcs_userid) 255 255 255 server_var(wcs_tmp) 1
  }
  ifx true(wcs_ok) do
  {
    ifx false(wcs_noskywalking) do
    {
      es_exists ex command "ma_teleport"
      if (server_var(ex) = 1) then ma_teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
      if (server_var(ex) != 1) then est_Teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
    }
    if (server_var(wcs_noskywalking) = "1") then est_PushTo server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) "2"
    wcs_getlanguage "wcs_lng" "wcs_lng_teleported"
    es_tell server_var(wcs_userid) #multi server_var(wcs_lng)
    es est_Fade server_var(wcs_userid) 0 server_var(wcs_fadetimer) 1 0 0 0 250
  }
  es_xelse do
  {
    // one or more vectors are too long to teleport .... damn math...
    if (server_var(wcs_range) < server_var(wcs_x)) do
    {
     
      if (server_var(wcs_x2) >= 0) do
      {
        if (server_var(wcs_x1) >= 0) do
        {
          if (server_var(wcs_x2) <= server_var(wcs_x1)) then es_xmath wcs_x2 + server_var(wcs_range)
          if (server_var(wcs_x2) > server_var(wcs_x1)) then es_xmath wcs_x2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_x2 - server_var(wcs_range)
        }
      }
      es_xelse do
      {
        if (server_var(wcs_x1) < 0) do
        {
          if (server_var(wcs_x2) <= server_var(wcs_x1)) then es_xmath wcs_x2 + server_var(wcs_range)
          if (server_var(wcs_x2) > server_var(wcs_x1)) then es_xmath wcs_x2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_x2 + server_var(wcs_range)
        }       
      }
      es_xcopy wcs_x1 wcs_x2
    }
    if (server_var(wcs_range) < server_var(wcs_y)) do
    {
      if (server_var(wcs_y2) >= 0) do
      {
        if (server_var(wcs_y1) >= 0) do
        {
          if (server_var(wcs_y2) <= server_var(wcs_y1)) then es_xmath wcs_y2 + server_var(wcs_range)
          if (server_var(wcs_y2) > server_var(wcs_y1)) then es_xmath wcs_y2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_y2 - server_var(wcs_range)
        }
      }
      es_xelse do
      {
        if (server_var(wcs_y1) < 0) do
        {
          if (server_var(wcs_y2) <= server_var(wcs_y1)) then es_xmath wcs_y2 + server_var(wcs_range)
          if (server_var(wcs_y2) > server_var(wcs_y1)) then es_xmath wcs_y2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_y2 + server_var(wcs_range)
        }       
      }
      es_xcopy wcs_y1 wcs_y2
    }
    if (server_var(wcs_range) < server_var(wcs_z)) do
    {
      if (server_var(wcs_z2) >= 0) do
      {
        if (server_var(wcs_z1) >= 0) do
        {
          if (server_var(wcs_z2) <= server_var(wcs_z1)) then es_xmath wcs_z2 + server_var(wcs_range)
          if (server_var(wcs_z2) > server_var(wcs_z1)) then es_xmath wcs_z2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_z2 - server_var(wcs_range)
        }
      }
      es_xelse do
      {
        if (server_var(wcs_z1) < 0) do
        {
          if (server_var(wcs_z2) <= server_var(wcs_z1)) then es_xmath wcs_z2 + server_var(wcs_range)
          if (server_var(wcs_z2) > server_var(wcs_z1)) then es_xmath wcs_z2 - server_var(wcs_range)
        }
        es_xelse do
        {
          es_math wcs_z2 + server_var(wcs_range)
        }       
      }
      es_xcopy wcs_z1 wcs_z2
    }
    ifx false(wcs_noskywalking) do
    {
      es_exists ex command "ma_teleport"
      if (server_var(ex) = 1) then ma_teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
      if (server_var(ex) != 1) then est_Teleport server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1)
    }
    if (server_var(wcs_noskywalking) = "1") then est_PushTo server_var(wcs_userid) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) "1"
    wcs_getlanguage "wcs_lng" "wcs_lng_toofaraway"
    es_tell server_var(wcs_userid) #multi server_var(wcs_lng)
    es est_Fade server_var(wcs_userid) 0 server_var(wcs_fadetimer) 0.2 0 0 0 220
  }
wcs_debuglog wcs_ulti_teleport end
}

block wcs_ulti_suicide
{
wcs_debuglog wcs_ulti_suicide start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      alias wcs_run_ulti_suicide1 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_suicide2;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_suicide2 "es_xmath wcs_counter + 1;es wcs_explode server_var(wcs_userid) server_var(wcs_targetid) server_var(wcs_magnitude) server_var(wcs_radius)"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_run_ulti_suicide1"
      // no more needed
      //if (server_var(wcs_counter) > 0) then wcs_explode server_var(wcs_userid) server_var(wcs_userid) server_var(wcs_magnitude) server_var(wcs_radius)
    }
  }
wcs_debuglog wcs_ulti_suicide end
}

block wcs_ulti_flash
{
wcs_debuglog wcs_ulti_flash start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      alias wcs_run_ulti_flash1 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_flash2;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_flash2 "es_xmath wcs_counter + 1;es est_fade server_var(wcs_targetid) 0 1.5 0 255 255 255 255"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_run_ulti_flash1"
    }
  }
wcs_debuglog wcs_ulti_flash end
}

block wcs_ulti_chain
{
wcs_debuglog wcs_ulti_chain start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      es est_Fade server_var(wcs_userid) 0 2 1 240 240 240 100
      es_xset wcs_wall "1"
      alias wcs_run_ulti_chain1 "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es_xmath wcs_z1 + 50;es_xmath wcs_z2 + 50;es est_getwallbetween wcs_wall server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2);if (server_var(wcs_wall) = 0) then wcs_run_ulti_chain2"
      alias wcs_run_ulti_chain2 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_chain3;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_chain3 "es_xmath wcs_counter + 1;if (server_var(wcs_graphicfx) = 1) then est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 10 200 255 255 255;es wcs_dealdamage server_var(wcs_userid) server_var(wcs_targetid) 32"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then es_xif (server_var(wcs_counter) < server_var(wcs_maxtargets)) then wcs_run_ulti_chain1"
      if (server_var(wcs_counter) > 0) do
      {
        wcs_getlanguage "wcs_lng" "wcs_lng_chainlightning"
        wcs_getlanguage "wcs_lng2" "wcs_lng_playersdamaged"
        esnq est_csay server_var(wcs_userid) server_var(wcs_lng) : server_var(wcs_counter) server_var(wcs_lng2)
      }
      es_xelse do
      {
        es_xset wcs_ultinotexec 1
      }
    }
    es_xelse do
    {
      es_xset wcs_ultinotexec 1
    }
  }
  wcs_getlanguage "wcs_lng" "wcs_lng_chainfailed"
  if (server_var(wcs_ultinotexec) = 1) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng)
wcs_debuglog wcs_ulti_chain end
}

block wcs_ulti_roots
{
wcs_debuglog wcs_ulti_roots start
  es_xset wcs_team_target 0
  es_getplayerteam wcs_team server_var(wcs_userid)
  // check teams (T=2, CT=3)
  if (server_var(wcs_team) = 2) do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#c!d"
  }
  if (server_var(wcs_team) = 3) do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t!d"
  }
  if (server_var(wcs_team_target) != "0") do
  {
    es_xset wcs_pcount 0
    es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
    if (server_var(wcs_pcount) > 0) do
    {
      es est_Fade server_var(wcs_userid) 0 1 1 10 55 5 200
      es_xset wcs_wall "1"
      alias wcs_run_ulti_roots1 "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es_xmath wcs_z1 + 50;es_xmath wcs_z2 + 50;es est_getwallbetween wcs_wall server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2);if (server_var(wcs_wall) = 0) then wcs_run_ulti_roots2"
      alias wcs_run_ulti_roots2 "es_xset wcs_immunity 0;es_keygetvalue wcs_immunity WCSuserdata server_var(wcs_targetid) ulti_immunity;if (server_var(wcs_immunity) = 0) then wcs_run_ulti_roots3;if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng_ulti_immunity_a);if (server_var(wcs_immunity) != 0) then es_xtell server_var(wcs_targetid) #multi server_var(wcs_lng_ulti_immunity_v)"
      alias wcs_run_ulti_roots3 "es_xmath wcs_counter + 1;es est_Freeze server_var(wcs_targetid) 1;es_delayed server_var(wcs_freezetime) wcs_removefx freeze server_var(wcs_targetid);if (server_var(wcs_graphicfx) = 1) then est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 10 0 255 0 255"
      es_xset wcs_counter 0
      es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_run_ulti_roots1"
      if (server_var(wcs_counter) > 0) do
      {
        wcs_getlanguage "wcs_lng" "wcs_lng_entangleroots"
        esnq est_csay server_var(wcs_userid) server_var(wcs_lng) : server_var(wcs_counter)
      }
      es_xelse do
      {
        es_xset wcs_ultinotexec 1
      }
    }
    es_xelse do
    {
      es_xset wcs_ultinotexec 1
    }
  }
  wcs_getlanguage "wcs_lng" "wcs_lng_entanglefailed"
  if (server_var(wcs_ultinotexec) = 1) then es_xtell server_var(wcs_userid) #multi server_var(wcs_lng)
wcs_debuglog wcs_ulti_roots end
}

block wcs_regeneration
{
if (server_var(wcs_debug) = 1) then profile begin regeneration
  es_xgetargv wcs_uid 1
  es_xgetargv wcs_amount 2
  es_xgetargv wcs_time 3
  es_xgetargv wcs_maxhp 4
  es_xgetargv wcs_maxheal 5
  es_xgetargv wcs_radius 6
  es_exists ex key WCSuserdata server_var(wcs_uid)
  ifx parse("(ex == 1) and (wcs_time >= 1)") do
  {
    es_xset wcs_regenerate 0
    es_keygetvalue wcs_regenerate WCSuserdata server_var(wcs_uid) regeneration
    es_keygetvalue wcs_round WCSuserdata server_var(wcs_uid) regen_round
    ifx parse("(wcs_regenerate == 1) and (wcs_roundcounter == wcs_round)") do
    {
      es_getplayerprop wcs_dead server_var(wcs_uid) "CCSPlayer.baseclass.pl.deadflag"
      ifx parse("((wcs_maxheal > 0) or (wcs_maxheal == -1)) and (wcs_dead == 0)") do
      {
        es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_uid)
        if (server_var(wcs_maxheal) != -1) then es_xif (server_var(wcs_maxheal) != 0) then es_xmath wcs_maxheal - 1
        // check for team healing or single person
        ifx true(wcs_radius) do
        {
          es_getplayerteam wcs_team server_var(wcs_uid)
          // check teams (T=2, CT=3)
          if (server_var(wcs_team) = 2) then es_xset wcs_team "#t!d"
          if (server_var(wcs_team) = 3) then es_xset wcs_team "#c!d"
          es_xmath wcs_z1 + 50
          wcs_getlanguage "wcs_lng" "wcs_lng_healed"
          alias wcs_run_heal "es est_sethealth server_var(wcs_targetid) server_var(wcs_health);es_tell server_var(wcs_targetid) #multi server_var(wcs_lng);es est_fade server_var(wcs_targetid) 0 0.4 0 0 200 25 50;es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es_xmath wcs_z2 + 50;es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 2 2 0 255 0 255"
          es est_Near wcs_targetid server_var(wcs_team) server_var(wcs_radius) server_var(wcs_uid) "es est_gethealth wcs_health server_var(wcs_targetid);es_math wcs_health + server_var(wcs_amount);if (server_var(wcs_maxhp) > 0) then es_xif (server_var(wcs_maxhp) >= server_var(wcs_health)) then wcs_run_heal;if (server_var(wcs_maxhp) = 0) then wcs_run_heal"
          es_delayed server_var(wcs_time) wcs_regeneration server_var(wcs_uid) server_var(wcs_amount) server_var(wcs_time) server_var(wcs_maxhp) server_var(wcs_maxheal) server_var(wcs_radius)
        }
        es_xelse do
        {
          es est_GetHealth wcs_health server_var(wcs_uid)
          es_math wcs_health + server_var(wcs_amount)
          if (server_var(wcs_maxhp) > 0) then es_xif (server_var(wcs_maxhp) >= server_var(wcs_health)) then est_SetHealth server_var(wcs_uid) server_var(wcs_health)
          if (server_var(wcs_maxhp) = 0) then est_SetHealth server_var(wcs_uid) server_var(wcs_health)
          es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_uid)
          es_xmath wcs_z2 + 200
          es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 2 2 0 255 0 255
          wcs_getlanguage "wcs_lng" "wcs_lng_healed"
          es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
          es_delayed server_var(wcs_time) wcs_regeneration server_var(wcs_uid) server_var(wcs_amount) server_var(wcs_time) server_var(wcs_maxhp) server_var(wcs_maxheal) "0"
        }
      }
    }
    es_xelse do
    {
      es_keysetvalue WCSuserdata server_var(wcs_uid) regen_round 0
    }
  }
if (server_var(wcs_debug) = 1) then profile end regeneration
}

block wcs_warden
{
wcs_debuglog wcs_warden start
  es_xset wcs_uid 0
  es_xset wcs_duration 0
  es_xset wcs_dmg 0
  es_xset wcs_radius 0
  es_xset wcs_team_target 0
  es_xset wcs_wardenround 0
  es_xgetargv wcs_uid 1
  es_xgetargv wcs_duration 2
  es_xgetargv wcs_dmg 3
  es_xgetargv wcs_radius 4
  es_xgetargv wcs_team_target 5
  es_xgetargv wcs_team_targetn 6
  es_xgetargv wcs_x1 7
  es_xgetargv wcs_y1 8
  es_xgetargv wcs_z1 9
  es_xgetargv wcs_wardenround 10
  es_exists ex userid server_var(wcs_uid)
  es_getlivingplayercount wcs_alive server_var(wcs_team_target)
  ifx parse("(wcs_alive >= 1) and (wcs_wardenround == wcs_wardencounter) and ex and (wcs_duration > 0) and (wcs_radius != 0) and (wcs_team_target != 0)") do
  {
    es wcs_debuglog warden deals damage round server_var(wcs_wardenround) duration server_var(wcs_duration)
  es_xset wcs_sward_invul 0
es_xset wcs_sward_resist 0
    es est_Effect 10 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 20 server_var(wcs_radius) 1 20 100 1 255 150 70 100 10
    //es est_Near wcs_targetid server_var(wcs_team_targetn) server_var(wcs_radius) server_var(wcs_uid) "es wcs_dealdamage server_var(wcs_uid) server_var(wcs_targetid) server_var(wcs_dmg);es_tell server_var(wcs_targetid) #multi server_var(wcs_lng_wardenhit);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 20 255 150 70 255"
    es_xset wcs_wall 1
    wcs_getlanguage "wcs_lng" "wcs_lng_wardenhit"
    alias wcs_run_warden "es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 server_var(wcs_targetid);es est_getwallbetween wcs_wall server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2);es_keygetvalue wcs_sward_invul WCSuserdata server_var(wcs_targetid) swardinvul;es_keygetvalue wcs_sward_resist WCSuserdata server_var(wcs_targetid) swardresist;if (server_var(wcs_sward_invul) = 1) then shopalias_asw1_off;if (server_var(wcs_wall) = 0) then es_xif (server_var(wcs_sward_invul) = 0) then wcs_run_warden2"
  alias wcs_run_warden2 "es_xcopy wcs_damage wcs_dmg;if (server_var(wcs_sward_resist) != 0) then es_xmath wcs_damage / 2;es est_speed server_var(wcs_targetid) 0.7;if (server_var(wcs_speed) != 0) then es_xdelayed 2 wcs_removefx speed server_var(wcs_targetid);es wcs_dealdamage server_var(wcs_uid) server_var(wcs_targetid) server_var(wcs_damage);es_tell server_var(wcs_targetid) #multi server_var(wcs_lng);es est_effect 3 #a 0 sprites/lgtning.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 1 10 20 255 150 70 255"
    es nearcoord wcs_targetid server_var(wcs_team_targetn) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_radius) server_var(wcs_radius) server_var(wcs_radius) "es_getplayerprop wcs_dead server_var(wcs_targetid) CCSPlayer.baseclass.pl.deadflag;if (server_var(wcs_dead) = 0) then wcs_run_warden"
    es_xmath wcs_duration - 1
    es_delayed 1 wcs_warden server_var(wcs_uid) server_var(wcs_duration) server_var(wcs_dmg) server_var(wcs_radius) server_var(wcs_team_target) server_var(wcs_team_targetn) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_wardenround)
  }
wcs_debuglog wcs_warden end
}

block wcs_mole_activate
{
wcs_debuglog wcs_mole_activate start
  es_xset wcs_uid 0
  es_xgetargv wcs_uid 1
  es_exists ex userid server_var(wcs_uid)
  if (server_var(ex) = 1) do
  {
    es_xset wcs_team_target 0
    es_getplayerteam wcs_team server_var(wcs_uid)
    // check teams (T=2, CT=3)
    if (server_var(wcs_team) = 2) do
    {
      es_xset wcs_team_target 3
      es_xset wcs_team_targetn "#c!d"
    }
    if (server_var(wcs_team) = 3) do
    {
      es_xset wcs_team_target 2
      es_xset wcs_team_targetn "#t!d"
    }
    if (server_var(wcs_team_target) != "0") do
    {
      es_xset wcs_pcount 0
      es_getlivingplayercount wcs_pcount server_var(wcs_team_target)
      if (server_var(wcs_pcount) > 0) do
      {
        es_xset wcs_player 0
        if(server_var(wcs_game) = server_var(wcs_game_css)) then es_xif (server_var(wcs_team) = 3) then est_SetModel server_var(wcs_uid) "player/t_phoenix"
        if(server_var(wcs_game) = server_var(wcs_game_css)) then es_xif (server_var(wcs_team) = 2) then est_SetModel server_var(wcs_uid) "player/ct_urban"
        if(server_var(wcs_game) = server_var(wcs_game_dods)) then es_xif (server_var(wcs_team) = 2) then est_SetModel server_var(wcs_uid) "player/german_assault"
        if(server_var(wcs_game) = server_var(wcs_game_dods)) then es_xif (server_var(wcs_team) = 3) then est_SetModel server_var(wcs_uid) "player/american_assault"
        es est_RandPlayer wcs_player server_var(wcs_team_targetn)
        es_exists ex userid server_var(wcs_player)
        if (server_var(ex) = 1) do
        {
          //es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
          //es_xmath wcs_x + 40
          //es_xmath wcs_y + 40
          // new pos
          if (server_var(wcs_team) = 2) do
          {
            if (server_var(wcs_location_c) != "0") do
            {
            es_token wcs_x server_var(wcs_location_c) 1 |
            es_token wcs_y server_var(wcs_location_c) 2 |
            es_token wcs_z server_var(wcs_location_c) 3 |
            }
            es_xelse do
            {
              es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
            }
          }
          if (server_var(wcs_team) = 3) do
          {
            if (server_var(wcs_location_t) != "0") do
            {
            es_token wcs_x server_var(wcs_location_t) 1 |
            es_token wcs_y server_var(wcs_location_t) 2 |
            es_token wcs_z server_var(wcs_location_t) 3 |
            }
            es_xelse do
            {
              es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
            }
          }
          // new, delayed teleport
          es_set wcs_tmp server_var(mp_freezetime)
          es_xmath wcs_tmp + 3
          wcs_getlanguage "wcs_lng" "wcs_lng_moledelay"
          es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
          es_delayed server_var(mp_freezetime) es_xtell server_var(wcs_uid) #multi server_var(wcs_lng)
          es_delayed server_var(wcs_tmp) est_Teleport server_var(wcs_uid) server_var(wcs_x) server_var(wcs_y) server_var(wcs_z)
          es_keysetvalue "WCSuserdata" server_var(wcs_uid) "ismole" "1"
        }
        wcs_getlanguage "wcs_lng" "wcs_lng_mole"
        es_delayed server_var(mp_freezetime) es_xtell server_var(wcs_uid) #multi server_var(wcs_lng)
      }
      es_xelse do
      {
        wcs_getlanguage "wcs_lng" "wcs_lng_molefailed"
        es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
      }
    }
    es_xelse do
    {
      wcs_getlanguage "wcs_lng" "wcs_lng_molefailed"
      es_tell server_var(wcs_uid) #multi server_var(wcs_lng)
    }
  }
wcs_debuglog wcs_mole_activate end
}

block wcs_ability_warden
{
  es_xset wcs_params 0
  es_keygetvalue wcs_params WCSuserdata server_var(wcs_userid) "ability_parameter"
  if (server_var(wcs_params) != "0") do
  {
  es_getplayerteam wcs_team server_var(wcs_userid)
  // colored wards, thanks to Sol | Pikachu
  es_xset wcs_color "10 0 255 70"
  ifx parse("wcs_team == 2") do
  {
    es_xset wcs_team_target 3
    es_xset wcs_team_targetn "#ct"
    es_xset wcs_color "255 0 10 150"
  }
  ifx parse("wcs_team == 3") do
  {
    es_xset wcs_team_target 2
    es_xset wcs_team_targetn "#t"
    es_xset wcs_color "10 0 255 150"
  }
              es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid)
              es_xset wcs_duration 0
              es_token wcs_duration server_var(wcs_params) 1 "_"
              ifx true(wcs_graphicfx) do
              {
                es_xcopy wcs_x2 wcs_x1
                es_xcopy wcs_y2 wcs_y1
                es_xcopy wcs_z2 wcs_z1
                es_xmath wcs_z1 + 120
                esnq est_Effect 11 #a 0 "sprites/purpleglow1.vmt" server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_duration) 2 50
                esnq est_Effect 3 #a 0 "sprites/lgtning.vmt" server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) server_var(wcs_duration) 20 20 server_var(wcs_color)
                es_xmath wcs_z1 - 120
              }
              es_token wcs_dmg server_var(wcs_params) 2 "_"
              es_token wcs_radius server_var(wcs_params) 3 "_"
              es wcs_warden server_var(wcs_userid) server_var(wcs_duration) server_var(wcs_dmg) server_var(wcs_radius) server_var(wcs_team_target) server_var(wcs_team_targetn) server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) server_var(wcs_wardencounter)
              wcs_getlanguage "wcs_lng" "wcs_lng_wardencreated"
              es_tell server_var(wcs_userid) #multi server_var(wcs_lng)
            }
}


block wcs_dalias
{

if (server_var(wcs_debug) = "1") then echo wcs_dalias start
  es_xsetinfo wcs_tmp1 0
es_xsetinfo wcs_tmp2 0
es_xsetinfo wcs_tmp3 0
es_xsetinfo wcs_tmp4 0
es_xsetinfo wcs_tmp5 0
  es_xsetinfo wcs_tmp6 0
es_xsetinfo wcs_tmp7 0
es_xsetinfo wcs_tmp8 0
es_xsetinfo wcs_tmp9 0
es_xsetinfo wcs_tmp10 0
  es_xsetinfo wcs_tmp11 0
es_xsetinfo wcs_tmp12 0
es_xsetinfo wcs_tmp13 0
es_xsetinfo wcs_tmp14 0
es_xsetinfo wcs_tmp15 0
es_xgetargv wcs_tmp1 1
es_xgetargv wcs_tmp2 2
es_xgetargv wcs_tmp3 3
es_xgetargv wcs_tmp4 4
es_xgetargv wcs_tmp5 5
es_xgetargv wcs_tmp6 6
es_xgetargv wcs_tmp7 7
es_xgetargv wcs_tmp8 8
es_xgetargv wcs_tmp9 9
es_xgetargv wcs_tmp10 10
es_xgetargv wcs_tmp11 11
es_xgetargv wcs_tmp12 12
es_xgetargv wcs_tmp13 13
es_xgetargv wcs_tmp14 14
es_xgetargv wcs_tmp15 15
es server_var(wcs_tmp1)
if (server_var(wcs_debug) = "1") then echo wcs_dalias end
}
// <<<<<<<<<<<<<<<<< END ULTIMATE SKILL CODE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<


this should work

Line 152-153:
  es_xexists wcs_exists command wcs_dalias
  es es_xif (server_var(wcs_exists) = 0) then es_xregcmd wcs_dalias wcs/WCSultimates/wcs_dalias "Executes alias with delay without loosing data"
.....
he needed dalias? did i do it wrong her?
btw in wrong topic :P

Offline Stinkyfax

  • I <3 WCS
  • Level 7 Expert
  • *****
  • Posts: 1977
    • WarCraft III Custom races and more Server
Re: Necrolyte, H&S Project
« Reply #10 on: March 12, 2009, 03:21:48 PM »
He? wcs_dalias? It's already included in necrolyte.txt



Offline Maxxi

  • Level 7 Expert
  • *****
  • Posts: 1486
Re: Necrolyte, H&S Project
« Reply #11 on: March 12, 2009, 03:54:30 PM »
He? wcs_dalias? It's already included in necrolyte.txt
like i said wrong topic :P
http://warcraft-source.com/board/index.php/topic,6595.msg46784.html#msg46784 here it had to be i clicked reply on wrong page :)

Offline M.R.

  • Level 5 Trained Intermediate
  • *****
  • Posts: 103
    • -AM- Armageddon clan site
Re: Necrolyte, H&S Project
« Reply #12 on: July 28, 2009, 06:16:04 PM »
Why is the attachment deleted?

Offline ALDi

  • Level 1 Trained Beginner
  • *
  • Posts: 28
Re: Necrolyte, H&S Project
« Reply #13 on: July 28, 2009, 07:28:19 PM »
Code: [Select]
"42"
 {
    "name"              "Necrolyte"
    "author"            "H&S Project"
    "shortdescription"  "0"
    "required_level"    "550"
    "maximum_level"     "0"
    "allow_only"        "0"
    "teamlimit"         "0"
    "preloadcmd"        "0"
    "player_spawn_cmd"  "0"
    "round_start_cmd"   "0"
    "round_end_cmd"     "0"
    "numberofskills"    "4"
    "numberoflevels"    "5"
    "skillnames"        "Reaper's Scythe|Shadow Lightning|Aura|Sonic Wave"
    "skilldescr"        "Deals extra damage based on enemy's lost hp|Cast shadow lightning to \ndamage and stun enemy, 5-17%.|Shadow Aura damages nearby enemies for 2-6 hp.|Creates a gigantic wave of sound which \ndeals heavy damage to all units in a line, \nHigher level - higher distance."
    "skillcfg"          "player_attacker|player_attacker|player_spawn|player_ultimate"

    "skill1_setting"    "es_xset wcs_bonus 3|es_xset wcs_bonus 4|es_xset wcs_bonus 5|es_xset wcs_bonus 6|es_xset wcs_bonus 7"
    "racealias_1p1"     "es wcs_dealdamage event_var(attacker) event_var(userid) server_var(wcs_hpvictim);es es_xtell event_var(attacker) #multi #Lightgreen : Your Reaper's Scythe #Green increased damage by #Lightgreen server_var(wcs_hpvictim) !!"
    "skill1_cmd"        "es_xset wcs_hpvictim 0;es est_gethealth wcs_hpvictim event_var(userid);es_math wcs_hpvictim float;es es_xmath wcs_bonus float;es es_xmath wcs_hpvictim - 100;es es_xmath wcs_hpvictim * -1;es es_xmath wcs_hpvictim / 35;es es_xmath wcs_hpvictim * server_var(wcs_bonus);es est_rounddecimal wcs_hpvictim server_var(wcs_hpvictim) 0;if (server_var(wcs_hpvictim) > 0) then racealias_1p1"
    "skill1_sfx"        "es es_xgetplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es es_xgetplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);es_xmath wcs_z1 + 40;es_xmath wcs_z2 + 40;es est_Effect 2 #a 0 sprites/bluelight1.vmt event_var(userid) event_var(attacker) 3 1 2 0 0 64 255"


    "skill2_setting"    "es_xset wcs_chance 5|es_xset wcs_chance 8|es_xset wcs_chance 11|es_xset wcs_chance 14|es_xset wcs_chance 17"
    "racealias_1p2"     "racealias_1p21;es es_xsetplayerprop event_var(userid) CBasePlayer.m_fFlags 32.0;es es_xdelayed 0.45 wcs_removefx freeze event_var(userid);es wcs_dealdamage event_var(attacker) event_var(userid) 15;es_tell event_var(userid) #green You was hit by event_var(es_attackername) with Shadow Lightning for extra 15 damage and stun.;es_tell event_var(attacker) #green You hit event_var(es_username) with Shadow Lightning for extra 15 damage and stun."
    "racealias_1p21"    "es es_xgetplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);es_setinfo wcs_z1 server_var(wcs_z2);es_xmath wcs_z1 + 1620;es_xmath wcs_z2 + 20;es est_Effect 3 #a 0 sprites/lgtning_noz.vmt server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z1) server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 0.7 28 18 51 0 102 255;es_xmath wcs_z2 - 20;es est_effect 10 #a 0 effects/ar2_altfire1.vmt server_var(wcs_x2) server_var(wcs_y2) server_var(wcs_z2) 100 300 0.5 90 20 0 15 0 255 255 20"
    "skill2_cmd"        "if (server_var(wcs_dice) <= server_var(wcs_chance)) then es_xif (event_var(es_userdead) = 0) then racealias_1p2"
    "skill2_sfx"        "0"

    "skill3_setting"    "es_xset wcs_tmp4 2;es_xset wcs_tmp3 300|es_xset wcs_tmp4 3;es_xset wcs_tmp3 340|es_xset wcs_tmp4 4;;es_xset wcs_tmp3 380|es_xset wcs_tmp4 5;es_xset wcs_tmp3 410|es_xset wcs_tmp4 6;es_xset wcs_tmp3 435"
    "racealias_1p32"    "es_getplayerprop wcs_dead server_var(wcs_tmp2) CCSPlayer.baseclass.pl.deadflag;if (server_var(wcs_dead) = 0) then racealias_1p33"
    "racealias_1p33"    "es_getplayerteam wcs_team server_var(wcs_tmp2);if (server_var(wcs_team) = 2) then es_xset wcs_team #c!d;if (server_var(wcs_team) = 3) then es_xset wcs_team #t!d;es est_Near wcs_targetid server_var(wcs_team) server_var(wcs_tmp3) server_var(wcs_tmp2) racealias_1p34;racealias_1p31"
    "racealias_1p34"    "es_playsound server_var(wcs_targetid) npc/combine_gunship/ping_search.wav 0.6;es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_targetid);es_xmath wcs_z1 + 50;es est_effect 11 #a 0 effects/ar2_altfire1.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 0.7 0.5 255;es est_effect 11 #a 0 sprites/physring1.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 0.7 0.8 255;es_getplayername wcs_name server_var(wcs_targetid);es_getplayername wcs_name2 server_var(wcs_tmp2);es wcs_dealdamage server_var(wcs_tmp2) server_var(wcs_targetid) server_var(wcs_tmp4);es_tell server_var(wcs_tmp2) Your Aura damaged server_var(wcs_name) for server_var(wcs_tmp4);es_tell server_var(wcs_targetid) Aura from server_var(wcs_name2) damaged you for server_var(wcs_tmp4), run away if you don't want get aura damage."
    "racealias_1p31"    "es_keygetvalue wcs_round WCSuserdata server_var(wcs_tmp2) aura_round;if (server_var(wcs_roundcounter) = server_var(wcs_round)) then es_xdelayed 1.7 wcs_dalias racealias_1p32 server_var(wcs_tmp2) server_var(wcs_tmp3) server_var(wcs_tmp4)"
    "skill3_cmd"        "es_xset wcs_name2 0;es_xset wcs_round 0;es_keysetvalue WCSUserdata event_var(userid) aura_round server_var(wcs_roundcounter);es_setinfo wcs_tmp2 event_var(userid);racealias_1p31"
    "skill3_sfx"        "0"
    // wcs_max  - maximum distance ((variable + 1) * 250), wcs_tmp11  - damage dealth with 1 wave (person will get often 1-2 hits, don't set too high)
    "skill4_setting"    "es_xset wcs_max 4;es_xset wcs_tmp11 14|es_xset wcs_max 5;es_xset wcs_tmp11 14|es_xset wcs_max 6;es_xset wcs_tmp11 14|es_xset wcs_max 7;es_xset wcs_tmp11 14|es_xset wcs_max 8;es_xset wcs_tmp11 14"
    "racealias_1p41"   "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 server_var(wcs_userid);es est_getviewcoord server_var(wcs_userid) wcs_x2 wcs_y2 wcs_z2;es_math wcs_x2 - server_var(wcs_x1);es_math wcs_y2 - server_var(wcs_y1);es_math wcs_z2 - server_var(wcs_z1);es_math wcs_x2 * server_var(wcs_x2);es_math wcs_y2 * server_var(wcs_y2);es_math wcs_z2 * server_var(wcs_z2);es_setinfo wcs_distance server_var(wcs_x2);es_math wcs_distance + server_var(wcs_y2);es_math wcs_distance + server_var(wcs_z2);es_xmath wcs_distance root 2;es_xmath wcs_distance / 250;es est_rounddecimal wcs_distance server_var(wcs_distance) 0;racealias_1p42"
    "racealias_1p42"   "es est_getviewcoord server_var(wcs_userid) wcs_x2 wcs_y2 wcs_z2;es_math wcs_x2 - server_var(wcs_x1);es_math wcs_y2 - server_var(wcs_y1);es_math wcs_z2 - server_var(wcs_z1);es_math wcs_x2 / server_var(wcs_distance);es_math wcs_y2 / server_Var(wcs_distance);es_math wcs_z2 / server_var(wcs_distance);es_xset wcs_tmp1 racealias_1p44;es_setinfo wcs_tmp2 server_var(wcs_userid);es_setinfo wcs_tmp3 server_var(wcs_x1);es_setinfo wcs_tmp4 server_var(wcs_y1);es_setinfo wcs_tmp5 server_var(wcs_z1);es_setinfo wcs_tmp6 server_var(wcs_x2);es_setinfo wcs_tmp7 server_var(wcs_y2);es_setinfo wcs_tmp8 server_var(wcs_z2);if (server_var(wcs_distance) > server_var(wcs_max)) then es_xset wcs_distance server_var(wcs_max);es_xmath wcs_distance + 1;es_setinfo wcs_tmp9 server_var(wcs_distance);racealias_1p43"
    "racealias_1p43"   "es wcs_dalias racealias_1p44 server_var(wcs_tmp2) server_var(wcs_tmp3) server_var(wcs_tmp4) server_var(wcs_tmp5) server_var(wcs_tmp6) server_var(wcs_tmp7) server_var(wcs_tmp8) server_var(wcs_tmp9) server_var(wcs_tmp10) server_var(wcs_tmp11)"
    "racealias_1p44"   "if (server_var(wcs_tmp9) > 0) then racealias_1p45"
    "racealias_1p45"   "es_math wcs_tmp3 + server_var(wcs_tmp6);es_math wcs_tmp4 + server_var(wcs_tmp7);es_math wcs_tmp5 + server_var(wcs_tmp8);es est_effect 10 #a 0 sprites/lgtning_noz.vmt server_var(wcs_tmp3) server_var(wcs_tmp4) server_var(wcs_tmp5) 40 300 2 800 300 0 20 15 164 255 100;es nearcoord wcs_targetid server_var(wcs_tmp10) server_var(wcs_tmp3) server_var(wcs_tmp4) server_var(wcs_tmp5) 300 300 300 racealias_1p46;es_xmath wcs_tmp9 - 1;es_delayed 0.4  wcs_dalias racealias_1p44 server_var(wcs_tmp2) server_var(wcs_tmp3) server_var(wcs_tmp4) server_var(wcs_tmp5) server_var(wcs_tmp6) server_var(wcs_tmp7) server_var(wcs_tmp8) server_var(wcs_tmp9) server_var(wcs_tmp10) server_var(wcs_tmp11)"
    "racealias_1p46"   "es_getplayerprop wcs_dead server_var(wcs_targetid) CCSPlayer.baseclass.pl.deadflag;if (server_var(wcs_dead) = 0) then racealias_1p47"
    "racealias_1p47"   "es wcs_dealdamage server_var(wcs_tmp2) server_var(wcs_targetid) server_var(wcs_tmp11);es_xset wcs_nameattacker 0;es_xset wcs_nametarget 0;es est_getname wcs_nameattacker server_var(wcs_tmp2);es est_getname wcs_nametarget server_var(wcs_targetid);es_tell server_var(wcs_targetid) #Green You are hit by server_var(wcs_nameattacker) with Sonic Wave Ultimate;es_tell server_var(wcs_tmp2) #Green You hit server_var(wcs_nametarget) with Sonic Wave Ultimate"
    "skill4_cmd"   "es_xset wcs_tmp10 0;es_getplayerteam wcs_tmp10 server_var(wcs_userid);if (server_var(wcs_tmp10) = 2) then es_xset wcs_tmp10 #ct;if (server_var(wcs_tmp10) = 3) then es_xset wcs_tmp10 #t;racealias_1p41"
    "skill4_sfx"        "0"
    "ultimate_cooldown" "28"
  }


for the ultimate

Code: [Select]
es_xexists wcs_exists command wcs_dalias
  if (server_var(wcs_exists) = 0) then es_xregcmd wcs_dalias wcs/WCSultimates/wcs_dalias "Executes alias with delay without loosing data"

Code: [Select]
block wcs_dalias
{

if (server_var(wcs_debug) = "1") then echo wcs_dalias start
  es_xset wcs_tmp1 0
es_xset wcs_tmp2 0
es_xset wcs_tmp3 0
es_xset wcs_tmp4 0
es_xset wcs_tmp5 0
  es_xset wcs_tmp6 0
es_xset wcs_tmp7 0
es_xset wcs_tmp8 0
es_xset wcs_tmp9 0
es_xset wcs_tmp10 0
  es_xset wcs_tmp11 0
es_xset wcs_tmp12 0
es_xset wcs_tmp13 0
es_xset wcs_tmp14 0
es_xset wcs_tmp15 0
es_xgetargv wcs_tmp1 1
es_xgetargv wcs_tmp2 2
es_xgetargv wcs_tmp3 3
es_xgetargv wcs_tmp4 4
es_xgetargv wcs_tmp5 5
es_xgetargv wcs_tmp6 6
es_xgetargv wcs_tmp7 7
es_xgetargv wcs_tmp8 8
es_xgetargv wcs_tmp9 9
es_xgetargv wcs_tmp10 10
es_xgetargv wcs_tmp11 11
es_xgetargv wcs_tmp12 12
es_xgetargv wcs_tmp13 13
es_xgetargv wcs_tmp14 14
es_xgetargv wcs_tmp15 15
es server_var(wcs_tmp1)
if (server_var(wcs_debug) = "1") then echo wcs_dalias end
}

i think that all you need for this race

Petru

  • Guest
Re: Necrolyte, H&S Project
« Reply #14 on: July 28, 2009, 07:37:55 PM »
:) we need someone to reupload all hollidays stuff :P