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
 

diggs - zdjęcie

diggs

Rejestracja: 29.01.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 18.02.2017 18:37
*****

#646760 Dziwne zachowanie medelu po podmianie.

Napisane przez BlackPerfum w 01.07.2014 13:59

Dziś zabrałem się za optymalizację tego pluginu i lekka jego modyfikację pytanie tylko czy w tym miejscu to jest literówka czy faktycznie chciałeś w ham drop item podmieniać model p_ bo ja bym wolał podmieniać model w_

Tak literówka xD
 

Mógłbyś troszkę przybliżyć jak działa ten twój sposób który pozwala pominąć sprawdzanie stringów, bo mniej więcej rozumiem, ale nie do końca wiem czemu tak a nie inaczej najbardziej zgubiły mnie offsety w get_pdata.

Niestety nigdzie nazwy tego offsetu nie mogłem znaleźć to machnąłem liczbę xD Tak już tłumaczę:

Interesuje nas ta linijka:
new weapon
if(pev_valid(id) != 2 || pev_valid((weapon = get_pdata_cbase(id,35,4))) != 2 || get_pdata_int(weapon,m_iId,4) != CSW_AWP)	return FMRES_IGNORED
Rozłoże to na części i od razu opiszę:
new weapon	//Tworze zmienną xD (tak niespodziewałeś siie tego)

if(pev_valid(id) != 2)	return FMRES_IGNORED
//Sprawdzam czy byt któremu jest ustwiany model posiada dane pdata (dodatkowo czy jest poprawny)

weapon = get_pdata_cbase(id,35,4)
//Zapisuje do zmiennej "weapon" id bytu broni ze lota nr.1 
//Jak pisałem nie mogłem znaleźć nazwy offsetu a do sdk chwilowo dostępu nie mam :(

if(pev_valid(weapon) != 2)	return FMRES_IGNORED
//Sprawdzam czy byt broni w weaponbox'ie posiada dane pdata (dodatkowo czy jest poprawny)

if(get_pdata_int(weapon,m_iId,4) != CSW_AWP)	return FMRES_IGNORED
//Sprawdzam czy byt broni to awp xD
Potestowałem chwilę nad zoomem i może jeszcze dzisiaj polepszę fix'a do zoom'a ale możę
  • +
  • -
  • 2


#645878 Dziwne zachowanie medelu po podmianie.

Napisane przez BlackPerfum w 27.06.2014 12:47

A podajcie panowie wersje silników na których to testujecie? Również z tych testów lokalnych

6027 & 6153(lan)  & 5787


CurWeapon, w nim raczej poprawnie powinno już dać się wykryć kiedy broń wchodzi w stan zoom'a i kiedy z niego wychodzi
Nie da się tak bo gracz najpierw strzela później zmienia zooma a nawet jak podmieniałem model w primary attack to przerywało aimacje strzelania (ale model był) następnie nie dało sie wykryć kiedy zoom sie automatycznie właczał po strzale to użyłem set_task'a z czasem następnego primaryattack (bo wtedy się zoom pojawia) ale używanie set_task jest beee i tego nie lubimy dlatego musiał bym miec więcej czasu na testowanie a go nie mam :(

 

