Archived copy of warcraft-source.com, the Warcraft: Source (WCS) forum (2007–2011), rebuilt from the Internet Archive by wc3mods.net. This page was captured on 2009-10-25 (original capture). Home · Forum · All archived topics · Downloads
Warcraft-Source.com - WCS mod for CSS
October 25, 2009, 01:59:46 AM *
Welcome, Guest. Please login or register.
Login with username, password and session length
News: Join the new Facebook Warcraft-Source.com Group! It has been currently opened!
Join!
Google  
  Home   Forum   Help Search Login Register   *
Pages: [1]   Go Down
  Print  
This topic has not yet been rated! You have not rated this topic. Select a rating:
Author Topic: Goblin Artificer skill problems...  (Read 28 times)
Cannon-Fodder
Level 1 Trained Beginner
*
Offline Offline

United States United States

Posts: 31


Skittles, rainbow, skittles, rainbow... @_@


« on: October 22, 2009, 07:05:26 AM »

Alright, so in my Goblin Artificer race, I have a few skills that I've been tinkering at coding that don't seem to work right at all...


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).
Logged

Yiyas
Level 7 Expert
*****
Offline Offline

United Kingdom

Posts: 191


The name's Bugger. De-Bugger.



no1yiyas
no1yiyas
« Reply #1 on: October 22, 2009, 08:54:45 AM »

With your block you'll have to do a "if team = 2 then set target #t!d" as you cant use simply 2 or 3 it has to be either #2 #t or !ct!d to target terrorists. For the ultimate, the player is always server_var(wcs_userid). Ultimate isn't an event in the game, its an added command so it comes out as server_vars only. The attack ward needs to have duration and damage and radius put on it, as it does nothing as it stands right now.

Not much time atm so that might not be all the bugs but it'll sort most of it out Wink

Oh and, really nice race.
Logged

Cannon-Fodder
Level 1 Trained Beginner
*
Offline Offline

United States United States

Posts: 31


Skittles, rainbow, skittles, rainbow... @_@


« Reply #2 on: October 24, 2009, 06:02:14 PM »

Thanks! I had no idea that you needed server_var(wcs_userid) in the ultimate line if it wasn't a block. xD

As for the ward, even though there's no radius/damage/duration set in the skill code, it's set in the block's reference as 2 duration, 5 damage, 225 radius (I know it's big, but it'll be shrunk again after I playtest it a bit).

So pretty much, just changed this to include the team/notdead Tongue
Code
GeSHi (eventscripts):
 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 2
   es_xset wcs_team_targetn "#t!d"
   }
 if (server_var(wcs_team) = 3) do
   {
   es_xset wcs_team_target 3
   es_xset wcs_team_targetn "#c!d"
   }  
 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 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_teamtargetn) 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)
 }
}

And thanks for the compliment. X3  I've been trying to hand-code as much as possible to get a better feel of it all, and think that for the most part, my races are turning out pretty well.
Logged

Pages: [1]   Go Up
  Print  
 
Jump to:  

Last 7 Shouts:
Today at 12:38:46 AM
yeah i know but were can i find 'em?
October 24, 2009, 08:28:39 PM
In Holliday's Art of Race-Making, he's got a bunch of pre-coded ultimates. Just remember to give credit. :p
October 24, 2009, 07:23:43 PM
Some1 there now were to find a ultimate block list with (if u can) all ultimates blocks! THX
October 24, 2009, 05:45:36 PM
chuck this technic doesn't work anymore, steam now prevents the steam:/ protocol from being used within a motd window Tongue
October 24, 2009, 05:28:00 PM
i prefer you guys to use, google chrome....
October 24, 2009, 04:08:15 PM
still need some help on me stuff...
October 24, 2009, 06:57:24 AM
anyone know the command to put in motd... that if someone join my server it will redict them to other server... i forgot the command...
Recent
[Today at 01:10:29 AM]

by MiiX
[Today at 12:49:48 AM]

by MiiX
[Today at 12:32:20 AM]

[Today at 12:28:45 AM]

[Today at 12:03:42 AM]

[October 24, 2009, 11:59:22 PM]

by MiiX
[October 24, 2009, 11:26:31 PM]

by MiiX
[October 24, 2009, 11:14:45 PM]

[October 24, 2009, 10:54:27 PM]

[October 24, 2009, 09:47:13 PM]
Theme switch

Powered by MySQL Powered by PHP Powered by SMF 1.1.10 | SMF © 2006-2009, Simple Machines LLC
TinyPortal v0.9.8 © Bloc
Valid XHTML 1.0! Valid CSS!
Page created in 0.666 seconds with 24 queries.