Wie meinst du das die ganze Pawno Datei reingeben in den includes ordner?
Du hast in deinem pawno ordner, nen ordner namens includes.
Da kommt deine dini.inc rein.
Wie meinst du das die ganze Pawno Datei reingeben in den includes ordner?
Du hast in deinem pawno ordner, nen ordner namens includes.
Da kommt deine dini.inc rein.
Wie mache ich es, das wenn ein Befehl unbekannt ist nicht ,,Server Unknown Command'' steht, sonder zum Beispiel:,,Der Befehl ist unbekannt'' ?
Danke
Bei OnPlayerCommandText das return 0 in return SendClientMessage...
ändern
Asoo okay
Servus,
kurze Frage, ich lasse zwei ProTimer so laufen:
SetProTimer("Test", 920, true);
SetProTimer("Test", 920, true);
(( Nur ein Beispiel ))
Wäre es besser, wenn ich den zweiten auf 950 setze, damit die sich nicht überschneiden können? Oder anders, können die sich überschneiden?
Wäre es besser, wenn ich den zweiten auf 950 setze, damit die sich nicht überschneiden können? Oder anders, können die sich überschneiden?
Was für eine Frage..natürlich können die sich überschneiden ![]()
setz den einen auf 921 und den anderen auf 923 das ist besser ![]()
mfg. ![]()
Mal eine kleine Frage:
Ich mache gerade eine Funktion, in der man im Auto (beim Fahren) KEY_FIRE braucht.
if(newkeys == KEY_FIRE) //...
Jedoch funktioniert diese Funktion dann immer nur, wenn ich vom Gas gehe: (Ich gebe Gas -> Drücke -> Nichts passiert).
Kann ich irgendwie machen, dass ich KEY_FIRE immer drücken kann, dass dann auch die Funktion ausgeführt wird? Oder
geht das nicht?
if(newkeys & KEY_FIRE)
Meinste so?
Kann ich einen Timer bzw. ein System erstellen, das darauf wartet bis alle Daten geladen wurden? Also Maps, Auto, Spieler etc.?? Falls ja wie würde sowas aussehen?
Am Ende einfach deine Funktion einfügen.
Kann ich einen Timer bzw. ein System erstellen, das darauf wartet bis alle Daten geladen wurden? Also Maps, Auto, Spieler etc.?? Falls ja wie würde sowas aussehen?
Die frage istwas hast du denn dann vo?
bis alle Daten geladen wurden? Also Maps, Auto, Spieler etc.
Das muss doch alles Sagen oder? Ich möchte das er erstmal alles Ladet, finde ich einfach besser wenn alles Geladen hat bevor der Spieler sich einloggen kann.
Asoo^^
du könntest beim anfang von ongamemodeinit ne variable setzen und am ende von ongamemodeinit diese wieder wegnehmen, weil dann müsste alles geladen sein.
Falls sich jmd einloggen will fragst einfach ab ob die vari noch aktiv ist.
Söllte eigendlich so gehen.
//e
Das setzt aber vorraus das alles, was du laden möchtest unter ongamemodeinit ist.
Das muss doch alles Sagen oder? Ich möchte das er erstmal alles Ladet, finde ich einfach besser wenn alles Geladen hat bevor der Spieler sich einloggen kann.
Der Punkt ist hier das du die ganzen Daten Temporär erstmal ablegst, der Nachteil ist sollte der Server crashen muss eine größere Datenmenge gespeichert werden es kann dadurch
dazu kommen das Daten nicht gespeichert werden könnten und diese somit verloren gehen.
Das umzusetzen ist dank Plugin kein Problem, jedoch solltest du erstmal differzieren ob die Daten welche du laden lassen möchtest statisch ablegen möchtest oder du später darauf zurück greifen und diese verändern. Jedoch gehe ich davon aus das du die zweite Variante bevorzugst.
Zum einen erstmal zum ablegen von statischen Daten. Falls dein Skript auf MySQL bassieren sollte und du die neueren Versionen von dem MySQL Plugin von maddinat0r verwenden solltest (r30+)
hast du die Möglichkeit, die ausgelesenen Daten im Memory abzulegen um somit auf den cache später zurück zu greifen. Das kann man mit diesen Funktionen handhaben.
native Cache:cache_save(connectionHandle = 1);
native cache_delete(Cache:cache_id, connectionHandle = 1);
native cache_set_active(Cache:cache_id, connectionHandle = 1);
Beispiele findest du auch hier
http://wiki.sa-mp.com/wiki/MySQL/R33#cache_save
Kommen wir nun zur zweiten Variante, welche ich bereits auch schon verwendet habe bei meinem Ingamemapeditor.
Das ist mit dem Memory access plugin und der zusätzlichen list.inc sehr gut umsetzbar da du damit dynamische Arrays erstellen kannst und das ganze strukturieren.
http://gta-sa-mp.de/forum/3-sa…393-memory-access-plugin/
Hier mal ein Beispiel um eine Datenstruktur zu erstellen und um dort werte zu speichern:
MEM::struct obj_mem_struct {
obj_mem_objectid,
obj_mem_materialindex,
obj_mem_modelid,
obj_mem_txdname[20],
obj_mem_texturename[20],
obj_mem_materialcolor,
};
new static LIST_init<streamer_material>;
native __SetDynamicObjectMaterial(objectid, materialindex, modelid, txdname[], texturename[], materialcolor = 0) = SetDynamicObjectMaterial;
stock static _SetDynamicObjectMaterial(objectid, materialindex, modelid, txdname[], texturename[], materialcolor = 0, bool:set=false) {
if(set)return __SetDynamicObjectMaterial(objectid, materialindex, modelid, txdname, texturename, materialcolor);
new obj_insert[_insert];
obj_insert[insert_objectid] = objectid;
obj_insert[insert_materialindex] = materialindex;
new ListIt:data = LIST_find_arr(streamer_material, obj_insert),object_buffer[obj_mem_struct];
if(data)LIST::erase(streamer_material,data);
object_buffer[obj_mem_objectid] = objectid;
object_buffer[obj_mem_materialindex] = materialindex;
object_buffer[obj_mem_modelid] = modelid;
strcat(object_buffer[obj_mem_txdname],txdname,20);
strcat(object_buffer[obj_mem_texturename],texturename,20);
object_buffer[obj_mem_materialcolor] = materialcolor;
LIST::push_back_arr(streamer_material, object_buffer);
return __SetDynamicObjectMaterial(objectid, materialindex, modelid, txdname, texturename, materialcolor);
}
#if defined _ALS_SetDynamicObjectMaterial
#undef SetDynamicObjectMaterial
#else
#define _ALS_SetDynamicObjectMaterial
#endif
#define SetDynamicObjectMaterial _SetDynamicObjectMaterial
Habe ein Problem benutze das MYSQL R7 von BlueG nun habe ich aber ein Filterscript gefunden was auf R34 läuft.
Nun wollte ich Fragen
Wie kann ich die Funktionen wie
cache_get_row_float
cache_get_row_int
und cache_insert_id
für das R7 verwendbar machen?.
Mal eine Allgemeine Frage..
Warum kann man sowas nicht machen?
new index;
if(sscanf(params,"i",index)) return 0;
new string[index]; // !! Error !!
/*
C:\das\isch\en\pfaht\xyz.pwn(-1) : error 008: must be a constant expression; assumed zero
C:\das\isch\en\pfaht\xyz.pwn(-1) : error 009: invalid array size (negative, zero or out of bounds)
C:\das\isch\en\pfaht\xyz.pwn(-1) : error 036: empty statement
C:\das\isch\en\pfaht\xyz.pwn(-1) : fatal error 107: too many error messages on one line
*/
Gibt es da eine Möglichkeit sowas zu machen? Denn das wäre mir gerade sehr nützlich ![]()
Vllt weil "index" zudem Zeitpunkt den wert 0 besitzt?
Vllt weil "index" zudem Zeitpunkt den wert 0 besitzt?
Das ist aber genauso mit Errors übersäht ![]()
new index = 15;
new indexStr[index];
Was willst du damit eigendlich anstellen?
Du kannst das auch über defines machen ![]()
Warum kann man sowas nicht machen?
Ganz einfach, weil PAWN nicht in der Lage ist, Speicher dynamisch zu generieren.
PAWN ist da leider sehr sehr statisch