Sub Init()
vShort = 0
vWordnr = 1
vOn = 0
Script cVersion
Hook "Chan_Msg"
End Sub
Sub Chan_Msg(Chan, Nick, RegUser, Line)
If Line = "!zarach short" Then
vShort = 1
vWordnr = 0
SendLine "PRIVMSG " & Chan & " : 1,0Short-Mode aktiviert. Das '!zarach'-Tag wird nicht mehr benötigt. Deaktiviere den Short-Mode mit '!zarach long'.", 3
End If
If Line = "!zarach long" Then
vShort = 0
vWordnr = 1
SendLine "PRIVMSG " & Chan & " : 1,0Short-Mode deaktiviert. Das '!zarach'-Tag wird jetzt wieder benötigt.", 3
End If
Commands Chan, Nick, RegUser, Line
End Sub
Sub Commands(Chan, Nick, RegUser, Line)
If vCombat = 0 Then
If LCase(Param(Line, 1)) = "!zarach" OR vShort = 1 Then
Select Case LCase(Param(Line, vWordnr+1))
Case "start"
Starten Chan
Case "geh"
Gehen Chan, Line
Case ""
Hilfe Chan
Case "hilfe"
Hilfe Chan
Case "help"
Hilfe Chan
Case "stop"
Beenden Chan
Case "speichern"
Speichern Chan
Case "suche"
MobSuche Chan
End Select
End If
End If
If vCombat = 1 Then
If LCase(Param(Line, 1)) = "!zarach" OR vShort = 1 Then
Select Case LCase(Param(Line, vWordnr+1))
Case "hit"
Nahkampf Chan
Case "speichern"
Speichern Chan
Case "hilfe"
Hilfe Chan
Case "help"
Hilfe Chan
Case ""
Hilfe Chan
End Select
End If
End If
End Sub
Sub Starten(Chan)
If vOn = 1 Then
SendLine "PRIVMSG " & Chan & " : 1,0Das Spiel ist bereits im Gange.", 3
End If
If vOn = 0 Then
vOn = 1
SendLine "PRIVMSG " & Chan & " : 1,06" & cVersion & " gestartet.", 3
Initialisieren(Chan)
SendLine "PRIVMSG " & Chan & " : 1,0Schreibe '!zarach hilfe', um die Hilfe aufzurufen.", 3
End If
End Sub
Sub Initialisieren(Chan)
If ReadINIString(Chan, "vLevel", "0", Zarach_INI) = "0" Then
WriteINIString Chan, "vLevel", "1",Zarach_INI
WriteINIString Chan, "vHP", "40", Zarach_INI
WriteINIString Chan, "vMana", "25", Zarach_INI
WriteINIString Chan, "vHPMax", "40", Zarach_INI
WriteINIString Chan, "vManaMax", "25", Zarach_INI
WriteINIString Chan, "vStr", "10", Zarach_INI
WriteINIString Chan, "vXP", "0", Zarach_INI
WriteINIString Chan, "vLoc", "Überlebendenlager", Zarach_INI
End If
Laden Chan
End Sub
SendLine "PRIVMSG " & Chan & " : 1,0Das letzte Spiel wurde geladen.", 3
Status Chan
SendLine "PRIVMSG " & Chan & " : 1,0Du befindest dich in ~" & vLoc & "~.", 3
Umgebungssuche Chan
SendLine "PRIVMSG " & Chan & " : 1,0Anliegende Orte: ~" & vLocNext & "~. Gehe mit '!zarach geh Ort' dorthin.", 3
End Sub
Sub Gehen(Chan, Line)
vLocNew = Param(Line, vWordnr+2)
Select Case vLocNew
Case ""
SendLine "PRIVMSG " & Chan & " : 1,0Bitte einen Ort angeben.", 3
Case "Krähenwald"
If vLoc = "Überlebendenlager" Then
vLoc = vLocNew
End If
End Select
SendLine "PRIVMSG " & Chan & " : 1,0Du befindest dich nun in ~" & vLoc & "~.", 3
Umgebungssuche Chan
SendLine "PRIVMSG " & Chan & " : 1,0Anliegende Orte: ~" & vLocNext & "~.", 3
End Sub
Sub Umgebungssuche(Chan)
Select Case vLoc
Case "Überlebendenlager"
vLocNext = "Krähenwald"
Case "Krähenwald"
vLocNext = "Überlebendenlager"
End Select
End Sub
Sub MobSuche(Chan)
If vLoc = "Krähenwald" Then
Select Case Int(Rnd * 5) + 1
Case 1
vMobName = "tollwütiger Wolf"
vMobHP = 20
vMobLvl = 1
Case 2
vMobName = "wilder Fuchs"
vMobHP = 19
vMobLvl = 1
Case 3
vMobName = "kleiner Waldbär"
vMobHP = 25
vMobLvl = 2
Case 4
vMobName = "Riesenmotte"
vMobHP = 23
vMobLvl = 2
Case 5
vMobName = "aggressive Ratte"
vMobHP = 24
vMobLvl = 2
End Select
End If
vMobHPMax = vMobHP
vMobXP = vMobLvl*100/vLevel
SendLine "PRIVMSG " & Chan & " : 1,0Während du " & vLoc & " auf der Suche nach Feinden durchstreifst, triffst du auf:5 ~" & vMobName & "~1 mit4 "&vMobHP&"/"&vMobHPMax&"1 Gesundheit.", 3
SendLine "PRIVMSG " & Chan & " : 1,0Der Kampf beginnt. Greife deinen Feind mit '!zarach hit' an.", 3
vCombat = 1
End Sub
If vMobHP<=0 Then
vXP = vXP + vMobXP
SendLine "PRIVMSG " & Chan & " : 1,0Du hast5 " & vMobName & "1 besiegt! Deine Erfahrung steigt um7 "&vMobXP&"1 und beträgt jetzt7 "&vXP&"/"&vXPMax&"1.", 3
If vXP >= vXPMax Then
LevelUp Chan
End If
vCombat = 0
End If
If vHP<=0 Then
SendLine "PRIVMSG " & Chan & " : 1,0 5 " & vMobName & "1 hat dich getötet. 7Der letzte Spielstand wird geladen.1 ", 3
Laden Chan
vCombat = 0
End If
End Sub
Sub LevelUp(Chan)
vLevel = vLevel + 1
vXP = vXP - vXPMax
vXPMax = 500*vLevel*vLevel
SendLine "PRIVMSG " & Chan & " : 1,0Dein Charakter ist um3 1 Stufe 1gestiegen!", 3
vHPMax = Round(vHPMax*1.2, 0)
vManaMax = Round(vManaMax*1.2, 0)
vMana = vManaMax
vHP = vHPMax
vStr = vStr*1.2
Status Chan
End Sub
Sub Hilfe(Chan)
If vOn = 0 Then
SendLine "PRIVMSG " & Chan & " : 1,0Das Spiel ist pausiert.", 3
SendLine "PRIVMSG " & Chan & " : 1,0Folgende Befehle stehen zur Verfügung:", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach start', um das Spiel zu starten.", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach hilfe', um die Hilfe aufzurufen.", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach short/long', um den Short-Mode zu starten/beenden.", 3
End If
If vOn = 1 Then
SendLine "PRIVMSG " & Chan & " : 1,0Das Spiel ist im Gange.", 3
SendLine "PRIVMSG " & Chan & " : 1,0Folgende Befehle stehen zur Verfügung:", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach geh Ort', um nach 'Ort' zu gehen. (Nicht im Kampf möglich)", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach suche', um die Umgebung nach Feinden oder Ähnlichem zu erkunden. (Nicht im Kampf möglich)", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach speichern', um das Spiel zu speichern.", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach stop', um das Spiel zu beenden. (Nicht im Kampf möglich)", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach hit', um einen Angreifer zu attackieren. (Nur im Kampf möglich)", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach hilfe', um die Hilfe aufzurufen.", 3
SendLine "PRIVMSG " & Chan & " : 1,0'!zarach short/long', um den Short-Mode zu starten/beenden.", 3
End If
End Sub
Sub Status(Chan)
SendLine "PRIVMSG " & Chan & " : 1,0Euer Charakter Zarach ist auf 3Stufe " & vLevel & "1. Er hat4 " & vHP & "/" & vHPMax & "1 Lebenspunkte und2 " & vMana & "/" & vManaMax & "1 Mana. Deine Erfahrung beträgt7 " & vXP & "/" & vXPMax & "1. Deine Stärke beträgt5 " & vStr & "1.", 3
End Sub
Sub Beenden(Chan)
If vOn = 0 Then
SendLine "PRIVMSG " & Chan & " : 1,0Das Spiel ist bereits beendet.", 3
End If
If vOn = 1 Then
Speichern Chan
vOn = 0
SendLine "PRIVMSG " & Chan & " : 1,0" & cVersion & " wurde beendet.", 3
End If
End Sub
Sub Speichern(Chan)
If vOn = 1 Then
WriteINIString Chan, "vLevel", vLevel,Zarach_INI
WriteINIString Chan, "vHP", vHP, Zarach_INI
WriteINIString Chan, "vMana", vMana, Zarach_INI
WriteINIString Chan, "vStr", vStr, Zarach_INI
WriteINIString Chan, "vXP", vXP, Zarach_INI
WriteINIString Chan, "vLoc", vLoc, Zarach_INI
WriteINIString Chan, "vHPMax", vHPMax, Zarach_INI
WriteINIString Chan, "vManaMax", vManaMax, Zarach_INI
SendLine "PRIVMSG " & Chan & " : 1,0Spiel gespeichert.", 3
End If
End Sub
Zarach RPG ist, wie der Name schon sagt, ein RPG.
Bisher kann man nur das Gebiet wechseln, die Gegend durchstreifen und Feinden auflauern. Story kommt vllt. bald mal hinzu
Befehle:
'!zarach start', um das Spiel zu starten.
'!zarach geh Ort', um nach 'Ort' zu gehen. (Nicht im Kampf möglich)
'!zarach suche', um die Umgebung nach Feinden oder Ähnlichem zu erkunden. (Nicht im Kampf möglich)
'!zarach speichern', um das Spiel zu speichern."
'!zarach speichern', um das Spiel zu speichern."
'!zarach stop', um das Spiel zu beenden. (Nicht im Kampf möglich)
'!zarach hit', um einen Angreifer zu attackieren. (Nur im Kampf möglich)
'!zarach hilfe', um die Hilfe aufzurufen.
'!zarach short/long', um den Short-Mode zu starten/beenden.
Verbesserungsvorschläge wären nett...gibt es eine Möglichkeit Arrays zu verwenden? Kenn mich nicht so wirklich damit aus, da ich erst heute damit angefangen hab