Ja aber wenn man spawnt grad oder gethere oder tutorial was dann?
Ja die Liste hab ich schon geshen, helfen die Sachen immernoch, weil fidne die dinge sind schon ziemlich alt.
MFG
Ja aber wenn man spawnt grad oder gethere oder tutorial was dann?
Ja die Liste hab ich schon geshen, helfen die Sachen immernoch, weil fidne die dinge sind schon ziemlich alt.
MFG
Hey,
und zwar wollte ich mal fragen ob jemand schon etwas gegen Crash, Airbreak, Teleport, Carporten Hack hat.
Bitte auch Link dazu. Oder kleinen Denkanstups.
MFG
gut, danke an alle die geantwortet haben, ich hab mein Fehler gefunden, habe die Variable erst darunter + genommen und deswegen war wohl der Timer schneller
MFG
Hallo Com,
wollte fragen welches AntiMoneyHack System am besten ist, ich hab das mit der Variable, nur das Problem ist das die scheinbar nicht richtig mitkommt, weil ich werde gekickt, wenn ich mir Geld gebe, obwohl die Variable das Geld dazu zählt. Ich habs so:
GivePlayerCash(...
GeldCheck[playerid] += ...
Kann das sein, weil das darunter ist?
MFG
Vor der Bank ist ein Teil, wenn man das kapput fährt liegt dort Geld.
MFG
Das MoneyUpdate ist doch unnötig, weil man muss ja eh bei GivePlayerMoney die Variable erhöhen.
Habe das auch mit Variable gemacht nur da hats bissel rumgebuggt. Außerdem gibt es noch Ingame Dinge wo er Geld bekommt, z.B. neben Bank LS den schalter oder was das da sein soll, wenn man den kapput macht bekommt man auch Geld. Das muss man berücksichtigen.
MFG
Hallo Com,
iwie funktioniert mein AntiMoneyHack nicht. Kann mir jemand helfen.
public OnPlayerMoneyHack(playerid)
{
new diAM[MAX_PLAYERS];
diAM[playerid] = (GetPlayerMoney(playerid)-GetPVarInt(playerid,"Geld"));
if(GetPVarInt(playerid,"Geld") != GetPlayerMoney(playerid))
{
if(diAM[playerid] > 2000)
{
diAM[playerid] = 0;
ResetPlayerMoney(playerid);
GivePlayerCash(playerid,GetPVarInt(playerid,"Geld"));
new string[150];
format(string,150,"[Money Hack] %s hat %d$ gecheatet und wurde gekickt.",SpielerName(playerid),diAM);
SendClientMessageToAll(ROT,string);
//Kick(playerid);
}
}
return 1;
}
MFG
Das klingt plausibel. Ich werde das am Wochenende mal selbst ausprobieren, ob dies tatsächlich der Fall ist. Wenn das so ist, dann stellt das natürlich alles in den Schatten.
Wie kann ich das Problem lösen, hab alle autos in verschiedenen variablen z.B. armycar, präsicar usw woll ich dann bei OnVehicle Death die Schleife machen und alle durchgehen?
MFG
Zitat von »KING136«
unter OnVehicleDeath so?
Nein!! Bloß nicht! Wenn dein Auto "stirbt" dann spawnt es ja in aller Regel neu, sofern du es nicht Destroyst. Also wirklich NUR bei DestroyVehicle zu -1 setzen.
ich destroy es ja nicht z.B. fährst du gg eine Wand dann ist dein Fahrzeug kapput.
MFG
DestroyVehicle(VehicleVariable);
VehicleVariable = -1;
Dann verhinderst du den obig beschriebenen Fehler.
unter OnVehicleDeath so?
for(new i=0; i<sizeof(armycar); i++)
{
if(vehicleid == armycar[i])
{
armycar[i] = -1;
}
}
MFG
wie soll ich das bei DestroyVehicle machen?
MFG
Alles anzeigennew PräsiAuto[5];
PräsiAuto[0] = CreateVehicle(..
PräsiAuto[1] = CreateVehicle(..
PräsiAuto[2] = CreateVehicle(..
PräsiAuto[3] = CreateVehicle(..
PräsiAuto[4] = CreateVehicle(..
Dann kannst du gemütlich per Schleife alle PräsiAutos steuern.
Hier ein hilfreicher Thread für dich.
Ich such mal das Tutorial dazu
So hab ich das, soll ich dann bei OnVehicleDeath alle fahrzeuge mit schleifen durchgehen? und dann die richtige -1 setzen?
MFG
Soll ich dann so arbeiten armycar[0][ModelID]=?
ModelIDs sind ja sonst ab und zu gleich z.B. Präsi Autos kann man ja auch im Autohaus kaufen
MFG
Wie kann ich die Variable -1 setzen, weiß ja nicht ob das ein armycar ist oder pdcar.
stock LoadFraktionAutoBeiDeath(fID,fa)
{
new fname50[50],Datei[100];
switch(fID)
{
case 6:{fname50=fraktname6;}
case 8:{fname50=fraktname8;}
case 9:{fname50=fraktname9;}
case 10:{fname50=fraktname10;}
case 11:{fname50=fraktname11;}
case 12:{fname50=fraktname12;}
case 13:{fname50=fraktname13;}
case 14:{fname50=fraktname14;}
case 15:{fname50=fraktname15;}
case 16:{fname50=fraktname16;}
}
format(Datei,100,"/FraktionAuto/%s_Auto_%d.ini",fname50,fa);
if(dini_Exists(Datei))
{
faInfo[fID][fa][Model] = dini_Int(Datei,"Model");
faInfo[fID][fa][HP] = dini_Int(Datei,"HP");
dini_FloatSet(Datei,"KM",KMAnzeigeF[FraktioncarvID[fID][fa]]);
faInfo[fID][fa][KM] = dini_Int(Datei,"KM");
faInfo[fID][fa][Tank] = dini_Int(Datei,"Tank");
faInfo[fID][fa][PosX] = dini_Int(Datei,"PosX");
faInfo[fID][fa][PosY] = dini_Int(Datei,"PosY");
faInfo[fID][fa][PosZ] = dini_Int(Datei,"PosZ");
faInfo[fID][fa][PosA] = dini_Int(Datei,"PosA");
faInfo[fID][fa][Farbe1] = dini_Int(Datei,"Farbe1");
faInfo[fID][fa][Farbe2] = dini_Int(Datei,"Farbe2");
faInfo[fID][fa][Spoiler] = dini_Int(Datei,"Spoiler");
faInfo[fID][fa][Wheels] = dini_Int(Datei,"Wheels");
faInfo[fID][fa][Nitro] = dini_Int(Datei,"Nitro");
faInfo[fID][fa][Roof] = dini_Int(Datei,"Roof");
faInfo[fID][fa][Hood] = dini_Int(Datei,"Hood");
faInfo[fID][fa][Sideskirt] = dini_Int(Datei,"Sideskirt");
faInfo[fID][fa][Lamps] = dini_Int(Datei,"Lamps");
faInfo[fID][fa][Exhaust] = dini_Int(Datei,"Exhaust");
faInfo[fID][fa][Stereo] = dini_Int(Datei,"Stereo");
faInfo[fID][fa][Hydraulics] = dini_Int(Datei,"Hydraulics");
faInfo[fID][fa][VentRight] = dini_Int(Datei,"VentRight");
faInfo[fID][fa][VentLeft] = dini_Int(Datei,"VentLeft");
faInfo[fID][fa][FrontBumper] = dini_Int(Datei,"FrontBumper");
faInfo[fID][fa][RearBumper] = dini_Int(Datei,"RearBumper");
faInfo[fID][fa][Neon] = dini_Int(Datei,"Neon");
faInfo[fID][fa][Neon_Typ1] = dini_Int(Datei,"Neon_Typ1");
faInfo[fID][fa][Neon_Typ2] = dini_Int(Datei,"Neon_Typ2");
new vehicleid = FraktioncarvID[fID][fa];
new vID = CreateVehicle(dini_Int(Datei,"Model"),dini_Float(Datei,"PosX"),dini_Float(Datei,"PosY"),dini_Float(Datei,"PosZ"),dini_Float(Datei,"PosA"),dini_Int(Datei,"Farbe1"),dini_Int(Datei,"Farbe2"),0);
KMAnzeigeF[vID] = KMAnzeigeF[vehicleid];
Fraktioncar[vID] = fID; //fID
FraktioncarvID[fID][fa] = vID; // vID
FraktioncarMaxCar[vID] = fa; // NR von Fraktion Autos
SetVehicleNumberPlate(vID,dini_Get(Datei,"Nummernschild"));
if(faInfo[fID][fa][Neon] > 0)
{
faInfo[fID][fa][Neon_Obj0] = CreateObject(faInfo[fID][fa][Neon_Typ1],0,0,0,0,0,0,0);
faInfo[fID][fa][Neon_Obj1] = CreateObject(faInfo[fID][fa][Neon_Typ1],0,0,0,0,0,0,0);
AttachObjectToVehicle(faInfo[fID][fa][Neon_Obj0], FraktioncarvID[fID][fa], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(faInfo[fID][fa][Neon_Obj1], FraktioncarvID[fID][fa], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
if(faInfo[fID][fa][Neon_Typ2] > 0)
{
faInfo[fID][fa][Neon_Obj2] = CreateObject(faInfo[fID][fa][Neon_Typ2],0,0,0,0,0,0,0);
faInfo[fID][fa][Neon_Obj3] = CreateObject(faInfo[fID][fa][Neon_Typ2],0,0,0,0,0,0,0);
AttachObjectToVehicle(faInfo[fID][fa][Neon_Obj2], FraktioncarvID[fID][fa], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(faInfo[fID][fa][Neon_Obj3], FraktioncarvID[fID][fa], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
}
}
if(faInfo[fID][fa][HP] >= 250)
{
SetVehicleHealth(vID,faInfo[fID][fa][HP]);
}
else SetVehicleHealth(vID,1000.00);
if(faInfo[fID][fa][Farbe1] >= 0 || faInfo[fID][fa][Farbe2] >= 0)
{
ChangeVehicleColor(vID,faInfo[fID][fa][Farbe1],faInfo[fID][fa][Farbe2]);
}
if(faInfo[fID][fa][Spoiler] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Spoiler]);
}
if(faInfo[fID][fa][Hood] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Hood]);
}
if(faInfo[fID][fa][Roof] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Roof]);
}
if(faInfo[fID][fa][Sideskirt] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Sideskirt]);
}
if(faInfo[fID][fa][Lamps] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Lamps]);
}
if(faInfo[fID][fa][Nitro] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Nitro]);
}
if(faInfo[fID][fa][Exhaust] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Exhaust]);
}
if(faInfo[fID][fa][Wheels] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Wheels]);
}
if(faInfo[fID][fa][Stereo] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Stereo]);
}
if(faInfo[fID][fa][Hydraulics] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][Hydraulics]);
}
if(faInfo[fID][fa][FrontBumper] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][FrontBumper]);
}
if(faInfo[fID][fa][RearBumper] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][RearBumper]);
}
if(faInfo[fID][fa][VentRight] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][VentRight]);
}
if(faInfo[fID][fa][VentLeft] >= 0)
{
AddVehicleComponent(vID,faInfo[fID][fa][VentLeft]);
}
}
return 1;
}
stock LoadPrivatAuto(playerid,i)
{
new pName[MAX_PLAYER_NAME],Autodatei[150];
GetPlayerName(playerid,pName,sizeof(pName));
format(Autodatei,150,"/Auto/%s_Auto_%d.txt",pName,i);
if(dini_Exists(Autodatei))
{
new vehicleid = SpielercarvID[playerid][i];
Autos[playerid][i][Model] = dini_Int(Autodatei,"Model");
Autos[playerid][i][Tank] = dini_Int(Autodatei,"Tank");
Autos[playerid][i][HP] = dini_Int(Autodatei,"HP");
dini_FloatSet(Autodatei,"KM",KMAnzeigeF[vehicleid]);
Autos[playerid][i][KM] = dini_Int(Autodatei,"KM");
Autos[playerid][i][Farbe1] = dini_Int(Autodatei,"Farbe1");
Autos[playerid][i][Farbe2] = dini_Int(Autodatei,"Farbe2");
Autos[playerid][i][Paintjob] = dini_Int(Autodatei,"Paintjob");
format(Autos[playerid][i][Nummernschild],16,dini_Get(Autodatei,"Nummernschild"));
Autos[playerid][i][PosX] = dini_Int(Autodatei,"PosX");
Autos[playerid][i][PosY] = dini_Int(Autodatei,"PosY");
Autos[playerid][i][PosZ] = dini_Int(Autodatei,"PosZ");
Autos[playerid][i][PosA] = dini_Int(Autodatei,"PosA");
Autos[playerid][i][Abgeschlossen] = dini_Int(Autodatei,"Abgeschlossen");
Autos[playerid][i][Spoiler] = dini_Int(Autodatei,"Spoiler");
Autos[playerid][i][Wheels] = dini_Int(Autodatei,"Wheels");
Autos[playerid][i][Nitro] = dini_Int(Autodatei,"Nitro");
Autos[playerid][i][Roof] = dini_Int(Autodatei,"Roof");
Autos[playerid][i][Hood] = dini_Int(Autodatei,"Hood");
Autos[playerid][i][Sideskirt] = dini_Int(Autodatei,"Sideskirt");
Autos[playerid][i][Lamps] = dini_Int(Autodatei,"Lamps");
Autos[playerid][i][Exhaust] = dini_Int(Autodatei,"Exhaust");
Autos[playerid][i][Stereo] = dini_Int(Autodatei,"Stereo");
Autos[playerid][i][Hydraulics] = dini_Int(Autodatei,"Hydraulics");
Autos[playerid][i][VentRight] = dini_Int(Autodatei,"VentRight");
Autos[playerid][i][VentLeft] = dini_Int(Autodatei,"VentLeft");
Autos[playerid][i][FrontBumper] = dini_Int(Autodatei,"FrontBumper");
Autos[playerid][i][RearBumper] = dini_Int(Autodatei,"RearBumper");
Autos[playerid][i][Neon] = dini_Int(Autodatei,"Neon");
Autos[playerid][i][Neon_Typ1] = dini_Int(Autodatei,"Neon_Typ1");
Autos[playerid][i][Neon_Typ2] = dini_Int(Autodatei,"Neon_Typ2");
new vID = CreateVehicle(Autos[playerid][i][Model],Autos[playerid][i][PosX],Autos[playerid][i][PosY],Autos[playerid][i][PosZ],Autos[playerid][i][PosA],Autos[playerid][i][Farbe1],Autos[playerid][i][Farbe2],0);
KMAnzeigeF[vID] = KMAnzeigeF[vehicleid];
Spielercar[vID] = playerid;
SpielercarvID[playerid][i] = vID;
SetVehicleNumberPlate(vID,dini_Get(Autodatei,"Nummernschild"));
if(Autos[playerid][i][Neon] > 0)
{
Autos[playerid][i][Neon_Obj0] = CreateObject(Autos[playerid][i][Neon_Typ1],0,0,0,0,0,0,0);
Autos[playerid][i][Neon_Obj1] = CreateObject(Autos[playerid][i][Neon_Typ1],0,0,0,0,0,0,0);
AttachObjectToVehicle(Autos[playerid][i][Neon_Obj0], SpielercarvID[playerid][i], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(Autos[playerid][i][Neon_Obj1], SpielercarvID[playerid][i], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
if(Autos[playerid][i][Neon_Typ2] > 0)
{
Autos[playerid][i][Neon_Obj2] = CreateObject(Autos[playerid][i][Neon_Typ2],0,0,0,0,0,0,0);
Autos[playerid][i][Neon_Obj3] = CreateObject(Autos[playerid][i][Neon_Typ2],0,0,0,0,0,0,0);
AttachObjectToVehicle(Autos[playerid][i][Neon_Obj2], SpielercarvID[playerid][i], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(Autos[playerid][i][Neon_Obj3], SpielercarvID[playerid][i], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
}
}
if(Autos[playerid][i][Abgeschlossen] == 1)
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vID,engine,lights,alarm,VEHICLE_PARAMS_ON,bonnet,boot,objective);
Lock[vID] = true;
}
SetVehicleParamsForPlayer(vID,playerid,0,0);
if(Autos[playerid][i][HP] > 250)
{
SetVehicleHealth(vID,Autos[playerid][i][HP]);
}
else SetVehicleHealth(vID,255.0);
if(Autos[playerid][i][Paintjob] >= 0)
{
ChangeVehiclePaintjob(vID,Autos[playerid][i][Paintjob]);
}
if(Autos[playerid][i][Farbe1] >= 0 || Autos[playerid][i][Farbe2] >= 0)
{
ChangeVehicleColor(vID,Autos[playerid][i][Farbe1],Autos[playerid][i][Farbe2]);
}
if(Autos[playerid][i][Spoiler] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Spoiler]);
}
if(Autos[playerid][i][Hood] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Hood]);
}
if(Autos[playerid][i][Roof] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Roof]);
}
if(Autos[playerid][i][Sideskirt] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Sideskirt]);
}
if(Autos[playerid][i][Lamps] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Lamps]);
}
if(Autos[playerid][i][Nitro] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Nitro]);
}
if(Autos[playerid][i][Exhaust] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Exhaust]);
}
if(Autos[playerid][i][Wheels] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Wheels]);
}
if(Autos[playerid][i][Stereo] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Stereo]);
}
if(Autos[playerid][i][Hydraulics] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][Hydraulics]);
}
if(Autos[playerid][i][FrontBumper] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][FrontBumper]);
}
if(Autos[playerid][i][RearBumper] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][RearBumper]);
}
if(Autos[playerid][i][VentRight] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][VentRight]);
}
if(Autos[playerid][i][VentLeft] >= 0)
{
AddVehicleComponent(vID,Autos[playerid][i][VentLeft]);
}
}
return 1;
}
Hallo Com,
und zwar hab ich das Problem, das wenn ich /carrespawn eingebe der Server abstürzt
Befehl:
ocmd:carrespawn(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,1337))return SendClientMessage(playerid,ROT,"Du bist kein Admin 1337.");
{
new bool:unwanted[CAR_AMOUNT];
for(new player=0; player<GetMaxPlayers(); player++)
{
if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
}
for(new car = 0; car <= MAX_VEHICLES; car++)
{
if(!unwanted[car])
{
SetVehicleToRespawn(car);
new fID = Fraktioncar[car];
new ii = FraktioncarMaxCar[car];
new pID = Spielercar[car];
if(car == FraktioncarvID[fID][ii])
{
DestroyVehicle(FraktioncarvID[fID][ii]);
LoadFraktionAutoBeiDeath(fID,ii);
}
if(car == SpielercarvID[pID][1])
{
DestroyVehicle(SpielercarvID[pID][1]);
LoadPrivatAuto(pID,1);
}
if(car == SpielercarvID[pID][2])
{
DestroyVehicle(SpielercarvID[pID][2]);
LoadPrivatAuto(pID,2);
}
if(car == SpielercarvID[pID][3])
{
DestroyVehicle(SpielercarvID[pID][3]);
LoadPrivatAuto(pID,3);
}
if(car == SpielercarvID[pID][4])
{
DestroyVehicle(SpielercarvID[pID][4]);
LoadPrivatAuto(pID,4);
}
}
}
new string[128];
format(string,128,"Admin: %s hat alle unbesetzten Autos zurückgespawnt.",SpielerName(playerid));
SendClientMessageToAll(GELB,string);
}
return 1;
}
Zu meiner 2 Frage
und zwar hab ich gelsen bzw hat mir einer gesagt, das wenn ein Fahrzeug kapput geht, was ich erstellt habe so:
armycar[]=...
das es dann zur vID verschiebung kommen kann. Und das dann bei StateChange was anderes aufgerufen wird als vorher. Jetzt meine Frage, wie vermeide ich das bzw gibt es eine Lösung dafür.
Mit freundlichen Grüßen
Kurze Frage,
ist ein Arry besser als Variablen? oder ist das eigentlich egal
z.B
new punkt1;
new punkt2;
new punkt[2];
Man hat ja trotzdem 2 Punkte, ist doch nur Platzsparender oder?
MFG
Gebt ihr einen bestimmten Befehl ein oder macht ihr dabei etwas bestimmtes?
Das kann ich nicht genau sagen. Bei uns ist ein Bug bei den Vehicles und zwar kommen da abundzu andere Meldungen, die eigentlich nicht kommen dürfen. z.B. du bist kein Mitglied der Army bei GS Auto und das klappte noch vorher also paar Minuten vorher. (Nur so nebenbei)
MFG
Meine Glaskugel sagt, Server log bitte posten
----------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3x, (C)2005-2013 SA-MP Team
[19:43:29]
[19:43:29] Server Plugins
[19:43:29] --------------
[19:43:29] Loading plugin: streamer.so
[19:43:29]
*** Streamer Plugin v2.6 by Incognito loaded ***
[19:43:29] Loaded.
[19:43:29] Loaded 1 plugins.
[19:43:29]
[19:43:29] Filterscripts
[19:43:29] ---------------
[19:43:29] Loaded 0 filterscripts.
[19:43:29] Incoming connection:
[19:43:29] Incoming connection:
[19:43:30] Incoming connection:
[19:43:31]
----------------------------------
[19:43:31] German All City Reallife Server by KING136
[19:43:31] ----------------------------------
[19:43:31] Number of vehicle models: 120
[19:43:31] [npc:join] Strip1 has joined the server (1:)
[19:43:31] [npc:join] RegBot has joined the server (0:)
[19:43:31] [join] (GACR)KING136 has joined the server (2:)
...
[20:36:24] [chat] [EpiclFaiL]: kommr ein
[20:36:27] [chat] [(GACR)_Deluxe_]: Der ist draußen 0.o
Hallo Com,
und zwar hab ich das Problem, das mein Server nach einer Zeit abstürzt. Die Zeit ist immer unterschiedlich. Warum stürzt der Server ab?
MFG
das mein ich auch. Trotzdem kommt der Bug