Ich nehme gerne an der Aktion teil.
Für diese Map habe ich mit Sicherheit Verwendung in meinem aktuellem Projekt.
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
-
Eine gelungene Map wie ich finde.
Habe daran echt nichts auszusetzenWeiter so 10/10 Brotfische bekommst du von mir!
-
Suche diese Bank hier, weiß eventuell jemand die ID?
Müsste, die ID 3657 sein. Aber du muss dort die Textur ändern, damit es so aussieht wie auf dem Bild
-
Hier solltest du eigentlich die neuste Version finden ocmd 2.1.1 [ Update 3.11.2013 ]
-
Ich suche die Dusche, die dort an der Wand hängt
-
Super Jeffry!
Ich danke dir für deine Hilfe. -
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: -
Super, vielen Dank, jetzt klappt alles.
Nun habe ich noch eine Frage, der Hintergrund bei dem TextDraw mit der Skinselection ist noch schwarz, kann man das mit irgendeiner Funktion anpassen? -
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:
Die PlayerTextDraws erstelle ich so: (Genaue Koordinaten entfernt, Grund vor Copy & Paste)
Cnew 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:
C
Alles anzeigenpublic OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) { new str[258]; //Pfeil rechts: if(playertextid == playerData[playerid][pRegisterTD][4]){ if(GetPVarInt(playerid,PVAR_REGISTER_SEX) == 1){ if(playerData[playerid][pSkinClicked] == sizeof(MaleSkins)){ playerData[playerid][pSkinClicked] = 0; printf("[Step 1] %i",playerData[playerid][pSkinClicked]); } else{ playerData[playerid][pSkinClicked]++; printf("[Step 2] %i",playerData[playerid][pSkinClicked]); format(str,sizeof(str),"%i", MaleSkins[playerData[playerid][pSkinClicked]]); printf("[Step 3] %s",str); PlayerTextDrawSetString(playerid, playerData[playerid][pRegisterTD][5],str); } } else if(GetPVarInt(playerid,PVAR_REGISTER_SEX) == 2){ if(playerData[playerid][pSkinClicked] == sizeof(FamaleSkins)){ playerData[playerid][pSkinClicked] = 0; printf("[Step 4] %i",playerData[playerid][pSkinClicked]); } else{ playerData[playerid][pSkinClicked]++; printf("[Step 5] %i",playerData[playerid][pSkinClicked]); format(str,sizeof(str),"%i", FamaleSkins[playerData[playerid][pSkinClicked]]); printf("[Step 6] %s",str); PlayerTextDrawSetString(playerid, playerData[playerid][pRegisterTD][5],str); } } } if(playertextid == playerData[playerid][pRegisterTD][4]){ if(GetPVarInt(playerid,PVAR_REGISTER_SEX) == 1){ if(playerData[playerid][pSkinClicked] == -1){ playerData[playerid][pSkinClicked] = sizeof(MaleSkins); printf("[Step 7] %i",playerData[playerid][pSkinClicked]); } else{ playerData[playerid][pSkinClicked]--; printf("[Step 8] %i",playerData[playerid][pSkinClicked]); format(str,sizeof(str),"%i", MaleSkins[playerData[playerid][pSkinClicked]]); printf("[Step 9] %s",str); PlayerTextDrawSetString(playerid, playerData[playerid][pRegisterTD][5],str); } } else if(GetPVarInt(playerid,PVAR_REGISTER_SEX) == 2){ if(playerData[playerid][pSkinClicked] -1){ playerData[playerid][pSkinClicked] = sizeof(FamaleSkins); printf("[Step 10] %i",playerData[playerid][pSkinClicked]); } else{ playerData[playerid][pSkinClicked]--; printf("[Step 11] %i",playerData[playerid][pSkinClicked]); format(str,sizeof(str),"%i", FamaleSkins[playerData[playerid][pSkinClicked]]); printf("[Step 12] %s",str); PlayerTextDrawSetString(playerid, playerData[playerid][pRegisterTD][5],str); } } } return 1; }
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:
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. -
Bitte einmal einfügen und dann die Ausgabe aus der Konsole bzw. der server_log.txt kopieren und hier senden.
C
Alles anzeigencreatePlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r,Color1,Color2) { for(new i=0; i<sizeof(CarInfo); i++) { if(CarInfo[i][id_x]!=0)continue; print("cratePlayerCar - Step 1"); CarInfo[i][besitzer]=PlayerInfo[playerid][p_id]; CarInfo[i][c_x]=x; CarInfo[i][c_y]=y; CarInfo[i][c_z]=z; CarInfo[i][c_r]=r; CarInfo[i][model]=modelid; print("cratePlayerCar - Step 2"); CarInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,Color1,Color2,-1); print("cratePlayerCar - Step 3"); CarInfo[i][db_id] = cache_insert_id(); print("cratePlayerCar - Step 4"); new string[128]; format(string,sizeof(string),"Das Auto CarInfo[%i] wurde erstellt.",i); SendClientMessageToAll(CL_SERVER,string); print("cratePlayerCar - Step 5"); saveCarToDB(playerid,i); print("cratePlayerCar - Step 6"); return 1; } return 1; }
-
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? -
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ß
crylessDanke dir für deine Kritik.
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ärbstAnsonsten 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.
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 -
Mir gefällt die Map die ich bis jetzt anhand der Bilder sehe schon mal sehr gut.
Außerdem finde ich es sehr gut, wie es hier voran geht
Weiter so! -
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:
C
Alles anzeigenpublic CMDLog(string[]) { new entry[128], year, month, day, hour, minute, second; getdate(year,month,day); gettime(hour,minute,second); format(entry, sizeof(entry), "[%02d.%02d.%02d][%02d:%02d:%02d] %s\n",string,day,month,year,hour,minute,second); new File:hFile; hFile = fopen("CMDLOG.log", io_append); fwrite(hFile, entry); fclose(hFile); }
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 -
kann man Fahrzeuge als Objekt erstellen ?
Nein, das ist leider nicht möglich.
Du kannst lediglich die kaputten Auto Objekte nehmen.12957
3593
3594 -
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