It is currently 24 Feb 2019 03:39






Reply to topic  [ 1 post ] 
 [ZP] Zombie VIP 1.7.2 
Author Message
Online
Moderator
Moderator
User avatar

Joined: 21 Jul 2015 18:50
Posts: 2573
Location: Bucuresti
Detinator Steam: Da
CS Status: Busy
Detinator server CS: ---
Reputatie: Moderator
Manager ZM
Fost Membru Club eXtreamCS (trei luni)
1 / 3
Fond eXtream: 0
Descriere: Este versiunea mai veche a pluginului asta , acesta este mai stabil,eu il recomand.


Descarcare: click sau
vips.ini | Afiseaza codul
; ZM VIP's configuration file

; Line starting with ; is a comment, and will not be read by system.

; Plugin flags:
; a - main vip functions
; b - multi-jump
; c - unlimited clip
; d - damage increase (zp_vip_damage_increase)
; e - access to vips's extra items buy menu

; Account flags:
; a - disconnect player on invalid password
; b - clan tag
; c - this is steamid/wonid
; d - this is ip
; e - password is not checked (only name/ip/steamid needed)
; k - name or tag is case sensitive. eg: if you set it so the name "Ham"
; is protected and case sensitive (flags "k" only), then anybody
; can use the names "haM", "HAM", "ham", etc, but not "Ham"

; Password:
; Add to your autoexec.cfg (or type into console): setinfo _pw "<password>"

; Format of admin account:
; <name|ip|steamid> <password> <plugin flags> <account flags>

; Examples of VIP accounts:
; "STEAM_0:0:123456" "" "ab" "ce" // Steam account with whole functions
; "My Game Nickname" "zombie" "a" "ab" // VIP by nick and password (zombie), only with main vip functions
; "00.00.00.00" "" "b" "de" // VIP by IP adres, only with multi-jump

;"aaarnas" "his_pass" "abcde" "ab" - Example

zm_vip.cfg | Afiseaza codul
//--------------------------------
// ZM_VIP v1.7.2 cvars file
// Author: aaarnas
//--------------------------------
// Changes loads only on server mapchange/restart/start.

// Base plugin cvars

zp_vip_jumps 1 // How many jumps can player do in air.
zp_vip_allow_jump ab // Allow multi-jump: a-human. b-zombie, c-survivor, d-nemesis. Write letters of classes witch you want to affect.
zp_vip_armor 65 // How much armour humans gets every spawn, [0-off]
zp_vip_killammo 2 // Extra ammo for kills [zombies and humans], [0-off]
zp_vip_infectammo 2 // Extra ammo for infecting humans [zombies], [0-off]
zp_vip_infecthealth 300 // Extra health witch zombies gets when infecting humans [0-off]
zp_vip_nemextra 1 // 1 - ignore extra health (zp_vip_infecthealth) for nemesis [0-don't ignore]
zp_vip_show 1 // Show connecting vips (in chat) [0-off]
zp_vip_unlimited_ammo 0 // 1 - Give vips unlimited clip for all guns [0-off]
zp_vip_no_fall_damage 1 // 1 - Disables fall damage for vips [0-off]
zp_vip_damage_reward 1000 // Damage done to get 1 ammo pack [0-off]. IMPORTANT: ZP mod always givving ammo in this type(If enabled). This cvar is seperate from main mod, so vips gets x2 ammo packs. One from mod, other from this plugin.
zp_vip_damage_increase 1.5 // How much increase humans attack demage (damage*cvar). [1.0 - off]
zp_vip_happy_hour off // Enables Happy Hour. Example: (zp_vip_hour 03-13) from 3h night, to 13h day. ['off' - off]
zp_vip_happy_hour_frag 1 // Gives extra frag for kills and infect
zp_vip_happy_hour_ammo 1 // Gives extra ammo packet for infect and kills
zp_vip_nonvip_tease 1 // Let non vip player open /vm menu, but they can't buy anything.

// MODE 2 cvars (they will work only then MODE is set to 2 or 3)

zp_vip_register_in_zp_extra 1 // Show VIP menu in Zombie Plague Extra items menu [0-off]
zp_vip_menu_close 1 // 1-will close menu, after extra item bought, 0 - don't
zp_vip_hour off // Gives vips for all players. Example: (zp_vip_hour 03-13) from 3h night, to 13h day all will get a free vip. ['off' - off]
zp_vip_hour_flags abe // Flags witch player gets (zp_vip_hour) active (check vips.ini)

// MODE 3 cvars (they will work only then MODE is set to 3)

zp_vip_cost_ammo 50 // How much ammo will cost VIP, if buying it from extra items menu [0-just opens menu, when select "VIP Menu".]
zp_vip_buy_time 2 // days how long (days) players will have vip, when bought it for ammo. 0 - forever
zp_vip_buy_flags abcde // Flags witch player gets when buying vip (check vips.ini)

zm_vip.txt Acest fisier il puneti in addons/amxmodx/data/lang | Afiseaza codul
[en]
VIP_EXTRA_NAME = *VIP* Extra Items
INV_PAS = Ivalid (setinfo _pw) password!
AUTHORISED = %s become VIP. (SteamID: ^"%s^") (IP: ^"%s^") (Flags: ^"%s^")
VIP_CONNECTED = V.I.P player %s connected
VIP_STATUS_CON = Admin contacts -- %s
VIP_STATUS_N = No one
VIP_STATUS = Connected VIPS:
MISSING_AMMO = Missing %d ammo packs to buy it.
NO_ITEMS = There is no extra items for your class.
NOT_A_VIP = You are not a VIP member.
OFF = Not loaded any zm_vip plugins.
BOUGHT_VIP = You sucessfully bought VIP for %d days.

MENU_TOP = VIP's extra items:
AMMO = ammo
NEXT = Next
BACK = Back
EXIT = Exit

BUY_MENU_TOP = \yPrice \r%d \yammo packs. Time - \r%d \ydays.^nChoose your authentication type:
BUY_MENU_TYPE1 = Nick + Password\r(settings)
BUY_MENU_TYPE2 = SteamID\r(buy)
BUY_MENU_TYPE3 = IP adress\r(buy)

NICK_BUY_MENU_TOP = After bought, you can't change your nick!^nYour config.cfg file can't be cheked as 'read only'!^n\yYour password: \w%s
NICK_BUY_MENU_TYPE1 = Generate random
NICK_BUY_MENU_TYPE2 = How to change password?
NICK_BUY_MENU_TYPE3 = Everything is ok, buy it \r[\y%d \rammo packs. For \y%d\r days]

