• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

vJASS Gnomish Bomber 1.7.1

Hi guys. This is the bomber spell I was trying to do with some help. I finally ended it a few days ago(a lot of time by now, few moths/years for sure =P) . After submitting it to the script section no one gave any more advices, so I believe this is ready.
If there is anything to change, go ahead and let me know.
This should be more of a template than a simple spell, because it's structure was made to accommodate change, however, I only have 1 sample.
The code is commented, the spell is JESP (as usual) and I hope people like it.
This spell was remade from the start several times, I hope this version stands up.

Please note I followed a different approach from all my previous spells. Therefore I feel forced to make people know the main differences between this bombardment spell and other bombardment spells.

Differences:
- For the first time, your bomber can DIE !!! (lol) he is vulnerable to damage!
- You have a limited control on the planes flight plan ! (means you can turn him a little around).
- Bombs have realistic fall, this means they obey to the laws of physics when they fall.

This spell belongs to my project
Castle vs Castle Flame Edition and I hope you all enjoy it.


Description:
- A spell calls a gnomish plane from behind the caster. The plane will drop Incendiary bombs and burn the enemies.

Requirements:
- Jass NewGen Pack (uses vJASS)
- TimerUtils
- Table

History:

Version 1.0
- Public release
- Thanking all credits

Version 1.1
- Improved the bomb fall. Now all bombs take the same time to fall
- Simplified the code and made bombs independent from the plane, now if the plane dies, the released bombs will still fall
- Now the bomber is vulnerable to damage ! Now the bomber can die !
- Now you can control the flight of the bomber !
- Optimized the Incendiary bombs code and upgraded the documentation

Version 1.2
- Fixed the death of the plane. Now we all can see its death animation !
- Improved the documentation

Version 1.3
- Simplified the code by completely separating plane from bomb. Now the two off them are independent and even easier to use, hurray modularization!
- Improved the documentation

Version 1.5
- Version 1.4 was a test version that didn't got released
- In Version 1.5, the bomb and the plane are both in one single scope, thus you don't need 2 scopes for your spell.
- Also eliminated the spell "FireBomb" that is useless, now everything is coded!
- Made some small optimizations on the fall of the bombs, not the fall faster and the plane goes lower to drop them. Also changed the effect that appears when the bomber dies
- Added JESP document

Version 1.5b and 15c:
- Improved the comments and the credits

Version 1.6:
- Improved the terrain of the map a lot
- Added a read Me file that explains the code
- Now the plane won't stop when he hits camera bounds

Version 1.7
- Now the fires are not created when the bombs falls outside the camera bounds
- Made minor changes in the demo map

Version 1.7.1:
- Updated for patch 1.24

This spell took me years (yes years) to develop. I always dreamed to create it, but all my previous versions were never good enough. It is now, with version 1.5c, the best bomber spell I've ever seen in my entire life, and yes, I made a research for bombing spells.
I am very proud of it, and if this spell doesn't get 5/5 from the moderators in THW, I will surely want to kill some one, because this baby was approved with quality in Wc3c by Vexorian himself (yes, the God we all know =P ). This combines nearly all my knowledge of vJASS that I acquired since I entered Wc3c. If it gets approved, I am sure people will like it better than many other bombing spells.

Keywords:
CCFE, Flame_Phoenix, gnome, dwarf, bombardment, plane, bomber, bomb, fire, incendiary, napalm, vJASS, Castle vs Castle Flame Edition
Contents

Bombardment spells by Flame_Phoenix (Map)

Reviews
16:14, 14th Nov 2008 Dr Super Good: Approved: Extreemly good spell, lagged my PC a bit but that was purly the affect used and my PC being slow. Code wise it seems nearly flawless. Also appears very easy to use and I could not notice a single...

Moderator

M

Moderator

16:14, 14th Nov 2008
Dr Super Good:
Approved:
Extreemly good spell, lagged my PC a bit but that was purly the affect used and my PC being slow. Code wise it seems nearly flawless. Also appears very easy to use and I could not notice a single problem with it.

I can definatly recommend people to use this spell if it is what they are after.
 
Level 18
Joined
Oct 18, 2007
Messages
930
I found an ugly bug :S if you cast like 2 times after eachother ( 1 seccond ) and the planes go to the camera bounds or whatever, only the first pilot does have (SetUnitPathing("Plane",false))!!!!

Btw: It is not the best, looks kinda wierd :p and that bug is awful. I cannot rate more that 4/5 for it. sorry
 
