Helden-Bestand

SterneHeldFarbeTeam KostenStärkeSchnelligkeitAngriffVerteidigungLebenSpezialfähigkeit 
3Graumähneblau8441mittel467368789Füge dem Ziel 225% Schaden zu. Heile dich selbst für 50% des ausgeteilten Schadens.
3Ulmerblau8436langsam528359677116% Schaden an alle Gegner, 34% Verteidigung für 6 Runden
4Borilblau15643mittel5017921151Du und benachbarte Helden führen 5 Züge lang Gegenangriffe mit 125% des erlittenen Schadens.
4Grimmblau15642mittel7165311132295% Einzelangriff und weniger Schaden an nahen Gegner, -34% Verteidigung für gegnerische Helden für 6 Runden
5Magniblau26769schnell8085911370420% Einzelangriff und +63% Verteidigung für alle Helden für 4 Runden
5Richardblau26770mittel6598171296415% Einzelangriff und weniger Schaden an nehen Gegnern, -34% Angriff für 6 Runden
3Banegelb8440schnell469410693Füge dem Ziel 300% Schaden zu.
Das Ziel erhält -35% Genauigkeitsfür 4 Runden (Auch Spezialfähigkeit).
3Gan Jugelb8443schnell467363811270% Schaden an einzel Ziel.
Reduziere das Mana des Ziels um 25%.
4Hu Taogelb15638langsam6036311183200% Schaden an alle Gegner.
Alle Gegner erhalten -35% Genauigkeit für 4 Runden (Auch Spezialfähigkeit)
4Wächter-Schakalgelb15680sehr schnell7955491068Verursacht 270% schaden bei einem einzelnen Gegner. Er erhält -54% Verteidigung gegen Licht für 4 Runden.
4Wu Konggelb15669mittel7226381028Alle Helden erhalten +185% Angriff aber - -32% Genauigkeit für 5 Runden
5Delilahgelb26768mittel7377041345Heilung alle Helden 33%. Wächterlakaien für jeden Held mit 13% deiner LP und 16% deines Angriffs
5Vivicagelb26765langsam7146941328Stellt für alle Verbündeten 44% Gesundheit wieder her. Alle Verbündeten erhalten für 4 Runden + 63% Verteidigung und heilen Statusprobleme von allen Verbündeten.
3Berdengrün8444schnell470425688325% Schaden an einzel Ziel + -34% Angriff für 6 Runden
3Briennegrün8440mittel446448674+45% Angriff für alle Helden + 20% Erhöhung wenn die Helden Schaden erhalten haben für 5 Runden
3Isshtakgrün8433mittel453417764260% Schaden an einzel Ziel + weniger an umliegenden
4Caedmongrün15668schnell6506731128345% Schaden an einzel Ziel + positiv Status Entfernung bei allen Gegnern
4Kashhrekgrün15673mittel5636841357Gewinnen Sie 45% Lebenspunkte für Verbündete in der Nähe und erhalten 3 Runden lang eine 94% ige Abwehr gegen Feuer.
4Melendorgrün15638mittel714586100042% Heilung für alle Helden + positiv Status Entfernung bei allen Gegnern
4Rasselkoppgrün15674langsam7586051041185% Schaden an alle Gegner + - 34% Angriff für 6 Runden
5Elkanengrün26758schnell6757841266Fügt einem einzelnen Gegner 285% Schaden zu und fügt Gegnern in der Nähe geringfügigen Schaden zu und stehlt ihm einen kleinen Betrag an behandeltem Schaden zurück.
5Liannagrün26770schnell7447361248Füge dem Ziel 512% Schaden zu.
3Azarrot8444schnell493413651280% Schaden an Einzel Ziel & reduziert Mana um 25%
3Nashgarrot8443schnell514366684290% Schaden an Einzel Ziel + 120 Schaden für 6 Runden
4Colenrot15643langsam7285371094180% Schaden an alle + 320 Schaden für 6 Runden
4Sturmfangrot15644mittel5887111107Heilt alle um 27% + 48% mehr Angriff für 6 Runden
5Elenarot26753langsam8095781312Verursache 202% Schaden an alle Gegner
Du und umliegende Helden führen 5 Züge lang Gegenangriffe mit 125% des erlittenen Schsdens aus.
5Khaganrot26757langsam7106421458Fügt einem einzelnen Gegner 320% Schaden zu, und in der Nähe befindliche Feinde und Verbündete in der Nähe erhalten +24% Manareneration für 5 Züge und +63% Verteidigung für 5 Züge.
3Balthazarviolett8442schnell483422648335% Einzelangriff
3Renfeldviolett8445mittel488398700215% Einzelangriff und klaut etwas Leben zurück
4Rigardviolett15644mittel595673116642% Gesundheit für alle Helden, heilt negative Status.
4Zypranviolett15642mittel5636051362Du und benachbarte Helden führen 5 Züge lang Gegenangriffe mit 11% des erlittenen Schadens aus.
5Obakanviolett26766schnell7776381328Fügt einem Gegner 260% Schaden und geringen Schaden bei einem nahen Gegner zu. Der Zaubergegenstand greift 4 Sekunden lang mit 115% des erlittenen Schadens an.
5Sartanaviolett26694schnell6947001382Füge dem Ziel 452% Schaden zu.
Das Ziel erleidet 294 Schaden über 6 Züge.

