• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

[JASS] Very confused, please help.

Status
Not open for further replies.
Level 12
Joined
Dec 2, 2016
Messages
733
This script activates when chain lightning is casted.

So basically in this game you have a human. He is your main unit and if he dies that player loses the game.

Human has 600hp early game.

He has units that are 400hp(expendable units)

So the enemy team has to get their chain levels high enough to kill these 400hp units. This is needed for game to progress. Enemy kills these units gets gold and exp. Other team uses these units to repair a wall that protects their base.


So the problem here if I don't have this script is, if the enemy team which consists of two players with the chain lightning ability. If they get both 300dmg on their chain they can insta kill the player. So this script or what it's supposed to do is.

When player 1 uses the chain lightning ability, he does full damage. But right after the first chain is casted and hits a buff (grounded) is applied to the human(600hp unit) and then any chain after that first chain will do 60% less damage to the unit. This balances out the human, while still allowing the enemy teams to kill the 400hp unit without this buff.


So I'm really confused, when only 1 single enemy team player uses chain lightning on the human. This line below runs. The unit takes full damage from the chain and applies the buff to the unit.
JASS:
else if (GetUnitAbilityLevel(ENUM_UNIT, ID_BUFF_GROUNDED) == 0) {


But when two enemy team players both use chain at just about the same or similar time span this line runs:

JASS:
if (GetUnitAbilityLevel(ENUM_UNIT, ID_BUFF_GROUNDED) > 0) {

Now what doesn't make sense to me is that if it's a solo chain lighting attack. The buff gets applied after the damage is dealt, yet when they both use the ability at the same time the buff gets applied before even the first chain damage is dealth and they both end up doing 60% less. What am I doing wrong here that's causing this? Thanks.



JASS:
library chainOfDeath requires AbilityEvent, libMisc, libSetup {







private function removeAbil() {
UnitRemoveAbilityBJ( 'AGnd', GetEnumUnit() );
}



private function vA() {
  timer t = GetExpiredTimer();
  UnitHandle uh = GetTimerData(t); 
 
  UnitRemoveAbility(uh.u, ID_BUFF_GROUNDED);
ForGroupBJ( GetUnitsInRectAll(GetEntireMapRect()), function removeAbil);
  uh.destroy();
  ReleaseTimer(t);
}





private function eA() {
    timer t = GetExpiredTimer();
    UnitHandle uh = GetTimerData(t);
  
    UnitRemoveAbility(uh.u, ID_ABILITY_GND_BUFFPLACER);
    UnitRemoveAbility(uh.u, ID_BUFF_GROUNDED);
ForGroupBJ( GetUnitsInRectAll(GetEntireMapRect()), function removeAbil);
    uh.destroy();
    ReleaseTimer(t);
}

private function OnChainEffect() {
  unit uT = GetSpellTargetUnit();
  boolean b;
  xedamage dmg;
BJDebugMsg( "yesMain" );
  GroupEnumUnitsInRange(ENUM_GROUP, GetUnitX(uT), GetUnitY(uT), 256., null);
  for(ENUM_UNIT = EnumGroupInit(); EnumGroupCheck(); ENUM_UNIT = EnumGroupEnd()) {
    if (IsHuman(ENUM_UNIT)) {
      if (GetUnitAbilityLevel(ENUM_UNIT, ID_BUFF_GROUNDED) > 0) {
    
  
     SetUnitAbilityLevel(ENUM_UNIT, ID_BUFF_GROUNDED , 0 );
    
    
      BJDebugMsg( "yes" );

  
    
        UnitAddAbility(ENUM_UNIT, ID_ABILITY_GROUNDED);
        UnitMakeAbilityPermanent(ENUM_UNIT, true, ID_ABILITY_GROUNDED);
        TimerStart(NewTimerEx(UnitHandle.create(ENUM_UNIT)), 2.5, false, function vA);
      
      
      
      
      }
      else if (GetUnitAbilityLevel(ENUM_UNIT, ID_BUFF_GROUNDED) == 0) {
     BJDebugMsg( "yes2" );


        UnitAddAbility(ENUM_UNIT, ID_ABILITY_GND_BUFFPLACER);
        UnitMakeAbilityPermanent(ENUM_UNIT, true, ID_ABILITY_GND_BUFFPLACER);
        TimerStart(NewTimerEx(UnitHandle.create(ENUM_UNIT)), 8, false, function eA);
      }
    }
    else if (GetUnitTypeId(ENUM_UNIT) == ID_ENGINEER) {
      b = false;
      GroupEnumUnitsInRange(ENUM_GROUP2, GetUnitX(ENUM_UNIT), GetUnitY(ENUM_UNIT), 256., null);
      for(ENUM_UNIT2 = EnumGroupInit2(); EnumGroupCheck2(); ENUM_UNIT2 = EnumGroupEnd2()) {
        if (IsWall(ENUM_UNIT2) && GetOwningPlayer(ENUM_UNIT2) != GetOwningPlayer(ENUM_UNIT)) {
          b = true;
        }
      }
      if (b) {
        dmg = xedamage.create();
        dmg.damageTargetForceValue(GetSpellAbilityUnit(), ENUM_UNIT, 2000); // increased from 1000 to insta kill engineers
        dmg.destroy();
      }
    }
  }

  uT = null;
}

private function onInit() {
  AddAbilityEffectEvent(ID_ABILITY_CHAIN, OnChainEffect);
}
}
 
Level 11
Joined
May 16, 2016
Messages
730
When player 1 uses the chain lightning ability, he does full damage. But right after the first chain is casted and hits a buff (grounded) is applied to the human(600hp unit) and then any chain after that first chain will do 60% less damage to the unit. This balances out the human, while still allowing the enemy teams to kill the 400hp unit without this buff.
Don't understand. Do you need chain lightning that deals full damage, but after the cast it causes a buff for the caster that reduces damage dealt by next chain lightning? If so, then what happens with the buff after the second cast?
 
Level 13
Joined
Oct 12, 2016
Messages
769
I think I have a simpler solution.

Copy the item ability "Spell Damage Reduction" and set the spell damage reduction to .60 (60%):
- Create a trigger that adds the "Spell Damage Reduction" custom ability to the hero that gets targeted with a Chain Lightning
- Store that targeted hero in an arrayed unit variable (for each player number)
- Cast a dummy buff on targeted hero for the "Grounded" effect
- Run a trigger (ignoring conditions) with a timer. Set the timer to the same duration of the "Grounded" buff. Once the timer expires, remove "Spell Damage Reduction" from the hero stored in the variable. You may need a boolean variable to check which player number's hero is "Grounded."
 
Level 12
Joined
Mar 24, 2011
Messages
1,082
I think I have a simpler solution.

Copy the item ability "Spell Damage Reduction" and set the spell damage reduction to .60 (60%):
- Create a trigger that adds the "Spell Damage Reduction" custom ability to the hero that gets targeted with a Chain Lightning
- Store that targeted hero in an arrayed unit variable (for each player number)
- Cast a dummy buff on targeted hero for the "Grounded" effect
- Run a trigger (ignoring conditions) with a timer. Set the timer to the same duration of the "Grounded" buff. Once the timer expires, remove "Spell Damage Reduction" from the hero stored in the variable. You may need a boolean variable to check which player number's hero is "Grounded."
That would reduce all spell damage... not only Chain Lightning.
Usually there would not be only a single source of spell damage on a map, although, from the description of the problem, it sounds like that would be the case. At least for the moment.

regards
-Ned
 
Level 12
Joined
Dec 2, 2016
Messages
733
Don't understand. Do you need chain lightning that deals full damage, but after the cast it causes a buff for the caster that reduces damage dealt by next chain lightning? If so, then what happens with the buff after the second cast?

The 2nd one applies a slowing buff, but both apply the grounded ability.

That would reduce all spell damage... not only Chain Lightning.
Usually there would not be only a single source of spell damage on a map, although, from the description of the problem, it sounds like that would be the case. At least for the moment.

regards
-Ned

The only damage spell my units have is chain lighting, the others are passive or don't deal damage.

But going that route I need it to be instant, is it possible to apply the ability before the 2nd chain does damage?
 
Level 11
Joined
May 16, 2016
Messages
730
I tried that, and if you chain at the same time with two players it does full damage and not one chain full damage and the 2nd 60% less.
Maybe your asking was slightly foggy. My template works next (as I understood): Cast Chain Lightning -> Full damage, but the caster gains Grounded buff for 10 sec. The effect reduces next chain lightning damage by %.
 
Level 12
Joined
Dec 2, 2016
Messages
733
Maybe your asking was slightly foggy. My template works next (as I understood): Cast Chain Lightning -> Full damage, but the caster gains Grounded buff for 10 sec. The effect reduces next chain lightning damage by %.


Oh no I need to give the unit that the spell is casted on essentially the target unit needs to have a 60% reduction ability to spells specifically chain lightning.

So if one enemy unit uses chain on him he takes full damage, and if there's another chain used on him or at the same time the second chain will do 60% less damage to the unit.
 
Level 11
Joined
May 16, 2016
Messages
730
Oh no I need to give the unit that the spell is casted on essentially the target unit needs to have a 60% reduction ability to spells specifically chain lightning.

So if one enemy unit uses chain on him he takes full damage, and if there's another chain used on him or at the same time the second chain will do 60% less damage to the unit.

Hit by chain lightning grants the Grounded effect to DAMAGED unit, that reduces chain lightning damage by %. All is configurated in the START CASTING trigger.
 

Attachments

  • CL+GROUND BUFF.w3x
    31.2 KB · Views: 43
Level 12
Joined
Dec 2, 2016
Messages
733
Hit by chain lightning grants the Grounded effect to DAMAGED unit, that reduces chain lightning damage by %. All is configurated in the START CASTING trigger.

I've tested it, made two of the heroes. And if you chain at the same time or even nearly the same time both chains do full damage.

I set their HP to 1000, and when both chains hit the worker was left with 400hp. If the chain reduction was placed before the second chain went off the unit would be left with.


1000-300-120(60% of 300) = 580 hp left.
 
Level 11
Joined
May 16, 2016
Messages
730
I've tested it, made two of the heroes. And if you chain at the same time or even nearly the same time both chains do full damage.

I set their HP to 1000, and when both chains hit the worker was left with 400hp. If the chain reduction was placed before the second chain went off the unit would be left with.
To put the buff you need around 0.5 sec to wait. It could be faster but Idk how it'll affect on the system.
Here is slightly impoved (slightly complicated variant) that allows to detect instantly.
 

Attachments

  • CL+GROUND BUFF.w3x
    31.3 KB · Views: 55
Level 12
Joined
Dec 2, 2016
Messages
733
To put the buff you need around 0.5 sec to wait. It could be faster but Idk how it'll affect on the system.
Here is slightly impoved (slightly complicated variant) that allows to detect instantly.

So now the ability is being applied before the first damage is done, sorry I'm not sure what you changed to make it apply the ability before the damage is dealt.
I appreciate your help very much.
 
Level 12
Joined
Dec 2, 2016
Messages
733
Why before????? The ability is applied at the moment of damage. I really don't get it...

Test it yourself, if two units chain at the same time they both do 60% less damage. It's even less than just one single player using the ability doing full damage.

60% less damage of 300 = 120

120* 2 = 240

They do 240 damage if they chain at the same time, vs one player chaining without the ability activated doing 300 damage.

In my game it's normal for the enemy units to get to a chain level that does about 300 damage for each unit (max of two hero units with these abilities)

But it's not normal for them to kill the main human units (600hp) with two chains, they should be able to kill the 400hp expendable units with ease if they chain at the same time. But this grounded 60% reduction needs to activate after the first damage is dealt so these enemy units can have a high chain dmg to kill the 400hp units while not being able to kill the 600hp units so easily (without them both practically maxing their chain abilities)

If that makes sense :/


15:11 this is an example of the game, you can see my main human is at the wall repairing (600hp)

Then I blink those furbolgs which are the 400hp unit, they are dispensable and used to repair the wall. It should be easy for the vampires to kill these 400hp units, the more damage they have on their chain lightning the more bears they can kill with the ricochet effect.

Their max chain level is 15, which ends up being 475 damage.

They can acquire 300 damage fairly fast in the game, which is good for them because eventually they can kill the furbolgs on their own without having to chain at the same time, but this means if they both had 300 damage without the buff/effect if they chain at the same time they can insta kill the human ending that players game. There is a human HP upgrade in the game, but it's not needed until much later in the game since the grounded effect is supposed to force the vampires to get a much higher chain level so that one chain (full damage) + another chain 60% less adds up to 600 damage. And at that point if the human still hasn't upgraded his HP then he will die from the chain. But at that point it will be later in the game and more fair for the human players.
 
Last edited:
Level 12
Joined
Dec 2, 2016
Messages
733
Dude, I told you in my template is that you needed. In the template in the configuration GROUNDED reduction is set to 40%. You can set another value to check.

I don't understand what you mean, I don't want when both units use chain at the same time to apply a reduction that applies for both chains.

I only want the 2nd chain to have a reduction.

Right now, if one player chains he does full damage. And any chain after that the other chain does 40% less.

But if they chain at the same time they both do 40% less damage. I need this so even if they chain at the same time the first chain does full damage while the second chain (which is casted at the same time) does 40% less.

I've tried altering your code but can't seem to get it to work.



I tried adding a integer variable that when the first chain is casted check if variable = 0, and if it is don't add buff. And add +1 to the variable, and then when the trigger runs again if the variable is = 1 then add the buff. It's messaging "full damage" and then all other chains after are semi damage. Yet it's not doing full damage to the first chain and is instead applying the buff before damage is dealt.



  • DDS
    • Events
      • Game - GDD_Event becomes Equal to 0.00
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of AA Dummy Chain for GDD_DamageSource) Greater than 0
        • Then - Actions
          • Set Temp_unit[0] = GDD_DamageSource
          • Set Temp_unit[1] = GDD_DamagedUnit
          • Custom script: set udg_integer[0] = GetHandleIdBJ( udg_Temp_unit[0] )
          • Custom script: set udg_integer[1] = GetHandleIdBJ( udg_Temp_unit[1] )
          • Hashtable - Save (Load 3 of integer[0] from HASH_CASTING) as 0 of integer[1] in HASH_CASTING
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Temp_unit[1] is in GLOBALGROUP_GROUND) Not equal to True
            • Then - Actions
              • Custom script: set udg_Temp_timer = CreateTimerBJ(false, 0.50)
              • Trigger - Add to PERIOD <gen> the event (Time - Temp_timer expires)
              • Custom script: set udg_integer[3] = GetHandleIdBJ( udg_Temp_timer )
              • Unit Group - Add Temp_unit[1] to GLOBALGROUP_GROUND
              • Hashtable - Save Handle OfTemp_unit[1] as 0 of integer[3] in HASH_CASTING
            • Else - Actions
          • Set Temp_unit[2] = (Load 0 of integer[0] in HASH_CASTING)
          • Set Temp_real[0] = (Load 1 of integer[0] from HASH_CASTING)
          • Set Temp_real[1] = (Load 2 of integer[0] from HASH_CASTING)
          • Set Temp_ability[1] = AA Book (Grounded)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • reset Equal to 0
            • Then - Actions
              • Game - Display to (All players) the text: full damage
              • Set reset = 1
              • Trigger - Turn on Reset <gen>
              • Trigger - Run Reset <gen> (checking conditions)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • reset Greater than 0
            • Then - Actions
              • Game - Display to (All players) the text: semi damage
              • Unit - Add Temp_ability[1] to Temp_unit[1]
              • Trigger - Turn on Reset <gen>
              • Trigger - Run Reset <gen> (checking conditions)
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (Temp_unit[1] has buff Grounded ) Equal to True
                  • (Level of Temp_ability[1] for Temp_unit[1]) Greater than 0
            • Then - Actions
              • Set Temp_real[0] = (Temp_real[0] x ((100.00 - (Load 4 of integer[0] from HASH_CASTING)) / 100.00))
            • Else - Actions
          • Unit - Cause Temp_unit[2] to damage Temp_unit[1], dealing Temp_real[0] damage of attack type Spells and damage type Enhanced
          • Hashtable - Save ((Load 1 of integer[0] from HASH_CASTING) x ((100.00 - (Load 2 of integer[0] from HASH_CASTING)) / 100.00)) as 1 of integer[0] in HASH_CASTING
        • Else - Actions

