Welcome to the Builder Academy

Question new skill

More
14 Apr 2019 10:07 - 14 Apr 2019 10:11 #8355 by JTP
new skill was created by JTP
Iwe made this, ideas to improve would be nice.

It kinds works, but it also stops when the vict is still attacking, i would like it to come with a message saying It would not be good to let your guard down while fighting. And then let the fight go on.

It should only be possible to stop fighting, when the vict is one of the following states:
#define POS_DEAD 0
#define POS_MORTALLYW 1 <<
#define POS_INCAP 2 <<
#define POS_STUNNED 3 <<

Code:
ACMD(do_disengage) { struct char_data *vict; if (GET_POS(ch) < POS_FIGHTING) { send_to_char(ch, "You are in pretty bad shape, unable to disengage!\r\n"); return; } if (!FIGHTING(ch)) { send_to_char(ch, "How can you disengage from combat, when you are not fighting anyone?\r\n"); return; } if (FIGHTING(ch)) { stop_fighting(ch); send_to_char(ch, "You disengage from combat, letting your guard down.\r\n"); } }
Last edit: 14 Apr 2019 10:11 by JTP.

Please Log in or Create an account to join the conversation.

More
17 Apr 2019 09:23 #8356 by JTP
Replied by JTP on topic new skill
Noone with ideas to improve this ? Seems like a good skill to have

Please Log in or Create an account to join the conversation.

More
18 Apr 2019 11:15 #8357 by thomas
Replied by thomas on topic new skill
Code:
ACMD(do_disengage) { struct char_data *vict = FIGHTING(ch); int percent, prob = GET_SKILL(ch, SKILL_DISENGAGE); if (IS_NPC(ch) || !prob) { send_to_char(ch, "You have no idea how.\r\n"); return; } if (GET_POS(ch) < POS_FIGHTING) { send_to_char(ch, "You are in pretty bad shape, unable to disengage!\r\n"); return; } if (!vict) { send_to_char(ch, "How can you disengage from combat, when you are not fighting anyone?\r\n"); return; } percent = rand_number(1, 101); /* 101% is a complete failure */ if (percent > prob) { send_to_char(ch, "PANIC! You failed to disengage!"); } else { stop_fighting(ch); if (ch == FIGHTING(vict)) stop_fighting(vict); } WAIT_STATE(ch, PULSE_VIOLENCE * 2); }
You'll want the other combattant to stop fighting, too.

As you see, I'd suggest adding a couple of ticks wait state, and a skill check for this, too.

Please Log in or Create an account to join the conversation.

More
18 Apr 2019 11:57 #8358 by JTP
Replied by JTP on topic new skill
What i thought was If you tried to disengage and your tagget was not INCAP or STUNNED

Then fighting would continue and you would get a message that it would not be smart....

And If the target was INCAP or STUNNED. Then you could use disengage amd stop fighting.

Please Log in or Create an account to join the conversation.

More
18 Apr 2019 14:09 #8359 by thomas
Replied by thomas on topic new skill
ok, so you'll need a position check on the vict instead of the skill check.
Code:
- percent = rand_number(1, 101); /* 101% is a complete failure */ - if (percent > prob) { + if (GET_POSITION(vict) => POS_FIGHTING) { send_to_char(ch, "You can't disengage, they're fighting back!"); } else { stop_fighting(ch); if (ch == FIGHTING(vict)) stop_fighting(vict); } WAIT_STATE(ch, PULSE_VIOLENCE * 2);

Please Log in or Create an account to join the conversation.

Time to create page: 0.197 seconds