Tzn. CurWeapon ci nie pomoże :(


  • +
  • -
  • 1


#645528 Dziwne zachowanie medelu po podmianie.

Napisane przez BlackPerfum w 25.06.2014 23:57

Hmm, nie rozumiem, jak ustawiam w_ model to na konkretnym encie.

W moim rozumowaniu znajdziesz takie pojęcia:

 

Zwykły model --> model choinki,gracza,piłki,leżącej broni(_w) :D

Model niezwykły (zazwyczaj submodel) --> Beret na łbie,paka (ale tylko na plecach),model broni(v_,p_)

 

 

Napisałbyś przykład mniej więcej jak to by miało wyglądać? Nie musi być w pełni działający plugin, wystarczy pseudokod.

Trochę dzisiaj posprawdzałem i niestety nie można uzyć ham'a do podmiany modelu p_ :(

 

Za to omnąłem porównywanie stringów (głupim sposobem) + o dziwo udało się wypersfadowac id broni z weaponbox'a xD

Ten sposób zadziała na wszystkie bronie ze slota 1 (nie chciało mi sie robić na więcej :D)

Załączone pliki


  • +
  • -
  • 1


#645360 Dziwne zachowanie medelu po podmianie.

Napisane przez BlackPerfum w 25.06.2014 13:02


Tym sposobem da się podmienić tylko v_ model czy p_ i w_ też?
Tym sposobem podmienisz v_ i p_ bo w_ to zwykły model bytu a nie konkretnego :D

 

 


jaką stałą pev_* podmieniać?
Podmiana:

- v_ --> pev_viewmodel

- p_ --> pev_weaponmodel

 

 


Zgaduję że w Ham_Item_Deploy będę ustawiał pev_viewmodel oraz pev_weaponmodel, ale jak mówiłem jeśli chodzi o enty to jestem nowy i nieodpakowany
Tak w Ham_Item_Deploy

 

 


Poza tym pytanie co podmieniać w FM_SetModel aby podmienić w_ model, po bodmiana wygląda w ten sposób że jeśli mam ustawioną ścieżkę do domyślnego modelu wywołuję tę funkcję ze zmienionym parametrem z silnika przez engfunc(EngFunc_SetModel, ent, modelPath);
Nie polecam FM_SetModel bo za często sie wykonuje. Zarejestrój Ham_Spawn /Ham_Item_Drop  na twoją broń i podmieniasz pev_model + uzywasz engfunc
  • +
  • -
  • 1


#645177 Dziwne zachowanie medelu po podmianie.

Napisane przez BlackPerfum w 24.06.2014 12:19

Hihihi xD
Podmieniam modele i patrz:0_screenshots_2014-06-24_00001.jpg 0_screenshots_2014-06-24_00002.jpg

No nwm :D
U mnie działa idealnie podmieniłem w standardowy sposób tzn. tak jak ty.
 
 

Swoją drogą sprawdziłem twój plugin i dziła tyle że po wyłączeniu zooma jest domyslny model, a nie customowy ale jeśli będę musiał zastosować takie rozwiązanie - czyli usunięcie modelu podczas zoom'a no to sobie poradzę z tym już .

Tak się dzieje gdyz podmieniasz pev_viewmodel2 a nie viewmodel + przydało by się inaczej model podmienić xD
 
 
 

Miałbym jeszcze do Ciebie prośbie dotyczącą twojego rozwiązania zdradziłbyś mi skąd mogę poznać jaki offset trzeba ustawić aby dobrać się do jakiś danych. Ogólnie jaki offset przy get_pdata_* za jakie dane odpowiada

http://amxx.pl/topic...-offsety-pdata/ + samemu poszukaj xD
 
Zarzuć plugin którym podmieniasz model to troszkę go przerobię :D


  • +
  • -
  • 1


#645124 Dziwne zachowanie medelu po podmianie.

Napisane przez BlackPerfum w 24.06.2014 03:11


Podczas podmyany modeli za pomoca fakemeta nic się nie zmienia.
I się nie zmieni gdyż model na jaki podmieniłeś jest zbyt dlugi aby nie wchodzić w zoom'a. Bo gdy właczysz zooma model nadal jest tylko zasłania go ta czarna ramka :(

Da się to oczywiście naprawić i sposób podmiany modelu nie ma znaczenia. Można to obejść np. tak:

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

const m_pPlayer = 41
const m_iFOV = 363
const m_iViewModel = 68

public plugin_init()
{
	register_plugin("AntiWeaponInZoom","Beta","BlackPerfum")
	RegisterHam(Ham_Weapon_SecondaryAttack,"weapon_awp","ZoomOn",1)
	RegisterHam(Ham_Weapon_SecondaryAttack,"weapon_scout","ZoomOn",1)
}

public ZoomOn(weapon)
{
	if(pev_valid(weapon) == 2)
	{
		new id = get_pdata_cbase(weapon,m_pPlayer,4)
		if(get_pdata_int(id,m_iFOV,5) != 90)	set_pev(id, pev_viewmodel,"")
		else	set_pev(id, pev_viewmodel,get_pdata_int(weapon,m_iViewModel,4))
	}
	
	return HAM_IGNORED
}

  • +
  • -
  • 1


#452346 [ROZWIĄZANE] AMXX - Logi

Napisane przez master522 w 27.08.2012 18:48

amxx.cfg

amx_mldebug

ustaw "".
Mi to pomogło.
  • +
  • -
  • 1


#411355 Psychostats 3.2

Napisane przez Kawon w 16.05.2012 22:35

oryginalna paczka ;)

Załączone pliki


  • +
  • -
  • 1


#411042 Psychostats 3.2

Napisane przez Portek w 16.05.2012 11:19

Na GitHub'ie ciągle leżą pliki, ba nawet z fixami są :D

https://github.com/w...amo/PsychoStats
https://github.com/d...oStats-extended
  • +
  • -
  • 1


#381023 [ROZWIĄZANE] Wie kotś coś o engine 5447

Napisane przez Szyfrant w 15.03.2012 12:02

Hmm widzę, że nei kwapią się do tego zeby udostępnic jakiś changelog. Wiem czego mozna sie spodziewac bo beta releasach valve. NIe polecam z autopsji ;)
  • +
  • -
  • 1


#380591 Downgrade HLDS'a do 5006

Napisane przez DarkGL w 14.03.2012 15:45

http://portek.net.pl.../engine5006.zip
  • +
  • -
  • 2


#350941 OUT OF MEMORY! oraz Segmentation fault

Napisane przez DarkGL w 18.01.2012 13:37

Rób raz na jakiś czas restart hlds'a ( na ownserver jest to w panelu )
  • +
  • -
  • 1


#316110 [ROZWIĄZANE] Zwrócenie c-stringu

Napisane przez R3X w 31.10.2011 21:31

czy dobrze widzę, że to natyw? to pewniak że nie działa ze stylem=1

musisz użyć style=0 i set_string()
  • +
  • -
  • 1


#316082 [ROZWIĄZANE] Zwrócenie c-stringu

Napisane przez R3X w 31.10.2011 21:03


new szNick[32];

getText(szNick, 31);



log_amx( "No siema %s", szNick);


  • +
  • -
  • 1


#316055 [ROZWIĄZANE] Zwrócenie c-stringu

Napisane przez R3X w 31.10.2011 20:21

Można zwracać tekst, ale tworzą się właśnie dziwne referencje i czasami kod nie zachowuje się jak tego byśmy chcieli.

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	
	new szNick[32];
	szNick = getText();
	
	log_amx("No siema %s", szNick);
}

getText()
{
	new szText[] = "ziom";
	return szText;
}



Podałem zły przykład to podam i dobry:

getText(szText[], len)
{
    return copy(szText, len, "ziom");
}

  • +
  • -
  • 1