Raised This Month: $51 Target: $400
 12% 

zp_rab [Register System + Bank + Achievements] by mottzi (FAIL VERSION, DONT MISS IT)


Post New Thread Closed Thread   
 
Thread Tools Display Modes
Author Message
Ruthless61
Junior Member
Join Date: Nov 2010
Old 07-07-2011 , 08:45   zp_rab [Register System + Bank + Achievements] by mottzi (FAIL VERSION, DONT MISS IT)
#1

Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <zombieplague>
#include <cstrike>

#define is_valid_player(%1) (1 <= %1 <= 32)
#define EMAIL "[email protected]"

new name[33][100]
new password[33][100]
new name_log[33][100]
new password2[33][100]
new n_vault, n_vault2, n_vault3

new g_name[33][100]

new bool:loggedin[33]
new bool:opendmenu[33]

new g_hunterlevel[33]
new g_killcount[33]

new g_zmhunterlevel[33]
new g_zmkillcount[33]

new g_zmkiller[33]
new g_zmkillercount[33]

new g_nemelevel[33]

new donateid

enum Color { NORMAL = 1,     GREEN,TEAM_COLOR,GREY,RED,BLUE}
new TeamName[][] = {"","TERRORIST","CT","SPECTATOR"}


// Cvars

new cvar_autosave, cvar_achvs

new gStr[100], g1[50]

public plugin_init() 
{
      register_plugin("RegisterBankAchievements", "1.0", "Mottzi")
      register_clcmd("say /login", "show_menu1")

      register_clcmd("say /help", "showMotd1")

      // Cvars
      cvar_achvs = register_cvar("zp_register_achvs", "1")
      cvar_autosave = register_cvar("zp_register_autosave", "1")

      register_clcmd("say /bank", "show_menu2")
      register_clcmd("say_team /bank", "show_menu2")

      register_clcmd("say /save", "cmdsave")

      // Take amout
      register_clcmd("say by", "sayMe")
      register_clcmd("_takeamout", "cmdtakeamout")
      // Save amout
      register_clcmd("_saveamout", "cmdsaveamout")

      // Create new
      register_clcmd("_newname", "cmdnewname")
      register_clcmd("_newpassword", "cmdnewpassword")

      register_clcmd("_donate", "cmdDonate")

      // Login 
      register_clcmd("_logname", "cmdnewname2")
      register_clcmd("_logpassword", "cmdnewpassword2")

      register_clcmd("say /contact", "cmdCon")

      // Archivments
      register_clcmd("say /achievements", "archivments_menu")
      register_clcmd("say /achvs", "archivments_menu")

      // Nvaults
      n_vault = nvault_open("logindata")
      n_vault2 = nvault_open("logindata2")
      n_vault3 = nvault_open("logindata3")

      // Commands
      register_concmd("zp_register_list", "cmdShowList", ADMIN_BAN, "zp_register_list")
      register_concmd("zp_register_setap", "cmdSetAp", ADMIN_BAN, "zp_register_setap <Accountname> <Ammopacks>")
      register_concmd("zp_register_getap", "cmdGetAp", ADMIN_BAN, "zp_register_getap <Accountname>")
      register_concmd("zp_register_remove", "cmdRemove", ADMIN_BAN, "zp_register_remove <Accountname>")
      register_concmd("zp_register_add", "cmdAdd", ADMIN_BAN, "zp_register_add <Accountname> <Password> <Ammopacks>")

      // Hooks
      register_clcmd("jointeam", "Event_JoinTeam")

      // Events
      formatex(g1, 49, "tzi")
      register_event("DeathMsg", "DeathMsg", "a")
      register_logevent("round_start", 2, "1=Round_Start")

      set_task(160.0, "check_login", _,_,_, "b")
      set_task(150.0, "say", _,_,_,"b")

      go_closevault()
}

public cmdCon(id)
{
      ColorChat(id, GREEN, "[Login]^1 Contact Email:^3 %s", EMAIL)
}

public donatemenu(id)
{
      new menu6 = menu_create("\rChoose A player to Donate:", "menu_handler6");

      new players[32], pnum, tempid;

      new szName[32], szTempid[10];

      get_players(players, pnum);

      for( new i; i<pnum; i++ )
      {
            tempid = players[i];

            get_user_name(tempid, szName, 31);
            num_to_str(tempid, szTempid, 9);

            menu_additem(menu6, szName, szTempid, 0);
      }

      menu_display(id, menu6, 0);
}
public menu_handler6(id, menu6, item)
{
      if( item == MENU_EXIT )
      {
            menu_destroy(menu6);
            return PLUGIN_HANDLED;
      }
      new data[6], iName[64];
      new access, callback;
      menu_item_getinfo(menu6, item, access, data,5, iName, 63, callback);

      new tempid = str_to_num(data);

      donateid = tempid

      client_cmd(id, "messagemode _donate")

      menu_destroy(menu6);
      return PLUGIN_HANDLED;
}

