Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Problem z połączeniem VIP + Free vip


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 esticire

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
Offline

Napisano wczoraj, 21:17

Cześć, Mam problem z połączeniem tego kodu wraz z osobnym pluginem freevip w nocy z tego tematu https://amxx.pl/topi...owy-vip-w-nocy/

Mianowicie Plugin raz przyznaje tego vipa po zmianie mapy raz nie przyznaje. Czasami wystarczy zrobić reconnect czasami nawet i to nie pomaga.

Próbowałem bawić się z timerami w client_authorized oraz w client_putinserver ale nic to nie daje. 
Czy jesteście w stanie mi powiedzieć co pominąłem albo po prostu co zmienić w kodzie? 
Męczę się z tym 3 dzień ale z racji na małą ilość czasu obecnie nie jestem w stanie za bardzo się w to zagłębić. 

Oczywiście jest to vip z generatora + pare zmian prze ze mnie wprowadzonych (pewnie lipa i dziury ale mi działa :P )

#include <amxmodx>
#include <cstrike>
#include <csx>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <stripweapons>

new bool:g_Vip[33], gRound=0, g_Hudmsg, maxPlayers,
menu, weapon_id;
new bool:g_GameStarted;
new menu_id[33];

#define TASK_CLOSE_MENU 10000

new p_awp_limit_0_5, p_awp_limit_6_10, p_awp_limit_11_16, p_awp_limit_17_23, p_awp_limit_24_inf;

public plugin_init(){
    register_plugin("VIP Ultimate", "12.3.0.3", "benio101 & speedkill");
    RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
    register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
    register_logevent("GameCommencing", 2, "1=Game_Commencing");
    register_event("DeathMsg", "DeathMsg", "a");
    register_message(get_user_msgid("ScoreAttrib"), "VipStatus");
    register_message(get_user_msgid("SayText"),"handleSayText");
    register_clcmd("say /vip", "show_vip_motd");
    register_clcmd("say_team /vip", "show_vip_motd");
    g_Hudmsg=CreateHudSyncObj();
    register_logevent("RoundEnd", 2, "1=Round_End");
    register_logevent("event_round_start", 2, "1=Round_Start");
    p_awp_limit_0_5    = register_cvar("awp_limit_0_5", "0");
    p_awp_limit_6_10   = register_cvar("awp_limit_6_10", "5");
    p_awp_limit_11_16  = register_cvar("awp_limit_11_16", "5");
    p_awp_limit_17_23  = register_cvar("awp_limit_17_23", "5");
    p_awp_limit_24_inf = register_cvar("awp_limit_24_inf", "5");
}

public client_authorized(id){
    if(get_user_flags(id) & 524288 == 524288){
        client_authorized_vip(id);
    }
}

public plugin_cfg(){
    maxPlayers = get_maxplayers();
}

public client_connect(id) {
    g_Vip[id] = false;
}

public show_vip_motd(id) {
    show_motd(id, "vip.html", "Informacje o VIP");
}

public check_vip_flag(id){
    if (get_user_flags(id) & ADMIN_LEVEL_H){
        client_authorized_vip(id);
    }
}

public client_putinserver(id){
    set_task(1.0, "check_vip_flag", id);
}

public client_authorized_vip(id) {
    if(is_user_connected(id) && g_Vip[id]) {
        new g_Name[64];
        get_user_name(id, g_Name, charsmax(g_Name));
        set_hudmessage(24, 190, 220, 0.25, 0.2, 0, 6.0, 6.0);
        ShowSyncHudMsg(0, g_Hudmsg, "V.I.P %s wbija na serwer!", g_Name);
        if(is_user_alive(id)) {
            SpawnedEventPreVip(id);
        }
    }
}

public client_disconnected(id) {
    if(g_Vip[id]) {
        g_Vip[id] = false;
    }
    remove_task(id + TASK_CLOSE_MENU);
    remove_task(id);
    if(menu_id[id]) {
        menu_destroy(menu_id[id]);
        menu_id[id] = 0;
    }
}