NICK_BUY_MENU_SEC_TOP = \yIf you want to set a password, type \rsetinfo _pw password\y in the console^nPassword you can type any what you want.

[lt]
VIP_EXTRA_NAME = Papildomi *VIP* pirkiniai
INV_PAS = Neteisingas (setinfo _pw) slaptažodis!
AUTHORISED = %s prisijungė kaip VIP narys. (SteamID: ^"%s^") (IP: ^"%s^") (teisės: ^"%s^")
VIP_CONNECTED = V.I.P žaidėjas %s prisijungė
VIP_STATUS_CON = Administratoriaus kontaktai -- %s
VIP_STATUS_N = Nėra
VIP_STATUS = Prisijungę VIP:
MISSING_AMMO = Trūksta %d šoviniu paketų, kad nusipirkti tai.
NO_ITEMS = Nėra papildomų pirkinių jūsų klasei.
NOT_A_VIP = Jūs nesate VIP narys.
OFF = Neužkrauti papildomi zm_vip pluginai.
BOUGHT_VIP = Jus sėkmingai nusipirkote VIP privilegiją %d dienoms.

MENU_TOP = Papildomi *VIP* pirkiniai:
AMMO = ammo
NEXT = Toliau
BACK = Atgal
EXIT = Išeiti

BUY_MENU_TOP = \yKaina \r%d \yšovinių paketų. Laikotarpis \r%d \ydienos.^nPasirinkite atpažinimo tipą:
BUY_MENU_TYPE1 = Nikas + Slaptažodis\r(nustatymai)
BUY_MENU_TYPE2 = SteamID\r(pirkti)
BUY_MENU_TYPE3 = IP adresas\r(pirkti)

NICK_BUY_MENU_TOP = Nusipirkus nebus galima keisti niko!^nJusu config.cfg failas neturi buti pažymetas 'read only'!^n\yJūsų slaptažodis: \w%s
NICK_BUY_MENU_TYPE1 = Generuoti atsitiktinį
NICK_BUY_MENU_TYPE2 = Kaip pasikeisti slaptažodį?
NICK_BUY_MENU_TYPE3 = Viskas gerai, pirkti \r[\y%d \ršoviniu paketų. \y%d\r dienoms]

NICK_BUY_MENU_SEC_TOP = \yKad nustatyti slaptažodį, į konsolę rašykite \rsetinfo _pw slaptažodis^n\ySlaptažodi galite rašyti kokį norite.

zmvip.inc | Afiseaza codul
/******************************************************************

Zm VIP for Zombie Plague 4.3
Author: aaarnas

*******************************************************************

This (zm vip) plugin uses it's own extra
items simmilar like in main mod(Zombie Plague).
There are the main natives/forward witch required to
register extra items plugins on this zm vip plugin.

Also it's has own authentication system (If MODE 1 is on)
Use native zv_get_user_flags(id) to check player flags in
other plugins:

#include <zmvip>

public function()
{
if(zv_get_user_flags(id) > 0) // Checks if player has any vip privilegies.
if(zv_get_user_flags(id) & ZV_MAIN) // Checks if player has specific privilegie.
}

*******************************************************************/
#if defined _zmvip_included
#endinput
#endif

#define _zmvip_included

#define ZV_PLUGIN_HANDLED 97

/* Flags */
#define ZV_MAIN (1<<0)
#define ZV_MULTI (1<<1)
#define ZV_UNLIMITED (1<<2)
#define ZV_DAMAGE (1<<3)

/* Teams */
#define ZV_TEAM_ZOMBIE (1<<0)
#define ZV_TEAM_HUMAN (1<<1)
#define ZV_TEAM_NEMESIS (1<<2)
#define ZV_TEAM_SURVIVOR (1<<3)


/* Natives */

/* Registers extra items on this plugin for VIPs (Only if MODE 2 is active)
*
* @param name Extra item name.
* @param discription Extra item discription (simmilar like zombie class discription).
* @param cost How much ammo packs will cost this item for player.
* @param team Teams allowed to buy this item. (0 for all teams)
* @return Extra item id.
*/
native zv_register_extra_item(const name[], const discription[], cost, team)

/* Gets user flags (Only if MODE 1 is active)
*
* @param id Player index.
* @return Player flags.
*/
native zv_get_user_flags(id)


/* Forwards */

/* Called then player selects extra item in his VIP meniu. (Only if MODE 2 is active)
*
* You can stop player of buing item returning ZV_PLUGIN_HANDLED.
* Player will be refunded automaticaly
*
* @param id Player index.
* @param itemid Extra item id, witch player bought.
*/
forward zv_extra_item_selected(id, itemid)

zm_vip.sma | Afiseaza codul
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <zombieplague>

////////// PLUGIN SETTINGS //////////
#define MODE 3
#define CHAT_PREFIX "[VIP]"

// (Only if MODE 1 is turrned OFF. Otherwise set flags in vips.ini.) //
#define VIPACCES ADMIN_LEVEL_H
#define MJACCES ADMIN_LEVEL_H
////////// SETTINGS END //////////

// Flags
#define FLAG_A (1<<0)
#define FLAG_B (1<<1)
#define FLAG_C (1<<2)
#define FLAG_D (1<<3)
#define FLAG_E (1<<4)
#define FLAG_K (1<<10)

#define VERSION "1.7.2"

#if cellbits == 32
const OFFSET_CLIPAMMO = 51
#else
const OFFSET_CLIPAMMO = 65
#endif
const OFFSET_LINUX_WEAPONS = 4

const DMG_HEGRENADE = (1<<24)

#define set_flood(%1,%2) (%1 |= (1<<(%2&31)))
#define clear_flood(%1,%2) (%1 &= ~(1<<(%2&31)))
#define get_flood(%1,%2) (%1 & (1<<(%2&31)))

