diff options
author | shennetsind <ind@henn.et> | 2013-03-09 00:04:28 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-03-09 00:04:28 -0300 |
commit | d2d734ce0983fbed72e69f555f57f29de04f30b3 (patch) | |
tree | a3332e1eea882a9df5a2253d9a63153a9197851a /src/char/pincode.h | |
parent | bb0f807d0683fcb2c0e9fdd6a5d1e54686dfc816 (diff) | |
download | hercules-d2d734ce0983fbed72e69f555f57f29de04f30b3.tar.gz hercules-d2d734ce0983fbed72e69f555f57f29de04f30b3.tar.bz2 hercules-d2d734ce0983fbed72e69f555f57f29de04f30b3.tar.xz hercules-d2d734ce0983fbed72e69f555f57f29de04f30b3.zip |
Hercules Renewal'd Pin Code
Feature is not, I repeat, NOT complete. the decryption is not fully functional which leads to dial values different from the ones the player used.
Credits:
lemongrass3110 for the base
yommy for the packets
LightFighter for the decrypt function (altho its not stable :P)
Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/char/pincode.h')
-rw-r--r-- | src/char/pincode.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/char/pincode.h b/src/char/pincode.h new file mode 100644 index 000000000..209817c78 --- /dev/null +++ b/src/char/pincode.h @@ -0,0 +1,41 @@ +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// See the LICENSE file + +#ifndef _PINCODE_H_ +#define _PINCODE_H_ + +#include "char.h" + +#define PINCODE_OK 0 +#define PINCODE_ASK 1 +#define PINCODE_NOTSET 2 +#define PINCODE_EXPIRED 3 +#define PINCODE_UNUSED 7 +#define PINCODE_WRONG 8 + +/* Pincode Interface */ +struct pincode_interface { + /* vars */ + int *enabled; + int *changetime; + int *maxtry; + unsigned long *multiplier; + unsigned long *baseSeed; + /* handler */ + void (*handle) (int fd, struct char_session_data* sd); + void (*decrypt) (unsigned long userSeed, char* pin); + void (*error) (int account_id); + void (*update) (int account_id, char* pin); + void (*state) (int fd, struct char_session_data* sd, uint16 state); + void (*new) (int fd, struct char_session_data* sd); + void (*change) (int fd, struct char_session_data* sd); + int (*compare) (int fd, struct char_session_data* sd, char* pin); + void (*check) (int fd, struct char_session_data* sd); + bool (*config_read) (char *w1, char *w2); +} pincode_s; + +struct pincode_interface *pincode; + +void pincode_defaults(void); + +#endif /* _PINCODE_H_ */
\ No newline at end of file |