Stringbeschränkungen umgehen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,
    Ich muss mal wieder mit meinen komischen fragen kommen, entschuldigung, aber ich muss unbedingt Sonderzeichen in eine Datei schreiben. Darunter auch Zeichen, die nicht im ASCII-Code vorkommen, ich also leider hier nicht anzeigen kann :S Sie sehen so aus:
    |
    Naja so ähnlich :D Und diese noch:

    Code
    ¤ Ý ô


    Weiß jemand, wie ich das umgehen kann ? Ich habe es schon mit viel versucht, unter anderem auch ein "Filemanager" um die Datei, wo die Zeichen drinne stehen, auszulesen... Ohne erfolg ;(
    Es handelt sich dabei übrigens um eine compilierte AMX-Datei, die möchte ich kopieren und einen String bearbeiten... Ich weiß alles schon außer den String mit den Sonderzeichen...


    Tion

  • Ich habe in einer amx-Datei den String xyz. Ich möchte die AMX-Datei nun in den Ordner "edited" kopieren und dann die Zeichenkette xyz durch zxy ersetzen.
    Damit die Datei nicht 2mal durchläuft, muss ich einen Zählwert einfügen. Das ganze sieht bis jetzt so aus:

    Code
    new _counter = 0;
    	new _string[64];
    	do
    	{
    	    format(_string, 64, "edited/npc_%d.amx", _counter);
    	    _counter++;
    	} while(file_exists(_string));
    	file_copy("root.amx", _string);


    und die Funktion file_copy:


    Die AMX-Datei hat 20 Zeilen also reicht ein String von 512 Zeichen, habe die Zeichen durchgezählt :D
    Der String ist am Ende der Datei, die letzten ~30 Zeichen.

    Zitat

    Ob die .amx Datei dannach noch funktioniert


    Ich habe mich länger mit dem Compiler auseinandergesetzt und denke, dass ich es nun schaffen werde, die mit der Hand zu ändern ;)
    Mein erster Versuch hat zumindestens geklappt, DeAMX auszubauen und ein Script dann zu decompilen :D

  • Die zu wechselnde Variable kannst du auch in ner Datei oder per MySQL lagern und in der .amx auslesen.


    So müsste es zumindest funktionieren -
    da ich aber keine Ahnung habe, was du vorhast,
    ist das auch nur ne Vermutung...

    Einmal editiert, zuletzt von Trooper[Y] () aus folgendem Grund: Grammatik

  • Zitat

    Hmm, es sieht so aus als ob du ein Dynamisches NPC System machen willst, bestimmt eins mit dem man InGame recorden kann und abspielen kann oder?


    Hat mit NPC zu tun, aber das ist es nicht ;)


    Zitat

    Die zu wechselnde Variable kannst du auch in ner Datei oder per MySQL lagern und in der .amx auslesen.


    So müsste es zumindest funktionieren -
    da ich aber keine Ahnung habe, was du vorhast,
    ist das auch nur ne Vermutung...


    Ich depp, danke. Ich hatte es schon mit CallRemoteFunktion versucht, aber auf das benutzen eines "Caches"... Wäre ich NIE gekommen, danke...
    Wobei ich die Datei ja nicht kopieren kann, nur verschieben :S Weiß da jemand eine Abhilfe ?


    Tion

  • Zitat

    Erklär doch mal bitte, wofür du genau die Datei kopieren willst...


    Möchte ich gerne nicht sagen, da es sonst viele abkopieren würden...
    Ich brauche das allerdings als Filterscript, wo NPC-Dateien darauf zugreifen können und diesem Filterscript ist eine eigene Funktion "DieFunktion_1" usw., die muss ich per CallRemoteFunktion aufrufen... Schwer zu erklären ohne es zu verraten ;)


    Tion


    /Edit: Kommentar ziehmlich groß ^^ Der abschließende Tag war nur halb da :S

  • Sag doch einfach was du vor hast.
    Warum sollte dir jemand die Idee stehlen, wenn du sie hier öffentlich schreibst? Dann weiß doch jeder, dass die Idee von dir ist.
    Wenn du eine AMX mit dynamischem Inhalt haben möchtest, wäre ein compiler plugin einfacher.

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.