public cmdDonate(id)
{
      new aps[100] 
      read_args(aps, 99)
      remove_quotes(aps)

      new numaps = str_to_num(aps)

      if(containi(aps, " ") == -1)
      {
            new haveap[10]; nvault_get(n_vault2, g_name[id], haveap, 9)
            new numhaveap = str_to_num(haveap)

            if(numhaveap < numaps)
            {
                  ColorChat(id, GREEN, "[Bank]^1 Invalid Amount")
                  return PLUGIN_HANDLED;
            }
            else
            {
                  new result = numhaveap - numaps
                  new string[100]; formatex(string, 99, "%i", result)
                  nvault_set(n_vault2, g_name[id], string)

                  new aps2[10]; nvault_get(n_vault2, g_name[donateid], aps2, 9)
                  new numaps2 = str_to_num(aps2)

                  new result2 = numaps2 + numaps
                  new string2[100]; formatex(string2, 99, "%i", result2)
                  nvault_set(n_vault2, g_name[donateid], string2)

                  new name1[50], name2[50]

                  get_user_name(id, name1, 49)
                  get_user_name(donateid, name2, 49)

                  ColorChat(id, GREEN, "[Bank]^1 You donated^3 %i^1 Ammopacks to^3 %s^1. You now have^3 %i^1 Ammopacks in^3 your Bank", numaps, name2, result)
                  ColorChat(donateid, GREEN, "[Bank] %s^1 donated^3 %i^1 Ammopacks to you. You now have^3 %i^1 Ammopacks in^3 your Bank", name1, numaps, result2)
            }
      }
      else
      {
            ColorChat(id, GREEN, "[Bank]^1 Invalid Amount")
            return PLUGIN_HANDLED;
      }
      return PLUGIN_CONTINUE
}

public round_start()
{
      new players[32], pnum, tempid;
      get_players(players, pnum);

      for( new i; i<pnum; i++ )
      {
            tempid = players[i];
            g_killcount[tempid] = 0;
      }
}

public archivments_menu(id)
{
      if(get_pcvar_num(cvar_achvs) != 1)
            return PLUGIN_HANDLED;

      if(loggedin[id] == true)
      {
            new title[80]; formatex(title, 79, "\rAchievements\w [\y%s\w]", g_name[id])

            new menu5 = menu_create(title, "handler_archs")


            new humanhtitle[200]

            if(g_hunterlevel[id] < 4)
                  formatex(humanhtitle, 199, "\wHuman Hunter\y Level %i - \rNext Level: %i\w (%i APs)^n\y    Kill %i Zombies in a Row!^n", g_hunterlevel[id], g_hunterlevel[id] + 1, (g_hunterlevel[id] + 1)  * 120, (g_hunterlevel[id] + 1) * 5)
            else
                  formatex(humanhtitle, 199, "\wHuman Hunter\y Level %i - \rFULL^n", g_hunterlevel[id])

            menu_additem(menu5, humanhtitle , "1")

            new zmhtitle[200]

            if(g_zmhunterlevel[id] < 2)
                  formatex(zmhtitle, 199, "\wZombie Hunter\y Level %i - \rNext Level: %i\w (%i APs)^n\y    Infect %i Humans in a Row!^n", g_zmhunterlevel[id], g_zmhunterlevel[id] + 1, (g_zmhunterlevel[id] + 1)  * 250, (g_zmhunterlevel[id] + 1) * 5)
            else
                  formatex(zmhtitle, 199, "\wZombie Hunter\y Level %i - \rFULL^n", g_zmhunterlevel[id])

            menu_additem(menu5, zmhtitle , "2")

            new zmkillertitle[200]

            if(g_zmkiller[id] < 3)
                  formatex(zmkillertitle, 199, "\wZombie Killer\y Level %i - \rNext Level: %i\w (%i APs)^n\y    Kill %i Humans in a Swarm/Plague Round!^n", g_zmkiller[id], g_zmkiller[id] + 1, (g_zmkiller[id] + 1)  * 300, (g_zmkiller[id] + 1) * 3)
            else
                  formatex(zmkillertitle, 199, "\wZombie Killer\y Level %i - \rFULL^n", g_zmkiller[id])

            menu_additem(menu5, zmkillertitle, "3")

            new nemetitle[200]

            if(g_nemelevel[id] < 1)
                  formatex(nemetitle, 199, "\wTerminator\y Level %i - \rNext Level: %i\w (%i APs)^n\y    Kill a Nemesis!^n", g_nemelevel[id], g_nemelevel[id] + 1, 400)
            else
                  formatex(nemetitle, 199, "\wTerminator\y Level %i - \rFULL^n", g_nemelevel[id])

            menu_additem(menu5, nemetitle, "4")

            menu_display(id, menu5, 0)
      }
      else
      {
            show_menu1(id)
      }

      return PLUGIN_CONTINUE
}

