Problem z "removeAction"
Moderator: Inkwizytor
Problem z "removeAction"
Witam.Żaden ze mnie twórca skryptów,ale lubię poeksperymentować.Zrobiłem skrypt,który do menu akcji dodaje dwie opcje-"Go silent"-sprawia,że drużyna wyciąga wyciszone bronie (zainspirował mnie Ghost Recon:Advanced Warfighter),przechodząc w tryb "cichy" i "Go assault"-wyciągają swoje podstawowe bronie.Druga rzecz jaką zrobiłem,a która przyszła mi do głowy przy zabawie ze zmianą broni to modyfikowanie broni (w tym przypadku doczepianie i odczepianie ACOGa do i z M16A2)-można to trochę rozwinąć przy M4,bo jest ACOG,aimpoint,możnaby podczepiać i odczepiać granatnik M203 (może i tłumik,ale wyciszone chyba używają osobnego rodzaju amunicji).Ale w tych skryptach wybrana opcja powinna zostać usunięta,a na jej miejsce wskoczyć druga(np."Go silent" zostaje zastąpione "Go assault" po wybraniu i odwrotnie,żeby nie robić bałaganu w menu-komenda "removeAction"),nie wiem co zrobiłem źle,może namieszałem z kolejnością,że się nie usuwają (tzn.znikają,ale kiedy użyje się danej opcji po raz drugi już nie znika-nie wiem co z tym zrobić),więc zamieszczam na forum,może ktoś rzuci okiem?Przykładowa misja do ściągnięcia z rapidshare (tylko 3KB),oto link : http://rapidshare.com/files/126137080/T ... .Intro.zip
Re: Problem z "removeAction"
Chyba mam pomysł jak to rozwiązać.Przekształcić to trochę trzbeba,teraz będzie menu związane z bronią,w menu akcji.Będzie można je otworzyć,dokonać modyfikacji,i zamknąć.Wkleję jak skończę
Tylko,że to będzie sporo pisania,więc wolałbym wkleić linka do jakiejś przykładowej misji na Rahmadi,żeby każdy sobie samemu zobaczył.
Edit:Pytanie nr1.-modyfikacja broni opiera się na zamianie modeli (przy dodawaniu ACOGa np. model bez ACOGa zostaje zastąpiony tym pierwszym itd.),czyli np:
pytanie brzmi,jak zrobić,żeby działało to tylko przy określonej broni (w tym wypadku M16A4)?Tzn.chodzi mi o warunek (player hasWeapon "M16A4"),jeśli gracz ma broń M16A4 to wtedy dopiero:
a jeśli jej nie ma,żeby wyświetlał się jakiś,określony przeze mnie,komunikat.Z samym "player hasWeapon "M16A4"" działa to w ten sposób,że broń,którą mam w rękach,zostaje przeniesiona na miejsce drugiej broni w ekwipunku,tam gdzie zawsze jest wyrzutnia rakiet (ale jednocześnie dalej ją w rękach trzymam),a broń,którą daje nam skrypt na miejsce pierwszej broni w ekwipunku,co mija się z celem.Mnie chodzi o to,żeby nic się nie działo (poza komunikatem,np."you can't attach ACOG to this weapon")jeśli gracz nie ma wymaganej przez skrypt broni.
Edit2: udało mi się zrobić to w ten sposób:
teraz z ironsightami będę kombinował.Chcę tak zrobić z wszystkimi broniami w grze,które można modyfikować (tymi od BISu),żeby ten skrypt był dośc uniwersalny jeśli chodzi o robienie misji.

Edit:Pytanie nr1.-modyfikacja broni opiera się na zamianie modeli (przy dodawaniu ACOGa np. model bez ACOGa zostaje zastąpiony tym pierwszym itd.),czyli np:
Kod: Zaznacz cały
player removeWeapon M16A4;
player addWeapon M16A4_ACG;
Kod: Zaznacz cały
player removeWeapon M16A4;
player addWeapon M16A4_ACG;
Edit2: udało mi się zrobić to w ten sposób:
Kod: Zaznacz cały
if (player hasWeapon "M16A4") then {player removeWeapon "M16A4"; player addWeapon "M16A4_ACG"; player selectWeapon "M16A4_ACG";} else {hintC "You can't attach ACOG scope to this weapon"};
exit;