modInpBox (Inputbox für Anwendungen)

Option Compare Database
Option Explicit

Public strInpBoxRes As String

Function InpBox(strPrompt As String, _
Optional strTitle As Variant, _
Optional strDefault As Variant, _
Optional strHelp As Variant) As String

Dim F As Form_frmInpBox

DoCmd.OpenForm „frmInpBox“
On Error Resume Next
Set F = Forms(„frmInpBox“)
If Err <> 0 Then
Beep
MsgBox „InpBox: Formular »frmInpBox« nicht gefunden…“
InpBox = „“
Exit Function
End If

With F
.lblPrompt.Caption = strPrompt
If Not IsMissing(strTitle) Then
.Caption = strTitle
End If
If Not IsMissing(strDefault) Then
.lblDefault.Caption = strDefault
With .txtInput
.Text = strDefault
.SelStart = 0
.SelLength = 999
End With
Else
.lblDefault.Caption = „“
.btnUndo.Enabled = False
End If
If Not IsMissing(strHelp) Then
.lblHelp.Caption = strHelp
Else
.lblHelp.Caption = „“
.btnHelp.Enabled = False
End If
End With

While SysCmd(acSysCmdGetObjectState, acForm, „frmInpBox“) = acObjStateOpen
DoEvents
Wend

InpBox = strInpBoxRes

End Function

Sub Test()
Dim strX

strX = InpBox(„Bitte den gesuchten Ort eingeben:“, _
„Ort eingeben:“, _
„Hamburg“, _
„Dies ist ein Beispiel für einen Hilfetext…“)

End Sub

 

modDruckFunktion (Standarddrucker automatisch zurücksetzen)

 

Option Compare Database
Option Explicit

Function SetStdPrinter(strPrinter As String)
Dim prtNew As Printer

On Error Resume Next
Set prtNew = Printers(strPrinter) ‚Gewünschten Drucker auslesen…
Set Application.Printer = prtNew ‚…und als Standard setzen

End Function

Function StandardDrucker() As String

StandardDrucker = Application.Printer.DeviceName

End Function

Sub Test1()
Dim intAnz As Integer, I As Integer

intAnz = Printers.Count – 1
For I = 0 To intAnz
Debug.Print Printers(I).DeviceName
Next I

End Sub

 

clsShellExec (Dateien in Datenbanken einbinden)

 

Option Compare Database
Option Explicit

Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID As Long
End Type

Private Type SHELLEXECUTEINFO
cbSize As Long
fMask As Long
hwnd As Long
lpVerb As String
lpFile As String
lpParameters As String
lpDirectory As String
nShow As Long
hInstApp As Long
lpIDList As Long
lpClass As String
hkeyClass As Long
dwHotKey As Long
hIcon As Long
hProcess As Long
End Type

Private Declare Function ShellExecuteEx Lib „shell32.dll“ Alias „ShellExecuteExA“ _
(lpExecInfo As SHELLEXECUTEINFO) As Boolean