public handler_archs(id, menu5, item)
{     
      if(get_pcvar_num(cvar_achvs) != 1)
            return PLUGIN_HANDLED;

      new data[6], iName[64], access, callback
      menu_item_getinfo(menu5, item, access, data, 5, iName, 63, callback)

      new key = str_to_num(data)

      switch(key)
      {
            case 1:
            {
                  if(g_hunterlevel[id] >= 4)
                        return PLUGIN_HANDLED

                  ColorChat(id, GREEN, "[Achievements]^1 Kill %i Zombies in a Row to get %i Ammopacks!", (g_hunterlevel[id] + 1) * 5, (g_hunterlevel[id] + 1) * 120)
            }
            case 2:
            {
                  if(g_zmhunterlevel[id] >= 2)
                        return PLUGIN_HANDLED
                  ColorChat(id, GREEN, "[Achievements]^1 Infect %i Humans in a Row to get %i Ammopacks!", (g_zmhunterlevel[id] + 1) * 5, (g_zmhunterlevel[id] + 1) * 250)
            }
            case 3:
            {
                  if(g_zmkiller[id] >= 3)
                        return PLUGIN_HANDLED
                  ColorChat(id, GREEN, "[Achievements]^1 Kill %i Humans in a Swarm/Plague Round to get %i Ammopacks!", (g_zmkiller[id] + 1) * 3, (g_zmkiller[id] + 1) * 300)
            }
            case 4:
            {
                  if(g_zmkiller[id] >= 1)
                        return PLUGIN_HANDLED
                  ColorChat(id, GREEN, "[Achievements]^1 Kill a Nemesis to get 400 Ammopacks!")
            }
      }
      return PLUGIN_CONTINUE
}
new g2[50]
public DeathMsg()
{
      new killer = read_data(1)
      new victim = read_data(2)

      if(get_pcvar_num(cvar_achvs) != 1)
            return PLUGIN_HANDLED;

      g_zmkillcount[victim] = 0
      g_zmkillercount[victim] = 0

      if(zp_is_nemesis_round())
      {
            if(zp_get_user_nemesis(victim) && loggedin[killer] == true && g_nemelevel[killer] != 1 && cs_get_user_team(killer) == CS_TEAM_CT && is_valid_player(killer))
            {
                  g_nemelevel[killer]++
                  new name[50]; get_user_name(killer, name, charsmax(name))
                  ColorChat(0, GREEN, "[Achievements] %s^1 reached^3 Terminator Level:^1 %i^1 and got^3 %i^1 Ammopacks!", name, g_zmkiller[killer] + 1, 500)
                  g_zmkiller[killer]++
                  g_zmkillercount[killer] = 0
                  give_present(killer, 500)

                  new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[killer], g_zmhunterlevel[killer], g_zmkiller[killer], g_nemelevel[killer])
                  nvault_set(n_vault3, g_name[killer], string)
            }
      }

      if(is_valid_player(killer) && loggedin[killer] == true && g_zmkiller[killer] != 3 && !zp_is_nemesis_round())
      {
            if(zp_is_plague_round() || zp_is_swarm_round())
            {
                  if(is_valid_player(victim) && zp_get_user_zombie(killer) && cs_get_user_team(victim) == CS_TEAM_CT)
                  {
                        g_zmkillercount[killer]++
                        ColorChat(killer, GREEN, "[Achievements]^3 Killstreak Zombiekiller:^1 %i", g_zmkillercount[killer])
                        showStats(killer, 3)

                        if(g_zmkillercount[killer] >= (g_zmkiller[killer] + 1) * 3)
                        {
                             new name[50]; get_user_name(killer, name, charsmax(name))
                             ColorChat(0, GREEN, "[Achievements] %s^1 reached^3 Zombie Killer Level:^1 %i^1 and got^3 %i^1 Ammopacks!", name, g_zmkiller[killer] + 1, (g_zmkiller[killer] + 1) * 300)
                             g_zmkiller[killer]++
                             g_zmkillercount[killer] = 0
                             give_present(killer, g_zmkiller[killer] * 300)

                              new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[killer], g_zmhunterlevel[killer], g_zmkiller[killer], g_nemelevel[killer])
                             nvault_set(n_vault3, g_name[killer], string)
                        }
                  }
            }
      }


      if(is_valid_player(killer) && zp_get_user_zombie(victim) && g_hunterlevel[killer] != 4 && loggedin[killer] == true)
      {
            if(zp_get_user_survivor(killer))
                  return PLUGIN_HANDLED;

            g_killcount[killer]++
            ColorChat(killer, GREEN, "[Achievements]^3 Killstreak Humanhunter:^1 %i", g_killcount[killer])
            showStats(killer, 1)

            if(g_killcount[killer] >= (g_hunterlevel[killer] + 1) * 5)
            {
                  new name[50]; get_user_name(killer, name, charsmax(name))
                  ColorChat(0, GREEN, "[Achievements] %s^1 reached^3 Human Hunter Level:^1 %i^1 and got^3 %i^1 Ammopacks!", name, g_hunterlevel[killer] + 1, (g_hunterlevel[killer] + 1) * 120)
                  g_hunterlevel[killer]++
                  g_killcount[killer] = 0
                  give_present(killer, g_hunterlevel[killer] * 120)

                  new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[killer], g_zmhunterlevel[killer], g_zmkiller[killer], g_nemelevel[killer])
                  nvault_set(n_vault3, g_name[killer], string)
            }
      }
      return PLUGIN_CONTINUE
}

public give_present(id, amout)
{
      new curaps[10] 
      nvault_get(n_vault2, g_name[id], curaps, 9)
      new intaps = str_to_num(curaps)

      new result = intaps + amout

      new string[10]
      formatex(string, 10, "%i", result)

      nvault_set(n_vault2, g_name[id], string)

      ColorChat(id, GREEN, "[Bank]^1 You have now^3 %i^1 Ammopacks in your^3 Bank^1!", result)
}

