> aber bei ReadPreferenceString() wird ja auch ein "Notfalls"-parameter angegeben, falls die Prefs nicht gefunden werden können.
aber trotzdem brichst du mit nem msgreq ab, wenn die prefs nicht da ist, du Künstler!
> wo zum Teufel lade ich da etwas zweimal?
sprite #1 und #3 lädst du aus dem selben file.
hier ist mein testcode:
- ersatz-routine fürs sprite-laden eingebunden
- prefs-loader auskommentiert
- clearscreen ergänzt
-> funzt
Code: Alles auswählen
;-Initialisierung:
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0 Or InitSound() = 0
MessageBox_(#Null,"Eine oder mehrere Libraries für das Programm"+Chr(13)+"Aimer v1.00 konnten nicht initialisiert werden!"+Chr(13)+"Neuinstallation des Programmes könnte das Problem beheben.","Fehler beim Initialisieren",#MB_OK | #MB_ICONSTOP)
End
EndIf
;KONSTANTEN
#NoAction = 0
#Released = 1
#Clicked = 2
#Dragged = 3
Define MLB.l ; Mouse Left Button
Define MRB.l ; Mouse Right Button
;VARIABLEN
Global rand_backgrnd.b
Global released
Global MouseX, MouseY
Global ZielX, ZielY
Global speed
Global Console, Cheat ;Die kommen dann nachher zum Einsatz
Global WType.s
Global ChosenGun
WType.s = ""
Cheat = #False
ShotsLeft = Magazine
speed = 1
;-STRUKTUREN
Structure Weapons
Name.s
Magazine.b
ShootSound.s
DrySound.s
MuniSprite.s
TickShot.b
TickDry.b
TickReload.b
EndStructure
Select ProgramParameter()
Case "/SETTINGS"
If RunProgram("startmgr.exe")
End
Else
MessageBox_(#Null,"startmgr.exe kann nicht gefunden werden!"+Chr(10)+"Neuinstallation könnte den Fehler beheben","Fehler",#MB_OK | #MB_ICONERROR | #MB_DEFBUTTON1)
End
EndIf
Case "/CONSOLE"
Console = #True ;ebenfalls für nachher
EndSelect
width = 1024 : height = 768 : depth = 32
;-Vorbereitung:
; If OpenPreferences("settings.prefs")
; width = Val(ReadPreferenceString("ScreenWidth","1024"))
; height = Val(ReadPreferenceString("ScreenHeight","768"))
; depth = Val(ReadPreferenceString("Depth","32"))
; Else
; MessageBox_(#Null,"settings.prefs kann nicht gefunden werden!"+Chr(10)+"Neuinstallation könnte den Fehler beheben","Fehler",#MB_OK | #MB_ICONERROR | #MB_DEFBUTTON1)
; End
; EndIf
If OpenScreen(width,height,depth,"Aimer v1.00") = 0
MessageBox_(#Null,"Es konnte kein "+Str(width)+"x"+Str(height)+"x"+Str(depth)+" Bildschirm erstellt werden!","Fehler",#MB_OK | #MB_ICONERROR | #MB_DEFBUTTON1)
End
EndIf
rand_backgrnd = Random(3)
rand_backgrnd = rand_backgrnd + 1
fontID = LoadFont(100,"Arial",12,#PB_Font_Bold)
Procedure ALoadSprite( Nr.l, Name.s )
CreateSprite( Nr, 192,192 )
StartDrawing(SpriteOutput(Nr))
Box( 0,0, 192,192, $FF00FF)
For n=0 To 15
Line( n, 0, 192, 192, $FFFF00 )
Line( 0, n, 192, 192, $FFFF00 )
Line( n, 191-0, 192,-192, $FFFF00 )
Line( 0, 191-n, 192,-192, $FFFF00 )
Next
DrawText(0,0,Name)
StopDrawing()
EndProcedure
Global Dim Guns.Weapons(2)
;PUMPGUN SETTINGS
Guns(0)\Name = "Pump"
Guns(0)\Magazine = 8
Guns(0)\TickShot = 10
Guns(0)\TickDry = 2
Guns(0)\TickReload = 17
;AK74 SETTINGS
Guns(1)\Name = "AK74"
Guns(1)\Magazine = 30
Guns(1)\TickShot = 2
Guns(1)\TickDry = 3
Guns(1)\TickReload = 23
;GLOCK 19 SETTINGS
Guns(2)\Name = "Glock"
Guns(2)\Magazine = 30
Guns(2)\TickShot = 7
Guns(2)\TickDry = 3
Guns(2)\TickReload = 10
ALoadSprite(1,"data\gfx\ak74thm.bmp");
TransparentSpriteColor(1,RGB(255,0,255));
ALoadSprite(2,"data\gfx\glock19thm.bmp");
TransparentSpriteColor(2,RGB(255,0,255));
ALoadSprite(3,"data\gfx\ak74thm.bmp");
TransparentSpriteColor(3,RGB(255,0,255));
ALoadSprite(012,"data\gfx\mouse.bmp")
TransparentSpriteColor(012,RGB(255,0,255));
cont = 0
;Problemschleife:
Repeat
ExamineKeyboard()
ExamineMouse()
MouseX = MouseX() : MouseY = MouseY()
ClearScreen(0)
DisplayTransparentSprite(1,0,0);
DisplayTransparentSprite(2,500,200);
DisplayTransparentSprite(3,800,400);
DisplayTransparentSprite(012,MouseX,MouseY);
If MouseButton(#PB_MouseButton_Left)
WType.s = "ak74"
ChosenGun = 0
cont = 1
EndIf
If MouseButton(#PB_MouseButton_Right)
WType.s = "glock"
ChosenGun = 2
cont = 1
EndIf
If MouseButton(#PB_MouseButton_Middle)
WType.s = "pump"
ChosenGun = 1
cont = 1
EndIf
;Hat irgendwas mit SpritePixelCollision() nicht gefunzt, deshalb vorübergehend auf Linksklick, Rechts- und Mittelklick geändert.
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(fontID)
DrawText(5,20,Str(coll),RGB(255,255,255))
DrawText(5,5,"ESC - Beenden" )
StopDrawing()
FlipBuffers()
If KeyboardPushed(#PB_Key_Escape)
End
EndIf
Until cont <> 0