AnGelBot-Portal²

Normale Version: server status script
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi
Ich such ein script, mit dem ich von diesen server-status hier http://www.netw0rkz.de/ragnarok/status.php,
also von allen drei mit !server den status abrufen kann und wenn sich der stus auf der page ändert, dass der bot auch automatisch bei änderun anzeigt.
Kann mir das jemand schreiben hab keine ahnung wie ich das hinkriegen soll.

Danke
hi,

1. Die HP darf sich NIEMALS ändern, NIX GARNIX!! Auch nicht die Farbe der Online/offline anzeige, nix null nothing....

auch wenn offline is, muss der farbcode #58FF7F beibehalten werden!!!!!! Sonst wird das Script nicht funktionieren!


So nun zu deinem Script


Code:
'################################
'Status News-Ticker
'Funktionen + Setup sind von einem Script von Sp33d
'Der Rest by sts

'Habt Anstand und macht aus diesem Script nicht euer eigenes, lernt selbst wie man scriptet!!!
'################################




Const Host = "www.netw0rkz.de"

Const INIFile = "ini_status.ini"
Const Version = "Status-News-Ticker 1.0 by sts"
Const ScriptName = "Server-Status"
Const DebugIt = False          'Erweiterte Meldungen

Const TF_CreateNot = 0
Const TF_CreateIfExists = 1
Const TF_CreateIfNotExists = 2
Const TF_Create = 4

Dim Channels, LastNews, Recieved

Sub Init()
  Script Version
  Hook "Commands"
  Hook "Chan_Msg"
  AddCommand "serverstatus", Cl_Mas, "+m", "2*** .status##14Zeigt das " & ScriptName & " Setup in dem die Channel,##14in denen der Ticker angezeigt werden soll verändert##14werden können."
  ReloadChannels
  GetNews
  SpreadFlagMessage 0, "+m", "3Um das Script zu konfigurieren gib nun .serverstatus ein."
End Sub


Sub ReloadChannels()
  Channels = ReadINIString("Settings", "Channels", "", INIFile)
End Sub

Sub Commands(vSock, RegUser, Flags, Line)
  If LCase(Param(Line, 1)) = ".serverstatus" Then
    GrabUser vSock, "" & ScriptName & " Setup", "StatusSetup"
    SetSockTag vSock, "MainMenu"
    StatusSetup vSock, RegUser, Flags, ""
  End If
End Sub

Sub StatusSetup(vSock, RegUser, Flags, Line)

  If Param(Line, 1) = "0" Then
    TU vsock, "10*** Saving settings..."
    ReleaseUser vSock
    Exit Sub
  End If

  Select Case LCase(Param(GetSockTag(vSock), 1))
    Case "mainmenu"
      TU vSock, " 11,0,%0,11%'12,11,%11,12%'2,12,%12,2%'1,2,%2,1%'1,1____________________​___2,1'%1,2%,12,2'%2,12%,11,12'%12,11%,0,11'%11,0%,"
      TU vSock, "11,0,%0,11%'12,11,%11,12%'2,12,%12,2%'1,2,%2,1%'1,1_0,1 " & ScriptName & " Setup 1,1_2,1'%1,2%,12,2'%2,12%,11,12'%12,11%,0,11'%11,0%,"
      TU vSock, " 11,0,%0,11%'12,11,%11,12%'2,12,%12,2%'1,2,%2,1%'1,1____________________​___2,1'%1,2%,12,2'%2,12%,11,12'%12,11%,0,11'%11,0%,"
      TU vSock, " "
      TU vSock, "Willkommen im Setup vom " & Version & "!"
      TU vSock, "Du befindest dich im Hauptmenü."
      TU vSock, " "
      TU vSock, "0,1Ticker Channels:"

      Dummy = Split(Channels, " ")
      For i = LBound(Dummy) To UBound(Dummy)
        TU vSock, "14 - " & Dummy(i)
      Next

      TU vSock, " "
      TU vSock, " - chan add #channel um einen Channel der Liste hinzuzufügen"
      TU vSock, " - chan del #channel um einen Channel aus Liste zu löschen"
      TU vSock, " - 0 um zurück auf die Partyline zu kommen."
      SetSockTag vSock, "MainMenuOption"
    Case "mainmenuoption"
      Select Case LCase(Param(Line, 1))
        Case "chan"
          If LCase(Param(Line, 2)) = "add" Then
            Channels = Trim3(Channels & " " & Param(Line, 3))
            WriteINIString "Settings", "Channels", Channels, INIFile
            TU vSock, "3*** Channel " & LCase(Param(Line, 3)) & " wurde hinzugefügt"
            SetSockTag vSock, "MainMenu"
            StatusSetup vSock, RegUser, Flags, ""
          ElseIf LCase(Param(Line, 2)) = "del" Then
            Channels = Trim3(Replace(LCase(Channels), LCase(Param(Line, 3)), ""))
            WriteINIString "Settings", "Channels", Channels, ChipFile
            TU vSock, "3*** Channel " & LCase(Param(Line, 3)) & " wurde entfernt"
            SetSockTag vSock, "MainMenu"
            StatusSetup vSock, RegUser, Flags, ""
          Else
            TU vSock, "5*** Syntax: chan <add | del> <#channel>"
          End If
        Case Else
          TU vSock, "5*** Ungültiger Befehl"
      End Select
  End Select
