Essa sma fazera comprar arqueiro e jason dos novos mod, nao fiz apenas editei ^^
vou termina de fazer os outros

Código:

    #include <amxmodx>
    #include <zombieplague>
    #include <zmvip>

    #define PLUGIN "[ZP] Jason e Arqueiro "
    #define VERSION "1.1"
    #define AUTHOR "aaarnas"

    new g_msgSayText
    new jason, arqueiro
    new g_bought[33], bought
    new cvar_n_price, cvar_s_price, cvar_limit_all, cvar_everytime, cvar_show_bought, cvar_allow_times

    public plugin_init() {
       register_plugin(PLUGIN, VERSION, AUTHOR)
       cvar_everytime = register_cvar("zp_allow_buy", "0")      // 0 - Comprar antes da infeccao, 1 - Comprar depois da infeccao, 2 - Comprar em nemhuma ocasiao
       cvar_allow_times = register_cvar("zp_allow_times", "2")   // Limite de compras por mapa
       cvar_limit_all = register_cvar("zp_limit_for_all", "1")   // Eu acho que eh quantos players pode comprar por round
       cvar_n_price = register_cvar("zp_jason_price", "100")      // Preco do jason
       cvar_s_price = register_cvar("zp_arqueiro_price", "130")      // Preco do arqueiro
       cvar_show_bought = register_cvar("zp_show_who_bought", "1")   // Mostrar quem comprou o que (0 - Desligado, 1 - Ligado)
      
       g_msgSayText = get_user_msgid("SayText")
      
       // Extra items
       jason = zv_register_extra_item("Comprar Jason", "Vai matar geral?by Lucas CB", get_pcvar_num(cvar_n_price), 0)
       arqueiro = zv_register_extra_item("Comprar Arqueiro","Mate todos. By Lucas CB", get_pcvar_num(cvar_s_price), 0)
    }

    public zp_round_ended()
       bought = false

    public zv_extra_item_selected(id, itemid) {
      
       new value = get_pcvar_num(cvar_everytime)
      
       if(itemid == jason) {
          
          if(get_pcvar_num(cvar_limit_all) && bought) {
             client_printcolor(id, "/g[ZP] /yNao pode comprar mais nada nesse round. Tente no proximo.")
             return ZV_PLUGIN_HANDLED
          }
          if(g_bought[id] >= get_pcvar_num(cvar_allow_times)) {
             client_printcolor(id, "/g[ZP] /yVoce nao pode compra mais nada porque ja compraram %d mods. Agora so no proximo mapa", get_pcvar_num(cvar_allow_times))
             return ZV_PLUGIN_HANDLED
          }
          if(value == 2) {
             zp_make_user_jason(id)
             new name[64]
             get_user_name(id, name, 63)
             client_printcolor(0, "/g[ZP] /yO Jogador VIP /g%s /yComprou Jason", name)
             g_bought[id]++
          }
          else if(zp_has_round_started() == value) {
             zp_make_user_jason(id)
             if(get_pcvar_num(cvar_show_bought)) {
                new name[64]
                get_user_name(id, name, 63)
                client_printcolor(0, "/g[ZP] /yO Jogador VIP /g%s /yComprou Jason", name)
                g_bought[id]++
                bought = true
             }
          }
          else {
             client_printcolor(id, "/g[ZP] /yVoce so pode comprar Jason %s.", value ? "Depois da Infeccao":"Antes da Infeccao")
             return ZV_PLUGIN_HANDLED
          }
       }
       else if(itemid == arqueiro) {
          
          if(get_pcvar_num(cvar_limit_all) && bought) {
             client_printcolor(id, "/g[ZP] /yNao pode comprar mais nada nesse round. Tente no proximo.")
             return ZV_PLUGIN_HANDLED
          }
          if(g_bought[id] >= get_pcvar_num(cvar_allow_times)) {
             client_printcolor(id, "/g[ZP] /yVoce nao pode compra mais nada porque ja compraram %d mods. Agora so no proximo mapa.", get_pcvar_num(cvar_allow_times))
             return ZV_PLUGIN_HANDLED
          }
          if(value == 2) {
             zp_make_user_arqueiro(id)
             new name[64]
             get_user_name(id, name, 63)
             client_printcolor(0, "/g[ZP] /yO Jogador VIP /g%s /yComprou Arqueiro", name)
             g_bought[id]++
          }
          else if(zp_has_round_started() == value) {
             zp_make_user_arqueiro(id)
             if(get_pcvar_num(cvar_show_bought)) {
                new name[64]
                get_user_name(id, name, 63)
                client_printcolor(0, "/g[ZP] /yO Jogador VIP /g%s /yComprou Arqueiro", name)
                g_bought[id]++
                bought = true
             }
          }
          else {
             client_printcolor(id, "/g[ZP] /yVoce so pode comprar Arqueiro %s.", value ? "Depois da Infeccao":"Antes da Infeccao")
             return ZV_PLUGIN_HANDLED
          }
       }
       return 1
    }

    stock client_printcolor(const id, const input[], any:...)
    {
       new iCount = 1, iPlayers[32]
      
       static szMsg[191]
       vformat(szMsg, charsmax(szMsg), input, 3)
      
       replace_all(szMsg, 190, "/g", "^4") // green txt
       replace_all(szMsg, 190, "/y", "^1") // orange txt
       replace_all(szMsg, 190, "/ctr", "^3") // team txt
       replace_all(szMsg, 190, "/w", "^0") // team txt
      
       if(id) iPlayers[0] = id
       else get_players(iPlayers, iCount, "ch")
          
       for (new i = 0; i < iCount; i++)
       {
          if (is_user_connected(iPlayers[i]))
          {
             message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, iPlayers[i])
             write_byte(iPlayers[i])
             write_string(szMsg)
             message_end()
          }
       }
    }