Also ich sitze schon seit ca. einem 3/4 teltem Jahr dran.
Hat 22k Zeilen, als ich damit angefangen hab, war ich sagen wir fortgeschritten.
Inzwischen habe ich sehr sehr viel dazugelernt, würde mich selber jetzt als gut - sehr gut bezeichnen.
Wenn ich mir manchmal die Sachen von früher anschaue, welche teilweise ziemlich unsauber gescriptet sind...
Beiträge von mbcool
-
-
RSA:
Also teils teils.
Es werden Teammitglieder stark bevorzugt.
Auch Fehlbans kamen gelegentlich vor.Man kann sagen, dass dort eine Admindiktatur herrscht.
Sollte man kritisieren, wird man unfair und von oben herab behandelt.Jediglich die Helferlein (niedrigsten Teammitglieder) sind freundlich.
//
Du hast es als neuer ach richtig schwer Anschluss zu finden.
Da die besten Fraktionen voll sind und Gangs erst ab 2 Wochen.
Also bleibt nix anderes als arbeiten.
Andere Beschäftigungen gibt es so nicht (außer ne Bar) was dort aber keinen interessiert. -
Naja vom Script her super, kann man nix sagen.
Nur die Community hat sich mitlerweile bisschen zum schlechten verändert.---
Rsa ist auch ganz okay.
Community viele kleinen Kinder aber naja.
Script is auch ganz nett und bugfrei,
nur das Anticheat ist nicht so toll. -
Es ist sogar mal ein angeblicher GTA V Beta downloader für den PC kursiert.
Welcher dann die allerneuesten Viren und Trojaner gedownloadet hat. -
Wurde da nicht letztens hier nen Firmenpanel vorgestellt?
Ich schau mal.//Edit:
Oder meinst du nen Script? -
Führst du vorher ne Query aus und lässt die Daten auslesen bevor du den String setzt?
-
Lol.
Also ne PSP ist naja...
Meiner Meinung nach nicht so toll.
Wenn du nur eine Slim nimmst, gibts eh keine Spiele mehr.Die Wii ist scheiße.
Grafik nicht so toll und das mit dem bewegen
ist auch geschmackssache.
(Ich mags nicht)Ich würde dir empfehlen ne PS3 zu holen oder auf die 4er zu warten.
-
Dieser Befehl geht genau so wenig
Jetzt kommt die nachricht Admins online 10x oder so..
ocmd:admins(playerid,params[])
{
new string[128],var;
for(new i=0; i<get_max_players(); i++)
{
if(GetPVarInt(i,"Adminlevel") <= 1)
{
SendClientMessage(playerid,GELB,"Admins Online:");
format(string,sizeof(string),"Admin %s",SpielerName(i));
SendClientMessage(playerid,WEIS,string);
var++;
}}
if(var == 0) SendClientMessage(playerid,-1,"Kein Admin online :<");
return 1;
}Ist doch klar ...
Du fragst das Adminlevel <= 1, es sollte >= 1 heißen! -
Machs mal so:
ocmd:admins(playerid,params[])
{
new string[128],var;
for(new i=0; i<GetMaxPlayers(); i++)
{
if(GetPVarInt(i,"Adminlevel") >= 1) //Ich denke mal es sollte >= 1 heißen. ;)
{
SendClientMessage(playerid,GELB,"Admins Online:");
format(string,sizeof(string),"Admin %s",SpielerName(i));
SendClientMessage(playerid,WEIS,string);
var++;
}
else
{
SendClientMessage(playerid,GRUN,"Kein Admin online.");
}
}
return 1;
}So würde er übelst zugespamt werden, da für jeden Nicht-Admin so eine Nachricht erstellt wird.
Wenn dann so:ocmd:admins(playerid,params[])
{
new string[128],var;
for(new i=0; i<GetMaxPlayers(); i++)
{
if(GetPVarInt(i,"Adminlevel") <= 1)
{
SendClientMessage(playerid,GELB,"Admins Online:");
format(string,sizeof(string),"Admin %s",SpielerName(i));
SendClientMessage(playerid,WEIS,string);
var++;
}
}
if(var == 0) SendClientMessage(playerid,-1,"Kein Admin online :<");
return 1;
} -
Zum Händler bringen...Wenn mann noch die Garantie hat
Genau!
Selber schuld wenn das Display nicht Käfer-abweisend lackiert ist!! -
Nein, es ging nur um die Freeze Methode.
Dr.Pawno
@John_Hunter
Ich denke es müsst durch den CameraVektor, oder die FacingAngle funktionieren.
Die ändert sich ja nicht mehr, wenn jemand gefreezt ist. -
Viele Server besitzen ja ein Modchecksystem.Und bei dem wurde man gefreezed. Durch einen Godmode/Healhack hat man freezed aber trotzdem HP verloren. Da die SAMP Entwickler aber nun bei normalem Beschuss immer HP verlieren lassen, auch wenn man gefreezed ist, ist diese Methode nicht mehr möglich.
Und da suche ich eine neue Methode.Schwierig.
Man könnte eventuell Abfragen, ob der Spieler sich bewegt, wenn er gefreezt ist, also die Positon verändert.
Allerdings ist das auch unsicher, da wenn jemand mit einem Fahrzeug gegen einen fährt etc. es sich trotzdem verändert.//Edit:
Einfach die FacingAngle Abfragen, da die sich ja nicht mehr verändern kann wenn jemand gefreezt ist. -
Ich verstehe Ihre Frage jetzt nicht was Sie wollen.
Bitte genauer erklären.Früher war es so, dass wenn der Spieler gefreezt war kein Leben verloren hat.
Wenn er laut der Server Variable gefreezt ist und trotzdem Leben verliert, dann hat er einen Freeze Mod.
Das geht ja jetzt nicht mehr, da auch gefreezte Spieler leben verlieren. -
Richtig. Aber einige Aimbots geben durch einen Bug 1000 Schlagringe. Das wird auch auf sehr vielen Servern als Banngrund benutzt, da es ein Beweis ist, dass der Jenige einen Aimbot nutzt.
Man sollte halt noch abfragen, ob ein Admin ihm die 1000 Schlagringe gegeben hat.Ah wusste ich so noch gar nicht
Danke.
Das werde ich dann auch mal in meinen Anticheat einbauen. -
Du gehst alle Waffen eines Spielers durch, wenn er einen Schlagring hat(ID 1) fragste ab, wieviele er hat. Wenn er 1000 Stück hat --> Bann
Funktioniert, soweit ich weiß, aber nur, wenn der Spieler vor dem Aktivieren des Aimbots schon Schlagringe hat.
Also müsste man in jeder Arena einen Schlagring vom System aus geben.
mbcool:Aber inwiefiern erhöht der Aimbot die Munition?
Der ist doch normalerweise nur fürs Zielen zuständig :o -
Ein Tipp für deinen Anti Cheat, du kannst Aimbot mit der Abfrage wie viel Munition die Faust von dem Spieler hat abfragen.
Leider gibt es auch Aimbot Hack's die nicht so Arbeiten, aber ein paar kannst du damit bestimmt überführen.Waffe: Faust
Munition glaube ich 1000Mfg,
MaxWie funktioniert das genau?
-
Umso weniger Code in OnPlayerUpdate ist, desto besser.
Deswegen ist es eventuell besser, meine Variante in einem Timer zu verwenden, welcher alle paar Sekunden ausgeührt wird.
Das reicht ja auch.Alternativ kann man auch bei Onplayerkeystatechange abfragen, ob der Spieler schießt und dort dann die Waffenid rausfinden und bannen.
-
Okay, ich habe nun die Waffen Variable erstellt
new sWaffen[MAX_PLAYERS][47];
Und als Beispiel beim Ammunationkauf :
if(dialogid == DIALOG_AMMUNATION)
{
if(response)
{
if(listitem == 0)
{
if(GetPlayerMoney(playerid) < 1500)
{
return SendClientMessage(playerid, WHITE, "So viel Geld hast du nicht bei dir.");
}
else
{
GivePlayerMoney(playerid, -1500);
GivePlayerWeapon(playerid, 24, 100);
SpielerInfo[playerid][pGeld]-=1500;
SendClientMessage(playerid, WHITE, "Du hast eine Desert Eagle gekauft.");
sWaffen[playerid][24]=1;
}
}So nun sollte beim Kauf einer Deagle sWaffen[playerid][24] auf 1 gesetzt werden.
Wie kann ich nun überprüfen, wenn der Spieler Waffen ID X hat ob die sWaffen[playerid][X] 0 oder 1 ist ?Also für jeden Spieler
So:
new weapon, ammo;
for(new i = 0; i <= 12; i++) {
GetPlayerWeaponData(playerid,i,weapon,ammo);
if(sWaffe[weapon] == 0 && ammo > 0) Ban(playerid);}
Ist ungetestet, kann sein, dass nen Logik Fehler drin ist.
Müsste aber so passen. -
Also als erstes danke ich euch beiden für eure Hilfe und Erklärungen ^^.
@John_Hunter
Wenn ichs richtig verstanden habe (was ich hoffe) würde das ca. so aussehen.Spieler geht in einen Ammunation und kauf sich eine Deagle mit der ID 24.
Nach dem erhalt der Waffe wird die Variable pWeapons[playerid][24] auf 1 gesetzt. Die Waffe wurde auf legalem Wege erhalten.Falls jedoch der Spieler eine Deagle hat und die Variable pWeapons[24] auf 0 ist sie höchstwarscheinlich ercheatet.
Jedoch kommen mir da 2 Fragen.
Wenn der Spieler seine ganzes Magazin verballert, verschwindet sie Waffe wieder. Also müsste dann die Variable für die Waffe auf 0 gesetzt werden, wie könnte ich das machen ?
Und die zweite Frage, wie kann ich Abfragen welchen Wert die Variable hat ?Würde das mit dem kleinen Antihackcode hier funktionieren ( die Vorgehensweise ) :
/*public AntiCheat(playerid) //--179
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
new waffen = GetPlayerWeapon(i);
if(waffen == 38 || waffen == 4 || waffen == 35 || waffen == 16 || waffen == 17 || waffen == 18 || waffen == 26 || waffen == 32 && !IsPlayerAdmin(playerid))
{
new pname[MAX_PLAYER_NAME];
new string[100];
GetPlayerName(playerid, pname, sizeof(pname));
format(string, sizeof(string), "=AntiCheat= %s wurde wegen WaffenHack gebannt!", pname);
SendClientMessage(playerid, 0xAA3333AA, string);
Ban(i);
}
}
return 1;
}*/Sorry wenn ich so viele Fragen stelle
Freundliche Grüße
Das würde so schon passen.
Nur brauchst du noch eine extra Klammer für die Abfrage.
Andernfalls könntest du auch einfach Switch und Case verwenden.new weapon = GetPlayerWeapon(i);
switch (weapon)
{
case 38,4,35,16,17,18,26,32:
{
if(!IsPlayerAdmin(i)) Ban(i);
}}
So ungefähr. -
Du gleichst bspw. das Geld, das der Spieler hat, mit dem in einer Variable ab.
Dazu machst Du Dir eine Funktion, die neben dem GivePlayerMoney auch das Geld in der Variable ändert.
Wenn sich beide Werte unterscheiden, hat er höchstwahrscheinlich gehackt. Es kann allerdings durch Lags zu Fehlbans kommen, sodass man am Besten nur kicken lassen sollten.
Wenn Du Waffen serverside machen möchtest, machst du eine Variable:
Dann machst Du, wenn du dem Spieler eine Waffe gibst:
Wenn dann der Spieler eine Deagle hat und
ist, hat er sich die Waffe höchstwahrscheinlich gehackt.
So ist es möglich, nicht nur die bad Weapons detecten zu lassen, sondern auch bspw. eine gehackte Deagle.
Nach dem Prinzip verfährst du ebenfalls bei Armor, Heal, etc.
@[pL]Makaveli:Wow du hast es geschafft in anderen Worten meinen Post nochmal wiederzugeben.
Nicht schlecht.