End Sub

Sub GetNews()
  If Trim(Channels) <> "" Then
    If Proxy = vbNullString Then
      vSock = SockConnect(Host, "80", "SockEvent")
    Else
      vSock = SockConnect(Proxy, ProxyPort, "SockEvent")
    End If
    If vSock = 0 Then SpreadFlagMessage 0, "+m", "5*** " & ScriptName & ": Couldn't create socket"
  End If
End Sub

Sub SockEvent(vSock, SEvent, SData)
  Dim Header2

  Select Case SEvent
    Case SE_ConnectFailed
      If DebugIt Then SpreadFlagMessage 0, "+m", "5*** " & ScriptName & ": Connection to " & Host & " failed"
      TimedCommand "GetNews", 30
    Case SE_Connected
      If Proxy = vbNullString Then
        Header = "GET /ragnarok/status.php"
      Else
        Header = "GET http://" & Host & "/ragnarok/status.php"
      End If


      SockWrite vSock, Header & " HTTP/1.0" & vbCrLf & Header2 & _
                      "Accept: text/html"  & vbCrLf & _
                      "User-Agent: AnGeL-Bot " & LongBotVersion & " (www.Saug-Hilfe-Fuer-Alle.de)" & vbCrLf & _
                      "Host: " & Host & vbCrLf & _
                      "Pragma: no-cache" & vbCrLf & _
                      "Connection: close" & vbCrLf & vbCrLf
    Case SE_Read
      Recieved = Recieved & SData
    Case SE_Closed
      If InStr(1, Recieved, "<LI TYPE=SQUARE>") > 0 Then
        Recieved = Replace(Recieved, vbCrLf, vbNullString)


        Dummy = "Login Server</DIV></TD><TD><DIV style=""color:'#58FF7F';font-face:Arial;font-size:12px"">"
        Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
        tmp_Dummy = Left(Recieved, InStr(1, Recieved, "<") - 1 )
        tmp_Login = tmp_Dummy
        If DebugIt Then SpreadFlagMessage 0, "+m", "Server No. 1: " & tmp_Login

        Dummy = "Char Server</DIV></TD><TD><DIV style=""color:'#58FF7F';font-face:Arial;font-size:12px"">"
        Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
        tmp_Dummy = Left(Recieved, InStr(1, Recieved, "<") - 1 )
        tmp_Char = tmp_Dummy
        If DebugIt Then SpreadFlagMessage 0, "+m", "Server No. 2: " & tmp_Char

        Dummy = "Zone Server</DIV></TD><TD><DIV style=""color:'#58FF7F';font-face:Arial;font-size:12px"">"
        Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
        tmp_Dummy = Left(Recieved, InStr(1, Recieved, "<") - 1 )
        tmp_Zone = tmp_Dummy
        If DebugIt Then SpreadFlagMessage 0, "+m", "Server No. 3: " & tmp_Zone




        Dummy = "1,15» Server-Status -  »» Login Server: " & tmp_Login & " Char Server: " & tmp_Char & " Zone Server: " & tmp_Zone & ""
        If Dummy <> LastNews Then
          If DebugIt Then SpreadFlagMessage 0, "+m", "New news!"
          LastNews = Dummy
          Dummy = Split(Channels, " ")
          For i = LBound(Dummy) To UBound(Dummy)
            If DebugIt Then SpreadFlagMessage 0, "+m", "Sending to " & Dummy(i) & " :" & "PRIVMSG " & Dummy(i) & " :" & LastNews
            SendLine "PRIVMSG " & Dummy(i) & " : " & LastNews, 2
          Next
        End If

      Else
        If DebugIt Then SpreadFlagMessage 0, "+m", "5*** " & ScriptName & ": Couldn't recieve HTML page..."
      End If
      Recieved = vbNullString

      TimedCommand "GetNews", 120
  End Select