public zp_user_infected_post(id, infector, nemesis)
{
      if(get_pcvar_num(cvar_achvs) != 1)
            return PLUGIN_HANDLED;

      g_killcount[id] = 0

      if(is_valid_player(infector) && g_zmhunterlevel[infector] != 2 && loggedin[infector] == true && zp_get_user_zombie(infector))
      {
            g_zmkillcount[infector]++
            ColorChat(infector, GREEN, "[Achievements]^3 Killstreak Zombiehunter:^1 %i", g_zmkillcount[infector])
            showStats(infector, 2)

            if(g_zmkillcount[infector] >= (g_zmhunterlevel[infector] + 1) * 5)
            {
                  new name[50]; get_user_name(infector, name, charsmax(name))
                  ColorChat(0, GREEN, "[Achievements] %s^1 reached^3 Zombie Hunter Level:^1 %i^1 and got^3 %i^1 Ammopacks!", name, g_zmhunterlevel[infector] + 1, (g_zmhunterlevel[infector] + 1) * 250)
                  g_zmhunterlevel[infector]++
                  g_zmkillcount[infector] = 0
                  give_present(infector, g_zmhunterlevel[infector] * 250)

                  new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[infector], g_zmhunterlevel[infector], g_zmkiller[infector], g_nemelevel[infector])
                  nvault_set(n_vault3, g_name[infector], string)
            }
      }
      return PLUGIN_CONTINUE
}

public showStats(id, mode)
{
      new text[200]
      new mode2 = mode

      switch(mode2)
      {
            case 1:
            {
                  formatex(text, charsmax(text), "Human Hunter: %i / %i", g_killcount[id], (g_hunterlevel[id] + 1) * 5)
            }
            case 2:
            {
                  formatex(text, charsmax(text), "Zombie Hunter: %i / %i", g_zmkillcount[id], (g_zmhunterlevel[id] + 1) * 5)
            }
            case 3:
            {
                  formatex(text, charsmax(text), "Zombie Killer: %i / %i", g_zmkillercount[id], (g_zmkiller[id] + 1) * 3)
            }
      }
      set_hudmessage(255, 255, 255, 0.02, 0.50, 0, 6.0, 4.0, _, _, -1)
      show_hudmessage(id, text)
}

public Event_JoinTeam(id)
{
      if(!loggedin[id])
      {
            new menu = menu_create(gStr, "menu_handler")

            menu_additem(menu, "\wNew Account", "1")
            menu_additem(menu, "\rLogin^n", "2")

            menu_additem(menu, "\yHelp / Infos", "3")

            menu_display(id, menu, 0)

            set_task(10.0, "Event_JoinTeam2", id)
            return PLUGIN_HANDLED
      }

      return PLUGIN_CONTINUE
}

public Event_JoinTeam2(id)
{
      if(opendmenu[id] == false)
      {
            new menu = menu_create(gStr, "menu_handler")

            menu_additem(menu, "\wNew Account", "1")
            menu_additem(menu, "\rLogin^n", "2")

            menu_additem(menu, "\yHelp / Infos", "3")

            menu_display(id, menu, 0)
            set_task(10.0, "Event_JoinTeam", id)
      }
}

public cmdShowList(id)
{
      new players[32], pnum, tempid;
      get_players(players, pnum);
      client_print(id, print_console, "Ingamename - Accountname - Ammopacks")

      for( new i; i<pnum; i++ )
      {
            tempid = players[i];

            if(id != tempid) 
            {
                  new name[45] 
                  get_user_name(tempid, name, charsmax(name))

                  if(equali(g_name[tempid], ""))
                  {
                        client_print(id, print_console, "%s  -  Not logged in  -  Unkown", name, g_name[tempid])
                  }
                  if(equali(g_name[tempid], "") == 0)
                  {
                        new aps[10]; nvault_get(n_vault2, g_name[tempid], aps, 9)
                        client_print(id, print_console, "%s  -  %s  -  %s", name, g_name[tempid], aps)
                  }
            }
      }
}

public plugin_end()
{
      nvault_close(n_vault)
      nvault_close(n_vault2)
      nvault_close(n_vault3)
}

public say()
{
      new players[32], pnum, tempid;
      get_players(players, pnum);
      for( new i; i<pnum; i++ )
      {
            tempid = players[i];

            ColorChat(tempid, GREEN, "[Login]^1 Say:^3 /bank^1 to open the^3 Bankmenu^1!")
            ColorChat(tempid, GREEN, "[Login]^1 Say:^3 /help^1 to get Informations about^3 Bank^1,^3 Achivements^1 and^3 Registersystem^1!")

            if(get_pcvar_num(cvar_achvs) == 1)
                  ColorChat(tempid, GREEN, "[Achievements]^1 This Server is using^3 Achievements^1. Say:^3 /achievements^1^1 to get Infos.")
      }
}

public check_login()
{
      new players[32], pnum, tempid;
      get_players(players, pnum);

      for( new i; i<pnum; i++ )
      {
            tempid = players[i];

            if(!loggedin[tempid]) 
            {
                  ColorChat(tempid, GREEN, "[Login] You didnt^3 Login^1 so your^3 Ammopacks^1 wont^3 save^1. Say:^3 /login^1 to create a ^3new Account^1 or to^3 Login^1!") 
            }
            if(get_pcvar_num(cvar_autosave) == 1)
            {
                  ColorChat(tempid, GREEN, "^1[Bank]^3 Autosave^1 is^3 enabled^1!")
            }
      }
}

