[02:27] <@Agelian> TradeController.19=created [02:27] <@Agelian> TradeCon Massages class [02:28] <@Agelian> which is told which X.properties file to use depending on language [02:28] <@Agelian> and it replace for example [02:28] <@Agelian> _log.warning("Do, please, remove buylists from data folder and use SQL buylist instead"); [02:28] <@Agelian> with [02:28] <@Agelian> _log.warning(Messages.getString("TradeController.1")); //$NON-NLS-1$ [02:29] <@Agelian> which u can see in the properties is TradeController.1=Do, please, remove buylists from data folder and use SQL buylist instead [02:29] <@Agelian> it does a nice job but will take time [02:29] <@Agelian> a) to pick which string should be externalized [02:29] <@Agelian> and [02:30] <@Agelian> b) to do the extra step for SystemMessage [02:30] <@Agelian> if u want to see an example for urself [02:30] <@Agelian> click the porject on the left side in eclipse [02:31] <@Agelian> then in menu [02:31] <@Agelian> Source -> Find strings to externalize [02:36] <@Galun> waah, how can I remove an attachment in wiki ... I just wanted to add a graph [02:36] <@Agelian> u want to link to the picture [02:36] <@Agelian> ? [02:37] <@Galun> I wanted it to show below the text [02:37] mmm [02:37] thanks, i'm already trying it [02:37] but [02:37] <@Agelian> look at the main wiki page ;) [02:37] u would have to externalize ALL files [02:38] and then make a translation of every file [02:38] <@Agelian> well if Internationalisation is the goal [02:38] <@Agelian> no [02:38] <@Agelian> one X.properties for each language [02:38] <@Agelian> Message.java [02:38] <@Agelian> will load one properties file depending on the language [02:39] but can u externalize all the proyect files at once? [02:39] so there will be only 1 file with all the strings [02:40] <@Agelian> well the wizard will produce 1 [02:40] <@Agelian> which will be for english [02:40] <@Agelian> then u copy to another properties fiel.. name as a diff language and change all the strings [02:40] <@Agelian> then in Messages.java [02:41] <@Agelian> depenading on what language is set for the server [02:41] <@Agelian> it loads the appropriate properties file [02:41] yes, i undestantd [02:41] but [02:41] in the externalization process [02:41] can u make it all at once [02:41] not one by one [02:41] so the wizard will create [02:41] only 1 file with all the properties.X [02:42] <@Agelian> that what the wizard will do [02:42] and replace all strings with the correct .X [02:42] <@Agelian> as u can see the strings use the classname [02:42] <@Agelian> classname+number [02:42] <@Agelian> so as u go through each class in the wizard [02:42] <@Agelian> is appends to the one properties file [02:43] oh i see [02:43] <@Agelian> i mean it may not be optimal [02:43] <@Agelian> but it could save u a lot of time [02:43] <@Agelian> theres a lot of code [02:43] <@Galun> osmething like i18n is not available in Java? [02:43] this is much easy than what i wanted to do [02:44] i18n? [02:44] <@Galun> available for C and C++ [02:44] <@Galun> the advantage is that you write e.g. _log.warning(i18n("just write the english text.")) [02:45] <@Galun> and if there is a translation it will be done, but it keeps the code much easier to read [02:45] <@Agelian> hmm [02:45] <@Agelian> maybe [02:45] it could be done, but it would make it even more inefficient [02:45] <@Galun> it works like a hashSet for the text to be internationalized [02:46] <@Agelian> i see the advantage [02:46] <@Agelian> if its a diff language it looks up that string for the translated one [02:46] <@Agelian> but i dont know [02:46] <@Agelian> ill have to have a look [02:46] <@Galun> otherwise it will just show the string found [02:47] CPU will burn in hell [02:47] <@Galun> and the translations are "compiled" and provided in language packs [02:47] this is java [02:47] no c++ [02:47] xD [02:48] <@Galun> yes, I know, but I cannot believe nobody ported that to Java [02:48] <@Agelian> it would be related to Locale [02:48] <@Galun> yes [02:49] <@Agelian> http://java.sun.com/docs/books/tutorial/i18n/format/messageintro.html [02:49] mmm [02:49] <@Galun> for C++ it's quite efficient for what I've seen, almost all utilities in Unix work that way [02:49] i don't see the advantage [02:49] what is the different between that an a simple comment with the phrase? [02:50] <@Agelian> look at that link [02:50] <@Agelian> simple [02:50] <@Galun> a comment can be wrong :-) [02:50] <@Agelian> grammer [02:50] <@Agelian> hehe [02:50] <@Agelian> depends how exact u want to be [02:51] maybe we can make an hybrid [02:52] Message class will be called with the string in english as an argument [02:52] if the default language is other [02:52] <@Agelian> let me look into it for a lil bit im sure java has a nice system built in [02:52] then will return the translation IF AVAILIABLE [02:52] if not, will return the english string [02:53] <@Agelian> http://java.sun.com/docs/books/tutorial/i18n/format/messageFormat.html [02:53] <@Agelian> heh that might be a bit overboard though [02:53] <@Galun> that's how I18n is working SarEvoK [02:53] <@Agelian> javas normal mechanism is a bit more advanced than i18n [02:53] <@Agelian> it takes into account grammar structure in diff languages as well [02:54] <@Galun> if the translated text is not available it returns it in the pseudo language Posix which is just the literal in the code [02:55] isn't posix the standard interface for unix systems, what is it related to java? [02:55] standard syscall interface [02:57] <@Galun> in i18n it's just called that way, you could also set LANG=C with the ame effect [02:57] <@Galun> same * [02:57] <@Agelian> ok basically [02:57] then, what's ur final recomendation? [02:57] <@Agelian> i think the best might be to use [02:57] <@Agelian> externalize strings [02:58] <@Agelian> then only problem relaly [02:58] <@Agelian> is that it uses classname.X [02:58] <@Agelian> where X is a number [02:58] and? [02:58] <@Agelian> if X was a string in english it would be more intelligable in the code [02:59] <@Agelian> it covers the basics of whats needed [03:00] <@Galun> the question is what to internationalize ... all literals or just the sysmessage() ? [03:00] the problem is [03:00] <@Galun> so only for client or also logs [03:00] <@Agelian> well thats a good question [03:00] that we want internationalize everything [03:00] <@Agelian> with the current state of the code [03:00] npchtmls [03:00] and so on [03:01] isn't it? [03:01] <@Agelian> theres still a problem with some not using the actual systemmessage number [03:01] <@Agelian> and just using the string [03:01] yes [03:01] <@Agelian> npc htmls [03:02] <@Agelian> well they are individual htm files atm.. [03:02] imagine if u have to compare a full npc html with all the posible strings [03:02] cpu consuming [03:02] i thinks that the number is better [03:02] <@Agelian> remember if we do the number system [03:02] <@Agelian> then new strings [03:03] <@Galun> I think we shpuld restrict it to the things a player can see, I would not care about logs and things only admins can see [03:03] altough we'll loss in readability [03:03] <@Agelian> ppl will have to check what number the class is up too [03:03] <@Agelian> honestly i agree with galun... [03:03] <@Agelian> basically message that the player sees in game [03:03] <@Agelian> npc htmls [03:03] i agrre [03:03] <@Agelian> well they can already be translated [03:04] <@Agelian> just need a new set of htm's [03:04] <@Galun> I know it from C++, esp. KDE, we would have been lost with numerical references, just way too much [03:04] <@Agelian> and logs [03:04] <@Agelian> well its better if logs [03:04] <@Agelian> are in english [03:04] <@Agelian> so dev team can figure out the problem [03:04] <@Galun> yes for support ... [03:05] <@Agelian> so first [03:05] <@Agelian> it would be a good step [03:05] <@Agelian> to identify all parts [03:05] <@Agelian> that would need translating [03:05] npchtmls and messages to players [03:05] only that [03:05] <@Agelian> i mean actually look into the code [03:05] <@Agelian> cause like i said [03:05] <@Agelian> not all messages use the proper SystemMessage number [03:05] <@Agelian> shouldnt be all that hard [03:06] <@Agelian> cause at the end we cant do it fully [03:06] <@Agelian> as the client has some string like dialog boxes hard coded [03:06] <@Agelian> the title [03:06] <@Agelian> etc [03:06] <@Galun> and item names, skill names, ... [03:06] <@Agelian> so basically [03:06] <@Agelian> in the code find everywhere [03:07] <@Agelian> System.Message is used [03:07] <@Agelian> and for the ones using the proper numbers [03:07] <@Agelian> thats easy to translate [03:07] <@Agelian> we'll need to fix the ones using the plain string SystemMessage [03:08] <@Agelian> btw [03:08] <@Agelian> any objections to godson joining dev team? [03:08] <@Galun> jru199@cceupc080:~/tmp/trunk/trunk> grep -R SystemMessage . | wc -l [03:08] <@Galun> 1138 [03:08] <@Galun> oops wuite a lot [03:08] <@Galun> quite * [03:08] <@Agelian> heh [03:08] xD [03:08] <@Agelian> its a big server [03:09] <@Agelian> well the sone that use the number for plain string [03:09] <@Galun> @agelian: no [03:09] <@Agelian> will be the roublesome ones [03:09] <@Agelian> SystemMessage(614) [03:09] <@Agelian> thats the one [03:10] <@Galun> SystemMessage(614) : 298 lines found [03:11] 614 is plain text? [03:11] but what's the difference with others? [03:11] <@Galun> that's the type where you add your own text, the whole message [03:11] <@Galun> the other refer to predefined message text [03:12] oh i c [03:12] but [03:13] if the predefined text can't be changed [03:13] coz its a client matter [03:13] we would have to change everything to 614 [03:13] <@Galun> if we want to change than we have to send a 614 message instead yes [03:14] <@Galun> then * [03:14] lot's of changes [03:14] <@Galun> and different colors at the client afaik [03:15] i like english [03:15] lol [03:15] <@Galun> You picked up 9 Adenas is printed in yellow [03:15] let's leave it as it is [03:15] xD [03:15] <@Galun> but a 614 message is err, grey ? [03:16] brown actually [03:16] it's not a good idea [03:16] internationalizate it [03:16] <@Galun> hmm, who said a brain works with pictures and colors? :-) [03:17] furthermore, as u say skills and so on r hardcoded in the client [03:17] <@Galun> so at best it would be a mix [03:17] yep [03:17] i think it doesn't worth it [03:18] by the way [03:18] how do u want to siege guards act [03:19] archers should remain still? [03:19] <@Galun> good question, I don't know the orig, but running archers would be hard I think [03:19] we would need info about each castle [03:19] <@Galun> too hard to defeat, but only my feelings [03:20] to make them no to jump off from the towers [03:20] and guards not to get stuck in walls [03:20] <@Galun> *sigh* a matter of serverside map again :-( [03:20] yep [03:20] <@Galun> but I#m not very far in this regard [03:21] <@Galun> randomly exploring is way too slow and I failed to extract the data from the client files up to now [03:21] <@Agelian> galun [03:21] <@Agelian> the main problem with servermap [03:21] <@Agelian> is as things progress [03:22] <@Agelian> theres areas added to the map [03:22] <@Agelian> if we can figure a way [03:22] <@Agelian> to get mapdata [03:22] <@Agelian> from the staticmeshes in client [03:22] <@Agelian> would make things a lot easier [03:22] <@Galun> yep we have to find a way to extract data from the client and redo that after major patches [03:22] <@Agelian> it cant be all that different [03:23] what is the format of the terrain mesh? [03:23] <@Agelian> ive just never sat n tried to reverse-engineer it [03:23] the same as unreal? [03:23] <@Agelian> i know its slightly diff to the normal .usx [03:23] <@Agelian> in unrealtournament meshes [03:23] <@Agelian> but either way [03:23] <@Galun> the data is in UT format and there is a program that analyze the files but it fails on meshes [03:23] <@Agelian> it cant be THAT diferent [03:23] <@Agelian> yeh [03:24] <@Agelian> its just in a custom format [03:24] <@Agelian> still cant be that different [03:24] <@Agelian> i guess ill have to give it a go [03:24] <@Agelian> btw [03:24] <@Agelian> have u looked at upping that weight penalty png as a jpg [03:24] then more complex things won't be able to work [03:25] <@Galun> it worked with a png, the parameter was the problem [03:25] <@Agelian> :) [03:25] <@Galun> but I wonder how I can remove the obsolete attachment [03:25] <@Agelian> yeh [03:25] <@Agelian> hehe [03:26] so, in the end [03:26] how are we going to make siege guards [03:26] i thought in let the clan leader set a way path [03:26] and guards will walk throuth it [03:27] with a minnor aggro range [03:27] so when the first enemy is in radius, will persue him [03:27] any ideas? [03:28] man, archers climb off from the walls [03:28] <@Agelian> heh [03:29] <@Agelian> it all comes down to the map in server [03:29] <@Agelian> all we really need from the maps [03:29] <@Galun> I wished I find a way to get mesh data. I tried yesterday but without success [03:29] <@Agelian> is a way to create a pathnode db [03:30] maybe we can manually create a pathnode db for castles [03:30] <@Galun> if you have a lot of time, you can use the position recorder [03:30] what's that? [03:31] <@Agelian> well it shouldnt be all that hard for the castles [03:31] <@Galun> http://www.world-of-mystery.de/download/ [03:31] <@Agelian> for the whole world is a different matter [03:31] <@Agelian> :) [03:31] only for castles [03:32] if we post in the forum that we need it to finally end sieges, for sure someone does the hardwork [03:32] xD [03:32] <@Agelian> well even one person working on each catle would be nice [03:32] <@Agelian> :) [03:32] <@Galun> the universe.java and the randomwalk.diff [03:32] a modified server that register the movements of a player in the castle [03:33] so we can have a pseudo mesh map [03:33] <@Galun> actually single positions with a flag, -1 means it blocked the player [03:33] a boolean f(x,y) [03:34] so we can set up borders [03:34] mmm [03:34] <@Galun> but first we have to find a way to compact the data and work with it efficiently [03:34] but in castle can be several highs [03:34] <@Galun> so to be sure that we can actually work with the dataa [03:34] <@Galun> it uses x,y,z and the flag [03:35] <@Galun> w eare in 3D :-) [03:35] yes, is a waste of efficiency but we ARE in 3D [03:35] xD [03:35] <@Agelian> slightly 4D if theres doors that can be open n closed ;) [03:35] how can we do it [03:36] and 5D if there r several servers running [03:36] <@Agelian> wouldnt be nice to see guards run through doors [03:36] <@Galun> but it's necessary to make NPC not fall of a wall or something [03:37] <@Galun> so at random walk there has to be a check whether there are collisions or big height differences on the way [03:37] <@Agelian> ne1 know a region number with a castle in the maps? [03:37] <@Galun> and on follow of course etc .. all funtions that make NPC walk [03:38] how is official implemented?¿ [03:38] <@Agelian> official has nice big pathnode thingy .. well that was in c1 [03:38] <@Galun> don't know but there has to be something like that [03:38] pathnode is much more efficient than mesh colision detection [03:39] and not to mention the fact we r using java [03:39] <@Galun> on official would an NPC see a char through walls ? and attack ? [03:39] <@Agelian> nope [03:39] <@Agelian> it would be best to 'see' through the pathnodes [03:39] then they hace mesh colision detection [03:39] xD [03:40] have* [03:40] <@Galun> so they have a LOS check as well [03:40] <@Agelian> maybe [03:40] <@Agelian> maybe not [03:41] they have done the client, i think they have the mesh in the server too [03:41] <@Agelian> say for each node u know that a circle of radius x around it is not colliding with anything [03:41] <@Agelian> then find what node ur in [03:41] <@Agelian> and the player [03:41] <@Agelian> and search the node path [03:41] <@Agelian> if they are in radius of the nodepath search then they are visible [03:42] <@Agelian> cause i know they can follow players pretty well now [03:42] <@Agelian> through maze [03:42] <@Agelian> etc [03:42] <@Agelian> instead of getting stuck [03:42] nodes with colision radius [03:43] i c [03:43] <@Agelian> c1 server has [03:43] <@Agelian> pathnode.bin 212Mb [03:43] <@Galun> maybe we could extract that frm the 3d points, but anyway they have to be nearly 100% complete to do it right [03:43] <@Agelian> pathnode.idx 23Mb [03:44] <@Galun> how much changed till then ? [03:44] <@Agelian> c3 changed a bit [03:44] <@Agelian> with all the dungeons [03:44] <@Agelian> and the land mass south of giran [03:45] <@Galun> is there a pathnode.bin in C3? I never looked [03:45] <@Agelian> no [03:45] <@Agelian> this is for leaked c1 server [03:45] <@Galun> ah, yes of course ... forget my question :-/ [03:46] <@Agelian> heh [03:47] <@Agelian> l2j does pretty wel atm for whats missing [03:47] <@Galun> maybe we could automate that with a turtle function instead of just random [03:47] *** godson (Hoe@host86-129-144-166.range86-129.btcentralplus.com) joined [03:48] <@Agelian> Message from nikok, on 01-07-2005 at 09:39 [03:48] <@Agelian> Question PLZ help [03:48] <@Agelian> Where can I find mySQl?????i need a site! [03:48] <@Agelian> n00bs!! [03:49] lol [03:49] 13 year old idiot [03:49] where was that? [03:49] sure [03:49] <@Agelian> it was a pm [03:49] <@Agelian> i get lots of stupid pms [03:49] heh [03:49] btw, hi guys [03:49] hi [03:49] <@Galun> hi [03:49] <@Agelian> every1 godson, godson every1 [03:50] ;) [03:50] <@Agelian> btw [03:50] <@Galun> every1 greets godson [03:50] <@Agelian> godson, u had ne experinece with UT static meshes by any chance [03:50] <@Agelian> :) [03:50] lol [03:52] UT static? [03:52] i have experience using meshes in dealing with creating 2d games [03:52] but UT static? [03:52] 3d unreal tournament meshes [03:52] <@Agelian> hehe we trying to see if we can figure out how to decode the maps [03:52] <@Agelian> in the client [03:52] oh [03:53] <@Galun> to get at least a height map and the obstacles [03:53] uhmm... [03:53] <@Agelian> well heightmap u can get from textures [03:54] <@Agelian> but doesnt help with dungeons [03:54] <@Agelian> :) [03:54] ehhe yah [03:55] <@Agelian> btw Galun u could store universe.txt in binary [03:55] <@Agelian> :) [03:55] well i have to see the meshes on 3Dmax [03:56] thats if i can open it in that [03:56] u cant [03:56] <@Galun> yep, I could, but I was alone on the server ... below 10% system load .. [03:56] they r encrypted [03:56] uhmm thought so [03:56] uhmm [03:56] <@Agelian> l2encdec [03:56] need them decoded [03:56] <@Agelian> http://dstuff.luftbrandzlung.org/l2asylum/ [03:57] k thnx [03:57] <@Galun> there is a program to decode UT files and it classifies it as UNR encrypted, but it seems different to l2.ini and other files [03:57] wait a sec [03:57] l2 uses UT graphics engine right? [03:57] if i am right [03:58] <@Agelian> yah [03:58] <@Galun> afaik yes [03:58] nscoft has got license to the UT engine [03:58] ah ok [03:58] <@Galun> the program says it's version 123 if that helps [03:59] UT v 2.0 [03:59] engine [03:59] i can give it to u if u want [03:59] so u can program your own lineage2 [03:59] xD [04:00] <@Galun> the problem I see .. I found lots of tools to create UNR but not to extract data to another format [04:01] hehe SarEvoK [04:01] ok not used to decoding [04:01] but i give this a shot [04:02] Agelian, meshes are complex and inefficient, we should start with path nodes. We make a server with special command to make pathnodes and let ppl to contribute. every node is assigned a LOS that is calculated by colisions of the player within a radius [04:02] and make nodes with a distance of 10 feet or so on [04:02] for special places [04:02] like castles dungeons and so on [04:03] we don't need the entire worl path node db [04:03] i think's is the better option [04:04] <@Agelian> http://www.acordero.org/download/utpt20beta5.zip [04:04] <@Agelian> is the package tool [04:04] <@Agelian> to see what in a file [04:05] <@Galun> yes, I think that's it, it fails on meshes. it looks like it's running in endless loops while reading it [04:12] <@Galun> I updated randomwalk.diff and the Universe.java [04:22] <@Galun> some years ago I tried to write a client/server 3D game and I used more or less the same functions in the server as in the client. performance was quite good [04:22] <@Galun> maybe we can use java3d in the server, it should be optimized for such calculations [04:29] <@Agelian> true [04:30] <@Agelian> i need slepp i think im going to go to bed [04:30] <@Agelian> damn exams [04:30] <@Agelian> nite [04:30] <@Agelian> :) [04:31] <@Galun> nite [04:32] nite man [04:33] <@Galun> but then we need the data in a format supported by java3d *wigh* I#m going in circles [04:35] what data? [04:36] <@Galun> the map [04:36] <@Galun> and the static meshes [04:36] oh [04:36] <@Galun> let's do our own server and client ... might be easier in the end ;-) [04:36] thats true [04:36] oh [04:37] thats true <-- answer to your data format query :P [04:37] am not that used to java3d [04:37] <@Galun> sure ... I was kidding, it's quite a lot of work, i tried it once, but I was alone [04:37] hehe [04:38] <@Galun> that time I used plib and C++ : http://shell.franken.de/~duffy1/index-en.html [04:39] am not that used to java3d, but in other to for meshes to be comartible, you need to create your own de-coder for the program to recognise [04:39] me and my uni mates created on in other for meshes to be used in creating our c++ 2d/3d games [04:40] <@Galun> that will be difficult as well ... the question is do we try to get the data by exploring or from client data .. [04:40] created one* [04:41] uhm [04:41] exploring will take a long time [04:42] <@Galun> I think from client data should be better, especially when there will be changes again in the future [04:42] true say [04:43] my head is spinning atm [04:43] too much thinking hehe [04:43] <@Galun> same for me, I'm not sure where to start [04:53] currently doing some testing on the m.dmg formula which was added to the latest svn [05:15] oh was the /invis admincommandhandler removed? [05:15] or there isnt any admin command like that? [05:15] //invis* [05:28] <@Galun> not sure. It was in C2, but I haven't checked in C3. anyway it was quite limited [05:32] ah k [05:40] <@Galun> talking made you visible again and sometimes even walking [06:06] <@Galun> unbelievable, I found another program to decode .unr, but I cannot find any hints on maps and static meshes only player meshes *sigh* [06:13] *** Drakin-Korin (~veenstra1@h170112.upc-h.chello.nl) joined [06:14] ello [06:40] <@Galun> hi Drakin [06:40] <@Galun> Microsoft Developer Studio Workspace File <- this belongs to MS C++ ? [07:04] i dunno [07:05] <@Galun> i found another extract tool, but I need MS C++ for that [07:08] i barely can look at java without scratching my head [07:09] so leave me alone with c++ :/ [07:10] <@Galun> anyone here has MS Visual Studio? [07:34] yah i do [07:34] <@Galun> Microsoft Developer Studio Workspace File [07:34] should open in it [07:35] «Drakin-Korin» haha nice comment [08:00] <@Galun> could you compile http://www.utworld.de/downloads_ut/dl_inc_99.php?dl=utilities/UTX-Viewer-v22.zip and see if it can extract mesh data? [08:24] oh [08:24] k [08:45] *** SarEvoK- quit (Read error: 104 (Connection reset by peer)) [08:47] uhmm [08:47] went to source directory [08:48] but no c++ source files there [08:51] <@Galun> but there is a .dsw isn't it ? [08:52] <@Galun> and several .lib .. looks to me like it's not everything in source [09:02] ya [09:02] whole source files isnt there [09:07] <@Galun> BSP geometry is what is interesting and the static meshes [13:02] Drakin-Korin is an identified user [13:57] *** Sodrym (~none@modemcable152.207-202-24.mc.videotron.ca) joined [14:04] <@Galun> any objections to add the position records to trunk agelian ? [14:04] <@Galun> recorder * [14:05] <@Agelian> is it off by default? [14:06] <@Agelian> if not the file generated better not get too big... otherwise we'll have lots of nubs complaining [14:06] <@Galun> it will, I'm going to extend it tomorrow and then there will be an option to turn it on [14:06] <@Galun> sure it must be optional [14:07] <@Agelian> np then really [14:07] told ya [14:28] *** Sodrym quit ( ) [14:36] *** Drakin-Korin quit ( ) [15:59] *** sh1ny (xtreme@83.148.109.84) joined