RPG Problem (Diffrent Armor/Weapon for diffrent classes)

hasslarn

New Member
Reaction score
20
Hello people!

Ive started a new RPG Project just to make the time flow and ive got one problem and

It's that i want diffrent classes to have diffrent weapons/armor

Example

A Rouge picks up a bow
It should drop and Say "You can't wield bows"
or if a Archer trys to pick up a sword
It should drop the item and say "You can't wield swords!"
 

Sevion

The DIY Ninja
Reaction score
413
You need to assign a "weapon-type" to each item.

I.E. Assign "Bow" to any bow weapon and when a unit acquires a weapon, do a check on its type and the unit's type. If they're incompatible, drop it and display the message.
 

hasslarn

New Member
Reaction score
20
I dont realy understand how you mean. You mean by using Item-type? Like Artifact and stuffs?
----
Can i do this by trigger , if i set them as Variables?
 

Sevion

The DIY Ninja
Reaction score
413
No, not Item-type. It's a variable and you'd have to do this by trigger.

Something you could do is set the item's user data to an integer and use that.

I.E. 0 can mean Bow, 1 can mean Sword, 2 can mean Dagger, 3 can mean staff etc etc.
 

Sevion

The DIY Ninja
Reaction score
413
Trigger:
  • Trigger
    • Events
      • Unit - A unit Picks Up an Item
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Triggering unit)) Equal to Footman
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Custom value of (Item being manipulated)) Equal to 0 <-- Bow?
            • Then - Actions
              • ... Do stuff like Drop the item, display the msg, etc...
            • Else - Actions
        • Else - Actions


And when an item is created/dropped etc set the Custom value of the item to whatever item type it should be.
 

hasslarn

New Member
Reaction score
20
Trigger:
  • Trigger
    • Events
      • Unit - A unit Picks Up an Item
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Unit-type of (Triggering unit)) Equal to Footman
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Custom value of (Item being manipulated)) Equal to 0 <-- Bow?
            • Then - Actions
              • ... Do stuff like Drop the item, display the msg, etc...
            • Else - Actions
        • Else - Actions


And when an item is created/dropped etc set the Custom value of the item to whatever item type it should be.

Thanks alot mate +rep!
 

hasslarn

New Member
Reaction score
20
Alright Thanks alot!

EDIT:Something is wrong here.. the triggers dosnt even start when i test them.

Trigger:
  • test Copy
    • Events
      • Unit - A unit Acquires an item
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Item-type of (Item being manipulated)) Equal to bow test
        • Then - Actions
          • Item - Set the custom value of (Item being manipulated) to 1
        • Else - Actions





Trigger:
  • test
    • Events
      • Unit - A unit Acquires an item
    • Conditions
      • (Unit-type of (Hero manipulating item)) Equal to Spearman
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Custom value of (Item being manipulated)) Equal to 1
        • Then - Actions
          • Hero - Drop (Item being manipulated) from (Hero manipulating item)
          • Quest - Display to (Player group((Owner of (Hero manipulating item)))) the Warning message: |cffff0000You can n...
        • Else - Actions
 

NoobImbaPro

You can change this now in User CP.
Reaction score
60
You can use custom values on classes too. When someone picks an item, it checks his custom values and then drops the weapons or equips it.
Lets say 1 is for yes 0 is for no.
Our code is Weapons:sword|dagger|bow|staff|shield (Armors):heavy|light|robe
Then a warrior class has the custom value of 10001100. So he can take a sword, a shield and a heavy armor.
To check it, you set the custom values of item types to, 0 for sword, 1 for dagger, 2 for bow, 3 for staff, 4 for shield, 5/6/7 for heavy/light/robe armor. If is 1 he can equip it if its 0 the item is dropped again. Don't forget to convert the custom value into string to check the positions. You can also add a second number to items that identifies the positioning in inventory.
 

Sevion

The DIY Ninja
Reaction score
413
NoobImbaPro, your method will fail if the first digit is 0.

hasslarn, try putting some messages to see if they even fire when a unit picks up an item.
 

hasslarn

New Member
Reaction score
20
Yes and this code worked

Trigger:
  • * test Copy
    • o Events
      • + Unit - A unit Acquires an item
    • o Conditions
    • o Actions
      • + If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • # If - Conditions
          • * (Item-type of (Item being manipulated)) Equal to bow test
        • # Then - Actions
          • * Item - Set the custom value of (Item being manipulated) to 1
        • # Else - Actions


but the other didnt
 

NoobImbaPro

You can change this now in User CP.
Reaction score
60
NoobImbaPro, your method will fail if the first digit is 0.

hasslarn, try putting some messages to see if they even fire when a unit picks up an item.

man i don't know what is the first digit position 0 or 1. And I made it work, if you go into advanced map development you can make anything.
 

Sevion

The DIY Ninja
Reaction score
413
No, it would fail if you have an integer with the first digit (left most digit) as a zero because integers truncate leading zeros.

hasslarn, how far does the second trigger get.
 

HydraRancher

Truth begins in lies
Reaction score
197
No, it would fail if you have an integer with the first digit (left most digit) as a zero because integers truncate leading zeros.

hasslarn, how far does the second trigger get.

I suppose you could have a "2" in front to retain the zeros.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top