// here is the reset variable trigger

  • Reset
    • Events
    • Conditions
    • Actions
      • Wait 6.00 seconds
      • Game - Display to (All players) the text: reset
      • Set reset = 0
      • Trigger - Turn off (This trigger)
 
Rugarus, I made simple solution for you without any requirements.
I uses new 1.29 native to manipulate damage at event "unit takes damage".
However it uses dummy caster for "chain" spell. Vampire hero uses channel-based ability, dummy uses ability that deals damage (chain lightning based). As a "Ability Gounded" I used devotion aura, hidden on UI (coords:0,-11) with buff and effect visible on unit.
In trigger "humanDmg" add all pre-placed Human units (there are 10 for 10 players I guess?)
It uses "wait-game-time" function so it is save. Good luck.
 

Attachments

  • vampirism.w3x
    19.5 KB · Views: 52
Level 12
Joined
Dec 2, 2016
Messages
733
Rugarus, I made simple solution for you without any requirements.
I uses new 1.29 native to manipulate damage at event "unit takes damage".
However it uses dummy caster for "chain" spell. Vampire hero uses channel-based ability, dummy uses ability that deals damage (chain lightning based). As a "Ability Gounded" I used devotion aura, hidden on UI (coords:0,-11) with buff and effect visible on unit.
In trigger "humanDmg" add all pre-placed Human units (there are 10 for 10 players I guess?)
It uses "wait-game-time" function so it is save. Good luck.

