Beiträge von [NWO]Nero

    Hallo Leute,


    ich habe heute 2 Fragen an euch.



    1. - Bots.


    ich habe gehört das es vorkommen kann, dass ein Server laggt oder andere Probleme aufkommen, wenn zu viele Bots drauf sind.
    Nun frage ich mich, ob es einen Unterschied macht, wenn der Bot nur an einer Stelle als "Deko" steht oder sich durch SA bewegt.



    2. - Skin als Objekt?


    Ich habe zufällig im Map-Editor gesehen, dass es dort auch Skins als Objekte gibt.
    Ich wollte wissen, ob das auch in SAMP funktioniert und habe mir dafür die CreateObjekt-Zeile ins Script gepackt.
    InGame habe ich festgestellt, dass dort wo ich den Skin hingestellt habe auch ein Objekt steht,
    aber keine Textur zu sehen ist, bzw. das Objekt unsichtbar ist.


    Gibt es einen Weg die Textur sichtbar zu machen?


    CreateObject(11, 213.98, 1903.10, 17.63, 90.00, 0.00, 0.00); // Objekt steht in der Area51 vorm Bunker!




    Gruß
    AlphaGen!

    Hallo Leute,


    ich habe ein keines Problem mit dem Cinematic Camera Script von Southclaw.
    Vorab sollte ich vielleicht sagen, dass Englisch nie mein Lieblingsfach war.


    Jedenfalls habe ich Gestern bereits mit Hilfe des Includes
    Positionen gesammelt, die beim Tutorial abgefahren werden sollen.



    Nun möchte ich das gante in meinem Tutorial einbauen,
    doch es passiert nichts, wenn sich jemand registriert.


    Ich lasse das ganze im Public für den Timer machen:
    forward Tutorial(playerid);
    public Tutorial(playerid)
    {
    new TutMove = LoadCameraMover("/Cameras/Tutorial_1");
    PlayCameraMover(playerid,TutMove,0, bool: true, bool: false);
    return 1;
    }



    Es wäre nett, wenn mir jemand etwas Hilfestellung geben könnte!




    Gruß
    AlphaGen!

    Hast du schonmal Compiled?
    Das ist ein Fehler den man in unter 5 Sek. findet.... :pinch:


    if(FrakCarInfo[v][fcVehFrak] != SpielerInfo[playerid][pFraktion]) return SendClientMessage(playerid,ROT,"Dieses Fahrzeug gehört nicht deiner Fraktion!");
    {


    Was soll an dieser Abfrage denn Falsch sein?
    Sie fragt ab, ob die dem Fahrzeug zugewiesene Fraktion nicht mit der des Spielers übereinstimmt.
    Wenn das der fall ist, soll die Nachricht erscheinen.

    Hallo Leute,


    ich bin gerade dabei einen '/fpark'-Befehl zu schreiben, damit der Leader einer Fraktion die Fraktionscars umparken kann.
    Ich habe mich dafür mit meinen (nennen wir es einmal "geringen") Englischkenntnissen auf www.wiki.sa-mp.com/wiki/MySQL
    umgesehen und mir folgenden Befehl erstellt/gebastelt.


    if (strcmp("/fpark", cmdtext, true, 10) == 0) // Leader
    {
    new v = GetPlayerVehicleID(playerid);
    if(SpielerInfo[playerid][pFraktion] == 0) return 1;
    if(SpielerInfo[playerid][pLeader] != 1) return 1;
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,ROT,"Du bist in keinem Fahrzeug!");
    if(FrakCarInfo[v][fcVehFrak] != SpielerInfo[playerid][pFraktion]) return SendClientMessage(playerid,ROT,"Dieses Fahrzeug gehört nicht deiner Fraktion!");
    {
    new Query[160], Float:X,Float:Y,Float:Z,Float:z_rot, name[MAX_PLAYER_NAME]; GetVehiclePos(v, X,Y,Z); GetVehicleZAngle(v, z_rot);
    // ---> format(Query, sizeof Query, "UPDATE `frak%i_cars´ SET PosX = %f WHERE FahrzeugID = '%i'",FrakCarInfo[v][fcVehFrak],X,FrakCarInfo[v][fcFahrzeugID]); mysql_query(Query);
    // ---> format(Query, sizeof Query, "UPDATE `frak%i_cars´ SET PosY = %f WHERE FahrzeugID = '%i'",FrakCarInfo[v][fcVehFrak],Y,FrakCarInfo[v][fcFahrzeugID]); mysql_query(Query);
    // ---> format(Query, sizeof Query, "UPDATE `frak%i_cars´ SET PosZ = %f WHERE FahrzeugID = '%i'",FrakCarInfo[v][fcVehFrak],Z,FrakCarInfo[v][fcFahrzeugID]); mysql_query(Query);
    // ---> format(Query, sizeof Query, "UPDATE `frak%i_cars´ SET PosA = %f WHERE FahrzeugID = '%i'",FrakCarInfo[v][fcVehFrak],z_rot,FrakCarInfo[v][fcFahrzeugID]); mysql_query(Query);
    GetPlayerName(playerid, name, sizeof(name)); format(Query, sizeof(Query), "[INFO] -> %s hat das Fahrzeug mit der Fahrzeug-ID: [%i] umgeparkt!",name,FrakCarInfo[v][fcFahrzeugID]);
    SendFrakMessage(HELLBLAU,Query,SpielerInfo[playerid][pFraktion]);
    }
    return 1;
    }


    Bis auf das die Fahrzeuge auch wirklich umgepart werden, funktioniert eigentlich alles.
    Es scheint so, als ob der extra für diesen Thread heraus kommentierte Abschnitt nicht funktioniert.
    Dieser Abschnitt soll die Position und die Angle des jeweiligen Fahrzeuges speichern.


    Es wäre nett, wenn mir jemand helfen könnte.




    Gruß
    AlphaGen!


    Vielen Dank, es scheint zu klappen!


    Zwei Fragen stell ich mir aber gerade:
    1. Warum 'v = 1' und nicht 'v = 0' ?
    2. Es ist mir bereits öfter aufgefallen, dass ich durch manche Fahrzeuge durchlaufen kann. - Liegt das am Script oder an der Version (0.3x)?

    Hallo Leute,


    ich habe derzeit das Problem, dass meine Fahrzeuge scheinbar nicht mit den richtigen Infos gespawnt/bestückt werden.


    Ich lasse die Fahrzeuge der einzellnen Fraktionen über solch einen Stock laden/erstellen:
    stock LoadFrakCars1()
    {
    new Query[128], v, fcarload1;
    mysql_query("SELECT * FROM `frak1_cars`"); mysql_store_result(); while(mysql_fetch_row_format(Query))
    { sscanf(Query, "p<|>e<{i}iiffffii>", FrakCarInfo[v]); SetVehicleNumberPlate(CreateVehicle(FrakCarInfo[v][fcModel], FrakCarInfo[v][fcPosX], FrakCarInfo[v][fcPosY], FrakCarInfo[v][fcPosZ], FrakCarInfo[v][fcPosA], FrakCarInfo[v][fcCol1], FrakCarInfo[v][fcCol2], -1),"LSPD"); v++; fcarload1 = 1; }
    if(fcarload1 != 0) { print("<-| [MYSQL] - [FRAKTION_1] | Alle Fahrzeuge wurden erfolgreich geladen!"); } else { print("<-| [ERROR] - [FRAKTION_1] | Die Fahrzeuge konnten nicht geladen werden!"); }
    mysql_free_result();
    return 1;
    }


    Den Stock starte ich unter OnGameModeInit und lasse die Fahrzeuge direkt nachdem der Stock fertig ist respawnen.
    public OnGameModeInit()
    {
    LoadFrakCars1();
    new v = 0; for(;v < MAX_VEHICLES; v++) { SetVehicleToRespawn(v); }
    return 1;
    }


    Respawnen lasse ich die Fahrzeuge Aufgrund dessen, damit die (jeweils 4) Sultäne des LSPD und der Army Sirenen haben.
    - Derzeit lasse ich nur die Fraktionsfahrzeuge des LSPD's laden/erstellen.
    Siehe da:
    public OnVehicleSpawn(vehicleid)
    {
    if(FrakCarInfo[vehicleid][fcModel] == 560 && FrakCarInfo[vehicleid][fcVehFrak] == 3 || FrakCarInfo[vehicleid][fcModel] == 560 && FrakCarInfo[vehicleid][fcVehFrak] == 1)
    {
    DestroyObject(sirene1[vehicleid]);
    sirene1[vehicleid] = CreateObject(19420,0,0,0,0,0,0,100);
    AttachObjectToVehicle(sirene1[vehicleid],vehicleid,0,0.0,0.8,0,0,0);
    printf("Sirene an Fahrzeug [%i] montiert!", vehicleid);
    }
    return 1;
    ]


    Dem Anschein nach hat alles Funktioniert, printf gibt folgendes aus:

    SQL
    [14:51:34] Sirene an Fahrzeug [21] montiert!
    [14:51:34] Sirene an Fahrzeug [22] montiert!
    [14:51:34] Sirene an Fahrzeug [23] montiert!
    [14:51:34] Sirene an Fahrzeug [24] montiert!


    Wenn ich nun InGame gehe und die Sultäne betrachte, fehlt bei einen der Sultäne die Sirene.
    Die Sirene die eigentlich am Sultan seien sollte, ist an einem Wasserwerfer attached.


    Um zu überprüfen, das dabei schief gelaufen ist, habe ich mir kurz folgenden Befehl gemacht:


    if (strcmp("/test", cmdtext, true, 10) == 0) //TEST
    {
    if(!IsPlayerInAnyVehicle(playerid)) return 1;
    {
    new string[128], v = GetPlayerVehicleID(playerid);
    format(string, sizeof(string), "Fahrzeug VehicleID: %i| Fraktion: %i | Model: %i",v,FrakCarInfo[v][fcVehFrak],FrakCarInfo[v][fcModel]);
    SendClientMessage(playerid,ROT,string);
    }
    return 1;
    }


    Wenn ich nun in den Sultan steige, an dem die Sirene fehlt und '/test' eingebe, erscheint folgende Nachricht:

    SQL
    [14:47:54] Fahrzeug VehicleID: 25| Fraktion: 0 | Model: 0


    Und wenn ich in den Wasserwerfer einsteige und '/test' eingebe, erscheint komischerweise folgende Nachricht:


    SQL
    [14:48:12] Fahrzeug VehicleID: 21| Fraktion: 1 | Model: 560


    Demnach müsste der Sultan eigentlich garnicht da sein und der Wasserwerfer müsste ein Sultan sein. - Was aber nicht so ist!



    Nun weiß ich nicht weiter, vielleicht könntet ihr mir bitte weiter helfen.
    - Ich bedanke mich schonmal für die Hilfe!




    Gruß
    AlphaGen!

    Wie werden denn die Fahrzeuge erstellt? Auch unter OnGameModeInit, oder werden sie extern erst geladen und dann erstellt?
    Könnte nämlich sein, dass wenn du die Fahrzeuge in einer Datenbank/Datei hast und dann lädst und erstellst, dass der eine Sultan noch nicht erstellt wurde.


    Mfg,
    UncleSub


    Edit: Das es bei OnVehicleSpawn nicht geht, liegt daran, dass dieses Callback erst aufgerufen wird, wenn ein Fahrzeug REspawnt.


    Alle Fahrzeuge werden aus einer Datenbank per stock geladen und erstellt.


    Ich frage mich, ob es gehen würde wenn ich das ganze unzer OnVehicleSpawn mache würde und die Fahrzeuge direkt nach dem erstellen respawnen lasse.

    Hallo Leute,


    ich habe eine Fraktion mit insgesammt 40 Fraktionsfahrzeugen, davon sind 4 Sultäne.
    Diese Sultäne sollen bereits beim starten des Servers Sirenen haben, doch nur 3 von
    den Sulätnen haben auch wirklich eine Sirene.


    Die Sirenen klatsch' ich unter OnGameModeInit an die 4 Sultäne.


    Die Zeilen:

    new sirene1[MAX_VEHICLES];


    public OnGameModeInit()
    {
    for(new v=0; v<MAX_VEHICLES; v++) //Geht jedes Fahrzeug durch.
    {
    if(FrakCarInfo[v][fcModel] == 560 && FrakCarInfo[v][fcVehFrak] == 3) //Wenn das Fahrzeug ein Sultan ist && zu Fraktion "3" gehört.
    {
    sirene1[v] = CreateObject(19420,0,0,0,0,0,0,100); AttachObjectToVehicle(sirene1[v],v,0,0.0,0.8,0,0,0); printf("Sirene an %i montiert!",v);
    }
    }
    return 1;
    }


    Die Konsole gibt folgendes aus:

    SQL
    [20:37:41] Sirene an 62 montiert!
    [20:37:41] Sirene an 63 montiert!
    [20:37:41] Sirene an 64 montiert!
    [20:37:41] Sirene an 65 montiert!


    Demnach sollten doch alle Sirenen an den Sultänen zu sehen sein.


    Es wäre nett wenn mir jemand helfen könnte!




    Gruß
    AlphaGen!

    Es hat sich leider immer noch nichts geändert.


    Derzeitiger Code:


    stock LoadFrakCars()
    {
    new Query[128], v;
    mysql_query("SELECT * FROM `frakcars`");
    mysql_store_result();
    while(mysql_fetch_row_format(Query))
    {
    printf("%s",Query);
    sscanf(Query, "p<|>e<{i}-i{i}iffffii>", FrakCarInfo[v]);
    //sscanf(Query, "p<|>e<iiiffffii>", FrakCarInfo[v]);
    //sscanf(Query, "p<|>e<-i{i}iffffii>", FrakCarInfo[v]);
    FrakCarInfo[v][fcVehid] = CreateVehicle(FrakCarInfo[v][fcModel], FrakCarInfo[v][fcPosX], FrakCarInfo[v][fcPosY], FrakCarInfo[v][fcPosZ], FrakCarInfo[v][fcPosA], FrakCarInfo[v][fcCol1], FrakCarInfo[v][fcCol2], -1);
    printf("<-| [MYSQL] | Das Fraktionsfahrzeug mit der Modelid (%i) an PosX (%f) wurde erfolgreich geladen!",FrakCarInfo[v][fcModel], FrakCarInfo[v][fcPosX]);
    v++;
    }
    mysql_free_result();
    return 1;
    }

    Hier die jetzigen Zeilen:



    stock LoadFrakCars()
    {
    new Query[128], v;
    mysql_query("SELECT * FROM `frakcars`");
    mysql_store_result();
    while(mysql_fetch_row_format(Query))
    {
    printf("%s",Query);
    sscanf(Query, "p<|>e<iiiffffii>", FrakCarInfo[v]);
    //sscanf(Query, "p<|>e<-i{i}iffffii>", FrakCarInfo[v]);
    FrakCarInfo[v][fcVehid] = CreateVehicle(FrakCarInfo[v][fcModel], FrakCarInfo[v][fcPosX], FrakCarInfo[v][fcPosY], FrakCarInfo[v][fcPosZ], FrakCarInfo[v][fcPosA], FrakCarInfo[v][fcCol1], FrakCarInfo[v][fcCol2], -1);
    printf("<-| [MYSQL] | Das Fraktionsfahrzeug mit der Modelid (%i) an PosX (%f) wurde erfolgreich geladen!",FrakCarInfo[v][fcModel], FrakCarInfo[v][fcPosX]);
    v++;
    }
    mysql_free_result();
    return 1;
    }


    Hier fogendes steht bezüglich dieser Angelegenheit im Server_Log


    [20:34:07] 262|0|565|241.03120|1873.37366|11.12780|173.69389|67|43
    [20:34:07] <-| [MYSQL] | Das Fraktionsfahrzeug mit der Modelid (0) an PosX (0.000000) wurde erfolgreich geladen!


    Der letzte Eintrag im mysql_log ist vom 17.02.2013.

    SSCANF habe ich nicht als Plugin, sondern als Stock ganz untem im Script. Das sollte doch keinen Unterschied machen, oder?
    "str" wurde mir als undefiniertes Symbol gemeldet (siehe Zeile 8 in deinem Quelltext), ich bin mal davon ausgegangen, dass damit "Query" gemeint war? ?(


    Desweiteren hat es nicht funktioniert, ich habe mir das, was zb. fcModel und fcPosX wiedergeben direkt nachdem das Fahrzeug erstellt sein sollte printen lassen:
    new string[128]
    format(string,sizeof(string),"<-| [MYSQL] | Das Fraktionsfahrzeug mit der Modelid (%i) an PosX (%f) wurde erfolgreich geladen!",FrakCarInfo[v][fcModel], FrakCarInfo[v][fcPosX]); print(string);


    Folgendes gab die Console aus:
    ,,[19:51:57] <-| [MYSQL] | Das Fraktionsfahrzeug mit der Modelid (0) an PosX (0.000000) wurde erfolgreich geladen!"


    In der Tabelle habe ich die Daten für ein Fahrzeug in einer Zeile reingeschrieben.
    Das es daran liegt, dass der Stock kein Fahrzeug zum erstellen hat, kann es also eigentlich nicht sein.

    Hallo Leute,


    ich habe ein Problem damit Fraktionsfahrzeuge mit MYSQL spawnen/erstellen zu lassen.
    Laut Console wurden die Fraktionsfahrzeuge gespawnt/erstellt, aber dennoch sind die nirgends.


    Ich habe nicht so wirklich viel Ahnung mit Mysql, daher fällt es mir schon etwas schwer
    den Fehler selbst zu finden, ich habe die Zeilen vom Loginsystem zusammengewürfelt.


    Vielleicht findet ihr einen/den Fehler:
    enum FrakCarDaten
    {
    fcVehid,
    fcModel,
    Float:fcPosX,
    Float:fcPosY,
    Float:fcPosZ,
    Float:fcPosA,
    fcCol1,
    fcCol2
    }
    new FrakCarInfo[MAX_VEHICLES][FrakCarDaten];


    public OnGameModeInit()
    {
    LoadFrakCars();
    return 1;
    }


    stock LoadFrakCars()
    {
    new fcarload;
    for(new v = 0; v < MAX_VEHICLES; v++)
    {
    FrakCarInfo[v][fcVehid] = mysql_GetInt("frakcars", "Vehid", "Vehid", FrakCarInfo[v][fcVehid]);
    FrakCarInfo[v][fcModel] = mysql_GetInt("frakcars", "Model", "Vehid", FrakCarInfo[v][fcVehid]);
    FrakCarInfo[v][fcPosX] = mysql_GetFloat("frakcars", "PosX", "Vehid", FrakCarInfo[v][fcVehid]);
    FrakCarInfo[v][fcPosY] = mysql_GetFloat("frakcars", "PosY", "Vehid", FrakCarInfo[v][fcVehid]);
    FrakCarInfo[v][fcPosZ] = mysql_GetFloat("frakcars", "PosZ", "Vehid", FrakCarInfo[v][fcVehid]);
    FrakCarInfo[v][fcPosA] = mysql_GetFloat("frakcars", "PosA", "Vehid", FrakCarInfo[v][fcVehid]);
    FrakCarInfo[v][fcCol1] = mysql_GetInt("frakcars", "Col1", "Vehid", FrakCarInfo[v][fcVehid]);
    FrakCarInfo[v][fcCol2] = mysql_GetInt("frakcars", "Col2", "Vehid", FrakCarInfo[v][fcVehid]);
    FrakCarInfo[v][fcVehid] = CreateVehicle(FrakCarInfo[v][fcModel], FrakCarInfo[v][fcPosX], FrakCarInfo[v][fcPosY], FrakCarInfo[v][fcPosZ], FrakCarInfo[v][fcPosA], FrakCarInfo[v][fcCol1], FrakCarInfo[v][fcCol2], -1);
    fcarload = 1;
    }
    if(fcarload == 1) { print("<-| [MYSQL] | Alle Fraktionsfahrzeuge wurden erfolgreich geladen!"); }
    else { print("<-| [ERROR] | Die Fraktionsfahrzeuge konnten nicht erfolgreich geladen werden!"); }
    return 1;
    }


    Die Tabelle:
    CREATE TABLE `frakcars` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `Vehid` int(11) NOT NULL,
    `Model` int(11) NOT NULL,
    `PosX` float(9,5) NOT NULL,
    `PosY` float(9,5) NOT NULL,
    `PosZ` float(9,5) NOT NULL,
    `PosA` float(9,5) NOT NULL,
    `Col1` int(11) NOT NULL,
    `Col2` int(11) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=263 DEFAULT CHARSET=latin1;



    Es wäre echt nett, wenn mir jemand helfen könnte!




    Gruß
    AlphaGen!