Very nice... but years??? It doesn't seem that complicated to me... Only problem I can see is the effects lag a bit...
Those are not effects. In order to make the SETUP section easy for the common user I use units instead. Because units are way heavier than effects, I believe that is the reason.
Also, it took me years to learn how to JASS and vJASS, and this spell was made in many versions. What you see now is the final product of many hours of coding and simplification so it could be efficient and easy o use. I appreciate the fact you think this is something easy when the algorithm behind it was initially very complex. Thx =)

I found an ugly bug :S if you cast like 2 times after eachother ( 1 seccond ) and the planes go to the camera bounds or whatever, only the first pilot does have (SetUnitPathing("Plane",false))!!!!
I have some stuff to say about that:
1 - the bug you describe does not exist, i tested myself, please post a replay
2 - Again, you didn't see my code. Besides affirming I have I bug which doesn't exist you also invented a cause for the problem. My plane NEVER uses SetUnitPathing("Plane",false)), only my bombs do.
So, I believe your question is: Why does the plane stop when he hits the boundary ?? Well, that is a safety system. It comes not from me, but from Blizzard. To move a unit with timers we can either use "SetUnitX(u) and SetUnitY(u)" or "SetUnitPosition(x, y, u)".There is a CRUCIAL difference between this two ways, in the first one, the plane would be allowed to exit the map boundaries, however that would cause an instant game crash; in the second way (which I use) when the plane meets the boundaries of the terrain, he just doesn't get over them and so the game won't crash.
This is a safety system implemented by Blizzard that I always use. This should be an extra reason for 5/5 and not for 4/5, but since your rating was based on ignorance you are apologized. You still have a lot to learn, I don't mind helping, but there is a path you must take first...

Anyway, this can have many more bombing spells, hope you all like it and thx for the comments.
 
Level 12
Joined
Aug 20, 2007
Messages
866
Those are not effects. In order to make the SETUP section easy for the common user I use units instead. Because units are way heavier than effects, I believe that is the reason.
Also, it took me years to learn how to JASS and vJASS, and this spell was made in many versions. What you see now is the final product of many hours of coding and simplification so it could be efficient and easy o use. I appreciate the fact you think this is something easy when the algorithm behind it was initially very complex. Thx =)


I have some stuff to say about that:
1 - the bug you describe does not exist, i tested myself, please post a replay
2 - Again, you didn't see my code. Besides affirming I have I bug which doesn't exist you also invented a cause for the problem. My plane NEVER uses SetUnitPathing("Plane",false)), only my bombs do.
So, I believe your question is: Why does the plane stop when he hits the boundary ?? Well, that is a safety system. It comes not from me, but from Blizzard. To move a unit with timers we can either use "SetUnitX(u) and SetUnitY(u)" or "SetUnitPosition(x, y, u)".There is a CRUCIAL difference between this two ways, in the first one, the plane would be allowed to exit the map boundaries, however that would cause an instant game crash; in the second way (which I use) when the plane meets the boundaries of the terrain, he just doesn't get over them and so the game won't crash.
This is a safety system implemented by Blizzard that I always use. This should be an extra reason for 5/5 and not for 4/5, but since your rating was based on ignorance you are apologized. You still have a lot to learn, I don't mind helping, but there is a path you must take first...

Anyway, this can have many more bombing spells, hope you all like it and thx for the comments.

If the unit flys out of bounds it does not cause an instant crash, there are camera bounds. If the camera bounds are totally set to the perimeter, yes it will cause a crash.

If you'd like players to see the bombers fly out off the mp (which I think would look cool :grin:), You could just involve some method for getting the map boundaries, and make sure the user knows he needs camera boundaries,
and have an if/then for when the unit flys to the map boundaries that it is removed (by that point it would be off the map, or invisible past the camera bounds)

Side Note - Calling people ignorant makes you look cocky
 
If the unit flys out of bounds it does not cause an instant crash, there are camera bounds. If the camera bounds are totally set to the perimeter, yes it will cause a crash.
That is what my code was made t avoid...


If you'd like players to see the bombers fly out off the mp (which I think would look cool ), You could just involve some method for getting the map boundaries, and make sure the user knows he needs camera boundaries,
and have an if/then for when the unit flys to the map boundaries that it is removed (by that point it would be off the map, or invisible past the camera bounds)
This is a security parameter that is not my responsibility. My responsibility as a code maker is to ensure the code runs on all situations, and it does run in all situations.
Now about the boundaries, this is something the importer that is going to use the spell needs to care, not me.
There is no need for such an improvement, since it would only improve the complexity of the code and decrease its efficiency, when this is a something that the users should be careful with and not me.