Thank you! also thanks everyone for your help.
 
Level 11
Joined
May 16, 2016
Messages
730
But if they chain at the same time they both do 40% less damage. I need this so even if they chain at the same time the first chain does full damage while the second chain (which is casted at the same time) does 40% less.
Just like in my template. You can see it in the DDS trigger. Damage caused value is Temp_real[0]. You can use Display [ convert real to string ] Temp real[0]
I've tried altering your code but can't seem to get it to work.
It works 100%.

P.S. Your "reset" system is kinda wrong. Better use "Display message" AFTER Damage string in DDS trigger with Temp_real[0] variable to see it.
 
Level 12
Joined
Dec 2, 2016
Messages
733
Rugarus, I made simple solution for you without any requirements.
I uses new 1.29 native to manipulate damage at event "unit takes damage".
However it uses dummy caster for "chain" spell. Vampire hero uses channel-based ability, dummy uses ability that deals damage (chain lightning based). As a "Ability Gounded" I used devotion aura, hidden on UI (coords:0,-11) with buff and effect visible on unit.
In trigger "humanDmg" add all pre-placed Human units (there are 10 for 10 players I guess?)
It uses "wait-game-time" function so it is save. Good luck.

How do I use the event 'takes damage' so that it's not a specific player. My units get spawned once the game starts and are not preexisting. I can't seem to assign this event to a variable or unit group.
 
