LoL.... Schleimer
Beiträge von M4rciii
-
-
Huhu! Danke euch allen, dass ihr da ward! Super party im Alhambra, und des am Flughafen is echt geil geworden...
DANKEEE!!!!! -
Dafür hab ich das extra in ein Callback gepackt, da du dann in deinem Command /l sowas machen kannst:
if(CheckPlayerText(playerid,tmp) == 0) { return 1; }
Wenn in tmp das nach /l kommt, wird eine IP darin geblockt, ändere es einfach auf deine string. -
Hallöchen!
Da in vielen Server viel abgeworben wird (was nicht sein muss ) habe ich ein Anti-IP-Script gebastelt.
Ich habe mir schon länger vorgenommen das Script zu verbessern und mache das dann jetzt mal.FUNKTIONSWEISE
Bei CheckPlayerText(playerid,string); wird bei jedem Zeichen überprüft, ob es sich um einen Punkt handelt und ob eine Zahl dahinter kommt. Wenn dies 3 Mal der Fall ist, schliesst sich daraus: Es ist eine IP!!!
Zudem unterstützt es auch Leerzeichen zwischen den Punkten.
Falls es sich fälschlicherweise nicht um eine IP handelt, weis der Admin bescheid, da die Nachricht geblockt und an einen Admin geschickt wird.BEISPIELE
Sowas würde als IP erkannt werden:
127.0.0.1
127 , 0 , 0 , 1
12 / 34 , 456 789
98 76 543 210CHANGELOG
v.2.0
- Man kann beliebig viele Delimiter/Trennzeichen angeben, mit denen IPs erkannt werden sollen (IPDelimiters).
- Man kann ebenso bestimmte IPs erlauben, beispielsweise die IP des Servers (AllowedIPs).
v1.1
- Der Bug bei Godfather wurde behoben (bitte Zeilen 3-5 beachten !!)
- Bei beliebig vielen Warnungen wird man gebannt (MAX_IP_WARNS)DOWNLOAD
RAR-Archiv
PWN-Datei
AMX-DateiHoffe es wird euch helfen!
MfG, M4rciii -
Verbesserte Version:
new ClanNames[][] = {
"[123]",
"[FKK]",
"[WTF]"
// und so weiter
};
public OnPlayerConnect(playerid)
{
for(new clan=0; clan<sizeof(ClanNames); clan++)
{
new Playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,Playername,sizeof(Playername));
if(strfind(Playername,ClanNames[clan],true) == 0) // == 0 vergessen, sonst passierts Gegenteil -.-
{
Kick(playerid);
}
}
return 1;
} -
Falls du das immer noch brauchst:
http://forum.sa-mp.com/index.php?topic=84465.0 -
Hallo, lieber Scripter und (moment, gibts hier Scripterinnen???? egal..)!
Da viele Scripter mit Dateien arbeiten "müssen" und sich meinstens dabei schwer tun, mache ich hier ein Tutorial zu DracoBlue's Dini.
Es ist eigentlich nur eine Übersetzung von einem Tread im offiziellen Forum:Dini: http://forum.sa-mp.com/index.php?topic=981.0
Dini englisches Tut: http://forum.sa-mp.com/index.php?topic=71935.0VORWEG:
Falls du nicht weist, was mit einem "key" gemeint ist, schau mal das hier an:
In der Datei "Maercell.ini" ist das hier geschrieben:Zitatlevel=1337
Maercell.ini => filename
level => key
1337 => value (nur ein Beispiel, kommt eben drauf an, war gespeichert wird)Die Funktionen
dini_Exists(filename[])
Überprüft ob eine Datei mit dem Pfad filename existiert. Returnt true oder false
if(dini_Exists("/folder/file.ini"))
{
// Die Datei "file.ini" ist im Ordner "folder" vorhanden
}
else
{
// Die Datei "file.ini" gibt es im Ordner "folder" nicht
}dini_Isset(filename[], key[])
Überprüft ob in einer Datei schon etwas unter key gespichert ist.
dini_Set("/folder/file.ini", "key", "text");
if(dini_Isset("/folder/file.ini", "key"))
{
// Unter "key" wurde "key" gespeichert, gibt true zurück
}
dini_Unset("/folder/file.ini", "key");
if(dini_Isset("/folder/file.ini", "key"))
{
// Unter "key" wurde nichts gespeichert, gibt false zurück
}dini_Unset(filename[], key[])
Löscht Float/Integer/Bool/String in einer Datei
dini_Set("/folder/file.ini", "check", "true");
string = dini_Get("/folder/file.ini", "check");
print(string); // gibt true zurückdini_Unset("/folder/file.ini", "check");
string = dini_Get("/folder/file.ini", "check");
print(string); // gibt nichts zurückdini_Create(filename[])
Erstellt eine neue Datei
// dini_Exists würde false zurückgeben, existiert ja nicht :o
dini_Create("/folder/file.ini");
// dini_Exists würde true zurückgeben, existiert nun danke dini_Createdini_Remove(filename[])
Löscht eine Datei
// dini_Exists würde true zurückgeben, weil die Datei noch existiert
dini_Remove("/folder/file.ini");
// dini_Exists würde false zurückgeben, weil die Datei soeben gelöscht wurdeJetzt gehts an Speichern und Laden!!!
dini_Set(filename[], key[], value[])
Speichert eine String unter key in eine Datei
dini_Set("/folder/file.ini", "samp", "forums");
// In "file.ini" im Ordner "folder" stände jetzt:
// "samp=forums"dini_Get(filename[], key[])
Lädt eine Strint unter key in einer Datei
string = dini_Get("/folder/file.ini", "samp");
if(strcmp(string, "forums", false) == 0)
{
// Die IF-Abfrage wird ausgeführt, da in file.ini unter "samp" "forums" gespeichert wurde, sieht dini_Set
}Das geht aus mit Integern!!!
dini_IntSet(filename[], key[], value)
Speichert ein Integer unter key in einer Datei
dini_IntSet("/folder/file.ini", "sampforums", 1);
// Das Ergebnis in "file.ini" im Ordner "folder" ist:
// "sampforums=1"
dini_Int(filename[], key[])
Lädt ein Integer unter key in einer Datei
new number = dini_Int("/folder/file.ini", "sampforums");
if(number == 1)
{
// sampforums entspricht 1, wie bei dini_IntSet gespeichert
}Und Positionen? Floats!
dini_FloatSet(filename[], key[], Float:value)
Speichert eine Float unter key in einer Datei
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
dini_FloatSet("/folder/file.ini", "F_X", X);
dini_FloatSet("/folder/file.ini", "F_Y", Y);
dini_FloatSet("/folder/file.ini", "F_Z", Z);// Das ergebnis in "file.ini" im Ordner "folder"
// F_X = 0.000000
// F_Y = 0.000000
// F_Z = 0.000000
// Das wären die koordinaten von playeriddini_Float(filename[], key[])
Lädt eine Float unter key in einer Datei
// Lädt die Koordinaten "F_X", "F_Y" und "F_Z" in die Floats X, Y, Z und teleportiert playerid
new Float:X, Float:Y, FloatZ;
X = dini_Float("/folder/file.ini", "F_X");
Y = dini_Float("/folder/file.ini", "F_Y");
Z = dini_Float("/folder/file.ini", "F_Z");
SetPlayerPos(playerid, X, Y, Z);Nur true und false? Da reicht ein Bool-Wert!
dini_BoolSet(filename[], key[], value)
Speichert ein Bool-Wert unter key in einer Datei
dini_BoolSet("/folder/file.ini", "random_bool", true);
// Das Ergebnis in "file.ini" im Ordner "folder" ist:
// "random_bool=true"dini_Bool(filename[], key[])
Lädt einen Bool-Wert unter key aus einer Datei
new bool:random_bool = dini_Bool("/folder/file.ini", "random_bool");
if(random_bool == true)
{
// random_bool ist true wie bei dini_BoolSet gespeichert
}Und das wars! Du hast soeben gelernt mit dini Dateien zu erstellen, zu löschen und darin Bools, Floats, Strings und Integer zu speichern, so einfach gehts!
Ich danke hiermit DracoBlue für diese wunderbar einfache Art eines Dateiensystems.
MfG Maercell
//Goldkiller: Sticky
-
Das gehört so:
return SendClientMessage(playerid, 0xFFFFFFFF, "SERVER: Invalid character. Please refrain from using the '~' character.", 0);
Außerdem solltest du das so abändern:
format(text,sizeof(text), "%s: ~w~%s", name, text); -
-
if(strcmp(cmd,"/setpweather") == 0)
{
tmp = strtok(cmdtext,idx);
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext,idx);
new weather = strval(tmp);
if(IsPlayerConnected(giveplayerid))
{
SetPlayerWeather(giveplayerid,weather);
}
return 1;
}
Das ist jetzt die einfachste Form, du kannst das natürlich auch alles mit text, und "[FEHLER] /setpweather" etc. -
Mach bei OnGameModeInit sowas hier:
dmkills = TextDrawCreate(150, 100, " ");
Und außerdem:
GivePlayerWeapon(playerid,25,100) && GivePlayerWeapon(playerid,31,250); // das ist falsch
GivePlayerWeapon(playerid, 25, 100); // richtig
GivePlayerWeapon(playerid, 31, 250); // richtig -
Dieses Codeschnitzel ist recht simpel und sorgt nur dafür, dass man nicht etwas wie "7LOGIN mEINpw" macht, oder sonstiges mit einer 7 als erstes zeichen.
Man baut es einfach als erstes in OnPlayerText ein und es funktioniert.
if(text[0] == '7')
{
new string[128];
format(string,sizeof(string),"/%s",text[1]);
OnPlayerCommandText(playerid,string);
return 0;
}Wegen schlechter Einrückung noch Pastebin: Hier
MfG Maercell
-
Das bekommst du auch selber hin
Mach halt, dass man ab weniger als 5 health gefreezt wird und eine Animation macht und der Rest zB Command ist Kleinkram... -
-
Hallo, liebe Scripter und Forum-User
Ich suche gerade nach einer Methode, die einen Zufälligen Spieler auswählt, der Connected ist und auch andere Kriterien erfüllt( zB Checked[playerid] == true ).
Ich habe mir schon überlegt, ob das einem Label und "goto" geht:
randomplayer:
{
new randpl = random(MAX_PLAYERS);
if(IsPlayerConnected(randpl) && Checked[randpl] == true) Player = randpl;
else goto randomplayer;
}Würde das so funktionieren? Habe noch nie mit goto und Labels gearbeitet. PS: LINK
Danke im Vorraus
-
Als Gegenleistung könnte ich dir einen SA:MP Server hosten.
Wenn du das nicht willst, mach mal einen Vorschlag. -
Hallo!
Also, leider ist vor ein paar Tagen ist meine Clan-Seite innen Arsch gegangen. Wir suchen noch ein neues Design und Layout für die Seite. Der Clan hat gut 30 Member und er braucht eine gute Page; Domain etc. ist vorhanden.
Ich würde mich sehr freuen, wenn hier einige nette Forum-User ihre Vorschläge posten könnten oder vielleicht sogar etwas beim Einbau helfen.MfG Maercell
-
Oh, das ist mir jetzt fast peinlich
Hier die neue Version: breadfish.de/wcf/attachment/412/ -
Siehe unten
-