Beiträge von German_ScripterHD

    Abend zusammen,


    ich habe eine Frage bezüglich der ID in der Datenbank.
    In MySQL habe ich mir eine Tabelle angelegt, darin möchte ich mehrere Dinge speichern, deshalb habe ich mir eine Spalte mit dem Namen 'id' erstellt.
    Dieser Spalte habe ich dann ein 'AUTO_INCREMENT' zugelegt, sprich bei jedem neuen Eintrag wird diese Spalte durch Nummeriert, dies sollte dann so aussehen:



    id wert0 wert1 wert2
    1 ... ... ...
    2 ... ... ...
    3 ... ... ...



    Wenn ich nun Beispielsweise die ID 2 lösche, und erstelle einen neuen Eintrag dann geht es bei 4 weiter.
    Nun zu meiner Frage, gibt es eine Möglichkeit das es in diesem Fall nicht bei 4 sondern bei der davor gelöschten 2 weitergeht? So das die Tabelle immer der Reihe nach verläuft?


    Ich hoffe es kann mir jemand die passende Antwort geben :)

    Okay, das hat auch geklappt. Jedoch habe ich jetzt noch ein Problem mit der Skinselection.
    Wenn ich bei SkinClicked bei 0 bin (Skinid 1) und klicke nun rückwärts, dann passiert nichts, drücke ich ein zweites mal dann kommt der CJ Skin der in den Arrays garnicht vorhanden ist, und drücke ich dann erneut kommt der letzte Skin wie gewollt. Normal sollte man aber den bei SkinClicked 0 einmal zurück drücken und dann den letzten Skin bekommen.
    Außerdem wirft er mir noch was in der Server Konsole aus:


    C
    [14:41:51] [debug] Run time error 4: "Array index out of bounds"
    [14:41:51] [debug]  Attempted to read/write array element at index 200 in array of size 200
    [14:41:51] [debug] AMX backtrace:
    [14:41:51] [debug] #0 0000a1f0 in public OnPlayerClickPlayerTextDraw (0, 9) from newscript.amx

    Hallo Brotfische,


    Heute stehe ich mal wieder vor einem Problem, welches ich mir nicht beantworten kann.
    Ich habe zwei Textdraw Pfeile erstellt einmal rechts und einmal links ( < > )
    Wenn der Spieler auf Rechts klickt wird eine Zähl-Variable hochgezählt, und soll später einen Skin aus einem Array auslesen.
    Doch leider wird das TextDraw nicht geupdatet, sprich es ist immer nur der erste Skin zu sehen.


    Die Skin Arrays sehen beide so aus:


    Code
    new FamaleSkins[80] = {
        9,10,11,12,//usw...
    };



    Die PlayerTextDraws erstelle ich so: (Genaue Koordinaten entfernt, Grund vor Copy & Paste)


    C
    new str[5];
    format(str,sizeof(str),"%i",GetPlayerSkin(playerid));
    playerData[playerid][pRegisterTD][5] = CreatePlayerTextDraw(playerid, XXX.XXXX, XX.XXXX, str);
    PlayerTextDrawLetterSize(playerid, playerData[playerid][pRegisterTD][5], 0.000000, 0.000000);
    PlayerTextDrawTextSize(playerid, playerData[playerid][pRegisterTD][5], XX.XXXX, XXX.XXX);
    PlayerTextDrawAlignment(playerid, playerData[playerid][pRegisterTD][5], 1);
    PlayerTextDrawColor(playerid, playerData[playerid][pRegisterTD][5], -1);
    PlayerTextDrawSetShadow(playerid, playerData[playerid][pRegisterTD][5], 0);
    PlayerTextDrawSetOutline(playerid, playerData[playerid][pRegisterTD][5], 0);
    PlayerTextDrawFont(playerid, playerData[playerid][pRegisterTD][5], 5);

    OnPlayerClickPlayerTextDraw:

    Nun habe ich noch ein kleinen Test gemacht.. Undzwar habe ich 5x auf den Pfeil nach Rechts und 5x auf den Pfeil nach links gedrückt. Aber in der server_log.txt wird mir lediglich dies geprintet:


    Code
    [00:51:57] [Step 2] 1
    [00:51:57] [Step 3] 2
    [00:51:57] [Step 8] 0
    [00:51:57] [Step 9] 1

    Sprich es wird der Schritt 2 in der Funktion OnPlayerClickPlayerTextDraw aufgerufen.
    In diesen Fall ist die SkinClicked jetzt 1 beim hochzählen und aus dem Array wird die SkinID 2 (Step 3) ausgelesen, jedoch wird das Textdraw nicht geupdatet.


    Ich hoffe es kann mir jemand helfen :)
    @Jeffry @Kaliber

    Bitte einmal einfügen und dann die Ausgabe aus der Konsole bzw. der server_log.txt kopieren und hier senden.


    Ich habe eine Frage bezüglich TextDraws, undzwar habe ich mir ein TextDraw erstellt, welches sich in einem Timer immer wieder in der Position anpassen soll,
    leider gibt es ja keine SetTextDrawPosition Funktion, aber existiert vielleicht eine andere Funktion unter einem anderen Name, oder muss ich jedes mal das TextDraw löschen und wieder neu erstellen lassen?


    @Jeffry

    Guten Abend,
    Das Gebäude ansich ja sieht gut aus, nur die Texturen schrecken enorm an und haben nichts mehr mit einem LSPD zu tun, sofern ich das so beurteilen kann. (man sieht meiner Meinung nach kaum, wo die Fenster beginnen geschweige denn enden)
    Ich würde dir raten mit den Farben blau-weiß zu arbeiten, da dieses eher der Farbe der Polizei zutrifft.


    Mit freundlichen Gruß
    cryless

    Danke dir für deine Kritik. :thumbup:
    Ich nehme dies zur Kenntnis und werde es bei den nächsten Maps berücksichtigen.

    Holy, was ist denn da mit dem Hauptgebäude passiert ?


    Die Texturen passen am Gebäude wirklich überhaupt nicht zusammen.
    Hier wäre es sinnvoller gewesen, das Gebäude mit den Wänden die SAMP gebracht hat neu zu mappen und dann die Texturen zu ändern.
    Momentan wirken die "Fenster" überladen und verzerrt, das ist mMn echt nicht schön und passt auch nicht zur restlichen Map.


    Ich würde auch noch einen anderen Zaun wählen, bei der Umrandung des Parkplatzes, entweder gar keine oder was anderes, das weiße sieht völlig deplaziert aus.

    Danke für deine Kritik, ich werden mir das für meine nächsten Maps merken und darauf mehr Wert legen.
    Der Zaun ist jedoch der Originale, nur ne andere Textur.


    Mit freundlichen Grüßen
    German_ScripterHD

    Also, ich finde die Textur am Gebäude viel zu monoton und an manchen Stellen auch eher unpassend.
    Dann frage ich mich auch, warum du dieses Kontrollhäuschen vor dem Parkplatz knallrot färbst


    Ansonsten finde ich die Map recht gelungen!

    Vielen Dank für deine Kritik!
    Ja, warum ich das kleine Kontrollhäuschen Rot gefärbt habe weiß ich auch nicht 100%ig. :D
    Aber, da gebe ich dir recht, da kann man eine schönere Textur nehmen.

    Hallo Brotfische,


    Nach langer Pause in der SA:MP Szene habe ich mal wieder etwas Zeit gefunden.
    Hier mal eine kleine Map von mir "LSPD Rework"! Ich bitte um konstruktive Kritik!



    Mit freundlichen Grüßen
    German_ScripterHD :thumbup:

    @xPatrick


    Also dein /me Befehl stimmt soweit.
    Um bei deiner Log Funktion das Datum und Uhrzeit zu speichern, verwende einfach die Funktion [wiki]getdate[/wiki] und [wiki]gettime[/wiki].


    Das ganze sollte dann so aussehen:



    In der Log sollte es dann so aussehen:
    [22.02.2017][23:23:06] Test123 Test
    Wenn du dich fragst, was das %02d zu bedeuten hat, dies ist dafür da das gegebenen Falls eine '0' erstellt wird, wenn es Bespielsweiße 9 Uhr ist, wird es jetzt als 09... angezeigt, du kannst es auch mit %d schreiben dann sollte es so aussehen:
    [22.2.2017][23:23:6] Test123 Test

    Du gehst als erster mal InGame und speicherst dir, die Position wo der Befehl ausgeführt werden soll.
    Die Position musst du speichern, da man den Befehl sonst von der ganzen Map ausführen könnte.


    Position Speichern:
    1. InGame an die gewünschte Position stellen.
    2. /save
    3. Danach die savedpositions.txt Datei öffnen, diese findest du unter folgendem Pfad: Dokumente/GTA San Andreas User Files/SAMP/savedpositions.txt
    4. Dort findest du nun die gespeicherte Position. AddPlayerClass(....


    Diese Dinge brauchst du für deinen Befehl:
    [wiki]IsPlayerInRangeOfPoint[/wiki] mit dieser Funktion kannst du abfragen ob der Spieler in der Position ist.
    Hierzu nimmst du einfach deine AddPlayerClass Funktion und kopierst dir die Koordinaten ab dem 2. Parameter bis zum 4. Parameter.
    Also so:
    AddPlayerClass(0, 123.0, 222.0, 456.0, 5.0, 0, 0, 0, 0, 0, 0);


    if(!IsPlayerInRangeOfPoint(playerid,5.0, 123.0, 222.0, 456.0))return SendClientMessage(playerid, -1, "Du bist nicht im Arbeitsamt!");


    Außerdem benötigst du noch:
    [wiki]ShowPlayerDialog[/wiki]
    [wiki]OnDialogResponse[/wiki]


    MfG German_ScripterHD :thumbup: