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
Klasa

Jednorazowy natychmiastowy reload

klasa

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

#1 Lamka

    Życzliwy

  • Użytkownik

Reputacja: 5
Nowy

  • Postów:37
  • Imię:Daniel
  • Lokalizacja:Terespol
Offline

Napisano 12.05.2014 14:33

Witam. 

Tak jak w temacie. Jak takie coś zrobić? Daje +.


  • +
  • -
  • 0

#2 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

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

Napisano 12.05.2014 15:28

Kod na natychmiastowe jednorazowe przeładowanie:

new bool:Reload[33]
new const ReloadWeapon = ~((1<<21)|(1<<5)|(1<<2)|(1<<4)|(1<<9)|(1<<25)|(1<<29)|(1<<6))

public plugin_init()
{
	RegisetrHam(Ham_CS_RoundRespawn,"player","Spawn")
	
	new szWeapon[17]
	for(new i=1; i<=CSW_P90; i++)
	{
		if( ReloadWeapon & (1<<i) && get_weaponname(i, szWeapon, charsmax(szWeapon)) )
		{
			RegisterHam(Ham_Weapon_Reload, szWeapon, "Weapon_Reload_Post", 1)
		}
	}
}

public Spawn(id)
{
	Reload[id] = false
}

public Weapon_Reload_Post(iEnt)
{    
	new id = get_pdata_cbase(iEnt, m_pPlayer, 4)
	if(!reload[id])
	{
		if( get_pdata_int(iEnt, 54) )
		{
			set_pdata_float(id, 83, 0.0, 5)
			set_pdata_float(iEnt, 48, 0.0)
			reload[id] = true
		}
	}
}

Wrzuć sobie to do pluginu z czystą klasą xD


  • +
  • -
  • 0
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

#3 Lamka

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:37
  • Imię:Daniel
  • Lokalizacja:Terespol
Offline

Napisano 12.05.2014 19:35

Tam gdzie jest CSW_P90 to mam podać wybraną broń?

Która liczba odpowiada za ilość przeładowań na rundę?

 

Dodatkowo mam takie oto błędy:

codclass_mccall.sma(37) : error 017: undefined symbol "RegisetrHam"
codclass_mccall.sma(159) : error 017: undefined symbol "m_pPlayer"
codclass_mccall.sma(160) : error 017: undefined symbol "reload"
codclass_mccall.sma(160) : warning 215: expression has no effect
codclass_mccall.sma(160) : error 001: expected token: ";", but found "]"
codclass_mccall.sma(160) : error 029: invalid expression, assumed zero
codclass_mccall.sma(160) : fatal error 107: too many error messages on one line

Użytkownik Lamka edytował ten post 12.05.2014 19:40

  • +
  • -
  • 0

#4 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

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

Napisano 12.05.2014 19:50

Tam gdzie jest CSW_P90 to mam podać wybraną broń?

Nie, CSW_P90 jest po prostu bronią o największym indexie dlatego to tam jest. Tzn. to działa na all bronie (no prawie bo na m3 xm04 czy jak to się nazywa nie działa)

 

 

Która liczba odpowiada za ilość przeładowań na rundę?

Aktualnie można przeładować tylko jednorazowo na rundę bo tego chciałeś ale jest za to odpowiedzialna zmienna:

Reload

Błędy:

1. - Moja literówka :D

2. - Moje przyzwyczajenie że zawsze mam załączoną bibloteke z danymi bytu

3. - r powinno być z dużej litery xD

 

Ja i ta moja pisownia wybacz. Łap kod bez literówek i z możliwością przeładowania tyle razy ile chcesz.

new bool:Reload[33]
new const ReloadWeapon = ~((1<<21)|(1<<5)|(1<<2)|(1<<4)|(1<<9)|(1<<25)|(1<<29)|(1<<6))
#define MAX_RELOAD 5 // Teraz mozesz 5 razy przeładowac natychmiastowo

public plugin_init()
{
	RegisterHam(Ham_CS_RoundRespawn,"player","Spawn")
	
	new szWeapon[17]
	for(new i=1; i<=CSW_P90; i++)
	{
		if( ReloadWeapon & (1<<i) && get_weaponname(i, szWeapon, charsmax(szWeapon)) )
		{
			RegisterHam(Ham_Weapon_Reload, szWeapon, "Weapon_Reload_Post", 1)
		}
	}
}

public Spawn(id)
{
	Reload[id] = MAX_RELOAD
}

public Weapon_Reload_Post(iEnt)
{    
	new id = get_pdata_cbase(iEnt, 41, 4)
	if(Reload[id])
	{
		if( get_pdata_int(iEnt, 54) )
		{
			set_pdata_float(id, 83, 0.0, 5)
			set_pdata_float(iEnt, 48, 0.0)
			Reload[id]--
		}
	}
}

  • +
  • -
  • 1
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

#5 Lamka

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:37
  • Imię:Daniel
  • Lokalizacja:Terespol
Offline

Napisano 12.05.2014 19:57

Ok. Skompilowało tylko jest jeden warning:

public Spawn(id)
{
	Reload[id] = MAX_RELOAD
}

public Weapon_Reload_Post(iEnt)
{    
	new id = get_pdata_cbase(iEnt, 41, 4)
	if(Reload[id])
	{
		if( get_pdata_int(iEnt, 54) )
		{
			set_pdata_float(id, 83, 0.0, 5)
			set_pdata_float(iEnt, 48, 0.0)
			Reload[id]--
		}
	}
}

Public spawn to jest 153 linijka

codclass_mccall.sma(155 -- 156) : warning 213: tag mismatch

Użytkownik Lamka edytował ten post 12.05.2014 19:59

  • +
  • -
  • 0

