Beiträge von theralio10

    Neuen Enum erstellen und statt e_vID bei CreateVehicle zu verwenden, verwendest du eine neue......
    Sonst überschreibst du die DatenbankID mit der VehicleID :P

    Schade wollte mir gerade mal angucken wie ein /carsell command funktioniert aber der funktioniert ja mit dem Spielernamen das ist hier ja schlecht möglich

    Also bei mir geht alles wunderbar nur jetzt noch die letzte finale frage dann ist alles perfekt


    wie gleiche ich die MySQL ID mit der ingame id ab? https://pic-upload.pw/img/0cd

    e_vID weist du zwar anfangs der DatenbankID zu, aber überschreibst sie dann wieder mit der vehicleID vom server.


    Ansatz wäre du erweiterst dein ENUM um eine variable und speicherst darin die DatenbankID. Dann brauchst du nur deine Query wieder anpassen und es sollte funktionieren.

    Also ich hab jetzt eine variable im ENUM hinzugefügt "e_DatabaseID" und jetzt soll ich die in der Query einfach einfügen und was damit machen?

    Fahrzeug ist immer noch in der Datenbank

    Mit "herausfinden" ist nichts. Beim Laden von einem Vehicle musst du die id des Datenbankeintrags vom Fahrzeug schön brav mit laden^^ Dann funktioniert das, sonst auf keinen Fall.


    Sende mal die Load Function wo du diese Fahrzeuge lädst.

    public LoadcopVehicles_Data()
    {
    new rows, id, createdVehs;
    rows = cache_num_rows();
    for(new i=0; i<rows; i++)
    {
    cache_get_value_int(i, "ID",copVehicle[id][e_vID]);
    if(id < 0 || id >= MAX_cop_VEHICLES) continue;
    cache_get_value_int(i, "ModelID",copVehicle[id][e_modelID]);
    cache_get_value_float(i, "PosX",copVehicle[id][e_x]);
    cache_get_value_float(i, "PosY",copVehicle[id][e_y]);
    cache_get_value_float(i, "PosZ",copVehicle[id][e_z]);
    cache_get_value_float(i, "PosA",copVehicle[id][e_a]);
    cache_get_value_int(i, "Color1",copVehicle[id][e_color1]);
    cache_get_value_int(i, "Color2",copVehicle[id][e_color2]);
    if(copVehicle[id][e_modelID] >= 400 && copVehicle[id][e_modelID] <= 611)
    {
    copVehicle[id][e_vID] = CreateVehicle(copVehicle[id][e_modelID], copVehicle[id][e_x], copVehicle[id][e_y], copVehicle[id][e_z], copVehicle[id][e_a], copVehicle[id][e_color1], copVehicle[id][e_color2], -1);
    }
    else
    {
    printf("[Error] Model-ID %d existiert nicht (ID: %d).", copVehicle[id][e_modelID], id);
    }


    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_VEHICLES) erreicht.");
    createdVehs++;
    if(createdVehs == MAX_cop_VEHICLES) return print("Es können keine weiteren Fahrzeuge geladen werden, Limit (MAX_cop_VEHICLES) erreicht.");
    }
    return 1;
    }

    Hat die Variable den gleichen Wert/Inhalt wie i?

    am besten ich schreibe den Command neu denn sonst komm ich durcheinander kann mir da jemand helfen wie Fang ich an? Und ich lerne besser^^
    Ist es möglich das man durch die Car ID die Datenbank ID herausfindet und das man praktisch nur /copcarloeschen [carid] machen muss und dann verschwindet er ingame und in der Datenbank

    Versuche einmal einzelne Schritte zu debuggen (print)


    Kleiner Tipp: Bau den Handle in OnGameModeInit mit einer globalen Variable ein, statt immer eine neue Verbindung aufzubauen. :)

    Falls ich es richtig gemacht hab DELETE FROM copVehicles WHERE ID = '0' gibt er aus beim debugg

    Moin ^^


    Ich hab hier ein Problem mit diesem Befehle ich erkläre es euch dann wieder an einem Beispiel^^


    CMD:copcarloeschen(playerid, params[])
    {
    new vid;
    if(!IsNumeric(params) || !strlen(params)) return SendClientMessage(playerid, 0xFF0000FF, "Error: Nutze: /copcardelete [Vehicle ID]");
    vid = strval(params);
    handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
    if(vid <= 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    for(new i=0; i<MAX_cop_VEHICLES; i++)
    {
    if(copVehicle[i][e_vID] == vid)
    {
    copVehicle[i][e_modelID] = 0;
    copVehicle[i][e_x] = 0.0;
    copVehicle[i][e_y] = 0.0;
    copVehicle[i][e_z] = 0.0;
    copVehicle[i][e_a] = 0.0;
    copVehicle[i][e_color1] = 0;
    copVehicle[i][e_color2] = 0;
    new query[128];
    format(query, sizeof(query), "DELETE FROM copVehicles WHERE ID = '%d'", i);
    mysql_tquery(handle, query);
    DestroyVehicle(copVehicle[i][e_vID]);
    copVehicle[i][e_vID] = 0;
    return SendClientMessage(playerid, 0x00FF00FF, "Fahrzeug gelöscht.");
    }
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    }


    Beispiel:


    Ich will ein Auto löschen gebe den befehl ein
    Auto wird gelöscht aber nur ingame
    Datenbank bleibt weiterhin bestehen im MySQL log keine error


    ich will das er die ganze zeile löscht

    Normalerweise nutzt man dafür auch die AUTO_INCREMENT Funktion in SQL. Du musst auch normalerweise bei der INSERT Query keine ID angeben.

    Hab ich gerade eingestellt nur jetzt habe ich das Problem das er die ID 1 nicht mehr überschreibt sondern einfach so lässt.


    Beispiel:


    Ich erstelle ein Auto mit /copcarerstellen
    Wird in Datenbank mit ID 1 erstellen
    Ich Starte den Server neu
    erstelle ein Auto mit /copcarerstellen
    Nichts wird eingetragen in der DB
    erstelle noch ein Auto mit /copcarerstellen
    es wird bei ID 2 eingetragen

    Moin ich bin es mal wieder^^


    Undzwar fängt der immer an von 1 zu zählen mit der Datenbank ID in MySQL.


    CMD:copcarerstellen(playerid, params[])
    {
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return SendClientMessage(playerid, 0xFF0000FF, "Es können keine weiteren Fahrzeuge erstellt werden, Limit (MAX_VEHICLES) erreicht.");
    new tmp[20], idx, model, color1 = -1, color2 = -1;
    tmp = strtok(params, idx);
    if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "Verwendung: /copcarerstellen [Model] [opt:Farbe1] [opt:Farbe2]");
    model = strval(tmp);
    if(model < 400 || model > 611) return SendClientMessage(playerid, 0xFF0000FF, "Error: Model ID existiert nicht.");
    tmp = strtok(params, idx);
    if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid, 0xFF0000FF, "Verwendung: /copcarerstellen [Model] [opt:Farbe1] [opt:Farbe2]");
    tmp = strtok(params, idx);
    if(strlen(tmp) && IsNumeric(tmp)) color1 = strval(tmp);
    tmp = strtok(params, idx);
    if(strlen(tmp) && IsNumeric(tmp)) color2 = strval(tmp);
    for(new i=0; i<MAX_cop_VEHICLES; i++)
    {
    if(copVehicle[i][e_vID] == 0)
    {
    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    copVehicle[i][e_modelID] = model;
    copVehicle[i][e_x] = x;
    copVehicle[i][e_y] = y;
    copVehicle[i][e_z] = z;
    copVehicle[i][e_a] = a;
    copVehicle[i][e_color1] = color1;
    copVehicle[i][e_color2] = color2;
    new query[256];
    format(query, sizeof(query), "INSERT INTO copVehicles (ID, ModelID, PosX, PosY, PosZ, PosA, Color1, Color2) VALUES ('%d', '%d', '%f', '%f', '%f', '%f', '%d', '%d')",
    i, copVehicle[i][e_modelID], copVehicle[i][e_x], copVehicle[i][e_y], copVehicle[i][e_z], copVehicle[i][e_a], copVehicle[i][e_color1], copVehicle[i][e_color2]);
    mysql_tquery(handle, query);
    copVehicle[i][e_vID] = CreateVehicle(copVehicle[i][e_modelID], copVehicle[i][e_x], copVehicle[i][e_y], copVehicle[i][e_z], copVehicle[i][e_a], copVehicle[i][e_color1], copVehicle[i][e_color2],-1);
    PutPlayerInVehicle(playerid, copVehicle[i][e_vID], 0);
    return SendClientMessage(playerid, 0x00FF00FF, "Fahrzeug gespeichert.");
    }
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Limit für Fraktions-Fahrzeuge erreicht.");
    } Commands basieren auf dem Tutorial von @Jeffry


    Beispiel:


    Ich erstelle 15 Cop Autos.
    Danach starte ich den Server neu.
    Mir fällt auf ich brauch noch Autos.
    Ich gebe nochmal /copcarerstellen ein.
    aber er fängt wieder von vorn an mit der vID bzw die Datenbank ID

    Moin,



    MYSQL Update von r39 zu r40+
    Ich hab hier mal diesen Code als beispiel genommen


    fracVehicle[id][e_modelID] = cache_get_field_content_int(i, "ModelID");


    Ich hab da was im Englischen Samp Forum gefunden heißt das ich muss das dann von cache_get_field_content_int in cache_get_value_name ändern?


    fracVehicle[id][e_modelID] = cache_get_value_name(i, "ModelID");


    Weil wenn ich das ändere kommt immer warning 202: number of arguments does not match definition vielleicht kann mir das mal einer erklären^^


    Moin,
    Ich bin gerade dabei ein Cops and Robbers Server zu Scripten aber das Projekt ist im moment noch so Frisch das es noch nicht mal einen Namen besitzt mein Plan ist es erstmal auf Deutsch zu Scripten und dann nach und nach auf Englisch zu übersetzen.
    Dementsprechend hab ich auch noch keinen Namen für das Projekt ich habe einen Script Test Server und würde für die Kommunikation Discord nutzen.
    Im Moment besitzt es:



    2 Klassen (Zivilisten , Polizisten),
    Anti-Teamkill System,
    Headshot System,
    Stats Befehl,
    Login- und Registersystem(MYSQL)


    Alles nichts besonderes nur ich wollte erstmal paar Grundlagen schaffen :)
    Ich versuche soviel wie möglich mit MySQL zu Scripten da man so den Server richtig schön dynamisch machen kann und viele Sachen sofort ändern kann.



    Was solltest du als Mapper mitbringen?
    Du Solltest kreativ sein und viel mit eigenen Ideen Arbeiten.
    Es wäre schön wenn du texturieren könntest da dadurch Sachen besser aussehen.


    Was gebe ich dir als Mapper?
    Da es im moment nur ein Projekt von mir ist hast du ein großes Mitspracherecht bekommst einen platz als Administrator vllt sogar einen höheren Rang aber dafür müsste ich dich erst richtig Kennenlernen.



    Hier ist noch der Discord Link: https://discord.gg/n2P7JD6
    Grüße,
    Theralio10 ;)

    Hallo,


    Da ich nicht nur 6 Wanteds haben will sondern zB ein Limit von 60 hab ich mal eine Frage wie stelle ich das am besten an? vllt auch ohne Textdraw^^

    Tachschön :)


    Da ich im Moment sehr Aktiv in SA-MP bin würde ich mich als Teammitglied anbieten aber erstmal erzähle ich euch ein bisschen was über mich.


    Ich heiße Sebastian bin 17 Jahre alt wohne in Brandenburg und bin Schüler ich besuche derzeit die 10. Klasse einer Oberschule dadurch hab ich auch genug Zeit im Moment.
    In meiner Freizeit besuche ich mit Freunden Lost Places und bin auch Mitglied der Freiwilligen Feuerwehr.
    Ich kann pro Tag mindestens 5-6 Stunden online sein und mehr wenn es erwünscht ist.
    Dazu kann ich euch wenn ihr Hilfe benötigt Script Technisch helfen.
    Ebenfalls hab ich sehr gute Kenntnisse in Teamspeak/Forum/Discord einrichten.


    Was erwarte ich vom Projekt?

    Das Projekt sollte einen Teamspeak oder Discord Server besitzen.
    Ebenso wäre ein Forum nicht schlecht.


    Kontaktmöglichkeiten
    Am besten hier im Forum schreiben da ich im Moment kaum auf Steam/Skype/Discord aktiv bin ^^