Die Warnings sagen nur, du musst im Parameter der Funktion ein const String übergeben.
Also schreib einfach const key[], anstatt key[].
Welches wäre momentan die beste alternative zu dini
MySQL ![]()
Die Warnings sagen nur, du musst im Parameter der Funktion ein const String übergeben.
Also schreib einfach const key[], anstatt key[].
Welches wäre momentan die beste alternative zu dini
MySQL ![]()
Joa, aber das sieht mir nach schlechtem Skripting aus und nicht nach dem Fehler vom Compiler ![]()
Musst die einzelnen Zeilen mal durchgehen...
Und du nutzt auch sicher das aktuellste fixes.inc? https://raw.githubusercontent.…mp-fixes/master/fixes.inc
Prüfe auch, dass du die richtige Pawno.exe öffenst.
Ansonsten ist das sehr merkwürdig, ich kann das nicht nachstellen, bei mir funktioniert das einwandfrei.
NoxiZIII Du verwendest vermutlich den falschen Compiler.
Du musst diesen hier nutzen: https://github.com/pawn-lang/compiler/releases
Und diese Includes: https://github.com/pawn-lang/samp-stdlib
Ich habe eine Middleware (falls man das auch so bei Vue nennt), welche prüft, ob man angemeldet ist
Ich weiß nicht, wie hier der Code dafür aussieht. Aber vermutlich prüfst du gegen den LocalStorage, ob da eine Variable gesetzt ist. Und da der LocalStoarge beim Client liegt, kann dieser natürlich sehr einfach manipuliert werden.
Muss ich bei jedem Aufrufen einer Seite auch prüfen, ob dieser einen gültigen Hash hat? Also immer wieder das Backend ansprechen?
Genau, da das ja einfach manipulierbar ist und somit "theoretisch" jeder auf die Seite kommen kann, bedarf es einer Backend Prüfung, ob diese Person wirklich darauf Zugriff hat.
Wie genau mach ich das, bzw. wie verläuft die Prüfung? Alles ist ja beim Client einsehbar und veränderbar. Dann kann ich doch auch die Prüfung des Token/Hashes einfach umgehen.
Der Token/Hash liegt beim Client, aber die Prüfung findet natürlich Serverseitig statt, mittels z.B. NodeJS ![]()
Bei Verifizierungsverfahren kommt man nicht drum herum eine Serverseite zu haben ![]()
wodurch der Code den der Client am Ende erhält bundled und minified ist, wodurch es gar nicht mehr der "originale" Source Code ist und dadurch auch schwerer zu lesen ist.
Das mag durchaus sein, allerdings gibt es Seiten, wodurch das minified rückgängig gemacht werden kann. Zudem bleiben Strings erhalten und so ist es schon möglich einige Eindrücke zu erhalten...
Primär ging es ja auch nur um die Möglichkeit, ob es möglich wäre, nicht, ob es trivial ist ![]()
ich bräuchte einmal einen kleinen Snippet für ein PostRequest via Lua, das ganze soll eine Abfrage an einen Server darstellen und dieser liefert auch ein Ergebniss zurück.
Was ist denn das Problem?
Wenn der Request funktioniert und ein Ergebnis liefert, ist doch alles gut oder nicht?
Worauf genau willst du denn eine Antwort oder einen Hinweis...deine Frage geht in deiner Erklärung irgendwie unter ![]()
Ich versuche mich mal an den Fragen:
Habe ich das richtig verstanden: Vue ist eine reines Frontend-Framework?
Man benötigt also, nicht wie in PHP bspw., immer eine Backend-Schnittstelle, meistens eine (selbst geschriebene) REST-Full API Schnittstelle o.ä.?
Ja, Vue JS ist ein Frontend-Framework. Sprich es vereinfacht dir das Seitenerstellen mit Hilfe von JS. Dadurch kannst du Module und Templates erstellen und diese immer wieder verwenden und kompliziertere Logiken einfacher gestalten. (Wobei VUE inzwischen auch SSR (Server Side Rendering) kann, aber trotzdem bleibt es natürlich ein Frontend-Framework hier ein Artikel mal dazu: https://vuejs.org/guide/scaling-up/ssr.html)
Die zweite Frage verstehe ich nicht ganz. VUE basiert auf Javascript und das kann direkt beim Client ausgeführt werden, also ja, du brauchst kein Backend, das würde alles in einer .html Datei so ausgeführt werden können.
Ist der ganze Script-Code für den Nutzer einsehbar? Ich konnte auch im Build-Status meinen Code einsehen. Bedeutet also, ich kann keine lokale Sicherheitsabfrage stellen. Diese sind ja dann einfach im Quellcode einsehbar?
Als Beispiel: Ich möchte für ein sehr kleines Projekt einen Login anbieten, aber dafür keine Nutzerdatenbank anlegen. Die Anmeldung läuft über statisch angelegte Werte - die dann im Quellcode lesbar sind. Gibt es hierfür eine andere Methode?
Ja, alle JS Logiken sind immer einsehbar, da sie am Client ausgeführt werden und nicht am Server.
Ja, dafür brauchst du ein Backend-System wie z.B. NodeJS, das läuft ja dann am Server und nicht am Client.
(Als Hinweis: Ich nutze auch Vue-Router und Vuex) Eine Variable im Storagemanager von Vuex handelt den Status der Anmeldung. Kann der Nutzer diese nicht einfach manipulieren und ist somit dann auch angemeldet?
Theoretisch ja, aus diesem Grund sollte natürlich auch immer ein Token/Hash generiert werden, womit abgeglichen werden kann, dass man wirklich angemeldet ist. ![]()
Macht euch das auch so fertig?
Kickt anders rein.
Geht nur wenn jemand im Fahrzeug ist, was ja mein problem ist.
Wie gesagt, dann musst du in CreateVehicle die Angle setzen
Bzw Fahrzeug zerstören und wieder erstellen.
Hallo,
ich brauche mal eure hilfe stehe auf dem schlauch
er soll wenn die strings gleich sind 0 returnen und wenn nicht 1 jetzt returnt er jedoch immer 1 warum
Drehe die Logik:
Aber prüfe vorher irgendwo, dass die Strings nicht leer sind, sonst kommt auch immer 0 heraus!!!
Bzw ergänze diese Prüfung!
dann setze ich es auf eine Position die vorab gespeichert wurde
Du setzt mit SetVehicleToRespawn es auf die Position, auf der du es mit CreateVehicle erstellt hattest.
Wie @Grosim vermutlich meinte, kannst du einfach SetVehicleZAngle für die Rotation verwenden.
Alternativ kannst du auch einfach beim CreateVehicle, den a Parameter richtig setzen, dann genügt SetVehicleToRespawn vollkommen ![]()
Grüße vom Elite Treff 2022, heute wurde der Bodensee per Motorboot erkundet und zukünftige Investitionen ausgekundschaftet
Den Donateorn sei Dank ![]()
ID 0 wird auch gespeichert daher ist die Abfrage ob <= 0 aus meiner Sicht sinnlos.
Ah okay, das wusste ich nicht, dann mach es so:
getFrakName(playerid)
{
new frak[64];
for(new i; i < sizeof(FrakInfo); i++)
{
if(PlayerInfo[playerid][pFraktion] == FrakInfo[i][frak_id])
{
strcat(frak,FrakInfo[i][frak_name]);
return frak;
}
}
strcat(frak,"Unbekannt");
return frak;
}
Alles anzeigen
//Edit:
Ah, mach es so.
Pawn macht da dumme Sachen mit dem Pointer ![]()
//Edit2:
Nutze strcat, bei der direkten Zuweisung, kann es zu Fehlern kommen...
new tmp_name[128];
cache_get_value_name(i, "fraktion", tmp_name);
strmid(FrakInfo[id][frak_name], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
Kannst das auch direkt laden:
cache_get_value_name(i, "fraktion", FrakInfo[id][frak_name], 64);
Im Enum ändere das zu frak_name[64], denn so lange werden Fraktionsnamen ja nicht...256 Zeichen, das wäre ja Wahnsinn ![]()
Vermutlich weil du irgendwo DestroyPickup verwendest ![]()
Und dort die ID 0 gelöscht wird.
Das ist der übliche Fehler in den Skripten, sie bedenken nicht, dass 0 eine gültige PickupID ist.
Aus dem Grund wird z.B. im GF Skript am 0 Punkt ein Pickup ganz oben im Skript erzeugt ![]()
Würde man aber richtig programmieren, würden so Fehler nicht passieren. Aber das ist der Grund für den berühmten ID 0 Bug ![]()
So wird dir niemand helfen.
Zeig den Code den du geändert hast, welche Fehler auftreten was genau du erreichen magst und was nicht klappt...
Wo ist diese Abfrage den drinnen?
In einem Timer oder unter OnPlayerUpdate?
So oder so solltest du dafür timestamps nutzen alias gettime().
Ich reiche ein paar Beispiele später nach, gerade leider nur am Handy.
Vllt findest schon was online ![]()
Kannst du den cmd, welchen du nur noch als Beifahrer nutzen kannst auch posten? ![]()
#Handy
Naja, wieso nutzt du VehicleComponentName[], also das [] bezieht sich ja auf die zweite Dimension eines Arrays.
Denke du willst es ohne das [].