Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Zarach RPG v0.2.0317
17.03.2009, 17:08 Uhr
Beitrag #1
Zarach RPG v0.2.0317
So mein allererstes Script Smile
Heute mal drangesetzt

Ist noch relativ unvollständig und wird demnächst wahrscheinlich von mir fortgeführt, will mich aber nicht festlegen.

Code:
'##########################################
'##########################################
'########### Zarach RPG by Zale ###########
'############## version 0.2 ###############
'############## 17.03.2009 ################
'##########################################
'##########################################
'0 - weiß
'1 = Schwarz
'2 = Blau
'3 = Grün
'4 = Rot
'5 = Dunkelrot
'6 = Violett
'7 = Orange
'8-gelb
'9- neon-grün
'10- türkis
'11-dunkel-grau
'12 - ein etwas helleres grau
'13- ein dunkel grau
'14- wieder ein helleres grau
'

'Befehle ...
'
'# außerhalb des Spiels:    !zarach start        - Startet ein neues Spiel
'
'# innerhalb des Spiels:        !zarach hit        - Haut zu
'                     BEFEHLE UNVOLLSTÄNDIG! NICHT AKTUALISIERT!
'
Dim vWordnr, vShort, vHP, vHPMax, vMana, vManaMax, vStr, vLevel, vXP, vXPMax, vLoc, vOn, vLocNext, vLocNew, vCombat, vMobName, vMobHP, vMobXP, vMobLvl, vMobHPMax
Const Zarach_INI = "FileArea\INI\zarach.ini"
Const cVersion ="Zarach RPG (v0.2.0317) - ©2009 by Zale"

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

Sub Laden(Chan)
    vHP = ReadINIString(Chan, "vHP", "0", Zarach_INI)
      vMana = ReadINIString(Chan, "vMana", "0", Zarach_INI)
    vHPMax = ReadINIString(Chan, "vHPMax", "0", Zarach_INI)
      vManaMax = ReadINIString(Chan, "vManaMax", "0", Zarach_INI)
      vStr = ReadINIString(Chan, "vStr", "0", Zarach_INI)
    vLevel = ReadINIString(Chan, "vLevel", "0", Zarach_INI)
    vXP = ReadINIString(Chan, "vXP", "0", Zarach_INI)
    vLoc = ReadINIString(Chan, "vLoc", "0", Zarach_INI)
    vXPMax = 500*vLevel*vLevel

    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

Sub Nahkampf(Chan)
    dmg = Round(Int(Rnd * vStr) + vStr/2, 0)
    vMobHP = vMobHP - dmg
    
    Kampf Chan, dmg
End Sub

Sub Kampf(Chan, schaden)
    SendLine "PRIVMSG " & Chan & " : 1,0Du triffst5 " & vMobName & "1 mit13 " & schaden & " Schaden 1. 5 " & vMobName & "1 hat noch4 "&vMobHP&"/"&vMobHPMax&"1 Gesundheit.", 3
    If vMobHP>0 Then
        mdmg =Round(Int(Rnd * (vMobLvl*8)) + (vMobLvl/2), 0)
        vHP = vHP - mdmg
        SendLine "PRIVMSG " & Chan & " : 1,0 5" & vMobName & "1 trifft dich mit13 " & mdmg & " Schaden 1. Du hast noch 4 "&vHP&"/"&vHPMax&" 1 Gesundheit und 2 "&vMana&"/"&vManaMax&" 1 Mana.", 3
    End If
    
    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


Angehängte Datei(en)
.asc  zarach.asc (Größe: 9,5 KB / Downloads: 2)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste