|
You last visited: Today at 02:50
Advertisement
[Source] Multilanguage
Discussion on [Source] Multilanguage within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.
11/18/2014, 17:16
|
#16
|
elite*gold: 0
Join Date: Jun 2013
Posts: 166
Received Thanks: 259
|
Quote:
Originally Posted by Pumaaa
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:
Und dann ohne default, damit auch SQLInjections direkt möglich sind 
|
Ich habe nie behauptet dass das good practice ist, nur dass es in dem Fall, wie du auch selbst schon erörtert hast, nicht performancelastig ist.
Und ja, auf der Arbeit muss ich auch in java programmieren, aber das eher selten, sonst eher C# oder C++
Ich habe mich nicht wirklich mit dieser ganzen mikrooptimisierung auseinandergesetzt aber soweit ich weiß ist es in dem spezifischen fall nur 1-2 prozessorzyklen langsamer weil der stack einfach um den geswitchten wert erhöht wird, aber was weiß ich schon.
|
|
|
11/18/2014, 18:50
|
#17
|
elite*gold: 0
Join Date: Sep 2008
Posts: 569
Received Thanks: 695
|
Ich sage ja nicht dass du oder irgendwer sonst hier ein schlechter Programmierer ist,
mir geht es allein um die Attitüde.
Wenn mir eine Baufirma sagt dass das Haus dass sie für mich bauten nur 1~2 Erdbebenstärken weniger aushält als es sollte, dass aber in dem speziellen Fall keine Rolle spielt, da in der Praxis ein Erdbeben dieser Stärke nicht geben wird -
Dann zweifle ich trotzdem daran den richtigen Weg gegangen zu sein.
Die Aussage "Es ist nicht optimal, aber das spielt keine Rolle" finde ich ziemlich gefährlich, da sich soetwas stark auf den späteren CodingStyle auswirken kann.
Gerade weil der Code nicht von einem Super1337 Pro geschrieben wurde finde ich WaneTrain's Anmerkung passend, denn Sie hilft dem Threadersteller seinen Code evtl. in Zukunft zu verbessern.
|
|
|
11/20/2014, 00:44
|
#18
|
elite*gold: 0
Join Date: Nov 2014
Posts: 29
Received Thanks: 23
|
Eine Switch abfrage ist doch auf Compilier ebene genau das gleiche wie eine IF-Abfrage?
switch(x)
case y: a=0
case z: a=1
default: a=0
cmp x,y
mov a,0
cmp x,z
mov a,1
mov a,0
So müsste der das doch umsetzen?! (ka davon)
Bei WaneTrain seinem code wäre es einfach ein:
mov a,x
Also hätten wir 2 bis maximal 5 mal soviele Rechenschritte. OK Für den Prozessor sind das evtl. makrosekunden. Aber mach das im ganzen source an 10.000 stellen und wiederhole diese 10.000 Stellen 100.000x (vllt tackert ne while endlos durch?!).
Dann hast du 2.000.000.000 bis maximal 5.000.000.000 unnötige Rechenschritte.
|
|
|
11/20/2014, 14:05
|
#19
|
elite*gold: 0
Join Date: Jun 2013
Posts: 166
Received Thanks: 259
|
Quote:
Originally Posted by BinayFlyff
Eine Switch abfrage ist doch auf Compilier ebene genau das gleiche wie eine IF-Abfrage?
switch(x)
case y: a=0
case z: a=1
default: a=0
cmp x,y
mov a,0
cmp x,z
mov a,1
mov a,0
So müsste der das doch umsetzen?! (ka davon)
Bei WaneTrain seinem code wäre es einfach ein:
mov a,x
Also hätten wir 2 bis maximal 5 mal soviele Rechenschritte. OK Für den Prozessor sind das evtl. makrosekunden. Aber mach das im ganzen source an 10.000 stellen und wiederhole diese 10.000 Stellen 100.000x (vllt tackert ne while endlos durch?!).
Dann hast du 2.000.000.000 bis maximal 5.000.000.000 unnötige Rechenschritte.
|
Das kommt auf den switch an. Da die Werte hier jeweils pro case inkrementiert werden kann der Compiler das besser umsetzen (stackpointer erhöhen) als wenn es sich nur um random werte wie 1 3 9 100 etc handeln würde.
Siehe hier http://en.m.wikipedia.org/wiki/Branch_table
|
|
|
11/20/2014, 14:59
|
#20
|
elite*gold: 30
Join Date: Sep 2012
Posts: 426
Received Thanks: 1,021
|
Wir wissen alle, das die Switch-Anweisung unnötig ist.
Aber was macht ihr hier eigentlich für einen Aufstand?
Quote:
Originally Posted by Pumaaa
Gerade weil der Code nicht von einem Super1337 Pro geschrieben wurde finde ich WaneTrain's Anmerkung passend, denn Sie hilft dem Threadersteller seinen Code evtl. in Zukunft zu verbessern.
|
Du tust gerade so, als ob durch eine Switch-Anweisung die FPS im Client droppen würden.
Man sollte die Methode von WaneTrain nur dann verwenden, wenn man sich sicher ist das der Pointer wirklich vorhanden ist. Ansonsten bringt dir auch deine beste Performance-Programmierung nichts, weil der Client sonst abkackt.
@WaneTrain
Man sollte auch die Klammern richtig setzen, du castest (eindeutscht ischör) schließlich nicht den Int der durch GetCurSel() zurück gegeben wird, sondern einen Pointer der Klasse CWndBase(?) der durch GetDlgItem zurückgegeben wird, zu CWndComboBox.
PHP Code:
g_Option.m_chMultiLang = ((CWndComboBox*)GetDlgItem(WIDC_COMBOBOX1))->GetCurSel();
.. niemand programmiert perfekt.
|
|
|
11/20/2014, 23:45
|
#21
|
elite*gold: 0
Join Date: Apr 2013
Posts: 511
Received Thanks: 431
|
Quote:
Originally Posted by Мentus
Wir wissen alle, das die Switch-Anweisung unnötig ist.
Aber was macht ihr hier eigentlich für einen Aufstand?
Du tust gerade so, als ob durch eine Switch-Anweisung die FPS im Client droppen würden.
Man sollte die Methode von WaneTrain nur dann verwenden, wenn man sich sicher ist das der Pointer wirklich vorhanden ist. Ansonsten bringt dir auch deine beste Performance-Programmierung nichts, weil der Client sonst abkackt.
@WaneTrain
Man sollte auch die Klammern richtig setzen, du castest (eindeutscht ischör) schließlich nicht den Int der durch GetCurSel() zurück gegeben wird, sondern einen Pointer der Klasse CWndBase(?) der durch GetDlgItem zurückgegeben wird, zu CWndComboBox.
PHP Code:
g_Option.m_chMultiLang = ((CWndComboBox*)GetDlgItem(WIDC_COMBOBOX1))->GetCurSel();
.. niemand programmiert perfekt.
|
Tut mir leid, mein Fehler.
Du kannst aber grundlegen drauf Scheißen ob der Pointer Vorhanden ist, da der Client sowieso derber Dreck ist und Abkackt sobald GetDlgItem fehl schlägt.
Wenn man darauf gehen will das jeder Pointer immer Valid ist kann man gleich das Programmieren sein lassen, da dies nicht immer der Fall sein wird.
Quote:
___:0040E275 mov eax, [ebp+arg_0] ; //=> DPID
___:0040E278 push eax
___:0040E279 mov ecx, [ebp+var_4] //=> AR
___:0040E27C push ecx
___:0040E27D mov ecx, [ebp+var_18] //=> THIS
___:0040E280 call sub_421D50
___:0040E285 jmp loc_40FB03 ; jumptable 0040DEA3
|
Das ist EIN (!) Case in der OnSnapshot Funktion, nun rechnest du nur noch 2 Pushes evtl. weg, dann ja..
Quote:
mov ecx, [ FFFFFF ]; //=> Pointer zu Option Class
mov edx, [ ecx + FF ]; //=> Offset zu Multi Lang
|
Das sind 2 Haupt sachen die schonmal bei JEDER Case anwensend sind, dann kommt davor EIN jmp, in jeder case, da er es aber in einer Switch Case bereits drin dürft ihr gleich mal das Doppelte rechnen.
Heißt eine ganze case entspricht:
Quote:
mov ecx, [ FFFFFF ];
mov edx, [ ecx + FF ], 1; ( oder 0, jeh nachdem what.. )
jmp FFFFFF;
|
Der jmp ist das "break" was dich zu dem Open Message Box bringt, anschließen kommt wegen der 1. Switch noch ein jmp zum ganzen ende, aus der Switch Case.
Prinzip hier nicht viel, dennoch recht lustig.
Ach und Mentus, die ober OnSnapshot funktion kommt im übrigen aus der Forsaken Neuz, dürftest auch mal was machen ( ischör)
Mfg. :3
|
|
|
11/21/2014, 12:38
|
#22
|
elite*gold: 30
Join Date: Sep 2012
Posts: 426
Received Thanks: 1,021
|
Quote:
Originally Posted by Wanetrain
Tut mir leid, mein Fehler.
Du kannst aber grundlegen drauf Scheißen ob der Pointer Vorhanden ist, da der Client sowieso derber Dreck ist und Abkackt sobald GetDlgItem fehl schlägt.
Wenn man darauf gehen will das jeder Pointer immer Valid ist kann man gleich das Programmieren sein lassen, da dies nicht immer der Fall sein wird.
Ach und Mentus, die ober OnSnapshot funktion kommt im übrigen aus der Forsaken Neuz, dürftest auch mal was machen ( ischör) 
|
Das mit der Klammer kann jedem passieren.
Man kann definitiv nicht darauf "scheißen" ob ein Pointer vorhanden ist.
Mein Client Ingame Crasht nicht, wenn ich vorher das Control Abfrage. Das sind 2 Zeilen mehr + kein Crash.
Ich sag es mal so; Das Window Control muss vorhanden sein, sonst hat das Fenster nicht die volle Funktion. Deswegen ist es da noch verständlich so zu handeln, aber in anderen Situationen ist so etwas Gift für die Programmierung.
Ein Pointer muss valid sein, deswegen überprüft man sie. Wenn man sie trotzdem verwendet ist ende mit der Anwendung, sei es der WorldServer oder der Client oder auch andere Anwendungen.
Quote:
Originally Posted by Wanetrain
Ach und Mentus, die ober OnSnapshot funktion kommt im übrigen aus der Forsaken Neuz, dürftest auch mal was machen ( ischör) 
|
.. und nun  ?
|
|
|
11/23/2014, 14:09
|
#23
|
elite*gold: 20
Join Date: Jun 2013
Posts: 445
Received Thanks: 76
|
Bei mir kommt beim compilen bei dieser zeile ein undeclared identifier.
if( s.Load(szFile ) == TRUE )
|
|
|
11/24/2014, 14:47
|
#24
|
elite*gold: 0
Join Date: Mar 2008
Posts: 665
Received Thanks: 230
|
I don't understand why I have to login in-game to change the game language, do it properly and add an option in game launcher, it ONLY takes a few minutes...
|
|
|
11/24/2014, 15:25
|
#25
|
elite*gold: 0
Join Date: Sep 2008
Posts: 569
Received Thanks: 695
|
Quote:
Originally Posted by Мentus
Das mit der Klammer kann jedem passieren.
Man kann definitiv nicht darauf "scheißen" ob ein Pointer vorhanden ist.
Mein Client Ingame Crasht nicht, wenn ich vorher das Control Abfrage. Das sind 2 Zeilen mehr + kein Crash.
Ich sag es mal so; Das Window Control muss vorhanden sein, sonst hat das Fenster nicht die volle Funktion. Deswegen ist es da noch verständlich so zu handeln, aber in anderen Situationen ist so etwas Gift für die Programmierung.
Ein Pointer muss valid sein, deswegen überprüft man sie. Wenn man sie trotzdem verwendet ist ende mit der Anwendung, sei es der WorldServer oder der Client oder auch andere Anwendungen.
.. und nun  ?
|
Wobei er schon zu einem gewissen Punkt mit den Pointern recht hat, der Client hält teilweise nur zusammen weil diverse Dinge im Mempooler landen und Pointer auf (eigentlich) gelöschte Objekte noch vorhanden sind
Wenn man den Mempooler entfernt kann man durchaus auf diverse Programmierfehler stoßen, ist vielleicht ganz lustig.
Die Switch case Anweisung im DpClient habe ich mittlerweile auch ersetzt,
was für mich der ProgrammingFail 2k14 ist ist dass die NPC Dialoge ( Die Say/Speaks von den NPCs die in Flaris sichtbar sind ) jedesmal als Chat übertragen werden - und die Texte sind ja nicht gerade kurz.
Nutzloses Networking dass das ganze auch noch extrem unpraktisch für Multilanguage macht.
|
|
|
01/11/2015, 21:45
|
#26
|
elite*gold: 0
Join Date: Jul 2010
Posts: 176
Received Thanks: 13
|
Bekomm immer diesen Error, hab meiner Meinung nach aber alles drin.
Code:
2015/ 1/11 21:39:58 GetDlgItem : nID=928 not Found.
2015/ 1/11 21:39:58 Jan 11 2015 19:53:38 6 rCnt=1
Neuz.exe caused an EXCEPTION_ACCESS_VIOLATION in module Neuz.exe at 0023:0052F9A1, CWndBase::GetClientRect()+0017 byte(s), c:\users\source\_interface\wndbase.cpp, line 1975+0008 byte(s)
resdata.h
#define WIDC_COMBOBOX1 928
#define WIDC_COMBOBOX_MAP_CATEGORY 928
#define WIDC_COMBOBOX_QUEST_LIST 928
#define WIDC_COMBOBOX_SERVER 928
#define WIDC_COMBOBOX_TITLE 928
resdata.inc:
APP_OPTEX_AV12 "" "" 0 496 358 0x410000 26
{
// Title String
IDS_RESDATA_INC_001210
}
{
// Help Key
IDS_RESDATA_INC_001211
}
{
WTYPE_STATIC WIDC_STATIC1 "" 0 8 28 104 46 0x2260000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_001212
}
{
// ToolTip
IDS_RESDATA_INC_001213
}
WTYPE_STATIC WIDC_STATIC2 "" 0 2 4 122 22 0x2260000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_001214
}
{
// ToolTip
IDS_RESDATA_INC_001215
}
WTYPE_STATIC WIDC_STATIC3 "" 0 8 48 108 66 0x2260000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_001216
}
{
// ToolTip
IDS_RESDATA_INC_001217
}
WTYPE_STATIC WIDC_STATIC4 "" 0 8 70 108 88 0x2260000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_001218
}
{
// ToolTip
IDS_RESDATA_INC_001219
}
WTYPE_STATIC WIDC_STATIC5 "" 0 8 92 108 110 0x2260000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_001220
}
{
// ToolTip
IDS_RESDATA_INC_001221
}
WTYPE_BUTTON WIDC_TERRAIN_LOD_HIGH "ButtRadio.tga" 0 108 30 158 46 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001232
}
{
// ToolTip
IDS_RESDATA_INC_001233
}
WTYPE_BUTTON WIDC_TERRAIN_LOD_MID "ButtRadio.tga" 0 170 30 236 46 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001234
}
{
// ToolTip
IDS_RESDATA_INC_001235
}
WTYPE_BUTTON WIDC_TERRAIN_LOD_LOW "ButtRadio.tga" 0 234 30 284 46 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001236
}
{
// ToolTip
IDS_RESDATA_INC_001237
}
WTYPE_BUTTON WIDC_OBJECT_DISTANT_HIGH "ButtRadio.tga" 0 108 52 158 68 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001238
}
{
// ToolTip
IDS_RESDATA_INC_001239
}
WTYPE_BUTTON WIDC_OBJECT_DISTANT_MID "ButtRadio.tga" 0 170 52 236 68 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001240
}
{
// ToolTip
IDS_RESDATA_INC_001241
}
WTYPE_BUTTON WIDC_OBJECT_DISTANT_LOW "ButtRadio.tga" 0 234 52 284 68 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001242
}
{
// ToolTip
IDS_RESDATA_INC_001243
}
WTYPE_BUTTON WIDC_OBJECT_LOD_HIGH "ButtRadio.tga" 0 108 74 158 90 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001244
}
{
// ToolTip
IDS_RESDATA_INC_001245
}
WTYPE_BUTTON WIDC_OBJECT_LOD_MID "ButtRadio.tga" 0 170 74 236 90 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001246
}
{
// ToolTip
IDS_RESDATA_INC_001247
}
WTYPE_BUTTON WIDC_OBJECT_LOD_LOW "ButtRadio.tga" 0 234 74 284 90 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001248
}
{
// ToolTip
IDS_RESDATA_INC_001249
}
WTYPE_BUTTON WIDC_SHADOW_HIGH "ButtRadio.tga" 0 108 96 158 112 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001250
}
{
// ToolTip
IDS_RESDATA_INC_001251
}
WTYPE_BUTTON WIDC_SHADOW_MID "ButtRadio.tga" 0 170 96 236 112 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001252
}
{
// ToolTip
IDS_RESDATA_INC_001253
}
WTYPE_BUTTON WIDC_SHADOW_LOW "ButtRadio.tga" 0 234 96 284 112 0x220014 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001254
}
{
// ToolTip
IDS_RESDATA_INC_001255
}
WTYPE_BUTTON WIDC_RADIO16 "ButtRadio.bmp" -842150451 236 -66 336 -50 0x220014 0 0 0 0 46 112 169
{
// Title String
IDS_RESDATA_INC_001264
}
{
// ToolTip
IDS_RESDATA_INC_001265
}
WTYPE_BUTTON WIDC_CHECK2 "ButtCheck.tga" 0 288 82 478 98 0x220018 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_001272
}
{
// ToolTip
IDS_RESDATA_INC_001273
}
WTYPE_BUTTON WIDC_CHECK6 "ButtCheck.tga" 0 288 108 478 124 0x220018 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_003814
}
{
// ToolTip
IDS_RESDATA_INC_003815
}
WTYPE_BUTTON WIDC_CHECK7 "ButtCheck.tga" 0 288 134 478 150 0x220018 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_003816
}
{
// ToolTip
IDS_RESDATA_INC_003817
}
WTYPE_BUTTON WIDC_CHECK8 "ButtCheck.tga" 0 288 54 478 70 0x220018 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_003818
}
{
// ToolTip
IDS_RESDATA_INC_003819
}
WTYPE_STATIC WIDC_STATIC13 "" 0 8 192 78 208 0x2220000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_003868
}
{
// ToolTip
IDS_RESDATA_INC_003869
}
WTYPE_STATIC WIDC_STATIC14 "" 0 8 220 84 236 0x2220000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_003870
}
{
// ToolTip
IDS_RESDATA_INC_003871
}
WTYPE_STATIC WIDC_STATIC15 "" 0 8 246 82 262 0x2220000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_003872
}
{
// ToolTip
IDS_RESDATA_INC_003873
}
WTYPE_CUSTOM WIDC_CUSTOM1 "" 0 102 192 194 208 0x260000 0 0 0 0 46 112 169
{
// Title String
IDS_RESDATA_INC_003874
}
{
// ToolTip
IDS_RESDATA_INC_003875
}
WTYPE_CUSTOM WIDC_CUSTOM4 "" 0 102 220 194 236 0x260000 0 0 0 0 46 112 169
{
// Title String
IDS_RESDATA_INC_003876
}
{
// ToolTip
IDS_RESDATA_INC_003877
}
WTYPE_CUSTOM WIDC_CUSTOM5 "" 0 102 248 194 264 0x260000 0 0 0 0 46 112 169
{
// Title String
IDS_RESDATA_INC_003878
}
{
// ToolTip
IDS_RESDATA_INC_003879
}
WTYPE_STATIC WIDC_STATIC6 "" 0 8 128 104 144 0x2220000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_005246
}
{
// ToolTip
IDS_RESDATA_INC_005247
}
WTYPE_STATIC WIDC_STATIC7 "" 0 8 154 104 170 0x2220000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_005248
}
{
// ToolTip
IDS_RESDATA_INC_005249
}
WTYPE_CUSTOM WIDC_CUSTOM2 "" 0 104 128 196 144 0x260000 0 0 0 0 46 112 169
{
// Title String
IDS_RESDATA_INC_005250
}
{
// ToolTip
IDS_RESDATA_INC_005251
}
WTYPE_CUSTOM WIDC_CUSTOM3 "" 0 104 154 196 170 0x260000 0 0 0 0 46 112 169
{
// Title String
IDS_RESDATA_INC_005252
}
{
// ToolTip
IDS_RESDATA_INC_005253
}
WTYPE_BUTTON WIDC_CHECK4 "ButtCheck.tga" 0 288 186 478 202 0x220018 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_005416
}
{
// ToolTip
IDS_RESDATA_INC_005417
}
WTYPE_BUTTON WIDC_CHECK1 "ButtCheck.tga" 0 288 28 478 44 0x220018 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_005500
}
{
// ToolTip
IDS_RESDATA_INC_005501
}
WTYPE_BUTTON WIDC_CHECK3 "ButtCheck.tga" 0 288 160 478 176 0x220018 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_005718
}
{
// ToolTip
IDS_RESDATA_INC_005719
}
WTYPE_BUTTON WIDC_VIEWMASK "ButtCheck.tga" 0 288 210 478 226 0x220018 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_005830
}
{
// ToolTip
IDS_RESDATA_INC_005831
}
WTYPE_BUTTON WIDC_CHECK5 "ButtCheck.tga" 0 288 236 478 252 0x220018 0 0 0 0 255 249 198
{
// Title String
IDS_RESDATA_INC_005874
}
{
// ToolTip
IDS_RESDATA_INC_005875
}
WTYPE_STATIC WIDC_STATIC8 "" 0 8 280 104 296 0x2220000 0 0 0 0 246 204 77
{
// Title String
IDS_RESDATA_INC_005874
}
{
// ToolTip
IDS_RESDATA_INC_005875
}
WTYPE_COMBOBOX WIDC_COMBOBOX1 "WndEditTile00.tga" 1 108 278 199 297 0x20000 0 0 0 0 0 0 0
{
// Title String
IDS_RESDATA_INC_005874
}
{
// ToolTip
IDS_RESDATA_INC_005875
}
}
|
|
|
 |