#if MODE & (1<<0) || MODE & (1<<1)
new amx_password_field_string[30]
#endif
#if MODE & (1<<0)
new g_user_privileges[33]
enum _:database_items
{
auth[50],
password[50],
accessflags,
flags
}
new vips_database[database_items]
new Array:database_holder
new g_hour_flags
new g_hour
#endif
#if MODE & (1<<1)
const ZV_PLUGIN_HANDLED = 97
enum _:items
{
i_name[31],
i_description[31],
i_cost,
i_team
}
new g_register_in_zp_extra
new g_zp_extra_item_number
new g_nonvip_tease
new g_menu_close
new extra_items[items]
new Array:items_database
new g_registered_items_count
new g_forward_return
new g_extra_item_selected
new g_team[33]
#endif
#if MODE == 3
new g_vip_buy_time
new g_vip_cost_ammo
new g_vip_buy_flags
#endif
new const MAXCLIP[] = { -1, 13, -1, 10, 1, 7, -1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 }
static const CONTACT[] = ""
new g_jumps, g_allow_jump, g_armor, g_killammo, g_infectammo, g_infecthealth, g_nemhealth, g_show_vips,
g_unlimited_clip, g_fall_damage, g_damage_reward, g_damage_increase, g_happy_hour, g_happy_hour_frag, g_happy_hour_ammo
new happy_hour_on
new g_bit
new chache_g_jumps
new maxplayers, g_msgSayText
new jumpnum[33]
new bool:dojump[33]
new Float:g_damage[33]

public plugin_init() {

register_plugin("ZM VIP", VERSION, "aaarnas")
RegisterHam(Ham_Spawn, "player", "FwdHamPlayerSpawnPost", 1)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", 1)
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
register_event("ResetHUD", "HUDReset", "be")
register_event("HLTV", "chache_cvars", "a", "1=0", "2=0")

maxplayers = get_maxplayers()
g_msgSayText = get_user_msgid("SayText")

register_message(get_user_msgid("CurWeapon"), "message_cur_weapon")

g_jumps = register_cvar("zp_vip_jumps", "1")
g_allow_jump = register_cvar("zp_vip_allow_jump", "ab")
g_armor = register_cvar("zp_vip_armor", "65")
g_killammo = register_cvar("zp_vip_killammo", "2")
g_infectammo = register_cvar("zp_vip_infectammo", "2")
g_infecthealth = register_cvar("zp_vip_infecthealth", "300")
g_nemhealth = register_cvar("zp_vip_nemextra", "1")
g_show_vips = register_cvar("zp_vip_show", "1")
g_unlimited_clip = register_cvar("zp_vip_unlimited_ammo", "0")
g_fall_damage = register_cvar("zp_vip_no_fall_damage", "1")
g_damage_reward = register_cvar("zp_vip_damage_reward", "500")
g_damage_increase = register_cvar("zp_vip_damage_increase", "1.5")
g_happy_hour = register_cvar("zp_vip_happy_hour", "off")
g_happy_hour_frag = register_cvar("zp_vip_happy_hour_frag", "1")
g_happy_hour_ammo = register_cvar("zp_vip_happy_hour_ammo", "1")
register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
register_cvar("zp_vip_version", VERSION, FCVAR_SERVER|FCVAR_SPONLY)
set_cvar_string("zp_vip_version", VERSION)

#if MODE & (1<<0) || MODE & (1<<1)
get_cvar_string("amx_password_field", amx_password_field_string, charsmax(amx_password_field_string))
register_dictionary("zm_vip.txt")
#endif
#if MODE & (1<<0) && MODE & (1<<1)
g_vip_cost_ammo = register_cvar("zp_vip_cost_ammo", "0")
g_vip_buy_time = register_cvar("zp_vip_buy_time", "7")
g_vip_buy_flags = register_cvar("zp_vip_buy_flags", "abcd")
set_task(5.0,"check_date",0)
#endif
#if MODE & (1<<0)
register_concmd("amx_reloadvips", "reload_vips", ADMIN_CFG)
g_hour = register_cvar("zp_vip_hour", "off")
g_hour_flags = register_cvar("zp_vip_hour_flags", "abe")
reload_vips()
#endif
#if MODE & (1<<1)
register_clcmd("say /vm", "menu_open")
g_nonvip_tease = register_cvar("zp_vip_nonvip_tease", "1")
g_register_in_zp_extra = register_cvar("zp_vip_register_in_zp_extra", "1")
g_menu_close = register_cvar("zp_vip_menu_close", "1")

new temp[31]
formatex(temp, 30, "%L", LANG_SERVER, "VIP_EXTRA_NAME")
if(get_pcvar_num(g_register_in_zp_extra)) g_zp_extra_item_number = zp_register_extra_item(temp, 0, 0)
g_extra_item_selected = CreateMultiForward("zv_extra_item_selected", ET_CONTINUE, FP_CELL, FP_CELL)
#endif
register_clcmd("say /vips", "print_adminlist")
register_clcmd("say /vip", "ShowMotd")
}
public plugin_cfg()
{
new directory[31]
get_configsdir(directory, 30)
server_cmd("exec %s/zm_vip.cfg", directory)
}

public chache_cvars() {

static string[5]
get_pcvar_string(g_allow_jump, string, charsmax(string))
g_bit = read_flags(string)
chache_g_jumps = get_pcvar_num(g_jumps)

static hours[6], hour1s[3], hour2s[3], hour1, hour2, h, m, s
get_pcvar_string(g_happy_hour, hours, charsmax(hours))

if(equal(hours, "off")) {happy_hour_on = false; return; }

strtok(hours, hour1s, charsmax(hour1s), hour2s, charsmax(hour2s), '-')
hour1 = str_to_num(hour1s)
hour2 = str_to_num(hour2s)

time(h, m, s)
if(hour1 <= h <= hour2) happy_hour_on = true
else happy_hour_on = false
}
#if MODE & (1<<1) || MODE & (1<<0)
public plugin_natives() {
#if MODE & (1<<1)
register_native("zv_register_extra_item", "native_zv_register_extra_item", 1)
#endif
#if MODE & (1<<0)
register_native("zv_get_user_flags", "native_zv_get_user_flags", 1)
#endif
}
#endif
public FwdHamPlayerSpawnPost(id) {

if(!is_user_alive(id)) return HAM_IGNORED;
#if MODE & (1<<0)
if(!(g_user_privileges[id] & FLAG_A))
#else
if(!(get_user_flags(id) & VIPACCES))
#endif
return PLUGIN_HANDLED;

if(pev(id, pev_armorvalue) < get_pcvar_num(g_armor))
set_pev(id, pev_armorvalue, float(get_pcvar_num(g_armor)))
return HAM_IGNORED;
}