After creating Human unit you have to add new event to "humanDmg" trigger for example like this:
  • spawnHuman
    • Events
      • Player - Player 1 (Red) types a chat message containing spawn as An exact match
    • Conditions
    • Actions
      • Unit - Create 1 Peasant for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing degrees
      • Trigger - Add to humanDmg <gen> the event (Unit - (Last created unit) Takes damage)
I thought Human units are preplaced and removed for empty slots (leaving players) after the game starts:)
 

Attachments

  • vampirism.w3x
    19.8 KB · Views: 50
Level 12
Joined
Dec 2, 2016
Messages
733
After creating Human unit you have to add new event to "humanDmg" trigger for example like this:
  • spawnHuman
    • Events
      • Player - Player 1 (Red) types a chat message containing spawn as An exact match
    • Conditions
    • Actions
      • Unit - Create 1 Peasant for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing degrees
      • Trigger - Add to humanDmg <gen> the event (Unit - (Last created unit) Takes damage)
I thought Human units are preplaced and removed for empty slots (leaving players) after the game starts:)

Thanks!
 
Level 12
Joined
Dec 2, 2016
Messages
733
After creating Human unit you have to add new event to "humanDmg" trigger for example like this:
  • spawnHuman
    • Events
      • Player - Player 1 (Red) types a chat message containing spawn as An exact match
    • Conditions
    • Actions
      • Unit - Create 1 Peasant for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing degrees
      • Trigger - Add to humanDmg <gen> the event (Unit - (Last created unit) Takes damage)
