Dodam że na moim serwerze cod mod na klasy premium plugin działa.
Vipa posiadam z http://amxx.pl/vipgenerator/
Spoiler
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <hamsandwich>
#include <tutor>
#define PLUGIN "Testuj Vipa"
#define VERSION "1.0"
#define AUTHOR "speedkill"
#define Flaga ADMIN_LEVEL_H
new use[33] = 0
new czas_gracza[33]
new prefix[33]
new g_vault
new czas
new zapis
//By R3X
getFormatedTime(iTime, szTime[], size)
{
new dni = iTime/86400
new hours = iTime%86400/3600
formatex(szTime, size, "%d Dni %d godzin i %d minut",dni, hours, iTime%3600/60)
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
g_vault = nvault_open("24h_vip")
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
tutorInit();
register_cvars()
}
public plugin_precache(){
tutorPrecache()
}
public register_cvars()
{
czas = register_cvar("amx_viptest_czas","5")
zapis = register_cvar("amx_viptest_save","1")
register_cvar("amx_viptest_prefix","[Premium]")
}
public plugin_cfg()
{
get_cvar_string("amx_viptest_prefix", prefix, 32)
}
public vip_test(id)
{
if(is_user_connected(id))
{
if(get_user_flags(id) & Flaga || use[id] == 1)
{
}
else
{
use[id] = 1
czas_gracza[id] = get_pcvar_num(czas)*86400
set_task(1.0,"sprawdz",id,_,_,"b")
set_task(90.0,"timer",id,_,_,"b")
set_user_flags(id, get_user_flags(id) | Flaga)
save(id)
tutorMake(id,TUTOR_BLUE,5.0,"Otrzymales darmowego vipa")
}
}
}
public sprawdz(id)
{
czas_gracza[id]--
if(czas_gracza[id] <= 0)
{
if(task_exists(id))
{
remove_task(id)
}
remove_user_flags(id, Flaga)
}
}
public client_disconnect(id)
{
if(task_exists(id))
{
remove_task(id)
}
if(use[id] == 1)
{
save(id)
}
}
public Odrodzenie(id)
{
vip_test(id)
return PLUGIN_CONTINUE;
}
public client_connect(id)
{
use[id] = 0
czas_gracza[id] = 0
set_task(2.0,"load",id)
}
public save(id)
{
new name[64]
switch(get_pcvar_num(zapis))
{
case 1:
{
get_user_name(id,name,63)
}
case 2:
{
if(is_user_steam(id))
{
get_user_authid(id, name, 63)
}
else
{
get_user_name(id,name,63)
}
}
}
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-vip",name)
format(vaultdata,255,"%d#%d",czas_gracza[id],use[id])
nvault_set(g_vault,vaultkey,vaultdata)
}
public load(id)
{
new name[64]
switch(get_pcvar_num(zapis))
{
case 1:
{
get_user_name(id,name,63)
}
case 2:
{
if(is_user_steam(id))
{
get_user_authid(id, name, 63)
}
else
{
get_user_name(id,name,63)
}
}
}
new vaultkey[64],vaultdata[256]
get_user_name(id,name,63)
format(vaultkey,63,"%s-vip",name)
format(vaultdata,255,"%d#%d",czas_gracza[id], use[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new zmienna[33], zmienna1[33]
parse(vaultdata, zmienna, 32, zmienna1, 32)
czas_gracza[id] = str_to_num(zmienna)
use[id] = str_to_num(zmienna1)
if(czas_gracza[id] > 0)
{
set_task(120.0,"timer",id,_,_,"b")
set_task(1.0,"sprawdz",id,_,_,"b")
set_user_flags(id, get_user_flags(id) | Flaga)
}
}
public timer(id)
{
new szTime[32]
getFormatedTime(czas_gracza[id], szTime, 31)
tutorMake(id,TUTOR_GREEN,5.0,"%s Do konca Darmowego vipa pozostalo : %s",prefix,szTime)
}
stock bool:is_user_steam(id) {
new authid[32]; get_user_authid(id, authid, 31);
return bool:(contain(authid, "STEAM_0:0:") != -1 || contain(authid, "STEAM_0:1:") != -1);
}Mój vip
Spoiler
#include <amxmodx>
#include <colorchat>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
forward amxbans_admin_connect(id);
new Array:g_Array, bool:g_Vip[33], skoki[33], weapon_id;
new const g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"};
new const g_Prefix[] = "Vip Chat";
public plugin_init(){
register_plugin("VIP Ultimate", "10.0.0.2", "benio101 & speedkill");
RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
register_forward(FM_CmdStart, "CmdStartPre");
register_message(get_user_msgid("ScoreAttrib"), "VipStatus");
g_Array=ArrayCreate(64,32);
for(new i;i<sizeof g_Langcmd;i++){
register_clcmd(g_Langcmd[i], "ShowVips");
}
register_clcmd("say /vip", "ShowMotd");
register_clcmd("say_team", "VipChat");
register_message(get_user_msgid("SayText"),"handleSayText");
}
public client_authorized(id){
if(get_user_flags(id) & ADMIN_LEVEL_H){
client_authorized_vip(id);
}
}
public client_authorized_vip(id){
g_Vip[id]=true;
new g_Name[64];
get_user_name(id,g_Name,charsmax(g_Name));
new g_Size = ArraySize(g_Array);
new szName[64];
for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, szName, charsmax(szName));
if(equal(g_Name, szName)){
return 0;
}
}
ArrayPushString(g_Array,g_Name);
return PLUGIN_CONTINUE;
}
public client_disconnect(id){
if(g_Vip[id]){
client_disconnect_vip(id);
}
}
public client_disconnect_vip(id){
g_Vip[id]=false;
new Name[64];
get_user_name(id,Name,charsmax(Name));
new g_Size = ArraySize(g_Array);
new g_Name[64];
for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
if(equal(g_Name,Name)){
ArrayDeleteItem(g_Array,i);
break;
}
}
}
public SpawnedEventPre(id){
if(g_Vip[id]){
if(is_user_alive(id)){
SpawnedEventPreVip(id);
}
}
}
public CmdStartPre(id, uc_handle){
if(g_Vip[id]){
if(is_user_alive(id)){
CmdStartPreVip(id, uc_handle);
}
}
}
public CmdStartPreVip(id, uc_handle){
new flags = pev(id, pev_flags);
if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id]>0){
--skoki[id];
new Float:velocity[3];
pev(id, pev_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id,pev_velocity,velocity);
} else if(flags & FL_ONGROUND && skoki[id]!=-1){
skoki[id] = 1;
}
}
public SpawnedEventPreVip(id){
skoki[id]=1;
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_FLASHBANG,2);
give_item(id, "weapon_smokegrenade");
give_item(id, "weapon_deagle");
give_item(id, "ammo_50ae");
weapon_id=find_ent_by_owner(-1, "weapon_deagle", id);
if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
new g_Model[64];
formatex(g_Model,charsmax(g_Model),"%s",get_user_team(id) == 1 ? "vip-tt-1" : "vip-ct-1");
cs_set_user_model(id,g_Model);
}
public VipStatus(){
new id=get_msg_arg_int(1);
if(is_user_alive(id) && g_Vip[id]){
set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4);
}
}
public ShowVips(id){
return PLUGIN_CONTINUE;
}
public client_infochanged(id){
if(g_Vip[id]){
new szName[64];
get_user_info(id,"name",szName,charsmax(szName));
new Name[64];
get_user_name(id,Name,charsmax(Name));
if(!equal(szName,Name)){
ArrayPushString(g_Array,szName);
new g_Size=ArraySize(g_Array);
new g_Name[64];
for(new i = 0; i < g_Size; i++){
ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
if(equal(g_Name,Name)){
ArrayDeleteItem(g_Array,i);
break;
}
}
}
}
}
public plugin_end(){
ArrayDestroy(g_Array);
}
public ShowMotd(id){
show_motd(id, "vip.txt", "Informacje o vipie");
}
public VipChat(id){
if(g_Vip[id]){
new g_Msg[256],
g_Text[256];
read_args(g_Msg,charsmax(g_Msg));
remove_quotes(g_Msg);
if(g_Msg[0] == '*' && g_Msg[1]){
new g_Name[64];
get_user_name(id,g_Name,charsmax(g_Name));
formatex(g_Text,charsmax(g_Text),"^x01(%s) ^x03%s : ^x04%s",g_Prefix, g_Name, g_Msg[1]);
for(new i=1;i<33;i++){
if(is_user_connected(i) && g_Vip[i])
ColorChat(i, GREEN, "%s", g_Text);
}
return PLUGIN_HANDLED_MAIN;
}
}
return PLUGIN_CONTINUE;
}
public handleSayText(msgId,msgDest,msgEnt){
new id = get_msg_arg_int(1);
if(is_user_connected(id) && g_Vip[id]){
new szTmp[256],szTmp2[256];
get_msg_arg_string(2,szTmp, charsmax(szTmp))
new szPrefix[64] = "^x04[VIP]";
if(!equal(szTmp,"#Cstrike_Chat_All")){
add(szTmp2,charsmax(szTmp2),szPrefix);
add(szTmp2,charsmax(szTmp2)," ");
add(szTmp2,charsmax(szTmp2),szTmp);
}
else{
add(szTmp2,charsmax(szTmp2),szPrefix);
add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : %s2");
}
set_msg_arg_string(2,szTmp2);
}
return PLUGIN_CONTINUE;
}
public plugin_precache(){
precache_model("models/player/vip-ct-1/vip-ct-1.mdl");
precache_model("models/player/vip-tt-1/vip-tt-1.mdl");
}
public amxbans_admin_connect(id){
client_authorized(id);
}Użytkownik Kawon edytował ten post 08.03.2013 21:46


Dodatki SourceMod



Temat jest zamknięty










