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
CoD Nowy

Blokada stawiania min itp w malych pomieszczeniachi w przejsciach 1x1

cod nowy

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

#1 MAthiasssMAt

    Zaawansowany

  • Użytkownik

Reputacja: 42
Pomocny

  • Postów:78
  • Imię:Mateusz
  • Lokalizacja:Daleko
Offline

Napisano 22.01.2012 17:23

Zainspirowany http://amxx.pl/topic...miny-przejscia/ Tym tematem, przerobiłem go na nowego cod moda.
Ta modyfikacja blokuje całkowicie użycie komend/klawiszy:

[Edytowane w silniku] C / useperk / radio3
[Edytowane dla każdej klasy osobno] E / +use





Edycja w silniku:

1.Otwieramy nasz silnik (QTM_CodMod.sma)

2. Szukamy

register_clcmd("useperk", "UzyjPerku");
register_clcmd("radio3", "UzyjPerku");


i zamieniamy na

register_clcmd("useperk", "cmdSprawdz");
register_clcmd("radio3", "cmdSprawdz");

3. Szukamy

public UzyjPerku(id)
{
if(!is_user_alive(id))
  return PLUGIN_HANDLED;

new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_used", FP_CELL);
ExecuteForward(forward_handle, id, id);
DestroyForward(forward_handle);
return PLUGIN_HANDLED;
}

usuwamy i w to miejsce wklejamy to:

public cmdSprawdz(id){
		new Float:vfOrigin[3];
new name [32];
	get_user_name(id, name, 31);
		pev(id, pev_origin, vfOrigin);
	  
		if(czyDuzoMiejsca(vfOrigin, 135.0))
			   UzyjPerku(id);
		else
				client_print(id, print_chat, "Nie uzywamy tego w malych pomieszczeniach!");
}
czyDuzoMiejsca(const Float:vfPunkt[3], Float:odleglosc){
		new Float:vfStart[3], Float:vfEnd[3];
	  
		vfStart[0] = vfEnd[0] = vfPunkt[0];
		vfStart[1] = vfEnd[1] = vfPunkt[1];
		vfStart[2] = vfEnd[2] = vfPunkt[2];
	  
		//1
		vfStart[0] += odleglosc;
		vfEnd[0] -= odleglosc;
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
	  
		//2
		vfStart[0] -= odleglosc;
		vfEnd[0] += odleglosc;
		vfStart[1] += odleglosc;
		vfEnd[1] -= odleglosc;
	  
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
		return 1;
}
public UzyjPerku(id)
{
if(!is_user_alive(id))
  return PLUGIN_HANDLED;

new forward_handle = CreateOneForward(pluginy_perkow[perk_gracza[id]], "cod_perk_used", FP_CELL);
ExecuteForward(forward_handle, id, id);
DestroyForward(forward_handle);
return PLUGIN_HANDLED;
}



Edycja dla każdej klasy osobno

1. Otwieramy sma naszej klasy (dla przykładu saper)

2. Za #include <hamsandwich> dopisujemy:
#include <amxmisc>
#include <fakemeta>

3. Zamieniamy (tylko nazwe) public cod_class_skill_used(id) na :
public stawianie(id)

4. Przed naszym aktualnym public ( public stawianie(id) ) dodajemy:

public cod_class_skill_used(id)
{
		new Float:vfOrigin[3];
new name [32];
	get_user_name(id, name, 31);
		pev(id, pev_origin, vfOrigin);
	  
		if(czyDuzoMiejsca(vfOrigin, 135.0))
               stawianie(id);
		else
				client_print(id, print_chat, "Nie uzywamy tego w malych pomieszczeniach!");
}
czyDuzoMiejsca(const Float:vfPunkt[3], Float:odleglosc){
		new Float:vfStart[3], Float:vfEnd[3];
	  
		vfStart[0] = vfEnd[0] = vfPunkt[0];
		vfStart[1] = vfEnd[1] = vfPunkt[1];
		vfStart[2] = vfEnd[2] = vfPunkt[2];
	  
		//1
		vfStart[0] += odleglosc;
		vfEnd[0] -= odleglosc;
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
	  
		//2
		vfStart[0] -= odleglosc;
		vfEnd[0] += odleglosc;
		vfStart[1] += odleglosc;
		vfEnd[1] -= odleglosc;
	  
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
		return 1;
}

Gotowego sapera daje w załączniku



Zabraniam kopiowania poradnika na inne strony bez mojej wiedzy

Załączone pliki


Użytkownik MAthiasssMAt edytował ten post 29.01.2012 11:18

  • +
  • -
  • 4