public client_disconnect_vip(id){
    g_Vip[id] = false;
}
public SpawnedEventPre(id){
    if(g_Vip[id] && is_user_alive(id)){
        SpawnedEventPreVip(id);
    }
}
public SpawnedEventPreVip(id){
    cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
    give_item(id, "weapon_hegrenade");
    cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
    give_item(id, "weapon_flashbang");
    StripWeapons(id, Secondary);
    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);
    set_task(0.1, "show_vip_menu_delayed", id);
    if (gRound >= 3){
        give_item(id, "weapon_smokegrenade");
    }
    if (get_user_team(id) == 2){
        give_item(id, "item_thighpack");
    }
}

public show_vip_menu_delayed(id) {
    if (is_user_alive(id)) {
        show_vip_menu(id);
    }
}

public event_new_round(){
    ++gRound;
}
public GameCommencing(){
    gRound = 0;
    g_GameStarted = false;
}
public event_round_start(){
    if (!g_GameStarted) {
        g_GameStarted = true;
        gRound = 1;
    } else {
        gRound++;
    }
}

public DeathMsg(){
    new killer = read_data(1);
    new victim = read_data(2);
    if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){
        DeathMsgVip(killer, victim, read_data(3));
    }
}
public DeathMsgVip(kid, vid, hs){
    set_user_health(kid, min(get_user_health(kid) + (hs ? 10 : 5), 100));
    cs_set_user_money(kid, cs_get_user_money(kid) + (hs ? 500 : 300));
}

public RoundEnd(){
    for(new i = 1; i <= maxPlayers; i++){
        if(is_user_alive(i) && g_Vip[i]){
            cs_set_user_money(i, cs_get_user_money(i) + 500);
        }
    }
}

public show_vip_menu(id) {
    if (!is_user_alive(id)) return;
    if (gRound < 3) return;
    if (!menu_id[id]) {
        set_task(20.0, "force_close_menu", id + TASK_CLOSE_MENU);
    }
    else {
        return;
    }

    menu = menu_create("\rMenu VIPa", "menu_handler");
    menu_additem(menu, "\wAK47 + DEAGLE");
    menu_additem(menu, "\wM4A1 + DEAGLE");
    menu_additem(menu, "\d(\w2000\y$\d) \wAWP + DEAGLE");
    menu_additem(menu, "\d(\w2000\y$\d) \wKROWA + DEAGLE");
    menu_additem(menu, "\wFAMAS + DEAGLE");
    menu_additem(menu, "\wSCOUT + DEAGLE");
    menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
    menu_setprop(menu, MPROP_TITLE, "\r[\yMENU broni V.I.P'a\r]^n\r[\y20 sekund na wybor\r]^n\r[\yNasze forum: \r]");
    menu_id[id] = menu;
    menu_display(id, menu);
}

public force_close_menu(taskid) {
    new id = taskid - TASK_CLOSE_MENU;
    if (is_user_connected(id)) {
        show_menu(id, 0, "^n", 1);
        client_print(id, print_center, "Czas na wybor minal! Menu zostało zamkniete.");
        if (menu_id[id]) {
            menu_destroy(menu_id[id]);
            menu_id[id] = 0;
        }
    }
}

public menu_handler(id, menu, item) {
    if (!is_user_alive(id) || item == MENU_EXIT) {
        close_vip_menu(id);
        return PLUGIN_HANDLED;
    }
    if (gRound < 3) {
        client_print(id, print_center, "Menu VIP dostępne od 3 rundy!");
        close_vip_menu(id);
        return PLUGIN_HANDLED;
    }
    switch (item) {
        case 0: {
            menu_1_handler(id);
            close_vip_menu(id);
        }
        case 1: {
            menu_2_handler(id);
            close_vip_menu(id);
        }
        case 2: {
            new money = cs_get_user_money(id);
            if (money < 2000) {
                client_print(id, print_center, "Nie masz 2000$ na AWP!");
                menu_display(id, menu_id[id]);
            } 
            else if (!canBuyAWP(id)) {
                client_print(id, print_center, "Limit AWP w druzynie zostal osiagniety!");
                menu_display(id, menu_id[id]);
            } 
            else {
                menu_3_handler(id);
                cs_set_user_money(id, money - 2000, 1);
                close_vip_menu(id);
            }
        }
        case 3: {
            new money = cs_get_user_money(id);
            if (money < 2000) {
                client_print(id, print_center, "Nie masz 2000$ na KROWE!");
                menu_display(id, menu_id[id]);
            } 
            else {
                menu_4_handler(id);
                cs_set_user_money(id, money - 2000, 1);
                close_vip_menu(id);
            }
        }
        case 4: {
            menu_5_handler(id);
            close_vip_menu(id);
        }
        case 5: {
            menu_6_handler(id);
            close_vip_menu(id);
        }
    }
    return PLUGIN_HANDLED;
}

