Duel Script

Platform:  mIRC
Published  Nov 17, 2005
Updated  Nov 17, 2005
Paste this into a new .mrc file, then save it. Type !duel to start a duel. If no one responds in 20 seconds, the duel will be cancelled. If someone replies, the duel will start. Type !attack to attack when it is your turn. And when you are being attacked you will have 5 seconds to type !block and attempt to block the strike. on *:TEXT:!duel:%chan:{
if (!%duel.active) {
if (!%duel.1) { set %duel.1 $nick | .msg $chan 4 $+ %duel.1 7has set up a Duel. Type 1!duel 7to challenge him. | set %duel.chan $chan | set -u20 %duel 1 | .timerDUEL 1 20 duel-check }
elseif ((%duel.1 != $null || $nick) && (%duel == 1)) { set %duel.2 $nick | .msg $chan 2 $+ %duel.2 7has challenged 4 $+ %duel.1 }
}
else .notice $nick There is already an active Duel. Wait till this Duel has ended before starting another one.
}

on *:TEXT:!end:%chan:{
if (%duel.active != $null) {
if ($nick == %owner || %duel.1 || %duel.2) {
.msg $chan 7Duel ended by 4 $+ $nick
unset %duel*
unset %damage
.timers off
halt
}
else .notice $nick Only %owner or those taking part in the Duel are allowed to use this command
}
else .notice $nick There are no active Duels
}

on *:TEXT:!attack:%chan:{
if (%duel.active == 1) {
if ($nick == %duel.turn) {
attack
}
elseif (($nick == %duel.1 || %duel.2) && ($nick != %duel.turn)) .notice $nick It is not your turn yet.
}
elseif (%duel.active == $null) .notice $nick This is a Duel only command. There are no active Duels right now. Type !duel to start a Duel.
}

on *:TEXT:!block:%chan:{
if (%duel.active == 1) {
if ($nick != %duel.turn) {
defend
}
}
elseif (%duel.active == $null) .notice $nick This is a Duel only command. There are no active Duels right now. Type !duel to start a Duel.
}

