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 ze zmianą ubrania dla klasy - CoD MoD


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

#1 Scorpion Flail

    Wszechobecny

  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 28.07.2013 21:10

Witam. Mam problem ze zmianą ubrania dla klasy [TT i CT]

Udało mi się już dodać oddzielny model dla TT i CT w tej klasie, jednak po zdobyciu itemów zmieniających ubranie na przeciwnika [np podręcznik szpiega] wygląd robi się standardowy, przykład:

 

Gracz posiada klasę w wyglądem i jest w TT. Otrzymuje przedmiot, który zmienia wygląd modelu na przeciwnej drużyny. W tym momencie powinien się zmienić ten model na wygląd CT. Zamiast tego zmienia się na wygląd przeciwnika, ale standardowego modelu, np gign

 

Model zmieniałem tak:

 

w precache dałem ścieżki dla modelu TT i CT [1 model dla każdej drużyny]

 

Następnie w odrodzeniu klasy dodałem coś takiego:

switch(get_user_team(id))
        {
            case 1:
            {
                cs_set_user_model(id, "ścieżkatt");
            }
            case 2:
            {
                cs_set_user_model(id, ""ścieżkact");  
            }
        }

Itemki zmieniające ubiór na przeciwny team mają to:

ZmienUbranie

 

public wygląda tak:

public ZmienUbranie(id,reset)
{
    if (id<1 || id>32 || !is_user_connected(id))
        return PLUGIN_CONTINUE;
    
    if (reset)
        cs_reset_user_model(id);
    else
    {
        new num = random_num(0,3);
        switch(get_user_team(id))
        {
            case 1: cs_set_user_model(id, Ubrania_CT[num]);
            case 2:cs_set_user_model(id, Ubrania_Terro[num]);
        }
    }
    
    return PLUGIN_CONTINUE;
}

 

zmienna z modelami:

new Ubrania_CT[4][]={"sas","gsg9","urban","gign"};
new Ubrania_Terro[4][]={"arctic","leet","guerilla","terror"};

Wydaje mi się, że wystarczy tylko zmienić w publicu zmienubranie i te ubiory, ale nie wiem w jaki sposób to napisać.

 

Liczę na pomoc


  • +
  • -
  • 0

#2 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

  • Postów:2 414
  • GG:
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:Kotlarka
Offline

Napisano 01.08.2013 21:03

public ZmienUbranie(id,reset)
{
    if (id<1 || id>32 || !is_user_connected(id))
        return PLUGIN_CONTINUE;
    
    if (reset)
        cs_reset_user_model(id);
    else
    {
        new num = random_num(0,3);
        switch(get_user_team(id))
        {
            case 1: cs_set_user_model(id, "sciezkact");
            case 2:cs_set_user_model(id, "sciezkatt");
        }
    }
    
    return PLUGIN_CONTINUE;
}

a zmienne z modelami wywal


  • +
  • -
  • 0

#3 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 01.08.2013 21:27

public ZmienUbranie(id,reset)
{
    if (id<1 || id>32 || !is_user_connected(id))
        return PLUGIN_CONTINUE;
    
    if (reset)
        cs_reset_user_model(id);
    else
    {
        new num = random_num(0,3);
        switch(get_user_team(id))
        {
            case 1: cs_set_user_model(id, "sciezkact");
            case 2:cs_set_user_model(id, "sciezkatt");
        }
    }
    
    return PLUGIN_CONTINUE;
}

a zmienne z modelami wywal

 

 

To na pewno zadziała? Bo wydaje mi się, że teraz innym klasom na zwykłych modelach nie będą się zmieniać ubiory.

Posiadam tylko 1 klasę, dla której chcę przypisać osobny model


  • +
  • -
  • 0

#4 Niide

    *** it I'm done

  • Użytkownik

Reputacja: 86
Zaawansowany

  • Postów:216
  • Imię:Paweł
  • Lokalizacja:Holandia
Offline

Napisano 07.08.2013 20:59

Jeżeli masz tylko jedną klasę z innym modelem, a resztę z standardowymi. To zmień zmienne tak:

new Ubrania_CT[5][]={"sas","gsg9","urban","gign","sciezkact"};
new Ubrania_Terro[5][]={"arctic","leet","guerilla","terror","sciezkatt"};

Pytanko. Czy chciałeś zrobić tak, że gracz z nowym modelem, gdy on otrzyma ten przedmiot, to mu się zmienia na nowy model drużyny przeciwnej, a jak nie ma klasy z nowym modelem to mu się zmienia na standardowy przeciwnika?


Użytkownik Niide edytował ten post 07.08.2013 21:01

  • +
  • -
  • 0

kP8HWV.png


#5 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 07.08.2013 21:24


Pytanko. Czy chciałeś zrobić tak, że gracz z nowym modelem, gdy on otrzyma ten przedmiot, to mu się zmienia na nowy model drużyny przeciwnej, a jak nie ma klasy z nowym modelem to mu się zmienia na standardowy przeciwnika?

 

Tak. Gdy mam klasę ze specjalnym ubiorem [osobny dla tt i ct] i gdy jest on np TT to posiadając ten przedmiot, zmieni ubiór na specjalny, ale CT

 

A gdy gracz ze zwykłą klasą [i ubiorem] ma ten przedmiot to zmienia mu na standardowy ubiór, ale przeciwnika.

 

Tutaj właśnie nie jestem pewien czy zawsze zamienia np sas na arctic, gsg9 na leet, czy sobie losuje, np z sas, na terror.


  • +
  • -
  • 0

#6 Niide

    *** it I'm done

  • Użytkownik

Reputacja: 86
Zaawansowany

  • Postów:216
  • Imię:Paweł
  • Lokalizacja:Holandia
Offline

Napisano 07.08.2013 21:35

Spróbuj tak:

public ZmienUbranie(id, reset)
{
	if (id<1 || id>32 || !is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	new model[33];
	cs_get_user_model(id, model, 32);
	
	if (reset)
		cs_reset_user_model(id);
	else
	{
		new num = random_num(0,3);
		if(model[id] == Ubrania_CT[num] && cs_get_user_team(id) == CS_TEAM_CT)
		{
			cs_set_user_model(id, Ubrania_Terro[num]);
		}
		else if(model[id] == Ubrania_Terro[num] && cs_get_user_team(id) == CS_TEAM_T)
		{
			cs_set_user_model(id, Ubrania_CT[num]);
		}
		else if(cs_get_user_team(id) == CS_TEAM_T && model[id] != Ubrania_Terro[num])
		{
			cs_set_user_model(id, "sciezkact");
		}
		else if(cs_get_user_team(id) == CS_TEAM_CT && model[id] != Ubrania_CT[num])
		{
			cs_set_user_model(id, "sciezkatt");
		}
	}
	
	return PLUGIN_CONTINUE;
} 

Jak ma się włączyć standardowy model przeciwnika to się on losuje spośród 4 modeli przeciwnej drużyny.


Użytkownik Niide edytował ten post 07.08.2013 21:36

  • +
  • -
  • 0

kP8HWV.png


#7 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 07.08.2013 21:48

W sumie to ja na początku deklarowałem sobie nazwę skina:

new CTSkin

 

Więc jak zrobię w ten sposób to będzie też poprawnie, tak?:

else if(cs_get_user_team(id) == CS_TEAM_T && model[id] = TTSkin[num])
        {
            cs_set_user_model(id, CTSkin[num]);
        }

I nie wiem czy jak mam po 1 modelu w tt i 1 w ct to ma być to [num]


  • +
  • -
  • 0

#8 Niide

    *** it I'm done

  • Użytkownik

Reputacja: 86
Zaawansowany

  • Postów:216
  • Imię:Paweł
  • Lokalizacja:Holandia
Offline

Napisano 07.08.2013 21:51

[num] dodajesz jak masz 4 modele. Jak masz 1 to daj "CTSkin" samo.

 

Idę spać bo rano do pracy. na razie.


Użytkownik Niide edytował ten post 07.08.2013 21:53

  • +
  • -
  • 0

kP8HWV.png


#9 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 19.08.2013 20:48

Jest błąd przy kompilacji:

Error: Array must be indexed (variable "Ubrania_CT") on line 3256
Error: Array must be indexed (variable "Ubrania_Terro") on line 3260
Error: Array must be indexed (variable "Ubrania_Terro") on line 3264
Error: Array must be indexed (variable "Ubrania_CT") on line 3268

Te linijki to:

if(model[id] == Ubrania_CT[num] && cs_get_user_team(id) == CS_TEAM_CT)
        {
            cs_set_user_model(id, Ubrania_Terro[num]);
        }
        else if(model[id] == Ubrania_Terro[num] && cs_get_user_team(id) == CS_TEAM_T)
        {
            cs_set_user_model(id, Ubrania_CT[num]);
        }
        else if(cs_get_user_team(id) == CS_TEAM_T && model[id] != Ubrania_Terro[num])
        {
            cs_set_user_model(id, "CTSkin");
        }
        else if(cs_get_user_team(id) == CS_TEAM_CT && model[id] != Ubrania_CT[num])
        {
            cs_set_user_model(id, "TTSkin");
        }

Jeszcze raz podaję co mam w tych modelach:

new Ubrania_CT[4][]={"sas","gsg9","urban","gign"};
new Ubrania_Terro[4][]={"arctic","leet","guerilla","terror"};

Myślałem nad equali, ale nie wiem jak to zapisać.


Użytkownik Scorpion Flail edytował ten post 19.08.2013 20:55

  • +
  • -
  • 0

#10 K!113r

    Teraz to chyba Sławek kek

  • Power User

Reputacja: 387
Wszechpomocny

  • Postów:868
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Piotrków Tryb.
Offline

Napisano 19.08.2013 21:00

Stringów się tak nie porównuje, znaki i liczby owszem.
Polecam przeczytać w dokumentacji o equal()
  • +
  • -
  • 0

DarkGL to mój autorytet.

skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować skomplikować


#11 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 19.08.2013 21:20

Niestety nie wiem jak to zrobić.


  • +
  • -
  • 0

#12 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 20.08.2013 17:36

Czy ten model jest na jakas flage?? Czy jest to VIP ??


  • +
  • -
  • 0

#13 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 21.08.2013 13:22

Model jest przypisany do klasy, która jest na flagę.

Tam wszystko dobrze działa, tylko problem z tym itemem/perkiem zmieniającym ubiór na przeciwnika


  • +
  • -
  • 0

#14 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 21.08.2013 16:02

To mozna by dodac warunek, ktory zmienia model, jesli id posiada flage 


  • +
  • -
  • 0

#15 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 21.08.2013 16:31

Klasy premium mam na 1 flagę.

Najlepiej zrobić to właśnie w kodzie perku zmieniającego ubranie.

Sposób Niide jest dobry, tylko trzeba poprawić zapis aby się to skompilowało.

Dlatego prosiłbym o poprawienie tego kodu.

 


  • +
  • -
  • 0

#16 Niide

    *** it I'm done

  • Użytkownik

Reputacja: 86
Zaawansowany

  • Postów:216
  • Imię:Paweł
  • Lokalizacja:Holandia
Offline

Napisano 21.08.2013 20:30

public ZmienUbranie(id, reset)
{
	if (id<1 || id>32 || !is_user_connected(id))
		return PLUGIN_CONTINUE;
		
	new model[33];
	cs_get_user_model(id, model, 32);
	
	if (reset)
		cs_reset_user_model(id);
	else
	{
		static i;
		new num = random_num(0, 3);
		for(i = 0; i < sizeof(Ubrania_CT); i++)
		{
			if(equal(model[id], Ubrania_CT[i]) && cs_get_user_team(id) == CS_TEAM_CT)
			{
				cs_set_user_model(id, Ubrania_Terro[num]);
			}
			else if(cs_get_user_team(id) == CS_TEAM_CT && !equal(model[id], Ubrania_CT[i]))
			{
				cs_set_user_model(id, "sciezkatt");
			}
		}
		for(i = 0; i < sizeof(Ubrania_Terro); i++)
		{
			if(equal(model[id], Ubrania_Terro[i]) && cs_get_user_team(id) == CS_TEAM_T)
			{
				cs_set_user_model(id, Ubrania_CT[num]);
			}
			else if(cs_get_user_team(id) == CS_TEAM_T && !equal(model[id], Ubrania_Terro[i]))
			{
				cs_set_user_model(id, "sciezkact");
			}
		}
	}
	
	return PLUGIN_CONTINUE;
} 

  • +
  • -
  • 0

kP8HWV.png


#17 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 21.08.2013 21:30

Teraz jest tak:

 

zwykłe modele: zmienia na inny rodzaj modelu swojej drużyny [czyli nie zmienia na model przeciwnika]

model dodatkowy: nie działa, zmienia na standardowy model swojej drużyny


  • +
  • -
  • 0

#18 Amaroq

    AMXX Contributor

  • Użytkownik

Reputacja: 304
Wszechpomocny

  • Postów:380
  • GG:
  • Steam:steam
  • Imię:Karol
  • Lokalizacja:Łódź
Offline

Napisano 21.08.2013 22:12

Nie łatwiej dodać to
if(cod_get_user_class(id) == cod_get_classid("nazwa twojej klasy"))
return COD_STOP
do forwardu cod_perk_enabled w perku zmieniającego ubiór? :P
Amaroq (21.08.2013 22:48):
@down Nie wiedziałem ;>

  • +
  • -
  • 0
Plugin informujący o zabiciu zakładnika (wysyła do admina na say nick gracza oraz zapisuje o tym logi) - Hostage Killer v1.3.3
DarkGL to mój autorytet.

#19 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 21.08.2013 22:17

To jest Cod Stary


  • +
  • -
  • 0

#20 Scorpion Flail

    Wszechobecny

  • Autor tematu
  • Użytkownik

Reputacja: 129
Zaawansowany

  • Postów:489
  • GG:
  • Steam:steam
Offline

Napisano 21.08.2013 22:30

Tak jeszcze napisze, że ubiór zmienia się tak:

ZmienUbranie(id, 0);

  • +
  • -
  • 0




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

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