Private Declare Function WaitForSingleObject Lib „kernel32“ _
(ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long

Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&
Private Const SEE_MASK_NOCLOSEPROCESS = &H40&
Private Const SEE_MASK_FLAG_NO_UI = &H400&

Private mProcessInfo As PROCESS_INFORMATION
Private mShellExecuteInfo As SHELLEXECUTEINFO

Private mProgName As String
Private mProgParas As String
Private mFile As String
Private mWorkDir As String
Private mError As Boolean
Private mShowErrors As Boolean
Private mWindowState As Long

Public Sub OpenFile()

mShellExecuteInfo.cbSize = Len(mShellExecuteInfo)
mShellExecuteInfo.fMask = SEE_MASK_NOCLOSEPROCESS + SEE_MASK_FLAG_NO_UI
mShellExecuteInfo.lpFile = mFile
mShellExecuteInfo.lpParameters = vbNullString
mShellExecuteInfo.lpDirectory = mWorkDir
mShellExecuteInfo.nShow = mWindowState ‚vbNormalFocus
mError = ShellExecuteEx(mShellExecuteInfo)
mProcessInfo.hProcess = mShellExecuteInfo.hProcess
mError = (mShellExecuteInfo.hInstApp < 32)
If mError And mShowErrors Then
MsgBox „clsShellExec: Die Datei »“ & mFile & „« konnte nicht geöffnet werden…“, vbOKOnly + vbExclamation, „!!! Problem !!!“
End If

End Sub

Public Property Let WindowState(lngWinState As Long)

mWindowState = lngWinState

End Property

Private Sub Class_Initialize()

mError = False ‚Kein Fehler
mShowErrors = True ‚Fehlermeldungen anzeigen
mWindowState = vbNormalFocus ‚Normales Fenster mit Focus
mWorkDir = „“ ‚Kein Arbeitsberzeichnis

End Sub
Public Property Let Parameters(strParas As String)

mProgParas = strParas

End Property
Public Property Let ShowError(bolFlag As Boolean)

mShowErrors = bolFlag

End Property

Public Sub RunAppl()

If mProgName <> „“ Then
mShellExecuteInfo.cbSize = Len(mShellExecuteInfo)
mShellExecuteInfo.fMask = SEE_MASK_NOCLOSEPROCESS + SEE_MASK_FLAG_NO_UI
mShellExecuteInfo.lpFile = mProgName
mShellExecuteInfo.lpParameters = mProgParas
mShellExecuteInfo.lpDirectory = mWorkDir
mShellExecuteInfo.nShow = mWindowState ‚vbNormalFocus
mError = ShellExecuteEx(mShellExecuteInfo)
mProcessInfo.hProcess = mShellExecuteInfo.hProcess
mError = (mShellExecuteInfo.hInstApp < 32)
If mError And mShowErrors Then
MsgBox „clsShellExec: Die Anwendung »“ & mProgName & „« konnte nicht geöffnet werden…“, vbOKOnly + vbExclamation, „!!! Problem !!!“
End If
Else
MsgBox „clsShellExec: Keine Anwendung spezifiziert!“, vbOKOnly + vbCritical, „!!! Problem !!!“
End If

End Sub

Public Property Get IsRunning() As Boolean

IsRunning = (WaitForSingleObject(mProcessInfo.hProcess, 10) <> 0)

End Property

Public Property Get Error() As Boolean

Error = mError

End Property
Public Property Let ProgramName(strProgName As String)

mProgName = strProgName

End Property
Public Property Let Filename(strFile As String)

mFile = strFile

End Property

Public Property Let WorkDir(strPath As String)

mWorkDir = strPath

End Property

 

terminnachoutlook (Termin nach Outlook)

Function terminnachoutlook(dtStart As String, intDauer As Integer, strBetreff As String, strKommentar As String, bolErinnerung As Boolean, intErinnerungMinuten As Integer) As Boolean

On Error GoTo FehlerBehandlung
Dim oOutlookApp As Outlook.Application
Dim oOutlookTermin As Outlook.AppointmentItem
Set oOutlookApp = CreateObject(„Outlook.Application“)
Set oOutlookTermin = oOutlookApp.CreateItem(olAppointmentItem)
With oOutlookTermin
.Start = dtStart
.Duration = intDauer
.Subject = strBetreff
.Body = strKommentar
.ReminderSet = bolErinnerung
.ReminderMinutesBeforeStart = intErinnerungMinuten
.Save
End With
Set oOutlookTermin = Nothing
Set oOutlookApp = Nothing
terminnachoutlook = True
Exit Function
FehlerBehandlung:
MsgBox Err.Number & “ “ & Err.Description
terminnachoutlook = False
End Function

 

Im Modul gehen Sie auf Extras ==> Verweise. Markieren Sie den Eintrag Microsoft Outlook 11.0 Objekt Library.
Bestätigen Sie das mit OK.

modUserlist (Angemeldete Userliste auslesen)

Option Compare Database
Option Explicit

Function Userlist() As Boolean
Dim cn As Connection
Dim rs As New Recordset

Set cn = CurrentProject.Connection
Set rs = cn.OpenSchema(adSchemaProviderSpecific, , „{947bb102-5d43-11d1-bdbf-00c04fb92675}“)

Debug.Print ‚Leerzeile
While Not rs.EOF ‚Feldinhalte ausgeben
Debug.Print „Rechner: “ & rs.Fields(0).Value
Debug.Print „User: “ & rs.Fields(1).Value
Debug.Print String$(50, „-„)
rs.MoveNext
Wend

End Function

Function UserListAsString() As String
Dim cnn As ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strListe As String

Set cnn = CurrentProject.Connection
Set rs = cnn.OpenSchema(adSchemaProviderSpecific, , _
„{947BB102-5D43-11D1-BDBF-00C04FB92675}“)

strListe = „“
While Not rs.EOF ‚Feldinhalte ausgeben
strListe = strListe & _
VBAStr(rs.Fields(1).Value) & _
“ (“ & _
VBAStr(rs.Fields(0).Value) & „);“
rs.MoveNext
Wend

UserListAsString = Left$(strListe, Len(strListe) – 1)

End Function

Function VBAStr(aStr As String) As String

VBAStr = Left$(aStr, InStr(aStr, Chr$(0)) – 1)

End Function

 

modSecureForms (Anzeige von Feldern gezielt schützen)

 

Option Compare Database
Option ExplicitSub FelderEinAus(F As Form, C As Control)
Dim strUser As String
Dim ctl As Control

C.SetFocus
strUser = CurrentUser()
For Each ctl In F.Controls
If ctl.Tag <> „“ Then
ctl.Visible = (InStr(ctl.Tag, „;“ & strUser & „;“) <> 0)
End If
Next

End Sub

 

modShutdownFunctions (Rechner per VBA herunterfahren)

 

Option Compare Database
Option ExplicitPrivate Const EWX_LOGOFF = 0
Private Const EWX_SHUTDOWN = 1
Private Const EWX_REBOOT = 2
Private Const EWX_FORCE = 4

Private Declare Function ExitWindowsEx _
Lib „user32“ _
(ByVal uFlags As Long, _
ByVal dwReserved As Long) _
As Long

Private Const VER_PLATFORM_WIN32_NT = 2
Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

Private Declare Function GetVersionEx _
Lib „kernel32“ Alias „GetVersionExA“ _
(ByRef lpVersionInformation As OSVERSIONINFO) _
As Long

Private Const TOKEN_ADJUST_PRIVILEGES = &H20
Private Const TOKEN_QUERY = &H8
Private Const SE_PRIVILEGE_ENABLED = &H2
Private Const ANYSIZE_ARRAY = 1
Type LUID
LowPart As Long
HighPart As Long
End Type
Type LUID_AND_ATTRIBUTES
pLuid As LUID
Attributes As Long
End Type
Type TOKEN_PRIVILEGES
PrivilegeCount As Long
Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
End Type

Private Declare Function GetCurrentProcess _
Lib „kernel32“ () _
As Long
Private Declare Function OpenProcessToken _
Lib „advapi32“ _
(ByVal ProcessHandle As Long, _
ByVal DesiredAccess As Long, _
TokenHandle As Long) _
As Long
Private Declare Function LookupPrivilegeValue _
Lib „advapi32“ Alias „LookupPrivilegeValueA“ _
(ByVal lpSystemName As String, _
ByVal lpName As String, _
lpLuid As LUID) _
As Long
Private Declare Function AdjustTokenPrivileges _
Lib „advapi32“ _
(ByVal TokenHandle As Long, _
ByVal DisableAllPrivileges As Long, _
NewState As TOKEN_PRIVILEGES, _
ByVal BufferLength As Long, _
PreviousState As TOKEN_PRIVILEGES, _
ReturnLength As Long) _
As Long

Public Sub ComputerShutdown(ShutdownMode As Long)
Dim WinInfo As OSVERSIONINFO
Dim hProcess As Long
Dim hToken As Long
Dim LocalLUID As LUID
Dim LocalPriv As TOKEN_PRIVILEGES
Dim NewPriv As TOKEN_PRIVILEGES
Dim lBuffer As Long
Dim lFlags As Long

If MsgBox(„Wollen Sie Windows wirklich beenden?“, _
vbCritical + vbYesNo, „Ende“) = vbYes Then
WinInfo.dwOSVersionInfoSize = Len(WinInfo)
GetVersionEx WinInfo
‚dwPlatformID für Win95/98/ME ist 1, für WinNT/2000/XP ist es 2
If WinInfo.dwPlatformId = VER_PLATFORM_WIN32_NT Then
hProcess = GetCurrentProcess()
OpenProcessToken hProcess, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, hToken
LookupPrivilegeValue „“, „SeShutdownPrivilege“, LocalLUID
LocalPriv.PrivilegeCount = 1
LocalPriv.Privileges(0).Attributes = SE_PRIVILEGE_ENABLED
LocalPriv.Privileges(0).pLuid = LocalLUID
AdjustTokenPrivileges hToken, False, LocalPriv, Len(NewPriv), NewPriv, lBuffer
End If
Select Case ShutdownMode
Case 1 ‚Logoff
lFlags = EWX_LOGOFF + EWX_FORCE
Case 2 ‚Neu starten
lFlags = EWX_REBOOT + EWX_FORCE
Case 3 ‚Herunterfahren
lFlags = EWX_SHUTDOWN + EWX_FORCE
Case Else
lFlags = EWX_SHUTDOWN + EWX_FORCE
End Select
ExitWindowsEx lFlags, 0
End If
End Sub