Side Note - Calling people ignorant makes you look cocky
learn how to read decently.
I didn't say Dynasti was an ignorant, I only said that his rating was based on ignorance, and that is a fact that no one can deny.

It seems many people don't want the plane to be stooped, I will see if I can find a good solution for both sides.
 
Last edited:
Level 12
Joined
Aug 20, 2007
Messages
866
That is what my code was made t avoid...



This is a security parameter that is not my responsibility. My responsibility as a code maker is to ensure the code runs on all situations, and it does run in all situations.
Now about the boundaries, this is something the importer that is going to use the spell needs to care, not me.
There is no need for such an improvement, since it would only improve the complexity of the code and decrease its efficiency, when this is a something that the users should be careful with and not me.


learn how to read decently.
I didn't say Dynasti was an ignorant, I only said that his rating was based on ignorance, and that is a fact that no one can deny.

It seems many people don't want the plane to be stooped, I will see if I can find a good solution for both sides.

If I'm not mistaken you need to 'not know something' in order to make an assumption based on 'not knowing something'. Ignorance is a lack of knowledge, or 'not knowing something'.

The point is you are telling him wrong simply because you think you are more knowledgeable than him, which I see as cocky, as you could very well be wrong for fallacious reasons that seem infallible.

Putting that aside, (if I've insulted you, I apologize), the people who download and use your spells & systems must be the ones you're thinking of when you make your spell. It may not be your 'responsibility' to make this improvement, whether or not it improves the spell, but it should be your desire to make the spell as delectable as possible to the average downloader.

I'm not telling you need to do anything, merely giving friendly suggestions as a spell-downloader. About the problem itself I would at least let the downloader know there is that option, and using magnificent problem-solving skills that all programmers possess, develop a simple and efficient method for incorporating this option.
 
The point is you are telling him wrong simply because you think you are more knowledgeable than him, which I see as cocky, as you could very well be wrong for fallacious reasons that seem infallible.
I made no fallacy. Please note all my arguments were based upon facts which are immutable, he made a comment about a problem that doesn't exist and he created a reason that doesn't exist either. When commenting codes you better know what you are talking about, or you better shut up because you will look an idiot. Giving suggestions on a spell is one thing, making wrong criticism to the code is another (specially when you didn't even see the code, which you NEED to see before commenting its bugs and efficiency). I can only conclude that you should review your arguments Herman.

Putting that aside, (if I've insulted you, I apologize), the people who download and use your spells & systems must be the ones you're thinking of when you make your spell. It may not be your 'responsibility' to make this improvement, whether or not it improves the spell, but it should be your desire to make the spell as delectable as possible to the average downloader.
You are right, that is why this first sample is a very simple sample that even th newest JASS newbie can use and learn =)
I will however add improvements to documentation as suggested and to the map as suggested so the user has more fun learning and using the spell.

I'm not telling you need to do anything, merely giving friendly suggestions as a spell-downloader. About the problem itself I would at least let the downloader know there is that option, and using magnificent problem-solving skills that all programmers possess, develop a simple and efficient method for incorporating this option.
Well, what would you prefer ?? To let the game crash or to make the plane look silly ? I think this is quite an obvious choice...

Anyway, I will make some updates soon, hope all you people like them =P
16:14, 14th Nov 2008
Dr Super Good:
Approved:
Extreemly good spell, lagged my PC a bit but that was purly the affect used and my PC being slow. Code wise it seems nearly flawless. Also appears very easy to use and I could not notice a single problem with it.

Possiable areas for improvement.
- Better documentation on how it works so people could learn from it more easilly.
- Better testing map, the current one is a large waste of space and looks bland.

I can definatly recommend people to use this spell if it is what they are after.
Thx for approval =P
 
Ok guys, the spell was not updated for the version 1.6
In this version I improved everything the mods suggested. Also added a new feature to the plane, now he can move out of camera bounds without looking silly. Know that the rest of what you do is your responsibility, not mine.

I am confident most people will like the new improvements.

Regards, Flame_Phoenix
 
Level 6
Joined
Jan 6, 2006
Messages
204
When throwing a bomb outta bounds it looks really sucky now. The Bomb itself is being throwed correctly, but the explosion itself isn't. Why don't you just fade out the airplane when reaching boundaries? who needs bombs outside boundaries anyways...

Also add "call PreloadStart()" below line 302 + use RAD instead of converting from DEG to RAD
 
When throwing a bomb outta bounds it looks really sucky now. The Bomb itself is being throwed correctly, but the explosion itself isn't. Why don't you just fade out the airplane when reaching boundaries? who needs bombs outside boundaries anyways...
That's because we can't create units outside camera bounds. as I said, this is not my responsibility, if you want to use spells in your map you should always make sure you have a reasonable distance between the edge and the playable area.
I already fixed a lot of stuff. Besides if I kill the plane the bombs will still be thrown and will still fall, thus still creating the fires, so if you really want to solve the problem, you have to solve it in the SETUP section by making a condition that checks the creation location of the fire. This is merely a demo map, real implementation must be followed by you and not by me.

Also add "call PreloadStart()" below line 302
Absolute no need for such...

use RAD instead of converting from DEG to RAD
Well, I could do it but then it would be harder to read (at least for me). Besides that change would force me to make some inner changes in the spell, and it wouldn't be such a great boost in efficiency anyway, so I guess there is no real need for such.

Anyway, thx for your comment, hope you liked the spell.

EDIT EDIT EDIT
Ok guys, I made a few changes for version 1.7. Now if the bombs fall outside the camera bounds the fires won't be created.
Version 1.7 is not released yet, but it will soon be.
 
Level 3
Joined
Sep 18, 2008
Messages
25
I loved it!!! It's really cool!!! Just want to say... The bomber really fits and fair to have 50 hp!!! otherwise it could be counted as cheating... Anyway, for people who are viewing this, let me give you all an advice =)... This spell is cool if it is used by some kind of jet fighter model in war maps... Then also change the model of the bombs... There, this spell can be used like that... I will definitely give 5/5 then!!! I liked this!!! ^^
 
Ok people Version 1.7 was now released. Please see the History for more information.

I loved it!!! It's really cool!!! Just want to say... The bomber really fits and fair to have 50 hp!!! otherwise it could be counted as cheating... Anyway, for people who are viewing this, let me give you all an advice =)... This spell is cool if it is used by some kind of jet fighter model in war maps... Then also change the model of the bombs... There, this spell can be used like that... I will definitely give 5/5 then!!! I liked this!!! ^^
Thx for liking my spell. About your advice well, again (I am kinda tired of saying this lol) it is not my duty. I release the spell and the code, you people can do anything with it as long as you credit me or my project.
Personally I agree with you, but I think I prefer the small little gnomish plane dropping little cute destructive bombs <3 =P Soon my project will have this spell as well as some expansions to it =)

I hope this version is now Ok and stops people complaining about the bombs. This is a fix for good, no more bomb problems =D

Btw, thx for rating =)
 