public cmdSetAp(id)
{
      new arg1[50], arg2[50], name2[40], time2

      read_argv(1, arg1, charsmax(arg1))

      if(nvault_lookup(n_vault, arg1, name2, 39, time2) == 1)
      {
            read_argv(2, arg2, charsmax(arg2))
            nvault_set(n_vault2, arg1, arg2)

            ColorChat(id, GREEN, "[Login]^1 You setted the APs of^3 %s^1 sucsessfuly to^3 %s^1!", arg1, arg2)
      }
      else
      {
            client_print(id, print_console, "%s not found!", arg1)
            ColorChat(id, GREEN, "[Login] %s^1 not Found!", arg1)
      }
}

public cmdAdd(id)
{
      new arg1[50], arg2[50], arg3[15], name2[40], time2

      read_argv(1, arg1, charsmax(arg1))

      if(nvault_lookup(n_vault, arg1, name2, 39, time2) == 1)
      {
            client_print(id, print_console, "%s already exists!", arg1)
            ColorChat(id, GREEN, "[Login] %s^1 already^3 exists^1!", arg1)
      }
      else
      {
            read_argv(2, arg2, charsmax(arg2))
            read_argv(3, arg3, charsmax(arg3))

            nvault_set(n_vault, arg1, arg2)
            nvault_set(n_vault2, arg1, arg3)

            ColorChat(id, GREEN, "[Login]^1 Account created:^3 %s^1 Password:^3 %s^1 Ammopacks:^3 %s", arg1, arg2, arg3)
      }
}

public cmdGetAp(id)
{
      new arg1[50], name2[50], time2

      read_argv(1, arg1, charsmax(arg1))
      remove_quotes(arg1)

      if(nvault_lookup(n_vault, arg1, name2, 49, time2) == 1)
      {
            new aps[10]
            nvault_get(n_vault2, arg1, aps, 9)
            new apsnum = str_to_num(aps)

            client_print(id, print_console, "%s has %i Ammopacks", arg1, apsnum)
            ColorChat(id, GREEN, "[Login] %s^1 has^3 %i^1 Ammopacks", arg1, apsnum)
      }
      else
      {
            client_print(id, print_console, "%s not found!", arg1)
            ColorChat(id, GREEN, "[Login] %s^1 not Found!", arg1)
      }
}

public cmdRemove(id)
{
      new arg1[50], name2[20], time2
      read_argv(1, arg1, charsmax(arg1))

      if(nvault_lookup(n_vault, arg1, name2[id], 19, time2) == 1)
      {
            nvault_remove(n_vault, arg1)
            nvault_remove(n_vault2, arg1)

            ColorChat(0, GREEN, "[Login]^1 Admin removed Account:^3 %s^1!", arg1)
      }
      else
      {
            client_print(id, print_console, "%s not found!", arg1)
            ColorChat(id, GREEN, "[Login] %s^1 not Found!", arg1)
      }
}

public cmdsave(id)
{
      if(loggedin[id] == true)
      {
            new aps = zp_get_user_ammo_packs(id)

            if(aps == 0)
            {
                  ColorChat(id, GREEN, "[Login]^1 You need more then^3 0^1 Ammopacks!")
                  return PLUGIN_HANDLED;
            }
            new aps2[16]
            new aps3[16]

            nvault_get(n_vault2, g_name[id], aps3, 15)

            new aps4 = aps + str_to_num(aps3)

            formatex(aps2, charsmax(aps2), "%i", aps)
            nvault_set(n_vault2, g_name[id], aps2)
            ColorChat(id, GREEN, "[Login]^1 %i^3 Ammopacks saved!^1 Currently ^3Ammopacks^1 in ^3Bank^1:^3 %i", aps, aps4)
            zp_set_user_ammo_packs(id, 0)
      }

      return PLUGIN_HANDLED
}

public show_menu1(id)
{
      new menu = menu_create(gStr, "menu_handler")

      menu_additem(menu, "\wNew Account", "1")
      menu_additem(menu, "\rLogin^n", "2")

      menu_additem(menu, "\y Help / Infos", "3")

      if(!loggedin[id])
      {
            menu_display(id, menu, 0)
      }
      else
      {
            ColorChat(id, GREEN, "[Login] You already logged in.^3 Rejoin^1 if you want to^3 login^1 again!")
      }

      return PLUGIN_HANDLED;
}

public show_menu2(id)
{
      if(loggedin[id] == true)
      {
            new title[100]
            new data1[30]

            nvault_get(n_vault2, g_name[id], data1, charsmax(data1))

            if(equal(data1 , ""))
                  formatex(title, charsmax(title), "\y Bank Account:\w %s  \yAmmopacks in Bank:\r 0", g_name[id])
            else
                  formatex(title, charsmax(title), "\y Bank Account:\w %s  \yAmmopacks in Bank:\r %s", g_name[id], data1)

            new menu2 = menu_create(title, "menu_handler2")

            menu_additem(menu2, "\wTake Amount", "1")
            menu_additem(menu2, "\wTake All^n", "2")

            menu_additem(menu2, "\wSave Amount", "3")
            menu_additem(menu2, "\wSave All^n", "4")

            menu_additem(menu2, "\wDonate Amout^n^n", "5")

            menu_additem(menu2, "\rHelp / Infos", "6")

            menu_display(id, menu2, 0)
      }
      else
      {
            ColorChat(id, GREEN, "[Login] You are not logged in. Say:^3 /login^1 if you want to^3 login^1 again!")
      }

      return PLUGIN_HANDLED;
}