public fw_PlayerKilled_Post(victim, attacker) {
#if MODE & (1<<0)
if(1 <= attacker <= maxplayers && g_user_privileges[attacker] & FLAG_A) {
#else
if(1 <= attacker <= maxplayers && get_user_flags(attacker) & VIPACCES) {
#endif
if(is_user_alive(attacker) && zp_get_user_zombie(attacker) && !(zp_get_user_nemesis(attacker) && get_pcvar_num(g_nemhealth))) set_user_health(attacker, (get_user_health(attacker) + get_pcvar_num(g_infecthealth)))
zp_set_user_ammo_packs(attacker, zp_get_user_ammo_packs(attacker) + get_pcvar_num(g_killammo))

if(happy_hour_on) {

static frag, ammo
frag = get_pcvar_num(g_happy_hour_frag)
ammo = get_pcvar_num(g_happy_hour_ammo)

if(frag) set_user_frags(attacker, get_user_frags(attacker)+frag)
if(ammo) zp_set_user_ammo_packs(attacker, zp_get_user_ammo_packs(attacker)+ammo)
}

}
}

public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) {

if(victim == attacker)
return HAM_IGNORED

if(damage_type & DMG_HEGRENADE)
return HAM_IGNORED

#if MODE & (1<<0)
if(g_user_privileges[victim] & FLAG_A) {
#else
if(get_user_flags(victim) & VIPACCES) {
#endif
if(damage_type & DMG_FALL && get_pcvar_num(g_fall_damage))
return HAM_SUPERCEDE;
}

if(!is_user_connected(attacker))
return HAM_IGNORED

if(zp_get_user_zombie(attacker) || zp_get_user_survivor(attacker))
return HAM_IGNORED

#if MODE & (1<<0)
if(g_user_privileges[attacker] & FLAG_D) {
#else
if(get_user_flags(attacker) & VIPACCES) {
#endif
damage *= get_pcvar_float(g_damage_increase)
SetHamParamFloat(4, damage)
}

#if MODE & (1<<0)
if(g_user_privileges[attacker] & FLAG_D) {
#else
if(get_user_flags(attacker) & VIPACCES) {
#endif
if(get_pcvar_num(g_damage_reward) > 0) {
g_damage[attacker]+=damage
if(g_damage[attacker] > get_pcvar_float(g_damage_reward)) {
zp_set_user_ammo_packs(attacker, zp_get_user_ammo_packs(attacker)+1)
g_damage[attacker] -= get_pcvar_float(g_damage_reward)
}
}
}

return HAM_IGNORED
}

public zp_user_infected_post(id, infector, nemesis) {

setVip()
if(!(1<=infector<=maxplayers)) return;

#if MODE & (1<<0)
if(g_user_privileges[infector] & FLAG_A) {
#else
if(get_user_flags(infector) & VIPACCES) {
#endif
if(is_user_alive(infector)) set_user_health(infector, (get_user_health(infector) + get_pcvar_num(g_infecthealth)))
zp_set_user_ammo_packs(infector, zp_get_user_ammo_packs(infector) + get_pcvar_num(g_infectammo))

if(happy_hour_on) {

static frag, ammo
frag = get_pcvar_num(g_happy_hour_frag)
ammo = get_pcvar_num(g_happy_hour_ammo)

if(frag) set_user_frags(infector, get_user_frags(infector)+frag)
if(ammo) zp_set_user_ammo_packs(infector, zp_get_user_ammo_packs(infector)+ammo)
}
}
}

public client_connect(id) {

jumpnum[id] = 0
g_damage[id] = 0.0
dojump[id] = false
#if MODE & (1<<0)
set_flags(id)
if(get_pcvar_num(g_show_vips) == 1 && g_user_privileges[id] & FLAG_A) {
#else
if(get_pcvar_num(g_show_vips) == 1 && get_user_flags(id) & VIPACCES) {
#endif
new name[100]
get_user_name(id, name, 100)
client_printcolor(0, "/g%L", LANG_PLAYER, "VIP_CONNECTED", name)
}
#if MODE & (1<<0)
else {
static hours[6], hour1s[3], hour2s[3], hour1, hour2, h, m, s
get_pcvar_string(g_hour, hours, charsmax(hours))

if(equal(hours, "off")) return;

strtok(hours, hour1s, charsmax(hour1s), hour2s, charsmax(hour2s), '-')
hour1 = str_to_num(hour1s)
hour2 = str_to_num(hour2s)

time(h, m, s)
if(hour1 <= h <= hour2) {

new fflags[10]
get_pcvar_string(g_hour_flags, fflags, charsmax(fflags))
g_user_privileges[id] = read_flags(fflags)
}
}
#endif
}
#if MODE & (1<<1)
public zp_extra_item_selected(id, item_id)
if(item_id == g_zp_extra_item_number)
menu_open(id)

public menu_open(id) {
#if MODE & (1<<0)
if(g_user_privileges[id] & FLAG_E)
vip_menu(id)
#else
if(get_user_flags(id) & VIPACCES)
vip_menu(id)
#endif
#if MODE & (1<<0)
else if(get_pcvar_num(g_vip_cost_ammo) != 0)
get_pcvar_num(g_nonvip_tease) ? vip_menu(id) : buy_meniu(id)
#endif
else client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "NOT_A_VIP")
return ZP_PLUGIN_HANDLED
}

public vip_menu(id)
{
if(g_registered_items_count == 0) {
client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "OFF")
return;
}
new holder[150], menu
formatex(holder, charsmax(holder), "\r%L", id, "MENU_TOP")
menu = menu_create(holder, "vip_menu_handler")
new i, team_check, num[3], ammo_packs, check
check = 0
ammo_packs = zp_get_user_ammo_packs(id)

switch(zp_get_user_zombie(id)) {

case 0: {
if(zp_get_user_survivor(id)) team_check = ZP_TEAM_SURVIVOR
else team_check = ZP_TEAM_HUMAN
}
case 1: {
if(zp_get_user_nemesis(id)) team_check = ZP_TEAM_NEMESIS
else team_check = ZP_TEAM_ZOMBIE
}
}

if(zp_get_user_zombie(id) && !zp_get_user_nemesis(id)) team_check |= FLAG_A
else if(!zp_get_user_zombie(id)) team_check |= FLAG_B
else if(zp_get_user_nemesis(id)) team_check |= FLAG_C
else if(zp_get_user_survivor(id)) team_check |= FLAG_D
g_team[id] = team_check
for(i=0; i < g_registered_items_count; i++) {
ArrayGetArray(items_database, i, extra_items)
if(extra_items[i_team] == 0 || g_team[id] & extra_items[i_team]) {
formatex(holder, charsmax(holder), "%s \r[%s] %s[%d %L]", extra_items[i_name], extra_items[i_description], ammo_packs < extra_items[i_cost] ? "\r" : "\y", extra_items[i_cost], id, "AMMO")
formatex(num, 2, "%d", i)
menu_additem(menu, holder, num, 0)
check++
}
}
if(check == 0) {
client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "NO_ITEMS")
return;
}
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
formatex(holder, charsmax(holder), "%L", id, "NEXT")
menu_setprop(menu, MPROP_NEXTNAME, holder)
formatex(holder, charsmax(holder), "%L", id, "BACK")
menu_setprop(menu, MPROP_BACKNAME, holder)
formatex(holder, charsmax(holder), "%L", id, "EXIT")
menu_setprop(menu, MPROP_EXITNAME, holder)
menu_display(id, menu, 0)
}

public vip_menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

#if MODE & (1<<0)
if(get_pcvar_num(g_nonvip_tease) && !(g_user_privileges[id] & FLAG_A)) {
#if MODE & (1<<0)
buy_meniu(id)
#else
client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "NOT_A_VIP")
#endif
menu_destroy(menu)
return PLUGIN_HANDLED;
}
#else
if(get_pcvar_num(g_nonvip_tease) && !(get_user_flags(id) & VIPACCES)) {
#if MODE & (1<<0)
buy_meniu(id)
#else
client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "NOT_A_VIP")
#endif
menu_destroy(menu)
return PLUGIN_HANDLED;
}
#endif
new team_check
switch(zp_get_user_zombie(id)) {

case 0: {
if(zp_get_user_survivor(id)) team_check = ZP_TEAM_SURVIVOR
else team_check = ZP_TEAM_HUMAN
}
case 1: {
if(zp_get_user_nemesis(id)) team_check = ZP_TEAM_NEMESIS
else team_check = ZP_TEAM_ZOMBIE
}
}

