←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

Broń do wyboru tylko dla VIP'a - problem

MarvV - zdjęcie MarvV 16.05.2013

Witam :)

Mam problem, a mianowicie chciałbym zrobić tak, aby tylko VIP mógł wybrać broń G3SG1 z menu - dla pozostałych byłaby ona zablokowana i tylko on miałby do niej dostęp. Nie wiem kompletnie jak to zrobić, dlatego proszę o pomoc. 

 

Wycinek z kodu - chodzi mi o te menu:



new g_primaryweapons[][][] = 
{ 
	{ "G3SG1",    "weapon_g3sg1"  },
	{ "M4A1",     "weapon_m4a1"    },
	{ "AK47",     "weapon_ak47"    },
	{ "AUG",      "weapon_aug"     },
	{ "SG552",    "weapon_sg552"   },
	{ "Galil",    "weapon_galil"   },
	{ "Famas",    "weapon_famas"   },
	{ "MP5 Navy", "weapon_mp5navy" },
	{ "XM1014",   "weapon_xm1014"  },
	{ "M3",       "weapon_m3"      },
	{ "P90",      "weapon_p90"     },
	{ "M249",     "weapon_m249"    },
	{ "SG550",    "weapon_sg550"   }			
}

Załączam też plugin skąd pochodzi ten kod.

Załączone pliki


Użytkownik MarvV edytował ten post 16.05.2013 14:22
Odpowiedz

MarvV - zdjęcie MarvV 16.05.2013

Wiem jak się dodaje flagi, tylko nie jestem pewien jak to zastosować w tym przypadku - jak to wkleić do tego "menu".

 

Coś takiego pewnie jest błędne:

{if((get_user_flags(id) & ADMIN_LEVEL_H)
{ "G3SG1", "weapon_g3sg1" }}
Odpowiedz

  • +
  • -
K!113r - zdjęcie K!113r 16.05.2013

jest błędne, musisz blokować w menu - albo w handlerze albo w callback'u

Odpowiedz

  • +
  • -
GwynBleidD - zdjęcie GwynBleidD 16.05.2013

Do tej tablicy (bo to menu nie jest, jest ta tablica tylko używana do wygenerowania menu) nic nie dodajesz. Przynajmniej nie w tej postaci.

 

Ale zaraz to "poprawimy"

 

    for(a = start; a < end; ++a)
    {
        keys |= (1<<b)
        len += formatex(menubody[len], 511 - len,"%d. %s^n", ++b, menuid == 1 ? g_primaryweapons[a][0]: g_secondaryweapons[a][0])
    }

zamień na:

    for(a = start; a < end; ++a) {
        if ((get_user_flags(id)& g_primaryweapons[a][3][0])==g_primaryweapons[a][3][0]) {
            keys |= (1<<b)
            len += formatex(menubody[len], 511 - len,"%d. %s^n", ++b, menuid == 1 ? g_primaryweapons[a][0]: g_secondaryweapons[a][0])
        } else {
            len += formatex(menubody[len], 511 - len,"\d%d. %s^n\w", ++b, menuid == 1 ? g_primaryweapons[a][0]: g_secondaryweapons[a][0])
        }
    }

I zamień tablicę na:

new g_primaryweapons[][][] =
{
    { "G3SG1",    "weapon_g3sg1", {ADMIN_LEVEL_H}  },
    { "M4A1",     "weapon_m4a1", {0}  },
    { "AK47",     "weapon_ak47", {0} },
    { "AUG",      "weapon_aug", {0} },
    { "SG552",    "weapon_sg552", {0}   },
    { "Galil",    "weapon_galil", {0}   },
    { "Famas",    "weapon_famas", {0}   },
    { "MP5 Navy", "weapon_mp5navy", {0}},
    { "XM1014",   "weapon_xm1014", {0}  },
    { "M3",       "weapon_m3", {0}      },
    { "P90",      "weapon_p90", {0}     },
    { "M249",     "weapon_m249", {0}    },
    { "SG550",    "weapon_sg550", {0}   }        
}

 

W dodatkowych klamrach umieszczasz flagę, na jaką broń ma być. Qniec :) A jeszcze lepiej by było to na nowy styl menu przerobić.

 

 

 

Odpowiedz