🏆 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!
Im making an ORPG and I need an items system. A system that for example prevents a mage character from picking up/buying shields. I know the basic idea behind such a system, but for some reason I cant do it
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Item-class of (Item being manipulated)) Equal to Permanent
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
WeaponInteger[(Player number of (Owner of (Triggering unit)))] Not equal to (Item level of (Item being manipulated))
Then - Actions
Item - Move (Item being manipulated) to loc
Else - Actions
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Item-class of (Item being manipulated)) Equal to Artifact
Then - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
ArmorInteger[(Player number of (Owner of (Triggering unit)))] Not equal to (Item level of (Item being manipulated))
Then - Actions
Item - Move (Item being manipulated) to loc
Else - Actions
Else - Actions
Custom script: call RemoveLocation(udg_loc)
Example:
Weapon Types: (Permanent)
Sword = Weapon lvl 1
Axe = Weapon lvl 2
Bow = Weapon lvl 3
Staff = Weapon lvl 4
Armor Types: (Artifact)
Robe = Armor lvl 1
Leather = Armor lvl 2
Medium = Armor lvl 3
Plate = Armor lvl 4
When a player chooses a hero, you can set WeaponInteger and ArmorInteger[Player number of (Hero)] to what you want (depending on the class).
This system is part of the attached file.
Just one thing, I dont really understand how the "WeaponInteger[(Player number of (Owner of (Triggering unit)))] Not equal to (Item level of (Item being manipulated))" part works
I made this sytem for someoneelse who is also doing an RPG.
You are after the Itemsystem 2 trigger. The database is added at the bottom of it. All you need to do is extend and customize the database for your items and it will do what you are after.
Ignore the other 2 triggers as one is obsolete and the other is not finished but not related.
Just one thing, I dont really understand how the "WeaponInteger[(Player number of (Owner of (Triggering unit)))] Not equal to (Item level of (Item being manipulated))" part works
In case you're not going to use Dr Super Good's system:
You do not need to change the trigger, only determine which items will be used for which levels (like in my examples).
But it works like this:
Let's say red (player 1) has a mage, then you can set WeaponInteger[1] = 1.
All permanent items level 1 are staves ("Wooden Staff", for example).
If the hero picks up a permanent item that is not level one, he is not allowed to wear it (such as swords, daggers, axes).
That's why I say "WeaponInteger[(Player number of (Owner of (Triggering unit)))] Not equal to (Item level of (Item being manipulated))"
(or in short: WeaponInteger[1] not equal to Level of item being manipulated).
I hope you kind of understood that :/
My system is very, very simple, but Dr Super Good's system is a lot more better and flexibel, though harder to set up if you do not know JASS.
In case you're not going to use Dr Super Good's system:
You do not need to change the trigger, only determine which items will be used for which levels (like in my examples).
But it works like this:
Let's say red (player 1) has a mage, then you can set WeaponInteger[1] = 1.
All permanent items level 1 are staves ("Wooden Staff", for example).
If the hero picks up a permanent item that is not level one, he is not allowed to wear it (such as swords, daggers, axes).
That's why I say "WeaponInteger[(Player number of (Owner of (Triggering unit)))] Not equal to (Item level of (Item being manipulated))"
(or in short: WeaponInteger[1] not equal to Level of item being manipulated).
I hope you kind of understood that :/
My system is very, very simple, but Dr Super Good's system is a lot more better and flexibel, though harder to set up if you do not know JASS.
It's "WeaponInteger[(Player number of (Owner of (Triggering unit)))]"
Like I said: WeaponInteger[X] is the number you set when a player chooses a hero.
If player 3 chooses a hero, you set WeaponInteger[3] to whatever you want (depending on the hero class).
It's "WeaponInteger[(Player number of (Owner of (Triggering unit)))]"
Like I said: WeaponInteger[X] is the number you set when a player chooses a hero.
If player 3 chooses a hero, you set WeaponInteger[3] to whatever you want (depending on the hero class).
An array is always shown at the end of a variable, between square brackets (such as Integer[X]) and it's always a positive integer (from 1 to about 8100).
A variable with an array actually is more than 1 variable.
So Integer[1] and Integer[2] are different variables and can be used like this:
Actions
Set Integer[1] = 2
Set Integer[2] = 5
Set Integer[3] = 0
Integer[1] is now 2 and Integer[2] = 5, they are independant of eachother (meaning that changing one of them won't change the other).
If we then do something with them, such as:
Actions
Game - Display to (All Players) the text: (String(Integer[1]))
Game - Display to (All Players) the text: (String(Integer[2]))
Game - Display to (All Players) the text: (String(Integer[3]))
With this trigger, we will see something like this:
2
5
0
This may not sound useful right now, but when we use it to differentiate players, we get something that has to be used in every map.
When we try to pick the hero from a player, for example, we either have to create a lot of variables (depending on how many players there are), or 1 variable with an array.
Here are the 2 examples:
Actions
Set Hero1 = (Player 1's Hero)
Set Hero2 = (Player 2's Hero)
Set Hero3 = (Player 3's Hero)
Set Hero4 = (Player 4's Hero)
Set Hero5 = (Player 5's Hero)
Set Hero6 = (Player 6's Hero)
Set Hero7 = (Player 7's Hero)
Set Hero8 = (Player 8's Hero)
8 variables to define 8 heroes, each owned by a player...
The problem gets even worse when we add a hero selection system (in this case: unit enters region, then the entering unit = the hero).
Select Hero
Events
Unit - A unit enters Region
Conditions
Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Owner of (Triggering unit)) Equal to Player 1 (Red)
Then - Actions
Set Hero1 = (Triggering Unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Owner of (Triggering unit)) Equal to Player 2 (Blue)
Then - Actions
Set Hero2 = (Triggering Unit)
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Owner of (Triggering unit)) Equal to Player 3 (Teal)
Then - Actions
Set Hero3 = (Triggering Unit)
Else - Actions
Etc... obviously I'm not going to do this for all 8 players, that would be a waste of time (and you get the picture).
With an array, this is what we get:
Select Hero
Events
Unit - A unit enters Region
Conditions
Actions
Set Hero[(Player number of (Owner of (Triggering Unit)))] = (Triggering Unit)
You might not get it at first, but this is how it works:
If player 1 (Red) chose a hero, then the entire part that says "(Player number of (Owner of (Triggering Unit)))" will be 1 and it becomes:
Set Hero[1] = (Triggering Unit)
If player 2 (Blue) chooses a hero, it becomes "Set Hero[2] = (Triggering Unit)", ...
This is the only function you need to achieve the same (and even more) results as the trigger without arrays.
Okay, understand why it is useful and what an array is?
I hope you do, since I don't really know how to explain otherwise ^^
Anyway, to get back to my system:
WeaponInteger[(Player number of (Owner of (Triggering unit)))]
This reacts the exact same way as the hero selection system with arrays do, but when an item is picked up.
If the owner of the hero is red (1), then it well check if WeaponInteger[1] is equal to the item level or not.
Im sure my system is a lot easier to understand cause it avoids all the GUI nonsense. Also my system has the ability to support huge numbers of item types, like unique weapons for each class as well as armor kinds and stuff.
I am planning on working on a more efficent system eventually which indexes items to a class to allow for more efficent saving of huge item numbers but this is still in the concept phase.
Im sure my system is a lot easier to understand cause it avoids all the GUI nonsense. Also my system has the ability to support huge numbers of item types, like unique weapons for each class as well as armor kinds and stuff.
I am planning on working on a more efficent system eventually which indexes items to a class to allow for more efficent saving of huge item numbers but this is still in the concept phase.
I kind of agree with this right now... xD (normally, I on't recommend JASS for beginners, but this is an exception).
Creating a very simple system in GUI as the disadvantage of being newb-unfriendly and not that flexible.
But well, you've got to learn arrays sooner or later, can't escape them.
You have to create a weapon class and attach it to the unit type firstly and limit the number for that class to 1 (yes you can make it so that a barbarian hero can wield 2 weapons of the same class). Next you have to specify which item types are treated as a certain weapon type. The system then should restrict the item numbers corretly.
Only flaw with my system is that it does not allow a class to have only 1 weapon when he can pick up 2 or more different kinds of weapons. I am however thinking of ways to handle this effecently.
You have to create a weapon class and attach it to the unit type firstly and limit the number for that class to 1 (yes you can make it so that a barbarian hero can wield 2 weapons of the same class). Next you have to specify which item types are treated as a certain weapon type. The system then should restrict the item numbers corretly.
Only flaw with my system is that it does not allow a class to have only 1 weapon when he can pick up 2 or more different kinds of weapons. I am however thinking of ways to handle this effecently.
Because it is more like every other computer language as apposed to GUI which is some wierd mutant monster which should have died of cancer.
If you understand python you will easilly see the structure of my code. Hashtables are a lot like 2D dictionaries, they have a maximum integer range for indicies and the functions are pretty straight foward.
Because it is more like every other computer language as apposed to GUI which is some wierd mutant monster which should have died of cancer.
If you understand python you will easilly see the structure of my code. Hashtables are a lot like 2D dictionaries, they have a maximum integer range for indicies and the functions are pretty straight foward.
We cant all be in mom's basement programming and go IT education, some just work with what they got
Educations not equal to programming:
Set Smith = Job
Set Walmart = Job
Set Sell_drugs = Job
Set Whore = Job
Set Military = Job
Hero equal to Smith equal to 1 then not a programmer
Else if
Hero equal to Walmart equal to 1 then not a programmer
Else if
Hero equal to Sell_drugs equal to 1 then not a programmer
Else if
Hero equal to Whore equal to 1 then not a programmer
Else if
Hero equal to Military equal to 1 then not a programmer
If Hero equals to programmer then do Mom's Basement
Well I could also raise the point that if you are not going into programming or are not interested in programming, why are you making maps?
The fact is to make good maps you have to understand some ideas about computers and programming. If you really want to make a map and lack those, you just have to learn them.
Its the sad and harsh truth about creating on computers. It is just like you can not paint unless you have atleast some artistic skill.
Well I could also raise the point that if you are not going into programming or are not interested in programming, why are you making maps?
The fact is to make good maps you have to understand some ideas about computers and programming. If you really want to make a map and lack those, you just have to learn them.
Its the sad and harsh truth about creating on computers. It is just like you can not paint unless you have atleast some artistic skill.
GUI is indeed a mutated form of JASS, something Blizzard didn't finish by the looks of it (because it is very inefficient, lacks the better features of JASS and it cannot work on it's own, it needs JASS).
Your idea of programmers is actually insulting...
Being a programmer requires time, skill and it's certainly not something you become when you've lost all other hopes.
This only show how little you actually know about programming, I think that if you uploaded a map, I wouldn't need to think twice about rejecting it.
GUI is indeed a mutated form of JASS, something Blizzard didn't finish by the looks of it (because it is very inefficient, lacks the better features of JASS and it cannot work on it's own, it needs JASS).
Your idea of programmers is actually insulting...
Being a programmer requires time, skill and it's certainly not something you become when you've lost all other hopes.
This only show how little you actually know about programming, I think that if you uploaded a map, I wouldn't need to think twice about rejecting it.
Then reject those I got up then, oh yeah that's right, you cant
And besides, you dont know my skills when it comes to programming, all I can say is that Im not an educated programmer, I mess around a bit on my spare time sure, but its definetly not the only thing I do..
My skill gets better in programming each time, you can always learn new things, but you can not become a totally successful programmer over a night or if you only mess around with it like 10-20 times a week.
Jass is hard to learn if you haven't programmed C++, Java or VBasic before
Like most map makers in this community are inb4 underage, and they dont teach that much programming in elementary school class 1-9 in Sweden atleast..
What I want to say is, you have to start somewhere, and GUI is an awesome place to begin with, you learn basics of programming like boolean, integer, variables etc etc wich are all included in jass aswell as regular programming.
My passion is not map making, its a fun thing to do sure, but I have no future plans to become a famous map maker for warcraft or starcraft.. lol
And reject my maps as much as you want, cant find a reason to give a crap since I rarely upload em', uploaded 2 maps wich in the first place was made for..... you guessed it right; LAN GAMING WITH FRIENDS
Hope you didnt cried of my earlier comments to much
Was a bit tense and bit of trolling, I give you that
But Dr.Feelgood made an impression on me that ppl that use GUI are worthless
Then reject those I got up then, oh yeah that's right, you cant
And besides, you dont know my skills when it comes to programming, all I can say is that Im not an educated programmer, I mess around a bit on my spare time sure, but its definetly not the only thing I do..
My skill gets better in programming each time, you can always learn new things, but you can not become a totally successful programmer over a night or if you only mess around with it like 10-20 times a week.
Jass is hard to learn if you haven't programmed C++, Java or VBasic before
Like most map makers in this community are inb4 underage, and they dont teach that much programming in elementary school class 1-9 in Sweden atleast..
What I want to say is, you have to start somewhere, and GUI is an awesome place to begin with, you learn basics of programming like boolean, integer, variables etc etc wich are all included in jass aswell as regular programming.
My passion is not map making, its a fun thing to do sure, but I have no future plans to become a famous map maker for warcraft or starcraft.. lol
And reject my maps as much as you want, cant find a reason to give a crap since I rarely upload em', uploaded 2 maps wich in the first place was made for..... you guessed it right; LAN GAMING WITH FRIENDS
Hope you didnt cried of my earlier comments to much
Was a bit tense and bit of trolling, I give you that
But Dr.Feelgood made an impression on me that ppl that use GUI are worthless
Why wouldn't I be able to reject your maps? Explain...
If you really only "make a simple one-time-play map", then I highly doubt they're any good.
You just made the impression that every programmer/mapper lives in his mother's basement and is even lower than a whore/drug dealer (in fact: that's literally what you said).
I have never said GUI is useless... GUI is just crap compared to JASS.
I also don't think you learn a lot about programming when you code in GUI, since everything is pre-set, you have no idea how to actually call/set functions if it weren't for the cute icons to do that for you.
Yes: you learn something about variables, but that's one of the most basic things in all languages, + there are no locals in GUI, so you only know globals.
I didn't cry, I'm not a programmer anyway, and I don't really have the intention to be one sooner or later, though I did program as a hobby.
Why wouldn't I be able to reject your maps? Explain...
If you really only "make a simple one-time-play map", then I highly doubt they're any good.
You just made the impression that every programmer/mapper lives in his mother's basement and is even lower than a whore/drug dealer (in fact: that's literally what you said).
I have never said GUI is useless... GUI is just crap compared to JASS.
I also don't think you learn a lot about programming when you code in GUI, since everything is pre-set, you have no idea how to actually call/set functions if it weren't for the cute icons to do that for you.
Yes: you learn something about variables, but that's one of the most basic things in all languages, + there are no locals in GUI, so you only know globals.
I didn't cry, I'm not a programmer anyway, and I don't really have the intention to be one sooner or later, though I did program as a hobby.
1. Coz I think 2 of my maps are already on THW, you are to late to deny them
2. Wow, didnt type anything about whore & drug dealer is BETTER then programming, I took 5 random regular jobs and made an example of jobs that does not contain programming what so ever, geeesh
Ever seen a hooker doing algebra?
3. You learn all the names of Boolean, real, integer, variables and what they do, its an easy overview and good way to teach younger group of future programmers, instead of waiting til they get old enough to understand real programming language they can learn the principles in an awesome easy way already at the age of 10.
And yes, the cute icons help out a lot
4. Most basic; Yes, and that's what we want to learn children, the basics, cant go advanced with children, if you do, you're a terrible father/brother
Note: I started off with heroes of might and magic 2 then 3, then Age of empires trigger system, then starcraft & then warcraft 3, I'll have to say I've come a long way with my own understanding of programming within these 10 years, although never been doing it a lot, maybe I should learning deeper JASS so you all can stfu
1. Coz I think 2 of my maps are already on THW, you are to late to deny them
2. Wow, didnt type anything about whore & drug dealer is BETTER then programming, I took 5 random regular jobs and made an example of jobs that does not contain programming what so ever, geeesh
Ever seen a hooker doing algebra?
3. You learn all the names of Boolean, real, integer, variables and what they do, its an easy overview and good way to teach younger group of future programmers, instead of waiting til they get old enough to understand real programming language they can learn the principles in an awesome easy way already at the age of 10.
And yes, the cute icons help out a lot
4. Most basic; Yes, and that's what we want to learn children, the basics, cant go advanced with children, if you do, you're a terrible father/brother
Note: I started off with heroes of might and magic 2 then 3, then Age of empires trigger system, then starcraft & then warcraft 3, I'll have to say I've come a long way with my own understanding of programming within these 10 years, although never been doing it a lot, maybe I should learning deeper JASS so you all can stfu
1. I can still reject approved maps (there are plenty of crappy maps that are approved, because it was a lot easier to get your map approved about a year ago).
2. I thought you were talking about: if job = smith equal to false, then if job = whore equal to false, then ... set job = programmer.
could've been more specific.
3 + 4. It's not hard to learn names afaik ^^ (though it may be at a young age), but DarkBASIC would be a very simple programming language to start with (which actually IS a language)...
Maybe you should learn JASS indeed, just to see the difference between GUI and JASS.
1. I can still reject approved maps (there are plenty of crappy maps that are approved, because it was a lot easier to get your map approved about a year ago).
2. I thought you were talking about: if job = smith equal to false, then if job = whore equal to false, then ... set job = programmer.
could've been more specific.
3 + 4. It's not hard to learn names afaik ^^ (though it may be at a young age), but DarkBASIC would be a very simple programming language to start with (which actually IS a language)...
Maybe you should learn JASS indeed, just to see the difference between GUI and JASS.
Well you cant reject a map that's better then the most shitty maps ever approved on thw, wich my map "japan wars" ain't near of
But if you so badly want to reject my map, go ahead, I dont like it anyway, but seems like other ppl do so to bad for them, right?
New review on my map, go go!
Programming ain't a worse job then any job existing out there
Whore = - Chance of std's +Excercizzzze
Programming = - Bad back + Big paycheck
Dont have time for jass right now tho, study java on spare time atm
Maybe in a month or two
If you start n3rding to much on your spare-time you get cought of your work to easy, like fucking heroin man.. addicting..
And srsly, heroin is badass as programming, but addicting as hell
Hmmm, heroine while programming, now that might be a rush!!
Well the fact that even retarded people (nope I am not calling anyone here retarded I was told this in a lecture) can program (use a programming language) seems to be evading you. Programming is nothing more than speaking to computers in a way they can understand.
Programming efficient and effective programs on the other hand needs skill. But if you notice there is no need for that as I already created some kind of system which was reported to function "ok". Thus all that is needed is a basic understanding of programming languages so he can interface with the system.
GUI is retarded and there is no arguing with that. The fact was it was poorly designed when blizzard made it and this has only been proved with the recent patches causing certain actions to crash (the patchers were not aware that GUI lacked support for those elements which JASS supported).
Local variables are a huge piece of functionality totally missing support from GUI, same with a lot of object destruction natives. On top of that nearly all GUI actions are wrapped native functions, sometimes even directly resulting in wasted time due to unnescescary stack and variable interactions. Finally the last major flaw with GUI is many of the actions leak internally due to failing to null local handles (meaning once the handle is destroyed the ID it used is never recycled) meaning GUI can mostly never be leak free.
Instead of blaming me for bashing GUI with a good reason. Blame blizzard's employee who seriously messed up when designing the whole GUI system. Yes you can map with GUI but not that well (especially for certain tasks), thus why all good maps are atleast partly JASS.
Also learning about computers is not called " n3rding to much on your spare-time you get cought of your work to easy" it is called "learning". Doctors do the very same but with medical information. Engneers do the same but with Engineering information. Writers do the same with reading for god sake. I do not know what you have against learning but I would like to remind you it is learning that got us where we are today.
Most programmers around the world are not more unhealthy than the average person. Infact there is a great chance that many rich programmers are more healthy than you so stop giving them sterio types. Also without these "fucking heroin man" programmers you would not even have WC3, so your blatent flamming is really pointless.
Well the fact that even retarded people (nope I am not calling anyone here retarded I was told this in a lecture) can program (use a programming language) seems to be evading you. Programming is nothing more than speaking to computers in a way they can understand.
Programming efficient and effective programs on the other hand needs skill. But if you notice there is no need for that as I already created some kind of system which was reported to function "ok". Thus all that is needed is a basic understanding of programming languages so he can interface with the system.
GUI is retarded and there is no arguing with that. The fact was it was poorly designed when blizzard made it and this has only been proved with the recent patches causing certain actions to crash (the patchers were not aware that GUI lacked support for those elements which JASS supported).
Local variables are a huge piece of functionality totally missing support from GUI, same with a lot of object destruction natives. On top of that nearly all GUI actions are wrapped native functions, sometimes even directly resulting in wasted time due to unnescescary stack and variable interactions. Finally the last major flaw with GUI is many of the actions leak internally due to failing to null local handles (meaning once the handle is destroyed the ID it used is never recycled) meaning GUI can mostly never be leak free.
Instead of blaming me for bashing GUI with a good reason. Blame blizzard's employee who seriously messed up when designing the whole GUI system. Yes you can map with GUI but not that well (especially for certain tasks), thus why all good maps are atleast partly JASS.
Also learning about computers is not called " n3rding to much on your spare-time you get cought of your work to easy" it is called "learning". Doctors do the very same but with medical information. Engneers do the same but with Engineering information. Writers do the same with reading for god sake. I do not know what you have against learning but I would like to remind you it is learning that got us where we are today.
Most programmers around the world are not more unhealthy than the average person. Infact there is a great chance that many rich programmers are more healthy than you so stop giving them sterio types. Also without these "fucking heroin man" programmers you would not even have WC3, so your blatent flamming is really pointless.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.