if(g_team[id] != team_check) {

menu_destroy(menu)
vip_menu(id)
return PLUGIN_HANDLED;
}

new data[6], iName[64], item_id, ammo_packs
new aaccess, callback
menu_item_getinfo(menu, item, aaccess, data,5, iName, 63, callback)
item_id = str_to_num(data)
ammo_packs = zp_get_user_ammo_packs(id)
ArrayGetArray(items_database, item_id, extra_items)
if(ammo_packs >= extra_items[i_cost]) zp_set_user_ammo_packs(id, ammo_packs - extra_items[i_cost])
else {
client_printcolor(id, "/g%s %L", CHAT_PREFIX, id, "MISSING_AMMO", extra_items[i_cost]-ammo_packs)
if(g_menu_close) menu_destroy(menu)
else vip_menu(id)
return PLUGIN_HANDLED
}
item_id++
ExecuteForward(g_extra_item_selected, g_forward_return, id, item_id)
if (g_forward_return >= ZV_PLUGIN_HANDLED)
zp_set_user_ammo_packs(id, ammo_packs)

if(!g_menu_close) vip_menu(id)

menu_destroy(menu)
return PLUGIN_HANDLED
}
#endif
#if MODE & (1<<0) && MODE & (1<<1)
public buy_meniu(id)
{
new holder[150], menu
formatex(holder, charsmax(holder), "\r%L", id, "BUY_MENU_TOP", get_pcvar_num(g_vip_cost_ammo), get_pcvar_num(g_vip_buy_time))
menu = menu_create(holder, "buy_menu_handler")
new callback = menu_makecallback("_menu_callback")
formatex(holder, charsmax(holder), "%L", id, "BUY_MENU_TYPE1")
menu_additem(menu, holder)
formatex(holder, charsmax(holder), "%L", id, "BUY_MENU_TYPE2")
menu_additem(menu, holder, _, _, callback)
formatex(holder, charsmax(holder), "%L", id, "BUY_MENU_TYPE3")
menu_additem(menu, holder)

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
formatex(holder, charsmax(holder), "%L", id, "EXIT")
menu_setprop(menu, MPROP_EXITNAME, holder)
menu_display(id, menu, 0)
}

public buy_menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new ammo_packs = zp_get_user_ammo_packs(id)
if(item > 0) {
if(ammo_packs >= get_pcvar_num(g_vip_cost_ammo)) {
amx_tempadmin(id, item)
zp_set_user_ammo_packs(id, ammo_packs - get_pcvar_num(g_vip_cost_ammo))
client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "BOUGHT_VIP", get_pcvar_num(g_vip_buy_time))

}
else client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "MISSING_AMMO", get_pcvar_num(g_vip_cost_ammo)-ammo_packs)
}
else {
nick_buy_meniu(id)
return PLUGIN_HANDLED
}

menu_destroy(menu)
return PLUGIN_HANDLED
}

public nick_buy_meniu(id)
{
new buttons_string[16], menu_string[151], menu_item[81], menu, client_password[20]
get_user_info(id, amx_password_field_string, client_password, charsmax(client_password))
formatex(menu_string, 150, "\r%L", id, "NICK_BUY_MENU_TOP", client_password)
menu = menu_create(menu_string, "nick_buy_menu_handler")

formatex(menu_item, 80, "%L", id, "NICK_BUY_MENU_TYPE1")
menu_additem(menu, menu_item)
formatex(menu_item, 80, "%L", id, "NICK_BUY_MENU_TYPE2")
menu_additem(menu, menu_item)
formatex(menu_item, 80, "%L", id, "NICK_BUY_MENU_TYPE3", get_pcvar_num(g_vip_cost_ammo) ,get_pcvar_num(g_vip_buy_time))
menu_additem(menu, menu_item)

menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
formatex(buttons_string, 15, "%L", id, "BACK")
menu_setprop(menu, MPROP_EXITNAME, buttons_string)
menu_display(id, menu, 0)

}