End Sub

Function Trim3(Text)
  Trim3 = Replace(Replace(Trim(Text), "   ", " "), "  ", " ")
End Function

Function TestFile(Path, CreateNew)
  Silent True
  FNum = FileOpen(Path, FA_Read)
  If FNum <> 0 Then vExists = True
  FileClose FNum

  Select Case CreateNew
    Case TF_CreateNot
      If vExists = True Then TestFile = TF_CreateNot
    Case TF_CreateIfExists
      If vExists = True Then
        FNum = FileOpen(Path, FA_Write)
        FileWrite FNum, ""
        FileClose FNum
        TestFile = TF_CreateIfExists
      Else
        TestFile = TF_Error
      End If
    Case TF_CreateIfNotExists
      If vExists = True Then
        TestFile = TF_Error
      Else
        FNum = FileOpen(Path, FA_Write)
        FileWrite FNum, ""
        FileClose FNum
        TestFile = TF_CreateIfNotExists
      End If
    Case TF_Create
      FNum = FileOpen(Path, FA_Write)
      FileWrite FNum, ""
      FileClose FNum
      TestFile = TF_Create
  End Select

  Silent False
End Function

  'rfc1521
  '2001 Antonin Foller, PSTRUH Software, http://pstruh.cz

Function Base64Encode(inData)
  Const Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  Dim cOut, sOut, I

  'For each group of 3 bytes
  For I = 1 To Len(inData) Step 3
    Dim nGroup, pOut, sGroup

    'Create one long from this 3 bytes.
    nGroup = &H10000 * Asc(Mid(inData, I, 1)) + _
      &H100 * MyASC(Mid(inData, I + 1, 1)) + MyASC(Mid(inData, I + 2, 1))

    'Oct splits the long To 8 groups with 3 bits
    nGroup = Oct(nGroup)

    'Add leading zeros
    nGroup = String(8 - Len(nGroup), "0") & nGroup

    'Convert To base64
    pOut = Mid(Base64, CLng("&o" & Mid(nGroup, 1, 2)) + 1, 1) + _
      Mid(Base64, CLng("&o" & Mid(nGroup, 3, 2)) + 1, 1) + _
      Mid(Base64, CLng("&o" & Mid(nGroup, 5, 2)) + 1, 1) + _
      Mid(Base64, CLng("&o" & Mid(nGroup, 7, 2)) + 1, 1)

    'Add the part To OutPut string
    sOut = sOut + pOut

    'Add a new line For Each 76 chars In dest (76*3/4 = 57)
    'If (I + 2) Mod 57 = 0 Then sOut = sOut + vbCrLf
  Next
  Select Case Len(inData) Mod 3
    Case 1: '8 bit final
      sOut = Left(sOut, Len(sOut) - 2) + "=="
    Case 2: '16 bit final
      sOut = Left(sOut, Len(sOut) - 1) + "="
  End Select
  Base64Encode = sOut
