Sterne | Held | Farbe | Team Kosten | Stärke | Schnelligkeit | Angriff | Verteidigung | Leben | Spezialfähigkeit | |
---|---|---|---|---|---|---|---|---|---|---|
3 | Graumähne | blau | 8 | 441 | mittel | 467 | 368 | 789 | Füge dem Ziel 225% Schaden zu. Heile dich selbst für 50% des ausgeteilten Schadens. | |
3 | Ulmer | blau | 8 | 436 | langsam | 528 | 359 | 677 | 116% Schaden an alle Gegner, 34% Verteidigung für 6 Runden | |
4 | Boril | blau | 15 | 643 | mittel | 501 | 792 | 1151 | Du und benachbarte Helden führen 5 Züge lang Gegenangriffe mit 125% des erlittenen Schadens. | |
4 | Grimm | blau | 15 | 642 | mittel | 716 | 531 | 1132 | 295% Einzelangriff und weniger Schaden an nahen Gegner, -34% Verteidigung für gegnerische Helden für 6 Runden | |
5 | Magni | blau | 26 | 769 | schnell | 808 | 591 | 1370 | 420% Einzelangriff und +63% Verteidigung für alle Helden für 4 Runden | |
5 | Richard | blau | 26 | 770 | mittel | 659 | 817 | 1296 | 415% Einzelangriff und weniger Schaden an nehen Gegnern, -34% Angriff für 6 Runden | |
3 | Bane | gelb | 8 | 440 | schnell | 469 | 410 | 693 | Füge dem Ziel 300% Schaden zu. Das Ziel erhält -35% Genauigkeitsfür 4 Runden (Auch Spezialfähigkeit). | |
3 | Gan Ju | gelb | 8 | 443 | schnell | 467 | 363 | 811 | 270% Schaden an einzel Ziel. Reduziere das Mana des Ziels um 25%. | |
4 | Hu Tao | gelb | 15 | 638 | langsam | 603 | 631 | 1183 | 200% Schaden an alle Gegner. Alle Gegner erhalten -35% Genauigkeit für 4 Runden (Auch Spezialfähigkeit) | |
4 | Wächter-Schakal | gelb | 15 | 680 | sehr schnell | 795 | 549 | 1068 | Verursacht 270% schaden bei einem einzelnen Gegner. Er erhält -54% Verteidigung gegen Licht für 4 Runden. | |
4 | Wu Kong | gelb | 15 | 669 | mittel | 722 | 638 | 1028 | Alle Helden erhalten +185% Angriff aber - -32% Genauigkeit für 5 Runden | |
5 | Delilah | gelb | 26 | 768 | mittel | 737 | 704 | 1345 | Heilung alle Helden 33%. Wächterlakaien für jeden Held mit 13% deiner LP und 16% deines Angriffs | |
5 | Vivica | gelb | 26 | 765 | langsam | 714 | 694 | 1328 | Stellt 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. | |
3 | Berden | grün | 8 | 444 | schnell | 470 | 425 | 688 | 325% Schaden an einzel Ziel + -34% Angriff für 6 Runden | |
3 | Brienne | grün | 8 | 440 | mittel | 446 | 448 | 674 | +45% Angriff für alle Helden + 20% Erhöhung wenn die Helden Schaden erhalten haben für 5 Runden | |
3 | Isshtak | grün | 8 | 433 | mittel | 453 | 417 | 764 | 260% Schaden an einzel Ziel + weniger an umliegenden | |
4 | Caedmon | grün | 15 | 668 | schnell | 650 | 673 | 1128 | 345% Schaden an einzel Ziel + positiv Status Entfernung bei allen Gegnern | |
4 | Kashhrek | grün | 15 | 673 | mittel | 563 | 684 | 1357 | Gewinnen Sie 45% Lebenspunkte für Verbündete in der Nähe und erhalten 3 Runden lang eine 94% ige Abwehr gegen Feuer. | |
4 | Melendor | grün | 15 | 638 | mittel | 714 | 586 | 1000 | 42% Heilung für alle Helden + positiv Status Entfernung bei allen Gegnern | |
4 | Rasselkopp | grün | 15 | 674 | langsam | 758 | 605 | 1041 | 185% Schaden an alle Gegner + - 34% Angriff für 6 Runden | |
5 | Elkanen | grün | 26 | 758 | schnell | 675 | 784 | 1266 | Fü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. | |
5 | Lianna | grün | 26 | 770 | schnell | 744 | 736 | 1248 | Füge dem Ziel 512% Schaden zu. | |
3 | Azar | rot | 8 | 444 | schnell | 493 | 413 | 651 | 280% Schaden an Einzel Ziel & reduziert Mana um 25% | |
3 | Nashgar | rot | 8 | 443 | schnell | 514 | 366 | 684 | 290% Schaden an Einzel Ziel + 120 Schaden für 6 Runden | |
4 | Colen | rot | 15 | 643 | langsam | 728 | 537 | 1094 | 180% Schaden an alle + 320 Schaden für 6 Runden | |
4 | Sturmfang | rot | 15 | 644 | mittel | 588 | 711 | 1107 | Heilt alle um 27% + 48% mehr Angriff für 6 Runden | |
5 | Elena | rot | 26 | 753 | langsam | 809 | 578 | 1312 | Verursache 202% Schaden an alle Gegner Du und umliegende Helden führen 5 Züge lang Gegenangriffe mit 125% des erlittenen Schsdens aus. | |
5 | Khagan | rot | 26 | 757 | langsam | 710 | 642 | 1458 | Fü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. | |
3 | Balthazar | violett | 8 | 442 | schnell | 483 | 422 | 648 | 335% Einzelangriff | |
3 | Renfeld | violett | 8 | 445 | mittel | 488 | 398 | 700 | 215% Einzelangriff und klaut etwas Leben zurück | |
4 | Rigard | violett | 15 | 644 | mittel | 595 | 673 | 1166 | 42% Gesundheit für alle Helden, heilt negative Status. | |
4 | Zypran | violett | 15 | 642 | mittel | 563 | 605 | 1362 | Du und benachbarte Helden führen 5 Züge lang Gegenangriffe mit 11% des erlittenen Schadens aus. | |
5 | Obakan | violett | 26 | 766 | schnell | 777 | 638 | 1328 | Fü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. | |
5 | Sartana | violett | 26 | 694 | schnell | 694 | 700 | 1382 | Füge dem Ziel 452% Schaden zu. Das Ziel erleidet 294 Schaden über 6 Züge. |
modFlashWindow (Titelleiste eines Formulares blinken lassen)
Option Compare Database
Option Explicit
Declare Function FlashWindow Lib „user32“ (ByVal hwnd As Long, ByVal bInvert As Long) As Long
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
modSubs (Löschbestätigung selbstgemacht)
Option Compare Database
Global Const vbYesNo = 4, vbQuestion = 32, vbYes = 6, vbNo = 7
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