public nick_buy_menu_handler(id, menu, item)
{
if( item == MENU_EXIT )
{
buy_meniu(id)
return PLUGIN_HANDLED
}

switch(item) {
case 0: {
generate_password(id)
set_task(0.2, "menu_delay", id)
}
case 1: nick_buy_meniu_sec(id)
case 2: {

new ammo_packs = zp_get_user_ammo_packs(id)
if(ammo_packs >= get_pcvar_num(g_vip_cost_ammo)) {
amx_tempadmin(id, 0)
zp_set_user_ammo_packs(id, ammo_packs - get_pcvar_num(g_vip_cost_ammo))
client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "BOUGHT_VIP", get_pcvar_num(g_vip_buy_time))

}
else client_printcolor(id, "/g%s /y%L", CHAT_PREFIX, id, "MISSING_AMMO", get_pcvar_num(g_vip_cost_ammo)-ammo_packs)

menu_destroy(menu)
return PLUGIN_HANDLED
}
}

menu_destroy(menu)
return PLUGIN_HANDLED
}
public nick_buy_meniu_sec(id)
{
new holder[150], menu
formatex(holder, charsmax(holder), "\r%L", id, "NICK_BUY_MENU_SEC_TOP")
menu = menu_create(holder, "nick_buy_menu_sec_handler")

formatex(holder, charsmax(holder), "%L", id, "BACK")
menu_additem(menu, holder)

menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)
menu_display(id, menu, 0)
}

public nick_buy_menu_sec_handler(id, menu, item)
{
nick_buy_meniu(id)
menu_destroy(menu)
return PLUGIN_HANDLED;
}

public _menu_callback(id, menu, item) {

if(item == 1) {
new authid[30]
get_user_authid(id, authid, charsmax(authid))
if(equal(authid, "STEAM_0", 7)) return ITEM_ENABLED
else return ITEM_DISABLED
}

return ITEM_ENABLED
}

public menu_delay(id) nick_buy_meniu(id)
#endif
public message_cur_weapon(msg_id, msg_dest, msg_entity)
{
if (!get_pcvar_num(g_unlimited_clip)) return
#if MODE & (1<<0)
if (!(g_user_privileges[msg_entity] & FLAG_C)) return
#else
if (!(get_user_flags(msg_entity) & VIPACCES)) return
#endif
if (!is_user_alive(msg_entity) || get_msg_arg_int(1) != 1) return

static weapon, clip
weapon = get_msg_arg_int(2)
clip = get_msg_arg_int(3)

if (MAXCLIP[weapon] > 2)
{
set_msg_arg_int(3, get_msg_argtype(3), MAXCLIP[weapon])

if (clip < 2)
{
static wname[32], weapon_ent
get_weaponname(weapon, wname, sizeof wname - 1)
weapon_ent = find_ent_by_owner(-1, wname, msg_entity)
fm_set_weapon_ammo(weapon_ent, MAXCLIP[weapon])
}
}
}

public HUDReset()
setVip()

public setVip()
{
new players[32], pNum
get_players(players, pNum, "a")

for (new i = 0; i < pNum; i++)
{
new id = players[i]
#if MODE & (1<<0)
if (g_user_privileges[id] & FLAG_A)
#else
if (get_user_flags(id) & VIPACCES)
#endif
{
message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
write_byte(id)
write_byte(4)
message_end()
}
}
return PLUGIN_HANDLED
}

public print_adminlist(user)
{
new adminnames[33][32]
new message[256]
new contactinfo[256], contact[112]
new id, count, x, len

for(id = 1 ; id <= maxplayers ; id++)
if(is_user_connected(id))
#if MODE & (1<<0)
if(g_user_privileges[id] & FLAG_A)
#else
if(get_user_flags(id) & VIPACCES)
#endif
get_user_name(id, adminnames[count++], 31)

len = format(message, 255, "%L ", id, "VIP_STATUS")
if(count > 0) {
for(x = 0 ; x < count ; x++) {
len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
if(len > 96 ) {
client_printcolor(user, "/g%s", message)
len = format(message, 255, "")
}
}
client_printcolor(user, "/g%s", message)
}
else {
len += format(message[len], 255-len, "%L ", id, "VIP_STATUS_N")
client_printcolor(user, "/g%s", message)
}

get_cvar_string("amx_contactinfo", contact, 63)
if(contact[0]) {
format(contactinfo, 111, "%L ", id, "VIP_STATUS_CON", contact)
client_printcolor(user, "/g%s", contactinfo)
}

}

public client_disconnect(id)
{
jumpnum[id] = 0
g_damage[id] = 0.0
dojump[id] = false
}

public client_PreThink(id)
{
#if MODE & (1<<0)
if(!is_user_alive(id) || !g_jumps || (!(g_user_privileges[id] & FLAG_B))) return PLUGIN_CONTINUE
#else
if(!is_user_alive(id) || !g_jumps || (!(get_user_flags(id) & MJACCES))) return PLUGIN_CONTINUE
#endif
static nbut, obut, fflags
nbut= get_user_button(id)
obut = get_user_oldbutton(id)
fflags = get_entity_flags(id)

if((nbut & IN_JUMP) && !(fflags & FL_ONGROUND) && !(obut & IN_JUMP))
{
if(jumpnum[id] < chache_g_jumps &&
((g_bit & FLAG_D && zp_get_user_nemesis(id)) ||
(g_bit & FLAG_C && zp_get_user_survivor(id)) ||
(g_bit & FLAG_A && !zp_get_user_zombie(id)) ||
(g_bit & FLAG_B && zp_get_user_zombie(id) && !zp_get_user_nemesis(id))))
{
dojump[id] = true
jumpnum[id]++
return PLUGIN_CONTINUE
}
}
if((nbut & IN_JUMP) && (fflags & FL_ONGROUND))
{
jumpnum[id] = 0
return PLUGIN_CONTINUE
}

return PLUGIN_CONTINUE
}

