Nach dem auch ich Möglichkeiten gesucht habe, den Farming-Bug zu verhindern, und tutorials wie diese: [Tutorial] Farmbugs fixen
einfach nicht funktionieren, habe ich mir eine andere Methode überlegt, die meiner Meinung nach funktioniert, und auch gerecht ist.
Was macht das Script?
Diese Script hat einen "Zähler" am anfang der Farming Scripte, und wird mit jedem Start des Scripts +1 gezählt.
Am Ende des Scripts wird der Zähler wieder auf 0 gesetzt.
Hält nun ein User seine Farmingtaste gedrückt, oder drückt sie rapide schnell hintereinander, wird jedesmal der Zähler (da er am anfang steht) +1 addiert.
Ist eine fest eingestellt Zahl erreicht, bevor das Script durch ist (also der Zähler am ende auf 0 steht) wird für alle eine Meldung herausgegeben,
das der entsprechende User den Farming Bug versucht hat, auszunutzen.
Anschließend, bekommt er als Strafe ein "Mission End". Da hier nun die zItems, die gerade gesammelt wurden, sehr wahrscheinlich noch nicht gespeichert sind,
kann der User diese neu sammeln gehen.
Strafen können beliebig eingebaut werden!
Hier nun das TUT:
1. Schritt
Öffne die description.ext und füge unter der class NotWhitelisted, eine neue Class hinzu:
Spoiler anzeigen
Aussehen sollte es dann so:
Spoiler anzeigen
class CfgDebriefing
{
class NotWhitelisted
{
title = "FAIL!";
subtitle = "Du bist nicht White-Listed!";
description = "Du bist nicht gewhitelistet. Bitte melde dich im Forum! www.tilos-life.de";
pictureBackground = "";
picture = "";
pictureColor[] = {0,0.3,0.6,1};
};
class BugUser
{
title = "FARMING-BUG-USING FAILED!";
subtitle = "Bitte unterlasse das Bugusen beim Farmen!";
description = "BUGUSING KANN ZUM BAN FUEHREN!!";
pictureBackground = "";
picture = "";
pictureColor[] = {0,0.3,0.6,1};
};
class Blacklisted
{
title = "Mission Failed";
subtitle = "You are blacklisted from cops";
description = "You are not allowed to be a cop due to previous actions and the admins have removed you from being a cop.";
pictureBackground = "";
picture = "";
pictureColor[] = {0,0.3,0.6,1};
};
};
Alles anzeigen
2. Schritt
Am Anfang eines jeden Scripts, wo etwas gefarmt wird, (nach Private["......."]; oder halt ganz oben) folgendes einfügen:
Spoiler anzeigen
if (isNil "speedcheck") then { speedcheck = 0; };
speedcheck = speedcheck+1;
if(speedcheck > 20) exitWith
{
["BugUser",FALSE,TRUE] call BIS_fnc_endMission;
sleep 3;
[[1,format["%1 hat gerade versucht den Farmen-Bug auszunutzen!",name player]],"life_fnc_broadcast",true,false] spawn life_fnc_MP;
};
Alles anzeigen
und ganz am ende der Datei:
speedcheck = 0;