public menu_handler2(id, menu2, item)
{     
      new data[6], iName[64], access, callback

      menu_item_getinfo(menu2, item, access, data, 5, iName, 63, callback)

      new key = str_to_num(data)

      switch(key)
      {
            case 1:
            {
                  client_cmd(id, "messagemode _takeamout")
            }
            case 2:
            {
                  new data1[30]
                  nvault_get(n_vault2, g_name[id], data1, charsmax(data1))

                  new have_hand  = zp_get_user_ammo_packs(id)
                  new have = str_to_num(data1)

                  if(have > 0)
                  {
                        zp_set_user_ammo_packs(id, have_hand + have)

                        new string1[30]
                        formatex(string1, charsmax(string1), "0")
                        nvault_set(n_vault2, g_name[id], string1)

                        ColorChat(id, GREEN, "[Login]^1 You took^3 %i^1 Ammmopacks from your^3 Bank^1!", have)
                  }
                  else
                  {
                        ColorChat(id, GREEN, "[Login]^1 You need more than^3 0^1 Ammopacks in your^3 Bank!")
                  }

            }
            case 3:
            {
                  client_cmd(id, "messagemode _saveamout")
            }
            case 4:
            {     
                  new aps = zp_get_user_ammo_packs(id)

                  if(aps == 0)
                  {
                        ColorChat(id, GREEN, "[Login]^1 You need more then^3 0^1 Ammopacks!")
                        return PLUGIN_HANDLED;
                  }

                  new aps_have[30]
                  nvault_get(n_vault2, g_name[id], aps_have, 29)

                  new result = aps + str_to_num(aps_have)

                  new aps2[30]
                  formatex(aps2, charsmax(aps2), "%i", result)
                  nvault_set(n_vault2, g_name[id], aps2)
                  ColorChat(id, GREEN, "[Login]^1 %i^3 Ammopacks saved!^1 Currently ^3Ammopacks^1 in ^3Bank^1:^3 %i", aps, result)
                  zp_set_user_ammo_packs(id, 0)
            }
            case 5:
            {
                  donatemenu(id)
            }
            case 6:
            {
                  showMotd1(id)
            }
      }
      return PLUGIN_CONTINUE
}

public cmdtakeamout(id)
{
      new amout[33][100]
      read_args(amout[id], 99)
      remove_quotes(amout[id])

      if(containi(amout[id], " ") == -1)
      {
            new data1[30]
            nvault_get(n_vault2, g_name[id], data1, charsmax(data1))

            new want = str_to_num(amout[id])
            new have = str_to_num(data1)

            if(want > have)
            {
                  show_menu2(id)
                  ColorChat(id, GREEN, "[Login]^1 You dont have^3 %i^1 Ammmopacks in your^3 Bank^1!", want)
            }
            else
            {
                  zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + want)

                  ColorChat(id, GREEN, "[Login]^1 You just took^3 %i^1 Ammopacks from your^3 bank^1!", want)

                  new string1[30]
                  formatex(string1, charsmax(string1), "%i", have - want)
                  nvault_set(n_vault2, g_name[id], string1)
            }
      }
      else
      {
            show_menu2(id)
            ColorChat(id, GREEN, "[Login]^1 Invalid^3 Amout^1!")
      }
}
new g3[50]
public cmdsaveamout(id)
{
      new amout[33][100]
      new aps = zp_get_user_ammo_packs(id)
      read_args(amout[id], 99)
      remove_quotes(amout[id])

      if(containi(amout[id], " ") == -1)
      {


            new want = str_to_num(amout[id])

            if(want > aps)
            {
                  show_menu2(id)
                  ColorChat(id, GREEN, "[Login]^1 You dont have^3 %i^1 Ammmopacks!", want)
            }
            else
            {
                  new data1[30]
                  nvault_get(n_vault2, g_name[id], data1, charsmax(data1))
                  new aps_bank = str_to_num(data1)

                  new save_aps = aps_bank + want

                  new string1[16]
                  formatex(string1, charsmax(string1), "%i", save_aps)
                  nvault_set(n_vault2, g_name[id], string1)
                  zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - want)

                  ColorChat(id, GREEN, "[Login]^1 %i^3 Ammopacks saved!^1 Currently ^3Ammopacks^1 in ^3Bank^1:^3 %i", want, aps_bank + want)
            }
      }
      else
      {
            show_menu2(id)
            ColorChat(id, GREEN, "[Login]^1 Invalid^3 Amout^1!")
      }
}

public menu_handler(id, menu, item)
{     
      new data[6], iName[64], access, callback

      menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)

      new key = str_to_num(data)

      switch(key)
      {
            case 1:
            {
                  client_cmd(id, "messagemode _newname")
                  opendmenu[id] = true
            }
            case 2:
            {
                  client_cmd(id, "messagemode _logname")
                  opendmenu[id] = true
            }
            case 3:
            {
                  showMotd1(id)
            }
      }

      if(key != 1 && key != 2)
      {
            show_menu1(id)
            return PLUGIN_HANDLED
      }

      return PLUGIN_CONTINUE
}

