Item Drop (Blizz-ABS+RMX-OS)

Started by Dweller, May 27, 2010, 12:07:56 pm

Previous topic - Next topic

Dweller

May 27, 2010, 12:07:56 pm Last Edit: May 27, 2010, 12:15:17 pm by game_guy
Hi all,

I have a problem with item drop on my server. Mobs drops the item but directly to players inventory (no item on the field). ABS options --> ITEM_DROP = true. May I need to change other config so the item drop to the field?

(using: UMS, Law Custom eqiipment Screen, RMX-OS, Blizz-ABS, XP Bar-ABS, Visual Equipment ABS, ABS Controller for RMX-OS last version scripts)

ABS Configuration: ShowHide

CUSTOM_CONTROLS = false
   DISABLE_DEFAULT = false
   UP = "Key['W']"
   LEFT = "Key['A']"
   DOWN = "Key['S']"
   RIGHT = "Key['D']"
   PREVPAGE = "Key['Q']"
   NEXTPAGE = "Key['E']"
   CONFIRM = "Key['H']"
   CANCEL = "Key['F']"
   ATTACK = "Key['K']"
   DEFEND = "Key['L']"
   SKILL = "Key['J']"
   ITEM = "Key['I']"
   SELECT = "Key['O']"
   HUD = "Key['Z']"
   HOTKEY = "Key['X']"
   MINIMAP = "Key['C']"
   RUN = "Key['M']"
   SNEAK = "Key['.']"
   JUMP = "Key[',']"
   TURN = "Key['U']"
   
 end
 
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 # BlizzABS::Config
 #----------------------------------------------------------------------------
 #  This module provides Blizz-ABS configurations.
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 module Config
   
   # 2.1. # Basic Configuration
   MAX_PARTY = 4
   MAX_PETS = 1
   MAX_MONSTERS = 1
   MAX_SUMMONS = 1
   CATERPILLAR = false
   CORPSES = false
   EMPTY_CORPSES = false
   RECOVER_ON_LEVEL_UP = true
   FULL_DEFEND = true
   DIRECT_HOTKEYS = false
   AUTO_GAMEOVER = false
   DROP_AMMO = true
   MENU_COLOR_TINT = 0
   DISABLE_ABS_MODE = 0
   ITEM_DROP = true
   ITEM_PICKUP_SOUND_FILE = RPG::AudioFile.new('056-Right02', 80, 100)
   GOLD_DROP = ''
   GOLD_PICKUP_SOUND_FILE = RPG::AudioFile.new('', 80, 100)
   DROP_TIME = 29
   EVENT_LOCK = 40
   ANIMATED_IDS = []
   
   # 2.2. # Movement Configuration
   PIXEL_MOVEMENT_RATE = 0
   REPAIR_MOVEMENT = true
   EIGHT_WAY_MOVEMENT = false
   SNEAK_ON_CHARGE = false
   NORMAL_SPEED = 4
   RUN_SPEED = 5
   SNEAK_SPEED = 3
   JUMPING = 2
   NO_JUMP_TAGS = []
   ALLOW_JUMP_TAGS = []
   NO_FLOOR_TAGS = []
   
   # 2.3. # Lag Prevention Configuration
   INTELLIGENT_PASSABILITY = false
   ABSEAL_AUTOKILL = true
   ABSEAL_FACTOR = 4
   DISABLE_ANTILAG_IDS = []
   
   # 2.4. # Game Info Configuration
   HUD_ENABLED = true
   HUD_POSITION = 0
   HUD_TYPE = 0
   MINIMAP = true
   HOTKEYS = true
   ENEMY_HEALTH_BARS = 0
   ENEMY_HEALTH_BARS_MATCH_WIDTH = false
   BOUNCING_DAMAGE = false
   WEAPON_DATA_MODE = [2, 0]
   SKILL_DATA_MODE = [0, 0, 0]
   ITEM_DATA_MODE = [2, 0, 0]
   
   # 2.5. # Enemy Behavior Configuration
   AI_DEFAULT_ATTRIBUTES = '00000000'
   AI_DELAY_TIME = 40
   VIEW_RANGE = 5
   HEARING_RANGE_RATIO = 40
   RESPAWN_TIME = 8
   WALL_TAGS = []
   NO_ENEMY_TAGS = []
   
   # 2.6. # Animation Configuration
   ANIMATIONS = true
   SMALL_ANIMATIONS = true
   DISPLAY_LEVEL_UP = true
   LEVEL_UP_ANIMATION_ID = 2
   FLEE_ANIMATION_ID = 0
   CALL_HELP_ANIMATION_ID = 0
   DEFEND_ANIMATION_ID = 0
   UNSUMMON_ANIMATION_ID = 0
   
   # 2.7. # Sprite Control Configuration
   A_ACTION_SPRITES = true
   A_WEAPON_SPRITES = true
   A_DEFEND_SPRITES = false
   A_SKILL_SPRITES = false
   A_ITEM_SPRITES = true
   A_IDLE_SPRITES = false
   A_CHARGE_SPRITES = false
   A_CHARGE_WEAPON_SPRITES = false
   A_CHARGE_SKILL_SPRITES = false
   A_CHARGE_ITEM_SPRITES = false
   E_ACTION_SPRITES = false
   E_SKILL_SPRITES = false
   E_IDLE_SPRITES = false
   E_CHARGE_SPRITES = false
   E_CHARGE_SKILL_SPRITES = false
   RUNNING_SPRITES = false
   SNEAKING_SPRITES = false
   JUMPING_SPRITES = false


