[XP] Blokada zmiany broni
Moderatorzy: GameBoy, Dragon Kamillo
Regulamin forum
- goblin!!!
- Posty: 200
- Rejestracja: 05 lis 2015, 19:40
- Lokalizacja: Odległa ziemniaczana republika
[XP] Blokada zmiany broni
Witam.
Otóż potrzebuję zablokować zmianę broni, ale nie w sensie, że w zakładce ,bohaterowie' na zawsze, tylko do spełnienia warunku.
Wpadłem na parę pomysłów, ale każdy kończył się ziemniakiem z sosem czekoladowym. Pierwszym było oczywiście
ustawienie zmiennej na ID i ciągłe zakładanie po ID, ale takich opcji XP nie mia w zdarzeniach. Drugim jest wieeeelki warunek do każdej z broni, ale jest to rozwiązanie po prostu nie optymalne i nie efektywne. Trzecim jest wyłączenie menu, ale to też nie jest dobre wyjście, z pewnych względów, mógłbym to uzasadnić jakoś w grze, ale takie coś to już rozwiązanie ostateczne. Czwartym była etykieta warunkowa, czyli modyfikacja drugiego, ale to też niezbyt dobre...
i tak miałem parę pomysłów, ale żaden nie był dobry, a skryptów dopiero się uczę, i tak się was pytam, cze jest na to rozwiązanie w zakresie optymalnych i efektywnych w zdarzeniach, czy trzeba mocy skryptu użyć? (pewnie rozwiązanie jest tak proste, że go nie zauważyłem)
Mam nadzieje, że o niczym nie zapomniałem.
Tyle. Bardzo krótko, co nie? XD
Otóż potrzebuję zablokować zmianę broni, ale nie w sensie, że w zakładce ,bohaterowie' na zawsze, tylko do spełnienia warunku.
Wpadłem na parę pomysłów, ale każdy kończył się ziemniakiem z sosem czekoladowym. Pierwszym było oczywiście
ustawienie zmiennej na ID i ciągłe zakładanie po ID, ale takich opcji XP nie mia w zdarzeniach. Drugim jest wieeeelki warunek do każdej z broni, ale jest to rozwiązanie po prostu nie optymalne i nie efektywne. Trzecim jest wyłączenie menu, ale to też nie jest dobre wyjście, z pewnych względów, mógłbym to uzasadnić jakoś w grze, ale takie coś to już rozwiązanie ostateczne. Czwartym była etykieta warunkowa, czyli modyfikacja drugiego, ale to też niezbyt dobre...
i tak miałem parę pomysłów, ale żaden nie był dobry, a skryptów dopiero się uczę, i tak się was pytam, cze jest na to rozwiązanie w zakresie optymalnych i efektywnych w zdarzeniach, czy trzeba mocy skryptu użyć? (pewnie rozwiązanie jest tak proste, że go nie zauważyłem)
Mam nadzieje, że o niczym nie zapomniałem.
Tyle. Bardzo krótko, co nie? XD
Przybyłem, zobaczyłem, wystrzeliłem gdzieś w kosmos.
~ Prawdopodobnie Chruszczow, o Łajce.
~ Prawdopodobnie Chruszczow, o Łajce.
- Dr.Man
- Posty: 140
- Rejestracja: 10 lip 2013, 12:13
Re: [XP] Blokada zmiany broni
Czyli w skrócie szukasz komendy którą możesz zablokować albo odblokować zmianę np, broni lub zbroi dla danego bohatera?
- goblin!!!
- Posty: 200
- Rejestracja: 05 lis 2015, 19:40
- Lokalizacja: Odległa ziemniaczana republika
Re: [XP] Blokada zmiany broni
Tak. Można tak w skrócie powiedzieć. A w zasadzie to pół prawda - szukam sposobu jak to zrobić, bo komendy takiej nie widzę. A nawet nie, bo jak bym szukał, chybabym w request napisał.Dr.Man pisze:Czyli w skrócie szukasz komendy którą możesz zablokować albo odblokować zmianę np, broni lub zbroi dla danego bohatera?
Przybyłem, zobaczyłem, wystrzeliłem gdzieś w kosmos.
~ Prawdopodobnie Chruszczow, o Łajce.
~ Prawdopodobnie Chruszczow, o Łajce.
- Dragon Kamillo
- Posty: 1948
- Rejestracja: 18 paź 2009, 21:23
- Lokalizacja: Poznań/Granowiec
Re: [XP] Blokada zmiany broni
Kod: Zaznacz cały
$game_actors[$game_variables[numer]].equip($game_variables[numer], $game_variables[numer])
pierwsza zmienna - numer bohatera z bazy danych.
druga zmienna - typ przedmiotu (czy broń czy co innego, nie wiem czy liczone od 0 czy od 1, ale kolejność taka sama jak w komendzie w evencie zmień ekwipunek.
trzecia zmienna - numer broni, czy tam zbroi.
I wtedy zrobisz se to pierwszym sposobem jaki podałeś.
- goblin!!!
- Posty: 200
- Rejestracja: 05 lis 2015, 19:40
- Lokalizacja: Odległa ziemniaczana republika
Re: [XP] Blokada zmiany broni
goblin!!! pisze: Pierwszym było oczywiście ustawienie zmiennej na ID i ciągłe zakładanie po ID, ale takich opcji XP nie mia w zdarzeniach.
Resztę dopowiedz sam XDDragon Kamillo pisze:I wtedy zrobisz se to pierwszym sposobem jaki podałeś.
Fakt, że to ekwipuje broń, ale po wcześniejszym ID, i muszę wykryć ID, czyli z tego co zrozumiałem tą 3 zmienną.
Nie mniej, dziękuje za chęci.
Może ja czegoś w tym skrypcie nie rozumiem XD.
Tyle.
Przybyłem, zobaczyłem, wystrzeliłem gdzieś w kosmos.
~ Prawdopodobnie Chruszczow, o Łajce.
~ Prawdopodobnie Chruszczow, o Łajce.
- Dr.Man
- Posty: 140
- Rejestracja: 10 lip 2013, 12:13
Re: [XP] Blokada zmiany broni
Sprawa wygląda tak, jest taka komenda: $data_actors[@actor_id].weapon_fix = true/false, może być także armor1_fix, armor2_fix, w zależności od elementu ekwipunku do 4. Ale problem jest taki że przy wywoływaniu wyskakuje błąd że jest to nieokreślona metoda a wzmianka o niej jest tylko w game_actor.
Niestety wymyśliłem tylko alternatywne rozwiązanie, żeby za pomocą skryptu stworzyć nową "bazę danych" połączoną z Scene_equip sprawdzającą czy dany element przedmiotu u danego bohatera zablokowany lub odblokowany.
http://wklej.org/id/3246753/
edit: Mała akrualizacja
edit2: optymalizacja
Jedyne co musisz zrobić to zmieniać wartość w tabeli na "1" w zależności jakiemu bohaterowi chcesz zablokować dany element ekwipunku.
np. gdy chcesz zablokować bohaterowi broń o id 2, wywołujesz w zdarzeniu tą komendę: "$equip_fix[2][0] = 1
a jak chcesz odblokować to robisz to samo tylko że zmieniasz wartość na 0.
Niestety wymyśliłem tylko alternatywne rozwiązanie, żeby za pomocą skryptu stworzyć nową "bazę danych" połączoną z Scene_equip sprawdzającą czy dany element przedmiotu u danego bohatera zablokowany lub odblokowany.
http://wklej.org/id/3246753/
edit: Mała akrualizacja
edit2: optymalizacja
Jedyne co musisz zrobić to zmieniać wartość w tabeli na "1" w zależności jakiemu bohaterowi chcesz zablokować dany element ekwipunku.
np. gdy chcesz zablokować bohaterowi broń o id 2, wywołujesz w zdarzeniu tą komendę: "$equip_fix[2][0] = 1
a jak chcesz odblokować to robisz to samo tylko że zmieniasz wartość na 0.
- goblin!!!
- Posty: 200
- Rejestracja: 05 lis 2015, 19:40
- Lokalizacja: Odległa ziemniaczana republika
Re: [XP] Blokada zmiany broni
Dr.Man pisze: Jedyne co musisz zrobić to zmieniać wartość w tabeli na "1" w zależności jakiemu bohaterowi chcesz zablokować dany element ekwipunku.
np. gdy chcesz zablokować bohaterowi broń o id 2, wywołujesz w zdarzeniu tą komendę: "$equip_fix[2][0] = 1
a jak chcesz odblokować to robisz to samo tylko że zmieniasz wartość na 0.
/edit, sory źle zrozumiałem XD
testuje, powiem czy działa
/edit2 nie zbyt działa, nie wiem czemu
Przybyłem, zobaczyłem, wystrzeliłem gdzieś w kosmos.
~ Prawdopodobnie Chruszczow, o Łajce.
~ Prawdopodobnie Chruszczow, o Łajce.
- Dr.Man
- Posty: 140
- Rejestracja: 10 lip 2013, 12:13
Re: [XP] Blokada zmiany broni
Powiedz mi jakie id ma ten bohater i który element ekwipunku chcesz zablokować
- Dragon Kamillo
- Posty: 1948
- Rejestracja: 18 paź 2009, 21:23
- Lokalizacja: Poznań/Granowiec
Re: [XP] Blokada zmiany broni
goblin!!! pisze:Resztę dopowiedz sam XD
Po prostu podałem jak dodać opcję której ci tutaj brakowało.goblin!!! pisze:Wpadłem na parę pomysłów, ale każdy kończył się ziemniakiem z sosem czekoladowym. Pierwszym było oczywiście
ustawienie zmiennej na ID i ciągłe zakładanie po ID, ale takich opcji XP nie mia w zdarzeniach.
Oczywiście to dziwne rozwiązanie, bo nadal gracz może zmieniać broń w ekwipunku, a potem się dziwić czemu mu nie zmieniło... Ale to ty wpadłeś na ten pomysł jako na pierwszą myśl rozwiązania swojego problemu XD.
Oczywiście miałem jeszcze zaproponować stworzenie kopii przedmiotów, o takich samych nazwach i opisach, ale bez możliwości założenia ich przez bohatera i podmiankę tego, albo po prostu jakoś inaczej to rozwiązać, np sklepy na efentach i brak możliwości posiadania przez bohatera więcej niż 1,2 broni przy sobie - bo za cięzkie itp.
Przy okazji jestem ciekawy czy eventem jest się w stanie założyć bohaterowi broń której nie może używać, ale to już trochę inny temat.
- goblin!!!
- Posty: 200
- Rejestracja: 05 lis 2015, 19:40
- Lokalizacja: Odległa ziemniaczana republika
Re: [XP] Blokada zmiany broni
A jakie ID może mieć bohater w grze w której jest tylko jeden bohater? 001 według bazy danych, czyli 1 po prostu.Dr.Man pisze:Powiedz mi jakie id ma ten bohater i który element ekwipunku chcesz zablokować
I broń chcę zablokować.
Ale co mi z tego, ja muszę mieć ID broni na którą chce zmienić. Muszę je pobrać skądś. A nie mogę ustawić zmiennej przez zdarzanie na ID tej broni bo takiej opcji nie mam zwyczajnie XD i chyba trzeba w skrypcie.Dragon Kamillo pisze:Po prostu podałem jak dodać opcję której ci tutaj brakowało.
Przybyłem, zobaczyłem, wystrzeliłem gdzieś w kosmos.
~ Prawdopodobnie Chruszczow, o Łajce.
~ Prawdopodobnie Chruszczow, o Łajce.
- Dr.Man
- Posty: 140
- Rejestracja: 10 lip 2013, 12:13
Re: [XP] Blokada zmiany broni
No właśnie z tym rożnie, jest możliwość przecież posiadania jednego bohatera w bazie danych o id 5, dlatego pytam dla pewności.
Wywołaj tą komendę: $equip_fix[0][0] = 1
W Ruby 0 odpowiada pierwszemu wyrazowi w tablicy, dlatego jest tam 0 a nie 1.
0 - bohater o id 1 w bazie danych
1 - bohater o id 2 w bazie danych
itd
0 - broń
1 - tarcza
2 - helm
3 - zbroja
4 - akcesoria
Wywołaj tą komendę: $equip_fix[0][0] = 1
W Ruby 0 odpowiada pierwszemu wyrazowi w tablicy, dlatego jest tam 0 a nie 1.
0 - bohater o id 1 w bazie danych
1 - bohater o id 2 w bazie danych
itd
0 - broń
1 - tarcza
2 - helm
3 - zbroja
4 - akcesoria
- goblin!!!
- Posty: 200
- Rejestracja: 05 lis 2015, 19:40
- Lokalizacja: Odległa ziemniaczana republika
Re: [XP] Blokada zmiany broni
Tyle XDDr.Man pisze: Wywołaj tą komendę: $equip_fix[0][0] = 1
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Przybyłem, zobaczyłem, wystrzeliłem gdzieś w kosmos.
~ Prawdopodobnie Chruszczow, o Łajce.
~ Prawdopodobnie Chruszczow, o Łajce.
- Dr.Man
- Posty: 140
- Rejestracja: 10 lip 2013, 12:13
- Dragon Kamillo
- Posty: 1948
- Rejestracja: 18 paź 2009, 21:23
- Lokalizacja: Poznań/Granowiec
Re: [XP] Blokada zmiany broni
Udało mi się zmusić RMXP do zapisania id broni do zmiennej, ale trochę to pokomplikowane.
Pierwsze zmiany w skryptach.
Wchodzimy do interpreter 4, tam mamy to co odpowiada nam za komende ustaw zmienną.
tam jest parę zmian, najlepiej dam ci całą zmienioną ta klasę i już, podmienisz sobie i po problemie.
linijka 42 wygląda tak: case @parameters[5] + $game_variables[30]
to 30 to numer zmiennej, zmień sobie na jaką chcesz.
Potem jak będziesz chciał zapisać id posiadanej broni przez bohatera do zmiennej to ustawiasz tą zmienną ( w moim wypadku 30) na wartość 1 i dajesz polecenie zmień zmienną (normalnie w evencie) wybierasz ta opcję gdzie możesz zapisać np HP bohatera do zmiennej, dajesz bohatera jakiego chcesz i wybierasz ostatnią opcję - wtedy zapisuje ci id broni bohatera - wsio. Jak chcesz przywrócić normalne działanie tej opcji to wyzeruj zmienną 30 czy która tam masz.
Pierwsze zmiany w skryptach.
Wchodzimy do interpreter 4, tam mamy to co odpowiada nam za komende ustaw zmienną.
tam jest parę zmian, najlepiej dam ci całą zmienioną ta klasę i już, podmienisz sobie i po problemie.
Spoiler:
to 30 to numer zmiennej, zmień sobie na jaką chcesz.
Potem jak będziesz chciał zapisać id posiadanej broni przez bohatera do zmiennej to ustawiasz tą zmienną ( w moim wypadku 30) na wartość 1 i dajesz polecenie zmień zmienną (normalnie w evencie) wybierasz ta opcję gdzie możesz zapisać np HP bohatera do zmiennej, dajesz bohatera jakiego chcesz i wybierasz ostatnią opcję - wtedy zapisuje ci id broni bohatera - wsio. Jak chcesz przywrócić normalne działanie tej opcji to wyzeruj zmienną 30 czy która tam masz.
- goblin!!!
- Posty: 200
- Rejestracja: 05 lis 2015, 19:40
- Lokalizacja: Odległa ziemniaczana republika
Re: [XP] Blokada zmiany broni
Już wiem w czym leży problem, po prostu nie wiem czemu, na starych zapisach (czyt. przed dodaniem skryptu) to nie działa nie wiem czemu, ale gdy dałem do nowej gry wsio jest ok. NIE WIEM czemu, ale wiem, że tak jest.
Trochę mi to średnio pasuje :/
@up
Działa raz, raz nie. Ale częściej działa.
Trochę mi to średnio pasuje :/
@up
Działa raz, raz nie. Ale częściej działa.
Ostatnio zmieniony 02 wrz 2017, 22:01 przez goblin!!!, łącznie zmieniany 1 raz.
Przybyłem, zobaczyłem, wystrzeliłem gdzieś w kosmos.
~ Prawdopodobnie Chruszczow, o Łajce.
~ Prawdopodobnie Chruszczow, o Łajce.