Защита аккаунта пользователя
#38

PHP код:
#include <a_samp>
#include <r_io>
stock bernstein(string[])
{
    new 
hash = -1;
    
    for(new 
ij; (string[i]); i++)
        
hash hash 33 j;
    return 
hash;
}
enum OFFSETS
{
    
HEADER         0,
    
PASSWORD     3,
    
KILLS        7,
    
DEATHS        9,
    
MONEY        11,
    
HEALTH        15,
    
ARMOUR        16,
    
POSX        17,
    
POSY        21,
    
POSZ        25,
    
POSA        29,
}
stock writeData(filename[])
{
    new 
File:fopen(filenameio_write);
    
    
/* === Хедер файла === */
    
writeByte(f0x75);  // буква u (сокращение от User :D)
    
writeByte(f0x73);  // буква s (сокращение от SAMP :D:D)
    
writeByte(f0x72);  // буква r (сокращение от Romanius :D:D:D)
    /* =================== */
    
    /* === Пароль === */
    
writeInt32(fbernstein("PaSsWoRd"));
    
/* ============== */
    
    /* === Фраги === */
    
writeInt16(f10); // <----- Убийства
    
writeInt16(f3);  // <----- Смерти
    /* ============= */
    
    /* === Деньги === */
    
writeInt32(f123456);
    
/* ============== */
    
    /* === Жизни, броня === */
    
writeByte(f100);
    
writeByte(f50);
    
/* ==================== */
    
    /* === Позиция === */
    
writeInt32(ffloatround(52.32 100.0));     // <----- X
    
writeInt32(ffloatround(-121.12 100.0)); // <----- Y
    
writeInt32(ffloatround(5.78 100.0));     // <----- Z
    
writeInt32(ffloatround(330.62 100.0));     // <----- A
    /* =============== */
    
    
    
fclose(f);
}
public 
OnFilterScriptInit()
{
    
writeData("Romanius.usr");
    
    new 
ts tickcount();
    
    new 
File:fopen("Romanius.usr"io_read);
    new 
header[3];
    
    
header[0] = readByte(u);
    
header[1] = readByte(u);
    
header[2] = readByte(u);
    
    if(
header[0] != 0x75 && header[1] != 0x73 && header[2] != 0x72)
    {
        print(
"Invalid user file!");
    
        
fclose(u);
        
        return;
    }
    
    new 
password     readInt32(u);
    
    new 
kills         readInt16(u);
    new 
deaths         readInt16(u);
    
    new 
money        readInt32(u);
    
    new 
health        readByte(u);
    new 
armour        readByte(u);
    
    new 
Float:X        float(readInt32(u)) / 100.0;
    new 
Float:Y        float(readInt32(u)) / 100.0;
    new 
Float:Z        float(readInt32(u)) / 100.0;
    new 
Float:A        float(readInt32(u)) / 100.0;
    
    
fclose(u);
    
    
printf("Time is: %d"tickcount() - ts);
    
    
printf("User data:\n\tPassword: %d\n\tKills: %d\n\tDeaths: %d\n\tMoney: %d\n\tHealth: %d\n\tArmour: %d\n\tX: %.2f\n\tY: %.2f\n\tZ: %.2f\n\tA: %.2f\n\t",
    
passwordkillsdeathsmoneyhealtharmourXYZA);

Такой способ хранения данных, будет занимать только 33 байт на диске. Теперь о структуре файла:


Сортировка байт Little Edian.

Хедер (3 байта)
Пароль (4 байта)
Убийства (2 байта)
Смерти (2 байта)
Деньги (4 байта)
Жизни (1 байт)
Броня (1 байт)
X (4 байта)
Y (4 байта)
Z (4 байта)
A (4 байта)

Скачать инклуд r_io
Reply


Messages In This Thread
Защита аккаунта пользователя - by Miller - 12.04.2011, 10:42
Re: Защита аккаунта пользователя - by White_116 - 12.04.2011, 10:52
Re: Защита аккаунта пользователя - by Fro1sha - 12.04.2011, 11:02
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 11:21
Re: Защита аккаунта пользователя - by Romanius - 12.04.2011, 11:51
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 12:06
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 12:58
Re: Защита аккаунта пользователя - by Fro1sha - 12.04.2011, 13:00
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 14:03
Re: Защита аккаунта пользователя - by Makar93 - 12.04.2011, 14:12
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 14:16
Re: Защита аккаунта пользователя - by Stepashka - 12.04.2011, 14:24
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 14:26
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 14:33
Re: Защита аккаунта пользователя - by Makar93 - 12.04.2011, 14:43
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 14:46
Re: Защита аккаунта пользователя - by Makar93 - 12.04.2011, 14:56
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 14:57
Re: Защита аккаунта пользователя - by Stepashka - 12.04.2011, 15:11
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 15:18
Re: Защита аккаунта пользователя - by Makar93 - 12.04.2011, 15:46
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 16:07
Re: Защита аккаунта пользователя - by Fro1sha - 12.04.2011, 16:09
Re: Защита аккаунта пользователя - by Stepashka - 12.04.2011, 16:20
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 16:35
Re: Защита аккаунта пользователя - by Romanius - 12.04.2011, 16:39
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 16:46
Re: Защита аккаунта пользователя - by DANGER1979 - 12.04.2011, 17:07
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 17:28
Re: Защита аккаунта пользователя - by Miller - 12.04.2011, 17:35
Re: Защита аккаунта пользователя - by Miller - 13.04.2011, 13:42
Re: Защита аккаунта пользователя - by OKStyle - 13.04.2011, 14:01
Re: Защита аккаунта пользователя - by Romanius - 13.04.2011, 15:57
Re: Защита аккаунта пользователя - by Miller - 13.04.2011, 16:54
Re: Защита аккаунта пользователя - by azen - 13.04.2011, 17:15
Re: Защита аккаунта пользователя - by Romanius - 13.04.2011, 18:17
Re: Защита аккаунта пользователя - by Miller - 14.04.2011, 01:55
Re: Защита аккаунта пользователя - by Romanius - 14.04.2011, 07:49
Re: Защита аккаунта пользователя - by Rustam_Rich - 30.04.2011, 00:38

Forum Jump:


Users browsing this thread: 2 Guest(s)