[ROZWIĄZANE] Zamiana stałej CSW_ na fun...
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
Ogen Dogen
08.07.2014
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ć
Misiaczek ;c
08.07.2014
Notepad++ Ctrl+F Znajdź i zamień wszystkie w bieżącym dokumencie ;F
BlackPerfum
08.07.2014
Jednak najbardziej polecam najszybszą i najwydajniejszą metodę bo zawsze szybciej się operuje na liczbach niz na tekście
Ogen Dogen
09.07.2014
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
Ogen Dogen
16.07.2014
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"); } }
BlackPerfum
16.07.2014
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)
Ogen Dogen
17.07.2014
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.
Najlepsza odpowiedź
Rivit
17.07.2014
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