Jump to content

Vianna

Members
  • Posts

    47
  • Joined

  • Last visited

Everything posted by Vianna

  1. It should at least invert the user interface and text altogether with the map and the sprites. That would be cool.
  2. You're running a fully renewal server. In renewal, skills have a fixed time slice that, as it's name suggest, can't be reducted, and a variable time slice that can be reducted. What you're seeing when you reach 150 DEX is this fixed cast time. You can use the old pre-renewal cast by going to ./src/map/config/renewal.h and editting the following line: #define RENEWAL_CAST Comment that out (put double slashes in front of it) and recompile the map-server.
  3. It means you don't have the 5th palette installed. It would normally give you an error, but you probably diffed your client with the option that ignores missing palettes, and that's why it gives you distorted colors.
  4. Does the server keeps track of the state of the script dialog box? If it does, it's simple to add a command like this. If it doesn't, it should...
  5. You should keep the values returned by search_str("set"), search_str("callfunc") and search_str("getelementofarray") into global variables to avoid searching for them at every occurrence of assignment statements and user-defined function calls.
  6. The thing that bothers me most is the lack of Facebook/Twitter Login on the forums. It's simple to add this functionality and it's one password less for me to have to remember.
  7. The client (as for 2006) already calculates the average ping. It sends PACKET_CZ_REQUEST_TIME and stores the current client time. By the time PACKET_ZC_NOTIFY_TIME is received, the current client time is subtracted from the previously stored client time, calculating the time it takes to send and receive a packet (ping time + pong time). It also sends a different packet to the char-server (PACKET_PING). Character Server Packet Information (PACKET_PING) struct PACKET_PING { /* this+0x0 */ short PacketType; /* this+0x2 */ unsigned long AID; } HEADER_PING = 0x187, Zone Server Packet Information (PACKET_CZ_REQUEST_TIME & PACKET_ZC_NOTIFY_TIME) struct PACKET_CZ_REQUEST_TIME { /* this+0x0 */ short PacketType /* this+0x2 */ unsigned long clientTime } struct PACKET_ZC_NOTIFY_TIME { /* this+0x0 */ short PacketType /* this+0x2 */ unsigned long time } HEADER_CZ_REQUEST_TIME = 0x7e, HEADER_ZC_NOTIFY_TIME = 0x7f, To accomplish what you need, you need a packet sent by the server which is instantly replied by the client without any additional action. This could be done with some dummy packets such as HEADER_ZC_REASSEMBLY_CERTIFY and CZ_REASSEMBLY_IDENTITY. In the decompiled client from 2006, it does nothing (although it appears to be a check on whether the client's Import Address Table is modified or not, an anti-cheat feature) and it's safe to send it. struct PACKET_CZ_REASSEMBLY_IDENTITY::<unnamed-type-ImportAddressTableModify> { /* this(bf)+0x0:0x0 len(0x1) */ unsigned char Winsock /* this(bf)+0x0:0x1 len(0x1) */ unsigned char GDI32 /* this(bf)+0x0:0x2 len(0x1) */ unsigned char Debugging /* this(bf)+0x0:0x3 len(0x1) */ unsigned char ClientCheckSumError /* this(bf)+0x0:0x4 len(0x4) */ unsigned char Unused } struct PACKET_CZ_REASSEMBLY_IDENTITY { /* this+0x0 */ short PacketType /* this+0x2 */ unsigned short PacketLength /* this+0x4 */ struct PACKET_CZ_REASSEMBLY_IDENTITY::<unnamed-type-ImportAddressTableModify> ImportAddressTableModify } struct PACKET_ZC_REASSEMBLY_CERTIFY { /* this+0x0 */ short PacketType /* this+0x2 */ unsigned short PacketLength } HEADER_ZC_REASSEMBLY_CERTIFY = 0x308, HEADER_CZ_REASSEMBLY_IDENTITY = 0x332, So... Store current time → Send ZC_REASSEMBLY_CERTIFY → Receive CZ_REASSEMBLY_IDENTITY → Calculate ping+pong from (current time - stored time)
  8. AEGIS checks if you can carry a Knife (unstackable) and for a high value like 2000 Weight (that's why if you create a Novice and talk to some quests NPCs you're not supposed to talk, you'll constantly receive messages about needing to use the storage). Even though it's a workaround and a bad practice, it's the official behavior... Anyway, getiteminfo and getinventorylist can do what you want (http://pastebin.com/WsdDVNnc, not tested). Usage: callfunc("F_CheckGetItem", 501, 30, 502, 50, 1002, 20); Returns -2 if total new inventory entries + current inventory entries exceeds MAX_INVENTORY, -1 if new stackable amount + current stackable amount exceeds MAX_AMOUNT, 0 if the sum of all the new weigth + current weight exeeds MaxWeight and 1 if there's no problem
  9. There's TortoiseGit but it's not as user-friendly as TortoiseSVN in my opinion (TortoiseGit is only an UI to msysgit and not a full Git client). It's friendly enough to the Dev Team though. If there's no concern about the end-user experience, I can only see benefits on changing the system.
  10. I approve the change. The servers shouldn't be affected. The staff can still mantain a read-only SVN mirror of the Git repository.
  11. Vianna

    LUB to LUA?

    Lubs are compiled luas. You'll have to decompile them using luadec.
  12. You can't really expand this limit. The clients receive 2 bytes data for the item amounts, which is restricted to 65536 values. I need to check whether it uses signed or unsigned values, but based on the current limit, I presume the range for item amounts are from -32768 to 32767. You can raise it up to 65535. If it start showing negative amounts, change it to 32767.
  13. - Wipe. Yeah, that's the main reason. I don't even start to play if the server doesn't have a zipped patch together with the installer one.
  14. GRFs are already encrypted, sir. If they change the encryption, we will do as we already did in the past: reverse engineer it =P
  15. I love it =) So, you're basically doing an OpenSource client, since anyone can see javascripts and decompile the Flash and Java things? What about server-dependent files, such as custom maps and sprites, how they will work? Looking foward to this project. It may not have the best performance yet due to browsers limitations, but I believe it's gonna work =) @edit Can't you disable fonts anti-aliasing? The official behavior is to disable it. This will probably make the game a little faster =)
  16. Seeing from this point, all the bonuses currently implemented have/had some use on official servers. Adding new custom ones would be totally non-standard.
  17. The way I said looked like I was accusing you guys from removing credits. I was just saying you made it all from scratch when you could just use the leaked official one =) I guess I didn't make it explicit, sorry =(
  18. You made it all from scratch? Why didn't you use the AEGIS one? http://trac.cronus-e...iz.txt?rev=3240 This script from Cronus Emulator was obtained from AEGIS and was translated to Portuguese (Brazil) using a dialog extractor (by packet sniffing) we made for bRO and optimized (since AEGIS Scripters are pretty repetitive...), which means there's an AEGIS leak circulating that includes this script. I can see if I still have the original leaked file and if can share with you guys (but since you already have most the dialogs, I don't think it will be necessary.) You can confirm it's an english leak because of the unreacheable conditions that weren't translated. @edit Yup, I have'em. If you want it just PM me and I'll talk to the guy who sent me those files and see if I can share them. @edit Changed some terms to make it clear and avoid misinterpretations.
  19. +1, why not? ^^
×
×
  • Create New...