←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Problem Z vipem na FFA+BF2

  • +
  • -
GramBezNeta - zdjęcie GramBezNeta 10.08.2013

bo tak gdy wgram na serwer vipa  każdy z przypisanym vipem nie może wejść na serwer  ten pasek gdy wchodzi się na serwer ładuje się do połowy poczym trzeba wyłączyć cs'a  przez menadzer zadań  bo się zawiesza

gdy usune vip.amxx z pligins.ini wszystko działa poprawnie

jak to naprawić  czy to wina serwera czy vipa ?

 

 

tu macie sma vipa

#include <amxmodx>
#include <colorchat>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

new Array:g_Array, CsArmorType:armortype, bool:g_Vip[33], gRound=0, skoki[33];

new const g_Langcmd[][]={"say /vip","say_team /vip"}
new const g_Prefix[] = "Vip Chat";

public plugin_init(){
    register_plugin("VIP Ultimate", "8.0.0.2", "benio101 & speedkill");
    RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
    register_forward(FM_CmdStart, "CmdStartPre");
    register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
    register_logevent("GameCommencing", 2, "1=Game_Commencing");
    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");
}
public client_authorized(id){
    if(get_user_flags(id) & 524288 == 524288){
        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 event_new_round(){
    ++gRound;
}
public GameCommencing(){
    gRound=0;
}
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] = 2;
    }
}
public SpawnedEventPreVip(id){
    skoki[id]=(gRound>=0?2:-1);
    new g_Model[64];
    formatex(g_Model,charsmax(g_Model),"%s",get_user_team(id) == 1 ? "VipTT" : "VipCT");
    cs_set_user_model(id,g_Model);
    if(gRound>=0){
        set_user_health(id, get_user_health(id)+145);
        cs_set_user_armor(id, min(cs_get_user_armor(id,armortype)+100, 200), CS_ARMOR_VESTHELM);
        give_item(id, "weapon_hegrenade");
        give_item(id, "weapon_flashbang");
        cs_set_user_bpammo(id, CSW_FLASHBANG,2);
        give_item(id, "weapon_smokegrenade");
    }
}
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 plugin_precache(){
    precache_model("models/player/VipCT/VipCT.mdl");
    precache_model("models/player/VipTT/VipTT.mdl");
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
Odpowiedz

  • +
  • -
GramBezNeta - zdjęcie GramBezNeta 10.08.2013

/reff...

 

Odpowiedz