char int language fehler ?

06/18/2014 17:01 Terrat#1
Hallo,
da ich selber etwas mit cheat engine umgehen kann und daher weis wie leicht man doch sachen findet wie zb Ammo anzeige etc. Wollte ich jetzt mal nen char int trick anwenden. Ergo es wird "int" gerechnet also mit zahlen dieses aber mit belibigen buchstben so das sie nicht in cheat engine findet.

Aufruf:
Was rauskommt ist D es sollte aber DA sein.

M_Player_Ammo=CMath_GetChars(30);
06/18/2014 17:46 Schlüsselbein#2
Du kannst froh sein, dass du überhaupt einen Wert bekommst.

Lern erstmal die Sprache.
06/18/2014 18:32 MrSm!th#3
Bin heute in Spoonfeeding Laune:

[Only registered and activated users can see links. Click Here To Register...]

Kann man sicher noch mit weiteren C++11 Features verschönern. Auf dem Gebiet bin ich nicht so bewandert.


Kleiner Tipp:
Das wird niemanden, der einen höheren IQ als ein Toastbrot hat, lange aufhalten.
06/18/2014 18:58 Terrat#4
Quote:
Originally Posted by Schlüsselbein View Post
Du kannst froh sein, dass du überhaupt einen Wert bekommst.

Lern erstmal die Sprache.
Dad ist es ja mr perfekt ich lerne sie und ich habe ein c++ buch von ulrula kirch von amazon und habe gerade den funktionsaufbau also helft mir schlüsselbein oder lass es.
06/18/2014 20:10 snow#5
Quote:
Originally Posted by MrSm!th View Post
[Only registered and activated users can see links. Click Here To Register...]
Umständliche Loop ist umständlich :o
Code:
std::transform(result.begin(), result.end(), result.begin(), [](char c) { return c + EncodingOffset; });
produziert das selbe Resultat & man könnte rechtfertigen, warum der Parameter bei decode nicht als const ref übergeben wird.

Quote:
Originally Posted by Dreamsläps View Post
char* CMath_GetChars_Return;
[…]
strcpy(CMath_GetChars_Return,CMath_InttoChar(last) );
Meine Mikrowelle ist gerade explodiert. :(
Schau dir mal an, was ein Zeiger ist & was strcpy macht. Und dann std::string.
06/18/2014 23:31 Terrat#6
Quote:
Originally Posted by snow911 View Post
Umständliche Loop ist umständlich :o
Code:
std::transform(result.begin(), result.end(), result.begin(), [](char c) { return c + EncodingOffset; });
produziert das selbe Resultat & man könnte rechtfertigen, warum der Parameter bei decode nicht als const ref übergeben wird.



Meine Mikrowelle ist geradue explodiert. :(
Schau dir mal an, was ein Zeiger ist & was strcpy macht. Und dann std::string.
Hatte mich verschrieben, wollte strcat teste ich morgem mal
06/18/2014 23:38 Tasiro#7
Quote:
Originally Posted by snow911 View Post
Code:
std::transform(result.begin(), result.end(), result.begin(), [](char c) { return c + EncodingOffset; });
Nicht genug C++17.
Code:
#include <string>
#include <cstddef> // std::size_t
#include <sstream>
#include <iostream>
#include <optional> // not part of C++14
#include <algorithm>
#include <functional>
#include <initializer_list>

constexpr char EncodingOffset = 0x11; // from '0' to 'A'

template <typename numType>
auto encode (numType num) {
	auto result = std::to_string (num);
	std::transform (result.begin (), result.end (), result.begin (), [] (const auto & c) { return c + EncodingOffset; });
	return result;
}

template <typename numType = std::size_t>
auto decode (const std::string & str) {
	using namespace std::placeholders;
	std::transform (result.begin (), result.end (), result.begin (), std::bind (std::minus <numType> {}, _1, EncodingOffset));
	numType result;
	return std::stringstream {str} >> result ? std::make_optional <numType> (std::move (result)) : std::optional <numType> {};
}

int main () {
	int num = 1234;

	auto encoded = encode (num);
	std::cout << encoded << std::endl; // BCDE

	std::cout << decode (encoded) << std::endl; // 1234
}
Ich konnte es leider nicht testen, ein konformer Compiler stand mir gerade nicht zur Verfügung. Ich werde es morgen noch einmal versuchen.
06/19/2014 08:47 Delinquenz#8
> std::stringstream
Deprecated.

Habe da leider was verwechselt, einfach ignorieren. Danke an Tasiro, der mich darauf hinwieß.
06/19/2014 14:06 MrSm!th#9
Quote:
Originally Posted by snow911 View Post
Umständliche Loop ist umständlich :o
<algorithm> war noch nie mein Ding :p
Quote:
Code:
std::transform(result.begin(), result.end(), result.begin(), [](char c) { return c + EncodingOffset; });
produziert das selbe Resultat & man könnte rechtfertigen, warum der Parameter bei decode nicht als const ref übergeben wird.
Wie bitte?

Quote:
Originally Posted by Dreamsläps View Post
Hatte mich verschrieben, wollte strcat teste ich morgem mal
Ändert nichts am Sachverhalt. Schau dir Zeiger an!
06/19/2014 22:40 Terrat#10
Quote:
Originally Posted by MrSm!th View Post
<algorithm> war noch nie mein Ding :p
Wie bitte?



Ändert nichts am Sachverhalt. Schau dir Zeiger an!
Kommt aber erst in Kapitel 13 :0
06/19/2014 22:55 snow#11
Quote:
Originally Posted by Dreamsläps View Post
Kommt aber erst in Kapitel 13 :0
Dann schmeiß das Buch weg und nimm ein vernünftiges.
Der C++ Primer behandelt Zeiger ab Seite 85 von 1400 (Digitalausgabe), wenig später wird sehr umfangreich auf die Klasse std::string eingegangen, damit Entwickler eben nicht mehr mit Zeigern auf Zeichenketten hantieren müssen.

Quote:
Wie bitte?
My bad, habe ignoriert, dass der String ja modifiziert wird und dafür sowieso eine Kopie erstellt werden muss. :o

Quote:
Nicht genug C++17.
Du bist doch verrückt. :D nette Sache!