Für die Forenstile
- Breadfish - Dark Edition
- Breadfish - Light Edition
- Breadfish Retro
habe ich einen Workaround angewendet. Die Anmeldung mit dem Smartphone sollte daher vorerst wieder normal funktionieren.
Für die Forenstile
habe ich einen Workaround angewendet. Die Anmeldung mit dem Smartphone sollte daher vorerst wieder normal funktionieren.
Willkommen zurück Leon bratan. Hab’s mir aber nicht durchgelesen. Lass wieder mit Adiletten snappen
Hallo,
damit du die Differenz in Prozent haben kannst, brauchst du auf jeden Fall auch einen Timestamp, der den Start darstellt.
Sonst hast du keinen Bezug, was genau 0% oder 100% sind.
Der aktuelle Timestamp gib an (nach Berechnung) wie viel Prozent du erreicht hast. Dein Timestamp in der Zukunft sind dann (so gehe ich davon aus) deine 100%. Du brauchst aber noch einen Startwert, damit du auch die 0% hast.
LG
Nachtrag:
Beispielsweise so
$startTime = 1642777526;
$endTime = 1642778726;
$currentTime = time();
$timeDiff = $endTime - $startTime; // Erhalte die Sekunden, die innerhalb des Zeitraums liegen
$currentTimeDiff = $currentTime - $startTime; // Erhalte die Sekunden, die seit dem Start abgelaufen sind
$percent = $currentTimeDiff / $timeDiff; // Prozent berechnen
echo $percent;
Achte darauf, dass $percent auch die 1.0 überschreiten kann.
Ich hätte ganz andere Worte gefunden
Was versteht du nicht?
Bei uns ist der Drive In von MCs voller denn ja. Die Schlange geht weit raus der Hauptstraße entlang
Ich weiß leider nicht wie das bei Gimp ist. Bei Photoshop kannst du die Größen alle auch in CM angeben.
Maximal 36cm bei 300dpi wären: 4252 x 4252 Pixel.
Ansonsten kannst du auch diesen Rechner verwenden, falls du andere Maße berechnen möchtest: Pixel-Rechner: Pixel ⇔ CM ⇔ DPI umrechnen | Auflösung (blitzrechner.de)
Mit welchem Bildbearbeitungsprogramm arbeitest du denn?
Ein Bild, welches Größer ist, wird doch meist auf die maximale Größe reduziert. Bzw. man kann die Bilder meistens noch skalieren.
Druckst du die Shirts online oder in einem lokalen Laden?
ca 20 uhr
Da bin ich leider schon suff...
morgen ca 12 uhr
Da nüchtere ich noch aus..
Ich schaue heute mal zwischendurch rein
Moin.
Auch wenn die obigen Antworten korrekt sind, möchte ich auch noch eine Lösung hinzufügen.
Ich glaube, er möchte alle Monate mit den dazugehörigen Werten zurück erhalten.
Speziell geht es es ihm wohl darum, dass er den Zeitraum der Monate festgelegt hat (wieso auch immer) und diese dementsprechend für Bestellungen begrenzen kann.
Sollte er dafür einen Anwendungsfall haben, dann sollte er den JOIN in Erwägung ziehen - möglicherweise passt er ja start und end bei den Monaten auch mal an.
Gehen wir davon aus, dass dein Schema folgendermaßen aufgebaut und gefüllt ist (Spaltennamen usw. musst du dann natürlich auf dein Schema anpassen):
CREATE TABLE months (
month int PRIMARY KEY,
name varchar(15),
start date,
end date
);
INSERT INTO months (`month`, `name`, `start`, `end`) VALUES
(1, 'Januar', '2022-01-01', '2022-01-31'),
(2, 'Februar', '2022-02-01', '2022-02-28'),
(3, 'März', '2022-03-01', '2022-03-31'),
(4, 'April', '2022-04-01', '2022-04-30'),
(5, 'Mai', '2022-05-01', '2022-05-31'),
(6, 'Juni', '2022-06-01', '2022-06-30'),
(7, 'Juli', '2022-07-01', '2022-07-30'),
(8, 'August', '2022-08-01', '2022-08-31'),
(9, 'September', '2022-09-01', '2022-09-30'),
(10, 'Oktober', '2022-10-01', '2022-10-31'),
(11, 'November', '2022-11-01', '2022-11-30'),
(12, 'Dezember', '2022-12-01', '2022-12-31');
CREATE TABLE orders (
id int PRIMARY KEY AUTO_INCREMENT,
customer varchar(15),
time date
);
INSERT INTO orders (`customer`, `time`) VALUES
('Peter', '2022-01-02'),
('Peter', '2022-01-08'),
('Steven', '2022-01-28'),
('Mari', '2022-02-05'),
('Tobi', '2022-02-19'),
('Luke', '2022-03-02'),
('Luke', '2022-03-08'),
('Mathis', '2022-04-06'),
('Peter', '2022-06-03'),
('Peter', '2022-06-04'),
('Alex', '2022-07-02'),
('Karl', '2022-07-08'),
('Hanna', '2022-08-01'),
('Bush', '2022-09-11'),
('Did', '2022-09-11'),
('It', '2022-09-11'),
('Kira', '2022-10-02'),
('Maria', '2022-10-22'),
('Josef', '2022-10-30'),
('Luke', '2022-11-11'),
('Jesus', '2022-12-24'),
('Santa', '2022-12-25'),
('Santa', '2022-12-26');
Alles anzeigen
Um nun von einem Monat die Anzahl der Bestellungen zu erhalten kannst du folgenden Befehl ausführen:
SELECT name, COUNT(*) as 'Count' FROM months LEFT JOIN orders ON orders.time BETWEEN months.start AND months.end WHERE name = 'Januar';
Um nun alle Monate mit der Anzahl der zugehörigen Bestellungen zu erhalten:
SELECT name, COUNT(*) as 'Count' FROM months LEFT JOIN orders ON orders.time BETWEEN months.start AND months.end GROUP BY months.month;
URL zum FIddle: SQL Fiddle und SQL Fiddle
Da selbst der Verfasser hier Diskussionen beginnt und fortführt, schließe ich das Thema.
Wie man zur heutiger Zeit, in der schon so wenige SAMP Server existieren, trotzdem die Messlatte so weit runtersetzen kann ist mir leider echt ein Rätsel.
Sollte es gute Gründe für die Wiedereröffnung des Themas geben, dann können diese und gerne weitergereicht werden.
Euch noch einen schönen und diskussionsfreien Dienstag.
seid
seidt bitte.. Damit auch @ShadowKev1999 mitreden kann
Ich würde das folgendermaßen aufbauen:
Füge deinem Vehicle-Enum noch einen Wert hinzu, bspw: fvehInUse (als Boolean-Wert)
Damit kannst du prüfen, ob der Index/Slot bereits in Verwendung ist.
Diesen Wert musst du immer auf true setzen, wenn du ein Fahrzeug erstellst und somit diesen Slot verwendest und auf false, wenn du diesen wieder freigibst.
Mit dieser Funktion kannst du den nächsten freien slot erhalten.
stock getNextFreeVehicleSlot() {
for(new i; i < MAX_FRAK_VEHICLE; i++) {
if (!fVehInfo[i][fvehInUse]) return i;
}
return -1;
}
Dann kannst du das folgendermaßen in deinen Befehl einbauen:
ocmd:fcreateveh(playerid, params[])
{
new frak, model, Float:pos[4], color[2], sirene, msg[128], query[1024];
if(!pInfo[playerid][pLoggedIn]) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Du bist nicht eingeloggt.");
if(pInfo[playerid][pTeam] == 0) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Du bist kein Teammitglied.");
if(pInfo[playerid][pTeam] < 5) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Dein Teammitglied Rang ist zu niedrig.");
if(sscanf(params, "iiiii", frak, model, color[0], color[1], sirene))return SendClientMessage(playerid,COLOR_GELB, "* Benutze"HTML_WEISS": /fcreateveh [FraktionID] [ModelID] [Color1] [Color2] [Sirene(0/1)]");
if(frak < 1 || frak > 16) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Die Fraktion existiert nicht. Benutze /fraktionen");
if(model < 400 || model > 611) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Diese ModelID existiert nicht!");
if(GetPlayerVirtualWorld(playerid) != 0) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Du musst in der Spielwelt sein!");
if(GetPlayerInterior(playerid) != 0) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Du darfst in keinem Interior sein!");
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
GetPlayerFacingAngle(playerid, pos[3]);
new freeSlot = getNextFreeVehicleSlot();
if (freeSlot == -1) return SendClientMessage(playerid, COLOR_ROT, "* Fehler"HTML_WEISS": Es exisitieren keine weiteren freien Slots mehr.");
fVehInfo[freeSlot][fvehInUse] = true;
fVehInfo[freeSlot][fvehModel] = model;
fVehInfo[freeSlot][fvehColor1] = color[0];
fVehInfo[freeSlot][fvehColor2] = color[1];
fVehInfo[freeSlot][fvehFraktion] = frak;
fVehInfo[freeSlot][fvehX] = pos[0];
fVehInfo[freeSlot][fvehY] = pos[1];
fVehInfo[freeSlot][fvehZ] = pos[2];
fVehInfo[freeSlot][fvehR] = pos[3];
fVehInfo[freeSlot][fvehSirene] = sirene;
mysql_format(Handle, query, sizeof(query), "INSERT INTO `fraktion_vehicle` (`VehID`, `VehModel`, `VehColor1`, `VehColor2`, `VehFraktion`, `VehX`, `VehY`, `VehZ`, `VehR`, VehSirene`) VALUES ('%d', '%d', '%d', '%d', '%d', '%f', '%f', '%f', '%f', '%d')",
i, fVehInfo[freeSlot][fvehModel], fVehInfo[freeSlot][fvehColor1], fVehInfo[freeSlot][fvehColor2], fVehInfo[freeSlot][fvehFraktion], fVehInfo[freeSlot][fvehX], fVehInfo[freeSlot][fvehY], fVehInfo[freeSlot][fvehZ], fVehInfo[freeSlot][fvehR], fVehInfo[freeSlot][fvehSirene]);
mysql_tquery(Handle, query);
fVehInfo[freeSlot][fvehID] = CreateVehicle(fVehInfo[freeSlot][fvehModel], fVehInfo[freeSlot][fvehX], fVehInfo[freeSlot][fvehY], fVehInfo[freeSlot][fvehZ], fVehInfo[freeSlot][fvehR], fVehInfo[freeSlot][fvehColor1], fVehInfo[freeSlot][fvehColor2], fVehInfo[freeSlot][fvehSirene]);
PutPlayerInVehicle(playerid, fVehInfo[freeSlot][fvehID], 0);
format(msg, sizeof(msg), "* AdminInfo"HTML_WEISS": Du hast ein Fraktionsvehicle für die Fraktion %s erstellt.", fInfo[frak-1][fName]);
SendClientMessage(playerid, COLOR_GELB, msg);
return 1;
}
Alles anzeigen
Vergiss nicht, an den Stellen in deinem Script, an der du Fahrzeuge erstellst auch fVehInfo[freeSlot][fvehInUse] = true; zu verwenden und
da, wo du welche wieder löscht dann auf false.
Und dein Enum um fvehInUse erweitern.
Anmerkung zur deiner Methode mit IsValidVehicle:
Sollte das Fahrzeug irgendwann mal irgendwie verschwinden (Explodiert, nicht geladen, Troller und so weiter) dann wird das Fahrzeug durch dein Befehl überschrieben, da es nunmal nicht valide ist.
Mit meiner Empfehlung auf fvehInUse zu prüfen, hast du die alleinige Kontrolle über den "Datensatz", ob dieser verwenden wird oder nicht. Mit IsValidVehicle hingegen kann dir auch mal das Spielgeschähen dazwischen funken, das ist aber in diesem Fall nie gewollt.
Habe das schnell frei aus dem Kopf erledigt, könnte sein, dass da auch Denkfehler mitbei sind, einfach mal testen.
Das liegt vielleicht daran, dass der Thread vom 3. April 2011 ist und seitdem eine gewisse Zeit vergangen ist.
Vielleicht sollte man sich etwas neueres widmen.?
Ich gehe mal davon aus, dass der Fehler von fInfo[frak][fName] erzeugt wird. frak scheint größer zu sein, als der mögliche Index von fInfo zulässt.
Dabei noch eine Frage: Fragst du innerhalb der Schleife ab, ob das Fahrzeug valide ist und wenn nicht, dann soll er das Fahrzeug erstellen?
Das sieht alles nämlich etwas zu unkonventionell aus. Magst du mal sonst dein Befehl hier reinschreiben, dann kann man mal schauen, was man da verbessern kann.
Du gibst ja auch printf("%d", fVehInfo[i][fvehID]); in deiner Schleife an. Ich gehe mal davon aus, dass in der fvehID die Datensatz-ID des Fahrzeuges gespeichert ist.
Damit der Schleifendurchgang geprinted wird, brauchst du nur die lokale Variable i in deinem print angeben.