Login
User Name:

Password:



Register

Forgot your password?
do_owhere recursive
Author: Khonsu
Submitted by: Khonsu
Changes list / Addchange
Author: Khonsu
Submitted by: Khonsu
6Dragons mp3 sound pack
Author: Vladaar
Submitted by: Vladaar
AFKMud 2.2.3
Author: AFKMud Team
Submitted by: Samson
SWFOTEFUSS 1.5
Author: Various
Submitted by: Samson
Users Online
AhrefsBot, Google

Members: 0
Guests: 27
Stats
Files
Topics
Posts
Members
Newest Member
489
3,792
19,646
597
Aileenutz

Today's Birthdays
There are no member birthdays today.
» SmaugMuds » Codebases » SmaugFUSS » Bug (another one) in disarm( )
Forum Rules | Mark all | Recent Posts

Bug (another one) in disarm( )
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Jan 15, 2017 12:04 pm   Last edited Jan 17, 2017 7:16 pm by Remcon
Go to the top of the page
Go to the bottom of the page

GatewaySysop
Conjurer
GroupMembers
Posts413
JoinedMar 7, 2005

 
So one more thing I noticed in here, was that in the case of DFND_DISARM, for example, the caller is not do_disarm( ), so you don't necessarily have the check for caller wielding weapon. My understanding is that disarm only works when both victim and attack are armed. :shrug:

If that's the case, add the following, otherwise your DFND_DISARM mobiles will end up attempting to disarm folks even if they have no weapon. :headbang:

In skills.c, function disarm( ):

    if ( ( obj = get_eq_char( victim, WEAR_WIELD ) ) == NULL )
    	return;

    if ( ( tmpobj = get_eq_char( victim, WEAR_DUAL_WIELD ) ) != NULL && number_bits( 1 ) == 0 )
    	obj = tmpobj;


Change to include:

    if ( ( obj = get_eq_char( victim, WEAR_WIELD ) ) == NULL )
    	return;

    if ( get_eq_char( ch, WEAR_WIELD ) == NULL )
    	return;

    if ( ( tmpobj = get_eq_char( victim, WEAR_DUAL_WIELD ) ) != NULL && number_bits( 1 ) == 0 )
    	obj = tmpobj;


Post is unread #2 Jan 18, 2017 4:53 pm   
Go to the top of the page
Go to the bottom of the page

Sadiq
Fledgling
GroupMembers
Posts24
JoinedJan 7, 2010

 
I'm not so sure about implementing this on my copy...

You are correct that as the code stands, an unarmed mob can disarm an armed character....but I am not convinced that that is necessarily a Bad Thingâ„¢. There are lots of stories about humans (and monsters) that have disarmed opponents barehanded - monk types spring to mind. I suppose that this one is a preference call, in regards to whether to implement it or not.

Having said that, if someone wanted to implement the change you advocate, your solution would do the trick. :wink:

Post is unread #3 Jan 18, 2017 10:13 pm   
Go to the top of the page
Go to the bottom of the page

GatewaySysop
Conjurer
GroupMembers
Posts413
JoinedMar 7, 2005

 
Sadiq said:

I'm not so sure about implementing this on my copy...

You are correct that as the code stands, an unarmed mob can disarm an armed character....but I am not convinced that that is necessarily a Bad Thingâ„¢. There are lots of stories about humans (and monsters) that have disarmed opponents barehanded - monk types spring to mind. I suppose that this one is a preference call, in regards to whether to implement it or not.

Having said that, if someone wanted to implement the change you advocate, your solution would do the trick. :wink:


Yeah that sorta came to mind when I digging through it, actually..

For PCs the check is there (in do_disarm, as opposed to disarm( ) itself), so in my view, it should be enforced for any other callers as well. If I'm going to tell my PCs "You need a weapon to disarm someone", might be odd for them if an unarmed mobile then disarms them.

However, having said that, I also made the call because I've been on a kick of making mobiles more PC-like and able to use all the defenses they can, having added shieldblock, tumble, duck, block, counter, redirect and several others. For all of those I have rules (i.e. you can't counter if you haven't blocked, block doesn't work on weapons only bare hands, etc.) so each one sorta fills a niche situation. Were I not doing that, I probably wouldn't have found this anyway, and likely would have left it.

So, long story short, I agree with you that it is a bug depending upon one's disposition. To the extent that someone like minded should not intend for it to work differently for do_disarm( ) vs any other caller of disarm( ), hopefully this post is of some value, but I fine calling it a "maybe bug" rather than outright. No argument from me. :alien:

Post is unread #4 Jan 20, 2017 5:14 pm   
Go to the top of the page
Go to the bottom of the page

Sadiq
Fledgling
GroupMembers
Posts24
JoinedJan 7, 2010

 
You know....

The more I thought about your reasoning on this, the more I have become convinced that your logic that 'what's good for them is good for us' makes sense to me. I still hold that a character can still possibly disarm an opponent barehanded - but now am thinking that instead of DISALLOWING barehanded NPC's to disarm....maybe I should ALLOW my PC's to disarm, barehanded, given the right circumstances.

Maybe a CAN_DISARM flag or macro or something.....hrm

Post is unread #5 Jan 20, 2017 7:16 pm   
Go to the top of the page
Go to the bottom of the page

GatewaySysop
Conjurer
GroupMembers
Posts413
JoinedMar 7, 2005

 

Sadiq said:

You know....

The more I thought about your reasoning on this, the more I have become convinced that your logic that 'what's good for them is good for us' makes sense to me. I still hold that a character can still possibly disarm an opponent barehanded - but now am thinking that instead of DISALLOWING barehanded NPC's to disarm....maybe I should ALLOW my PC's to disarm, barehanded, given the right circumstances.

Maybe a CAN_DISARM flag or macro or something.....hrm


Ha ha. I like it! :imp:


Pages:<< prev 1 next >>