#6 0-0-0

    ● 600 punktów ostrzeżeń

  • Power User

Reputacja: 222
Profesjonalista

  • Postów:599
  • Imię:___
  • Lokalizacja:___
Offline

Napisano 12.05.2014 20:12

new bool:Reload[33]
->
new Reload[33]

  • +
  • -
  • 0
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [4FUN][Ruletka]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [DM]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [FFA]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Only Dust2]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Call of Duty]

#7 Lamka

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:37
  • Imię:Daniel
  • Lokalizacja:Terespol
Offline

Napisano 12.05.2014 20:23

Zmieniłem. Nie ma warningów, ale nie działa tak czy siak.

Podsyłam plugin.

Załączone pliki


  • +
  • -
  • 0

#8 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

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

Napisano 12.05.2014 20:36

new bool:Reload[33]
->
new Reload[33]

Dzięki za pomniałem o tym xD

 

 

Zmieniłem. Nie ma warningów, ale nie działa tak czy siak.
Podsyłam plugin.

w ogóle nie sprawdzasz czy dany gracz posiada klase (co do natychmiastowego przeładowania) a poza tym przed chwilą testowałem wszystko pięknie działa


  • +
  • -
  • 0
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

#9 Lamka

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:37
  • Imię:Daniel
  • Lokalizacja:Terespol
Offline

Napisano 12.05.2014 20:50

Nie wiem czemu, ale nie działa nadal. O co chodzi, ze sprawdzaniem, czy dany gracz posiada klasę?


  • +
  • -
  • 0

#10 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

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

Napisano 12.05.2014 20:57

Sprawdź czy plugin nie brudzi konsoli logami bo widziałem że dodałeś tam troszkę kodu i przez to może nie działać.

 

O co chodzi, ze sprawdzaniem, czy dany gracz posiada klasę?

O to że ta moc aktualnie nie jest pod klasę a dla każdego gracza.

 

 

Kod co ci wysłałem działa w 100% poprawnie.


  • +
  • -
  • 0
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

#11 Lamka

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:37
  • Imię:Daniel
  • Lokalizacja:Terespol
Offline

Napisano 12.05.2014 22:02

Zrobiłem to samo czystej, nowej klasie i nadal nie działa. Co robię nie tak?

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <hamsandwich>
#include <fakemeta>
new Reload[33]
new const ReloadWeapon = ~((1<<21)|(1<<5)|(1<<2)|(1<<4)|(1<<9)|(1<<25)|(1<<29)|(1<<6))
#define MAX_RELOAD 3 // Teraz mozesz 5 razy przeładowac natychmiastowo        
new const nazwa[]   = "TEST ";
new const opis[]    = "TEST";
new const bronie    = (1<<CSW_DEAGLE);
new const zdrowie   = 11;
new const kondycja  = 11;
new const inteligencja = 11;
new const wytrzymalosc = 11;
    
public plugin_init()
{
	register_plugin(nazwa, "1.0", "amxx.pl");

	cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

	RegisterHam(Ham_CS_RoundRespawn,"player","Spawn")
	
	new szWeapon[17]
	for(new i=1; i<=CSW_P90; i++)
	{
		if( ReloadWeapon & (1<<i) && get_weaponname(i, szWeapon, charsmax(szWeapon)) )
		{
			RegisterHam(Ham_Weapon_Reload, szWeapon, "Weapon_Reload_Post", 1)
		}
	}
}

public Spawn(id)
{
	Reload[id] = MAX_RELOAD
}

public Weapon_Reload_Post(iEnt)
{    
	new id = get_pdata_cbase(iEnt, 41, 4)
	if(Reload[id])
	{
		if( get_pdata_int(iEnt, 54) )
		{
			set_pdata_float(id, 83, 0.0, 5)
			set_pdata_float(iEnt, 48, 0.0)
			Reload[id]--
		}
	}
}

  • +
  • -
  • 0

#12 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

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

Napisano 12.05.2014 22:35

Mam pytanie na jakim os'ie ci nie działa bo chyba pomyliłem linuxdiff xD

 

Sory ziom bo normalnie linuxdiff jest ustawiane na 5:

public Weapon_Reload_Post(iEnt)
{    
	new id = get_pdata_cbase(iEnt, 41, 4)
	if(Reload[id])
	{
		if( get_pdata_int(iEnt, 54, 4) )
		{
			set_pdata_float(id, 83, 0.0, 5)
			set_pdata_float(iEnt, 48, 0.0, 4)
			Reload[id]--
		}
	}
}

  • +
  • -
  • 0
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

#13 Lamka

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:37
  • Imię:Daniel
  • Lokalizacja:Terespol
Offline

Napisano 12.05.2014 23:21

version :  48/1.1.2.7/Stdio 6027 secure  (10)

 

Nadal nie działa.


  • +
  • -
  • 0

#14 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

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

Napisano 13.05.2014 00:11

na jakim os'ie ci nie działa

 

version :  48/1.1.2.7/Stdio 6027 secure  (10)

http://en.wikipedia....perating_system

 

No pojęcia nie mam gdzie jest błąd (o ile jest)


  • +
  • -
  • 0
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

#15 Lamka

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 5
Nowy

  • Postów:37
  • Imię:Daniel
  • Lokalizacja:Terespol
Offline

Napisano 13.05.2014 19:55

Zmieniłem i dodałem to:

public cod_class_enabled(id)
{
	ma_klase[id] = true;
}

public cod_class_disabled(id)
{

    	ma_klase[id] = false;
}

public Spawn(id)
{
         if(ma_klase[id]) 
	Reload[id] = MAX_RELOAD
}

Czyli dodałem tylko if(ma_klase[id]) i teraz działa.

Dzięki wielkie za pomoc. 


  • +
  • -
  • 0





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

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

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