Beiträge von Kristik47

    Ich habs mittlerweile anders gemacht und jetzt habe ich ein Problem. Es INSERT'et alles perfekt,
    aber wenn ich es löschen will, dann steht da "Ein solcher Eintrag existiert nicht."


    Hier ist der Befehl und wie ich es lade und speicher:



    ocmd:deletemission(playerid, params[])
    {
    new einlesen, mdelname[100], query[256], delquery[256];
    if(sscanf(params,"%s",mdelname)) return SendClientMessage(playerid, -1, "{FF3200}[SYNTAX:] {BEBEBE}/deletemission <Name der Mission");
    format(query,sizeof(query),"SELECT * FROM missionsystem WHERE missionname='%s'", mdelname);
    einlesen = mysql_pquery(handle, query);
    if(cache_num_rows(einlesen) == 1)
    {
    format(delquery,sizeof(delquery), "DELETE * FROM missionsystem WHERE missionname='%s'",mdelname);
    mysql_pquery(handle, delquery);
    }
    else
    {
    SendClientMessage(playerid, -1, "{FF3200}[FEHLER:] {BEBEBE}Ein solcher Eintrag existiert nicht.");
    }
    return 1;
    }


    stock OnMissionSave()
    {
    new query[500];
    for(new ix = 0; ix < cache_num_rows(); ix++)
    {
    mysql_format(handle, query, sizeof(query), "UPDATE missionsystem SET missionname = '%s', mlohn = '%i' WHERE id = '%d'", mSys[ix][m_name], mSys[ix][m_lohn], mSys[ix][m_id]);
    mysql_pquery(handle, query);
    }
    return 1;
    }


    stock OnMissionLoad()
    {
    new query[500];
    for(new ix = 0; ix < cache_num_rows(); ix++)
    {
    format(query,sizeof(query),"SELECT * FROM missionsystem");
    mysql_pquery(handle,query);
    new MissionName[256];
    mSys[ix][m_name] = cache_get_field_content(0, "missionname", MissionName);
    mSys[ix][m_lohn] = cache_get_field_content_int(0, "mlohn", handle);
    }
    return 1;
    }


    Und wo ich es lade und speicher:


    public OnGameModeInit()
    {
    mysql_log(LOG_ALL);
    SetGameModeText("LP-GTA_SAMP");
    MySQL_SetupConnection();
    OnMissionLoad();
    print("Missionen wurden geladen");
    return 1;
    }


    public OnGameModeExit()
    {
    OnMissionSave();
    print("Missionen wurden gesichert und deaktiviert.");
    mysql_close(handle);
    return 1;
    }



    @phN

    Autos die du im Skript erstellt hast einfach wieder rausnehmen, ansonsten dem Fahrzeug eine Variable zuschreiben
    und dann durch diese löschen. Hier ein Beispiel:



    ocmd:veh(playerid, params[])
    {
    new vehid, bool:vehcreated, string[128];
    if(vehcreated == false) //Fragen ab, ob kein Fahrzeug erstellt ist
    {
    vehid = AddStaticVehicle(520, 2109.1763, 1503.0453, 32.2887, 82.2873, 0, 1);
    vehcreated = true;
    }
    else
    {
    DestroyVehicle(vehid);
    vehcreated = false;
    }
    return 1;
    }


    Ich hoffe, dass ich dir damit helfen konnte. Und zum Thema LSPD Cars bzw. Gang Leader kann in LSPD Cars einsteigen:


    Einfach zu OnPlayerEnterVehicle und eine Schleife einsetzen in der du alle Fahrzeuge, die dem LSPD gehören durchgehst und
    dem Spieler einfach aus dem Fahrzeug rausschmeißen tust oder sonstiges per RemovePlayerFromVehicle(playerid);


    for(new i = 0; i < LSPD-CARS; i++) // LSPD-CARS dient nur als Beispiel, da musst du deine LSPD Cars reinmachen
    {
    RemovePlayerFromVehicle(playerid);
    }

    stock SaveCreatedMissions(playerid){new query[250];mysql_format(handle, query, sizeof(query), "UPDATE missionsystem SET mname = '%s', mlohn = '%i', WHERE mid = '%d'", mSys[playerid][mName], mSys[playerid][mLohn], mSys[playerid][m_id]); mysql_pquery(handle, query);}
    Ich frage mich warum du hier playerid verwendest?
    Das ist doch nichts Spielerbezogenes..
    Und mit der Funktion speicherst du dann immer nur eine Mission ab, da du keine Schleife verwendest.
    Genauso wie du so nur eine Mission lädst.

    Okay, du hast mir schon einige logische Korrekturen geschrieben, die ich auch vornehmen werden. Danke dir.
    Da wo du gerade sagst, dass es nicht spielerbezogenes ist, habe ich es mal direkt verändert.

    Ich bin gerade dabei ein dynamisches Missions-System zu erstellen und stecke fest. Und zwar habe ich mit einem Enum angefangen und erstmal
    die ID, den Namen und den Lohn im Enum definiert. Weiterhin bin ich direkt zum Befehl gegangen, der auch dadrunter zusehen ist, und habe
    ihn erstellt. Im Befehl INSERTE ich den mNamen(Missionsnamen) und den mLohn(Missionslohn) und sende die Query ab. Diese leitet zusätzlich
    zum Public OnMissionCreate weiter, damit eine ID erstellt werden kann. Das habe ich ein wenig von meinem Registrierungs-System entnommen.
    Ich habe aber ein Problem bzw. ich merke, dass ich einen gravierenden Fehler gemacht habe und blicke nicht durch. Ich glaube, dass der ganze Code
    falsch ist .




    enum mSystem
    {
    m_id,
    mName
    mLohn
    }
    new mSys[MAX_PLAYERS][mSystem];


    ocmd:createmission(playerid, params[])
    {
    new mname, mlohn;
    if(sscanf(params,"si",mname,mlohn)) return SendClientMessage(playerid, TURKISE, "[SYNTAX] /createmission <ID> <Lohn>");
    if(mname < 10 || mname > 60) return SendClientMessage(playerid, BLUE, "Der Missionsname darf nicht weniger als 10 und nicht meh als 60 Zeichen besitzen");
    if(mlohn < 500 || mlohn > 6000) return SendClientMessage(playerid, BLUE, "Das Missionsgehalt darf nicht weniger als 500 € und nicht mehr als 6000 € betragen.");
    new query[256];
    mysql_format(handle, query, sizeof(query), "INSERT INTO missionsystem (missionname, lohn) VALUES ('%s', '%i')", mname, mlohn);
    mysql_pquery(handle, query, "OnMissionCreate", "d", playerid);
    return 1;
    }



    forward OnMissionCreate(playerid);
    public OnMissionCreate(playerid)
    {
    mSys[playerid][m_id] = cache_insert_id();
    SendClientMessage(playerid, TURKISE, "Du hast eine neue Mission erstellt");
    return 1;
    }



    forward OnMissionLoad(playerid);
    public OnMissionLoad(playerid)
    {
    mSys[playerid][m_id] = cache_get_field_content_int(0, "mid", handle);
    mSys[playerid][mName] = cache_get_field_content_int(0, "mname", handle);
    mSys[playerid][mLohn] = cache_get_field_content_int(0, "mlohn", handle);
    return 1;
    }



    stock SaveCreatedMissions(playerid)
    {
    new query[250];
    mysql_format(handle, query, sizeof(query), "UPDATE missionsystem SET mname = '%s', mlohn = '%i', WHERE mid = '%d'", mSys[playerid][mName], mSys[playerid][mLohn], mSys[playerid][m_id]); mysql_pquery(handle, query);
    }


    Vielen Dank schon mal im Voraus.

    Ich habe eine Frage zu: cache_get_field_content_int(0, "mid", handle);
    Was genau ist diese 0? Habe danach recherchiert und es wird dauernd
    gesagt es ist die row. Row ist eine Reihe, das ist mir klar. Aber die Reihe wovon?
    Vielleicht welche Tabelle von einer Datenbank gemeint wird? 0 wäre sogesehen
    die 1 und 1 wäre dann die zweite Tabelle?



    Vielen Dank im Voraus.


    @Jeffry

    Guten Tag,


    kann man es so machen, dass man den Inputtext von dialogid blablabla in dialogid blablabla2 benutzt?
    Ich spiele gerade an einem Admin-System rum und möchte es so machen, dass der Spieler, welcher
    eine Spieler zum Team-Mitglied ernennen möchte, zuerst ein Dialog erhält, den Namen des gewünschten
    Spieler eingibt und dann halt weiterhin noch ein Dialog erhält wo er den Rang gibt, welchen er vergeben
    möchte. Dazu brauche ich den Namen(1. Inputtext), damit ich hinterher dem Namen den Rang(2. Inputtext)
    2 zum Beispiel setzen kann.


    Vielen Dank im Voraus.

    Sieht richtig ******** aus.


    Was hat das mit der Serverwerbung zutun. Bewerbe ich doch am Samstag wie jeder vernünftige Mensch.


    BTW; Ganz gute Werbung meines Ermessens nach. Recht übersichtlich und ordentlich gehalten.

    So, habe erneut das gleiche Problem, obwohl ich den Tipps von @Tusk nachgegangen bin und
    auch escaped habe und meine SQL-Query etwas verändert habe. Das Problem ist immernoch
    das gleiche! Es erstellt sich nichts neues in der Datenbank, aber die Funktionen, die ich
    gecodet haben funktionieren eigentlich einwandfrei außer, dass sich das, was ich im Formular
    eingebe in der Datenbank nicht erstellen mag.


    Hier die Bilder dazu:





    Und so sieht meine Datenbank aus. Jede neue Nachricht erhält per A_I eine neue ID:


    Ich bin hier auf so ein kleines Problem gestoßen, was ich nicht lösen kann.
    Wenn ich mir Videos anschauen, können die Leute HTML-Funktionen wie zum Beispiel
    <form...> problemlos in <?php-Codeblöcken problemlos benutzen. Bei mir wird aber
    ein Fehler ausgegeben und sieht demnach statt blau, wie es sich in HTML gehört,
    grau und vom Programm gar nicht erkannt aus:


    Fehler:

    PHP
    Parse error: syntax error, unexpected '<', expecting end of file in C:\xampp\htdocs\PHPTutorial\index.php on line 3


    Bild:

    Ich hoffe, ich habe nun keine Fehler in meinem Code (arbeite nicht mit mysqli sondern mit pdo).
    Wenn da welches sein sollten, weist mich darauf hin, und ich editiere es.


    Was macht PDO besser oder was macht mysqli schlechter? PDO sieht
    ein wenig komplexer aus oder bilde ich es mir nur so ein?

    Wieso machst du das denn in so vielen Dateien? ^^ Ist ja auch egal.
    Also du musst die Variablen mit $ Zeichen angeben. Das wird am Anfang etwas komisch, denn man darf nicht ' mit " vermischen bzw beide richtig behandeln.

    PHP
    $mysqli->query("INSERT INTO t (deinfeld, deinzweitesfeld) VALUES ($_GET['deinget'], $_GET['zweitesget');"))

    Sonst halt vorher
    $GET_1 = $_GET['deinget'];

    Ich weiß nicht... wenn es in irgendeinerweise schadet bzw. Schäden anrichten kann, dann bitte Bescheid sagen und
    am besten sagen, wie man es richtig machen sollte. Ansonste dankesehr für die schnellen Antworten.
    Es erstellt sich zwar jetzt etwas und ich habe jetzt auch einiges mehr verstanden, weshalb ich mein System
    komplett überarbeiten bzw. neuschreiben werde.


    Vielen Dank.

    Ich habe vor einigen Tagen mit PHP und dem üblichen angefangen und bin gerade dabei eine Funktion zu erstellen,
    welche Texte abspeichert und auch durch so genannte <form> aufrufen kann. Ich habe ein bereits einen Code
    erstellt und es ist mir auch bewusst, dass dieser Code Fehler enthält, aber ich würde mich freuen, wenn man mir
    den richtigen Weg zeigt bzw. auf die Fehler hinweist und mir den richtigen Weg zeigt. Mein Problem ist, dass
    MySQL den Inhalt aus den <form> nicht abspeichern möchte. Ich habe hier 5 Bilder gemacht, wie es bei mir
    aufgebaut ist:


    Dies ist die Hauptdatei, wo alles anfängt:


    Weiterhin meine PHP-Datei mit der ich die Verbindung zur MySQL Datenbank aufbaue:


    Danach die zwei Forms mit Buttons, aber in zwei Dateien verteilt. Dies hier ist die "Abruf"-Datei, wenn etwas gespeichert ist:


    Hier ist die "Speichern"-Datei:


    Und das hier ist die Datei, welche auf das Resultat leitet bzw. den Eintrag macht oder abruft. Je nachdem, was man gewählt hat.
    Diese erzeugt die Probleme. Sie will die Eingabe in die Box und die Bestätigung durch den Button nicht in die Datenbank "inserten".


    Ich hoffe, man kann mir dabei helfen und mich auf meine Fehler hinweisen. Bin noch sehr neu in dem Bereich :D

    Schuldigung meine erste frage aber muss ja nicht sein.
    Danke aber ich habe von scripten nur ein wenig ahnung.

    Dann solltest du es entweder lernen bzw. dir selber aneignen durch genügende Tutorials
    auf Youtube und auch hier in der Scripting Base oder einen Skripter einstellen.

    Ich möchte dich mit meiner Antwort keinesfalls runtermachen, aber mit 14 Jahren sieht
    es bei einer Projektvorstellung nicht sehr gut aus, wenn man sieht, dass du 14 bist. Der Grund
    hierfür ist einfach nur, weil du noch zu jung und zu unerfahren bist. Das kann man unter anderem
    deiner "Suchanfrage" hier entnehmen. Es ist natürlich schön, dass du dich für sowas engagierst,
    aber dein Alter entspricht nicht so ganz den Voraussetzungen eines Supporters. So ungefähr
    ab 16 wäre es schon ein ganzes Universum weiter. 15 ist auch noch eine sehr große Grenzwertigkeit.


    Ich schreibe es, weil mit 14 hatte ich auch noch keine Chancen in einem Projekt tätig zu sein,
    obwohl ich mit 14 auch schon recht reif war und dachte, dass ich erfahren wäre. Ich spreche
    da aus Erfahrung.


    Ich wünsche dir dennoch viel Erfolg :)


    Mit freundlichen Grüßen


    Kristik47

    Ja, ich habe folgendes Problem. Ich arbeite zum ersten Mal mit SetObjectMaterialText und kann nicht verstehen,
    was mit meinem Object abgeht? Ich habe im Code 1. mal das Wort bzw. 1. einen Satz geschrieben und dieser
    erscheint einfach 1000 mal auf meinem Objekt... was ist da los? Hier ein Screen davon:



    Code:



    new meinObjekt0 = CreateObject(18766, 1833.99414, -1437.90503, 23.73140, 0.00000, 0.00000, 90.00000);//1.
    SetObjectMaterialText(meinObjekt0, "Crime", 0, OBJECT_MATERIAL_SIZE_256x128, "Arial", 25, 0, 0xFFFF8200, 0xFF000000, 0);


    new meinObjekt1 = CreateObject(18766, 1833.99414, -1427.91125, 23.73140, 0.00000, 0.00000, 90.00000);//2.
    SetObjectMaterialText(meinObjekt1, "Take the Gun\nor Die", 0, OBJECT_MATERIAL_SIZE_256x128, "Arial", 75, 1, 0xFFFF8200, 0xFF000000, 1);


    new meinObjekt2 = CreateObject(18766, 1833.99414, -1417.91553, 23.73140, 0.00000, 0.00000, 90.00000);//3.
    SetObjectMaterialText(meinObjekt2, "Deathmatch", 0, OBJECT_MATERIAL_SIZE_256x128, "Arial", 25, 0, 0xFFFF8200, 0xFF000000,2);


    Ich bedanke mich schonmal für die Hilfe.

    Also. Ich wollte das zbs. Wenn einer in denn Admin Dienst geht das über sein Rankname steht und wie gesagt meine ich als Rankname [Projektleiter].


    Deshalb möchte ich das wenn man /aduty macht das über jemanden sein Rankname steht. die im meine /aduty System ja sehe bar sind und wenn man wieder /aduty schreibt soll der Rankname wieder verschwinden

    Sehr mühsam deine Text zu lesen, aber was der @shoxinat0r möchte ist, dass du deinen
    Befehl formatierst.



    if (strcmp(cmd, "/adminduty", true) == 0 || strcmp(cmd, "/aduty", true) == 0)
    {
    if(AdminDuty[playerid] == 0)
    {
    if(PlayerInfo[playerid][pAdmin] == 1 || PlayerInfo[playerid][pAdmin] == 2 || PlayerInfo[playerid][pAdmin] == 3|| PlayerInfo[playerid][pAdmin] == 4)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun als Administrator im Dienst!");
    SetPlayerColor(playerid,0xFF00A5FF);
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"* Administrator %s[ID:%d] ist nun mit /report erreichbar*",sendername,playerid);
    SendClientMessageToAll(0x932200FF, string);
    SetPlayerArmour(playerid, 100);
    return 1;
    }
    if(PlayerInfo[playerid][pAdmin] == 5 || PlayerInfo[playerid][pAdmin] == 6 || PlayerInfo[playerid][pAdmin] == 1337)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun als Eventmanager im Dienst!");
    SetPlayerColor(playerid,0xFF00A5FF);
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"*Eventmanager %s[ID:%d] ist nun mit /report erreichbar.*",sendername,playerid);
    SendClientMessageToAll(COLOR_RED, string);
    SetPlayerArmour(playerid, 100); return 1;
    }
    if(PlayerInfo[playerid][pAdmin] == 1338)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun als Fraktionsverwalter im Dienst!");
    SetPlayerColor(playerid,0xFF00A5FF);
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"Fraktionsverwalter %s[ID:%d] ist nun mit /report erreichbar.*",sendername,playerid);
    SendClientMessageToAll(COLOR_RED, string);
    SetPlayerArmour(playerid, 100); return 1;
    }
    if(PlayerInfo[playerid][pAdmin] == 2000 || PlayerInfo[playerid][pAdmin] == 2001)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun als Projektleiter im Dienst!");
    SetPlayerColor(playerid,0xFF00A5FF);
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"Projektleiter %s[ID:%d] ist nun mit /report erreichbar.*",sendername,playerid);
    SendClientMessageToAll(COLOR_RED, string);
    SetPlayerArmour(playerid, 100);
    return 1;
    }
    if(PlayerInfo[playerid][pSupporter] >= 1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun als Supporter im Dienst!");
    SetPlayerColor(playerid,0xFF00A5FF);
    AdminDuty[playerid] = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string,sizeof(string),"Supporter %s[ID:%d] ist nun mit /report erreichbart.*",sendername,playerid);
    SendClientMessageToAll(COLOR_RED, string);
    SetPlayerArmour(playerid, 100);
    return 1;
    }
    if(AdminDuty[playerid] == 1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist nun nichtmehr On Duty!");
    Delete3DTextLabel(Admin[playerid]);
    Delete3DTextLabel(Supermod[playerid]);
    Delete3DTextLabel(Mod[playerid]);
    Delete3DTextLabel(Supporter[playerid]);
    Delete3DTextLabel(Admin[playerid]);
    Delete3DTextLabel(Supermod[playerid]);
    Delete3DTextLabel(Mod[playerid]);
    Delete3DTextLabel(Supporter[playerid]);
    format(string,sizeof(string)," %s[ID:%d] ist nicht mehr erreichbar.*",sendername,playerid);
    SetPlayerArmour(playerid, 0);
    AdminDuty[playerid] = 0;
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
    {
    SetPlayerColor(playerid, NAMECOLOR_LSCOP);
    }
    else
    {
    SetPlayerColor(playerid,TEAM_HIT_COLOR);
    }
    } return 1;
    }