Advertisement
Sugisaki

[AMXX] Account System ( ADV_VAULT )

Oct 3rd, 2015
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.75 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <adv_vault>
  3. #include <cstrike>
  4. #include <fun>
  5. #include <hamsandwich>
  6.  
  7. #define PLUGIN "Nuevo Plugin"
  8. #define VERSION "1.0"
  9. #define AUTHOR "Sugisaki"
  10.  
  11. enum
  12. {
  13.     NAME,
  14.     STEAM_ID,
  15.     PASSWORD,
  16.     KILLS,
  17.     DEATHS,
  18.     MAX
  19. }
  20.  
  21. enum _:STATE
  22. {
  23.     UNREGISTER = 0,
  24.     REGISTER
  25. }
  26.  
  27. enum _:METHOD
  28. {
  29.     BY_NAME,
  30.     BY_ID
  31. }
  32.  
  33. new g_name[33][32]
  34. new g_steamid[33][32]
  35. new g_password[33][32]
  36. new g_kills[33]
  37. new g_deaths[33]
  38.  
  39. new reg_method[33]
  40.  
  41. new field[MAX]
  42. new vault
  43.  
  44. new bool:is_logged[33]
  45.  
  46.  
  47.  
  48. stock save(id, const indexname[])
  49. {
  50.     adv_vault_set_start(vault)
  51.     adv_vault_set_field(vault, field[NAME], g_name[id])
  52.     adv_vault_set_field(vault, field[PASSWORD], g_password[id])
  53.     adv_vault_set_field(vault, field[STEAM_ID], g_steamid[id])
  54.     adv_vault_set_field(vault, field[KILLS], g_kills[id])
  55.     adv_vault_set_field(vault, field[DEATHS], g_deaths[id])
  56.     adv_vault_set_end(vault, 0, indexname)
  57. }
  58. stock load(id, const indexname[])
  59. {
  60.     if(!adv_vault_get_prepare(vault, 0, indexname)) return UNREGISTER
  61.    
  62.     adv_vault_get_field(vault, field[NAME], g_name[id], charsmax(g_name[]))
  63.     adv_vault_get_field(vault, field[PASSWORD], g_password[id], charsmax(g_password[]))
  64.     adv_vault_get_field(vault, field[STEAM_ID], g_steamid[id], charsmax(g_steamid[]))
  65.     g_kills[id]= adv_vault_get_field(vault, field[KILLS])
  66.     g_deaths[id] = adv_vault_get_field(vault, field[DEATHS])
  67.    
  68.     return REGISTER
  69. }
  70.  
  71. public plugin_init()
  72. {
  73.     register_plugin(PLUGIN, VERSION, AUTHOR)
  74.     register_clcmd("NEW_PASSWORD", "fw_NEW_PASSWORD")
  75.     register_clcmd("INGRESE_PASSWORD", "fw_INGRESE_PASSWORD")
  76.     register_clcmd("INGRESE_NUEVA_PASSWORD", "fw_INGRESE_NUEVA_PASSWORD")
  77.     RegisterHam(Ham_Spawn, "player", "hm_spawn", 1)
  78.     RegisterHam(Ham_Killed, "player", "hm_killed", 1)
  79.     register_clcmd("say /my", "fw_check_account")
  80.     register_clcmd("say /changepass", "fw_changue_pass")
  81.     register_clcmd("jointeam", "fw_jointeam")
  82.     register_clcmd("chooseteam", "fw_chooseteam")
  83.    
  84.    
  85.     vault = adv_vault_open("account_system", true)
  86.     field[NAME] =  adv_vault_register_field(vault, "name", DATATYPE_ARRAY, 32)
  87.     field[PASSWORD] =adv_vault_register_field(vault, "password", DATATYPE_ARRAY, 32)
  88.     field[STEAM_ID] =adv_vault_register_field(vault, "steamid", DATATYPE_ARRAY, 32)
  89.     field[KILLS] =adv_vault_register_field(vault, "kills", DATATYPE_INT)
  90.     field[DEATHS] =adv_vault_register_field(vault, "deaths", DATATYPE_INT)
  91.     adv_vault_init(vault)
  92. }
  93.  
  94. public client_connect(id)
  95. {
  96.     is_logged[id] = false
  97.     get_user_authid(id, g_steamid[id], charsmax(g_steamid[]))
  98.     get_user_name(id, g_name[id], charsmax(g_name[]))
  99. }
  100.  
  101. public client_putinserver(id)
  102. {
  103.     set_task(0.1, "fw_show_menu", id)
  104. }
  105.  
  106. public fw_show_menu(id)
  107. {
  108.     static menu, temp[32]
  109.     if(equal(g_steamid[id], "STEAM_ID_LAN") || equal(g_steamid[id], "STEAM_ID_PENDING") || equal(g_steamid[id], "VALVE_ID_LAN") || equal(g_steamid[id], "VALVE_ID_PENDING") )
  110.     {
  111.         if(!load(id, g_name[id]))
  112.         {
  113.             //formatex(temp, 31, "\wAccount System
  114.             menu = menu_create("\wAccount System^n\wESTADO: \rNO REGISTRADO", "mh_unregister")
  115.             menu_additem(menu, "Registrar")
  116.             menu_addblank(menu, 2)
  117.             menu_additem(menu, "Entrar como spec")
  118.         }
  119.         else
  120.         {
  121.             menu = menu_create("Account System^n\wESTADO: \yREGISTRADO^n\wTIPO DE REGISTRO: \yNOMBRE", "mh_register")
  122.             menu_additem(menu, "Entrar")
  123.             menu_addblank(menu, 2)
  124.             menu_additem(menu, "Entrar como spec")
  125.         }
  126.         reg_method[id] = BY_NAME
  127.     }
  128.     else
  129.     {
  130.         if(!load(id, g_steamid[id]))
  131.         {
  132.             menu = menu_create("\wAccount System^n\wESTADO: \rNO REGISTRADO", "mh_unregister")
  133.             menu_additem(menu, "Registrar")
  134.             menu_addblank(menu, 2)
  135.             menu_additem(menu, "Entrar como spec")
  136.         }
  137.         else
  138.         {
  139.             menu = menu_create("Account System^n\wESTADO: \yREGISTRADO^n\wTIPO DE REGISTRO: \yID", "mh_register")
  140.             menu_additem(menu, "Entrar")
  141.             menu_addblank(menu, 2)
  142.             menu_additem(menu, "Entrar como spec")
  143.         }
  144.         reg_method[id] = BY_ID
  145.     }
  146.     menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
  147.     menu_display(id, menu)
  148. }
  149.  
  150. public join_spec(id)
  151. {
  152.     engclient_cmd(id, "jointeam", "6")
  153. }
  154.  
  155. public mh_unregister(id, menu, item)
  156. {
  157.     if(item == MENU_EXIT)
  158.     {
  159.         menu_destroy(menu)
  160.         return PLUGIN_HANDLED
  161.     }
  162.     switch(item)
  163.     {
  164.         case 0 : client_cmd(id, "messagemode NEW_PASSWORD")
  165.         case 1 : join_spec(id)
  166.     }
  167.     menu_destroy(menu)
  168.     return PLUGIN_HANDLED
  169. }
  170.  
  171. public mh_register(id, menu, item)
  172. {
  173.     if(item == MENU_EXIT)
  174.     {
  175.         menu_destroy(menu)
  176.         return PLUGIN_HANDLED
  177.     }
  178.    
  179.     switch(item)
  180.     {
  181.         case 0 : client_cmd(id, "messagemode INGRESE_PASSWORD")
  182.         case 1 : join_spec(id)
  183.     }
  184.     menu_destroy(menu)
  185.     return PLUGIN_HANDLED
  186. }
  187. public fw_NEW_PASSWORD(id)
  188. {
  189.     static out[sizeof g_password[]]
  190.     read_argv(1, out, charsmax(out))
  191.    
  192.     g_password[id] = out
  193.    
  194.     client_print(id, print_chat, "Clave: %s", out)
  195.    
  196.     switch(reg_method[id])
  197.     {
  198.         case BY_ID : save(id, g_steamid[id])
  199.         case BY_NAME : save(id, g_name[id])
  200.     }
  201.     fw_show_menu(id)
  202. }
  203. public fw_INGRESE_PASSWORD(id)
  204. {
  205.     static out[sizeof g_password[]]
  206.     read_argv(1, out, charsmax(out))
  207.    
  208.     if(equal(out, g_password[id]))
  209.     {
  210.         is_logged[id] = true
  211.         client_cmd(id, "chooseteam")
  212.     }
  213.     else
  214.     {
  215.         client_print(id, print_chat, "Clave invalida")
  216.         fw_show_menu(id)
  217.     }
  218. }
  219. public fw_INGRESE_NUEVA_PASSWORD(id)
  220. {
  221.     static out[sizeof g_password[]]
  222.     read_argv(1, out, charsmax(out))
  223.    
  224.     g_password[id] = out
  225.     client_disconnect(id)
  226.    
  227.     client_print(id, print_chat, "Clave cambiada")
  228.    
  229.     return PLUGIN_HANDLED
  230.    
  231. }
  232. public fw_check_account(id)
  233. {
  234.     client_cmd(id, "toggleconsole")
  235.     client_cmd(id, "^"echo^" //////////////////////////////////////////////")
  236.     client_cmd(id, "^"echo^" Ultimo Nombre usado: %s", g_name[id])
  237.     client_cmd(id, "^"echo^" Tipo de registro %s", reg_method[id] == BY_NAME ? "Nombre" : "ID")
  238.     client_cmd(id, "^"echo^" Frags %i", g_kills[id])
  239.     client_cmd(id, "^"echo^" Deaths %i", g_deaths[id])
  240.     client_cmd(id, "^"echo^" //////////////////////////////////////////////")
  241. }
  242. public fw_chooseteam(id)
  243. {
  244.     if(!is_logged[id])
  245.     {
  246.         fw_show_menu(id)
  247.         return PLUGIN_HANDLED
  248.     }
  249.     return PLUGIN_CONTINUE
  250. }
  251. public fw_jointeam(id)
  252. {
  253.     if(!is_logged[id])
  254.         return PLUGIN_HANDLED
  255.    
  256.     return PLUGIN_CONTINUE
  257. }
  258. public hm_spawn(id)
  259. {
  260.     set_user_frags(id, g_kills[id])
  261.     cs_set_user_deaths(id, g_deaths[id])
  262. }
  263. public hm_killed(id, ki)
  264. {
  265.     g_deaths[id] ++
  266.     if(is_user_connected(ki))
  267.         g_kills[ki]++
  268. }
  269. public client_disconnect(id)
  270. {
  271.     if(!is_logged[id]) return
  272.    
  273.     static name[32]
  274.     get_user_name(id, name, 32)
  275.    
  276.     g_name[id] = name
  277.    
  278.     switch(reg_method[id])
  279.     {
  280.         case BY_ID : save(id, g_steamid[id])
  281.         case BY_NAME : save (id, g_name[id])
  282.     }
  283. }
  284. public fw_changue_pass(id)
  285. {
  286.     if(is_logged[id])
  287.     {
  288.         client_cmd(id, "messagemode INGRESE_NUEVA_PASSWORD")
  289.     }
  290.     else
  291.         client_print(id, print_chat, "No puedes usar esta opcion en este momento")
  292.        
  293.     return PLUGIN_HANDLED
  294. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement