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

Połączenia 2 pluginów do skinów


Najlepsza odpowiedź Toldi, 02.12.2018 12:39

Tutaj ustawiaj, który skin dla vipa.

Pod ostatnim #define dopisz

#define VIP ADMIN_LEVEL_G

i teraz 

public knifemenu(id, menu, item) 
{
	switch(item) 
	{
		case 0: // model tylko dla vipa
		{
			if(!(get_user_flags(id) & VIP)) // nie mam vipa przerwij dzialanie
			{
				client_print(id, 3, "NIE MASZ VIP")
					return PLUGIN_HANDLED;
			}
			SetKnife(id , 0) // ustaw skina gdy gracz ma vipa
		}
		case 1: SetKnife(id , 1) // model dla wszystkich
		case 2: SetKnife(id , 2) // model dla wszystkich
		case 3: SetKnife(id , 3) // model dla wszystkich
		case 4: // model tylko dla vipa
		{
			if(!(get_user_flags(id) & VIP))
			{
				client_print(id, 3, "NIE MASZ VIP")
					return PLUGIN_HANDLED;
			}
			SetKnife(id , 4)
		}
		case 5: SetKnife(id , 5) // model dla wszystkich
		default: return PLUGIN_HANDLED
	}
	ZapiszNoz(id)
	return PLUGIN_HANDLED
}

Tam gdzie chcesz mieć skin tylko dla vipa dajesz sprawdzenie jak wyżej. Zrób to w pluginie skiny dla wszystkich a ten 2 wyłącz.

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
9 odpowiedzi w tym temacie

#1 Mruuu

    Pomocny

  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Kacper
  • Lokalizacja:Możesz szukać :)
Offline

Napisano 01.12.2018 16:43

Cześć.

Pomożecie mi połączyć te dwa pluginy?
Jeden jest pluginem skinów dla graczy, a drugi to skiny dla VIP'a.

Problem jest taki, że po prostu gdy wrzucę te obydwa pluginy na serwer to ten zapis wariuje i nie zmienia skinów po wybraniu.

 

Skiny graczy: http://www.wklejto.pl/666305

Skiny VIPhttp://www.wklejto.pl/666307

 

Chcę to połączyć w taki sposób, że po prostu te skiny, które są dla gracza mogą wybrać wszyscy, a skiny vip'a będą również w tym samym menu co zwykłe skiny, lecz będą tylko do wybrania jeśli ktoś posiada VIP (flaga ADMIN_LEVEL_G)

Prosiłbym o wytłumaczenie jak to zrobić lub o edycje tego dla mnie :)


  • +
  • -
  • 0

#2 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 01.12.2018 17:45

Tylko tu sprawdzaj czy gracz ma vipa

public knifemenu(id, menu, item) 
{
	switch(item) 
	{
		case 0: 
		{
			if(!(get_user_flags(id) & ADMIN_LEVEL_G))
			{
				client_print(id, 3, "NIE MASZ VIP")
					return PLUGIN_HANDLED;
			}
			SetKnife(id , 0) // ustaw skina gdy gracz ma vipa
		}
		case 1: SetKnife(id , 1)
		case 2: SetKnife(id , 2)
		case 3: SetKnife(id , 3)
		case 4: SetKnife(id , 4)
		case 5: SetKnife(id , 5)
		default: return PLUGIN_HANDLED
	}
	ZapiszNoz(id)
	return PLUGIN_HANDLED
}

Meny wyboru zamień na to. Usunąłem tylko sprawdzenie czy gracz ma flage żeby każdy mógł to menu otworzyć.

public menuWyboru(id)
{
        new menuBody[128]
        formatex(menuBody, charsmax(menuBody), "\d[\r*\yGrand-Skill.pl\r*\d]^n\wMenu Skinow VIP:\y")
        new menu = menu_create(menuBody, "skinsmenu")
 
        menu_additem(menu, "\wNoz [\rVIP\w]")
        menu_additem(menu, "\wM4A1 [\rVIP\w]")
        menu_additem(menu, "\wAK47 [\rVIP\w]")
        menu_additem(menu, "\wAWP [\rVIP\w]")
        menu_additem(menu, "\wDEAGLE [\rVIP\w]")
        
        
        menu_setprop(menu, MPROP_BACKNAME, "Wroc");
        menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
        menu_setprop(menu, MPROP_EXITNAME, "Wyjscie");
 
        menu_display(id, menu);
}

Oczywiście z resztą zrób analogicznie.


  • +
  • -
  • 0

#3 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

  • Postów:2 048
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 01.12.2018 17:55

Sprawdzanie flagi z osobna przy każdym case'ie switcha:

 

e0841012714_ja_cie_.jpg

 

 

Przecież możesz zrobić tak:

public knifemenu(index, menu, item)
{
	if(!(get_user_flags(index) & ADMIN_LEVEL_G))
		return PLUGIN_HANDLED;

	SetKnife(index, item);
	ZapiszNoz(index);

	return PLUGIN_HANDLED;
}

  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#4 Mruuu

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Kacper
  • Lokalizacja:Możesz szukać :)
Offline

Napisano 01.12.2018 17:57

Mógłby ktoś wbić na jakiegoś teamspeaka i mi to trochę bardziej objaśnić?

Lub chociaz jakieś gg?


  • +
  • -
  • 0

#5 Mruuu

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Kacper
  • Lokalizacja:Możesz szukać :)
Offline

Napisano 01.12.2018 18:36

Sorki, że dwa razy piszę, ale nie mogę edytować tego wyżej, ale chodzi mi o to, aby przerobić te skiny VIP'a do skinów normalnych wszystko w jednym MENU, tylko, aby wybrać skin VIP'a trzeba mieć flage ADMIN_LEVEL_G.

Na serwerze jest plugin skinów zwykłych i drugi skinów VIP, są to te same pluginy, tylko w tym drugim jest wymuszana flaga ADMIN_LEVEL_G do odpalenia menu, lecz po wybraniu skina normalnego przez VIP'a to i tak przywraca skina z menu VIP'a.

Trzeba przerabiać cały plugin czy da się to ogarnąć z tym zapisem skinów, aby się nie przywracały wcześniej wybrane?


  • +
  • -
  • 0

#6 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 02.12.2018 12:30

 

Sprawdzanie flagi z osobna przy każdym case'ie switcha:

 

e0841012714_ja_cie_.jpg

 

 

Przecież możesz zrobić tak:

public knifemenu(index, menu, item)
{
	if(!(get_user_flags(index) & ADMIN_LEVEL_G))
		return PLUGIN_HANDLED;

	SetKnife(index, item);
	ZapiszNoz(index);

	return PLUGIN_HANDLED;
}

Tak. Robię to w switchu żeby można było zdecydować, który model ma być dostępny dla vipa a który dla wszystkich. Twój kod nadal będzie blokował możliwość założenia skina przez zwykłego gracza a przecież właśnie On tego nie chcę. Chce mieć wszystko w 1 pluginie i decydować, który model dla vipa a który dla wszystkich.

 


  • +
  • -
  • 0

#7 Mruuu

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Kacper
  • Lokalizacja:Możesz szukać :)
Offline

Napisano 02.12.2018 12:32

Dokładnie Toldi o to mi chodzi, mógłbyś mi to trochę bardziej wytłumaczyć jak to zrobić?

Jestem zielony w tym temacie, potrafię jednak coś tam poedytować itd.


  • +
  • -
  • 0

#8 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

Napisano 02.12.2018 12:39   Najlepsza odpowiedź

Tutaj ustawiaj, który skin dla vipa.

Pod ostatnim #define dopisz

#define VIP ADMIN_LEVEL_G

i teraz 

public knifemenu(id, menu, item) 
{
	switch(item) 
	{
		case 0: // model tylko dla vipa
		{
			if(!(get_user_flags(id) & VIP)) // nie mam vipa przerwij dzialanie
			{
				client_print(id, 3, "NIE MASZ VIP")
					return PLUGIN_HANDLED;
			}
			SetKnife(id , 0) // ustaw skina gdy gracz ma vipa
		}
		case 1: SetKnife(id , 1) // model dla wszystkich
		case 2: SetKnife(id , 2) // model dla wszystkich
		case 3: SetKnife(id , 3) // model dla wszystkich
		case 4: // model tylko dla vipa
		{
			if(!(get_user_flags(id) & VIP))
			{
				client_print(id, 3, "NIE MASZ VIP")
					return PLUGIN_HANDLED;
			}
			SetKnife(id , 4)
		}
		case 5: SetKnife(id , 5) // model dla wszystkich
		default: return PLUGIN_HANDLED
	}
	ZapiszNoz(id)
	return PLUGIN_HANDLED
}

Tam gdzie chcesz mieć skin tylko dla vipa dajesz sprawdzenie jak wyżej. Zrób to w pluginie skiny dla wszystkich a ten 2 wyłącz.


  • +
  • -
  • 2

#9 Mruuu

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Kacper
  • Lokalizacja:Możesz szukać :)
Offline

Napisano 02.12.2018 12:56

A można zrobić takie coś:

	new aktywna=menu_makecallback("aktywna_func");
	new nieaktywna=menu_makecallback("nieaktywna_func");
	
	menu_additem(menu, "\wZwykly Noz","",0,aktywna)
	
	if(get_user_flags(id) & ADMIN_LEVEL_G) menu_additem(menu, "\wHuntsman Knife | Doppler \y[VIP]","",0, aktywna)
	else menu_additem(menu, "\wHuntsman Knife | Doppler \y[VIP]","",0, nieaktywna)

Zadziała?

I bez if(get_user_flags(id) & ADMIN_LEVEL_G) jeśli nie będzie wymagany VIP?


Użytkownik Mruuu edytował ten post 02.12.2018 12:58

  • +
  • -
  • 0

#10 Mruuu

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 8
Nowy

  • Postów:55
  • Imię:Kacper
  • Lokalizacja:Możesz szukać :)
Offline

Napisano 02.12.2018 14:17

Dobra, zrobiłem wszystko, za***iście to śmiga :D

Dzięki za pomoc <3


  • +
  • -
  • 0




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

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