teraz z ironsightami będę kombinował.Chcę tak zrobić z wszystkimi broniami w grze,które można modyfikować (tymi od BISu),żeby ten skrypt był dośc uniwersalny jeśli chodzi o robienie misji.
Re: Problem z "removeAction"
jakie jest przeciwieństwo "player hasWeapon..." (o ile istnieje)?
Edit:teraz mam kolejny problem.Przy zamianie modeli (po wcześniejszym wystrzeleniu paru naboi z magazynka) magazynek znowu jest pełny.Nie wiem,czy to powoduje uzupełnienie amunicji,czy działa jak przeładowanie.Jakieś sugestie?
Edit2:
Drugi problem polega na tym,że po zmienieniu M16A4_GL na M16A4_ACG_GL żołdak odkłada broń na plecy...:
...mimo,że ostatnia komenda to player selectWeapon "M16A4_ACG_GL"-więc teoretycznie powinien ją wybrać i mieć w rękach (w przypadku pierwszej linijki skryptu-tej dotyczącej M16A4 bez granatnika-to działa,odnośnie durgiej linijki skryptu już nie działa,nie wiem czemu).Wie ktoś dlaczego tak się może dziać?Dodałem jeszcze zdejmowanie granatnika,bo w m16A4 z granatnikiem (ironsight) celownik granatnika przeszkadza mi w celowaniu (zasłania część obrazu za celownikiem).Daję kolejnego linka do zmienionej misji przykładowej,myślę,że będzie lepiej,jeśli osoba,która chce zobaczyć ściągnie i po prostu sobie w edytorze zobaczy,a potem porówna ze skryptem.Co do "Team Menu"-na razie działają tylko "Go assault" i "Go silent",reszte zrobię jak uporam się z bronią.Link:
Edit:teraz mam kolejny problem.Przy zamianie modeli (po wcześniejszym wystrzeleniu paru naboi z magazynka) magazynek znowu jest pełny.Nie wiem,czy to powoduje uzupełnienie amunicji,czy działa jak przeładowanie.Jakieś sugestie?
Edit2:
Drugi problem polega na tym,że po zmienieniu M16A4_GL na M16A4_ACG_GL żołdak odkłada broń na plecy...:
Kod: Zaznacz cały
if (player hasWeapon "M16A4") then {player removeWeapon "M16A4"; player addWeapon "M16A4_ACG"; player selectWeapon "M16A4_ACG"};
if (player hasWeapon "M16A4_GL") then {player removeWeapon "M16A4_GL"; player addWeapon "M16A4_ACG_GL"; player selectWeapon "M16A4_ACG_GL"};
exit;
Kod: Zaznacz cały
http://rapidshare.com/files/126212681/Team___weapon_customization2.Intro.zip
Re: Problem z "removeAction"
Hmm,dalej nie mam pojęcia co zrobić,żeby po zamianie broni w magazynku było tyle samo naboi ile było przed zamianą.Nie mogę znaleźć odpowiednich komend (o ile istnieją),żeby rozładowało broń (tylko,jeśli są takie komendy,to czy istnieje możliwość,żeby ten magazynek z broni trafił w takim stanie w jakim jest do ekwipunku),zaczynam się gubić w tym
,ale się uparłem i chcę to skończyć,bo pomysł mi się dobry wydaje.Jakie są komendy odnośnie ilości naboi w magazynku?Pomóżcie 
Edit:aha,jeszcze dwie rzeczy:
1.)zna ktoś jakieś fajne bazy dźwięków?Szukałem w paru,ale nie znalazłem nic odpowiedniego,a chcę dodać dźwięk,który będzie towarzyszył zmianie celownika.Jakiego polecenia użyć?PlaySound "dźwięk" ?
2.)Mam taki pomysł co do kolejności komend w skrypcie: a)wykonanie animacji (np.takiej jak przy schylaniu się przy skrzynce z amunicją); b)dźwięk ;c) licznik,który odlicza czas (np.od 10 do zera) w którym to żołdak (gracz)zmienia celownik.I teraz pytanie brzmi jak to poskładać do kupy?Idealnie byłoby,gdyby ,w sytuacji kiedy gracz przerwie animację zanim odliczanie dobiegnie końca (np.poruszy się),akcja nie została wykonana (bo przerwał czynność),ale to szczyt marzeń.Obawiam się,że za wiele bym chciał i może zbytnio idealizuję
Echh,czasem mój perfekcjonizm jest moim przekleństwem.


Edit:aha,jeszcze dwie rzeczy:
1.)zna ktoś jakieś fajne bazy dźwięków?Szukałem w paru,ale nie znalazłem nic odpowiedniego,a chcę dodać dźwięk,który będzie towarzyszył zmianie celownika.Jakiego polecenia użyć?PlaySound "dźwięk" ?
2.)Mam taki pomysł co do kolejności komend w skrypcie: a)wykonanie animacji (np.takiej jak przy schylaniu się przy skrzynce z amunicją); b)dźwięk ;c) licznik,który odlicza czas (np.od 10 do zera) w którym to żołdak (gracz)zmienia celownik.I teraz pytanie brzmi jak to poskładać do kupy?Idealnie byłoby,gdyby ,w sytuacji kiedy gracz przerwie animację zanim odliczanie dobiegnie końca (np.poruszy się),akcja nie została wykonana (bo przerwał czynność),ale to szczyt marzeń.Obawiam się,że za wiele bym chciał i może zbytnio idealizuję

Re: Problem z "removeAction"
Widzę,że nikt nie jest zainteresowany,więc temat do zamknięcia,poszukam info gdzie indziej najwyżej.