public close_vip_menu(id) {
    if (menu_id[id]) {
        show_menu(id, 0, "^n", 1);
        menu_destroy(menu_id[id]);
        menu_id[id] = 0;
        remove_task(id + TASK_CLOSE_MENU);
    }
}

public menu_2_handler(id){
    StripWeapons(id, Primary);
    give_item(id, "weapon_m4a1");
    give_item(id, "ammo_556nato");
    set_weapon_ammo(id, "weapon_m4a1", 30, CSW_M4A1, 90);
}
public menu_1_handler(id){
    StripWeapons(id, Primary);
    give_item(id, "weapon_ak47");
    give_item(id, "ammo_762nato");
    set_weapon_ammo(id, "weapon_ak47", 30, CSW_AK47, 90);
}
public menu_3_handler(id){
    StripWeapons(id, Primary);
    give_item(id, "weapon_awp");
    give_item(id, "ammo_338magnum");
    set_weapon_ammo(id, "weapon_awp", 10, CSW_AWP, 30);
}
public menu_5_handler(id){
    StripWeapons(id, Primary);
    give_item(id, "weapon_famas");
    give_item(id, "ammo_556nato");
    set_weapon_ammo(id, "weapon_famas", 25, CSW_FAMAS, 90);
}
public menu_4_handler(id){
    StripWeapons(id, Primary);
    give_item(id, "weapon_m249");
    give_item(id, "ammo_556natobox");
    set_weapon_ammo(id, "weapon_m249", 100, CSW_M249, 200);
}
public menu_6_handler(id){
    StripWeapons(id, Primary);
    give_item(id, "weapon_scout");
    give_item(id, "ammo_762nato");
    set_weapon_ammo(id, "weapon_scout", 10, CSW_SCOUT, 90);
}

stock set_weapon_ammo(id, const weapon[], clip, csw, bpammo){
    weapon_id = find_ent_by_owner(-1, weapon, id);
    if(weapon_id) cs_set_weapon_ammo(weapon_id, clip);
    cs_set_user_bpammo(id, csw, bpammo);
}

public bool:canBuyAWP(const id){
    new players[32], num;
    get_players(players, num, "a");
    new team = get_user_team(id);
    new awpCount = 0;
    for(new i = 0; i < num; i++){
        new pid = players[i];
        if(get_user_team(pid) == team && user_has_weapon(pid, CSW_AWP)){
            awpCount++;
        }
    }
    new limit = getDynamicAWPLimit();
    return (awpCount < limit);
}
public getDynamicAWPLimit(){
    new players[32], num;
    get_players(players, num, "h");
    if(num <= 5)
        return get_pcvar_num(p_awp_limit_0_5);
    else if(num <= 10)
        return get_pcvar_num(p_awp_limit_6_10);
    else if(num <= 16)
        return get_pcvar_num(p_awp_limit_11_16);
    else if(num <= 23)
        return get_pcvar_num(p_awp_limit_17_23);
    else if(num > 23)
        return get_pcvar_num(p_awp_limit_24_inf);
    return 0;
}

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 bomb_planted(id){
    if(is_user_alive(id) && g_Vip[id]){
        cs_set_user_money(id, cs_get_user_money(id) + 250);
    }
}
public bomb_defused(id){
    if(is_user_alive(id) && g_Vip[id]){
        cs_set_user_money(id, cs_get_user_money(id) + 250);
    }
}

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[V.I.P]";
        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;
}


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych