Also jetzt hab ich mal eine Frage Welchen unterschied macht es ob man nun einen Launcher für den Browser schreibt der dann die History löscht oder eben ein Batchscript verwendet dass dann die History löscht???
Ich weis nicht also entweder hab ich nen gewaltigen Denkfehler oder ihr wisst mehr als ich...
LG
Chrsitoph
Beiträge von BinDannMalWeg
-
-
Hey ich hab mir mal die Mühe gemacht, dieses doch etwas sehr lange Script für dich zu scripten...
Spoiler anzeigen
Achtung das Script ist wirklich seeeeeehr lang!
Spoiler anzeigen
NICHT
[autoit]If RunWait(@ScriptDir&'\iron.exe') Then FileDelete(@ScriptDir&'\history.txt')
[/autoit]
LG Christoph54 -
Vielleicht liegt es einfach daran, dass der befehl 'java' nur in die Commandline eingebettet ist und Shellexecute() deshalb den Befehl nich findet...?!
Versuch es doch bitte mal mit _RunDOS() okay?LG
Christoph -
Du musst die Buttons usw. natürlich Global deklarieren...
-
hier ist mal meiner:
Spoiler anzeigen
[Blockierte Grafik: http://image-upload.de/image/7OwFXS/67efcfc858.jpg]
-
Sorry aber das klingt für mich viel zu sehr nach einem Virus!
1.) Wenn du für sowas erst hier im Forum fragen musst lass es gleich sein, denn dann reichen deine Fähigkeiten bei weitem nicht aus, um so etwas komplexes wie einen Virus zu Programmieren! Außerdem kann niemand hier im Forum oder auch sonst auf der ganzen Welt noch mehr Viren/Würmer usw. gebrauchen!
2.) Wird so etwas hier im Forum nicht unterstützt! Also lass es, such dir sonst wo Hilfe, oder nenne einen guten Grund bei dem dein oben geschildertes Vorgehen nützlich sein soll...
Vote4Close -
Raupi : Ich bin genau ser selben Meinung wie du...
@Tsuki-Namida: Ich glaube du solltest dir mal den Befehl HotkeySet() ansehen, er dürfte genau das tun, was du willst... -
Erstmal cooles erstes Spiel!
Hab es aus Langeweile mal in GDI+ umgesetzt...
Es ist zwar nur für einen Spieler, aber es ist so aufgebaut, dass man in ca. 10 Minuten auch den Multiplayer einbauen könnte...
Wenn ihr es ausprobieren wollt, brauch ihr die Bilder aus dem Anhang...Spoiler anzeigen
[autoit]#include <GDIPLus.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Misc.au3>
#include <GuiConstants.au3>
Global $Width = 400, $Height = 400, $BackgroundColor = '0xFF0932D9', $BackBuffer, $Speed = 3, $Food[2] = [50, 50], $Player[4] = [200, 200, 0, 0], $Score = 0, $GraphicMode = True
Opt('GUIOnEventMode', 1)
$Gui = GUICreate('Fishgame Cover', $Width, $Height)
GUISetBkColor('0x' & StringTrimLeft($BackgroundColor, 4))
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
_GDIPlus_Startup()
$GDI = _GDIPlus_GraphicsCreateFromHWND($Gui)
$Bitmap = _GDIPlus_BitmapCreateFromGraphics($Width, $Height, $GDI)
$BackBuffer = _GDIPlus_ImageGetGraphicsContext($Bitmap)
$BackgroundBrush = _GDIPlus_BrushCreateSolid($BackgroundColor)
$FoodBrush = _GDIPlus_BrushCreateSolid(0xFF87E01B)
$WhitePen = _GDIPlus_PenCreate(0xFFFFFFFF)
$RechtsZu = _GDIPlus_ImageLoadFromFile('rz.png')
$LinksZu = _GDIPlus_ImageLoadFromFile('lz.png')
$RechtsAuf = _GDIPlus_ImageLoadFromFile('ra.png')
$LinksAuf = _GDIPlus_ImageLoadFromFile('la.png')
$FoodImage = _GDIPlus_ImageLoadFromFile('f.png')
GUISetState()
HotKeySet('g', '_ChangeGM')
_GenFood()While Sleep(5)
[/autoit] [autoit][/autoit] [autoit]
If _IsPressed(25) Then ; Links
If $Player[2] = 1 Then
$Player[2] = 0 ; Blickrichtung ändern...
Else
$StepStart = $Player[0] - 1
$StepEnd = $Player[0] - $Speed
For $i = $StepStart To $StepEnd Step -1
If $i - 20 < 0 Then ExitLoop
_WonAndMouth()
$Player[0] -= 1
Next
EndIf
EndIf
If _IsPressed(26) Then ; Hoch
$StepStart = $Player[1] - 1
$StepEnd = $Player[1] - $Speed
For $i = $StepStart To $StepEnd Step -1
If $i - 10 < 0 Then ExitLoop
_WonAndMouth()
$Player[1] -= 1
Next
EndIf
If _IsPressed(27) Then ; Rechts
If $Player[2] = 0 Then
$Player[2] = 1 ; Blickrichtung ändern...
Else
$StepStart = $Player[0] + 1
$StepEnd = $Player[0] + $Speed
For $i = $StepStart To $StepEnd Step +1
If $i + 20 > $Width Then ExitLoop
_WonAndMouth()
$Player[0] += 1
Next
EndIf
EndIf
If _IsPressed(28) Then ; Runter
$StepStart = $Player[1] + 1
$StepEnd = $Player[1] + $Speed
For $i = $StepStart To $StepEnd Step +1
If $i + 10 > $Height Then ExitLoop
_WonAndMouth()
$Player[1] += 1
Next
EndIf
_GDIPlus_GraphicsFillRect($BackBuffer, 0, 0, $Width, $Height, $BackgroundBrush) ; Alles mit der Hintergrundfarbe übermalen...
_GDIPlus_GraphicsDrawString($BackBuffer, 'Drücken sie G um den Grafikmodus zu deaktivieren!', 45, 350)
_DrawFood($Food[0], $Food[1])
_DrawFish($Player)
_GDIPlus_GraphicsDrawString($BackBuffer, 'Score: ' & $Score, 2, 2)
_GDIPlus_GraphicsDrawImageRect($GDI, $Bitmap, 0, 0, $Width, $Height) ; Backbuffer auf GUI zeichnen...
WEndFunc _DrawFish($Array)
[/autoit] [autoit][/autoit] [autoit]
If $GraphicMode Then
If $Array[2] = 0 Then
If $Array[3] = 0 Then
_GDIPlus_GraphicsDrawImageRect($BackBuffer, $LinksZu, $Array[0] - 22, $Array[1] - 16, 45, 35)
Else
_GDIPlus_GraphicsDrawImageRect($BackBuffer, $LinksAuf, $Array[0] - 22, $Array[1] - 16, 45, 35)
EndIf
Else
If $Array[3] = 0 Then
_GDIPlus_GraphicsDrawImageRect($BackBuffer, $RechtsZu, $Array[0] - 22, $Array[1] - 16, 45, 35)
Else
_GDIPlus_GraphicsDrawImageRect($BackBuffer, $RechtsAuf, $Array[0] - 22, $Array[1] - 16, 45, 35)
EndIf
EndIf
Else
_GDIPlus_GraphicsDrawRect($BackBuffer, $Array[0] - 10, $Array[1] - 10, 20, 20)
If $Array[2] = 0 Then
_GDIPlus_GraphicsFillEllipse($BackBuffer, $Array[0] - 20, $Array[1] - 10, 20, 20)
_GDIPlus_GraphicsDrawEllipse($BackBuffer, $Array[0], $Array[1] - 10, 20, 20)
If $Array[3] = 0 Then
_GDIPlus_GraphicsDrawLine($BackBuffer, $Array[0] - 20, $Array[1], $Array[0] - 10, $Array[1], $WhitePen)
Else
_GDIPlus_GraphicsDrawLine($BackBuffer, $Array[0] - 20, $Array[1] - 5, $Array[0] - 10, $Array[1], $WhitePen)
_GDIPlus_GraphicsDrawLine($BackBuffer, $Array[0] - 20, $Array[1] + 5, $Array[0] - 10, $Array[1], $WhitePen)
EndIf
Else
_GDIPlus_GraphicsDrawEllipse($BackBuffer, $Array[0] - 20, $Array[1] - 10, 20, 20)
_GDIPlus_GraphicsFillEllipse($BackBuffer, $Array[0], $Array[1] - 10, 20, 20)
If $Array[3] = 0 Then
_GDIPlus_GraphicsDrawLine($BackBuffer, $Array[0] + 20, $Array[1], $Array[0] + 10, $Array[1], $WhitePen)
Else
_GDIPlus_GraphicsDrawLine($BackBuffer, $Array[0] + 20, $Array[1] - 5, $Array[0] + 10, $Array[1], $WhitePen)
_GDIPlus_GraphicsDrawLine($BackBuffer, $Array[0] + 20, $Array[1] + 5, $Array[0] + 10, $Array[1], $WhitePen)
EndIf
EndIf
EndIf
EndFunc ;==>_DrawFishFunc _DrawFood($X, $Y)
[/autoit] [autoit][/autoit] [autoit]
If $GraphicMode Then
_GDIPlus_GraphicsDrawImageRect($BackBuffer, $FoodImage, $X - 5, $Y - 5, 10, 10)
Else
_GDIPlus_GraphicsFillEllipse($BackBuffer, $X - 5, $Y - 5, 10, 10, $FoodBrush)
_GDIPlus_GraphicsDrawEllipse($BackBuffer, $X - 10, $Y - 10, 20, 20, $WhitePen)
EndIf
EndFunc ;==>_DrawFoodFunc _GenFood()
[/autoit] [autoit][/autoit] [autoit]
Dim $New[2]
For $i = 0 To 1
While 1
$New[$i] = Random(5, $Width - 5, 1) ; da unser Fenster ein Quadrat ist, könne wir hier mit $Width rechnen...
If $New[$i] <> $Food[$i] Then
If $i = 1 Then
If Not _PointUnderPlayer($New, $Player) Then ; Wir überprüfen ob das neue 'Essen' unter dem Spieler liegt...
ExitLoop
EndIf
Else
ExitLoop
EndIf
EndIf
WEnd
Next
$Food[0] = $New[0]
$Food[1] = $New[1]
EndFunc ;==>_GenFoodFunc _PointUnderPlayer($Point, $Fish)
[/autoit] [autoit][/autoit] [autoit]
$Return = False
If _PointInCircle($Point[0], $Point[1], $Fish[0] - 20, $Fish[1] - 10, 20) Then $Return = True ; linker Kreis
If _PointInCircle($Point[0], $Point[1], $Fish[0], $Fish[1] - 10, 20) Then $Return = True ; rechter Kreis
If _PointInRect($Point[0], $Point[1], $Fish[0] - 10, $Fish[1] - 10, 20, 20) Then $Return = True ; Quadrat in der Mitte
Return $Return
EndFunc ;==>_PointUnderPlayerFunc _WonAndMouth()
[/autoit] [autoit][/autoit] [autoit]
If $Player[2] = 0 Then
If _PointInCircle($Food[0], $Food[1], $Player[0] - 10, $Player[1], 10) Then ; Wenn 'Essen' im 'Mund'...
_GenFood()
$Score += 5
EndIf
If _CirclesCollision($Food[0], $Food[1], 10, $Player[0] - 10, $Player[1], 10) Then ; Wenn 'Essen' vor oder im 'Mund' dann...
$Player[3] = 1 ; Mund auf
Else
$Player[3] = 0 ; Mund zu
EndIf
Else
If _PointInCircle($Food[0], $Food[1], $Player[0] + 10, $Player[1], 10) Then ; Wenn 'Essen' im 'Mund'...
_GenFood()
$Score += 5
EndIf
If _CirclesCollision($Food[0], $Food[1], 10, $Player[0] + 10, $Player[1], 10) Then ; Wenn 'Essen' vor oder im 'Mund' dann...
$Player[3] = 1 ; Mund auf
Else
$Player[3] = 0 ; Mund zu
EndIf
EndIf
EndFunc ;==>_WonAndMouthFunc _ChangeGM()
[/autoit] [autoit][/autoit] [autoit]
If $GraphicMode Then
$GraphicMode = False
Else
$GraphicMode = True
EndIf
EndFunc ;==>_ChangeGMFunc _End()
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_ImageDispose($RechtsAuf)
_GDIPlus_ImageDispose($RechtsZu)
_GDIPlus_ImageDispose($LinksAuf)
_GDIPlus_ImageDispose($LinksZu)
_GDIPlus_ImageDispose($FoodImage)
_GDIPlus_BrushDispose($FoodBrush)
_GDIPlus_BrushDispose($BackgroundBrush)
_GDIPlus_PenDispose($WhitePen)
_GDIPlus_ImageDispose($Bitmap)
_GDIPlus_GraphicsDispose($GDI)
_GDIPlus_Shutdown()
GUIDelete($Gui)
Exit
EndFunc ;==>_End; Funktionen für die Kollisionsberechnung:
[/autoit] [autoit][/autoit] [autoit]
Func _PointInCircle($PointX, $PointY, $CircleX, $CircleY, $CircleR)
If _Distance($PointX, $PointY, $CircleX, $CircleY) < $CircleR Then
Return True
Else
Return False
EndIf
EndFunc ;==>_PointInCircleFunc _PointInRect($PointX, $PointY, $RectX, $RectY, $RectWidth, $RectHeight)
[/autoit] [autoit][/autoit] [autoit]
$Return = True
If $PointX < $RectX Then $Return = False
If $PointX > ($RectX + $RectWidth) Then $Return = False
If $PointY < $RectY Then $Return = False
If $PointY > ($RectY + $RectHeight) Then $Return = False
Return $Return
EndFunc ;==>_PointInRectFunc _CircleInRect($CircleX, $CircleY, $CircleR, $RectX, $RectY, $RectHeight, $RectWidth)
[/autoit] [autoit][/autoit] [autoit]
$Return = True
If ($CircleX - $CircleR) < $RectX Then $Return = False
If ($CircleX + $CircleR) > ($RectX + $RectHeight) Then $Return = False
If ($CircleY - $CircleR) < $RectY Then $Return = False
If ($CircleY + $CircleR) > ($RectY + $RectWidth) Then $Return = False
Return $Return
EndFunc ;==>_CircleInRectFunc _CirclesCollision($Circle1X, $Circle1Y, $Circle1R, $Circle2X, $Circle2Y, $Circle2R)
[/autoit] [autoit][/autoit] [autoit]
If _Distance($Circle1X, $Circle1Y, $Circle2X, $Circle2Y) < ($Circle1R + $Circle2R) Then
$Return = True
Else
$Return = False
EndIf
Return $Return
EndFunc ;==>_CirclesCollisionFunc _Distance($X1, $Y1, $X2, $Y2)
[/autoit]
Return Sqrt(($X2 - $X1) ^ 2 + ($Y1 - $Y2) ^ 2)
EndFunc ;==>_DistanceDrückt auch mal die Taste G
LG
Chirstoph -
Also ich würde das so machen, dass man im Script einen Standard-Code vorgibt, der dann mithilfe des Masterpasswortes
verschlüsselt und abgespeichert wird. Wenn nun beim Programmstart ein Passwort eingegeben wurde, entschlüsseln wir
einfach, den verschlüsselten Standard-Code aus der Datei, mithilfe des neu eingegebenen Passwort: Wenn das Ergebnis
dann dem Standard-Code entspricht, ist das Masterpasswort richtig...
So entfällt die ganze Problematik mit den Hash-werten und man hat bei entsprechender Verschlüsselung KEINE Chance
das Materpasswort zu bruteforcen...
Natürlich muss der 'Standard-Code' geheim bleiben oder zum Beispiel Computer spezifisch berechnet werden, damit man
nicht einfach eine neue Passwortdatei generieren kann, wenn man den Standard-Code kennt... -
Hey Ilse,
da reicht doch wirklich einmal googeln und man kennt die Bedeutung:
& ist im HTML-Quellcode als Platzhalter für ein '&' Zeichen gedacht, da das '&' schon eine andere Bedeutung für den HTML Parser hat als zum Beispiel a,b oder c...
Das Einzige was du tun musst, ist nun alle diese Sondercodes im Quellcode mit ihren richtigen Zeichen zu ersetzen.LG Christoph54
-
Hey Community,
vor kurzem bin ich in diesem Forum auf Hauke`s 2D RPG gestoßen und weil es mir so gut gefallen
hab ich beschlossen auch ein kleines RPG zu schreiben...
Ich muss zugeben ich habe mir sein Script nicht wirklich angeschaut... was aber vor allem daran liegt,
dass es mir viel zu viel Spaß macht, alles selbst zu scripten. Da ich bis her eigentlich noch nie mit
GDI+ gearbeitet habe, sind wahrscheinlich noch einige Dinge im Script vorhanden, die mann besser
oder schneller machen könnte. Falls euch also was in Auge fällt, sagt es mir doch biite...
Momentan besteht das eigentliche Spiel aus ca. 260 Zeilen aber es werden höchst wahrscheinlich bald
mehr werden... Hier könnt ihr schon mal ein paar Bilder aus dem Spiel sehen:
http://www.imagebanana.com/view/njhbl2op/rpg.gif
Natürlich hat mein Spiel auch einen eigenen Mapdesigner. Er unterstützt zwar noch nicht alle Funktionen,
die von der Grafik-Engine im Spiel interpretiert werden können, aber die Standard Funktionen laufen schon rund...
http://www.imagebanana.com/view/6rzwy9z0/md.gif
Zu den Grafiken im Spiel will ich nur noch sagen, dass sie auf meiner Prioritätenliste gaaaanz weit unten aufgelistet sind...
Genauso wie auch die Animationen für zum Beispiel das Laufen, oder die Drehung des Chars.
Was für die nächste Version geplant ist:Spoiler anzeigen
- Verschiedene Player
- Pferde/Drachen zum Reiten
- Items die man aufsammeln/ablegen kann
---> Inventar
- Werkzeuge die man in die Hand nehmen kann
- Bergbau/Ernten usw.
- Portrollen
- abspeicherbare Spielstände
---> zB. Schiffe bleiben dann auch da wo man sie abstellt...
- Neue Gui für das Game:
- Inventar
- Leiste für Skills usw.
- Anzeigen für Level/HP usw. für später
- Neue Grafiken... (Minen, Häuser,Neue Gebiete, Nebel,usw.)
- Mehrere komplett neue Maps...
und alles was mir beim Scripten noch so einfällt...
Naja wenn ihr Lust habt könnt ihr euch mein Script ja mal ansehen, auch wenn es momentan noch nicht sooo viel zu spielen gibt...
Alles was ihr braucht findet sich im Anhang...LG
Christoph54PS: Ja ich bin neu hier, aber keines Wegs unerfahren mit Autoit... Nur bisher war ich eigentlich ausschließlich im anderen/dunklen Autoit-Forum aktiv...
-
Du weißt aber, dass 127.0.0.1 bis 127.0.0.255 nur dein eigener PC ist?
Warum schreibst du nicht ein kleines Exta-Script, dass du mit der IP als Parameter aus deinem Main-Script ausrufst?!
Dieses Script führt dann den Ping durch und schreibt das Ergebnis in eine Datei... -
Hey teamnoobPDB,
ich glaube du hast immer noch nicht verstanden was stayawayknight dir sagen will...
Er bemängelt die Art, wie dein Script aufgebaut ist und nicht, dass manche Funktionen noch fehlen.
Da ich gerade eh nichts zutun hatte, habe ich mal schnell meine Version von deinem Adventure geschreiben:Spoiler anzeigen
[autoit]#include <ButtonConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>$Gui = GUICreate("Adventure", 625, 443)
[/autoit] [autoit][/autoit] [autoit]
$Label = GUICtrlCreateLabel("Hallo und Herzlich Willkommen zum Text Adventure 1.1. Zum Spielen müssen nur die 3 Buttons gedrückt werden. In jedem Text bzw. in jedem Spielfortschritt wird erklärt was jeder Button bewirkt. Drücken sie den Start-Button um zu beginnen.", 104, 56, 460, 257)
$Button1 = GUICtrlCreateButton("1", 112, 328, 75, 25, 0)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button2 = GUICtrlCreateButton("2", 296, 328, 75, 25, 0)
GUICtrlSetState(-1, $GUI_DISABLE)
$Button3 = GUICtrlCreateButton("3", 480, 328, 75, 25, 0)
GUICtrlSetState(-1, $GUI_DISABLE)
$ButtonStart = GUICtrlCreateButton("Start", 296, 384, 75, 25, 0)
$ButtonInfo = GUICtrlCreateButton("Info", 590, 408, 25, 25, 0)
GUISetState(@SW_SHOW)
Global $ResFile = @ScriptDir & '\game.res', $Level = IniRead($ResFile, 'INFO', 'CurrentLevelID', 1), $EditMode = TrueWhile 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_Choose(1)
Case $Button2
_Choose(2)
Case $Button3
_Choose(3)
Case $ButtonStart
_Load()
Case $ButtonInfo
_Info()
EndSwitch
WEndFunc _Choose($Number)
[/autoit] [autoit][/autoit] [autoit]
$NextLevelID = IniRead($ResFile, $Level, 'Answer' & $Number, 0)
If $NextLevelID <> '0' Then
$Level = $NextLevelID
$Text = IniRead($ResFile, $NextLevelID, 'TEXT', 'Dieses Level existiert momentan noch nicht!')
GUICtrlSetData($Label, $Text)
IniWrite($ResFile, 'INFO', 'CurrentLevelID', $NextLevelID)
ElseIf $EditMode = True Then
If MsgBox(64 + 4, 'Adventure-Editor', 'Für diese Auswahl wurde noch keine Weiterleitung eingerichtet!' & @CRLF & 'Möchten sie ein neues Level erstellen?') = 6 Then
$NewText = InputBox('Adventure-Editor', 'Bitte gib den Text für das neue Level ein:', '', '', 300, 125)
If Not @error And $NewText <> '' Then
$NewLevelID = Number(IniRead($ResFile, 'INFO', 'COUNT', 0)) + 1
IniWrite($ResFile, 'INFO', 'COUNT', $NewLevelID)
IniWrite($ResFile, $NewLevelID, 'TEXT', $NewText)
IniWrite($ResFile, $Level, 'Answer' & $Number, $NewLevelID)
EndIf
EndIf
EndIf
EndFunc ;==>_ChooseFunc _Load()
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState($Button1, $GUI_ENABLE)
GUICtrlSetState($Button2, $GUI_ENABLE)
GUICtrlSetState($Button3, $GUI_ENABLE)
GUICtrlSetState($ButtonStart, $GUI_DISABLE)
GUICtrlSetData($Label, IniRead($ResFile, $Level, 'TEXT', 'Error'))
EndFunc ;==>_LoadFunc _Info()
[/autoit]
MsgBox(0, '', 'Hier gibts dann noch Infos...')
EndFunc ;==>_Info
Und hier noch die 'Game.res' die das Script benötigt:Spoiler anzeigen
Code[INFO] CurrentLevelID=1 COUNT=1 [1] TEXT=Du bist auf einer einsamen Insel und weist nicht wo du bist. Du versuchst einen Ausweg zu finden. Drücke 1 um die Insel zu erkunden, drücke 2 um auf Hilfe zu warten oder drücke 3 um von der Insel zu schwimmen, mit hilfen eines Floßes was du dir aus Bäumen der Insel baust.
In meiner Version, habe ich einen kleinen Game-Editor mit eingebaut...Christoph54