[Source] Multilanguage

11/02/2014 06:04 .SnoX#1
Da ich keine Verwendung mehr dafür habe und es sowieso simpel ist schenke ich es euch.

_Common\ProjectCmn.cpp

_Interface\WndOption.cpp

_Common\HwOption.cpp


_Common\HwOption.h

Hier noch für das Applet: APP_OPTEX_AV12
11/02/2014 11:58 Jomex#2
That ch prefix in DWORD variable xDD
11/02/2014 12:56 Drabur#3
Ich finde das man das schöner lösen kann.
Immer wenn man eine neue Sprache adden will muss man das halbe System ändern.

Einfach eine Datei in der Resource die die Endung der .txt.txt Dateien angebiet und dazu die Zahl und der Name der Sprache. Fertig
11/02/2014 13:45 .SnoX#4
Quote:
Originally Posted by Jomex View Post
That ch prefix in DWORD variable xDD
Haha yea, i was tired this morning and didnt want to change that.
The code is a bit older..

Quote:
Originally Posted by Drabur View Post
Ich finde das man das schöner lösen kann.
Immer wenn man eine neue Sprache adden will muss man das halbe System ändern.

Einfach eine Datei in der Resource die die Endung der .txt.txt Dateien angebiet und dazu die Zahl und der Name der Sprache. Fertig
Ja das hätte man natürlich machen, ist natürlich auch besser gewesen, nur ich hatte das noch bei mir rumliegen, erfüllt sein Zweck und werde da auch nichts mehr dran machen.

Aber für den Anfang reicht das auch vollkommen aus.
11/02/2014 14:37 WurstbrotQT#5
Nicht wirklich komplett, was is z.b. mit der worlddialog und vom server gesendete texte allgemein?

Quote:
Originally Posted by Jomex View Post
That ch prefix in DWORD variable xDD
So what? Isn't it just up to the engineer how to name the variables? But i think that's just a flyff thing with standardized prefixes, copied from microsoft.
11/02/2014 15:05 .SnoX#6
Quote:
Originally Posted by WurstbrotQT View Post
Nicht wirklich komplett, was is z.b. mit der worlddialog und vom server gesendete texte allgemein?
Wüsste jetzt nicht was du mit "vom server gesendetet texte allgemein" meinst, pUser->AddDefinedText() und die anderen Sachen werden alle vom Client gelesen außer wie du schon sagtest den Worlddialog, den müsste man noch machen.
11/02/2014 15:56 alfredico#7
Quote:
Originally Posted by WurstbrotQT View Post
Nicht wirklich komplett, was is z.b. mit der worlddialog und vom server gesendete texte allgemein?



So what? Isn't it just up to the engineer how to name the variables? But i think that's just a flyff thing with standardized prefixes, copied from microsoft.
Actually is hungarian notation, used to identify fast variable types. But I agree, variable names are up to the programmer.
11/02/2014 20:38 TrøublêMakêr#8
Quote:
Originally Posted by .SnoX View Post
Wüsste jetzt nicht was du mit "vom server gesendetet texte allgemein" meinst, pUser->AddDefinedText() und die anderen Sachen werden alle vom Client gelesen außer wie du schon sagtest den Worlddialog, den müsste man noch machen.
Er meint shouts von Worldserver. Das z.b rainbow startet, das wird vom WS geschickt. Erst wird der default Sprache übernommen.
11/03/2014 03:03 - DK#9
Mach es am besten dann in English :) So versteht es jeder und man muss nur einen Shout setzten.
11/09/2014 13:49 BinayFlyff#10
Code:
if( g_Option.m_chMultiLang == TRUE )
szFile += "_ger";
#endif
szFile += ".txt.txt";
#endif //__MULTILANG


case 0:
g_Option.m_chMultiLang = 0;
break;
case 1:
g_Option.m_chMultiLang = 1;
Wenn ich die erste language auswähle müsste er doch IMMER ein den else bereich callen (den es nicht gibt) und das würde aus dem String "character.txt.txt" machen?

Was ist wenn ich nun character_eng.txt.txt und character_ger.txt.txt nutzte?
11/14/2014 19:34 Wanetrain#11
Quote:
#ifdef __MULTILANG
case WIDC_COMBOBOX1:
{
CWndComboBox* pWndMultiBox = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 );
switch( pWndMultiBox->GetCurSel() )
{
case 0:
g_Option.m_chMultiLang = 0;
break;
case 1:
g_Option.m_chMultiLang = 1;
break;
default:
g_Option.m_chMultiLang = 0;
break;
}
g_WndMng.OpenMessageBox( prj.GetText(TID_GAME_GAME_RESETTING), MB_OK, this );
}
break;
#endif
LaLaLaLaLa

Quote:
g_Option.m_chMultiLang = ( CWndComboBox* )GetDlgItem( WIDC_COMBOBOX1 )->GetCurSel();
Eins von vielen was man ändern könnte ohne unnötig Performance zu verhauen.

Grundsätzlich gesehen ist das Völlig unnötig so "Multi Lang" gedönse da, wenn sowieso alles verstreut ist wie ein Bunter Haufen.