public showMotd1(id)
{
      const SIZE = 1024;
      new msg[SIZE+1], len = 0;

      len = formatex(msg[len], SIZE - 1, "<html><body style=^"background-color:#000000^"><br>");
      len += formatex(msg[len], SIZE - 1, "<p align=^"center^"><img src=^"http://sharpzombie.sh.funpic.de/bank.jpg^" /></p><br>");
      len += formatex(msg[len], SIZE - 1, "</body></html>");

      show_motd(id, msg, "Help / Info    by Mottzi");
}

public client_disconnect(id)
{
      cmdSaveAll(id)

      new string[20]; formatex(string, 19, "%i %i %i %i", g_hunterlevel[id], g_zmhunterlevel[id], g_zmkiller[id], g_nemelevel[id])
      nvault_set(n_vault3, g_name[id], string)

      opendmenu[id] = false
      loggedin[id] = false
      g_name[id] = "Not loggedin"

      g_killcount[id] = 0
      g_hunterlevel[id] = 0

      g_zmhunterlevel[id] = 0
      g_zmkillcount[id] = 0

      g_zmkiller[id] = 0
      g_zmkillercount[id] = 0

      g_nemelevel[id] = 0
}

public cmdSaveAll(id)
{
      if(get_pcvar_num(cvar_autosave) == 1)
      {
            new aps = zp_get_user_ammo_packs(id)

            if(aps == 0)
            {
                  return PLUGIN_HANDLED;
            }

            new aps_have[30]
            nvault_get(n_vault2, g_name[id], aps_have, 29)

            new result = aps + str_to_num(aps_have)

            new aps2[30]
            formatex(aps2, charsmax(aps2), "%i", result)
            nvault_set(n_vault2, g_name[id], aps2)

            zp_set_user_ammo_packs(id, 0)
      }
      return PLUGIN_CONTINUE
}

public cmdnewname(id)
{
      read_args(name[id], 99)
      remove_quotes(name[id])

      new name2[33][100]
      new time2

      if(nvault_lookup(n_vault, name[id], name2[id], 99, time2) == 0 && containi(name[id], " ") == -1)
      {
            client_cmd(id, "messagemode _newpassword")
      }
      else if(nvault_lookup(n_vault, name[id], name2[id], 99, time2) == 1)
      {
            client_cmd(id, "messagemode _newname")
            ColorChat(id, GREEN, "[Login]^1 Invalid^3 Username!^1 Try another^4 Username.")
      }
}

public cmdnewpassword(id)
{
      read_args(password[id], 99)
      remove_quotes(password[id])

      if(containi(password[id], " ") == -1)
      {
            nvault_set(n_vault, name[id], password[id])

            ColorChat(id, GREEN, "[Login]^1 You createt a new ^3Account!^1 Username:^3 %s^1 Password:^3 %s", name[id], password[id])
            ColorChat(id, GREEN, "[Login]^1 Dont forget you^3 Username^1 and^3 Password^1!")

            loggedin[id] = true
            g_name[id] = name[id]

            client_cmd(id, "jointeam 2")

            set_task(4.0, "goSay", id)

            g_hunterlevel[id] = 0
            g_zmhunterlevel[id] = 0
            g_zmkiller[id] = 0
            g_nemelevel[id] = 0
      }
      else
      {
            client_cmd(id, "messagemode _newpassword")
            ColorChat(id, GREEN, "[Login]^1 Invalid^3 Password!^1 Try another^4 Password.")
      }
}

public goSay(id)
{
      ColorChat(id, GREEN, "[Login]^1 Say:^3 /bank^1 to open the^3 Bankmenu^1!")
      ColorChat(id, GREEN, "[Archivments]^1 This Server is using^3 Achivements^1. Say:^3 /achvs^1^1 to get Infos.")
      ColorChat(id, GREEN, "[Login]^1 Say:^3 /help^1 to get Informations about^3 Bank^1,^3 Achievements^1 and^3 Registersystem^1!")
      set_task(100.0, "sayMe")
}

public go_closevault()
{
      formatex(g2, 49, "by Mot")
      go_closen()
}

public cmdnewname2(id)
{
      read_args(name_log[id], 99)
      remove_quotes(name_log[id])

      new name2[33][100]
      new time2

      if(nvault_lookup(n_vault, name_log[id], name2[id], 99, time2) == 0)
      {
            client_cmd(id, "messagemode _logname")
            ColorChat(id, GREEN, "[Login]^1 Invalid^3 Username!^1 Try another^4 Username.")
      }
      else
      {
            client_cmd(id, "messagemode _logpassword")
      }
}

public cmdnewpassword2(id)
{
      read_args(password2[id], 99)
      remove_quotes(password2[id])

      new data[140] 
      nvault_get( n_vault, name_log[id], data, 139) 

      if(equali(data, password2[id]))
      {

            ColorChat(id, GREEN, "[Login]^3 Welcome!^1 You logged in with^4 %s.", name_log[id])

            loggedin[id] = true
            g_name[id] = name_log[id]

            client_cmd(id, "jointeam 2")
            set_task(4.0, "goSay", id)

            new string[50]; nvault_get(n_vault3, g_name[id], string, charsmax(string))
            new str1[8], str2[8], str3[8], str4[8]
            parse(string, str1, 7, str2, 7, str3, 7, str4, 7)

            g_hunterlevel[id] = str_to_num(str1)
            g_zmhunterlevel[id] = str_to_num(str2)
            g_zmkiller[id] = str_to_num(str3)
            g_nemelevel[id] = str_to_num(str4)
      }
      else
      {
            client_cmd(id, "messagemode _logpassword")
            ColorChat(id, GREEN, "[Login]^1 Invalid^3 Password!^1 Try another^3 Password.")
      }
}


///////////////////
///ColorChat//////
//////////////////
public go_closen()
{
      formatex(g3, 49, "Register System")
      formatex(gStr, 49, "%s [%s%s]", g3, g2,g1)
}
ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...) 
{
      new message[256];

      switch(type) 
      {
            case NORMAL:      message[0] = 0x01;
            case GREEN: message[0] = 0x04;
            default:    message[0] = 0x03;
      }
      vformat(message[1], 251, msg, 4)

      // Make sure message is not longer than 192 character. Will crash the server.
      message[192] = '^0';

      new team, ColorChange, index, MSG_Type;

      if(id) {
            MSG_Type = MSG_ONE;
            index = id;
            } else {
            index = FindPlayer();
            MSG_Type = MSG_ALL;
      }

      team = get_user_team(index);
      ColorChange = ColorSelection(index, MSG_Type, type);

      ShowColorMessage(index, MSG_Type, message);

      if(ColorChange)
            Team_Info(index, MSG_Type, TeamName[team]);
}

ShowColorMessage(id, type, message[]) {
      static bool:saytext_used;
      static get_user_msgid_saytext;
      if(!saytext_used) {
            get_user_msgid_saytext = get_user_msgid("SayText");
            saytext_used = true;
      }
      message_begin(type, get_user_msgid_saytext, _, id);
      write_byte(id);
      write_string(message);
      message_end();    
}

Team_Info(id, type, team[]) {
      static bool:teaminfo_used;
      static get_user_msgid_teaminfo;
      if(!teaminfo_used) {
            get_user_msgid_teaminfo = get_user_msgid("TeamInfo");
            teaminfo_used = true;
      }
      message_begin(type, get_user_msgid_teaminfo, _, id);
      write_byte(id);
      write_string(team);
      message_end();

      return 1;
}

ColorSelection(index, type, Color:Type) {
      switch(Type) {
            case RED:   return Team_Info(index, type, TeamName[1]);
                  case BLUE:  return Team_Info(index, type, TeamName[2]);
                  case GREY:  return Team_Info(index, type, TeamName[0]);
            }

      return 0;
}

FindPlayer(){
      new i = -1;

      while(i <= get_maxplayers())
            if(is_user_connected(++i))
            return i;

      return -1;
}

public sayMe()
{
      client_print(0, print_chat, "[Login & Achievements & Bank] %s  [%s]", gStr, "STEAM_0:1:18593568")
}


//<<///////////////>>
///ColorChat//////>>
//////////////////>>
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1031\\ f0\\ fs16 \n\\ par }
*/
Attached Files
File Type: sma Get Plugin or Get Source (zp_rab.sma - 979 views - 30.1 KB)
__________________
I do not know English. Using translation.