public client_PostThink(id)
{
#if MODE & (1<<0)
if(!is_user_alive(id) || !get_pcvar_num(g_jumps) || (!(g_user_privileges[id] & FLAG_B))) return PLUGIN_CONTINUE
#else
if(!is_user_alive(id) || !get_pcvar_num(g_jumps) || (!(get_user_flags(id) & MJACCES))) return PLUGIN_CONTINUE
#endif
if(dojump[id] == true)
{
static Float:velocity[3]
entity_get_vector(id,EV_VEC_velocity,velocity)
velocity[2] = random_float(265.0,285.0)
entity_set_vector(id,EV_VEC_velocity,velocity)
dojump[id] = false
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}

public ShowMotd(id)
show_motd(id, "vip.txt")
#if MODE & (1<<0)
public reload_vips() {

if(database_holder) ArrayDestroy(database_holder)
database_holder = ArrayCreate(database_items)
new configsDir[64]
get_configsdir(configsDir, 63)
format(configsDir, 63, "%s/vips.ini", configsDir)

new File=fopen(configsDir,"r");

if (File)
{
static Text[512], Flags[32], AuthData[50], Privileges_Flags[32], Password[50]
while (!feof(File))
{
fgets(File,Text,sizeof(Text)-1);

trim(Text);

// comment
if (Text[0]==';')
{
continue;
}

Flags[0]=0;
AuthData[0]=0;
Privileges_Flags[0]=0;
Password[0]=0;

// not enough parameters
if (parse(Text,AuthData,sizeof(AuthData)-1,Password,sizeof(Password)-1,Privileges_Flags,sizeof(Privileges_Flags)-1,Flags,sizeof(Flags)-1) < 2)
{
continue;
}

vips_database[auth] = AuthData
vips_database[password] = Password
vips_database[accessflags] = read_flags(Privileges_Flags)
vips_database[flags] = read_flags(Flags)
ArrayPushArray(database_holder, vips_database)
}

fclose(File);
}
else log_amx("Error: vips.ini file doesn't exist")
}
#endif
#if MODE & (1<<0) && MODE & (1<<1)
public check_date()
{
new holder[20]
new y, m ,d
date(y, m, d)
format(holder, charsmax(holder), "m%dd%dy%d", m, d, y)

new configdir[200]
get_configsdir(configdir,199)

new configfile1[200]

format(configfile1,199,"%s/vips.ini",configdir)

new text[512], len
new pnum = file_size(configfile1,1)
for(new i = 1; i < pnum; i++)
{
read_file(configfile1, i, text, 511, len)
if ( contain(text, holder) != -1 )
{
DeleteLine(configfile1, i)
}
}
return PLUGIN_HANDLED
}

public amx_tempadmin(id, type)
{
new authid[31], ip[31], name[51], client_password[20], p_flags[21], sdate[20]
get_pcvar_string(g_vip_buy_flags, p_flags, charsmax(p_flags))
get_user_authid(id, authid, charsmax(authid))
get_user_ip(id, ip, charsmax(ip), 1)
get_user_name(id, name, charsmax(name))
get_user_info(id, amx_password_field_string, client_password, charsmax(client_password))

get_date(get_pcvar_num(g_vip_buy_time), sdate, charsmax(sdate))

new holder[200]
switch(type) {
case 0: formatex(holder, charsmax(holder), "^"%s^" ^"%s^" ^"%s^" ^"b^"; Exp: %s", name, client_password, p_flags, sdate)
case 1: formatex(holder, charsmax(holder), "^"%s^" ^"^" ^"%s^" ^"ce^"; Exp: %s", authid, p_flags, sdate)
case 2: formatex(holder, charsmax(holder), "^"%s^" ^"^" ^"%s^" ^"de^"; Exp: %s", ip, p_flags, sdate)
}

new configdir[200]
get_configsdir(configdir, 199)
new configfile1[200]
format(configfile1,199,"%s/vips.ini",configdir)
write_file(configfile1, holder, -1)
server_cmd("amx_reloadvips")
set_task(1.0, "set_flags", id)

}

DeleteLine( const szFilename[ ], const iLine )
{
new iFile = fopen( szFilename, "rt" );
if( !iFile )
{
return;
}
static const szTempFilename[ ] = "delete_line.txt";
new iTempFile = fopen( szTempFilename, "wt" );

new szData[ 256 ], iLineCount, bool:bReplaced = false;
while( !feof( iFile ) )
{
fgets( iFile, szData, 255 );

if( iLineCount++ == iLine )
{
bReplaced = true;
}
else
{
fputs( iTempFile, szData );
}
}

fclose( iFile );
fclose( iTempFile );

if( bReplaced )
{
delete_file( szFilename );

while( !rename_file( szTempFilename, szFilename, 1 ) ) { }
}
else
{
delete_file( szTempFilename );
}
}

stock get_date(days, string[], chars) {

new y, m, d
date(y, m ,d)

d+=days

new go = true
while(go) {
switch(m) {
case 1,3, 5, 7, 8, 10: {
if(d>31) { d=d-31; m++; }
else go = false
}
case 2: {
if(d>28) { d=d-28; m++; }
else go = false
}
case 4, 6, 9, 11: {
if(d>30) { d=d-30; m++; }
else go = false
}
case 12: {
if(d>31) { d=d-31; y++; m=1; }
else go = false
}
}
}
formatex(string, chars, "m%dd%dy%d", m, d ,y)
}
#endif

stock client_printcolor(id, const message[], any:...)
{
static buffer[512], argscount
argscount = numargs()

if (!id) {

static players[32], num, player, i, i2
get_players(players, num , "ch")

for (i = 0; i < num; i++) {

player = players[i]

static changed[5], changedcount
changedcount = 0

for (i2 = 2; i2 < argscount; i2++)
{
if (getarg(i2) == LANG_PLAYER)
{
setarg(i2, 0, player)
changed[changedcount] = i2
changedcount++
}
}

vformat(buffer, charsmax(buffer), message, 3)

replace_all(buffer, charsmax(buffer), "/g", "^4")
replace_all(buffer, charsmax(buffer), "/y", "^1")

message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, player)
write_byte(player)
write_string(buffer)
message_end()

for (i2 = 0; i2 < changedcount; i2++)
setarg(changed[i2], 0, LANG_PLAYER)
}
}
else {

vformat(buffer, charsmax(buffer), message, 3)

replace_all(buffer, charsmax(buffer), "/g", "^4")
replace_all(buffer, charsmax(buffer), "/y", "^1")

message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, id)
write_byte(id)
write_string(buffer)
message_end()
}
}

