**************************************************************************************
Hello world!

(Don't read following text if you don't want introduction and just play the race)

Hello, that's my first race! I'm so proud that I can release it right now, after about
50 hours spent on making and debugging this race. I'm also proud that we can have there,
on wc3source.de, that so good people who helped me - StinkyFax, HOLLIDAY or Phat_Wizard.
They've helped me alot - StinkyFax - learning ES and EST, debugging and checking my new
and newest codes, and also he allowed me to take some of his code from his races and
modify it. Of course it's not 100% copy & paste from his great races. HOLLIDAY helped me
with second skill - for real, we were just making it and making until he made full, 100% 
working version. He also made graphics. Phat_Wizard gave me bunch of tips which helped 
me too - thanks. Sorry I didn't put you into authors, but you are here.

Big thanks to guy called [A]im3d^ - he helped me MUCH in beta-testing!

Also thanks for DotA map from Icefrog. Much thanks.

(Here ends my introduction)

(Here starts what hero can do)

Spirit Lance - Slow enemy by 10-40% for 0.5-2.5 seconds and damage him for 20 hit points. Chance is 15%.
Juxtapose - You got 5-10% chance to spawn an image of yourself when you hit someone. Note: chance may be increased by increasing level of Ultimate.
Doppelwalk - When attacked, have a 15% chance to become 100% invisible for 0.8-2 seconds and then slighty invisible for 10 seconds.
Phantom Edge - Ultimate - Get 15% evade and increase your Juxtapose chance by 2-10%.

(Here ends what hero can do)

(Here starts what are requirements or recommends and suggestions)

I highly recommend you to have, depending on number of your reserved slot players and admins (and how often they are on server),
some... reserved slots. Yes, second skill called Juxtapose uses reserved slots and you can't stop this from happening. 
For example if you haven't more than 2 admins (including you), set reserved slots in Mani's Admin Plugin config to 3. And if you
have 3 admins USUALLY playing, set reserved slots to 4. I don't think that all reserved slot users are playing same time.
In easiest way: just keep your server have 1 slot free - always.

You need newest Warcraft Source to run this race.

(Here ends what I recommend)

There are few custom things so get some juice or beer before installing.

Copy & paste this code into your es_WCSraces_db.txt file. Don't forget change "XX" to proper race number!

**************************************************************************************