I thought Human units are preplaced and removed for empty slots (leaving players) after the game starts:)

So when I compile all the other scripts in my map, I get this error.

Screenshot - 6bb35c941b8b89dbc8a96cc070870809 - Gyazo


  • humanDmg
    • Events
      • Unit - Peasant 0068 <gen> Takes damage
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Level of Ability Grounded for (Triggering unit)) Greater than 0
        • Then - Actions
          • Event Response - Set Damage of Unit Damaged Event to ((Damage taken) x 0.60)
        • Else - Actions
          • Unit - Add Ability Grounded to (Triggering unit)
          • Trigger - Run abiGroundedTimed <gen> (ignoring conditions)
      • -------- ---- --------

  • spawnHuman
    • Events
      • Unit - A unit enters (Entire map)
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Triggering unit)) Equal to Human h010
        • Then - Actions
          • Trigger - Add to humanDmg <gen> the event (Unit - (Triggering unit) Takes damage)
        • Else - Actions

  • abiGroundedTimed
    • Events
    • Conditions
    • Actions
      • Custom script: local unit u=GetTriggerUnit()
      • Wait 10.00 game-time seconds
      • -------- remove "Ability Grounded" --------
      • Custom script: call UnitRemoveAbility(u, 'A044')
      • Custom script: set u=null

  • vampire
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Chain of Death Fake
    • Actions
      • Unit - Create 1 Dummy (chain lightning caster) for (Triggering player) at (Position of (Triggering unit)) facing Default building facing degrees
      • Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
      • Unit - Set level of Chain of Death for (Last created unit) to (Level of Chain of Death Fake for (Triggering unit))
      • Unit - Order (Last created unit) to Orc Far Seer - Chain Lightning (Target unit of ability being cast)