WorldDialog Server Side zu machen ist auch unnütz da nicht alle Spieler exact zur gleichen zeit den selben Text bekommen, man sollte generel ALLE Texte Client Side zusammen Fassen und dann das den Client machen lassen.

Ist zuviel Arbeit, darum macht es kein Schwein. :p
11/15/2014 13:24 WurstbrotQT#12
Quote:
Originally Posted by Wanetrain View Post
LaLaLaLaLa



Eins von vielen was man ändern könnte ohne unnötig Performance zu verhauen.

Grundsätzlich gesehen ist das Völlig unnötig so "Multi Lang" gedönse da, wenn sowieso alles verstreut ist wie ein Bunter Haufen.

WorldDialog Server Side zu machen ist auch unnütz da nicht alle Spieler exact zur gleichen zeit den selben Text bekommen, man sollte generel ALLE Texte Client Side zusammen Fassen und dann das den Client machen lassen.

Ist zuviel Arbeit, darum macht es kein Schwein. :p
Genau, Performance, ein switch der wahrscheinlich in eine lookup table kompiliert wird und damit nur einen prozessorzyklus langsamer ist als die direkte zuweisung ist außerhalb der mikroprozessor Technologie ein Performance drop gigantischer Ausmaße.
Wahrscheinlich wirds sogar vom compiler in deine Version optimiert. Du kannst dich maximal über den "Stil" aufregen aber nicht über Performance.
Und du nennst das kopieren der Datei in den clienten und die zeile anstelle des Textes senden Arbeit?
11/15/2014 15:23 Wanetrain#13
Quote:
Originally Posted by WurstbrotQT View Post
Genau, Performance, ein switch der wahrscheinlich in eine lookup table kompiliert wird und damit nur einen prozessorzyklus langsamer ist als die direkte zuweisung ist außerhalb der mikroprozessor Technologie ein Performance drop gigantischer Ausmaße.
Wahrscheinlich wirds sogar vom compiler in deine Version optimiert. Du kannst dich maximal über den "Stil" aufregen aber nicht über Performance.
Und du nennst das kopieren der Datei in den clienten und die zeile anstelle des Textes senden Arbeit?
HeHe für die meisten hier ist es Arbeit, die sie sich Sparen wollen. oô

Es ist Performance lastig, der Compiler optimiert nicht alles sehr gut, schau dir die Switch Case in ASM mal an, du wirst sehen das sie exact so drin steht wie er sie macht, da wird nix großartig Optimiert, zzgl. ist die Optimierung bei FlyFF lowbird kacke weil kaum einer sie nutzt. (Einstellungen & co)

Will dich ja nicht als Wannabe darstellen, kenne dich ja nicht, glaub dir schon das du einiges an wissen hast aber dennoch kann man nicht alles über den Crap erfahren.

Bestes beispiel im übrigen schau dir einfach mal OnSnapshot mit IDA an, du kriegst das blanke Kotzen. :DD
11/15/2014 15:48 WurstbrotQT#14
Quote:
Originally Posted by Wanetrain View Post
HeHe für die meisten hier ist es Arbeit, die sie sich Sparen wollen. oô

Es ist Performance lastig, der Compiler optimiert nicht alles sehr gut, schau dir die Switch Case in ASM mal an, du wirst sehen das sie exact so drin steht wie er sie macht, da wird nix großartig Optimiert, zzgl. ist die Optimierung bei FlyFF lowbird kacke weil kaum einer sie nutzt. (Einstellungen & co)

Will dich ja nicht als Wannabe darstellen, kenne dich ja nicht, glaub dir schon das du einiges an wissen hast aber dennoch kann man nicht alles über den Crap erfahren.

Bestes beispiel im übrigen schau dir einfach mal OnSnapshot mit IDA an, du kriegst das blanke Kotzen. :DD
Naja, so viel ists nicht.

In diesem Fall ist da nix performance lastig, wie gesagt, ein zyklus mehr, da wird der stack einfach erhoeht.

Das OnSnapshot ist ein raetsel, eine look up map wie im normalen Request Handler waere um einiges schneller.
11/17/2014 14:39 Pumaaa#15
Quote:
Originally Posted by WurstbrotQT View Post
Genau, Performance, ein switch der wahrscheinlich in eine lookup table kompiliert wird und damit nur einen prozessorzyklus langsamer ist als die direkte zuweisung ist außerhalb der mikroprozessor Technologie ein Performance drop gigantischer Ausmaße.
Wahrscheinlich wirds sogar vom compiler in deine Version optimiert. Du kannst dich maximal über den "Stil" aufregen aber nicht über Performance.
Und du nennst das kopieren der Datei in den clienten und die zeile anstelle des Textes senden Arbeit?
Was programmierst du sonst so? Java?

Sowas zu sagen ist ein Witz.

Ein Switch Statement dass die Werte so setzt wie sie kommen ist einfach nur unnötig.

Und natürlich ist es im Vergleich zu der anderen Version Performancelastig.

Es fällt nur nicht auf weil das Ding nicht bei jedem Frame durchrennt.

Nur weil die Compiler besser werden heißt es nicht dass Programmierer dümmer werden dürfen.

Sowas kommt dann dabei raus:

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

Und dann ohne default, damit auch SQLInjections direkt möglich sind :)