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ć
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.
|
[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
#3
Napisano 08.07.2014 18:45
Jednak najbardziej polecam najszybszą i najwydajniejszą metodę bo zawsze szybciej się operuje na liczbach niz na tekście
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
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują
#4
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
Notepad++ Ctrl+F Znajdź i zamień wszystkie w bieżącym dokumencie ;F
Odpada. Musi to być zaimplementowane , że tak powiem dynamicznie ;x
#5
Napisano 09.07.2014 23:33
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
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują
#6
Napisano 16.07.2014 17:17
Sorry za tak późną odpowiedź , ale nie miałem ostatnio głowy do tego
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"); } }
#7
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)
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
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują
#8
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.
#9
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
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych