Code
GeSHi (eventscripts):"name" "Goblin Artificer [Magic]"
"author" "Cannon-Fodder"
"shortdescription" "A tinkerer that never should have been."
"required_level" "300"
"maximum_level" "0"
"allow_only" "0"
"teamlimit" "1"
"restrict_shop" "<cat_1><cat_2><cat_4><cat_5><cat_7>"
"preloadcmd" "0"
"player_spawn_cmd" "0"
"round_start_cmd" "0"
"round_end_cmd" "0"
"numberofskills" "5"
"numberoflevels" "4"
"skillnames" "Goblin Grenade|Fire Bomb|Alchemic Acid|Group Assault|Tinkerer"
"skilldescr" "(Attacker) Bonus damage with grenades.|(Attacker) Spawn a short-lived ward and burn your victim.|(Attacker) Poison your victim.|(Spawn) Small health and speed gain when near allies.|(Ultimate) Create more grenades."
"skillcfg" "player_attacker|player_attacker|player_attacker|player_spawn|player_ultimate"
"skill1_setting" "es_xset dam_max 10|es_xset dam_max 25|es_xset dam_max 35|es_xset dam_max 50"
"racealias_gat1" "est_IsAlive wcs_alive event_var(userid);if (server_var(wcs_alive) = 1) then racealias_gat2"
"racealias_gat2" "es_xset wcs_dmg 0;es_rand wcs_dmg 5 server_var(dam_max);es wcs_dealdamage event_var(attacker) event_var(userid) server_var(wcs_dmg);es_tell event_var(attacker) #multi #lightgreenYou have dealt#green server_var(wcs_dmg) #lightgreenExtra damage to#green event_var(es_username);es_tell event_var(userid) #multi #lightgreenYou have been dealt#green server_var(wcs_dmg) #lightgreenExtra damage by#green event_var(es_attackername)"
"skill1_cmd" "es es_xif (event_var(weapon) = hegrenade) then racealias_gat1"
"skill1_sfx" "0"
"skill2_setting" "es_xset wcs_chance 3|es_xset wcs_chance 5|es_xset wcs_chance 8|es_xset wcs_chance 12"
"racealias_ga2" "es est_burn event_var(userid) 1;es AttackWard server_var(wcs_attacker) server_var(wcs_userid);es_tell event_var(attacker) #multi #lightgreenYou have burned and created a ward on#green event_var(es_username);es_tell event_var(userid) #lightgreenYou have been burned and have had a ward placed on you by#green event_var(es_attackername)"
"skill2_cmd" "if (server_var(wcs_dice) <= server_var(wcs_chance)) then est_IsAlive wcs_alive event_var(userid);if (server_var(wcs_dice) <= server_var(wcs_chance)) then es_xif (server_var(wcs_alive) = 1) then racealias_ga2"
"skill2_sfx" "0"
"skill3_setting" "es_xset wcs_chance 4;es_xset wcs_dur 1|es_xset wcs_chance 9;es_xset wcs_dur 2|es_xset wcs_chance 14;es_xset wcs_dur 3|es_xset wcs_chance 20;es_xset wcs_dur 4"
"racealias_gap1" "if (server_var(wcs_dur) > 0) then est_IsAlive wcs_alive event_var(userid);if (server_var(wcs_dur) > 0) then es_xif (server_var(wcs_alive) = 1) then es_xdelayed 1 wcs_dealdamage event_var(attacker) event_var(userid) 2;es_math wcs_dur - 1;if (server_var(wcs_dur) > 0) then est_IsAlive wcs_alive event_var(userid);es xif (server_var(wcs_dur) > 0) then es_xif (server_var(wcs_alive) = 1) then es_xdelayed 2 wcs_dealdamage event_var(attacker) event_var(userid) 2;es_math wcs_dur - 1;if (server_var(wcs_dur) > 0) then est_IsAlive wcs_alive event_var(userid);if (server_var(wcs_dur) > 0) then es_xif (server_var(wcs_alive) = 1) then es_xdelayed 3 wcs_dealdamage event_var(attacker) event_var(userid) 2;es_math wcs_dur - 1;if (server_var(wcs_dur) > 0) then est_IsAlive wcs_alive event_var(userid);if (server_var(wcs_dur) > 0) then es_xif (server_var(wcs_alive) = 1) then es_xdelayed 4 wcs_dealdamage event_var(attacker) event_var(userid) 2;racealias gap2"
"racealias_gap2" "es_tell event_var(userid) #multi #lightgreenYou have been poisoned by#green event_var(es_attackername);es_tell event_var(attacker) #multi #lightgreenYou have poisoned#green event_var(es_username)"
"skill3_cmd" "if (server_var(wcs_dice) <= server_var(wcs_chance)) then est_IsAlive wcs_alive event_var(userid);if (server_var(wcs_dice) <= server_var(wcs_chance)) then es_xif (server_var(wcs_alive) = 1) then racealias_gap1"
"skill3_sfx" "0"
"skill4_setting" "es_xset wcs_health 1;es_xset wcs_speed .02|es_xset wcs_health 2;es_xset wcs_speed .02|es_xset wcs_health 3;es_xset wcs_speed .02|es_xset wcs_health 3;es_xset wcs_speed .05"
"skill4_cmd" "es_keysetvalue WCSuserdata event_var(userid) current_round server_var(wcs_roundcounter);es UseTeamAura server_var(wcs_health) server_var(wcs_speed) server_var(current_round) server_var(wcs_userid)"
"skill4_sfx" "0"
"skill5_setting" "es_xset wcs_chance 15;es_xset num_nade 1|es_xset wcs_chance 15;es_xset num_nade 2|es_xset wcs_chance 30;es_xset num_nade 2|es_xset wcs_chance 45;es_xset num_nade 2"
"racealias_ga5" "es_delayed 0.2 est_give event_var(userid) weapon_hegrenade;es_delayed 0.2 es est_SetAmmo event_var(userid) 4 server_var(num_nade);es_tell event_var(userid) #multi #lightgreenYou have gained#green server_var(num_nade) #lightgreenGrenades!"
"skill5_cmd" "if (server_var(wcs_dice) <= server_var(wcs_chance)) then racealias_ga5;if (server_var(wcs_dice) > server_var(wcs_chance)) then wcs_ultinotexec 1"
"skill5_sfx" "0"
"ultimate_cooldown" "10"
Code
GeSHi (eventscripts):block UseTeamAura
{
es_xset wcs_health 0
es_xset wcs_speed 0
es_xset wcs_round 0
es_xset wcs_userid 0
es_xset wcs_team 0
es_xset wcs_targetid 0
es_xset wcs_alive 0
es_xgetargv wcs_health 1
es_xgetargv wcs_speed 2
es_xgetargv wcs_round 3
es_xgetargv wcs_userid 4
ifx false(wcs_round) do
{
es_set wcs_round server_var(wcs_roundcounter)
}
es est_isalive wcs_alive server_var(wcs_userid)
ifx parse("wcs_alive == 1 and wcs_round == wcs_roundcounter") do
{
es_getplayerteam wcs_team server_var(wcs_userid)
// check teams (T=2, CT=3)
if (server_var(wcs_team) != "0") do
{
es_msg TargetPass
es_xset wcs_pcount 0
es_getlivingplayercount wcs_pcount server_var(wcs_team)
if (server_var(wcs_pcount) > 0) do
{
es_msg Buff
alias wcs_self_buff "es_msg TargetNotSelf;es est_Health server_var(wcs_userid) + server_var(wcs_health);es_keygetvalue wcs_tmp WCSuserdata server_var(wcs_userid) speed;es_math wcs_tmp float;es_math wcs_tmp + wcs_speed;if (server_var(wcs_tmp) > 1.6) then es_xset wcs_tmp 1.6;es est_Speed server_var(wcs_userid) server_var(wcs_tmp);es_xkeysetvalue WCSuserdata server_var(wcs_userid) speed server_var(wcs_speed)"
alias wcs_self_check "if (server_var(wcs_targetid) != server_var(wcs_userid)) then wcs_self_buff"
es est_Near wcs_targetid server_var(wcs_team) 225 server_var(wcs_userid) "es_exists ex userid server_var(wcs_targetid);if (server_var(ex) = 1) then wcs_self_check"
}
}
es_delayed 4 es UseTeamAura server_var(wcs_health) server_var(wcs_speed) server_var(current_round) server_var(wcs_userid)
}
}
block AttackWard
{
es_xset wcs_userid 0
es_xset wcs_target 0
es_xgetargv wcs_userid 1
es_xgetargv wcs_target 2
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_target)
es_xset wcs_duration 0
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 wcs_warden server_var(wcs_userid) 2 5 225 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)
}
For the most part, skill 1 and 2 work (though I've only tested 3 on a listen server, where wards don't show up anyway...), but all of the others have their bugs (ESPECIALLY #4) and don't work properly.
3 is something that I've briefly looked at, discovered that it was above the character/line-limit, and corrected but haven't had the chance to test yet.
4 is already registered as a command, so that isn't the problem... It even worked properly before I added a check to make sure that the player his/her self isn't going to be added into the speed/regen, so I'm assuming that's where that skill is broken. However, I want to skill to only give boosts for ALLIES within range, and not the user.
5 is simply bugged outright... It chooses a player to give the grenades to at random, it seems.
Overall, I'm pretty stumped... If anybody knows where I mis-coded, what mistakes are present, or if anything's just badly scripted, I'd really appreciate input (and of course, I'll give credit in the Author line of the code).






United States
Logged