Please use [code][/code] tags when posting code ~ G_G

Dwellercoc
Spoiler: ShowHide

Blizzard

Quote from: Blizz-ABS Controller for RMX-OS# What is different:
#   
#   - Map actor data will not be stored completely. Special states and effects
#     that are related to Blizz-ABS (i.e. the data regarding the charging
#     state) are not being saved.
#   - RMX-OS was not intended to have Blizz-ABS allies! Players will not see
#     other players' allies on the map if you add them and you are risking data
#     corruption during saving! The same goes for summons!
#   - Alignment groups are available, but dynamic change of alignment groups
#     is mostly disabled for convenience.
#   - Target selection is disabled. Every skill that has target selection will
#     be executed immediately. If a selection skill targets only one target, a
#     random target from all available targets will be chosen. Generally you
#     should avoid single-target selection skills and items.
#   - ABSEAL is disabled.
#   - Processing takes place only on the Global Master client that is assigned
#     dynamically by the server.
#   - Killed enemy events that are set on Death trigger are run only on the
#     Global Master client. It is recommended that killed enemies trigger
#     global switches that run common events. For that you need a plugin for
#     RMX-OS that allows you to have global switches.
#   - Item / Gold Drops are disabled. The actor who killed the enemy will get
#     the item reward. EXP and gold rewards are shared among party members
#     where each party member adds a specific amount to the gained EXP.
#     Remember that items can be traded so a shared item reward is unnecessary.

Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Dweller

Dwellercoc
Spoiler: ShowHide

Dweller

How can I add info about looting to the chat window? (if is posible)
Like: "Character X loot Y item".

Dwellercoc
Spoiler: ShowHide

Wizered67

That was my idea!!!!! (I just didn't ask....)

Event Master

Just so you know, you CAN change it so that items drop to the field in RMX-OS  :evil: (sorry Blizz!)

In the RMX-OS script for ABS, look around line 184, Blizzard has it so that the setup here overrides the setup in your Blizz-ABS config.
Just adjust those settings to change what you want.

I tested RMX-OS WITH item drop, and it works fine, only that the person who defeated the enemy will be the only person able to see and pick up the dropped items.

I haven't tested Corpses.

ABSEAL also works with no problem, but it might not on yours. If you have the problem with large sprites leaving sections on the map, it probably won't work.
World's Greatest Gravedigger

stripe103

Sure, it maybe works, but there is probably a reason that he wants them disabled.

Blizzard

When one item is dropped, it is dropped on every map and literally every player can take his own version of the item. I hope that's what you want to happen in your game.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

SBR*

Quote from: Blizzard on August 27, 2010, 11:50:37 am
When one item is dropped, it is dropped on every map and literally every player can take his own version of the item. I hope that's what you want to happen in your game.


But he said that only the player who killed the monster could see and loot the item?

Event Master

These REALLY should be disabled, but in some way, you could make it so that when the enemy is defeated, it triggers the same thing that it does upon death that allows ALL players to see that it died, then the server sends the drop to every body. Get it? You can probably do the same with corpses if you wanted.

Items show up in every map? That didn't happen to me. Only the person who beat it could see it, and only that person could get it. I WAS having problems where random players would appear on different maps then they were really on, but it fixed itself (ABSEAL probably)

I can't script that, and I don't think that ABSEAL should be turned on (unless you really need it) and it's really best left that the item drop and stuff is also turned off, unless somewhow this is implimented.

And SBR, Blizz made the script, not me. I just picked it apart (thanks for the RMX-OS autotargeting I'm using without RMX-OS!) and studied the different sections. If Blizz (or Winkio for some) says something will probably happen, you should probably take it over what I or anybody else says.
World's Greatest Gravedigger

Blizzard

If one player has an event on the map that no other player can see, there are 3 problems. One is the inconsistency in the game. The game is not equal to everybody. Secondly, if that one player is the only who can pick the item up, why even bother putting it there? The last one is that the existence of an event in one player's game can crash somebody else's because the game is trying to do something with non-existing data (like showing a sprite).

And besides, you're forgetting one main problem. Not the player who killed the monster will have the item appear but the player who processed the kill will have the item appear and those two can be different players. Let player A enter a map and then let player B enter the map. Let player B kill the monster and see where the item appears. Don't turn off the window of player A. If the window of player A is deactivated, chances are that the server will reassign the role of the processor client to player B.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

element

I also like to have something like a loot bag that is dropped(with somethimes multiple items and gold in it.)
It could be handy cuz in my game u have a max bag capacity and u could choose wich item u take and wich one u don't.
Or is there something that does that already?

Event Master

August 27, 2010, 08:14:02 pm #12 Last Edit: August 28, 2010, 11:06:13 am by Event Master
Well, if we have enemies drop items, it will make players more frantic and think twice about WHERE they defeat the enemies.
The game would be unequal to everybody, but it already is the other way too.
Yes, it could possibly crash the other people's game, but I see no reason as to why (I had another player step directly on the loot of another person but it didn't do anything, but having the sprite dissapear over some time could cause this, but since this hasn't been added to RMX-OS, it won't process it globally, right? Blizz-ABS is Blizz-ABS, even with the server. All's that RMX-OS does is show other charecters playing, allows you to text with other players, and have it so that enemies are DELETED (in your script, it doesn't call so that the enemies are counted as Killed, it just deletes them) like would happen if one enemy defeated another (I also tried that).) Other people processing other people's kills is possible, but RMX-OS is more like a pass-along for Blizz-ABS. BABS processes everything, then RMX-OS takes it, shines it up, then sends it to others. Don't get me wrong, I think that your RMX-OS is GENIOUS, but hey, people can risk it and try if they want.

