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
 

grankee - zdjęcie

grankee

Rejestracja: 06.06.2008
Aktualnie: Nieaktywny
Poza forum Ostatnio: 22.06.2017 21:14
****-

#731729 dodanie dmg+int z broni gdy klasa mam mniej niż 85hp

Napisane przez grankee w 21.10.2016 19:24

nie pamiętam co dokładnie zwarac get_user_weapon, ale spróbuj użyć cs_get_user_weapon jeśli przyrównujesz to do enuma z cstrike (CSW_)


  • +
  • -
  • 1


#731381 Dodanie broni

Napisane przez grankee w 09.10.2016 09:44

Musisz zrobić model, przypisać dla danej broni, najlepiej niestrzelającej jeśli Twoja broń ma być z goła inna (rakietnica, granatnik etc...) żeby uniknąć blokowania strzałów, następnie obsługa LPM i PPM. W zmiennej globalnej przechowujesz info czy ktoś daną broń ma posiadać.


  • +
  • -
  • 1


#726564 jak utworzyć oraz zablokowac informacje smierci

Napisane przez grankee w 25.05.2016 22:18

w plugin_init()
register_message(get_user_msgid("DeathMsg"),"dmsg")


public dmsg()
{
return PLUGIN_HANDLED
}

a tworzenie:

https://amxx.pl/dokumentacja/f1089/make-deathmsg

  • +
  • -
  • 1


#726560 Tworzenie i modyfikacja entity

Napisane przez grankee w 25.05.2016 21:57

hmmm bytu jako takiego, który by zatrzymał kule to się raczej zrobić nie da, ale możesz spróbować get_user_aim(id), jesli patrząc na ściane zwróci id tejże ściany to w ham_takedamage dajesz get_user_aim(attacker) i jeśli zwróci ściany id to blokujesz obrażenia, bo to znaczy, że w momencie strzału miał celownik na ścianie.

Nie do końca będzie to sprawne, bo między ścianą a graczem może być coś jeszcze, wtedy nie zblokuje obrażeń i jeśli będzie dość mocna broń (awp) to ktoś za ścianą też oberwie.

 

Inna opcja to wykrywanie obrażeń zadanych ścianie, zwrócenie jej hp (aby nie dało się jej zniszczyć), blokada zadawania obrażeń dla attackera na ułamek sekundy(najdłużej do momentu oddania kolejnego strzału). Wtedy obiekt przed ścianą dostanie obrażenia, ale już ten za ścianą będzie miał zblokowane. Oczywiście też w ham_takedamage.


  • +
  • -
  • 1


#725078 [ROZWIĄZANE] poruwnywanie zmiennych miedzy graczami

Napisane przez grankee w 18.04.2016 19:41

Lol 

TheMarkerxD.

Nie ma to jak zapytać, dostać wskazówki i oznaczyć swoją odpowiedź jako najlepszą :D


  • +
  • -
  • 1


#724944 Jak wykryć func_breakable 20 unitów przed bytem ?

Napisane przez grankee w 17.04.2016 00:03

Po zakrzywieniu toru lotu dajesz to samo co po wystrzeleniu ale juz z nowymi parametrami lotu wiec to zaden problem.


  • +
  • -
  • 1


#724925 Jak wykryć func_breakable 20 unitów przed bytem ?

Napisane przez grankee w 16.04.2016 14:42

Ja widzę różne opcje:

- Zwiększ wymiary boxu strzały tak aby sięgały 30 unitów. Wtedy touchem wykryjesz. Opcja o tyle niedokładna, że zależnie od kąta nachylenia itd box bytu będzie większy także w niepotrzebnych wymiarach przez co może przelatywać obok func_breakable i go zniszczyć.

- Licz w częstym thinku tego bytu odległość od wszystkich func_breakable na mapie i jeśli jest odpowiednio mała to wywołuj obrażenia na func_breakable. Tutaj możesz się bawić do woli, zaleznie od kątu nachylenia liczysz odległość tylko w jednym kierunku, w którym leci strzała, w zasadzie ogranicza Cię tylko wiedza z matmy a dokładniej geometrii no i optymalność.

- Ostatni wydaje mi się najsensowniejszy. Nie wiem jaki movetype ma Twoja strzała, ale zakładam, że nie leci po linii prostej tylko działa nań grawitacja. Jeśli nie to nawet prościej będzie.

---Jeśli leci prosto to puszczasz traceline w kierunku gdzie leci. Jak traceline przetnie funca to Tworzysz nextthink na przybliżony czas kiedy doleci. Wzór na prędkość/drogę/czas znasz :D Wtedy w tym thinku sprawdzasz czy jest odpowiednio blisko żeby rozwalić 'kratkę', jeśli nie to tworzysz nextthink na bardzo krótki czas i sprawdzasz ponownie i tak do skutku. Jeśli na drodze nie ma żadnego func_breakable to nie ustawiasz thinka do sprawdzenia, bo i po co. 