"36"
  {
    "name"              "[DotA]Phantom Lancer"
    "author"            "Frodo, StinkyFax, HOLLIDAY"
    "shortdescription"  "Hero that specializes in tricking enemies."
    "required_level"    "50"
    "maximum_level"     "0"
    "allow_only"        "0"
    "teamlimit"         "1"
    "preloadcmd"        "0"
    "player_spawn_cmd"  "es_keysetvalue WCSuserdata event_var(userid) abc 0"
    "round_start_cmd"   "0"
    "round_end_cmd"     "es es_xdelayed 1 bot_kick gunner;es es_xdelayed 1 bot_kick wolf"
    "numberofskills"    "4"
    "numberoflevels"    "5"
    "skillnames"        "Spirit Lance|Juxtapose|Doppelwalk|Phantom Edge"
    "skilldescr"        "Slow enemy by 10-40% for 0.5-2.5 seconds \nand damage him for 10 hit points.\nChance is 10%.|You got 5-10% chance to spawn \nan image of yourself when you hit someone.|When attacked, have a 15% chance\n to become 100% invisible\n for 0.8-2 seconds and then slighty\n invisible for 10 seconds.|Get 15% evade and increase your Juxtapose\n chance by 2-10%."
    "skillcfg"          "player_attacker|player_attacker|player_victim|player_spawn"

    "skill1_setting"    "es_xsetinfo wcs_speed 0.90;es_xsetinfo wcs_duration 0.5;|es_xsetinfo wcs_speed 0.85;es_xsetinfo wcs_duration 1|es_xsetinfo wcs_speed 0.80;es_xsetinfo wcs_duration 1.5|es_xsetinfo wcs_speed 0.70;es_xsetinfo wcs_duration 2|es_xsetinfo wcs_speed 0.60;es_xsetinfo wcs_duration 2.5"
    "racealias_slw"     "es wcs_dealdamage event_var(attacker) event_var(userid) 10;es est_speed event_var(userid) server_var(wcs_speed);es es_xdelayed server_var(wcs_duration) wcs_removefx speed event_var(userid);es_tell event_var(attacker) #green You've slowed  enemy and damaged him for 10 damage.;es_tell event_var(userid) #green You've been slowed by event_var(es_attackername)!"
    "skill1_cmd"        "es es_xif (server_var(wcs_dice) <= 25) then racealias_slw"
    "racealias_plsf1"   "es_getplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es_getplayerlocation wcs_x2 wcs_y2 wcs_z2 event_var(userid);es_xmath wcs_z1 + 40;es_xmath wcs_z2 + 40;es est_effect 3 #a 0 sprites/laserbeam.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) 2 2 2 154 209 209 220"
    "skill1_sfx"        "es es_xif (server_var(wcs_dice) <= 25) then racealias_plsf1"

    "skill2_setting"    "es_xsetinfo wcs_bott 6;es_setinfo wcs_chance 5|es_xsetinfo wcs_bott 7;es_setinfo wcs_chance 6|es_xsetinfo wcs_bott 8;es_setinfo wcs_chance 7|es_xsetinfo wcs_bott 9;es_setinfo wcs_chance 8|es_xsetinfo wcs_bott 10;es_setinfo wcs_chance 10"
    "racealias_jxts"    "es es_xif (server_var(wcs_team) = 2) then est_spawn gunner 1;est_StripPlayer gunner 0;es es_xif (server_var(wcs_team) = 2) then est_teleport gunner event_var(attacker);es_delayed 0.3 es est_Give gunner weapon_knife;es_delayed 0.4 es est_Give gunner server_var(wcs_wpa);es_delayed 0.5 es est_Give gunner server_var(wcs_wsa);es es_xif (server_var(wcs_team) = 3) then es est_spawn wolf 1;est_StripPlayer wolf 0;es es_xif (server_var(wcs_team) = 3) then es est_teleport wolf event_var(attacker);es_delayed 0.3 es est_Give wolf weapon_knife;es_delayed 0.4 es est_Give wolf server_var(wcs_wpa);es_delayed 0.5 es est_Give wolf server_var(wcs_wsa);es_tell event_var(attacker) #green You just made an image of yourself.;es_xsetinfo wcs_wpa 0;es_xsetinfo wcs_wsa 0;racealias_bot22"
    "racealias_botkll2" "es es_xif (server_var(wcs_team) = 2) then es_xdelayed server_var(wcs_bott) bot_kick gunner;es es_xif (server_var(wcs_team) = 3) then es_xdelayed server_var(wcs_bott) bot_kick wolf;es es_xif (server_var(wcs_team) = 3) then es_xdelayed 2 ma_renderfx wolf 16;es es_xif (server_var(wcs_team) = 2) then es_xdelayed 2 ma_renderfx gunner 16"
    "racealias_bot22"   "es est_GetViewCoord event_var(attacker) wcs_x1 wcs_y1 wcs_z1;es es_xif (server_var(wcs_team) = 2) then est_setViewCoord gunner server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1);es es_xif (server_var(wcs_team) = 3) then est_setViewCoord wolf server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1);racealias_botkll2"
    "skill2_cmd"        "es_keygetvalue wcs_juxtpc wcsuserdata event_var(attacker) phanjuxt;es_math wcs_chance + server_var(wcs_juxtpc);es es_xif (server_var(wcs_dice) <= server_var(wcs_chance)) then racealias_bot21"
    "racealias_bot21"   "es_xsetinfo wcs_wpa 0;es_xsetinfo wcs_wsa 0;es est_GetPrimary wcs_wpa event_var(attacker);es est_Getsecondary wcs_wsa event_var(attacker);es es_xgetplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es es_xif (server_var(wcs_team) = 2) then bot_add t gunner;es es_xif (server_var(wcs_team) = 3) then bot_add ct wolf;if (server_var(wcs_team) = 2) then es_xsetinfo gunner event_var(attacker);if (server_var(wcs_team) = 3) then es_xsetinfo wolf event_var(attacker);racealias_jxts"
    "racealias_sfxh1"   "es es_xgetplayerlocation wcs_x1 wcs_y1 wcs_z1 event_var(attacker);es_xmath wcs_z1 + 40;es est_effect 10 #a 0 sprites/640hud9.vmt server_var(wcs_x1) server_var(wcs_y1) server_var(wcs_z1) 950 190 3 150 100 0 155 115 100 200 1"
    "skill2_sfx"        "es es_xif (server_var(wcs_dice) <= server_var(wcs_chance)) then racealias_sfxh1"

    "skill3_setting"    "es_xsetinfo wcs_chance 3;es_xsetinfo wcs_dw 0.8|es_xsetinfo wcs_chance 5;es_xsetinfo wcs_dw 1|es_xsetinfo wcs_chance 8;es_xsetinfo wcs_dw 1.3|es_xsetinfo wcs_chance 10;es_xsetinfo wcs_dw 1.7|es_xsetinfo wcs_chance 15;es_xsetinfo wcs_dw 2"
    "skill3_cmd"        "if (server_var(wcs_dice) <= server_var(wcs_chance)) then racealias_slz"
    "racealias_slz"     "es_keysetvalue WCSuserdata event_var(userid) abc 2;es est_setplayercolor event_var(userid) 255 255 255 0 1;es_tell event_var(userid) #green You got invisibility for server_var(wcs_dw) sec.;es_setinfo wcs_tmp3 event_var(userid);es_delayed server_var(wcs_dw) wcs_dalias racealias_slz2 server_var(wcs_tmp3) 130;es_delayed server_var(wcs_dw) wcs_dalias racealias_slz2 250 server_var(wcs_tmp3)"
    "racealias_slz2"	"es_keygetvalue wcs_abc wcsuserdata server_var(wcs_tmp3) abc;if (server_var(wcs_abc) > 0) then est_setplayercolor server_var(wcs_tmp3) 255 255 255 server_var(wcs_tmp2) 1;if (server_var(wcs_abc) = 2) then es_xtell server_var(wcs_tmp3) #green You are now particaly visible.;if (server_var(wcs_abc) = 1) then es_xtell server_var(wcs_tmp3) #green You are total visible now.;if (server_var(wcs_abc) = 1) then es_xkeysetvalue WCSuserdata event_var(userid) abc 0;if (server_var(wcs_abc) = 2) then es_xkeysetvalue WCSuserdata event_var(userid) abc 1"
    "skill3_sfx"        "0"

    "skill4_setting"    "es_xsetinfo wcs_juxtpc 2;es_xsetinfo wcs_phanulti 5|es_xsetinfo wcs_juxtpc 4;es_xsetinfo wcs_phanulti 8|es_xsetinfo wcs_juxtpc 6;es_xsetinfo wcs_phanulti 11|es_xsetinfo wcs_juxtpc 8;es_xsetinfo wcs_phanulti 13|es_xsetinfo wcs_juxtpc 10;es_xsetinfo wcs_phanulti 15"
    "skill4_cmd"        "es_keysetvalue wcsuserdata event_var(userid) phanjuxt server_var(wcs_juxtpc);es_keysetvalue WCSuserdata event_var(userid) phanulti server_var(wcs_phanulti);es_tell event_var(userid) #green Now your Juxtapose chance is increased by server_var(wcs_juxtpc) and chance to evade is server_var(wcs_phanulti)% now!"
    "skill4_sfx"        "0"
  }

