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

szybkosc z nozem


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

#1 zapal swiece

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
  • Lokalizacja:ost
Offline

Napisano 17.06.2014 15:23

szukam pluginu ktory zwieksza predkosc z nozem. Pomocy !


  • +
  • -
  • 0

#2 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 17.06.2014 16:57

Zrobiłem to benia sposobem i nie wiem czy zadziała. Sprawdź:

#include <amxmodx>
#include <hamsandwich>
#include <fun>

new bool:freezetime

public plugin_init() {
	register_plugin("Wieksza szybkoscna nozu", "1.0", "author")
	RegisterHam(get_player_resetmaxspeed_func(), "player", "fw_Player_ResetMaxSpeed", 1)
	
	register_logevent("PoczatekRundy", 2, "1=Round_Start")
	register_event("HLTV", "NowaRunda", "a", "1=0", "2=0")
}

Ham:get_player_resetmaxspeed_func(){
	#if defined Ham_CS_Player_ResetMaxSpeed
	return IsHamValid(Ham_CS_Player_ResetMaxSpeed)?Ham_CS_Player_ResetMaxSpeed:Ham_Item_PreFrame;
	#else
	return Ham_Item_PreFrame;
	#endif
}

public fw_Player_ResetMaxSpeed(id){
	if(is_user_alive(id)){
		fw_Player_ResetMaxSpeedGo(id)
	}
}

public fw_Player_ResetMaxSpeedGo(id){
	if(!freezetime){
		if(get_user_weapon(id) == CSW_KNIFE) {
			set_user_maxspeed(id,get_user_maxspeed(id) + 50) // za 50 zmieniasz ile ma dodac szybkosc na nozu
		}
	}
}

public PoczatekRundy()
	freezetime = false

public NowaRunda()
	freezetime = true

  • +
  • -
  • 0

#3 zapal swiece

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
  • Lokalizacja:ost
Offline

Napisano 17.06.2014 20:59

jest szybkosc ale na pistoletach :/


  • +
  • -
  • 0

#4 zapal swiece

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
  • Lokalizacja:ost
Offline

Napisano 18.06.2014 12:04

plugin działa tak ze jak przeloze na noz i spowrotem na bron to wtedy biegam szybciej z bronia


  • +
  • -
  • 0

#5 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 18.06.2014 12:15

Było tak od razu.

Sprawdź tą wersje:

#include <amxmodx>
#include <hamsandwich>
#include <fun>

new bool:freezetime, bool:ma_noz[33]
new Float:oldspeed[33]

public plugin_init() {
	register_plugin("Wieksza szybkoscna nozu", "1.1", "author")
	RegisterHam(get_player_resetmaxspeed_func(), "player", "fw_Player_ResetMaxSpeed", 1)
	
	register_logevent("PoczatekRundy", 2, "1=Round_Start")
	register_event("HLTV", "NowaRunda", "a", "1=0", "2=0")
	register_event("CurWeapon", "CurWeapon", "be")
}

Ham:get_player_resetmaxspeed_func(){
	#if defined Ham_CS_Player_ResetMaxSpeed
	return IsHamValid(Ham_CS_Player_ResetMaxSpeed)?Ham_CS_Player_ResetMaxSpeed:Ham_Item_PreFrame;
	#else
	return Ham_Item_PreFrame;
	#endif
}

public fw_Player_ResetMaxSpeed(id){
	if(is_user_alive(id)){
		if(!freezetime){
			if(ma_noz[id]) 
			{
				oldspeed[id] = get_user_maxspeed(id)
				set_user_maxspeed(id,get_user_maxspeed(id) + 50) // za 50 zmieniasz ile ma dodac szybkosc na nozu
			}
			else
			{
				set_user_maxspeed(id, oldspeed[id])
			}
		}
	}
}

public CurWeapon(id){
	if(get_user_weapon(id) == CSW_KNIFE)
	{
		ma_noz[id] = true
	}
	else
	{
		ma_noz[id] = false
	}
	
}

public PoczatekRundy()
	freezetime = false

public NowaRunda()
	freezetime = true

  • +
  • -
  • 0

#6 zapal swiece

    Nowy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:6
  • Lokalizacja:ost
Offline

Napisano 20.06.2014 13:16

w dalszym ciagu jest to samo


  • +
  • -
  • 0

#7 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 20.06.2014 20:54

To bardzo smutne ale event Ham_CS_Player_ResetMaxSpeed wywołuje się wcześniej niż CurWeapon a nawet wcześniej niż ustawienie właściwej broni pobieranej z get_user_weapon sad.png

 

W dodatku nie polecam używać CurWeapon do takiego typu sprawdzania broni gdyż event CurWeapon nie wykonuje się zawsze. Ham_Item_Deploy wykonuje się wcześniej niż Ham_CS_Player_ResetMaxSpeed dlatego jesli byś go użył zamiast CurWeapon by działało :D

 

I tutaj hamsandwich+fakemeta mają przewagę nad amxx'em gdyż pobranie aktualnie aktywnego przedmiotu zwróci poprawny wynik :D

Piękny przypadek w którym:

get_user_weapon(id) != get_pdata_int(get_pdata_cbase(id,m_pActiveItem,5),m_iId,4)

Takie coś działa:

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

const m_pActiveItem = 373 // Offset aktualnie aktywnego przedmiotu
const m_iId = 43 // Offset numeru id (to z CSW_*) dla danego przedmiotu

const Float:ADD_SPEED = 50.0 //Tu możesz sobie zmienić swoją prędkość

public plugin_init()
{
	register_plugin("Wieksza prędkość nozu", "Beta", "BlackPerfum")
	RegisterHam(Ham_CS_Player_ResetMaxSpeed, "player", "ResetMaxSpeed", 1)
	// Wiemy że gracz ma wersje hamsandwicha >= 1.3 (wnioskuje z dotychczasowych wyników)
}

public ResetMaxSpeed(id)
{
	static Float:Speed
	pev(id,pev_maxspeed,Speed)
	if(!is_user_alive(id) || Speed < 10.0)	return HAM_IGNORED
	//Trzeba sprawdzić czy gracz żyje gdyż gracz martwy może posiadać maxspeed >= 10.0
	//Dodatkowo omijamy frezztime
	
	//Sprawdzamy broń gracza w nietypowy sposób :D
	if(get_pdata_int(get_pdata_cbase(id,m_pActiveItem,5),m_iId,4) == CSW_KNIFE)
	{
		//Jeśli aktualna broń gracza to nóż
		//To zwiększamy mu prędkość
		
		Speed += ADD_SPEED
		set_pev(id,pev_maxspeed,Speed)
		engfunc(EngFunc_SetClientMaxspeed,id,Speed)
		
		//Dodatkowo zapobiegam wysyłaniu błędnych informacji dalej
		return HAM_SUPERCEDE
	}
	return HAM_IGNORED
}

Tu możesz o offsetach poczytać


  • +
  • -
  • 3
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika




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

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