Moje skrypty w php itd znajdziesz na chomiku:

http://chomikuj.pl/harry95-95

#2 SoPelQ

    Banned

  • Zbanowany

Reputacja: 7
Nowy

  • Postów:121
  • Lokalizacja:Utajnione
Offline

Napisano 26.01.2012 16:20

Czy nie będzie błędów po 1 podmiance jeżeli na codzie mam 2 perki?

#3 M&M's

    Życzliwy

  • Użytkownik

Reputacja: 28
Życzliwy

  • Postów:30
  • Imię:Matt
  • Lokalizacja:AXE
Offline

Napisano 26.01.2012 18:50

To nie dziala do końca dobrze czyli można postawić miny jak jest skrzynia obok skrzyni
  • +
  • -
  • 0
Kliknij
Dołączona grafikaIP:79.133.192.41:27036
Dołączona grafikaIP:79.133.192.41:27028
Dołączona grafika
IP:31.186.83.188:27040
Dołączona grafikaIP:79.133.192.45:27077
Dołączona grafika
IP:31.186.83.188:27047

#4 MAthiasssMAt

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 42
Pomocny

  • Postów:78
  • Imię:Mateusz
  • Lokalizacja:Daleko
Offline

Napisano 27.01.2012 15:44

Co do skrzyń to w rogach idzie, a konfigurować szczegółowo zasięg badanego terenu możemy dzięki:

if(czyDuzoMiejsca(vfOrigin, 135.0))

Ja osobiście mam ustawione na 150 i od tego czasu nie było żadnego bana za miny 1x1

------------------------------------------------------------------

DLA 2 PERKóW - Edycja w silniku:

1.Otwieramy nasz silnik (QTM_CodMod.sma)

2. Szukamy

register_clcmd("useperk", "UzyjPerku");
register_clcmd("radio3", "UzyjPerku");


i zamieniamy na

register_clcmd("useperk", "cmdSprawdz");
register_clcmd("radio3", "cmdSprawdz");

3. Szukamy

		register_clcmd("useperk2", "UzyjPerku2");
		register_clcmd("radio2", "UzyjPerku2");

i zamineiamy na:

		register_clcmd("useperk2", "cmdSprawdz2");
		register_clcmd("radio2", "cmdSprawdz2");

4. Szukamy


public UzyjPerku(id)
		return UzyjPerki(id, 0);

usuwamy i w to miejsce wklejamy to:

public cmdSprawdz(id){
		new Float:vfOrigin[3];
new name [32];
	get_user_name(id, name, 31);
		pev(id, pev_origin, vfOrigin);
	  
		if(czyDuzoMiejsca(vfOrigin, 135.0))
               UzyjPerku(id);
		else
				client_print(id, print_chat, "Nie uzywamy tego w malych pomieszczeniach!");
}
czyDuzoMiejsca(const Float:vfPunkt[3], Float:odleglosc){
		new Float:vfStart[3], Float:vfEnd[3];
	  
		vfStart[0] = vfEnd[0] = vfPunkt[0];
		vfStart[1] = vfEnd[1] = vfPunkt[1];
		vfStart[2] = vfEnd[2] = vfPunkt[2];
	  
		//1
		vfStart[0] += odleglosc;
		vfEnd[0] -= odleglosc;
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
	  
		//2
		vfStart[0] -= odleglosc;
		vfEnd[0] += odleglosc;
		vfStart[1] += odleglosc;
		vfEnd[1] -= odleglosc;
	  
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
		return 1;
}
public UzyjPerku(id)
		return UzyjPerki(id, 0);


5. Szukamy


public UzyjPerku2(id)
		return UzyjPerki(id, 1);

usuwamy i w to miejsce wklejamy to:

public cmdSprawdz2(id){
		new Float:vfOrigin[3];
new name [32];
	get_user_name(id, name, 31);
		pev(id, pev_origin, vfOrigin);
	  
		if(czyDuzoMiejsca(vfOrigin, 135.0))
			   UzyjPerku2(id);
		else
				client_print(id, print_chat, "Nie uzywamy tego w malych pomieszczeniach!");
}
czyDuzoMiejsca(const Float:vfPunkt[3], Float:odleglosc){
		new Float:vfStart[3], Float:vfEnd[3];
	  
		vfStart[0] = vfEnd[0] = vfPunkt[0];
		vfStart[1] = vfEnd[1] = vfPunkt[1];
		vfStart[2] = vfEnd[2] = vfPunkt[2];
	  
		//1
		vfStart[0] += odleglosc;
		vfEnd[0] -= odleglosc;
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
	  
		//2
		vfStart[0] -= odleglosc;
		vfEnd[0] += odleglosc;
		vfStart[1] += odleglosc;
		vfEnd[1] -= odleglosc;
	  
		if(engfunc( EngFunc_PointContents, vfStart ) != CONTENTS_EMPTY
		&& engfunc( EngFunc_PointContents, vfEnd ) != CONTENTS_EMPTY)
				return 0;
		return 1;
}
public UzyjPerku2(id)
		return UzyjPerki(id, 1);

