sSpieler[playerid][Team] = dini_Get(spieler,"Team");
Nutze:
format(sSpieler[playerid][Team],32,dini_Get(spieler,"Team"));
sSpieler[playerid][Team] = dini_Get(spieler,"Team");
Nutze:
format(sSpieler[playerid][Team],32,dini_Get(spieler,"Team"));
Möööp, Falsch Kaliber.
Problem lag an diese Doofen Runtime Dinger, habe so ein All In One Paket bei Chip gefunden, Geladen und Installiert dann ging es.
Dann...sollteste das Nächste mal vielleicht den ganzen Log posten...dann würde man sehen, dass unter dem MySQL Plugin loaded...ein failed steht ![]()
...dein Plugin & dein Include haben nicht die selbe Version ![]()
Ja hatte einen Fehler gemacht gehabt ![]()
Schreib mal den Code so..wie ich ihn editiert hatte, dann sollte es gehen ![]()
Okay, stehen denn Daten in der Tabelle?
Und steht iwas im mysql_log?
//Edit: schreibs mal so:
forward LoadFrakCars();
public LoadFrakCars(){
//Mal für diese Funktion 2 schnieke Makros:
#define mysql_int(%0,%1) mysql_fetch_field_row(data,%0),%1=strval(data)
#define mysql_float(%0,%1) mysql_fetch_field_row(data,%0),%1=floatstr(data)
//Rest Code
new data[16]; //Brauchst doch keine 255 Cells und die anderen Variablen :D
mysql_query("SELECT * FROM `fcars`");
mysql_store_result();
data[0] = mysql_num_rows();
if(data[0] > 0)
{
while(mysql_retrieve_row())
{
new id=getFreeCarID();
mysql_int("carid",FrakCar[id][model]);
mysql_int("color_1",FrakCar[id][color_1]);
mysql_int("color_2",FrakCar[id][color_2]);
mysql_float("c_x",FrakCar[id][c_x]);
mysql_float("c_y",FrakCar[id][c_y]);
mysql_float("c_z",FrakCar[id][c_z]);
mysql_float("c_r",FrakCar[id][c_r]);
mysql_int("fid",FrakCar[id][FrakID]);
FrakCar[id][id_x] = CreateVehicle(FrakCar[id][model],FrakCar[id][c_x],FrakCar[id][c_y],FrakCar[id][c_z],FrakCar[id][c_r],FrakCar[id][color_1],FrakCar[id][color_2],-1);
}
}
mysql_free_result();
#undef mysql_int
#undef mysql_float
return 1;
}
Alles anzeigen
Es kommen keine Warning Codes.
Das ist doch schonmal was ![]()
Nun...wenn es dann nicht klappt schau mal in den mysql log...bzw check deine Daten und printe mal was dir so ausgegeben wird...
Muss ja an irgendwas liegen ![]()
geht trotzdem noch nicht leider.
Was eine präzise Antwort...
Was geht nicht, kommen Warnings?
Wenn ja, dann poste mal, wie du sonst solche Abfragen machst und welches MySQL Include du verwendest...
Alles anzeigenFrakCar[id][model] = mysql_get_field("carid");
FrakCar[id][color_1] = mysql_get_field("carid");
FrakCar[id][color_2] = mysql_get_field("carid");
FrakCar[id][c_x] = mysql_get_field("carid");
FrakCar[id][c_y] = mysql_get_field("carid");
FrakCar[id][c_z] = mysql_get_field("carid");
FrakCar[id][c_r] = mysql_get_field("carid");
FrakCar[id][FrakID] = mysql_get_field("carid", data);
Das ist non-sense...da du immer das Feld von "carid" nimmst ud mysql_get_field übergibst du auch immer noch die falschen Argumente.
Richtig wäre es so:
forward LoadFrakCars();
public LoadFrakCars(){
//Mal für diese Funktion 2 schnieke Makros:
#define mysql_int(%0,%1) mysql_get_field(%0,data),%1=strval(data)
#define mysql_float(%0,%1) mysql_get_field(%0,data),%1=floatstr(data)
//Rest Code
new data[16]; //Brauchst doch keine 255 Cells und die anderen Variablen :D
mysql_query("SELECT * FROM `fcars`");
mysql_store_result();
data[0] = mysql_num_rows();
mysql_free_result();
if(data[0] > 0)
{
new id=getFreeCarID();
mysql_int("carid",FrakCar[id][model]);
mysql_int("color_1",FrakCar[id][color_1]);
mysql_int("color_2",FrakCar[id][color_2]);
mysql_float("c_x",FrakCar[id][c_x]);
mysql_float("c_y",FrakCar[id][c_y]);
mysql_float("c_z",FrakCar[id][c_z]);
mysql_float("c_r",FrakCar[id][c_r]);
mysql_int("fid",FrakCar[id][FrakID]);
FrakCar[id][id_x] = CreateVehicle(FrakCar[id][model],FrakCar[id][c_x],FrakCar[id][c_y],FrakCar[id][c_z],FrakCar[id][c_r],FrakCar[id][color_1],FrakCar[id][color_2],-1);
}
#undef mysql_int
#undef mysql_float
return 1;
}
Alles anzeigen
Hast mal apache neugestartet? ![]()
bzw apt get update ![]()
Überall da wo du [killerid] nutzt musst du dich vergewissern, dass oben drüber steht:
if(killerid!=INVALID_PLAYER_ID)
{
//Hier dann der rest Code
}
Schau mal in Zeile 69 (rofl).
Du nutzt killerid in einem Array..allerdings prüfst du nicht ob killerid gültig ist.
Ich zitiere mal das Wiki so schön:
You MUST check whether 'killerid' is valid (not INVALID_PLAYER_ID) before using it in an array (or really anywhere), as it will cause the OnPlayerDeath script to crash (not the entire script). This is because INVALID_PLAYER_ID is defined as 65535, and if an array only has 'MAX_PLAYERS' elements, e.g. 500, you're trying to access an index that is above 499, which is out of bounds.
Um was für Systeme es sich grob handelt..wäre doch schon irgendwie relevant oder? ![]()
...gut dieser Codeschnipsel bringt nicht wirklich viel...
Zeig doch mal den ganzen Command ![]()
Damit wir sehen..wie du alles zuweist...etc ![]()
sollten die anderen Passanten die dies gesehen haben weg laufen.
Dies geht leider nicht...zum einen da die Routen...gerade sind, ist das nicht wirklich doll, zum anderen gibt es mit dem Rennen ein Problem bei der Synchronisierung...der Weg von den Actors wird ja von mir berechnet...aber wenn sie rennen...muss das alles ganz anders Synchronisiert werden...eigentlich bewegen sich actoren durch animationen nicht von der Stelle ![]()
Aber solch eine Synchro ist nicht so gut möglich..da der Tick Interval..so bei 2-5ms liegen würde...damit das flüssig aussieht..das nicht so ganz gesund ![]()
Zeig uns evtl deinen Code? ![]()
Sonst müssten..wir irgendwie raten..
Actors bleiben bei leeren Autos stehen. Ich sehe schon die 13 jährigen Kiddis die nen Sultan hinstellen und Actors stauen. Sich dann bei Mama ausweinen weil ihre Graka so viele Actors auf einem Fleck nicht hält.
Also das ist ja so ein Quatsch...
1. Kann man logischerweise nur mit dem Auto Actors anhalten die unmittelbar in der Nähe sind...ehh das bedeutet...alle die auf dieser kurzen Route laufen..und das sind vielleicht 1-2...
2. Hat das nichts mit der Graka zu tun...
3. Wird da nix überlastet...da die Actors so oder so sich bewegen..bzw eben nicht..und nur Animationen ausführen...das macht überhaupt keinen Unterschied, wenn die sich nicht bewegen, ist das sogar eigentlich noch besser, da keine Positionen gesetzt werden ![]()
Naja nichts besonderes... es gibt auch schon ein FS die diese Möglichkeiten bietet. Für die Mühe und Zeit... kann man es trotzdem Loben.
Nein es gibt noch kein Filterscript was auch nur in der Art so etwas macht.
Und das war nicht wirklich Zeit intensiv...sind nur um die 100-150 Zeilen...
War es nicht so, dass Actors nicht synchronisiert werden? Wie hast du das behoben?
Durch einen regelmäßigen Sync ![]()
Ich würde es noch besser finden, wenn man mehrere Knoten angeben kann, damit der Actor nicht nur starr geradeaus läuft.
Joaa könnt ich noch machen, wobei dann die Abfragen komplexer werden ![]()
Es wäre in dem Fall sogar einfacher andere Actors erstellen die dann einfach den neuen Weg lang laufen...xD
Was soll das heißen ?
Dass dieses Plugin nicht in deinem Plugins Ordner ist... ![]()
Schau mal evtl auf den Namen und die Endung... .so und nicht .dll..und groß & Kleinschreibung...bla blub ![]()
Also, jeder von euch kennt das Problem welches man in SA:MP hat.
Zumindest hat es mich damals sehr gestört, als ich von dem Singleplayer in den Multiplayer Mode gegangen bin...es gibt keine Fußgänger mehr, die man hemmungslos abschlachten kann ![]()
Viele Server probieren dies mit Bots (NPCs) zu machen..aber das ist nicht wirklich elegant, da man ein externes Plugin brauch um das wirklich gut zu machen z.B. FCNPC...und naja, das frisst sowohl Server Slots, als auch CPU ![]()
Desweiteren ist es nicht wirklich leicht...diese einfach zu erstellen, dass sie schöne Routen laufen bzw viele auf einmal ![]()
Ich habe nun mal ein Filterscript erstellt, man dem man einfach ganz viele solcher Fußgänger erstellen kann und denen ein kleines Brain wie im Singleplayer gegeben.
Sie erkennen, wenn ein Auto vor ihnen steht und sie halten dann dementsprechend an, zu sehen in diesem Video:
Weiterhin, wenn man sie bedroht nehmen sie die Hände hoch..und wenn man sie erschießt, kommt schönes Blut und man selbst hat dann Blut an den Füßen :3
Wie man hier schön sieht:
Das System funktioniert mit Actors die sich syncen. Der Prozess allerdings um z.B. ~25 Actors zu syncen dauert nur im maximum 1ms...
Insofern ist das eine effiziente Art diese zu erstellen:
Die Funktion dafür sieht nur so aus:
AddActor(skinid,Float:x,Float:y,Float:z,Float:a,Float:dis)
Und nun läuft der Actor immer gerade aus...bis die Distanz erreicht wurde...danach dreht er wieder um ![]()
Könnt ja mal paar Kommentare da lassen ![]()
Source-Code: Neues Dynamisches Fußgänger Skript :)
, jedoch denke ich das es definitiv einfach ist als z.B Clash of Clans.
Hahahaha ![]()
Klar, bin mir sicher Clash of Clans wurde in ner Woche von einer Person geschrieben..und nicht von einem großen Entwickler Team über mehrere Monate-Jahre...hinweg ![]()
Clash of Clans ist ziemlich komplex, auch wenn es auf dem ersten Blick nicht so aussieht ![]()
Flappy Bird hingegen ist nicht so eine große Herausforderung.
Es gibt auch im Internet viele Tutorials wie man genau sowas schreibt und besonders schöne Entwickler Tools, wenn man einen guten PC hat für den Emulator..etc ![]()