-
Notifications
You must be signed in to change notification settings - Fork 0
/
MondFace.mrc
262 lines (256 loc) · 17.4 KB
/
MondFace.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
;*************************************************************************************************
;*
;* MondFace Addon v1.4 © by www.eVolutionX-Project.de (eVolutionX-Project Team)
;*
;*************************************************************************************************
;* Beschreibung
;*************************************************************************************************
;*
;* MondFace ist ein kleines Spiel für den mIRC Bot. Das Script reagiert drauf wenn einer einen
;* Punkt, Komma oder Strich schreibt.
;*
;*************************************************************************************************
;* Befehle
;*************************************************************************************************
;*
;* Ein Punkt für das erste Auge, ein zweiter Punkt für das zweite Auge. ein Komma für die Nase und
;* ein Strich für den Mund.
;* Mit !mondface all siehst du die erzeugten MondFaces die in dem Channel erstellt wurden.
;* Mit !mondface stat siehst man an wie vielen MondFaces man mitgewirkt hat.
;* Mit !mondface stat nick sieht man an wie vielen MondFaces der Nick mitgewirkt hat.
;* Mir !mondface info wird der Copyright angezeigt.
;* Mit !mondface help bekommst du Hilfe.
;*
;* [Geht nur ab Halfop Status]
;* Mit !mondface reset kann man das Spiel von vorne anfangen lassen.
;* Mit !mondface on schaltet man das Spiel aktiviert.
;* Mit !mondface off schaltet man das Spiel deaktiviert.
;* Mit !mondface list siehst du wo das Spiel deaktivert ist.
;* Mit !mondface level sieht man wie weit der MondFace Level ist.
;*
;*************************************************************************************************
;* Changes
;*************************************************************************************************
;*
;* v1.4
;* Changed: Code gesäubert und verbessert.
;*
;* v1.3
;* Fixed: Wenn Leerzeichen im Pfad gabs probleme mit den Dateien.
;*
;* v1.2
;* Fixed: Die Daten wurden nicht richtig geladen.
;* Added: Support für ! und * Statuse.
;*
;* v1.1
;* Fixed: Beim Addon Laden kam Meldung das Dateien im Ordner sind obwohl leer ist.
;* Added: Flood Protection ... 1 min zwischen den Gesichtsteilen ... 2 min nach erstellung des Gesichtes.
;* Added: Trigger !mf ... nun kann man !mondface oder !mf nehmen.
;* Added: Wenn User schon was gesetzt hat bekommt er Notice.
;*
;*************************************************************************************************
;* 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 beim laden des Addons.
;*************************************************************************************************
on *:LOAD: if (($exists($Mod.MondFace.aFile)) && ($findfile($Mod.MondFace.aFile, *.hsh, 0))) noop $findfile($Mod.MondFace.aFile, *.hsh, 0, Mod.MondFace.aLoad $1-)
;*************************************************************************************************
; - Entfernt die Dateien beim entladen.
;*************************************************************************************************
on *:UNLOAD:{
if ($findfile($Mod.MondFace.aFile, *.hsh, 0)) {
noop $input(Soll die Dateien im Ordner MondFace gelöscht werden?, yv, Dateien Löschen?)
if ($! == $yes) {
noop $findfile($Mod.MondFace.aFile, *.*, 0, .remove $1-) | noop $finddir($Mod.MondFace.aFile, *Serv*, 0, .rmdir $1-)
noop $finddir($Mod.MondFace.aFile, *, 0, .rmdir $1-) | .rmdir $Mod.MondFace.aFile
}
}
if ($hget(Mod.MondFace.hData)) hfree Mod.MondFace.hData
.timerMod.MondFace.tFlood* off
}
;*************************************************************************************************
; - Lädt alle Hash files die sich im Ordner MondFace befinden.
;*************************************************************************************************
on *:START: if ($exists($Mod.MondFace.aFile)) noop $findfile($Mod.MondFace.aFile, *.hsh, 0, Mod.MondFace.aLoad $1-)
;*************************************************************************************************
; - Reagiert auf die !mondface Befehle, Punkte, Komma und Strich.
;*************************************************************************************************
on *:TEXT:*:#:{
if (!$hfind($+(Mod.MondFace.h, $network, .Ignore), #)) {
if ($nick $+ , !isin $hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), NICKS) $+ ,) {
if ($1 == $chr(46)) {
if (!$hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), LEVEL)) {
if (!$timer(Mod.MondFace.tFlood $+ $+(., $network, ., #))) {
hadd -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) NICKS $nick
hinc -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) LEVEL 1
hsave $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) $Mod.MondFace.aFile(1, $network, $remove(#, $chr(35)))
.timerMod.MondFace.tFlood $+ $+(., $network, ., #) 1 60 return
.msg # 14Oha was ist das? Ein 09Punkt14? Na das kann ja was werden 08^^
}
else .notice $nick 04Flood-Protect:14 Versuchs in09 $replace($duration($timer(Mod.MondFace.tFlood $+ $+(., $network, ., #)).secs), mins, $chr(32) $+ Minuten, min, $chr(32) $+ Minute, secs, $chr(32) $+ Sekunden, sec, $chr(32) $+ Sekunde) 14noch einmal!
}
elseif ($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), LEVEL) == 1) {
if (!$timer(Mod.MondFace.tFlood $+ $+(., $network, ., #))) {
hadd -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) NICKS $hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), NICKS) $+ , $nick
hinc -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) LEVEL 1
hsave $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) $Mod.MondFace.aFile(1, $network, $remove(#, $chr(35)))
.timerMod.MondFace.tFlood $+ $+(., $network, ., #) 1 60 return
.msg # 14Ahhhh, noch ein 09Punkt14!!! Ihr legt es wohl drauf an!!!
}
else .notice $nick 04Flood-Protect:14 Versuchs in09 $replace($duration($timer(Mod.MondFace.tFlood $+ $+(., $network, ., #)).secs), mins, $chr(32) $+ Minuten, min, $chr(32) $+ Minute, secs, $chr(32) $+ Sekunden, sec, $chr(32) $+ Sekunde) 14noch einmal!
}
}
if ($1 == $chr(44)) {
if ($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), LEVEL) == 2) {
if (!$timer(Mod.MondFace.tFlood $+ $+(., $network, ., #))) {
hadd -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) NICKS $hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), NICKS) $+ , $nick
hinc -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) LEVEL 1
hsave $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) $Mod.MondFace.aFile(1, $network, $remove(#, $chr(35)))
.timerMod.MondFace.tFlood $+ $+(., $network, ., #) 1 60 return
.msg # 14Also, jetzt seit ihr aber 09wirklich14 nah dran!!!
}
else .notice $nick 04Flood-Protect:14 Versuchs in09 $replace($duration($timer(Mod.MondFace.tFlood $+ $+(., $network, ., #)).secs), mins, $chr(32) $+ Minuten, min, $chr(32) $+ Minute, secs, $chr(32) $+ Sekunden, sec, $chr(32) $+ Sekunde) 14noch einmal!
}
}
if ($1 == $chr(45)) {
if ($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), LEVEL) == 3) {
if (!$timer(Mod.MondFace.tFlood $+ $+(., $network, ., #))) {
hinc -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) ALL 1
hdel $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) LEVEL
.msg # 09Punkt14,09 Punkt14,09 Komma14,09 Strich14, fertig ist das 09Mondgesicht14! Mondgesicht Nr.09 $hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), ALL) 14erstellt von09 $replace($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), NICKS), $chr(44), 14 $+ $chr(44) $+ 09) 14und09 $nick
var %nick = $remove($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), NICKS), $chr(44)), %nick1 = $gettok(%nick, 1, 32), %nick2 = $gettok(%nick, 2, 32), %nick3 = $gettok(%nick, 3, 32)
hinc -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) %nick1 1
hinc -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) %nick2 1
hinc -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) %nick3 1
hinc -m $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) $nick 1
hdel $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) NICKS
hsave $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) $Mod.MondFace.aFile(1, $network, $remove(#, $chr(35)))
.timerMod.MondFace.tFlood $+ $+(., $network, ., #) 1 120 return
}
else .notice $nick 04Flood-Protect:14 Versuchs in09 $replace($duration($timer(Mod.MondFace.tFlood $+ $+(., $network, ., #)).secs), mins, $chr(32) $+ Minuten, min, $chr(32) $+ Minute, secs, $chr(32) $+ Sekunden, sec, $chr(32) $+ Sekunde) 14noch einmal!
}
}
}
else {
if (($1 == $chr(45)) || ($1 == $chr(46)) || ($1 == $chr(44))) {
var %pos = $findtok($replace($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), NICKS), $chr(44) $+ $chr(32), $chr(46)), $nick, 1, 46)
if (%pos isin 1, 2) var %pos = ein09 Auge
else var %pos = eine09 Nase
.notice $nick 14Du hast schon %pos 14gesetzt!
}
}
}
if (($1 == !mondface) || ($1 == !mf)) {
if ($2) {
if ($left($nick(#, $nick).pnick, 1) isin ~*&!@%) {
if (!$hfind(Mod.MondFace.hIgnore, #)) {
if ($2 == reset) {
hdel $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) NICKS
hdel $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) LEVEL
hsave $+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))) $Mod.MondFace.aFile(1, $network, $remove(#, $chr(35)))
.timerMod.MondFace.tFlood $+ $+(., $network, ., #) off | .notice $nick 14Aktuelle fortschritt des 09MondFaces14 wurde gelöscht.
}
if ($2 == level) {
if ($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), LEVEL) == 1) .notice $nick 14Es muss noch das09 zweite 14Auge gesetzt werden.
elseif ($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), LEVEL) == 2) .notice $nick 14Es muss noch die09 Nase 14gesetzt werden.
elseif ($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), LEVEL) == 3) .notice $nick 14Es muss noch der09 Mund 14gesetzt werden.
else .notice $nick 14Es muss noch das09 erste 14Auge gesetzt werden.
}
}
if ($2 == on) {
if ($hfind($+(Mod.MondFace.h, $network, .Ignore), #)) {
hdel $+(Mod.MondFace.h, $network, .Ignore) #
hsave $+(Mod.MondFace.h, $network, .Ignore) $Mod.MondFace.aFile(1, $network, Ignore)
.notice $nick 09MondFace14 ist nun im Channel09 # 14aktiviert.
}
else .notice $nick 09MondFace14 ist schon im Channel09 # 14aktiviert.
}
if ($2 == off) {
if ($hfind($+(Mod.MondFace.h, $network, .Ignore), #)) .notice $nick 09MondFace14 ist schon im Channel09 # 14deaktiviert.
else {
hadd -m $+(Mod.MondFace.h, $network, .Ignore) #
hsave $+(Mod.MondFace.h, $network, .Ignore) $Mod.MondFace.aFile(1, $network, Ignore)
.notice $nick 09MondFace14 ist nun im Channel09 # 14deaktiviert.
}
}
if ($2 == list) {
if ($hget($+(Mod.MondFace.h, $network, .Ignore), 0).item != 0) {
var %a = $hget($+(Mod.MondFace.h, $network, .Ignore), 0).item, %i = 1
while (%i <= %a) {
var %Mod.MondFace.vIgnoreChans = %Mod.MondFace.vIgnoreChans $hget($+(Mod.MondFace.h, $network, .Ignore), %i).item
if (%a == %i) .notice $nick 14Folgende 09Chans14 sind in meiner MondFace Ignoreliste:09 %Mod.MondFace.vIgnoreChans
inc %i 1
}
halt
}
else { .notice $nick 14Es stehen keine 09Chans14 in meiner Ignoreliste. | halt }
}
}
if (!$hfind($+(Mod.MondFace.h, $network, .Ignore), #)) {
if ($2 == info) .notice $nick 14MondFace Addon v1.4 © by 09www.eVolutionX-Project.de14 (09eVolutionX-Project Team14)
if ($2 == help) {
notice $nick 14Punkte stehen für 09Augen14, Komma für 09Nase14 und Strich für den 09Mund14. Mit09 !mondface all 14kannst du sehen wie viele MondFace im Channel erstellt worden sind. Mit09 !mondface stat 14bekommst du deine MondFace stats angezeigt und mit09 !mondface stat <NICK> 14siehst du die MondFace Stats von09 <NICK>
if ($left($nick(#, $nick).pnick, 1) isin ~*&!@%) .notice $nick 14Mit09 !mondface <ON/OFF> 14schaltest du MondFace im Channel aus oder an und mit09 !mondface list 14siehst du wo das Spiel aus ist. Mit09 !monface reset 14kannst du den Aktuellen Spielstand zurücksetzen. Mit09 !mondface level 14siehst du wie weit der MondFace level ist.
}
if ($2 == all) .msg # 14In diesem Channel wurden $iif($hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), ALL), schon09 $hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), ALL), noch09 keine) 14Mondgesichter erstellt.
if ($2 == stat) {
if ($3) {
if ($hfind($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), $3)) .msg # 09 $+ $3 14hat in09 # 14an09 $hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), $3) 14von09 $hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), ALL) 14Mondgesichter mitgewirkt.
else .msg # 09 $+ $3 14hat noch an keinem 09Mondgesicht14 mitgewirkt.
}
else {
if ($hfind($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), $nick)) .msg # 09Du14 hast in09 # 14an09 $hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), $nick) 14von09 $hget($+(Mod.MondFace.h, $network, ., $remove(#, $chr(35))), ALL) 14Mondgesichter mitgewirkt.
else .msg # 09Du14 hast noch an keinem 09Mondgesicht14 mitgewirkt.
}
}
}
}
else {
.notice $nick 14Punkte stehen für 09Augen14, Komma für 09Nase14 und Strich für den 09Mund14. Mit09 !mondface all 14kannst du sehen wie viele MondFace im Channel erstellt worden sind. Mit09 !mondface stat 14bekommst du deine MondFace stats angezeigt und mit09 !mondface stat <NICK> 14siehst du die MondFace Stats von09 <NICK>
if ($left($nick(#, $nick).pnick, 1) isin ~*&!@%) .notice $nick 14Mit09 !mondface <ON/OFF> 14schaltest du MondFace im Channel aus oder an und mit09 !mondface list 14siehst du wo das Spiel aus ist. Mit09 !monface reset 14kannst du den Aktuellen Spielstand zurücksetzen. Mit09 !mondface level 14siehst du wie weit der MondFace level ist.
}
}
}
;*************************************************************************************************
;* ON EVENTS Ende
;*************************************************************************************************
;*************************************************************************************************
;* ALIASES Start
;*************************************************************************************************
; - Path wiedergabe:
; - $Mod.MondFace.aFile(1, $network, $chan) gibt den Path zu den Hash files wieder.
;*************************************************************************************************
alias Mod.MondFace.aFile {
if (!$isdir(System)) mkdir System
if (!$isdir(System\MondFace)) mkdir System\MondFace
if ($1 == 1) {
if (!$isdir($+(Serv, $2))) mkdir System\MondFace\ $+ $+(Serv, $2)
return $+(", $mircdirSystem\MondFace\, Serv, $2, \, $3, .hsh, ")
}
else return $+(", $mircdirSystem\MondFace\, ")
}
;*************************************************************************************************
; - Lädt die im Ordner enthaltene Hash Files:
; - Mod.MondFace.aLoad
;*************************************************************************************************
alias Mod.MondFace.aLoad {
if ($1-) {
var %1 = $right($gettok($1-, -2, 92), $calc($len($gettok($1-, -2, 92)) - 4)), %2 = $remove($gettok($1-, -1, 92), .hsh)
if ($hget($+(Mod.MondFace.h, %1, ., %2))) hfree $+(Mod.MondFace.h, %1, ., %2)
hmake $+(Mod.MondFace.h, %1, ., %2) 10000
hload $+(Mod.MondFace.h, %1, ., %2) $1-
}
}
;*************************************************************************************************
;* ALIASES Ende
;*************************************************************************************************