Yes, there are a lot of ways for things to go wrong, but they probably won't (I think)

Blizz, I don't want my stuff crashing and buggy, I'm just saying what's possible. (I'm not doing any of this stuff!). And I highly DON'T suggest that anybody does any of this. You made RMX-OS how it was for a reason, and unless (for some odd reason) somebody wants this, an extension could be made (why would you need this?) but I think that would be more work than it's worth.

element, use Tons of Add On's Multi-drop, the make or find a gold fluxuation script.
If you want to have it so that you can choose what items to take, just make it so that players can somehow delete items in their bag. There's probably a script for this somewhere (or you can request it. It can't be that difficult to make.)

I know you probably hate me by now :^_^':
World's Greatest Gravedigger

Blizzard

You don't mind your game being buggy and prone to crashes? Wow, just wow. You're not going to make it far with that attitude. Please, just stop posting. Just stop.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

SBR*

August 28, 2010, 10:26:13 am #14 Last Edit: August 28, 2010, 10:28:20 am by SBR*
Quote from: Event Master on August 27, 2010, 02:18:53 pm
Spoiler: ShowHide

These REALLY should be disabled, but in some way, you could make it so that when the enemy is defeated, it triggers the same thing that it does upon death that allows ALL players to see that it died, then the server sends the drop to every body. Get it? You can probably do the same with corpses if you wanted.

Items show up in every map? That didn't happen to me. Only the person who beat it could see it, and only that person could get it. I WAS having problems where random players would appear on different maps then they were really on, but it fixed itself (ABSEAL probably)

I can't script that, and I don't think that ABSEAL should be turned on (unless you really need it) and it's really best left that the item drop and stuff is also turned off, unless somewhow this is implimented.

And SBR, Blizz made the script, not me. I just picked it apart (thanks for the RMX-OS autotargeting I'm using without RMX-OS!) and studied the different sections. If Blizz (or Winkio for some) says something will probably happen, you should probably take it over what I or anybody else says.



IK, but am I not allowed to ask for an explanation? O.o

Quote from: Blizzard on August 27, 2010, 04:06:34 pm
Spoiler: ShowHide

If one player has an event on the map that no other player can see, there are 3 problems. One is the inconsistency in the game. The game is not equal to everybody. Secondly, if that one player is the only who can pick the item up, why even bother putting it there? The last one is that the existence of an event in one player's game can crash somebody else's because the game is trying to do something with non-existing data (like showing a sprite).

And besides, you're forgetting one main problem. Not the player who killed the monster will have the item appear but the player who processed the kill will have the item appear and those two can be different players. Let player A enter a map and then let player B enter the map. Let player B kill the monster and see where the item appears. Don't turn off the window of player A. If the window of player A is deactivated, chances are that the server will reassign the role of the processor client to player B.



I'm wondering: why is the dropping of the item processed by the processor client and the adding of an item to your inventory not? If the kill is processed by the processing client, what 's the difference between those two actions? And EM, I believe Blizz, I'd just like to know why this is that way...

Blizzard

August 28, 2010, 10:41:25 am #15 Last Edit: August 28, 2010, 10:42:42 am by Blizzard
Let me explain. I took a look at my code to remember what I implemented and how it works exactly.

When an enemy dies, that is processed on the client that has the processor role assigned by the server (I call it G-Master as in global master processor client). The fact that the enemy died is sent over the network including the ID of the user who killed it. Each player on the map gets that message. Everybody will actually process the death of the enemy in the method BlizzABS::Processor::remove_enemy. But exp, gold and items are dropped only for the guy who killed it (where gold and exp are given to all players in the party as well if the player is a member of a party). So I made a mistake (hah, means I actually thought of that problem in advance and already solved it beforehand) and killing an enemy would cause it to drop stuff only on the player's map who actually killed the enemy. Still, game inconsistency sucks and makes the game look less real since data isn't shared among everybody. That means the only two problems that remain are inconsistency and the actual unnecessity to put the item on the floor since nobody can steal your loot anyway.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.