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 Stary

Miny [przejścia]

CoD Stary

  • Zamknięty Temat jest zamknięty
10 odpowiedzi w tym temacie

#1 krysteksulek

    Zaawansowany

  • Zbanowany

Reputacja: 17
Początkujący

  • Postów:133
  • GG:
  • Imię:Krystek
  • Lokalizacja:Ateny
Offline

Napisano 13.03.2011 23:49

Witam. Jak zrobić pewną blokadę na miny? Żeby w wąskich przejśiach nie dało się ich stawiać. Np żeby określić [zdefiniować] dozwoloną odległość pomiędzy dwoma ściankami.

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 16.03.2011 23:28

Sprawdź czy to Ci odpowiada

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN "Czy duzo miejsca?"
#define VERSION "1.0"
#define AUTHOR "R3X"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("sprawdz", "cmdSprawdz");
}
public cmdSprawdz(id){
	new Float:vfOrigin[3];
	pev(id, pev_origin, vfOrigin);
	
	if(czyDuzoMiejsca(vfOrigin, 50.0))
		client_print(id, print_chat, "Jest wystarczajaco duzo miejsca");
	else
		client_print(id, print_chat, "Nie ma wystarczajaco duzo miejsca");
}

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;
}

  • +
  • -
  • 4

#3 krysteksulek

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 17
Początkujący

  • Postów:133
  • GG:
  • Imię:Krystek
  • Lokalizacja:Ateny
Offline

Napisano 17.03.2011 21:38

To ma być w oddzielnym pluginie? Jest to już przypisane do min?

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 17.03.2011 22:30

nie

funkcja czyDuzoMiejsca() ma potencjalnie chronić przed podłożeniem miny w przejściu; ten plugin po wpisaniu w konsoli
sprawdz
wypisuje informacje czy dopuściłby podłożenie miny w miejscu gdzie stoisz
  • +
  • -
  • 1

#5 krysteksulek

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 17
Początkujący

  • Postów:133
  • GG:
  • Imię:Krystek
  • Lokalizacja:Ateny
Offline

Napisano 17.03.2011 22:42

Dzięki, drugi plusik :)

Dodano 17 marzec 2011 - 23:23:
A i teraz jak zmieniać odległośc?

Dodano 17 marzec 2011 - 23:34:
To jest tylko na sprawdzanie, ale min i tak nie blokuje w miejscu zakazanym. I powiedz jak zmieniać odległość.

#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 17.03.2011 23:40

to tylko sprawdza, jeśli będzie 0 to masz nie podkładać miny;
potrzebuję źródła, żeby to uzupełnić albo sam ogarniesz

czyDuzoMiejsca(vfOrigin, odleglosc)
np.
czyDuzoMiejsca(vfOrigin, 33.0)

jeśli to zwróci 0 to wyjdź z funkcji podkładającej minę
  • +
  • -
  • 0

#7 krysteksulek

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 17
Początkujący

  • Postów:133
  • GG:
  • Imię:Krystek
  • Lokalizacja:Ateny
Offline

Napisano 18.03.2011 00:13

A to czyDuzoMiejsca to należy do public cmdSprawdz ?

Dodano 18 marzec 2011 - 00:17:
Najlepiej dam przykładowe sma i tam zrób a ja sobie poradze.


Załączony plik  QTM_CodMod.sma   48,95 KB  43 Ilość pobrań
  QTM_CodMod.amxx

#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 18.03.2011 00:30

Wklejka 13004045512873 - AMXX.pl: Support AMX Mod X

a tak :)

to 33.0 możesz dać do cvara i
cvar_odleglosc = register_cvar("amx_miny_odleglosc", "33.0");
if(!czyDuzoMiejsca(origin, get_pcvar_float(cvar_odleglosc)))

  • +
  • -
  • 1

#9 krysteksulek

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 17
Początkujący

  • Postów:133
  • GG:
  • Imię:Krystek
  • Lokalizacja:Ateny
Offline

Napisano 18.03.2011 00:33

ok zobacze

Dodano 18 marzec 2011 - 01:01:
A ten cvar gdzie?

if(!czyDuzoMiejsca(origin, get_pcvar_float(cvar_odleglosc)))



Użytkownik krysteksulek edytował ten post 18.03.2011 00:48


#10 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 18.03.2011 12:47

to jest opcjonalne, nie umiesz dodać to zostaw :>
  • +
  • -
  • 0

#11 krysteksulek

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 17
Początkujący

  • Postów:133
  • GG:
  • Imię:Krystek
  • Lokalizacja:Ateny
Offline

Napisano 18.03.2011 17:06

Dobra już wiem, będe sprawdzał

Użytkownik krysteksulek edytował ten post 18.03.2011 17:08






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

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

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