**************************************************************************************
Open es_wcs.txt.
Modify event player_death for skill 3 working:
Find those lines:

  es es_xif (server_var(wcs_deathcheck) = 1) do
  {

Then click after "{" and hit enter. Now, copy & paste this code.
**************************************************************************************

    es es_xexists wcs_exists key WCSuserdata event_var(attacker)
    es es_xif (server_var(wcs_exists) = 1) do
    {
	es_xsetinfo wcs_bot 0
	es_isbot wcs_bot event_var(attacker)
	if (server_var(wcs_bot) = 1) then es_xif (event_var(es_attackername) = wolf) then est_killadd server_var(wolf) 1
	if (server_var(wcs_bot) = 1) then es_xif (event_var(es_attackername) = wolf) then es_xtell server_var(wolf) #lightgreen You have extra score because of your image kill.
	if (server_var(wcs_bot) = 1) then es_xif (event_var(es_attackername) = gunner) then est_killadd server_var(gunner) 1
	if (server_var(wcs_bot) = 1) then es_xif (event_var(es_attackername) = gunner) then es_xtell server_var(gunner) #lightgreen You have extra score because of your image kill.
    }	

**************************************************************************************
Open es_wcs.txt.
Modify event player_hurt(player_victim) for skill 3 working:
Find those lines:

    es es_xexists wcs_exists key WCSuserdata event_var(attacker)
    es es_xif (server_var(wcs_exists) = 1) do
    {

Then click after "{" and hit enter. Now, copy & paste this code.
**************************************************************************************

      es_keygetvalue wcs_abc WCSuserdata event_var(attacker) abc
      if (server_var(wcs_abc) = 1) do
      {
	es est_setplayercolor event_var(attacker) 255 255 255 255 1
        es_tell event_var(attacker) #multi #green You broke your#lightgreen invisibility.
        es_keysetvalue wcsuserdata event_var(attacker) abc 0

      }

**************************************************************************************
Open es_wcs.txt.
Modify event player_hurt(player_victim) for skill 4 (ultimate) working:
Find those lines:
    es es_xexists wcs_exists key WCSuserdata event_var(userid)
    es es_xif (server_var(wcs_exists) = 1) do
    {

Be aware, there are many lines like this one, so, to be sure it's the right one, check 
if few lines lower there is such as code:
        // check race skills
        es wcs_checkskills event_var(userid) "player_victim"
        // check for custom item action
        es wcs_checkevents event_var(userid) "WCSphv"
If yes, go back to first code, click after "{" and hit enter for new string. Now, copy
and paste this code.
**************************************************************************************
      es_keygetvalue wcs_phanulti WCSuserdata event_var(userid) phanulti
      if (server_var(wcs_phanulti) > 0) do
	{
	es est_isalive wcs_alive event_var(userid)
	es_xsetinfo wcs_checked 1
	if (server_var(wcs_alive) != 1) then es_xsetinfo wcs_checked 0
	if (server_var(wcs_checked) = 1) do
		{
		alias wcs_phan_ulti "if (server_var(wcs_dice) <= server_var(wcs_phanulti)) then est_health server_var(wcs_phantom) + server_var(wcs_phanevad);if (server_var(wcs_dice) <= 15) then es_tell server_var(wcs_phantom) #green Enemy's bullet missed you!"
		es_setinfo wcs_phantom event_var(userid)
		es_setinfo wcs_phanevad event_var(dmg_health)
		wcs_phan_ulti
		}
	}

**************************************************************************************
Again, it's es_wcs.txt.
Now, we will edit starting key values from WCSuserdata. Go and find this line:

    es es_xkeysetvalue WCSuserdata event_var(userid) "longjump" "0"

Click after " "0" ", hit enter and then copy and paste this code:
**************************************************************************************

    es es_xkeysetvalue WCSuserdata event_var(userid) "abc" "0"
    es es_xkeysetvalue WCSuserdata event_var(userid) "phanulti" "0"

**************************************************************************************
And again, it is es_wcs.txt.
Nah, don't think we already finished. Find this line:

  es_xsetinfo wcs_adminff 0

Click after "0" and hit enter. Copy and paste this code now.
**************************************************************************************

  es_xsetinfo wcs_abc 0
  es_xsetinfo wcs_phanulti 0

**************************************************************************************

Close and save es_wcs.txt. Instalation of the race is finished, enjoy!