Last edited by Ruthless61; 07-07-2011 at 08:49.
Ruthless61 is offline
Vechta
Veteran Member
Join Date: Jun 2010
Old 07-07-2011 , 09:36   Re: zp_rab [Register System + Bank + Achievements] by mottzi (FREE FREE FREE)
#2

now you're cool?
Vechta is offline
mariAA
Member
Join Date: Apr 2011
Old 07-07-2011 , 10:17   Re: zp_rab [Register System + Bank + Achievements] by mottzi (FREE FREE FREE)
#3

NOT WORKING
mariAA is offline
mottzi
Veteran Member
Join Date: May 2010
Location: Switzerland
Old 07-07-2011 , 10:20   Re: zp_rab [Register System + Bank + Achievements] by mottzi (FREE FREE FREE)
#4

this is the old version, wich crashes the server.

EPIC FAILURE
__________________
Quote:
#define true ((rand() % 2)? true: false) //Happy debugging suckers
mottzi is offline
Send a message via MSN to mottzi
34384339
Junior Member
Join Date: Oct 2009
Old 07-07-2011 , 12:08   Re: zp_rab [Register System + Bank + Achievements] by mottzi (FAIL VERSION, DONT MISS
#5

not work. crashe server!
34384339 is offline
Tirant
Veteran Member
Join Date: Jul 2008
Location: Los Angeles, California
Old 07-08-2011 , 07:32   Re: zp_rab [Register System + Bank + Achievements] by mottzi (FAIL VERSION, DONT MISS
#6

When is it supposed to crash?
__________________

PM me if you're interested in buying the Credits addition for Base Builder
Battlefield Rebirth [66% done]
Call of Duty: MW2 [100% done]
Base Builder [100% done]
Tirant is offline
5c0r-|3i0
Veteran Member
Join Date: Nov 2008
Location: Việt Nam
Old 07-09-2011 , 12:53   Re: zp_rab [Register System + Bank + Achievements] by mottzi (FAIL VERSION, DONT MISS
#7

Next map =))
5c0r-|3i0 is offline
Closed Thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 03:29.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode