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

[ROZWIĄZANE] Zamiana stałej CSW_ na fun'owy weapon_


Najlepsza odpowiedź Rivit, 17.07.2014 20:37

new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120, 90, 2, 35, 90, 90, 0, 100};


public zabierzmp5(id)
{
	new tmp;
	get_user_weapons(id,wpns,iNum);
	for (a=0; a<iNum; a++) if (wpns[a] == CSW_MP5NAVY) tmp=a;
	StripWeapons(id,Primary,true);
	for (a=0; a<iNum; a++)
	{
		if (a==tmp) continue;
                new weaponname[33]
                get_weaponname(wpns[a], weaponname, charsmax(weaponname))
		give_item(id,weaponname);
                cs_set_user_bpammo(id, wpns[a], maxAmmo[a])
	}
}

Nie testowane. Sprawdź.

 

Co do zabrania broni to może Ham_RemovePlayer_Item + http://amxx.pl/dokum...nd-ent-by-owner

Spoiler
Przejdź do postu


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 Ogen Dogen

    Czempion

  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 08.07.2014 17:56

Witam. Czy jest szybsza i wydajniejsza możliwość zamiany stałej wartości broni CSW na "weapon" niż rozpisywanie wszystkich przypadków ? Kiedyś mi się obiła taka funkcja na forum , dokładnie chodzi mi o to : np. CSW_MP5NAVY zamienić na "weapon_mp5navy". Opcjonalnie w drugą stronę też się może przydać :>


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#2 Misiaczek ;c

    /dev/null

  • Moderator

Reputacja: 1 678
Godlike

  • Postów:2 496
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Halemba
Offline

Napisano 08.07.2014 18:15

Notepad++ Ctrl+F Znajdź i zamień wszystkie w bieżącym dokumencie ;F


  • +
  • -
  • 0

#3 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

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

Napisano 08.07.2014 18:45

Najszybsza i najwydajniesza metoda prowadzi do nie używania string'a, a samych liczb czyli nazwy CSW_ lub id bytu broni, szybka i wydajna metoda to zrobienie tablicy ze string'ami "weapon_" z wartościami adekwatnymi do wartości poszczeóglnych broni CSW_. Można też użyć get_weaponname / get_weaponid

Jednak najbardziej polecam najszybszą i najwydajniejszą metodę bo zawsze szybciej się operuje na liczbach niz na tekście
  • +
  • -
  • 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

#4 Ogen Dogen

    Czempion

  • Autor tematu
  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 09.07.2014 23:09

Get_weaponid zwraca number z tej tabeli ? -> http://amxx.pl/topic...ive-item-speed/

 

Ale to i tak i tak się sprowadza do rozpisywania :D

 


Notepad++ Ctrl+F Znajdź i zamień wszystkie w bieżącym dokumencie ;F

Odpada. Musi to być zaimplementowane , że tak powiem dynamicznie ;x


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#5 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

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

Napisano 09.07.2014 23:33

Podaj kod w którym musisz uzyskać id z csw a pokażę rozwiązanie
  • +
  • -
  • 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

#6 Ogen Dogen

    Czempion

  • Autor tematu
  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 16.07.2014 17:17

Sorry za tak późną odpowiedź , ale nie miałem ostatnio głowy do tego :P


Podaj kod w którym musisz uzyskać id z csw a pokażę rozwiązanie

 

Chodzi mi o funkcję do BF2/BF4 , która zabierze jedną z x głównych broni (np. 3). Ma to wyglądać tak że najpierw zabiera wszystkie bronie a później oddaje te które nie mają zostać odebrane. Cały plugin ma anulować dla wybranych graczy premie z odznak w postaci takich broni jak scout czy mp5. Jest to bardzo irytujące :)

public zabierzmp5(id)
{
	new tmp;
	get_user_weapons(id,wpns,iNum);
	for (a=0; a<iNum; a++) if (wpns[a] == CSW_MP5NAVY) tmp=a;
	StripWeapons(id,Primary,true);
	for (a=0; a<iNum; a++)
	{
		if (a==tmp) continue;
		give_item(id,"CSW_MP5NAVY");
	}
}

  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#7 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

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

Napisano 16.07.2014 22:01

Twój kod działa tak:

• sprawdzam czy gracz posiada mp5

• usuwam primary weapon graczu

• jeśli gracz posiadał mp5 to daje mu je

 

Dodatkowo trzeba dodać iż robi to w sposób nie optymalny. Mam parę pytań:

• czy chcesz osiągnąć funkcję która zabierze wszystkie nieporządane i ustawi wszystkie porządane bronie graczu?

• co z ammo? tylko 30 naboji czy jak? (podaj ilość ammo i bpammo)


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

#8 Ogen Dogen

    Czempion

  • Autor tematu
  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 17.07.2014 18:33

Wiem , to tylko taki prototyp. Zawiesiło mnie gdy trzeba było to zamienić na "weapon" , a z rozpisywaniem chyba będzie jeszcze mniej optymalnie.

 


• czy chcesz osiągnąć funkcję która zabierze wszystkie nieporządane i ustawi wszystkie porządane bronie graczu?

Konkretnie zabierze jedną broń a resztę zostawi , tak jak wcześniej pisałem :)

 


• co z ammo? tylko 30 naboji czy jak? (podaj ilość ammo i bpammo)

Nie doszedłem do tego etapu , ale ammo full zarówno magazynek jak i bpammo.


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#9 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 17.07.2014 20:37   Najlepsza odpowiedź

new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120, 90, 2, 35, 90, 90, 0, 100};


public zabierzmp5(id)
{
	new tmp;
	get_user_weapons(id,wpns,iNum);
	for (a=0; a<iNum; a++) if (wpns[a] == CSW_MP5NAVY) tmp=a;
	StripWeapons(id,Primary,true);
	for (a=0; a<iNum; a++)
	{
		if (a==tmp) continue;
                new weaponname[33]
                get_weaponname(wpns[a], weaponname, charsmax(weaponname))
		give_item(id,weaponname);
                cs_set_user_bpammo(id, wpns[a], maxAmmo[a])
	}
}

Nie testowane. Sprawdź.

 

Co do zabrania broni to może Ham_RemovePlayer_Item + http://amxx.pl/dokum...nd-ent-by-owner

Spoiler

  • +
  • -
  • 1




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

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