Jump to content

blackknight8653

Members
  • Posts

    6
  • Joined

  • Last visited

Reputation Activity

  1. Like
    blackknight8653 got a reaction from Night Hunter in Hello Everybody   
    HAha why did you decide to change your name?
  2. Like
    blackknight8653 reacted to Night Hunter in Hello Everybody   
    Yes im him xD
  3. Like
    blackknight8653 reacted to hellreturn in Hello Everybody   
    Hola. Welcome to the forums
  4. Like
    blackknight8653 got a reaction from Night Hunter in Hello Everybody   
    Welcome to the forums. Is that you Panth3r? I just realised you changed your name on both F|A forums as well as here.
  5. Like
    blackknight8653 reacted to Night Hunter in Hello Everybody   
    Hello i joined just today to this nice forum i see familiar names over here well
     
    v54
     
    Hi
  6. Like
    blackknight8653 reacted to Purple in Question on XPSave on silent   
    here is a open sourced one for php, be sure to read the readme so you can get a full understanding of how things work.
     
    https://github.com/BulldogDrummond/etkey
     
    Credits: bulldogDrummond
  7. Like
    blackknight8653 reacted to Purple in Question on XPSave on silent   
    I used to have a php script for it (ask schnoog? (dont remember his name)) that was given to me. anyways if you look inside the etlegacy source you can see how its done.
     
    Go here https://github.com/etlegacy/etlegacy/blob/master/src/client/cl_main.c
     
    and you'll see this 
    /** * @brief Update cl_guid using #ETKEY_FILE */ static void CL_UpdateGUID(void) { fileHandle_t f; int len; len = FS_SV_FOpenFileRead(BASEGAME "/" ETKEY_FILE, &f); FS_FCloseFile(f); if (len < ETKEY_SIZE) { Com_Printf(S_COLOR_RED "ERROR: Could not set etkey (size mismatch).\n"); Cvar_Set("cl_guid", ""); } else { char *guid = Com_MD5FileETCompat(ETKEY_FILE); if (guid) { Cvar_Set("cl_guid", guid); } } } Here you can see how they check for a guid in the dir and if its not there generate one.
     
    also information in the header where the size and name is defined
     https://github.com/etlegacy/etlegacy/blob/master/src/client/client.h
    #define ETKEY_FILE "etkey" #define ETKEY_SIZE 28 but where most of the real magic happens for the acutal generating part is in md5.c
    https://github.com/etlegacy/etlegacy/blob/159c4169fdcd6a2f80317a796514eb7d43c1b3c5/src/qcommon/md5.c
     
    and if i'm correct this is the main peice where the actual generating happens ofc there is more to it then just this but you should get the point.
    char *Com_MD5FileETCompat(const char *filename) { char key[19] = { 0 }; char *buffer; int len; len = FS_ReadFile(filename, ( void ** ) &buffer); if (buffer) { if (len >= 28) { int i; for (i = 0; i < 18; i++) { key[i] = buffer[i + 10]; } FS_FreeFile(buffer); return CalculateGUID(key); } } return NULL; } and if you don't understand the language just backtrack it afaik next stop > CalcluateGUID() and so on
     
    I know this isn't the exact answer you wanted (sorry) but it should give you a understanding of something
  8. Like
    blackknight8653 reacted to gaoesa in Question on XPSave on silent   
    The silent GUID is used for identification if there exists one. If there doesn't exist one, it is generated and stored to silent.dat. When the player gets a new silent GUID it is not yet recognized by the server. Then the server uses the PB GUID(etkey) if, there exists one, to search it's database for a match. If a match is found, the database record is linked with the new silent GUID. If there already was a silent GUID for that record, the change of silent GUID is written to the server log. This was made so that the transition from PB GUIDs would work the easiest way. It doesn't work the same if your PB GUID changes. The server database is made to keep both PB and silent GUIDs as individually unique. But players are identified by their silent GUIDs if there exists a record for it and the PB GUID is ignored in such case.
     
    I don't remember the algorithm for generating the real etkeys, but it might have something related to time. So for that reason it is good to get the keys from etkey.org so that they don't clash. Silent keys are made of hashed UUIDs provided by the platform, which are supposed to be unique. These are hashed also before sending to the server so that they don't match the stored value in silent.dat.
     
    For more information of the PB GUIDs, you might find some from the Luigi Auriemmas website. I don't really know where to find the real algorithm if it's not there anywhere. It might be somewhere embedded in some thread about the matter for example at splashdamage or splatterladder.
  9. Like
    blackknight8653 reacted to Purple in Question on XPSave on silent   
    Did you also have an etkey? even though PB doesn't support ET anymore most mods are still compatible with ETkeys, as the post by hellreturn is just stating silent mod has its own method of generating "etkeys" and yes the data is stored in silent.dat (hence when you reinstall et backup silent.dat for your admin/xp). 
×
×
  • Create New...