End Function

Function MyASC(OneChar)
  If OneChar = "" Then MyASC = 0 Else MyASC = Asc(OneChar)
End Function

Function RemoveSIDs(URL)
  Dim i, strArguments, strBefore

  If InStr(1, URL, "?") > 0 Then
    i = 1
    strArguments = Mid(URL, InStr(1, URL, "&"))
    strBefore = Mid(URL, 1, InStr(1, URL, "&") - 1)
    Do While i <= GetArgumentCount(strArguments)
      If UCase(GetArgumentName(strArguments, i)) = "PHPSESSID" Or LCase(GetArgumentName(strArguments, i)) = "amp" Then
        strArguments = DelParamX(strArguments, "&", i)
        If strArguments <> vbNullString Then
          If Left(strArguments, 1) = "&" Then
            strArguments = "?" & Mid(strArguments, 2)
          ElseIf Left(strArguments, 1) <> "?" Then
            strArguments = "?" & strArguments
          End If
        End If
        i = 1
      Else
        i = i + 1
      End If
    Loop
    RemoveSIDs = strBefore & strArguments
  Else
    RemoveSIDs = URL
  End If
End Function


Function GetArgumentCount(URL)
  If InStr(1, URL, "?") > 0 Then
    Dim strArguments
    strArguments = Mid(URL, InStr(1, URL, "?") + 1)
    GetArgumentCount = ParamXCount(strArguments, "&") + 1
  Else
    GetArgumentCount = 0
  End If
End Function

Function GetArgumentName(URL, Num)
  If Num > 0 And Num <= GetArgumentCount(URL) Then
    Dim strArguments
    strArguments = Mid(URL, InStr(1, URL, "?") + 1)
    If InStr(1, strArguments, "&") = 0 Then strArguments = strArguments & "&"
    GetArgumentName = ParamX(ParamX(strArguments, "&", Num), "=", 1)
  Else
    GetArgumentName = vbNullString
  End If
End Function

Function GetArgumentValue(URL, Num)
  If Num > 0 And Num <= GetArgumentCount(URL) Then
    Dim strArguments
    strArguments = Mid(URL, InStr(1, URL, "?") + 1)
    If InStr(1, strArguments, "&") = 0 Then strArguments = strArguments & "&"
    GetArgumentValue = ParamX(ParamX(strArguments, "&", Num), "=", 2)
  Else
    GetArgumentValue = vbNullString
  End If
End Function

Function DelParam(Text, Num)
  If Num > 0 And Num <= ParamCount(Text) Then
    Dim i, newString
    For i = 1 To Num - 1
      If newString = vbNullString Then
        newString = Param(Text, CInt(i))
      Else
        newString = newString & " " & Param(Text, CInt(i))
      End If
    Next
    newString = newString & " " & GetRest(Text, Num + 1)
    DelParam = newString
  Else
    DelParam = vbNullString
  End If
End Function

Function DelParamX(Text, Delimiter, Num)
  If Num > 0 And Num <= ParamXCount(Text, Delimiter) Then
    Dim i, newString
    For i = 1 To Num - 1
      If newString = vbNullString Then
        newString = ParamX(Text, Delimiter, i)
      Else
        newString = newString & Delimiter & ParamX(Text, Delimiter, CInt(i))
      End If
    Next
    newString = newString & Delimiter & GetRestX(Text, Delimiter, Num + 1)
    If Right(newString, 1) = Delimiter Then newString = Left(newString, Len(newString) - 1)
    If Left(newString, 1) = Delimiter Then newString = Mid(newString, 2)
    DelParamX = newString
  Else
    DelParamX = vbNullString
  End If
End Function

Viel Spass Smile

mfg sts
danke aber script geht nicht, da sich die farbe dort änder von grün in rot wenn server off ist.
Dann musst das php script ändern, kann ja nicht so schwer sein oder?
Referenz-URLs