stock fm_find_ent_by_owner(entity, const classname[], owner)
{
while ((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) {}

return entity;
}

stock fm_set_weapon_ammo(entity, amount)
{
set_pdata_int(entity, OFFSET_CLIPAMMO, amount, OFFSET_LINUX_WEAPONS);
}
#if MODE & (1<<0)
public set_flags(id) {

static authid[31], ip[31], name[51], index, client_password[30], size, log_flags[11]
get_user_authid(id, authid, 30)
get_user_ip(id, ip, 30, 1)
get_user_name(id, name, 50)
get_user_info(id, amx_password_field_string, client_password, charsmax(client_password))

g_user_privileges[id] = 0
size = ArraySize(database_holder)
for(index=0; index < size ; index++) {
ArrayGetArray(database_holder, index, vips_database)
if(vips_database[flags] & FLAG_D) {
if(equal(ip, vips_database[auth])) {
if(!(vips_database[flags] & FLAG_E)) {
if(equal(client_password, vips_database[password]))
g_user_privileges[id] = vips_database[accessflags]
else if(vips_database[flags] & FLAG_A) {
server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "INV_PAS")
break
}
}
else g_user_privileges[id] = vips_database[accessflags]
get_flags(vips_database[accessflags], log_flags, 10)
log_amx("%L",LANG_PLAYER, "AUTHORISED", name, authid, ip, log_flags)
break
}
}
else if(vips_database[flags] & FLAG_C) {
if(equal(authid, vips_database[auth])) {
if(!(vips_database[flags] & FLAG_E)) {
if(equal(client_password, vips_database[password]))
g_user_privileges[id] = vips_database[accessflags]
else if(vips_database[flags] & FLAG_A) {
server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "INV_PAS")
break
}
}
else g_user_privileges[id] = vips_database[accessflags]
get_flags(vips_database[accessflags], log_flags, 10)
log_amx("%L",LANG_PLAYER, "AUTHORISED", name, authid, ip, log_flags)
break
}
}
else {
if(vips_database[flags] & FLAG_K) {
if((vips_database[flags] & FLAG_B && contain(name, vips_database[auth]) != -1) || equal(name, vips_database[auth])) {
if(!(vips_database[flags] & FLAG_E)) {
if(equal(client_password, vips_database[password]))
g_user_privileges[id] = vips_database[accessflags]
else if(vips_database[flags] & FLAG_A) {
server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "INV_PAS")
break
}
}
else g_user_privileges[id] = vips_database[accessflags]
get_flags(vips_database[accessflags], log_flags, 10)
log_amx("%L",LANG_PLAYER, "AUTHORISED", name, authid, ip, log_flags)
break
}
}
else {
if((vips_database[flags] & FLAG_B && containi(name, vips_database[auth]) != -1) || equali(name, vips_database[auth])) {
if(!(vips_database[flags] & FLAG_E)) {
if(equal(client_password, vips_database[password]))
g_user_privileges[id] = vips_database[accessflags]
else if(vips_database[flags] & FLAG_A) {
server_cmd("kick #%d ^"%L^"", get_user_userid(id), id, "INV_PAS")
break
}
}
else g_user_privileges[id] = vips_database[accessflags]
get_flags(vips_database[accessflags], log_flags, 10)
log_amx("%L",LANG_PLAYER, "AUTHORISED", name, authid, ip, log_flags)
break
}
}
}
}
}
#endif
#if MODE & (1<<0) && MODE & (1<<1)
stock generate_password(id) {

new password_holder[30]
formatex(password_holder, charsmax(password_holder), "%d%d%d%d%d", random(10), random(10), random(10), random(10), random(10))
client_cmd(id, "setinfo %s %s", amx_password_field_string, password_holder)
}
#endif
#if MODE & (1<<0)
public native_zv_get_user_flags(id)
return g_user_privileges[id]
#endif
#if MODE & (1<<1)
public native_zv_register_extra_item(const item_name[], const item_discription[], item_cost, item_team)
{
if(!items_database) items_database = ArrayCreate(items)

param_convert(1)
param_convert(2)
copy(extra_items[i_name], 30, item_name)
copy(extra_items[i_description], 30, item_discription)
extra_items[i_cost] = item_cost
extra_items[i_team] = item_team
ArrayPushArray(items_database, extra_items)
g_registered_items_count++

return g_registered_items_count
}

public plugin_end() if(items_database) ArrayDestroy(items_database)
#endif

vip.txt Acest fisier il puneti direct in cstrike unde se afla addons/models/etc. | Afiseaza codul
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="UTF-8">
<title>V.I.P</title></head>
<style type="text/css">
body {
background-color: #000000;
font-family:Verdana,Tahoma;
}
.style1 {color: #FFCC33}
.style2 {color: #00FF00}
.style3 {color: #FF0000}
</style>
<font size="2" color="#e0a518"><b></b></font><center>
<p><span class="style1">V.I.P privilegies</span></p>
<hr>
<p align="left"><span class="style2">- Primesti 200 armura anti infection on fiecare runda</span></p>
<p align="left" class="style2">- Extra ammo pentru killuri si daune marite contra Zombie.</p>
<p align="left" class="style2">- Primesti viata mai multa cand infectezi pe cineva</p>
<p align="left" class="style2">- Tag-ul VIP in tabela de score</p>
<p align="left" class="style2">- VIPS Au daune marite la toate armele</p>
<p align="left" class="style2">- Multi Jump.</p>
<p align="left" class="style2">- Vizibilitate in lista /vips</p>
<p align="left" class="style2">- Mesaj atunci cand te conectezi pe server</p>
<p align="left" class="style2">- Alte beneficii pe viitor, ramai aproape de noi prin adaugarea serverului la favorit</p>
<p align="left" class="style2">- Pretul pentru VIP este 5 euro permanent. Paypal/PaySafe/SMS</p>
<hr>
</center>
</body>

l-am editat eu pentru voi in romana sa va fie mai usor.

Nume: [ZP] Zombie VIP 1.7.2
Versiune: 1.7.2
Link oficial: click


Instalare:
1. Fisierul zm_vip.sma il puneti in addons/amxmodx/scripting
2. Fisierul zm_vip.amxx il puneti in addons/amxmodx/plugins
3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma:
Code:
zm_vip.amxx

4. Alti pasi necesari....

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): sunt foarte multe ,vedeti in plugin.


Imagini: -

_________________
connect ZM.eXtreamCS.COM # OFFICIAL SERVER
connect 213.32.98.75:27015
Leul si tigru sunt mai puternici ca lupul,dar lupul la circ nu participa.
Image


13 Feb 2019 19:27
Profile multumesc WWW
Display posts from previous:  Sort by  
Reply to topic   [ 1 post ] 

Who is online

Users browsing this forum: No registered users and 29 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  

În cazul în care aveți probleme cu contul trimiteți un email sau mesaj la servicii_extream[arond]yahoo[punct]com

Powered by phpBB® Forum Software © phpBB Group