Habe gerade nicht viel Zeit, aber falls es nicht kompiliert, ist hier schonmal ein Fehler: Du musst den String escapen, also statt
"<object id="%d"...>" zB "<object id='%d'...>" oder "<object id=\"%d\"...>".
Da sonst der Compiler denkt, der String endet bereits nach dem zweiten ".
Beiträge von Alf21
-
-
Wahrscheinlich weil das compilen nichts bringt, wenn andere Zeichen enthalten sind. Der Compiler kompiliert eben nur das, was da steht, und ersetzt ledeiglich Pre-Prozessor-Anweisungen.
Also solltest du durch den Source Code gehen und alle ä, ü, ö mit den normalen ä, ü, ö ersetzen. Auch wenn die gleich aussehen, es liegt wahrscheinlich an der Zeichencodierung / Encoding / Zeichenformarierung. Ich habs nicht mehr im Kopf, aber ich würde an deiner Stelle den Code kopieren, in Notepad++ einfügen, und alles auf UTF8 formatieren, hast vielleicht ASCII drin. Mach dir aber natürlich bei solchen Vorhaben immer ne Sicherungskopie
-
Oder du nutzt ClientExtensions wie SAMPFox oder SAMP+, die bieten solch eine Abfrage. Nur dann wären wiederum Textdraws sinnlos, da man gleich mit DirectX arbeiten könnte
Vielleicht bietet ja das YSF Plugin von Kurta so etwas
-
Oder hier https://github.com/Alf21/event-system/blob/master/pom.xml
Da steht die Dependency für den shoebill-streamer drin. Einfach in die pom.xml die TagList für die Dependency im Dependencies Tag einfügen.
Klingt komisch, ist aber so Über die pom.xml werden die externen Projekte geladen und up-to-date gehalten.
-
@Dom das war auf das dynamische Scripten bei den Textdraws bezogen. Dynamic bindet sich nicht an Limits. Deshalb heißt ed auch dynamisch, weil man es dynamisch (also beliebig, ohne Begrenzungen) anpassen kann. Das geht aber im Bezug von Textdraws nicht, da es ein Limit gibt. Das zwar auf bei Fahrzeugen, aber in Relation mit deinem Vorhaben, ist das Limit mit den Textdraws viel zu niedrig. Und deshalb gehen auch die Meinungen hier auseinander, weil hier welche mit Erfahrung sprechen.
Klar kannst du das auch mit Dialogen machen, ich finde das persönlich aber nicht ansprechend und langweilig, sich da durch zu tippeln.
Und deshalb sagst du es ja schon selbst:Zitat von DomWenn man sich ein wenig Mühe gibt und sich ein bisschen auskennt, kann man sprichwörtlich fast alles dynamisch machen
"FAST alles", aber eben nicht alles.
-
Würde das ebenfalls niemals in SAMP umsetzen. Warum?
Darum: Du wirst NIEMALS dynamisch in PAWN arbeiten können, denn alleine das hinzufügen eines Links und du Aufruf eines Dialogs, das ist schon programmierarbeit, sowas wird ingame nicht möglich sein.
Ich habe damals in Shoebill mit einem GUI System angefangen, und dazu ein kleines System geschrieben, um Ingame so etwas selbst erstellen zu können. Also darüber wäre es etwas mehr möglich, aber etwss mehr heißt nicht, dass es klappt.
Und das auf dem Grund, den viele Designer/Programmierer in SAMP kennen - Stichwort: Limits.
Sobald du in einem Text einen Link haben willst, heißt das, du unterbrichst diesen Text.
a) extreme Performance um alles zu berechnen
b) laufen diese Berechnungen Serverseitig
c) sind das bei einem Link im Text schon 3 Textdraws. Dazu den Samsung Bildschirm, den Browser usw. noch mehr Textdraws, die immer miteinberechnet werden müssen. Somit eigenen sich vielleicht für den Bildschirm Textdraws, aber für individuelle Dinge nur PlayerTextdraws - mit denen du schnell ans Limit kommst (wortwörtlich).Also empfehle ich dir, einen DirectX Hook zu nutzen oder das GTA SA pluginSDK von DK oder es lieber sein zu lassen - nicht böse gemeint. Zum üben ist das gut, aber wenn du es nutzen willst spreche ich aus Erfahrung: das wird nicht einfach...
Wollte deshalb damals einen extra Client schreiben, um SAMP funktionen und Limits zu erweitern oder CEF miteinzubauen, aber das ist alles zu umständlich für den SAMP NutzerWenn du Berechnungen für ein Keyboard brauchst, sag mit bescheid. Habe da was. Aber auch hier wieder die Anmerkung: Die Tastatur frisst wieder Speicherplatz für das TextdrawLimit
-
1. Genau @'IPrototypeI, so habe ich das damals auch interpretiert Es bietet aber auch einige Vorteile: Man kann durch Funktionen wie GetPlayerLifecycle oder ähnliches halt das Objekt schnell bekommen. Aber der Hauptfokus liegt - soweit ich es weiß - darauf, dass man nicht extra selbst eine Liste anlegen muss und diese verwalten muss (beim connect / disconnect).
Du kannst am Beispiel des PlayerLifecycles auch ein Lifecycle für Vehicle machen. Ich glaube, dazu hat 123marvin123 mal Nutzen in seinem Dealership Plugin gemacht. Einfach mal auf GitHub stöbern Aber bin in der Sache wieder etwas eingestaubt, sollte aber stimmen2. Shoebill benutzt, um Plugins nutzen zu können sogenannte Wrapper (btw um selbst einen Wrapper ganz einfach zu erstellen, bietet 123marvin123 auch hier einen Converter auf GitHub an). Du brauchst also lediglich den Wrapper, beispielsweise über Maven, installieren bzw. inkludieren und dann compilen. Dieser kompilierte Code läuft dann aber natürlich auch nur, wenn du den Wrapper ebenso beim Server als Dependency vor deinem Gamemode lädst und wenn du das Plugin in der server.cfg eingetragen hast und es sich auch im /plugins Ordner befindet.
Ein Wrapper ist somit eigentlich nur eine Zwischeninstanz, die die Handhabung mit Plugins deutlich vereinfacht, um das Prinzip des OOP weiterhin effektiv nutzen zu können.
Hier eine kleine Anmerkung: nutze den Shoebill Streamer. Generell ist Shoebill im Umgang mit Plugins aber leider etwas langsamer als PAWN, da es erst jedesmal (beim Aufrufen einer Funktion) diese erst suchen muss (in anderen Sachen ist Shoebill aber wiederum schneller). Hier hat 123marvin123 die Wrapper in der Hinsicht verbessert, dass sie die Funktion beim Start initialisieren und es so schneller geht. Aber das intialisieren dauert eben auch ein wenig länger deshalb. Aber genug Hintergrundwissen, ich hoffe, dass das etwas geholfen hat.
Stichwort also: Bei Plugins, die Wrapper über Maven installieren (falls diese auf gtaun / irgendwo anders über maven existieren) oder halt manuell laden -
Ich hab als Projekt mit nem UCP für SAMP angefangen. Dazu nen login (gibt tutorials) und dann Stück für Stück eigene Systeme dazubauen. Das schöne daran war bei mir, dass ich bereits Daten in der MySQL DB hatte und die Motivation
-
Ist jetzt nur ne Idee, da ich mich noch nicht mit dem Thema auseinandergesetzt habe:
Du gehst in nen Checkpoint und triggers über den Client Serverseitig ein Event, zB "OnPlayerEnterCheckpoint" (falls es dieses noch nicht gibt: triggerServerEvent). Dann machst du in dem serverseitigen Event einfach deine Abfragen, indem du von Client die Checkpoint Position mit übergibst und die Position des Spielers serverseitig bekommst.
Vielleicht gehts auch einfacher. Dazu einfach mal das GTA:N Wiki durchstöbern
-
Ist es wirklich so schwer nachzuschauen in welchem Forum man gerade ist bevor man antwortet?
Nur nen Vorschlag, nicht schlimm, wenn es ne blöde Idee ist. Denn so sehr habe ich damit auch kein Problem, wäre nur etwas schöner, da SAMP und GTAN ganz schön durcheinander gehen
Nein, wie gesagt, nur ein Vorschlag. Doof wäre es, es immer extra einstellen zu müssen. Aber falls man das automatisieren könnte, würde ein Label sicher nicht schaden und auch nicht wehtun. Erspart euch zudem immerhin ein wenig Arbeit
-
1. Mittelsmann einschalten
2. 10€ PSC != 10€ PayPal, da gibts viele Abzüge. Kosten sind z.B. + 9% Gewinn Abzug + 0,36€ Grundbetrag Abzug. Hinzu kommen die Abzüge, die der Nutzer beim Kauf mit der PSC später hat. Nicht ganz fair... Wenn du es legal machen würdest. Unter der Hand ists soweit ich weiß nicht legal. Würde dir empfehlen, DrittAnbieter zu nehmen. Hier im Forum hat sich erst letztens jemand vorgestellt, der das gut macht. suche mal danach. -
Korrekt, so lassen sich Bereiche ausblenden
Jedoch findet man die Einstellung nur in der Desktop-Version, Mobil wird das Auge nicht angezeigt
Zudem: Wer anhand des Inhalt des Themas nicht erkennt um welchen Bereich es geht hat es scheinbar nicht komplett gelesen, immerhin reden wir von 3 verschiedenen Sprachen (PAWN, Lua und C# oder was auch immer :D)
Nicht unbedingt. Allgemeine Fragen beispielsweise. Dummes Beispiel: man fragt, wie man einen Spieler teleportieren kann.
Antwort: SetPlayerPosition(...);
Wenn nun aber gtan gemeint war, hätte es anders heißen müssen, bspw. client.setPosition(...); glaubeSo kann es immerhin bei allgemeinen Fragen zu Problemen kommen. Oder eben beim Beispiel mit dem Codeschnipsel Beitrag. CEF wird bspw. Auch in MTA genutzt. Auch wenn es hier niemand benutzt, könnten so ebenso Komplikationen auftreten
-
Habe gerade vergessen, wie es auf dem PC ist, aber beim Handy Browser werden keine Labels für GTA:N oder SAMP Themen angezeigt. Würde einfach vorschlagen, solche einzurichten, um halt gezielt helfen zu können. Ich weiß, dass es nur "extra extra" ist, aber manchmal guckt man auf dem Handy durch, hat keine Ahnung von MTA oder will nicht speziell auf SAMP Problemchen antworten, da man sich länger nicht mehr mit der Materie auseinandergesetzt hat, und verwechselt dann, dass es sich auf GTAN und nicht auf SAMP bspw. bezogen hat. Könnte man das automatisiern? So wie im "Suche"/"Biete" Bereich?
Nur nen Vorschlag, nicht schlimm, wenn es ne blöde Idee ist. Denn so sehr habe ich damit auch kein Problem, wäre nur etwas schöner, da SAMP und GTAN ganz schön durcheinander gehen.
Mit freundlichen Grüßen
-
Beim Wort "Datenbank" sollten die fortschrittlichen Programmierer unter euch zuerst an "MySQL" denken. Die, mit einer tieferen Vergangenheit (gerade im Bezug auf PAWN oder lokale Programme) denken wahrscheinlich eher an .ini, JSON oder eigene Datenbanken, welche zT auf SQL basieren.
Falls ihr jedoch richtig modern seit, und dem Trend folgen wollt sowie eine Pefekte Datenbanklösung mit einfachem Setup & Verwaltung von Daten haben wollt, was halt perfekt zum Problem "GTA:N" passt, kennt ihr sicher auch das sog. NoSQL.MongoDB ist eines davon. Es ist deutlich dynamischer und besser zu verwalten als .ini Dateien, basiert jedoch ebenso auf JSON / BSON. MongoDB gibt es natürlich für fast alle Sprachen, so also auch für C# / .NET. Ich finde, MongoDB ist wegen der vielen verschiedenen Daten und dem einfachen hinzufügen von Daten perfekt für solche Probleme. Was denkt ihr? Habt ihr gute oder eher schlechte Erfahrung mit NoSQL / MongoDB? Kennt ihr bessere Alternativen?
-
Ich kann @toor nur zustimmen. PAWN geht mit Copy&Paste vielleicht noch, aber auch wenn C# nicht soo viel schwerer ist, man braucht wegen setup und compiling (ggf) mehr Ahnung. Das sollte eigentlich kein Problem sein, wenn man die Struktur beim Programmieren bzw. jene hinter PAWN verstanden hat, aber das hast du wohl leider nicht. Sorry, auch wenn es hart klingt. Ich würde dir einfach nen C# Tutorial empfehlen. Fürs Handy gibts ne extrem gute App, von SoloLearn "Learn C#". Ohne jegliches Wissen wird das hier besonders am Anfang, da man nicht von irgendeinem Gotfather kopieren kann, keinen Sinn, ohne Kenntnisse C&P fürn Server zu benutzen. Wenn du bereit bist zu lernen und desbezüglich Fragen stellst, sind wir aber sicherlich gern bereit, sie dir zu beantworten. Doch Basics sollte man schon besitzen
Ich würde entweder das Object als Entity im Client speichern, oder eine globale Liste erstellen bzw. ebenso eine Object Klasse als Entity speichern, welche die Daten beherbergt. Das hatte ich bisher immer über eine Globale Liste mit Player Objects geregelt, da man so gleich ein integriertes ID System hat.
-
Der Pfad der Page des Browsers muss der gleiche wie der in der Meta sein. Ich weiß, es ist komisch. Aber selbst wenn die js. Datei bspw. in "clientside" liegt, muss man vom root Path der meta.xml ausgehen (also "absoluter", nicht relativer Pfad). CEF ist eben noch nicht perfekt
-
Einfach nur als Tipp um das "so-called Dynamic System" von @toor aufzugreifen:
Leg doch einfach nen Array an und verwalte die Wohnungen darüber. Macht mehr Sinn und dann kannste sogar mehr als 2 Wohnungen mieten... -
Wurde eigentlich fuer PAWNO Quellcode veroeffentlicht?
Also ich denke nicht, dass du den PAWN Editor PAWNO meinst, sondern eher das: https://github.com/compuphase/pawn (PAWN)
(oder https://github.com/Zeex/pawn)
Ansonsten: http://wiki.sa-mp.com/wiki/Scripting_Editors#Pawno -
Erstmal ka wie das bei PAWN ist, aber normalerweise muss man eine Variable initialisieren, wenn man diese nutzen will.
for(new fc; fc<sizeof(FactionCars); fc++)
for(new fc = 0; fc<sizeof(FactionCars); fc++)Zudem würde ich dir empfehlen, nicht nur Woran scheiterts {^[0-9]+$} ? auszugeben, sondern ebenso Variablen, um z.B. dein fc zu bekommen oder ähnliche Variablen.
-
Kennt jemand einen guten Teamspeak Hoster?