Użytkownik MAthiasssMAt edytował ten post 29.01.2012 11:25

  • +
  • -
  • 0
Moje skrypty w php itd znajdziesz na chomiku:

http://chomikuj.pl/harry95-95

#5 HaDeS From HELL

    CoD MoD Fanatyk

  • Użytkownik

Reputacja: 163
Profesjonalista

  • Postów:453
  • Lokalizacja:Szczecin
Offline

Napisano 27.01.2012 19:07

Jak mam rozumieć to blokuję tylko miny, czy też rakietki i inne umiejętności perków typu apteczka itp ?
  • +
  • -
  • 0

#6 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

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

Napisano 27.01.2012 19:34

jak dodasz w główne *.sma codmoda to wszystkich perków nie bedzie mozna uzyc w malych pomieszczeniach, jezeli w *.sma perku, to tylko dana klasa/perk nie mozna stawiac min w cisnych pomieszczeniach
  • +
  • -
  • 0

#7 MAthiasssMAt

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 42
Pomocny

  • Postów:78
  • Imię:Mateusz
  • Lokalizacja:Daleko
Offline

Napisano 27.01.2012 19:39

Dokładnie jak napisał Up.
Jednak lepiej dać w silnik cały, bo czasami na serwerach cod mod jest zakaz puszczania rakiet w przejściach (nie wiem poco).
Ale do perku można dać podobnie jak do klasy :)
  • +
  • -
  • 0
Moje skrypty w php itd znajdziesz na chomiku:

http://chomikuj.pl/harry95-95

#8 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

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

Napisano 28.01.2012 22:47

wg mnie juz lepiej dwa razy do klasy jak wszystkie perki blokowac

@Po co to ?

register_clcmd("blabla321", "stawianie");


Jezeli wystarczy

client_cmd(id, "blabla321");



zamienic na

stawianie(id);

  • +
  • -
  • 1

#9 MAthiasssMAt

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 42
Pomocny

  • Postów:78
  • Imię:Mateusz
  • Lokalizacja:Daleko
Offline

Napisano 29.01.2012 11:16

W sumie masz racje. I nie będzie bynajmniej spamu w konsoli.
Zaraz edytuje :)
  • +
  • -
  • 0
Moje skrypty w php itd znajdziesz na chomiku:

http://chomikuj.pl/harry95-95

#10 Kronzu

    Jestem Koks'em i tyle :D

  • Zbanowany

Reputacja: 28
Życzliwy

  • Postów:275
  • GG:
  • Imię:Eryk
  • Lokalizacja:Częstochowa
Offline

Napisano 22.07.2012 13:44

Może mi ktoś poprawić .sma bo mi nie chodzą. Zrobiłem tak jak kazałeś i mam błędy czemu?

Załączone pliki



#11 d0naciak

    Godlike

  • Power User

Reputacja: 1 029
Hero

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

Napisano 22.07.2012 21:37

kod jest pogmatfany
Uzyj funkcji identier w amxx studio
  • +
  • -
  • 0

#12 V!p3r

    Zaawansowany

  • Użytkownik

Reputacja: 13
Początkujący

  • Postów:90
  • Steam:steam
  • Imię:Tomek
  • Lokalizacja:Bojanowo
Offline

Napisano 05.10.2012 22:59

Sorry za refresha, ale ten temat mnie zaciekawił.
Więc mam taką prośbę. Czy dałoby radę przerobić to na blokadę tylko min w przejściach?
Wszystko inne może być, ale żeby tylko miny były zablokowane.
  • +
  • -
  • 0

#13 SoPelQ

    Banned

  • Zbanowany

Reputacja: 7
Nowy

  • Postów:121
  • Lokalizacja:Utajnione
Offline

Napisano 06.10.2012 14:24

Możesz jedynie edytować to w danej klasie, perku. Jednak dla samych min (wszędzie) tego nie wykonasz.





Również z jednym lub większą ilością słów kluczowych: cod nowy

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

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