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

Modele broni : m4a1,deagle,knife


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

#1 Blondyneczka ;*

    Profesjonalista

  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 28.05.2012 13:41

Witam ! chcę zmienić modele broni klasie lecz nie wiem jak to uzupełnić. to kod sma :

public fw_SetModel(entity, model[])
{
		if(!pev_valid(entity))
				return FMRES_IGNORED

		if(!equali(model, "models/w_m3.mdl"))  
				return FMRES_IGNORED;

		new entityowner = pev(entity, pev_owner);
		
		if(!ma_klase[entityowner])  
				return FMRES_IGNORED;

		engfunc(EngFunc_SetModel, entity, "models/cod/w_m3.mdl")
		return FMRES_SUPERCEDE
}

To ścieżka nowego modelu :

precache_model("models/CoD/soldat/p_m4a1.mdl");
precache_model("models/CoD/soldat/p_deagle.mdl");
precache_model("models/CoD/soldat/p_knife.mdl");

Użytkownik WiWa edytował ten post 28.05.2012 13:42


#2 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 28.05.2012 14:42

Najpierw musisz się dowiedzieć jaka jest domyślna ścieżka do modelu danej broni. Gdy to znajdziesz, wpisujesz tą ścieżkę w tej linii:
if(!equali(model, "models/w_m3.mdl")) 
zamiast podanej tam ścieżki. Jeśli chcesz zrobić to dla kilku broni, zrób tak:
if(!equali(model, "models/w_m3.mdl")&&!equali(model, "models/w_m4a1.mdl"))

Możesz tu podać tyle modeli, ile chcesz.

Następnie podajesz ścieżkę do nowej broni tutaj:
engfunc(EngFunc_SetModel, entity, "models/cod/w_m3.mdl") 

zamiast tej wpisanej. Jeśli chcesz zrobić to dla wielu broni, musisz skonstruować odpowiednie warunki:
if(equali(model, "models/w_m3.mdl"))
engfunc(EngFunc_SetModel, entity, "models/cod/w_m3.mdl")
else if(equali(model, "models/w_m4a1.mdl"))
engfunc(EngFunc_SetModel, entity, "models/cod/w_m4a1.mdl")
itp.

UWAGA !! O ile na Windowsie wielkość znaków nie ma znaczenia, o tyle na Linuksie (na którym działa większość, jak nie wszystkie serwery CS) ma znaczenie, więc folder CoD to całkiem inny folder, niż cod. Dlatego zaleca się wszystkie foldery i pliki nazywać małymi literami, gdyż później są konflikty (np na serwerze masz 2 modele o tej samej nazwie "w_m3.mdl", ale w 2ch różnych folderach o nazwach cod i CoD. Chcesz dla jednej klasy przypisać jeden model, a dla drugiej inny i to NIE ZADZIAŁA. Obie klasy będą miały jeden z tych modeli, w zależności od tego, który graczowi model pobierze się jako pierwszy).

Użytkownik GwynBleidD edytował ten post 28.05.2012 15:12

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#3 Blondyneczka ;*

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 28.05.2012 14:54

Dzięki !. To co tu zrobiłem źle?? i jak ja nie mam pliku v_model to co mam zrobić ???


#include <amxmodx>
#include <codmod>
#include <engine>
#include <fakemeta>
		
new bool:ma_klase[33];
	
new const nazwa[]   = "Soldat (P)";
new const opis[]	= "Dostajesz Golden M4a1, Golden deagle + 2x wieksze obrazenia oraz Golden Noz, po wybraniu go jestes bardzo szybki!";
new const bronie	= (1<<CSW_HEGRENADE)|(1<<CSW_FIVESEVEN)|(1<<CSW_MP5NAVY);
new const zdrowie   = 0;
new const kondycja  = 0;
new const inteligencja = 0;
new const wytrzymalosc = 0;
	
public plugin_init()
{
	register_plugin(nazwa, "1.0", "amxx.pl");

	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
	
	register_event("CurWeapon", "CurWeapon", "be", "1=1")
	register_forward(FM_SetModel, "fw_SetModel");
}

public cod_class_enabled(id)
{
		ma_klase[id] = true;
}

public cod_class_disabled(id)
{
		ma_klase[id] = false;
}

public plugin_precache()
{
		precache_model("models/CoD/soldat/p_m4a1.mdl");
		precache_model("models/CoD/soldat/v_m4a1.mdl");
		precache_model("models/CoD/soldat/p_deagle.mdl");
		precache_model("models/CoD/soldat/v_deagle.mdl");
		precache_model("models/CoD/soldat/p_knife.mdl");
		precache_model("models/CoD/soldat/v_knife.mdl");
}

