Timer =P
SetTimer("Hi", 500, 1);
new Var[1000]; <- zu hohe Byte Zahl.
Unnötige Functionen und etc....
Timer =P
SetTimer("Hi", 500, 1);
new Var[1000]; <- zu hohe Byte Zahl.
Unnötige Functionen und etc....
Hallo, weiß jemand warum das Object die Farbe nicht annimmt ?
0xFFECECC6
SetObjectMaterial(LSPD, 5, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0xFFECECC6);
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[])
{
//[...]
}
Diese Funktion sucht einfach nach dem Zeichen ''' und ersetzt es durch "''" (also 2x ').
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'
okay also wenn ichs richtig verstehe ist es eine sicherheits sache?
okay also wenn ichs richtig verstehe ist es eine sicherheits sache?
ja und bevor mans nicht versteht, sollte man kein SQL nutzen
Hallo,
kann man mit einem Befehl ein Public abschalten ?
Hier mal ein Beispiel [pL]Makaveli:
#include <ocmd>
new OnPlayerCommand_SetOff = 0;
ocmd:commandsoff(playerid,params[])
{
if(OnPlayerCommand_SetOff == 0) return OnPlayerCommand_SetOff = 1;
return OnPlayerCommand_SetOff = 0;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if( OnPlayerCommand_SetOff == 1 ) return SendClientMessage(playerid,-1,"Befehle wurden deaktiviert!");
// ...
}
Alles anzeigenHier mal ein Beispiel [pL]Makaveli:
#include
new OnPlayerCommand_SetOff = 0;
ocmd:commandsoff(playerid,params[])
{
if(OnPlayerCommand_SetOff == 0) return OnPlayerCommand_SetOff = 1;
return OnPlayerCommand_SetOff = 0;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if( OnPlayerCommand_SetOff == 1 ) return SendClientMessage(playerid,-1,"Befehle wurden deaktiviert!");
// ...
}
Dankeschön
Alles anzeigenHier mal ein Beispiel [pL]Makaveli:
#include <ocmd>
new OnPlayerCommand_SetOff = 0;
ocmd:commandsoff(playerid,params[])
{
if(OnPlayerCommand_SetOff == 0) return OnPlayerCommand_SetOff = 1;
return OnPlayerCommand_SetOff = 0;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if( OnPlayerCommand_SetOff == 1 ) return SendClientMessage(playerid,-1,"Befehle wurden deaktiviert!");
// ...
}
Hier wäre es eher sinnvoller gewesen state zu nutzen.
public OnPlayerCommandText(playerid, cmdtext[])<STATUS:OFF> {
if(!strcmp(cmdtext,"/commandoff",false))return state STATUS:ON,SendClientMessage(playerid,-1,"Du hast die Befehle wieder angeschalten!");
return SendClientMessage(playerid,-1,"Die Befehle wurden ausgeschalten!");
}
public OnPlayerCommandText(playerid, cmdtext[])<STATUS:ON> {
if(!strcmp(cmdtext,"/commandoff",false))return state STATUS:OFF, SendClientMessage(playerid,-1,"Du hast die Befehle wieder ausgeschalten!");
return 1;
}
oder auch vereinfacht
state (!strcmp(cmdtext,"/commandoff",false)) STATUS:OFF;
was jedoch UNKNOWN command ausgibt
Hier wäre es eher sinnvoller gewesen state zu nutzen.
Ist die Methode neu? Habe sowas noch nie gesehen ![]()
Wie funktioniert das?
Ist die Methode neu? Habe sowas noch nie gesehen
Wie funktioniert das?
xD die gibt es schon immer
Das ganze funktioniert so das du einem callback oder einer funktion ein status geben kannst den du mit state Beispiel:status
setzen kannst. Sollte die Funktion aufgerufen werden so wird nur die aufgerufen welche den jeweilgen status beinhaltet. Also kannst du mehrmals eine funktion damit verwenden das ganze nennt sich state maschine oder automata.
Der Vorteil ist das du damit funktionen besser hooken kannst da somit deine gehookte version als erstes aufgerufen wird.
und memory sparst du auch und damit globale variabeln.
Was auch noch zu wissen ist das es eine spezielle funktion gibt wie main names entry die wird aufgerufen wenn du ein status veränderst
Kurze Frage.
Konnte man bei DIALOG_STYLE_MSGBOX mehr als zwei Button eingeben oder nur die zwei ?
Danke ![]()
Kurze Frage.
Konnte man bei DIALOG_STYLE_MSGBOX mehr als zwei Button eingeben oder nur die zwei ?
Danke
Ja man kann nur damit zwei Buttons oder einen Buttons "erstellen" um einen button zu entfernen muss man nur nix bei dem argument button2 eingeben.
Nur bei DIALOG_STYLE_LIST wären mehrere Buttons möglich jedoch nur als Listitem.
Ja man kann nur damit zwei Buttons oder einen Buttons "erstellen" um einen button zu entfernen muss man nur nix bei dem argument button2 eingeben.
Nur bei DIALOG_STYLE_LIST wären mehrere Buttons möglich jedoch nur als Listitem.
Danke ja auf dem Link war ich eben auch schon, nur wäre halt praktisch für mich gewesen
Danke dir ![]()
Wie kann man abfragen, ob sein auto von einer Rpg getroffen wurde ?
mfG
Ich hatte vor ein shooter in samp zu machen also ist die rpg in dem fall ein object
wie mache ich das den dann ?
Kann einer mir bitte kurz sagen wie die Animations IDs waren, wenn man ein Handy rausholt und ans Ohr tut und wenn man es wieder einsteckt.
Wäre sehr nett ![]()
Danke