alias duel-check {
if (%duel.1 && %duel.2 != $null) {
.msg %duel.chan 7Setting up duel. Duel will start in 3 seconds.
.timerSTART 1 3 startduel
}
elseif (%duel.2 == $null) { .msg %duel.chan 7No one has dared to take up 4 $+ %duel.1 $+ 's 7challenge. Duel cancelled. | unset %duel* }
}

alias hp-check {
if (%duel.2.hp <= 0) {
.msg %duel.chan 4 $+ %duel.1 7has defeated 2 $+ %duel.2 7in battle.
unset %duel*
unset %block*
unset %damage
halt
}
if (%duel.1.hp <= 0) {
.msg %duel.chan 2 $+ %duel.2 7has defeated 4 $+ %duel.1 7in battle.
unset %duel*
unset %block*
unset %damage
halt
}
}

alias startduel {
set %duel.1.hp 50
set %duel.2.hp 50
set %duel.active 1
.msg %duel.chan 7Duel start! 4 $+ %duel.1 7will face off with 2 $+ %duel.2 $+ .
set %duel.first $rand(1,10)
if (%duel.first <= 5) { .msg %duel.chan 4 $+ %duel.1 7will start first. | set %duel.turn %duel.1 }
if (%duel.first > 5) { .msg %duel.chan 4 $+ %duel.2 7will start first. | set %duel.turn %duel.2 }
unset %duel.first
}

alias attack {
if (%duel.turn == %duel.1) {
.msg %duel.chan 4 $+ %duel.1 7swings at 2 $+ %duel.2 7with his sword...
set %damage $rand(0,20)
.timerattack 1 5 hit
}
elseif (%duel.turn == %duel.2) {
.msg %duel.chan 2 $+ %duel.2 7swings at 4 $+ %duel.1 7with his sword...
set %damage $rand(0,20)
.timerattack 1 5 hit
}
}

alias hit {
if (%duel.turn == %duel.1) {
dec %duel.2.hp %damage
.msg %duel.chan 4 $+ %duel.1 7hits 2 $+ %duel.2 7for %damage damage. 2 $+ %duel.2 7has %duel.2.hp hitpoints left.
hp-check
set %duel.turn %duel.2
.msg %duel.chan 7It is now 2 $+ %duel.2 $+ 's 7turn.
}
elseif (%duel.turn == %duel.2) {
dec %duel.1.hp %damage
.msg %duel.chan 2 $+ %duel.2 7hits 4 $+ %duel.1 7for %damage damage. 4 $+ %duel.1 7has %duel.1.hp hitpoints left.
hp-check
set %duel.turn %duel.1
.msg %duel.chan 7It is now 2 $+ %duel.1 $+ 's 7turn.
}
unset %damage
}

alias defend {
timerattack off
if (%duel.turn == %duel.1) {
set %block $rand(1,10)
if (%block <= 7) {
.msg %duel.chan 2 $+ %duel.2 7successfully blocks 4 $+ %duel.1 $+ 's 7attack.
set %duel.turn %duel.2
.msg %duel.chan 7It is now 2 $+ %duel.2 $+ 's 7turn.
}
elseif (%block > 7) {
set %block.damage $floor($calc(%damage/2))
dec %duel.2.hp %block.damage
.msg %duel.chan 2 $+ %duel.2 7manages to block 4 $+ %duel.1 $+ 's 7attack. But the force of the blow does %block.damage damage to 2 $+ %duel.2 $+ . %duel.2 7has %duel.2.hp hitpoints left.
hp-check
set %duel.turn %duel.2
.msg %duel.chan 7It is now 2 $+ %duel.2 $+ 's 7turn.
}
if (%duel.turn == %duel.2) {
set %block $rand(1,10)
if (%block <= 7) {
.msg %duel.chan 4 $+ %duel.1 7successfully blocks 2 $+ %duel.2 $+ 's 7attack.
set %duel.turn %duel.1
.msg %duel.chan 7It is now 4 $+ %duel.1 $+ 's 7turn.
}
elseif (%block > 7) {
set %block.damage $floor($calc(%damage/2))
dec %duel.1.hp %block.damage
.msg %duel.chan 4 $+ %duel.1 7manages to block 2 $+ %duel.2 $+ 's 7attack. But the force of the blow does %block.damage damage to 4 $+ %duel.1 $+. %duel.1 7has %duel.1.hp hitpoints left.
hp-check
set %duel.turn %duel.1
.msg %duel.chan 7It is now 4 $+ %duel.1 $+ 's 7turn.
}
}
}
unset %damage
unset %block*
}

Comments

Sign in to comment.
VinX   -  Jul 29, 2009
@dragon_3290 : whats the prob ?



@Whatever : nice script :)) thanks


i changed the %chan to #vinx and it workd
 Respond  
shugo103   -  Feb 08, 2007
Hmm... i think i have seen this script... on this very web site.. lol...
I will look for it now ^^
 Respond  
dragon_3290   -  Feb 04, 2007
mine no work :(
 Respond  
Nyt3mare   -  Dec 07, 2006
I don\'t know who you are, Whatever, but if I find out, I\'m gonna be pissed. That\'s my script, and you stole it. I do know, how ever, that you\'ve gotta be from the aXpi server.

>>
 Respond  
Master Smiley   -  Nov 20, 2006
yeah that is what mine does....
 Respond  
Master Smiley   -  Sep 03, 2006
yeah it always does 1 damage when i block, could you fix that? also, can you make a persional stats counter, like wins and losses?
 Respond  
drumkid007   -  Aug 12, 2006
mine doesnt work
 Respond  
Master Smiley   -  Aug 10, 2006
it wont let me block, it always does 1 damage to me, when i type block
 Respond  
Whatever   -  Nov 18, 2005
I prefer Pikachu xD
 Respond  
Sasuke   -  Nov 18, 2005
Raichu, Bublasaur or Charmeleon\'s my favorite XD
 Respond  
Raichu   -  Nov 18, 2005
very fun script u made!
 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.