hey sry if this sounds noobish but... i dont know jass and when i try testing the map or copying the triggers there is a list of errors 1 mile long how do i test it?
It is Ok to ask.
First of all this is not JASS, it is vJASS (an expansion to the language). This means that you need to have JNGP installed on your computer to change this map. If you want to import it, than your project must use JNGP as well. You can download the program by clicking on the first link.

To run this map, simple download it, open it with regular world editor, and then click in the icon that says "test map".
 
kk found it :) gj i likey i likey and what happend to all the other bombers in the previous version? like the nuke bomber and stuff.
and in v 1.6 how can i make the plane fly farther? like for the nuke spell i want to use it in my world war map :)
I am happy you know some people find my other version and liked it =)
Thing is, I don't advise people to use the other version. This version (with 1 spell) is a lot better and is better coded. Unfortunately for em I will have to remake all my other previous spells.
I don't mind making the atomic bomber for a special request again.
I will soon remake all other spells if I have time and I will add them to version 1.6 of my project.

Thx for liking this spell, you should try out CCFE Beta, my project for more spells =D
 
kk ty ur great :) the only problem is the vjass thing is beyond my understanding and i dont like to go that far :\ XD i think i will just look at your A-Bomb spell :)
My A-Bomb spell ?

Thing is, you don't need to know vJASS to change or use my spell! My spell follows the JESP standard, this means that it has a special "SETUP SECTION" in the beginning where you can change all stuff you want without knowing a single line of codes.
You could however learn JASS so you could create your own bombardments, it is all in the SETUP function.
Remember to give credit if used =p
 
Top