Beiträge von Stas

    Das Problem ist diese Zeile kann nicht unendlich lang sein was machste dann???
    format(auto,sizeof(auto),"INSERT INTO `Autos` (`ID`,`Modell`,`Besitzer`) VALUES ('%d','%d','%s')",


    So in etwa:



    new
    c_string_table[4][256];


    format(c_string_table[0],256,"UPDATE samp_autos SET `ID`='%d',`Lamps`='%d',`PaintJob`='%d',`Model`='%d',`Pos_X`='%f',`Pos_Y`='%f',`Pos_Z`='%f',`Pos_Rotation`='%f'",PlayerCar[playerid][x][CarId],PlayerCar[playerid][x][CarLamps],PlayerCar[playerid][x][CarPJ],PlayerCar[playerid][x][CarModel],PlayerCar[playerid][x][CarPos_x],PlayerCar[playerid][x][CarPos_y],PlayerCar[playerid][x][CarPos_z],PlayerCar[playerid][x][CarRotate]);
    format(c_string_table[1],256,",`Nitro`='%d',`Hyd`='%d',`Wheel`='%d',`Auspuff`='%d',`Sidel`='%d',`SideR`='%d',`Kennzeichen`='%d'",PlayerCar[playerid][x][CarNitro],PlayerCar[playerid][x][CarHyd],PlayerCar[playerid][x][CarWheel],PlayerCar[playerid][x][CarAusp],PlayerCar[playerid][x][CarSideL],PlayerCar[playerid][x][CarSideR],PlayerCar[playerid][x][CarKZ]);
    format(c_string_table[2],256,",`FB`='%d',`RB`='%d',`Spoiler`='%d',`Roof`='%d',`Hood`='%d',`Vents`='%d',`Benzin`='%d'",PlayerCar[playerid][x][CarFB],PlayerCar[playerid][x][CarRB],PlayerCar[playerid][x][CarSpoiler],PlayerCar[playerid][x][CarRoof],PlayerCar[playerid][x][CarHood],PlayerCar[playerid][x][CarVents],PlayerCar[playerid][x][CarBenzin]);
    format(c_string_table[3],256,",`Farbe0`='%d',`Farbe2`='%d',`Preis`='%d',`Spawn`='%d',`Waffe`='%d',`Munition`='%d' WHERE (`Besitzer` = '%s')",PlayerCar[playerid][x][CarC1],PlayerCar[playerid][x][CarC2],PlayerCar[playerid][x][CarPreis],PlayerCar[playerid][x][cc_Spawn],PlayerCar[playerid][x][CarWaffe],[x][CarMunition],pName,cc_PlayerKey[playerid]);
    format(query,sizeof(query),"%s%s%s%s",c_string_table[0],c_string_table[1],c_string_table[2],c_string_table[3]);
    mysql_query(query);

    ähhm nein?


    Wisst ihr überhaupt wo der Unterschied zwischen public, stock oder der normalen Funktion ist?
    Nur weil das im Kackfather steht, bedeutet das noch lange nicht, das es "richtig" ist.


    public sollte man nur dann nutzen, wenn man diese Funktion über einen Timer oder externes Filterscript aufrufen will.
    stock bedeutet, dass die Funktion, falls diese nicht verwendet wird, einfach übersprungen wird.
    Daher bleibt dir nur die normale Funktion ...


    und zwar:


    MyDialogStatsSystem(playerid){ // Klammer öffnen
    // new .....
    // GetPlayerName .....
    format(String, sizeof(String), "[Stats von %s]\nNickname: %s\nScore: %d\n Geld: %d", Name, Name, Score, Geld); // Unsere (New's) die wir oben neu angelegt haben - immer mit einem , trennen :5
    ShowPlayerDialog(playerid, DIALOG_STYLE_MSGBOX, 0, "Mein Spiel Stand", String, "Weiter", "Weiter"); // Öffne das Dialog fenster beim Spieler
    return 1;
    } // Klammer wieder schließen.



    if (strcmp(cmd, "/stats", true) == 0) // unser Command, kann natürlich auch anders angeordnet sein jenachdem wie er bei euch im Script definiert ist!
    {
    MyDialogStatsSystem(playerid); // Öffnet unsere Stats :5
    return 1;
    }



    EDIT: Julian, war nicht an dich. Hast bloss vor mir gepostet.

    Mach eine Funktion ("LadeAutos") und lass sie Daten aus MySQL oder Ini Datei auslesen. Das erstelte Auto wird zB in einem Array gespeichert, außerdem wird dann eine Variable erhöht.
    Bei OnVehicleSpawn fragst du dann ab, ob die AutoID größer deiner Variablen ist.


    Außerdem kannst du so "dynamische" Autos erstellen. Welche du InGame bearbeiten kannst. Sprich umparken, Farbe/Model ändern, blablabla.



    Zitat

    Das Spawntool arbeitet nicht so wie du denkst, es spawnt kein neues fahrzeug sondern es portet ein vorhandes gewünschtes fahrzeug zu dir.


    Wenn es aber so funktioniert, musst du bloss dafür sorgen, dass ein keine einfachen Straßenautos gibt, in die der Spieler einfach so einsteigen kann.
    Sprich nur Fraktionautos, Berufautos oder SpielerAutos, die nur der Besitzer auf und ab schließen kann.


    Mach:
    stock ClearScreen(playerid)
    {
    for(new i = 0; i < 50; i++)
    {
    SendClientMessageToAll(COLOR_WHITE, " ");
    }
    //return 0;
    }

    Deinem Code zufolge sollten es nur SWAT-Leader können. Du müsstest genau genommen das gleiche nicht nur für pLeader sondern auch für pMember angeben.

    Wo ist das Problem? Macht es 2 zeilig:
    // versende mehrzeiligen Text
    SendClientMessageEx(playerid,farbe,text[])
    {
    if(strlen(text) <= 68) SendClientMessage(playerid,farbe,text);
    else {
    new string[61];
    strmid(string,text,68,129);
    strins(text, "-", 68, 1);
    strdel(text, 69, 129);
    SendClientMessage(playerid,farbe,text);
    SendClientMessage(playerid,farbe,string);
    }
    }

    Take this Baby:


    if(strcmp(cmd, "/take", true) == 0)
    {
    if(gTeam[playerid] == 2 || IsACop(playerid)) {
    if(PlayerInfo[playerid][pRank] < 2) {
    SendClientMessage(playerid, COLOR_GREY, "Du benötigst Rank 2 oder höher!");
    return 1;
    }

    new
    x_nr[128];

    x_nr = strtok(cmdtext, idx);
    if(!strlen(x_nr)) {
    SendClientMessage(playerid, COLOR_WHITE, "|__________________ Lizensen wegnehmen __________________|");
    SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /take [lizensname] [spielerid/teildesnamens]");
    SendClientMessage(playerid, COLOR_GREY, "Verfügbare Namen: Autoschein, Flugschein, Bootschein, Waffenschein, Waffen, Drogen, Materialien, Lkwschein, Motorradschein");
    SendClientMessage(playerid, COLOR_WHITE, "|___________________________________________________|");
    return 1;
    }
    if(strcmp(x_nr,"Autoschein",true) == 0) {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) {
    SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /take Autoschein [spielerid/teildesnamens]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);


    if(IsPlayerConnected(giveplayerid)) {
    if(giveplayerid != INVALID_PLAYER_ID) {
    if (ProxDetectorS(8.0, playerid, giveplayerid)) {
    // Hier muss der Name abgefragt werden, da davor giveplayerid noch nicht zugewiesen wurde
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    // Hier wird der Text dann versendet
    format(string, sizeof(string), "* Du hast den Autoschein von %s weggenommen.",giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Officer %s hat dir deinen Autoschein weggenommen.", sendername);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    PlayerInfo[giveplayerid][pCarLic] = 0;
    }
    else {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist zu weit entfernt!");
    return 1;
    }
    }
    }
    else {
    SendClientMessage(playerid, COLOR_GREY, "Diesen Spieler gibt es nicht!");
    return 1;
    }
    }
    }
    }


    ;)