public CurWeapon(id)
{
		new weapon = read_data(2);

		if(ma_klase[id])
		{
				if(weapon == CSW_M4A1)
				{
						set_pev(id, pev_viewmodel2, "models/CoD/soldat/v_m4a1.mdl")
					  
						set_pev(id, pev_weaponmodel2, "models/CoD/soldat/p_m4a1.mdl")
   		
   		if(weapon == CSW_DEAGLE )
				{
						set_pev(id, pev_viewmodel2, "models/CoD/soldat/v_deagle.mdl")
					  
						set_pev(id, pev_weaponmodel2, "models/CoD/soldat/p_deagle.mdl")
			
   		if(weapon == CSW_KNIFE)
				{
						set_pev(id, pev_viewmodel2, "models/CoD/soldat/v_knife.mdl")
					  
						set_pev(id, pev_weaponmodel2, "models/CoD/soldat/p_knife.mdl")
						
				}
		}
}

public fw_SetModel(entity, model[])
{
		if(!pev_valid(entity))
				return FMRES_IGNORED

		if(!equali(model, "models/w_m4a1.mdl")&&!!equali(model, "models/w_deagle.mdl")&&!!equali(model, "models/w_knife.mdl"))
				return FMRES_IGNORED;

		new entityowner = pev(entity, pev_owner);
		
		if(!ma_klase[entityowner])  
				return FMRES_IGNORED;

		if(equali(model, "models/cod/w_m4a1.mdl"))
				 engfunc(EngFunc_SetModel, entity, "models/cod/w_deagle.mdl")
		else if(equali(model, "models/w_m4a1.mdl"))
				 engfunc(EngFunc_SetModel, entity, "models/cod/w_knife.mdl")

		return FMRES_SUPERCEDE
}

Użytkownik WiWa edytował ten post 28.05.2012 14:56


#4 radim

    Godlike

  • Moderator

Reputacja: 939
Master

  • Postów:2 725
  • Steam:steam
  • Imię:Arkadiusz
  • Lokalizacja:Janów Lub.
Offline

Napisano 28.05.2012 15:05

i jak ja nie mam pliku v_model to co mam zrobić

To nie podmieniasz modelu v_* :giggle:
  • +
  • -
  • 0

Chcąc napisać do mnie prywatną wiadomość, wpierw zapoznaj się ze stroną "O mnie" w moim profilu użytkownika [ radim ] !


#5 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 28.05.2012 15:15

Sorki, machnąłem się i wstawiłem w jednym miejscu 2 wykrzykniki zamiast jednego, poprawiłem to w swoim poście, popraw u siebie w kodzie ;)

Modele w_ też musisz precache'ować, jeśli je podmieniasz. Dodatkowo błędnie zrobiłeś warunki do podmiany przy modelach w_
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#6 Blondyneczka ;*

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: -2
Nowy

  • Postów:177
  • Lokalizacja:Wrocławek
Offline

Napisano 28.05.2012 17:46

Zrobiłem literówkę. nie mam modelu w_

To jak ten kod ma wyglądać?

public fw_SetModel(entity, model[])
{
                if(!pev_valid(entity))
                                return FMRES_IGNORED

                if(!equali(model, "models/w_m4a1.mdl")&&!!equali(model, "models/w_deagle.mdl")&&!!equali(model, "models/w_knife.mdl"))
                                return FMRES_IGNORED;

                new entityowner = pev(entity, pev_owner);
                
                if(!ma_klase[entityowner])  
                                return FMRES_IGNORED;

                if(equali(model, "models/cod/w_m4a1.mdl"))
                                 engfunc(EngFunc_SetModel, entity, "models/cod/w_deagle.mdl")
                else if(equali(model, "models/w_m4a1.mdl"))
                                 engfunc(EngFunc_SetModel, entity, "models/cod/w_knife.mdl")

                return FMRES_SUPERCEDE
}

Proszę o szybką pomoc

#7 Gość_21977_*

  • Gość

Reputacja: 0

Offline

Napisano 30.05.2012 08:02

To jak nie masz modeli w_ to jakim cudem chcesz modele w_ podmienić?

BTW.

if(!equali(model, "models/w_m4a1.mdl")&&!!equali(model, "models/w_deagle.mdl")&&!!equali(model, "models/w_knife.mdl"))

Zamień podwójne wykrzykniki na pojedyncze (lub zmień ich liczbę na n∈ℕ; n≡1 (mod 2))

Zauważ też, że dla fm_setModel, właścicielem bytu niekoniecznie musi być gracz, a np. NPC, warto sprawdzić więc, czy jest to gracz, choćby funkcją IsPlayer(id):
#define IsPlayer(%1) (1 <= %1 <= gMaxClients)
gdzie w plugin_init należy dodać gMaxClients=get_maxplayers(), a gMaxClients zadeklarować jako zmienną globalną.




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

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