forked from Blasman/mIRC-Twitch-Scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
raids.mrc
156 lines (140 loc) · 7.27 KB
/
raids.mrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;; RAIDER SCRIPT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ON *:LOAD: raid_setup
ON *:UNLOAD: UNSET %raid*
alias raid_setup {
:raidmsg
$input(Please enter the Raid Message that you want your viewers to copy and paste (AVOID DOUBLE SPACING!):,eo,Required Input,%raid_msg)
IF !$! { ECHO You need a Raid Message! | GOTO raidmsg }
ELSE SET %raid_msg $!
:payout
$input(Please enter the amount of %curname that you want to pay to users who raid:,eo,Required Input,%raid_default_payout)
IF ($! !isnum) { ECHO You must enter a valid amount of %curname $+ ! | GOTO payout }
ELSE SET %raid_default_payout $floor($!)
:matchmsg
$input(Please enter the text that you want to match in the channels that you raid. If a user types a message that matches this text in the channel that you are raiding $chr(44) $+ then they will be treated as a successful raider. Just press "OK" if you want to match your raid message EXACTLY. It is probably a good idea to just use an emote.,eo,Required Input,%raid_msg)
IF !$! { ECHO You must enter a valid message! | GOTO matchmsg }
ELSE SET %raid_matchmsg $!
}
ON *:TEXT:*:%raid.chan: {
IF ((%raid_matchmsg isin $1-) && (!$($+(%,raid.name.,$nick),2))) {
IF (($nick == %streamer) && (!$timer(.raid.active))) {
.timer.raid.active 1 92 raidpayout
.timer.raid.msg 1 2 MSG %mychan The Raid on %raid.url is happening right NOW! All Raiders will be given %raid.payout %curname in 90 seconds!
}
ELSEIF (($nick != %streamer) && ($timer(.raid.active))) {
SET %raid.name. $+ $nick On
SET %raid.list %raid.list $nick
}
}
}
ON *:ACTION:*:%raid.chan: {
IF ((%raid_matchmsg isin $1-) && (!$($+(%,raid.name.,$nick),2))) {
IF (($nick == %streamer) && (!$timer(.raid.active))) {
.timer.raid.active 1 92 raidpayout
.timer.raid.msg 1 2 MSG %mychan The Raid on %raid.url is happening right NOW! All Raiders will be given %raid.payout %curname in 90 seconds!
}
ELSEIF (($nick != %streamer) && ($timer(.raid.active))) {
SET %raid.name. $+ $nick On
SET %raid.list %raid.list $nick
}
}
}
ON $*:TEXT:/^!raid(\s|$)/iS:%mychan: {
IF (($nick == %streamer) && ($2)) {
IF (!%raid.name) {
VAR %raid.temp $twitch_name($2)
IF (%raid.temp != $null) {
IF ($livecheck(%raid.temp) == $true) {
IF ($3 isnum) SET %raid.payout $floor($3)
ELSE SET %raid.payout %raid_default_payout
SET %raid.name %raid.temp
SET %raid.chan $chr(35) $+ $lower($2)
SET %raid.url twitch.tv/ $+ %raid.name
DESCRIBE $chan ATTENTION EVERYONE! We are about to raid %raid.url ! Silently go to their channel and SAY NOTHING. When %streamer starts the raid, paste the following message into their chat: %raid_msg
.timer.raid.payoutmsg 1 3 DESCRIBE $chan Everyone who posts the raid message will automatically receieve %raid.payout %curname after 90 seconds!
.timer.raid.repeat 1 4 .timer.raid.repeat 3 2 DESCRIBE $chan GO TO http:// $+ %raid.url AND COPY AND PASTE THE FOLLOWING MESSAGE AFTER $upper(%streamer) DOES: %raid_msg
.timer.raid.joinchannel 1 20 JOIN %raid.chan
.timer.raid.timeout 1 1800 raidcancel
}
ELSE MSG $chan %streamer $+ , uhhh... %raid.temp doesn't appear to be live at the moment. FailFish
}
ELSE MSG $chan %streamer $+ , uhhh... check the spelling of that name. FailFish
}
ELSE MSG $chan $nick $+ , there is a raid set up already for %raid.name $+ . Type !raidcancel if you want to cancel this raid.
}
ELSEIF ($nick isop $chan) {
IF (%raid.name) DESCRIBE $chan GO TO http:// $+ %raid.url AND COPY AND PASTE THE FOLLOWING MESSAGE AFTER $upper(%streamer) DOES: %raid_msg
ELSE DESCRIBE $chan COPY THE FOLLOWING MESSAGE: %raid_msg Paste it back in Chat and prepare for the RAID!!
}
}
alias -l raidpayout {
IF ($timer(.raid.timeout)) .timer.raid.timeout off
PART %raid.chan
IF (%raid.list == $null) MSG %mychan Really? NO ONE wanted to raid!? BibleThump
ELSE {
VAR %x = 1
WHILE ($gettok(%raid.list, %x, 32) != $null) {
ADDPOINTS $v1 %raid.payout
INC %x
}
VAR %raid.list $sorttok(%raid.list, 32, a)
VAR %x = 1
WHILE ($gettok(%raid.list, %x, 32) != $null) {
VAR %sortlist %sortlist $v1 $+ $chr(44)
INC %x
}
VAR %sortlist $left(%sortlist, -1)
VAR %num $numtok(%sortlist, 32)
WRITE raid_history.txt $asctime(mmm d h:nn TT) - %raid.name - %num Raiders: %sortlist
MSG %mychan Thank you, Raiders! Successfully payed out %raid.payout %curname to all of the following %num raiders: %sortlist
}
UNSET %raid.*
}
ON $*:TEXT:/^!raidcancel(\s|$)/iS:%mychan: IF (($nick == %streamer) && (%raid.name)) raidcancel
alias -l raidcancel {
IF ($timer(.raid.timeout)) { MSG %mychan We are no longer going to raid %raid.name $+ . | .timer.raid.* off }
IF ($me ison %raid.chan) PART %raid.chan
UNSET %raid.*
}
ON $*:TEXT:/^!raidmsg(\s|$)/iS:%mychan: {
IF (($nick == %streamer) && ($2)) {
SET %raid_msg $2-
MSG $chan The Raid Message has been changed to: $2-
}
ELSEIF (($nick isop $chan) && (!$2)) MSG $chan %raid_msg
}
ON $*:TEXT:/^!raidpayout(\s|$)/iS:%mychan: {
IF (($nick == %streamer) && ($2 isnum)) {
SET %raid_default_payout $floor($2)
MSG $chan The default payout for Raiders has been set to %raid_default_payout %curname $+ .
}
ELSEIF (($nick isop $chan) && (!$2)) MSG $chan The default payout for raiders is %raid_default_payout %curname $+ .
}
ON $*:TEXT:/^!raidmatchmsg(\s|$)/iS:%mychan: {
IF (($nick == %streamer) && ($2)) {
SET %raid_matchmsg $2-
MSG $chan The match text for raiders has been changed to: %raid_matchmsg
}
ELSEIF (($nick isop $chan) && (!$2)) MSG $chan Raiders must match the following text in order to receive %curname $+ : %raid_matchmsg
}
ON *:TEXT:!raidsetup:%mychan: {
IF ($nick == %streamer) {
MSG $chan %streamer $+ , the !raid setup is now running in mIRC...
.timer.raid.setup 1 0 raid_setup
}
}
ON *:TEXT:!raidmatchtest *:%mychan: IF ($nick isop $chan) $IIF(%raid_matchmsg isin $2-,MSG $chan Success!,MSG $chan Fail!)
ON *:TEXT:!raidlast:%mychan: IF ($nick isop $chan) MSG $chan $read(raid_history.txt,$lines(raid_history.txt))
ON *:TEXT:!raidhelp:%mychan: {
IF ($nick isop $chan) {
MSG $chan STREAMER ONLY Commands ▌ !raid [user] - setup a raid with default payout ▌ !raid [user] [amount] - setup a raid with a specific payout ▌ !raidcancel - cancel a raid ▌ !raidmsg [message] - change raid message ▌ !raidpayout [amount] - change the default payout for raids ▌ !raidmatchmsg [message] - change match text ▌ !raidsetup - run the raid setup in mIRC
.timer.raid.help 1 2 MSG $chan MOD ONLY Commands ▌ !raid - posts the raid message (and target if there is one) ▌ !raidmsg - posts the raid message ▌ !raidpayout - posts the default payout for raiders ▌ !raidmatchmsg - posts the match text ▌ !raidmatchtest [message] - test to see if your message will match the match text ▌ !raidlast - info on the last raid
}
}
alias -l livecheck {
JSONOpen -ud livecheck https://api.twitch.tv/kraken/streams/ $+ $1 $+ ?nocache= $+ $ticks
RETURN $IIF($json(livecheck,stream),$true,$false)
JSONClose livecheck
}