Any idea why this is happening?

I can save the map, but when I compile the map with scripts using jass helper it gives me that error.
 
Last edited:
Level 12
Joined
Dec 2, 2016
Messages
733
This solution works for new 1.29 game patch, what editor you use?
I'm using the sharpcraft world editor bundle, I'm not sure where you check the version?

But I opened your file in the same WE. And ran it and it worked. But I compile vJass +Zinc scripts into this map after saving it. (Saving works) But when I compile the map scripts using codhar's jasshelper it gives me this error.
 
Level 12
Joined
Dec 2, 2016
Messages
733
I'm also using Sharpcraft WEX with JAssHelper and vJass enabled. But it uses Vexorian jasshelper not cohadar's. Try to use Vexorian. I assume that you have War3 updated, and Sharpcraft profiles configured properly (path to 1.29 game set up).

Vexorian doesn't seem to read some of the syntax used on these scripts. I normally get this error when saving the WC3 map itself

:Screenshot - 942284204c94039a632665960b32c306 - Gyazo

But now I got this when compiling the scripts to the map.

I have to stick with codhar it seems. Where abouts do I check/set the profiles for sharpcraft?
 
Level 12
Joined
Dec 2, 2016
Messages
733
SharpCraft.Launcher.exe - profiles
Did you write your scripts yourself or they are imported?
It shouldn't be a problem to rewrite part of your script to vexorian version
like for i=0 to 2 endfor
change to loop-endloop syntax

The map was cracked and the source files were handed to me to continue updates on the map(Since I'm the only one who has interest and has a bit of knowledge on this stuff). Only some of the scripts are completely written by me and were written in vJass. But the majority of the scripts were written by previous developers of the map using Zinc, Jass and vJass.

I re-wrote the loops and fixed those issues, now running into this error.

Screenshot - da81cd36b73c8546f7f144232671eadf - Gyazo

I noticed there was a for loop in this script, I'm not sure how I would re-write this loop using a normal Jass loop. (not sure if the for loop is the cause of the main issue reported in the error above ^ but

JASS:
for pc = pc downto 0

I don't understand what 'downto' means.






And regarding the profiles, I assume located here: Screenshot - 261d99a1cc2eddfb6c8c8884f31b4870 - Gyazo

I opened the XML files, and the address is this:
JASS:
 <?xml version="1.0"?>
In all those folders in each profile file it didn't say anything about 1.29, unless I'm looking in the wrong area.
 
By configuring Sharpcraft profile I mean just set proper path here:
sharpcraftProfile.jpg
to 1.29 game.
Because I'm not a progammer I cannot offer you advanced hep with Zinc (by the way I never used this language, only jass, vjass)
 
Status
Not open for further replies.
Top