-EDITED- Current Version: Beta 1.5
This is a Duelling system I am working on. It is still a work in progress so there may be some unforeseen issues and may not be properly balanced. I have written this with the intention of it being used on Twitch, however it could also be used in IRC, however may require some editing
This System was written to use Twitch whispers (to cut down on chat spam).
The system is separated into phases for the different actions.
Challenge Phase: From when one user challenges another until that user accepts the challenge or 5 minutes passes (automatic decay)
!challenge [nick of someone in chat] - challenges that user to a duel
!duel accept/refuse - accepts or refuses the duel challenge (after having been challenged)
Equipment Phase: From the acceptance of a challenge until both users equip a class, weapon and set of armour before ready up for combat
!equipment - displays all currently available equipment
!equip weapon/armour/class [identifier] - equips the specified weapon/armour/class set. (must equip 1 class, 1 weapon and 1 armour set)
!ready - confirms your equipment and if both users are ready progresses to the combat phase
!status - displays your current Health, class, weapon, armour set and your stats (as determined by your equipment)
"DuelSystem.ini","Weapons.ini", "Classes.ini", "BasicMagic.ini" and "Armour.ini" files are used to store class, weapon and armour information.
Placeholder files are available at https://www.dropbox.com/sh/qzou4k4lgrxdq53/AADsGt5FvXYb7x8W8xIhaCAaa?dl=0. Follow a similar format to create your own equipment.
Combat Phase: From both users readying themselves until one user's health reaches 0 or surrenders.
!Attack - attacks your opponent for damage dependent on your weapon
!defend - reduces incoming damage by double your maximum armour value (Only works when you move before your opponent)
!magic - casts a magical attack at your opponent (magic depends on weapon equipped, damage dependent on equipment)
!surrender - Your opponent wins
Below is the script for the entire system so far (with some placeholder values). This includes an experience and leveling system I am currently working on. Eventually this will dictate what equipment and abilities are available to you.
You can check your own experience using "!Experience" and the experience of another user using "!Experience [Target]" (if moderator)
If you wish to test the execution of the script at all it is being run on my Twitch chat bot which you can access at Twitch.tv/Burn_bot (This requires 2 users)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
================================================= Challenge Phase ========================================================================
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
on *:text:!Challenge*:#:{
if ($($+(%,floodchallenge.,$nick,.,$chan),3)) { return }
If ($($+(%,Challenge.,$nick,.,$chan),3)) || ($($+(%,Duel.,$nick,.,$chan),3)) {
msg $chan /w $nick You have already been challenged or are in a duel on $right($chan,-1) $+ 's channel. Please deny any duel requests or finish your current duel before challenging someone.
set -u10 %floodchallenge. $+ $nick $+ . $+ $chan On
Halt
}
If ($2 ison $chan) {
if ($nick == $2) {
msg $chan /w $nick You cannot challenge yourself to a duel, please challenge someone else
set -u10 %floodchallenge. $+ $nick $+ . $+ $chan On
halt
}
If ($($+(%,Challenge.,$2,.,$chan),3)) || ($($+(%,Duel.,$2,.,$chan),3)) {
msg $chan /w $nick $2 has already been challenged or is currently in a duel on $right($chan,-1) $+ 's channel, please wait until they are finished before challenging them.
Halt
}
set -u120 %floodchallenge. $+ $nick $+ . $+ $chan On
set -u300 %challenge. $+ $nick $+ . $+ $chan on
set -u300 %challenge. $+ $2 $+ . $+ $chan on
set -u300 %challenged. $+ $2 $+ . $+ $chan on
writeini -n DuelSystem.ini $chan $+ . $+ $nick Opponent $2
writeini -n DuelSystem.ini $chan $+ . $+ $2 Opponent $nick
msg $chan /w $nick you have challenged $2 to a duel on $right($chan,-1) $+ 's channel. $2 must use "!Duel Accept/Decline" to respond to the challenge.
msg $chan /w $2 You have been challenged by $nick on $right($chan,-1) $+ 's channel. You must use "!Duel Accept/Decline" to respond to this challenge.
halt
}
msg $chan /w $nick I do not recognise anyone by that name in $right($chan,-1) $+ 's channel, please check your spelling and try again.
set -u5 %floodchallenge. $+ $nick $+ . $+ $chan On
halt
}
on *:text:!Duel*:#:{
if ($($+(%,floodduel.,$nick,.,$chan),3)) { return }
If ($($+(%,Challenge.,$nick,.,$chan),3)) && ($($+(%,Challenged.,$nick,.,$chan),3)) {
if ($2 == accept) {
set %duel. $+ $nick $+ . $+ $chan on
set %duel. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan on
set -u30 %floodduel. $+ $nick $+ . $+ $chan On
set %equip.phase. $+ $nick $+ . $+ $chan on
set %equip.phase. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan on
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Health 100
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Health 100
unset %challenge. $+ $nick $+ . $+ $chan
unset %challenge. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
unset %challenged. $+ $nick $+ . $+ $chan
;Timers for automatic decay of duel due to inactive user
timer $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ duel1 1 180 /msg $chan /w $nick You have not readied for combat for your duel against $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) on $right($chan,-1) $+ 's channel. The Duel will end in 2 minutes if you don't "!Ready" up.
timer $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ duel2 1 300 /msg $chan /w $nick Your duel against $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) on $right($chan,-1) $+ 's channel has been closed due to inaction.
timer $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ end.duel 1 300 End.Duel
timer $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ duel1 1 180 /msg $chan /w $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) You have not readied for combat in your duel against $nick on $right($chan,-1) $+ 's channel. The Duel will end in 2 minutes if you don't "!Ready" up.
timer $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ duel2 1 300 /msg $chan /w $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) Your duel against $nick on $right($chan,-1) $+ 's channel has been closed due to inaction.
timer $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ end.duel 1 300 End.Duel
msg $chan /me $nick has accepted $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ 's duel.
msg $chan /w $nick Progressing to the Equipment phase, please "!Equip" your desired "!Classes" and then "!Equipment"
msg $chan /w $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) Progressing to the Equipment phase, please "!Equip" your desired "!Classes" and then "!Equipment"
halt
}
if ($2 = $null) {
msg $chan /w $nick you must specify whether you Accept or Refuse the challenge in $right($chan,-1) $+ 's channel.
halt
}
if ($2 == decline) {
unset %challenge. $+ $nick $+ . $+ $chan
unset %challenge. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ 's challenge has been refused.
unset %challenged. $+ $nick $+ . $+ $chan
halt
}
else {
msg $chan /w $nick You have not specified whether you would like to Accept or Refuse the challenge correctly. Please use "!Duel Accept" or "!Duel Decline".
halt
}
}
msg $chan /w $nick You have not been challenged or the challenge has expired on $right($chan,-1) $+ 's channel, try challenging your desired opponent.
set -u30 %floodduel. $+ $nick $+ . $+ $chan On
halt
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
================================================= Equipment Phase ========================================================================
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
on *:text:!Equipment:#:{
if ($($+(%,floodequipment.,$nick,.,$chan),3)) { return }
if ($($+(%,equip.phase.,$nick,.,$chan),3)) {
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class) = $null) {
msg $chan /w $nick Your available Classes are: $readini(DuelSystem.ini,n,Equipables,Classes) $iif($nick isop $chan,. As a mod you can also use $readini(DuelSystem.ini,n,Equipables,ModClasses) $+ !,)
set -u30 %floodClasses. $+ $nick $+ . $+ $chan On
halt
}
msg $chan /w $nick Your available weapons are: $readini(Classes.ini,n,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Weapons) $iif($nick isop $chan,As a mod you can also use $readini(DuelSystem.ini,n,Equipables,ModWeapons) $+ !,) Your available armours are: $readini(Classes.ini,n,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Armour)
set -u30 %floodequipment. $+ $nick $+ . $+ $chan On
halt
}
msg $chan /w $nick You are not in the Equip Phase on $right($chan,-1) $+ 's channel and cannot access your equipment at the moment.
set -u30 %floodequipment. $+ $nick $+ . $+ $chan On
halt
}
on *:text:!Equip*:#:{
if ($($+(%,floodequip.,$nick,.,$chan),3)) { return }
if ($($+(%,equip.phase.,$nick,.,$chan),3)) {
if ($2 == Class) {
if ($readini(Classes.ini,$3,Weapons) != $null) {
if ($3 isin $readini(DuelSystem.ini,Equipables,ModClasses)) {
;if trying to equip mod only class
if ($nick isop #) {
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Equipment Class $3
msg $chan /w $nick You equip $3 as your class, make sure you equip an armour set and a weapon and then "!Ready" up!
halt
}
;if not a mod
msg $chan /w $nick You cannot equip $3 as your class, as you are not a moderator on $right($chan,-1) $+ 's channel.
Halt
}
;if not equipping mod only class
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Equipment Class $3
msg $chan /w $nick You equip $3 as your class, make sure you equip an armour set and a weapon and then "!Ready" up!
halt
}
goto IdentifierIssue
}
if ($2 == Weapon) || ($2 == Armour) || ($2 == Armor) {
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class) != $null) {
if ($readini(Weapons.ini,$3,Damage) != $null) || ($readini(Armour.ini,$3,Defense) != $null) {
if ($2 == Weapon) {
if ($3 isin $readini(DuelSystem.ini,Equipables,ModWeapons)) {
;if trying to equip mod only weapon
if ($nick isop #) {
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Equipment Weapon $3
msg $chan /w $nick You equip $3 as your Weapon, make sure you equip an armour set and then "!Ready" up!
halt
}
;if not a mod
msg $chan /w $nick You cannot equip $3 as your weapon, as you are not a moderator on $right($chan,-1) $+ 's channel.
Halt
}
if ($3 isin $readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Weapons)) {
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Equipment Weapon $3
msg $chan /w $nick You equip $3 as your weapon, make sure you equip an armour set and then "!Ready" up!
halt
}
msg $chan /w $nick You cannot equip $3 as your weapon as the class you have equipped cannot use that weapon, either equip a different class or equip a different weapon!
halt
}
if ($2 == Armour) || ($2 == Armor) {
if ($3 isin $readini(DuelSystem.ini,Equipables,ModArmour)) {
;if trying to equip mod only weapon
if ($nick isop #) {
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Equipment Armour $3
msg $chan /w $nick You equip $3 as your Armour set, make sure you equip a Weapon and then "!Ready" up!
halt
}
;if not a mod
msg $chan /w $nick You cannot equip $3 as your armour, as you are not a moderator on $right($chan,-1) $+ 's channel.
Halt
}
if ($3 isin $readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Armour)) {
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Equipment Armour $3
msg $chan /w $nick You equip $3 as your armour set, make sure you equip a weapon and then "!Ready" up!
halt
}
msg $chan /w $nick You cannot equip $3 as your armour as the class you have equipped cannot use that armour, either equip a different class or equip a different armour!
halt
}
}
:IdentifierIssue
msg $chan /w $nick Something is wrong with your identifier! Please check your spelling and try again.
halt
}
:NoClass
msg $chan /w $nick You have not yet chosen a class to equip for this duel, type "!Classes" to see those available to you.
halt
}
msg $chan /w $nick Something is wrong with your command! Please use "!Equip (Weapon/Class/Armour) [Item Identifier]"
halt
}
msg $chan /w $nick You are not currently in the equipment phase on $right($chan,-1) $+ 's channel! You can only choose your equipment whilst in the equipment phase.
set -u30 %floodequip. $+ $nick $+ . $+ $chan On
halt
}
on *:text:!Ready:#:{
if ($($+(%,floodready.,$nick,.,$chan),3)) { return }
if (($($+(%,Ready.,$nick,.,$chan),3))) {
msg $chan /w $nick You are already ready for combat on $right($chan,-1) $+ 's channel... if you're not, you had better be quickly!
set -u60 %floodready. $+ $nick $+ . $+ $chan On
halt
}
if ($($+(%,combat.phase.,$nick,.,$chan),3)) {
msg $chan /w $nick You are already in combat on $right($chan,-1) $+ 's channel! What do you mean you weren't ready until now!?
halt
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon) != $null) && ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour) != $null) && ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class) != $null) {
;set $nick as Ready
set %Ready. $+ $nick $+ . $+ $chan on
;Stop Duel Auto Decay for inaction
timer $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ * off
;if Opponent is ready
if (($($+(%,Ready.,$readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),.,$chan),3))) {
unset %equip.phase. $+ $nick $+ . $+ $chan
unset %equip.phase. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
unset %Ready. $+ $nick $+ . $+ $chan
unset %Ready. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
set %combat.phase. $+ $nick $+ . $+ $chan on
set %combat.phase. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan on
writeini DuelSystem.ini $chan $+ . $+ $nick round 1
writeini DuelSystem.ini $chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) round 1
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Damage $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Damage)
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Damage $readini(Weapons.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Weapon),Damage)
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Intelligence $calc($readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Intelligence) + ($readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Intelligence) + ($readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Intelligence))))
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Intelligence $calc($readini(Armour.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Armour),Intelligence) + ($readini(Weapons.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Weapon),Intelligence) + ($readini(Classes.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Class),Intelligence))))
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats MaxMana $readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Mana)
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats MaxMana $readini(Classes.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Class),Mana)
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Mana $readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Mana)
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Mana $readini(Classes.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Class),Mana)
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Critical $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Critical)
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Critical $readini(Weapons.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Weapon),Critical)
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Defense $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Defense)
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Defense $readini(Armour.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Armour),Defense)
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Dodge $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Dodge)
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Dodge $readini(Armour.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Armour),Dodge)
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Speed $calc($readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Speed) + $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Speed))
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Speed $calc($readini(Armour.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Armour),Speed) + $readini(Weapons.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Weapon),Speed))
msg $chan /w $nick Continuing to the combat phase. Please select whether you would like to "!Attack", "!Defend" or cast "!Magic" this round.
msg $chan /w $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) Continuing to the combat phase. Please select whether you would like to "!Attack", "!Defend" or cast "!Magic" this round.
halt
set -u120 %floodready. $+ $nick $+ . $+ $chan On
}
msg $chan /w $nick You are now ready to begin combat!
msg $chan /w $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $nick is now ready to begin combat, "!Ready" yourself to begin combat!
set -u120 %floodready. $+ $nick $+ . $+ $chan On
halt
}
msg $chan /w $nick You do not have a weapon, class or set of armour equipped, please check your "!Status" and "!equip" a weapon, class and set of armour before you "!Ready" up!
set -u10 %floodequip. $+ $nick $+ . $+ $chan On
halt
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
================================================= Combat Phase ========================================================================
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Alias -l Combat {
if ($rand(1,2) = 1) {
;$nick attacks first!
UserAction
UserReport
OpponentAction
OpponentReport
EndRound
}
;Opponent attacks first
OpponentAction
OpponentReport
UserAction
UserReport
EndRound
}
Alias -l UserAction {
;What action did $nick choose?
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == attack) {
UserAttack
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == defend) {
return
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == magic) {
UserMagic
}
}
Alias -l UserAttack {
If ($rand(1,100) > 10) {
;Attack hits
if ($rand(1,100) > $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Dodge)) {
;Attack is not dodged
if ($rand(1,100) < $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Critical)) {
;Attack is a critical hit 2x Dmg
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) Critical
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Attack Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $calc($rand($calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Damage) - 5),$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Damage)) + $rand($calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Damage) - 5),$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Damage)))
}
else {
;Attack is not a critical hit 1x Dmg
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) Hit
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Attack Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $rand($calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Damage) - 5),$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Damage))
}
;Damage absorbed by armour
;if Opponent defended
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Defend) {
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Defense Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $calc(2 * $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Defense))
}
else {
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Defense Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $rand(1,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Defense))
}
;Write health loss
if ($calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) - $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round))) >= 1) {
;if damage is more than defense
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Health $calc($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) - $calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) - $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round))))
}
;if defense is more than damage -> no damage taken
}
else {
;Attack dodged
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) Dodge
}
}
Else {
;Attack misses
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) Miss
}
}
Alias -l UserMagic {
If ($rand(1,100) > 70) {
;Attack hits
if ($rand(1,100) > $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Dodge)) {
;Attack is not dodged
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) Hit
;Damage absorbed by armour
;if Opponent defended
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Defend) {
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Defense Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $calc(2 * $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Defense))
}
else {
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Defense Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $rand(1,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Defense))
}
;write health loss
if ($calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Intelligence) - $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round))) >= 1) {
;if damage is more than defense
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Stats Health $calc($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) - $calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Intelligence) - $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round))))
}
;if defense is more than damage -> no damage taken
}
else {
;Attack dodged
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) Dodge
}
}
Else {
;Attack misses
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) Miss
}
}
Alias -l OpponentAction {
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == attack) {
OpponentAttack
}
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == defend) {
return
}
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == magic) {
OpponentMagic
}
}
Alias -l OpponentAttack {
If ($rand(1,100) > 10) {
;Attack hits
if ($rand(1,100) > $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Dodge)) {
;Attack is not dodged
if ($rand(1,100) < $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Critical)) {
;Attack is a critical hit 2x Dmg
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) Critical
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Attack Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $calc($rand($calc($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Damage) - 5),$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Damage)) + $rand($calc($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Damage) - 5),$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Damage)))
}
else {
;Attack is not a critical hit 1x Dmg
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) Hit
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Attack Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $rand($calc($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Damage) - 5),$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Damage))
}
;Damage absorbed by armour
;if $nick defended
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) == Defend) {
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Defense Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) $calc(2 * $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Defense))
}
else {
;if $nick didn't defend
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Defense Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) $rand(1,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Defense))
}
;Write health after attack (damage reduced by armour)
if ($calc($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) - $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round))) >=1) {
;if damage = more than defense
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Health $calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) - $calc($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) - $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round))))
}
;if defense = or more than damage -> take no damage
}
else {
;Attack dodged
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) Dodge
}
}
Else {
;Attack misses
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) Miss
}
}
Alias -l OpponentMagic {
If ($rand(1,100) > 70) {
;Attack hits
if ($rand(1,100) > $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Dodge)) {
;Attack is not dodged
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) Hit
;Damage absorbed by armour
;if $nick defended
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) == Defend) {
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Defense Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) $calc(2 * $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Defense))
}
else {
;if $nick didn't defend
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Defense Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) $rand(1,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Defense))
}
;Write health after attack (damage reduced by armour)
if ($calc($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Intelligence) - $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round))) >= 1) {
;if defense is less than damage
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Health $calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) - $calc($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Intelligence) - $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round))))
}
;if defense is = or more than attack -> no damage taken
}
}
else {
;Attack dodged
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) Dodge
}
Else {
;Attack misses
writeini Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini Hit Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) Miss
}
}
Alias -l UserReport {
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == attack) {
UserAttackReport
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == defend) {
UserDefendReport
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == magic) {
UserMagicReport
}
}
Alias -l UserAttackReport {
If ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) < 1) || (- isin $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health)) {
;if opponent Dies
;if opponent defended
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Defend) {
msg $chan /me $nick attacks $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) damage! They defend for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) damage! Sadly it was not enough... $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has died. $nick wins the duel!
Duel.UserWon $nick $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent)
End.Duel
halt
}
else {
msg $chan /me $nick attacks $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) damage! $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has died. $nick wins the duel!
Duel.UserWon $nick $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent)
End.Duel
halt
}
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Miss) {
;attack misses
msg $chan /me $nick attacks $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) and misses.
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Dodge) {
;attack dodged
msg $chan /me $nick attacks $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) who dodges the attack.
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Hit) {
;attack hits
;if opponent defended
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Defend) {
msg $chan /me $nick attacks $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) damage! They defend for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) damage! $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) health remaining.
}
else {
msg $chan /me $nick attacks $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) damage! $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) health remaining.
}
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Critical) {
;attack is a crit hit
;if opponent defended
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Defend) {
msg $chan /me $nick attacks $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ 's weak spot for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) critical damage! They defend for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) damage! $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) health remaining.
}
else {
msg $chan /me $nick attacks $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ 's weak spot for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) critical damage! $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) health remaining.
}
}
}
Alias -l UserDefendReport {
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Speed) > $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Speed)) {
msg $chan /me $nick defends in preparation for $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ 's attack.
}
else {
msg $chan /me $nick tries to defend against $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ 's attack, but was too slow.
}
}
Alias -l UserMagicReport {
RNGMagicReport User
;Chooses random Magic report from list
If ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) < 1) || (- isin $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health)) {
;if opponent Dies
;if opponent defended
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Defend) {
msg $chan /me $nick %RNGMagicReportUser $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Intelligence) damage! They defend for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) damage! Sadly it was not enough... $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has died. $nick wins the duel!
Duel.UserWon $nick $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent)
End.Duel
halt
}
else {
msg $chan /me $nick %RNGMagicReportUser $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Intelligence) damage! $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has died. $nick wins the duel!
Duel.UserWon $nick $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent)
End.Duel
halt
}
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Miss) {
;attack misses
msg $chan /me $nick %RNGMagicReportUser $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) and misses.
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Dodge) {
;attack dodged
msg $chan /me $nick %RNGMagicReportUser $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) who dodges the attack.
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Hit) {
;attack hits
;if opponent defended
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Defend) {
msg $chan /me $nick %RNGMagicReportUser $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Intelligence) damage! They defend for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) damage! $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) health remaining.
}
else {
msg $chan /me $nick %RNGMagicReportUser $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Intelligence) damage! $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) has $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Health) health remaining.
}
}
}
Alias -l OpponentReport {
;Opponent's actions
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == attack) {
OpponentAttackReport
}
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == defend) {
OpponentDefendReport
}
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == magic) {
OpponentMagicReport
}
}
Alias -l OpponentAttackReport {
If ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) < 1) || (- isin $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health)) {
;if $nick Dies
;if $nick defended
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) == Defend) {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) attacks $nick for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) damage! They defend for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) damage! Sadly it was not enough... $nick has died. $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) wins the duel!
Duel.OpponentWon $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $nick
End.Duel
halt
}
else {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) attacks $nick for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) damage! $nick has died. $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) wins the duel!
Duel.OpponentWon $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $nick
End.Duel
halt
}
}
if ( $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Miss) {
;Attack misses
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) attacks $nick and misses!
}
if ( $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Dodge) {
;attack is dodged
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) attacks $nick who dodges the attack!
}
if ( $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Hit) {
;Attack hits
;attack hits
;if $nick defended
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) == Defend) {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) attacks $nick for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) damage! They defend for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) damage! $nick has $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health remaining.
}
else {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) attacks $nick for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) damage! $nick has $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health remaining.
}
}
if ($readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) == Critical) {
;attack is a crit hit
;if opponent defended
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) == Defend) {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) attacks $nick $+ 's weak spot for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) critical damage! They defend for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) damage! $nick has $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health remaining.
}
else {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) attacks $nick $+ 's weak spot for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Attack,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) critical damage! $nick has $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health remaining.
}
}
}
Alias -l OpponentDefendReport {
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Speed) > $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Speed)) {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) tries to defend against $nick $+ 's attack, but was too slow.
}
else {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) defends in preparation for $nick $+ 's attack.
}
}
Alias -l OpponentMagicReport {
RNGMagicReport Opponent
;Chooses random Magic report from list
If ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) !>= 1) || (- isin $readini(Duel $+ . $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health)) {
;if $nick Dies
;if $nick defended
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) == Defend) {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) %RNGMagicReportOpponent $nick for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Intelligence) damage! They defend for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) damage! Sadly it was not enough... $nick has died. $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) wins the duel!
Duel.OpponentWon $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $nick
End.Duel
return
}
else {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) %RNGMagicReportOpponent $nick for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Intelligence) damage! $nick has died. $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) wins the duel!
Duel.OpponentWon $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $nick
End.Duel
return
}
}
if ( $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Miss) {
;Attack misses
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) %RNGMagicReportOpponent $nick and misses!
}
if ( $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Dodge) {
;attack is dodged
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) %RNGMagicReportOpponent $nick who dodges the attack!
}
if ( $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Hit,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round)) == Hit) {
;Attack hits
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Action,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) == Defend) {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) %RNGMagicReportOpponent $nick for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Intelligence) damage! They defend for $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Defense,Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round)) damage! $nick has $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health remaining!
}
else {
msg $chan /me $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) %RNGMagicReportOpponent $nick for $readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Stats,Intelligence) damage! $nick has $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health remaining!
}
}
}
Alias -l EndRound {
unset %combat.round.action. $+ $nick $+ . $+ $chan
unset %combat.round.action. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
writeini DuelSystem.ini $chan $+ . $+ $nick round $calc($readini(DuelSystem.ini,$chan $+ . $+ $nick,round) + 1)
writeini DuelSystem.ini $chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) round $calc($readini(DuelSystem.ini,$chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),round) + 1)
halt
}
Alias -l End.Duel {
unset %combat.round.action. $+ $nick $+ . $+ $chan
unset %combat.round.action. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
unset %combat.phase. $+ $nick $+ . $+ $chan
unset %combat.phase. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
unset %duel. $+ $nick $+ . $+ $chan
unset %duel. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
remove Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini
remove Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini
remini DuelSystem.ini $chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent)
remini DuelSystem.ini $chan $+ . $+ $nick
}
on *:text:!Attack*:#:{
if ($($+(%,floodattack.,$nick,.,$chan),3)) { return }
if ($($+(%,combat.phase.,$nick,.,$chan),3)) {
;if $nick is in the Combat Phase
;Stop Duel Auto Decay for inaction
timer $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ * off
if ($($+(%,combat.round.action.,$nick,.,$chan),3)) {
;if $nick has already performed !attack, !defend or !magic
msg $chan /w $nick You have already committed to your action on $right($chan,-1) $+ 's channel this round, please wait until the next round!
set -u10 %floodattack. $+ $nick $+ . $+ $chan On
halt
}
else {
;if $nick has not already performed !attack, !defend or magic
set %combat.round.action. $+ $nick $+ . $+ $chan on
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Action Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $right($1,-1)
;sets attack,defend or magic as the action performed by $nick
if ($($+(%,combat.round.action.,$readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),.,$chan),3)) {
;if opponent has already chosen their action
;perform round actions.
Combat
}
else {
msg $chan /w $nick You have chosen to $right($1,-1) this round!
msg $chan /w $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $nick has chosen to $right($1,-1) this round!
halt
}
}
}
else { msg $chan /w $nick You are not in combat on $right($chan,-1) $+ 's channel! You cannot attack outside of a duel's combat phase!
set -u30 %floodattack. $+ $nick $+ . $+ $chan On
halt
}
}
on *:text:!Defend*:#:{
if ($($+(%,flooddefend.,$nick,.,$chan),3)) { return }
if ($($+(%,combat.phase.,$nick,.,$chan),3)) {
;if $nick is in the Combat Phase
;Stop Duel Auto Decay for inaction
timer $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ * off
if ($($+(%,combat.round.action.,$nick,.,$chan),3)) {
;if $nick has already performed !attack, !defend or !magic
msg $chan /w $nick You have already committed to your action on $right($chan,-1) $+ 's channel this round, please wait until the next round!
set -u10 %flooddefend. $+ $nick $+ . $+ $chan On
halt
}
else {
;if $nick has not already performed !attack, !defend or magic
set %combat.round.action. $+ $nick $+ . $+ $chan on
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Action Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) $right($1,-1)
;sets attack,defend or magic as the action performed by $nick
if ($($+(%,combat.round.action.,$readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),.,$chan),3)) {
;if opponent has already chosen their action
;perform round actions.
Combat
}
else {
msg $chan /w $nick You have chosen to $right($1,-1) this round!
msg $chan /w $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $nick has chosen to $right($1,-1) this round!
halt
}
}
}
else { msg $chan /w $nick You are not in combat on $right($chan,-1) $+ 's channel! You cannot defend outside of a duel's combat phase!
set -u30 %flooddefend. $+ $nick $+ . $+ $chan On
halt
}
}
on *:text:!Magic*:#:{
if ($($+(%,floodmagic.,$nick,.,$chan),3)) { return }
if ($($+(%,combat.phase.,$nick,.,$chan),3)) {
;if $nick is in the Combat Phase
;Stop Duel Auto Decay for inaction
timer $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ * off
if ($($+(%,combat.round.action.,$nick,.,$chan),3)) {
;if $nick has already performed !attack, !defend or !magic
msg $chan /w $nick You have already committed to your action on $right($chan,-1) $+ 's channel this round, please wait until the next round!
set -u10 %floodmagic. $+ $nick $+ . $+ $chan On
halt
}
else {
;if $nick has not already performed !attack, !defend or magic
If ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Mana) < 25) {
;if user doesn't have enough mana
msg $chan /w $nick You do not have enough mana to cast $right($1,-1) this round, please choose another action!
halt
}
set %combat.round.action. $+ $nick $+ . $+ $chan on
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Action Round $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,round) magic
;sets attack,defend or magic as the action performed by $nick
writeini Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini Stats Mana $calc($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Mana) - 25)
;removal of mana for spell cast
if ($($+(%,combat.round.action.,$readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent),.,$chan),3)) {
;if opponent has already chosen their action
;perform round actions.
Combat
}
else {
msg $chan /w $nick You have chosen to cast $right($1,-1) this round!
msg $chan /w $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $nick has chosen to cast $right($1,-1) this round!
halt
}
}
}
else { msg $chan /w $nick You are not in combat on $right($chan,-1) $+ 's channel! You cannot use magic outside of a duel's combat phase!
set -u30 %floodmagic. $+ $nick $+ . $+ $chan On
halt
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
================================================= RNG Aliases ========================================================================
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Alias -l RNGMagicReport {
if ($1 = user) {
set -0N %RNGMagicReportUser $readini(BasicMagic.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),$rand(1,2))
}
if ($1 = opponent) {
set -0N %RNGMagicReportOpponent $readini(BasicMagic.ini,$readini(Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini,Equipment,Weapon),$rand(1,2))
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
================================================= Phase Independent ========================================================================
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
on *:text:!status:#:{
if ($($+(%,floodstatus.,$nick,.,$chan),3)) { return }
if ($($+(%,Duel.,$nick,.,$chan),3)) {
if ($($+(%,equip.phase.,$nick,.,$chan),3)) {
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon) != $null) && ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour) != $null) && ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class) != $null) {
;if class, weapon and armour equipped
msg $chan /w $nick $nick for your duel on $right($chan,-1) $+ 's channel you currently have $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health and $readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Mana) Mana. You are a $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Class) and have a $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon) and $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour) armour equipped. You're current stats are $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Damage) Damage, $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Critical) Critical chance, $calc($readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Intelligence) + ($readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Intelligence) + ($readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Intelligence)))) Intelligence, $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Defense) Defense, $calc($readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),speed) + $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Speed)) Speed and a $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Dodge) Dodge chance. If you are happy with your equipment be sure to !Ready up!
set -u20 %floodstatus. $+ $nick $+ . $+ $chan On
halt
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon) = $null) && ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour) != $null) {
;if armour equipped (no weapon)
msg $chan /w $nick $nick for your duel on $right($chan,-1) $+ 's channel you currently have $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health, are a $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Class) and are wearing $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Armour) armour and do not have a weapon equipped. You're current equipment gives you the following stats $calc($readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Intelligence) + ($readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Intelligence))) Intelligence, $readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Mana) Mana, $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Armour),Defense) Defense, $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Armour),Speed) Speed and a $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Armour),Dodge) Dodge chance
set -u20 %floodstatus. $+ $nick $+ . $+ $chan On
halt
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon) != $null) && ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour) = $null) {
;if weapon equipped (no armour)
msg $chan /w $nick $nick for your duel on $right($chan,-1) $+ 's channel you currently have $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health and are a $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Class) with a $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Weapon) as your weapon and do not have any armour equipped. You're current equipment gives you the following stats $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Weapon),Damage) Damage, $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Weapon),Critical) Critical chance, $calc($readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Intelligence) + ($readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Intelligence))) Intelligence, $readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Mana) Mana, $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Weapon),speed)
set -u20 %floodstatus. $+ $nick $+ . $+ $chan On
halt
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon) = $null) && ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour) = $null) && ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class) != $null) {
;if only class equipped
msg $chan /w $nick $nick for your duel on $right($chan,-1) $+ 's channel you currently have $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health, are a $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class) and do not have any armour or weapons equipped. Your Class gives you $readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Intelligence) Intelligence and $readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Mana) Mana.
set -u20 %floodstatus. $+ $nick $+ . $+ $chan On
halt
}
if ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon) = $null) && ($readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour) = $null) {
;if nothing equipped
msg $chan /w $nick $nick for your duel on $right($chan,-1) $+ 's channel you currently have $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health and do not have a class or any armour or weapons equipped.
set -u20 %floodstatus. $+ $nick $+ . $+ $chan On
halt
}
}
if ($($+(%,combat.phase.,$nick,.,$chan),3)) {
msg $chan /w $nick $nick for your duel on $right($chan,-1) $+ 's channel you currently have $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Health) health and $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Stats,Mana) Mana. You are a $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini, Equipment,Class) and have a $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon) and $readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour) armour equipped. You're current stats are $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Damage) Damage, $readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Critical) Critical chance, $calc($readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Intelligence) + ($readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),Intelligence) + ($readini(Classes.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Class),Intelligence)))) Intelligence, $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Defense) Defense, $calc($readini(Weapons.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Weapon),speed) + $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Speed)) Speed and a $readini(Armour.ini,$readini(Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini,Equipment,Armour),Dodge) Dodge chance.
set -u20 %floodstatus. $+ $nick $+ . $+ $chan On
halt
}
}
msg $chan /w $nick You are not currently in a duel on $right($chan,-1) $+ 's channel, "!Challenge" someone if you would like to duel them!
set -u20 %floodstatus. $+ $nick $+ . $+ $chan On
halt
}
on *:Text:!surrender:#:{
if ($($+(%,floodsurrender.,$nick,.,$chan),3)) { return }
if ($($+(%,Duel.,$nick,.,$chan),3)) {
msg $chan /me $nick Surrenders to $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ ! $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) wins the duel!
unset %combat.round.action. $+ $nick $+ . $+ $chan
unset %combat.round.action. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
unset %combat.phase. $+ $nick $+ . $+ $chan
unset %combat.phase. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
unset %duel. $+ $nick $+ . $+ $chan
unset %duel. $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $chan
remove Duel $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ . $+ $nick $+ .ini
remove Duel $+ . $+ $nick $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) $+ .ini
remini DuelSystem.ini $chan $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $nick,Opponent) Opponent
remini DuelSystem.ini $chan $+ . $+ $nick Opponent
set -u60 %floodsurrender. $+ $nick $+ . $+ $chan On
halt
}
else {
msg $chan /w $nick You are not currently in a duel on $right($chan,-1) $+ 's channel, "!Challenge" someone if you would like to duel them!
set -u20 %floodsurrender. $+ $nick $+ . $+ $chan On
halt
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
================================================= Experience System Interactions ========================================================================
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
alias -l Duel.UserWon {
; $1 = User $2 = Opponent
;User's Winnings
EXP.rand5-15 winnings $1
add.EXP $1 $readini(Duel $+ . $+ $1 $+ . $+ $2 $+ .ini,Experience,winnings)
;Opponent's Losings
EXP.rand2-8 loss $2
rem.EXP $2 $readini(Duel $+ . $+ $2 $+ . $+ $1 $+ .ini,Experience,loss)
;Report
msg $chan /me $1 gains $readini(Duel $+ . $+ $1 $+ . $+ $2 $+ .ini,Experience,winnings) Experience for defeating $2 $+ , who loses $readini(Duel $+ . $+ $2 $+ . $+ $1 $+ .ini,Experience,loss) Experience.
}
alias -l Duel.OpponentWon {
; $1 = Opponent $2 = User
;Opponent's Winnings
EXP.rand5-15 winnings $1
add.EXP $1 $readini(Duel $+ . $+ $1 $+ . $+ $2 $+ .ini,Experience,winnings)
;User's Losings
EXP.rand2-8 loss $2
rem.EXP $2 $readini(Duel $+ . $+ $2 $+ . $+ $1 $+ .ini,Experience,loss)
;Report
msg $chan /me $1 gains $readini(Duel $+ . $+ $1 $+ . $+ $2 $+ .ini,Experience,winnings) Experience for defeating $2 $+ , who loses $readini(Duel $+ . $+ $2 $+ . $+ $1 $+ .ini,Experience,loss) Experience.
}
alias -l EXP.rand5-15 {
if ($readini(Experience.ini,. $+ $2,Experience) = $null) {
if ($readini(TransientExperience.ini,. $+ $2,Experience) = $null) {
if ($readini(VariableExperience.ini,. $+ $2,Experience) = $null) {
writeini Duel $+ . $+ $2 $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $2,Opponent) $+ .ini Experience $1 100
return
}
if ($readini(VariableExperience.ini,. $+ $2,Experience) < 150 ) {
writeini Duel $+ . $+ $2 $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $2,Opponent) $+ .ini Experience $1 $round($calc($rand(5,15)* $calc(($readini(VariableExperience.ini,. $+ $2,Experience)/100)+20)),0)
return
}
writeini Duel $+ . $+ $2 $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $2,Opponent) $+ .ini Experience $1 $round($calc($rand(5,15)* $calc($readini(VariableExperience.ini,. $+ $2,Experience)/100)),0)
return
}
writeini Duel $+ . $+ $2 $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $2,Opponent) $+ .ini Experience $1 $round($calc($rand(5,15)* $calc($readini(TransientExperience.ini,$+ . $2,Experience)/100)),0)
return
}
if ($readini(Experience.ini,. $+ $2,Experience) != $null) {
writeini Duel $+ . $+ $2 $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $2,Opponent) $+ .ini Experience $1 $round($calc($rand(5,15)* $calc($readini(Experience.ini,. $+ $2,Experience)/100)),0)
return
}
}
alias -l EXP.rand2-8 {
if ($readini(Experience.ini,. $+ $2,Experience) = $null) {
if ($readini(TransientExperience.ini,. $+ $2,Experience) = $null) {
if ($readini(VariableExperience.ini,. $+ $2,Experience) = $null) {
writeini Duel $+ . $+ $2 $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $2,Opponent) $+ .ini Experience $1 0
return
}
writeini Duel $+ . $+ $2 $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $2,Opponent) $+ .ini Experience $1 $round($calc($rand(5,15)* $calc($readini(VariableExperience.ini,. $+ $2,Experience)/100)),0)
return
}
writeini Duel $+ . $+ $2 $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $2,Opponent) $+ .ini Experience $1 $round($calc($rand(5,15)* $calc($readini(TransientExperience.ini,$+ . $2,Experience)/100)),0)
return
}
if ($readini(Experience.ini,. $+ $2,Experience) != $null) {
writeini Duel $+ . $+ $2 $+ . $+ $readini(DuelSystem.ini,$chan $+ . $+ $2,Opponent) $+ .ini Experience $1 $round($calc($rand(5,15)* $calc($readini(Experience.ini,. $+ $2,Experience)/100)),0)
return
}
}
alias -l add.EXP {
if ($readini(Experience.ini,. $+ $1,Experience) = $null) {
if ($readini(TransientExperience.ini,. $+ $1,Experience) = $null) {
if ($readini(VariableExperience.ini,. $+ $1,Experience) = $null) {
writeini -n VariableExperience.ini . $+ $1 Experience $2
return
}
if ($readini(VariableExperience.ini,. $+ $1,Experience) < 500) {
writeini -n VariableExperience.ini . $+ $1 Experience $calc($readini(VariableExperience.ini,. $+ $1,Experience) + $2)
return
}
if ($readini(VariableExperience.ini,. $+ $1,Experience) >= 500) {
Writeini -n TransientExperience.ini . $+ $1 Experience $calc($readini(VariableExperience.ini,. $+ $1,Experience) + $2)
writeini -n DNDLevel.ini . $+ $1 SkillPoints $calc($readini(DNDLevel.ini,. $+ $1, SkillPoints) + 1)
remini VariableExperience.ini . $+ $1
return
}
}
if ($readini(TransientExperience.ini,. $+ $1,Experience) < 1000) {
writeini -n TransientExperience.ini . $+ $1 Experience $calc($readini(TransientExperience.ini,. $+ $1,Experience) + $2)
return
}
if ($readini(TransientExperience.ini,. $+ $1,Experience) >= 1000) {
Writeini -n Experience.ini . $+ $1 Experience $calc($readini(TransientExperience.ini,. $+ $1,Experience) + $2)
writeini -n DNDLevel.ini . $+ $1 SkillPoints $calc($readini(DNDLevel.ini,. $+ $1, SkillPoints) + 1)
writeini -n DNDLevel.ini . $+ $1 GeneralLevel $calc($readini(DNDLevel.ini,. $+ $1, GeneralLevel) + 1)
remini TransientExperience.ini . $+ $1
return
}
}
if ($readini(Experience.ini,. $+ $1,Experience) != $null) {
writeini -n Experience.ini . $+ $1 Experience $calc($readini(Experience.ini,. $+ $1,Experience) + $2)
if ($calc($readini(Experience.ini,. $+ $1,Experience) - calc($readini(DNDLevel.ini,. $+ $1, GeneralLevel)* 1000)) >= 1000) {
writeini -n DNDLevel.ini . $+ $1 SkillPoints $calc($readini(DNDLevel.ini,. $+ $1, SkillPoints) + 1)
writeini -n DNDLevel.ini . $+ $1 GeneralLevel $calc($readini(DNDLevel.ini,. $+ $1, GeneralLevel) + 1)
}
return
}
}
alias -l rem.EXP {
if ($readini(Experience.ini,. $+ $1,Experience) = $null) {
if ($readini(TransientExperience.ini,. $+ $1,Experience) = $null) {
if ($readini(VariableExperience.ini,. $+ $1,Experience) = $null) {
writeini -n VariableExperience.ini . $+ $1 Experience - $+ $2
return
}
if ($readini(VariableExperience.ini,. $+ $1,Experience) < 500) {
writeini -n VariableExperience.ini . $+ $1 Experience $calc($readini(VariableExperience.ini,. $+ $1,Experience) - $2)
return
}
if ($readini(VariableExperience.ini,. $+ $1,Experience) >= 500) {
Writeini -n TransientExperience.ini . $+ $1 Experience $calc($readini(VariableExperience.ini,. $+ $1,Experience) - $2)
remini VariableExperience.ini . $+ $1
return
}
}
if ($readini(TransientExperience.ini,. $+ $1,Experience) < 1000) {
writeini -n TransientExperience.ini . $+ $1 Experience $calc($readini(TransientExperience.ini,. $+ $1,Experience) - $2)
return
}
if ($readini(TransientExperience.ini,. $+ $1,Experience) >= 1000) {
Writeini -n Experience.ini . $+ $1 Experience $calc($readini(TransientExperience.ini,. $+ $1,Experience) - $2)
remini TransientExperience.ini . $+ $1
return
}
}
if ($readini(Experience.ini,. $+ $1,Experience) != $null) {
writeini -n Experience.ini . $+ $1 Experience $calc($readini(Experience.ini,. $+ $1,Experience) - $2)
return
}
}
on *:text:!Experience:#:{
if ($($+(%,floodExperience.,$chan),2)) || ($($+(%,floodExperience.,$nick,.,$chan),3)) { return }
set -u5 %floodExperience. $+ $chan On
set -u60 %floodExperience. $+ $nick $+ . $+ $chan On
if ($readini(Experience.ini,$+(,.,$nick),Experience) != $null) {
msg # /me $nick has $readini(Experience.ini,$+(,.,$nick),Experience) Experience.
halt
}
if ($readini(TransientExperience.ini,$+(,.,$nick),Experience) != $null) {
msg # /me $nick has $readini(TransientExperience.ini,$+(,.,$nick),Experience) Experience.
halt
}
if ($readini(VariableExperience.ini,$+(,.,$nick),Experience) != $null) {
msg # /me $nick has $readini(VariableExperience.ini,$+(,.,$nick),Experience) Experience.
halt
}
}
on *:text:!Experience*:#:{
if ($nick isop #) {
if ($readini(Experience.ini,$+(,.,$2),Experience) != $null) {
msg # /me $2 has $readini(Experience.ini,$+(,.,$2),Experience) Experience.
halt
}
if ($readini(TransientExperience.ini,$+(,.,$2),Experience) != $null) {
msg # /me $2 has $readini(TransientExperience.ini,$+(,.,$2),Experience) Experience.
halt
}
if ($readini(VariableExperience.ini,$+(,.,$2),Experience) != $null) {
msg # /me $2 has $readini(VariableExperience.ini,$+(,.,$2),Experience) Experience.
halt
}
msg $chan /w $nick I do not recognise anyone by the name " $+ $2 $+ ", either they have no Experience or there is an error in your spelling, please try again.
halt
}
msg $chan /w $nick You are not permitted to use the "!Experience [User]" command on $right($chan,-1) $+ 's channel as you are not a moderator.
}
I run a loyalty point system based on Dragonball Z and I think my viewers would love this system. Is there a way we can discuss perhaps using your script but modified for DBZ? Please, feel free to message me on twitter or twitch, https://twitter.com/DerekSlide, https://www.facebook.com/DerekSlide.
Hope to hear from you soon, thank you!
Derek.
Thank you for getting back to me! I appreciate your time.
Essentially I want a tournament system that would pit everyone who enters the tourney against one another and have victors based on how much points they risk. The more they risk in comparison to others the more likely they win. Although they can still lose (I'd like the chance of loss to be no lower than 35%). Currently using the !hesit minigame with names changed and it's randomness needs to be curbed to really simulate an actual torunament with power levels(loyalty points) be taken into account.
Then a Duel command that would again take Power level into account, with a combat system that would allow for Melee, Ki-based attacks and Defend/Dodge.
THat's it in a nutshell. Currently using Ankhbot; I mistakenly thought you were the creator :/ That aside, I really like what you've done here for DND, and that's why I took the time to contact you. LEt me know if we can correspond more on this subject, at your convenience.
Thanks again o7,
Derek Slide.
(PS: We can correspond privately on Twitter should you desire!)
Apologies for half this conversation taking place on Twitter and half taking place here. So you are currently using Ankhbot which is where your points system is based? I'm afraid that I currently don't really know anything about Ankhbot, including how it stores its information. This is vital for interactions with a points system. I will do some research but the easiest way for me to implement this system would be to script it for one of Burn_bot's points system.
Before I get too far into discussing how things should be implemented have you tested my duel system on Twitch.tv/Burn_bot (requires more than one person to test)? As it seems you expect/wish for duels to be very short and mostly determined by starting stats (or your "power levels" in your case) which you essentially pay for, in something that in my head resembles a "Pay-to-Win" model. Whereas my system is (at least currently) more long-winded and has a large element of randomness (similar to D'n'D) with series of Die rolls. I still have a lot of balancing and such to do before the system is complete though (hence beta) I would suggest you see how the system currently works to give you an idea what I have achieved.
Also when you say Tourney do you wish for something similar to a series of !heist commands, where each "round" is completed very quickly by a random number generator (in your case also influenced by points "risked") or something more like a traditional tournament, in this case being a series of duels based off my above script where people fight each other so the winner can progress to duel the winner of another fight and so on?
Apologies for all this, I just want to be sure I understand what it is you want to achieve and how you wish to achieve it.
Please feel free to email me at burnbot.contact@gmail.com with any further information, requests or the like.
Afterburn
(P.S. While it is nice being compared to AnkhHeart please understand that I am just a self-taught amateur that wanted to make their own bot. And I still have a hell of a lot to learn! :P)
I'm sure we can work on a personalised version for you, I have tweeted you from @Burn_bot_tweets. Could you please specify what kind of changes you would want to make? Would they be functional or purely cosmetic (I.e. just changing the words and such used)
Also would you be looking to run this on your own bot? In which case to make any point system interactions I will need to know what system you are using and how and where its data is stored to interact with it.