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

Zmniejszanie rozrzutu - 2 metody, która lepsza?


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

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 29.06.2015 10:05

Witam, bawiąc się ostatnio broniami znalazłem dwa kody... z Cod Moda

 

Jeden usuwa rozrzut, a drugi go zmniejsza...

new const perk_desc[] = "Usuwa rorzut broni";

public plugin_init() 
{
	register_forward(FM_PlayerPreThink, "PreThink");
	register_forward(FM_UpdateClientData, "UpdateClientData", 1)
}

public PreThink(id)
{
	if(ma_perk[id])
		set_pev(id, pev_punchangle, {0.0,0.0,0.0})
}
		
public UpdateClientData(id, sw, cd_handle)
{
	if(ma_perk[id])
		set_cd(cd_handle, CD_PunchAngle, {0.0,0.0,0.0})   
}
new const perk_desc[] = "Zmniejsza rorzut broni";

public plugin_init() 
{
	register_forward(FM_CmdStart, "CmdStart");
}

public CmdStart(id, uc_handle)
{
	if(get_uc(uc_handle, UC_Buttons) & IN_ATTACK)
	{
		new Float:punchangle[3]
		pev(id, pev_punchangle, punchangle)
		for(new i=0; i<3;i++) 
				punchangle[i]*=0.9;
		set_pev(id, pev_punchangle, punchangle)
	}
}

(zostawiłem najpotrzebniejsze rzeczy, reszta to cod modowy syf)

 

Który sposób wpływania na rozrzut jest lepszy?

 

Wiem, że jeden kod usuwa, a drugi zmniejsza rozrzut, ale dlaczego ktoś nie zrobił np. usuwania rozrzutu w CmdStart lub zmniejszania w prethinku i updateclientdata?

 

Proszę o rozjaśnienie...

 


  • +
  • -
  • 0

#2 wiwi249

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:440
  • GG:
  • Imię:Wiktor
  • Lokalizacja:Tarnobrzeg
Offline

Napisano 29.06.2015 11:32

Znaczy moim zdaniem przede wszystkim druga metoda jest lepsza (gdyby zastosować podobne instrukcje) bo nie wywołuje się w każdej klatce jak UpdateClientData i PreThink. Zawsze to troche mniejsze obciążenie.

Spróbowałbym jeszcze użyć Ham_Weapon_PrimaryAttack.


  • +
  • -
  • 0

Wykonuję strony internetowe, zlecenia AMXX i HLDS - w tym pisanie pluginów, ogarnianie serwerów, edycja i tworzenie modeli.

Potrzebujesz czegoś? Pisz!

 

"śpieszmy się pisać posty, tak szybko banują..." ~ sebul


#3 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 29.06.2015 15:00

Pytanie, czy to w cmdstart działa, ja nie zauważyłem zmniejszenia rozrzutu
  • +
  • -
  • 0

#4 tytusek

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 29.06.2015 15:03

działa wystarczy zmienić

punchangle[i]*=0.9; na punchangle[i]*=0.0;


  • +
  • -
  • 0

#5 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 29.06.2015 16:26

To dlaczego eliminator jest robiony na prethinku, których unikam jak ognia?
  • +
  • -
  • 0

#6 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 29.06.2015 17:34

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

new Float:g_fPushAngle[33][3];

public plugin_init()
{
	register_plugin("No Recoil", "0.1", "AsiaP");

	new szName[24];
	for(new i = 1; i <= 30; i++)
	{
		if(!((1<<CSW_KNIFE|1<<CSW_C4|1<<CSW_FLASHBANG|1<<CSW_HEGRENADE|1<<CSW_SMOKEGRENADE) & 1<<i) && get_weaponname(i, szName, 23))
		{
			RegisterHam(Ham_Weapon_PrimaryAttack, szName, "PrimaryAttackPre");
		}
	}

	for(new i = 1; i <= 30; i++)
	{
		if(!((1<<CSW_KNIFE|1<<CSW_C4|1<<CSW_FLASHBANG|1<<CSW_HEGRENADE|1<<CSW_SMOKEGRENADE) & 1<<i) && get_weaponname(i, szName, 23))
		{
			RegisterHam(Ham_Weapon_PrimaryAttack, szName, "PrimaryAttackPost", 1);
		}
	}
}

public PrimaryAttackPre(ent)
{
	new id = pev(ent, pev_owner);
	pev(id, pev_punchangle, g_fPushAngle[id]);
}

public PrimaryAttackPost(ent)
{
	new id = pev(ent, pev_owner);

	static Float:fPush[3];
	pev(id, pev_punchangle, fPush);

	fPush[0] -= g_fPushAngle[id][0];
	fPush[1] -= g_fPushAngle[id][1];
	fPush[2] -= g_fPushAngle[id][2];

	fPush[0] *= 0.0;
	fPush[1] *= 0.0;
	fPush[2] *= 0.0;

	fPush[0] += g_fPushAngle[id][0];
	fPush[1] += g_fPushAngle[id][1];
	fPush[2] += g_fPushAngle[id][2];

	set_pev(id, pev_punchangle, fPush);
}

  • +
  • -
  • 0




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

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