|
Similar Threads
|
i need multilanguage for m2mnext
06/24/2014 - Metin2 Private Server - 0 Replies
hi guys im a old m2m player m2m is closed magicto master is opened but i didnt like it .iwanna play m2m next but itd hungarian i need multi language or english patch or turkish plesa hp mee
sorry for my bad english
a
|
Interesse an Multilanguage
02/06/2014 - Metin2 Private Server - 1 Replies
Hey Leute,
ich wollte mal Fragen, ob ihr ein beliebig erweiterbares Multilanguagesystem wollt.
Hierbei werden alle Clientside Sachen und Quests in der jeweilige eingestellten Sprache dargestellt.
Das könnte man sogar mit Drops machen.
MfG
|
[B]Bf4 Multilanguage dlc Key [S]Paysafecard
11/25/2013 - Trading - 10 Replies
Hallo Leute,
Biete euch hier einen Bf3 Key an.
Preis ist verhandelbar.
Zahlungsmöglichkeit-
Paysafecard l Paypal.
|
PHP Multilanguage (Cookies)?
06/26/2013 - Web Development - 7 Replies
Also ich habe eine Datei de_language.php und en_language.php beide haben die gleichen Arrays mit anderem Inhalt z.b.:
$lang = array(
'home' => 'Willkommen',
);
$lang = array(
|
[WTB]Metin2 MultiLanguage SF
06/12/2013 - Metin2 Private Server - 1 Replies
Greatings,
So I've 100€, And I want to buy serverfiles of Metin2, fully costumized and With English Quests.
PM me with offers.
|
All times are GMT +1. The time now is 02:50.
|
|