Seit wann ist die 1000p ohne nachfrage wieder zu haben
Damit schnell alle ihre Server updaten können.
Aber immerhin etwas gemacht worden obwohl die Probleme bei mir nie aufgetreten sind
so ziemlich alle größeren Server waren am abstürzen.
Seit wann ist die 1000p ohne nachfrage wieder zu haben
Damit schnell alle ihre Server updaten können.
Aber immerhin etwas gemacht worden obwohl die Probleme bei mir nie aufgetreten sind
so ziemlich alle größeren Server waren am abstürzen.
---------------
okay also wenn ichs richtig verstehe ist es eine sicherheits sache?
ja und bevor mans nicht versteht, sollte man kein SQL nutzen
Alles anzeigenheyho,
da ich viel mit SQLite arbeite, bin ich auf den DB escape stock gestoßen, ich verstehe aber nicht ganz wozu der gut ist oder was der überhaupt bringt, könnte es mit vllt jemand erklären? währe dankbar.
der stock
stock DB_Escape(text[])
{
new
ret[MAX_INI_ENTRY_TEXT * 2],
ch,
i,
j;
while ((ch = text[i++]) && j < sizeof (ret))
{
if (ch == '\'')
{
if (j < sizeof (ret) - 2)
{
ret[j++] = '\'';
ret[j++] = '\'';
}
}
else if (j < sizeof (ret))
{
ret[j++] = ch;
}
else
{
j++;
}
}
ret[sizeof (ret) - 1] = '\0';
return ret;
}
Noch genauer:
Beispiel: Folgende Abfrage:
gibt der Spieler jetzt für das Passwort einfach folgenden Text ein:
Zitat' OR `name` = 'NAME EINES ADMINS
dann hat er sich erfolgreich in den Adminaccount gehackt. Dies wird durch DB_Escape verhindert indem es die ' Zeichen *escaped* (also man kann dann nicht mehr durch Eingabe von ' die Abfrage manipulieren).
Ohne DB_Escape wird das eingegebene Passwort einfach in die Abfrage eingefügt und diese dadurch manipuliert: (sollte einleuchtend sein wenn du dir die Abfrage unterhalb jetzt anschaust)
SELECT * FROM `players` WHERE `name` = 'Music4You' AND `password` = '' OR `name` = 'NAME EINES ADMINS'
hat nicht nur das Auto gewackelt ?
- Könnte man mit SetVehicleVelocity umsetzen
Kamera wackeln ?
- InterpolateCameraPos
ODER
- SetPlayerDrunkLevel > 2000 (kamera schwenkt dann)
Hmm ich hab das jetzt so.PHPAlles anzeigen<?php $servers = array( array('5.175.8.12', 20000), ); foreach($servers as $server) { echo $server[0].":".$server[1]." ist ".checkServer($server[0], $server[1])."!<br>\n"; } ?> </body> </html> <?php function checkServer($ip, $port) { error_reporting(0); $abfrage = fsockopen ('udp://'.$ip, $port, $errno, $errstr, 5); if (!$abfrage) { return "offline"; } else { return "online"; } } ?>
Nun wird er dauerhaft online angezeigt, obwohl er nun Offline ist.Die 5 bedeutet doch den Intervall, wie er prüft oder?
scheint zu stimmen das UDP auch aufgebaut wird, wenn nichts dahinter ist.
Downloade dir von hier die SAMPQueryApi http://forum.sa-mp.com/showthread.php?t=104299
da siehst du wie durch einen write &read vom socket der Onlinestatus abgefragt wird
(Kleine Hilfe: die Variable in Zeile 67 ist der Punkt wo der Server dann als Online gekennzeichnet wird)
$abfrage = fsockopen ($ip, $port, $errno, $errstr, 5);
Vor der IP sollte "udp://" stehen, sonst wird tcp verwendet.
und den PORT nicht in Anführungszeichen schreiben, ist kein Text.
Dann sollte es eig. funktionieren
Audio Dateien sicher dabei ? Scheint daran zu liegen.
Vll postest du einfach die Größe deines GTA Ordners
Installier dein GTA mal in ein anderes Verzeichnis
und stell sicher das die Audio Dateien mit installiert werden (kann man auswählen bei "Custom" Installation)
Aber das sieht doch dann so aus? o.o
Hast du es probiert ? Nein, sonst würdest du es wissen.
jeder skin ist ein TextDraw mit TextDrawSetPreviewModel
der Hintergrund ist ein TextDraw mit Box
die Knöpfe sind TextDraws mit TextDrawSetSelectable
die Überschrift ist ein TextDraw mit Schrift
alles einzelne TextDraws zusammen gesetzt
Edit: dieses Script vom Bild sollte im SA-MP Server download dabei sein
Der Server muss ständig anfragen gegenüber dem Clienten machen wie der User denn jetzt heißt.
Meinst du das macht ernsthaft Sinn, den Traffic und die CPU dadurch zu belasten?
Wenn alle *Get...*-Funktionen Anfragen an den Clienten erzeugen würden, dann würde SA-MP nicht funktionieren. All diese Daten hat der Server schon im Speicher (gibt sie lediglich zurück)
mit eurer Logik müsste man dann ja ALLE *Get...*-Funktionen(die sich nicht ständig ändern, und das sind viele) in Variablen zwischenspeichern
Für mich ist das nur sparen an falscher Stelle.
//Goldkiller: Danke für deinen Beitrag.
Die PlayerTextDraws müssen definitiv nicht beim Disconnect gelöscht werden Passiert automatisch mit dem Disconnect
1. Du setzt den Cursor(Schreibposition) an den Anfang des zu löschenden Teils
2. Du gehst mit dem Scrollbacken(oder auch anders) zu dem Ende des zu löschenden Teils
3. Nun hältst du die Linke Shift-Taste(Großschreibtaste) gedrückt und drückst mit der Maus auf die Endposition des zu löschenden Teils
4. Nun ist alles dazwischen markiert
Standbild, Execrash
Ja, da gibt es zur Zeit ein neues Problem/einen neuen Hack, der GTA einfriert(Standbild)
Jeder öffentliche Server sollte folgenden Code im Script haben(bis dieses Problem behoben wurde) um diesen Player-Crasher zu blockieren:
#include <a_samp>
new AOFCT[MAX_PLAYERS];
new AOFCW[MAX_PLAYERS char];
public OnPlayerUpdate(playerid)
{
new Float:x,Float:y,Float:z;
GetPlayerCameraFrontVector(playerid,x,y,z);
if(((-1.0< x <1.0) && (-1.0< y <1.0) && (-1.0< z <1.0)) == false)
{
if(AOFCT[playerid] > GetTickCount())AOFCW{playerid}++; else AOFCW{playerid}=0;
AOFCT[playerid]=GetTickCount()+1000;
if(AOFCW{playerid} == 2)
{
Kick(playerid);
}
return 0;
}
return 1;
}
Immer diese Speedtests
Man sparrt bestimmt 1 MS nach 12894 formats
SUPER (sinnlos) !
In SA-MP gibt es definitiv andere Bereiche zu beachten, wie man Schleifen etc. coded... im Gegensatz zu sowas :p
Dennoch nützlich um schneller voran zu kommen, aber nicht für Speed
ob ihr
new pHouse[MAX_PLAYERS];
new pKills[MAX_PLAYERS];
oder
enum pInfo {
pHouse,
pKills
};
new g_pInfo[MAX_PLAYERS][pInfo];
schreibt
nimmt sich "gar nichts"
beides wird gleich viel Ram verwenden Beide male müssen 2 x MAX_PLAYERS *Speicherblöcke* reserviert werden. Und auch bei beiden wird die .amx größer
hm.. klar :p
if(!strcmp(cmd,"cpsay",true))
zu
if(!strcmp(cmd,"cpsay",true, 5))
(vergleiche nur ersten 5 Zeichen)
$this->getuser();:
public OnRconCommand(cmd[])
{
printf("OnRconCommand(%s) start", cmd);
if(!strcmp(cmd,"cpsay",true))
{
printf("Send: %s", cmd[5]);
SendClientMessageToAll(0xFFFFFFAA,cmd[5]); // ab 6ter stelle
print("Send: done");
return 1;
}
printf("OnRconCommand(%s) end", cmd);
return 0; // 0 damit andere scripts weiter gecheckt werden
}
Ausgabe ?
Wenn gar nichts kommt, dann blockiert ein anderes FilterScript OnRconCommand (blockieren = return 1 zuvor)
Alles anzeigenmal eine Frage an unsere Profis hier
Ich würde gerne einen eigenen Rcon Befehl erstellen welcher einen Parameter hat (welcher Text ist). Der Befehl soll dem rcon say gleich sein & über die Rcon API (PHP) aufrufbar sein. Da ich jetzt länger nichts mehr mit pawn gemacht habe, fehlt mir die Kenntnis dazu
public OnRconCommand(cmd[])
{
if(!strcmp(cmd,"cpsay",true))
{
new text[512];
text = str_replace("cpsay", "", cmd);
SendClientMessageToAll(0xFFFFFFAA,text);
return 1;
}
return 1;
}
so ist das ganze nun in einem Filterscript (str_replace kommt von einer include die strlib heißt)
Hat vielleicht jemand eine Idee? Er gibt mir auf dem Server nämlich nichts aus. Aufgerufen von der api wird sie. Müsste ich das über sscanf machen oder gehts auch oben mit dem "str_replace" ?
MfG
Mit strings geht man nicht mit "=" um... dafür gibt es format und andere string Funktionen
Das ganze optimiert:
public OnRconCommand(cmd[])
{
if(!strcmp(cmd,"cpsay",true))
{
SendClientMessageToAll(0xFFFFFFAA,cmd[5]); // ab 6ter stelle
return 1;
}
return 1;
}
Das ist meine Webseite und mein Server! Damit kann man Signaturen mit Spieleranzahl usw. erstellen
Localhost = Der SA-MP Server der auf dem selben Server wie die Webseite liegt!
hier das Thema dazu: [ TOOL ] SA-MP Server Signatur-Monitor (Bilder)