---Jeśli leci z lekką grawitacją to już trochę więcej zabawy, ale dalej da się przewidzieć gdzie poleci. Nie wiem jak to dokładnie zrobić, ale widziałem kiedys plugin DarkGL, który malował łukowatą linię wskazującą gdzie poleci granat po rzucie. Może tak znajdziesz sposób jak przewidzieć drogę strzały.


  • +
  • -
  • 1


#724854 Limit CT - funkcja licząca graczy w TT

Napisane przez grankee w 15.04.2016 14:07

Od tego żebym wiedział kto ostatni doszedł do ct, bo ten gracz będzie wyrzucany do terro. Funkcja nbatomiast zwraca mi tego gracza, a w przypadku jak go już nie ma to zwraca mi losowego gracza do przerzucenia na początku rundy. Jak teraz patrzę to funkcja ta w zasadzie nie jest potrzebna, bo ten prosty warunek mogłem dać tam gdzie jej wywołanie, ale na początku inny miałem koncept i tak zostało.


  • +
  • -
  • 1


#724841 Dodanie speeda po skoku, jak to zrobić?

Napisane przez grankee w 15.04.2016 01:53

Czyli chcesz wyłapać skok i dać po prostu kopa?

 

Kolegów wyżej lepiej nie słuchać  :cfaniak:

#include <amxmodx>
#include <amxmisc>
#include <engine>




public plugin_init() {
	register_plugin("Jump boost","0.1","grankee")
	
	// Add your code here...
}
public client_PreThink(id)
{
	if((get_user_button(id)&IN_JUMP)&&(!get_user_oldbutton(id)&IN_JUMP))//skok
	{
		new Float:flVecVelocity[3]
		get_user_velocity(id,flVecVelocity)//pobieramy prędkość gracza
                //tworzymy zmienna wspolczynnik
		new Float:wsp=0.1// 0.1 zwiększy o 10%, ustaw ile chcesz, ale musi być po przecinku.
		//zwiększamy prędkość o współczynnik w trzech kierunkach, jeśli chcesz tylko w górę zwiększyć to usuń dwie oznaczone linijki
                flVecVelocity[0]*=wsp;//usun jesli chcesz tylko w górę przyspieszyć
		flVecVelocity[1]*=wsp;//usun jesli chcesz tylko w górę przyspieszyć
		flVecVelocity[2]*=wsp;
		set_user_velocity(id,flVecVelocity)//ustawiamy nowa zwiekszona predkosc
	}
}

  • +
  • -
  • 1


#724839 [ROZWIĄZANE] poruwnywanie zmiennych miedzy graczami

Napisane przez grankee w 15.04.2016 01:38

-a co jeśli dwie osoby mają ten sam wynik punktowy?

-a gdzie drugie i trzecie miejsce?


  • +
  • -
  • 1


#724312 Kod na dźwięk na koniec rundy

Napisane przez grankee w 07.04.2016 02:42

event RoundEnd, poszukaj w tutku o eventach, potem stopsound i odtwarzasz swoj dzwiek


  • +
  • -
  • 1


#724309 Jak zrobić zapis danych w sourcemod?

Napisane przez grankee w 07.04.2016 02:25

https://www.youtube....h?v=99JAI24Zd24


  • +
  • -
  • 1


#724196 Problem z wyświetlaniem wiadomości w hud

Napisane przez grankee w 04.04.2016 22:09

Bo event konca rundy nie ma id.

musisz uzyc petli 

for(new i=1;i<33;i++)
{
if(!is_user_connected(i)) continue
if(costam)
{
 monety[i]+=MONETY
client_print(i,print_chat,"dostales %d monet",MONETY)
}
}

Zwróć uwagę, że po prawej stronie postu są takie strzałeczki, zielona i czerwona. Jak jakiś post Ci pomógł, to klikasz przy nim tą zieloną. Analogicznie postępujesz z każdym pomocnym postem. 


  • +
  • -
  • 1


#724166 Problem z HAMSANDWICH i pluginem

Napisane przez grankee w 04.04.2016 03:15

http://amxx.pl/topic...i-silnika-hlds/


  • +
  • -
  • 1


#724165 Problem z wyświetlaniem wiadomości w hud

Napisane przez grankee w 04.04.2016 03:14

Bo w funkcji tasku zmienna id ma wartość 0, po czym próbujesz pobrać hp z id 0, które zwraca 0 i dodatkowo sra błędami (zerknij do error logów).

Ustawiając taska nie nadałeś mu żadnego id przecież.


  • +
  • -
  • 1