|
|
#16 | ||
|
User
|
Quote:
Mmm, if I do this I'll probably have to scrap the whole coast area, since the murlocs would be inland while the undead are on the border. Unless, you add a new wave before the murlocs/goblins. I think that mud golems would work for round 2: maybe they were awaken by the goblin's exavations. The area would be a "natural cave" while the third section would be a mine, then the Mine entrance would lead to the coast, a.k.a. the murloc's section. This would let me keep most of the stuff I already did, I'd just have to move some props up to add enough space for another section. Also: More or less, how much space do you want for each section? Not counting the props, each section has a height of 9 (almost two vertical doors next to eachother). Quote:
Keep in mind that there is only 7 free points for tilesets left, and I'm trying to use as few custom models as possible. I'd be better to finish the first few areas, then (if there is enough space left) we'll try to make something like that (I'd love to make a snow zone.) If you want, you can pick the map and edit it yourself. We can always copy&paste it later. Last edited by Balnnazar : 03-20-2013 at 02:46 PM. |
||
|
|
|
| Sponsored Links - Login to hide this ad! |
|
|
|
|
#17 |
|
User
|
And done.
No "Base" nor shortcuts yet, just placeholders for the 4 first sections. And yes, the cave is less detailed that before: I had to manually redo the cliffs, I didn't had the patience to redecorate it for this preview, but I will do it later. Edit: Also, for the Undead section: instead of a graveyard, I was thinking of a crypt or something. There would be a hole where the players can get in. The connection between this and the next area would be a small exterior graveyard. It's kinda early but: Anyone got/knows a good wall model that would work for this? Last edited by Balnnazar : 03-20-2013 at 03:09 PM. |
|
|
|
|
|
#18 | |
|
Procrastination Incarnate
Development Director
|
Quote:
This isn't really a problem, as I've said we've got space to spare so we can always tweak the layout so that the third level goes along the bottom. I've attached an example of how this could be done. Doing it this way is even better as the sections are no longer cramped to the grid. Also, I just noticed you decreased the distance between sections by one yellow grid space. No wonder the sections felt so cramped. That's the reason why I made the spacing as wide as I did in the first place, I think it should be changed back to that. Last edited by Anitarf : 03-21-2013 at 10:38 AM. |
|
|
|
|
|
|
#19 |
|
User
|
Alright.
I gave each separation 3 grid spaces, 4 was too much since there already is trees and cliffs inside the sections. I didn't change the positions yet, I'm still trying to think What could fit before the coast. It would be a shame to waste all that space on the right when there is enough space for 4 sections. About the enemies: with that criteria you could say that goblins are stronger that murlocs, and it wouldn't make sense to have them as second row. They got better armor and weapons, and they are more inteligent that those creeps. Edit: I forgot to attach the map. Also, you might want to edit the spawnpoint for the spiders. Right now they are spawning inside a cliff. Last edited by Balnnazar : 03-21-2013 at 12:11 PM. |
|
|
|
|
|
#20 | |
|
Procrastination Incarnate
Development Director
|
Quote:
|
|
|
|
|
|
|
#21 | |
|
User
|
Quote:
You can simply use black mask on the map, then reveal the playable area with a region for half a second so that it shows up for the player. That's what I used to hide areas I didn't want the players to see until later. Last edited by Balnnazar : 03-21-2013 at 06:23 PM. |
|
|
|
|
|
|
#22 |
|
My vision is augmented
MDL & Resource Moderator
|
Whoa, you guys have lost me.
__________________Surely all areas are delimited by destructibles and/or cliffs, so there will be "natural" black mask patches left behind to further ease the terrain transitions between areas? I guess the more space there is between lanes, the easier those biome transitions will be to arrange... There's no need to make things cramped, we can always increase the map size again anyway. ![]() |
|
|
|
|
|
#23 |
|
User
|
Check this one and tell me what you think about it.
I made the sections more spacious, and the space between them bigger, and the placeholder for the coast. It'd help if you edited the map yourself and added some more references for it, like: Where and how do you want the player's base and the shortcuts, etc. You can do it with regions or doodads. Also, sorry if the coast looks kinda weird: I had to re-re-do the water layer because it was bugging with previous cliff's placements. Last edited by Balnnazar : 03-22-2013 at 02:39 PM. |
|
|
|
|
|
#24 |
|
User
Join Date: Mar 2013
Posts: 49
|
The terrain's nice now. Just needs polishing/beautifying in the future.
On a side note, ABuff is possibly the hardest thing I've ever worked with. I've been trying to make a quite simple spell but I don't know how to refresh buff duration. Zinc:
function CooldownReset()
{
if ( UnitHasABuff(SpellEvent.CastingUnit, abt) )
{
// ????
//
// RemoveBuff(abt) / DispellBuff(abt);
}
}
Last edited by HerrStanev : 03-22-2013 at 04:47 PM. |
|
|
|
|
|
#25 |
|
Procrastination Incarnate
Development Director
|
I'm not sure what kind of spell you're trying to make but for a typical buff spell, all you need to do is call ABuffApply. The system will then either create a new buff or refresh an existing one if it exists (the exact behaviour depends on the buff category but spell buffs typically use the standard category which functions as I described here).
__________________ |
|
|
|
|
|
#26 |
|
User
Join Date: Mar 2013
Posts: 49
|
I that think because of the usage of Engineering upgrade I can't refresh a spell's cooldown with RemoveAbility + AddAbility...
Zinc:
function CooldownReset()
{
integer level;
if ( UnitHasABuff(SpellEvent.CastingUnit, abt) )
{
ABuffRemove(GetABuffFromUnitByType(SpellEvent.CastingUnit, abt));
level = GetUnitAbilityLevel(SpellEvent.CastingUnit, SpellEvent.AbilityId);
UnitRemoveAbility(SpellEvent.CastingUnit, SpellEvent.AbilityId);
UnitAddAbility(SpellEvent.CastingUnit, SpellEvent.AbilityId);
SetUnitAbilityLevel(SpellEvent.CastingUnit, SpellEvent.AbilityId, level);
}
}
This code just removes the cast ability and doesn't add it again. EDIT: Also the ABuffRemove function doesn't seem to work the way I do it... I'd really need a tutorial on this. Last edited by HerrStanev : 03-22-2013 at 06:07 PM. |
|
|
|
|
|
#27 |
|
Procrastination Incarnate
Development Director
|
It did not occur to me that I should also copy the ABuff (and xe) documentation to the map along with the systems. Sorry about that.
__________________It would also help if I knew what you were trying to do. Your use of ABuffRemove seems correct. The error may be elsewhere, perhaps in the buff's event callbacks? I don't know, what do you mean by "doesn't seem to work"? With regard to the ability not being readded, I did a quick test; the problem you have is that removing the ability that the unit is currently casting will cause that unit to end casting the ability, which triggers the corresponding event. Once SpellEvent runs all the callbacks for that event, it assumes the spell cast data is no longer needed and nulls the casting unit to avoid leaks. This normally isn't an issue but in your case all this happens while you're still in the middle of your spell cast callback. You need to store your unit to a local variable before removing the ability. Last edited by Anitarf : 03-22-2013 at 11:34 PM. |
|
|
|
|
|
#28 |
|
User
Join Date: Mar 2013
Posts: 49
|
It works now with the temporary variable.
But it doesn't remove the buff... I'll just quote the spell description so you can see what I was attempting: Temporarily increases the attack speed of this unit by 33%/66%/100%. The next spell that finishes casting will not go into cooldown but will remove this buff. Lasts 6 seconds. It feels good for a caster - you can land a few quick blows with the increased attack speed and then time your instant spell to be able to cast it once again. Or maybe double your short channeling spell. Btw, I was considering this as a contribution. Tell me if you dislike something and are against it. Zinc://! zinc library EssenceControl requires ABuff, xepreload, SpellEvent { constant integer AID_CORE_SPELL = 'A00F'; constant integer AID_IAS_BONUS_SPELL = 'A00G'; constant integer BUFF_ABILITY = 'A00E'; constant integer BUFF_BUFF = 'A001'; function GetDuration(unit whichUnit) -> real { return 6.; } aBuffType abt; function Create(aBuff eventBuff) { UnitAddAbility(eventBuff.target.u, BUFF_ABILITY); SetUnitAbilityLevel(eventBuff.target.u, BUFF_ABILITY, eventBuff.level); UnitMakeAbilityPermanent(eventBuff.target.u, true, BUFF_ABILITY); //prevent morphing from removing the ability UnitAddAbility(eventBuff.target.u, AID_IAS_BONUS_SPELL); SetUnitAbilityLevel(eventBuff.target.u, AID_IAS_BONUS_SPELL, eventBuff.level); UnitMakeAbilityPermanent(eventBuff.target.u, true, AID_IAS_BONUS_SPELL); } function Cleanup(aBuff eventBuff) { UnitRemoveAbility(eventBuff.target.u, BUFF_ABILITY); UnitRemoveAbility(eventBuff.target.u, BUFF_BUFF); UnitRemoveAbility(eventBuff.target.u, AID_IAS_BONUS_SPELL); } function Refresh(aBuff eventBuff) { SetABuffTimeRemaining(eventBuff, GetDuration(eventBuff.caster)); SetUnitAbilityLevel(eventBuff.target.u, BUFF_ABILITY, eventBuff.level); SetUnitAbilityLevel(eventBuff.target.u, AID_IAS_BONUS_SPELL, eventBuff.level); } function SpellEffect() { ABuffApply(abt, SpellEvent.CastingUnit, SpellEvent.CastingUnit, GetDuration(SpellEvent.CastingUnit), /* */ GetUnitAbilityLevel(SpellEvent.CastingUnit, AID_CORE_SPELL), 0); } function CooldownReset() { integer level; unit cast = SpellEvent.CastingUnit; if ( true ) // <-- Add spell exceptions here! { if ( UnitHasABuff(cast, abt) && SpellEvent.AbilityId != AID_CORE_SPELL ) { ABuffRemove(GetABuffFromUnitByType(cast, abt)); level = GetUnitAbilityLevel(cast, SpellEvent.AbilityId); UnitRemoveAbility(cast, SpellEvent.AbilityId); UnitAddAbility(cast, SpellEvent.AbilityId); SetUnitAbilityLevel(cast, SpellEvent.AbilityId, level); } } cast = null; } function onInit() { RegisterSpellEffectResponse(AID_CORE_SPELL, SpellEffect); RegisterSpellEndCastResponse(0, CooldownReset); XE_PreloadAbility(AID_CORE_SPELL); XE_PreloadAbility(AID_IAS_BONUS_SPELL); abt = aBuffType.create(); abt.ignoreAsBuff = false; abt.eventCreate = ABuffEvent_Create.Create; abt.eventRefresh = ABuffEvent_Refresh.Refresh; abt.eventCleanup = ABuffEvent_Cleanup.Cleanup; } } //! endzinc //! zinc library EssenceControlSetup requires SkillRandomizer, EssenceControl { function onInit() { SkillRandomizer.normal.addSkill( 'A00F', 'A00H', "r", OrderId("berserk") ); } } //! endzinc Is there also any way to attach an sfx to the Slow aura buff? Last edited by HerrStanev : 03-22-2013 at 11:59 PM. |
|
|
|
|
|
#29 |
|
default string
|
Add the effect to the ability, not the buff.
|
|
|
|
|
|
#30 | |||
|
Procrastination Incarnate
Development Director
|
Quote:
Also, you don't need to set the remaining duration in the refresh function, the system already does that when you call ABuffApply. Also, the ABuffDisplay module can handle the aura ability for you so you don't have to add it yourself. If you're using tornado slow aura to display your buff, you could also use it to modify attack speed directly instead of using an extra ability. Quote:
Quote:
|
|||
|
|
|
![]() |
| Thread Tools | Search this Thread |
|
|
|
Donate |