-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHighLow.mrc
284 lines (271 loc) · 16.9 KB
/
HighLow.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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
;*************************************************************************************************
;*
;* HighLow Addon v1.1 © by www.eVolutionX-Project.de (eVolutionX-Project Team)
;*
;*************************************************************************************************
;* Beschreibung
;*************************************************************************************************
;*
;* Ein kleines Zahlenratespiel.
;*
;*************************************************************************************************
;* Befehle
;*************************************************************************************************
;*
;* Mit !hl startet man das Spiel.
;* Mit !hl <Zahl> rät man. (Das startet das Spiel, wenn's nicht gestartet ist)
;* Mit !hl stats [nick] bekommst du deine Stats bzw. die vom [nick] angezeigt.
;* Mit !hl speed bekommst du angezeigt wer am schnellsten die Zahl erraten hat.
;* Mit !hl slow bekommst du angezeigt wer am langsamsten die Zahl erraten hat.
;* Mit !hl info bekommst du das Copyright angezeigt.
;*
;* [Nur ab Halfop ausführbar]
;* Mit !hl on aktiviert man das Spiel im Channel.
;* Mit !hl off deaktiviert man das Spiel im Channel.
;* Mit !hl stop beendest du das aktuell laufende Spiel.
;*
;*************************************************************************************************
;* Changes
;*************************************************************************************************
;*
;* v1.1
;* Changed: Code gesäubert und verbessert.
;*
;*************************************************************************************************
;* IRC Kontakt
;*************************************************************************************************
;*
;* Server: irc.SpeedSpace-IRC.eu
;* Port: 6667
;* Channel: #eVolutionX
;*
;* Befehl: /server -m irc.SpeedSpace-IRC.eu -j #eVolutionX
;*
;*************************************************************************************************
;* ON EVENTS Start
;*************************************************************************************************
; - Lädt die Dateien wenn welche vorhanden.
;*************************************************************************************************
on *:LOAD:{
if (($isdir($Mod.HL.aFile)) && ($findfile($Mod.HL.aFile, *.hsh, 0))) {
var %a = $scon(0)
while (%a) {
scon %a
var %b = $chan(0)
while (%b) {
if ($ini($Mod.HL.aFile($scon(%a).network), $chan(%b))) {
hmake Mod.HL.hData. $+ $+($chan(%b), ., $scon(%a).network) 10000
hload -i Mod.HL.hData. $+ $+($chan(%b), ., $scon(%a).network) $Mod.HL.aFile($scon(%a).network) $chan(%b)
}
dec %b
}
dec %a
}
}
}
;*************************************************************************************************
; - Entfernt und Stopt alles beim entladen.
;*************************************************************************************************
on *:UNLOAD:{
.timerMod.HL* off | hfree -w Mod.HL.hData.*
if ($isdir($Mod.HL.aFile)) {
if ($findfile($Mod.HL.aFile, *.hsh, 0)) {
noop $input(Soll die Dateien im Ordner HighLow gelöscht werden?, yv, Dateien Löschen?)
if ($! == $yes) { noop $findfile($Mod.HL.aFile, *.hsh, 0, .remove $1-) | .rmdir $Mod.HL.aFile }
}
else .rmdir $Mod.HL.aFile
}
}
;*************************************************************************************************
; - Lädt die Ignore Datei beim mIRC Start.
;*************************************************************************************************
on *:START:{
if (($isfile($Mod.HL.aFile(Ignore))) && ($lines($Mod.HL.aFile(Ignore)) != 0)) {
if ($hget(Mod.HL.hIgnore)) hfree $ifmatch
hmake Mod.HL.hIgnore 1000
hload Mod.HL.hIgnore $Mod.HL.aFile(Ignore)
}
}
;*************************************************************************************************
; - Trigger Befehle vom HighLow Addon.
;*************************************************************************************************
on *:TEXT:!hl*:#:{
if ($2 == info) { .notice $nick 14HighLow Addon v1.1 © by 09www.eVolutionX-Project.de14 (09eVolutionX-Project Team14) | halt }
if ($2 == on) {
if ($left($nick(#, $nick).pnick, 1) isin ~*&!@%) {
if (($hget(Mod.HL.hIgnore, #)) && ($ifmatch == $network)) {
hdel Mod.HL.hIgnore # | hsave Mod.HL.hIgnore $Mod.HL.aFile(Ignore)
.notice $nick 09HighLow14 ist jetzt im Channel09 # 14aktiviert!
}
else .notice $nick 09HighLow14 ist schon im Channel09 # 14aktiviert!
}
else .notice $nick 14Du hast keine09 Rechte 14dafür!
halt
}
if ($2 == off) {
if ($left($nick(#, $nick).pnick, 1) isin ~*&!@%) {
if (!$hget(Mod.HL.hIgnore, #)) {
Mod.HL.aStop # $network $nick | hadd -m Mod.HL.hIgnore # $network | hsave Mod.HL.hIgnore $Mod.HL.aFile(Ignore)
.notice $nick 09HighLow14 ist jetzt im Channel09 # 14deaktiviert!
}
else .notice $nick 09HighLow14 ist schon im Channel09 # 14deaktiviert!
}
else .notice $nick 14Du hast keine09 Rechte 14dafür!
halt
}
if (!$hget(Mod.HL.hIgnore, #)) {
if ($2 == stop) {
if ($left($nick(#, $nick).pnick, 1) isin ~*&!@%) {
if ($hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.RUN)) {
.timerMod.HL.* off
.msg # 14Das aktuelle09 HighLow 14Spiel wurde von09 $nick 14beendet. Das Spiel lief09 $duration($round($calc(($ticks - $hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.TICKS)) / 1000), 0)) 14lang.
hdel -w Mod.HL.hData. $+ $+(#, ., $network) Mod.*
}
else .notice $nick 14Aktuell 09leuft14 kein Spiel!
}
else .notice $nick 14Du hast keine09 Rechte 14dafür!
halt
}
if ($2 == stats) {
if ($3) {
.msg # 09 $+ $3 14hat an09 $iif($gettok($hget(Mod.HL.hData. $+ $+(#, ., $network), $3), 2, 32), $ifmatch, 0) 14von09 $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), GESAMT), $ifmatch, 0) 14Spielen mit gemacht. Dabei hat09 $3 $iif($gettok($hget(Mod.HL.hData. $+ $+(#, ., $network), $3), 1, 32), $ifmatch, 0) 14gewonnen! $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEEDNICK) == $3, Aktuell hält09 $3 14den09 Speed Rekord 14mit09 $duration($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEED))) $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SLOWNICK) == $3, $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEED), 14und den09 Lam0r Rekord14 mit09 $duration($hget(Mod.HL.hData. $+ $+(#, ., $network), SLOW)), 14Aktuell hält09 $3 14den09 Lam0r Rekord14 mit09 $duration($hget(Mod.HL.hData. $+ $+(#, ., $network), SLOW))))
halt
}
else {
.msg # 09Du14 hast bei09 $iif($gettok($hget(Mod.HL.hData. $+ $+(#, ., $network), $nick), 2, 32), $ifmatch, 0) 14von09 $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), GESAMT), $ifmatch, 0) 14Spielen mitgemacht. Dabei hast du09 $iif($gettok($hget(Mod.HL.hData. $+ $+(#, ., $network), $nick), 1, 32), $ifmatch, 0) 14gewonnen! $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEEDNICK) == $nick, Aktuell hälst du den09 Speed Rekord 14mit09 $duration($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEED))) $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SLOWNICK) == $nick, $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEED), 14und den09 Lam0r Rekord14 mit09 $duration($hget(Mod.HL.hData. $+ $+(#, ., $network), SLOW)), 14Aktuell hälst du den09 Lam0r Rekord14 mit09 $duration($hget(Mod.HL.hData. $+ $+(#, ., $network), SLOW))))
halt
}
}
if ($2 == speed) {
.msg # 14Aktuell hält09 $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEEDNICK), $ifmatch, keiner) 14den 09Speed Rekord14 $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEED), mit09 $duration($ifmatch))
halt
}
if ($2 == slow) {
.msg # 14Aktuell hält09 $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SLOWNICK), $ifmatch, keiner) 14den 09Lam0r Rekord14 $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SLOW), mit09 $duration($ifmatch))
halt
}
if (!$2) { if (!$hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.RUN)) { Mod.HL.aStart | halt } }
if ($2 isnum 1-300) {
if (!$timer($+(Mod.HL., $cid, ., #, ., $nick))) {
if ($hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.RUN)) Mod.HL.aCheck $2
else { Mod.HL.aStart | Mod.HL.aCheck $2 }
}
else .notice $nick 14Du darfst erst in09 $timer($+(Mod.HL., $cid, ., #, ., $nick)).secs 14Sek. wieder!
}
else .notice $nick 14Du musst eine09 Zahl 14zwischen 09114 und 0930014 angeben!
}
}
;*************************************************************************************************
; - Lädt die Daten vom Channel beim joinen.
;*************************************************************************************************
on *:JOIN:#:{
.timerMod.HLO.Part. $+ $+(#, ., $network) off
if (!$hget(Mod.HL.hData. $+ $+(#, ., $network))) .timerMod.HLO.Join. $+ $+(#, ., $network) 1 5 Mod.HL.aLoad # $network
}
;*************************************************************************************************
; - Entlädt die Daten beim parten des Channels.
;*************************************************************************************************
on *:PART:#:{
.timerMod.HLO.Join. $+ $+(#, ., $network) off
if ($hget(Mod.HL.hData. $+ $+(#, ., $network))) .timerMod.HLO.Part. $+ $+(#, ., $network) 1 10 .hfree Mod.HL.hData. $+ $+(#, ., $network)
}
;*************************************************************************************************
; - Entlädt die Daten beim diconnecten des Channels.
;*************************************************************************************************
on *:DISCONNECT: hfree -w Mod.HL.hData.*. $+ $network
;*************************************************************************************************
;* ON EVENTS Ende
;*************************************************************************************************
;*************************************************************************************************
;* LOCAL ALIASES Start
;*************************************************************************************************
; - Lädt die Dateien für den Channel:
; - Mod.HL.aLoad $chan $network
;*************************************************************************************************
alias -l Mod.HL.aLoad {
var %a = $ini($Mod.HL.aFile($2), 0)
while (%a) {
if ($ini($Mod.HL.aFile($2), %a) == $1) {
hmake Mod.HL.hData. $+ $+($1, ., $2) 10000
hload -i Mod.HL.hData. $+ $+($1, ., $2) $Mod.HL.aFile($2) $1
}
dec %a
}
}
;*************************************************************************************************
; - Startet das Spiel:
; - Mod.HL.aStart
;*************************************************************************************************
alias -l Mod.HL.aStart {
hadd -m Mod.HL.hData. $+ $+(#, ., $network) Mod.RUN $true
hadd -m Mod.HL.hData. $+ $+(#, ., $network) Mod.NUM $rand(1, 300)
hadd -m Mod.HL.hData. $+ $+(#, ., $network) Mod.TICKS $ticks
hinc -m Mod.HL.hData. $+ $+(#, ., $network) GESAMT 1
hsave -i Mod.HL.hData. $+ $+(#, ., $network) $Mod.HL.aFile($network) #
.msg # 14Das 09HighLow14 Spiel ist jetzt gestartetet! Wähle eine Zahl Zwischen 09114 und 0930014 aus!
.timerMod.HL.Play 1 1200 Mod.HL.aStop # $network
}
;*************************************************************************************************
; - Beendet das Spiel, wenn keiner mehr Spielt:
; - Mod.HL.aStop $chan $network
;*************************************************************************************************
alias -l Mod.HL.aStop {
.timerMod.HL.* off
.msg $1 14Das09 HighLow 14Spiel wurde jetzt beendet, weil $iif($3, 09 $+ $3 14es ausgeschaltet hat und keiner mehr spielt) $+ ! Die gesuchte Zahl war:09 $hget(Mod.HL.hData. $+ $+($1, ., $2), Mod.NUM) 14- Dauer:09 $duration($round($calc(($ticks - $hget(Mod.HL.hData. $+ $+($1, ., $2), Mod.TICKS)) / 1000), 0)) 14- Versuche:09 $iif($hget(Mod.HL.hData. $+ $+($1, ., $2), Mod.VERSUCHE), $ifmatch, 0)
hdel -w Mod.HL.hData. $+ $+($1, ., $2) Mod.*
hsave -i Mod.HL.hData. $+ $+($1, ., $2) $Mod.HL.aFile($2) $1
}
;*************************************************************************************************
; - Prüft ob die Zahl höher/kleine ist oder ob die richtige erraten wurde. Verwaltet die Stats:
; - Mod.HL.aCheck <Zahl>
;*************************************************************************************************
alias -l Mod.HL.aCheck {
.timerMod.HL.Play 1 1200 Mod.HL.aStop # $network
hinc -m Mod.HL.hData. $+ $+(#, ., $network) Mod.VERSUCHE 1
if ((!$hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.IGNORE)) || ($nick $+ , !isin $hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.IGNORE))) {
hadd -m Mod.HL.hData. $+ $+(#, ., $network) $nick $iif($gettok($hget(Mod.HL.hData. $+ $+(#, ., $network), $nick), 1, 32), $ifmatch, 0) $calc($gettok($hget(Mod.HL.hData. $+ $+(#, ., $network), $nick), 2, 32) + 1)
hadd -m Mod.HL.hData. $+ $+(#, ., $network) Mod.IGNORE $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.IGNORE), $ifmatch) $nick $+ ,
}
if (!$hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.NUMS)) hadd -m Mod.HL.hData. $+ $+(#, ., $network) Mod.NUMS $+($chr(44), $1, $chr(44))
else {
if ($+($chr(44), $1, $chr(44)) isin $hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.NUMS)) {
.timerMod.HL. $+ $+($cid, ., #, ., $nick) 1 60 .notice $nick 14Du darfst jetzt 09weiter14 Spielen!
.msg # 14Die Zahl09 $1 14wurde schon gennant! - Die gesuchte Zahl ist $iif($1 < $hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.NUM), größer, kleiner) als09 $1
halt
}
else hadd -m Mod.HL.hData. $+ $+(#, ., $network) Mod.NUMS $+($hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.NUMS), $1, $chr(44))
}
if ($1 == $hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.NUM)) {
.timerMod.HL.* off
var %ticks = $round($calc(($ticks - $hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.TICKS)) / 1000), 0)
.msg # 14Wir haben einen Gewinner! Herzlichen Glückwunsch09 $nick 14- Dauer:09 $duration(%ticks) 14- Versuche:09 $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.VERSUCHE), $ifmatch, 0)
if ((%ticks < $hget(Mod.HL.hData. $+ $+(#, ., $network), SPEED)) || (!$hget(Mod.HL.hData. $+ $+(#, ., $network), SPEED))) {
.msg # 09 $+ $nick 14hat $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEEDNICK) == $nick, seinen eigenen09 Speed Rekord14 gebrochen!, einen neuen09 Speed Rekord 14gesetzt!)
hadd -m Mod.HL.hData. $+ $+(#, ., $network) SPEED %ticks | hadd -m Mod.HL.hData. $+ $+(#, ., $network) SPEEDNICK $nick
}
elseif ($hget(Mod.HL.hData. $+ $+(#, ., $network), SPEED)) {
if ((%ticks > $hget(Mod.HL.hData. $+ $+(#, ., $network), SLOW)) || (!$hget(Mod.HL.hData. $+ $+(#, ., $network), SLOW))) {
.msg # 09 $+ $nick 14hat $iif($hget(Mod.HL.hData. $+ $+(#, ., $network), SLOWNICK) == $nick, seinen eigenen09 Lam0r Rekord14 gebrochen!, einen neuen 09Lam0r Rekord14 gesetzt!)
hadd -m Mod.HL.hData. $+ $+(#, ., $network) SLOW %ticks | hadd -m Mod.HL.hData. $+ $+(#, ., $network) SLOWNICK $nick
}
}
hadd -m Mod.HL.hData. $+ $+(#, ., $network) $nick $calc($gettok($hget(Mod.HL.hData. $+ $+(#, ., $network), $nick), 1, 32) + 1) $iif($gettok($hget(Mod.HL.hData. $+ $+(#, ., $network), $nick), 2, 32), $ifmatch, 0)
hdel -w Mod.HL.hData. $+ $+(#, ., $network) Mod.* | hsave -i Mod.HL.hData. $+ $+(#, ., $network) $Mod.HL.aFile($network) # | halt
}
elseif ($1 < $hget(Mod.HL.hData. $+ $+(#, ., $network), Mod.NUM)) .msg # 14Die gesuchte 09Zahl14 ist größer als09 $1
else .msg # 14Die gesuchte 09Zahl14 ist kleiner als09 $1
.timerMod.HL. $+ $+($cid, ., #, ., $nick) 1 60 .notice $nick 14Du darfst jetzt 09weiter14 Spielen!
}
;*************************************************************************************************
; - Gibt den Pfad zu den Dateien wieder:
; - $Mod.HL.aFile
;*************************************************************************************************
alias -l Mod.HL.aFile {
if (!$isdir(System)) mkdir System
if (!$isdir(System\HighLow)) mkdir System\HighLow
if ($1) return $+(", $mircdirSystem\HighLow\, $1, .hsh, ")
else return $+(", $mircdirSystem\HighLow\, ")
}
;*************************************************************************************************
;* LOCAL ALIASES Ende
;*************************************************************************************************