Podgląd graficzny? Nie wiem czy grafiki są 'dostępne' z folderów.
Nie chodzi przecież o zrobienie izometrycznego rzutu z grafą z gry ;)Myślałem, że mówisz o folderach gry i grafikach gry. ;)
np. aby można było wybrać ile na ile ta świątynia ma być, aby było można się dobrze dopasowaćA co z tzw. ciekawymi świątyniami, gdzie pewne elementy są odseparowane od reszty?
Podgląd graficzny? Nie wiem czy grafiki są 'dostępne' z folderów.Nie chodzi przecież o zrobienie izometrycznego rzutu z grafą z gry ;)Myślałem, że mówisz o folderach gry i grafikach gry. ;)
Płaskie 2D jak najbardziej. Jeżeli będzie ktoś chętny do zrobienia grafik (aktualna wersja (czyli ta która zostanie wydana w sensownym czasie) zakłada po prostu różne kolory) płytek i innych elementów (coś jak w generatorze dzielnic ;) ) to by było super.
Pytanie - jakich opcji? ;)
Da się zrobić nawet i jutro :P
Jedynie o listę płytek proszę żeby wiedzieć co jak wygląda i ile tego jest.
A co z tzw. ciekawymi świątyniami, gdzie pewne elementy są odseparowane od reszty?Nie pamiętam jak to było w samej grze - niezakodowanie gruntu na zerowym poziomie skutkowało dziurą w świątyni, tak? W samym programie też da się to zrobić.
Da się zrobić nawet i jutro :PSuper. Tu jest jeden obrazek płytek oraz lista wszystkiego: http://zeus.n-gry.pl/60 . Jeżeli Ci się chce, możesz posprawdzać resztę. Jeżeli będziesz miał taką możliwość to możesz zrobić dwa zestawy, powiedzmy jeden o wielkościach np. 15px na jednostkę (płytkę świątyni), drugi o wielkościach np. 30px. Oczywiście wedle uznania - jeżeli lepiej będą wyglądać inne wielkości to zrób inne. ;)
Jedynie o listę płytek proszę żeby wiedzieć co jak wygląda i ile tego jest.
Może jeszcze tak by można było pokombinować, by "umieścić" w budynku świątyni inny budynek lub ozdobę "dla pokazu" np w świątyni posejdona Rzeźba Delfina.Trzeba zostawić dziurę w świątyni i w czasie gry postawić budynek. Innego sposobu nie znam.
Albo jeszcze inaczej, na przykład u aresa budynek zbrojowni (z pewnością nie działałby "jak zwykle" tylko tak, dla pokazu) a u innego boga jeszcze coś innego itd.
tylko nie wiem, czy tak się da >.<
Może jeszcze tak by można było pokombinować, by "umieścić" w budynku świątyni inny budynek lub ozdobę "dla pokazu"Trzeba zostawić dziurę w świątyni i w czasie gry postawić budynek. Innego sposobu nie znam.
np w świątyni posejdona Rzeźba Delfina.
Albo jeszcze inaczej, na przykład u aresa budynek zbrojowni (z pewnością nie działałby "jak zwykle" tylko tak, dla pokazu) a u innego boga jeszcze coś innego itd.
tylko nie wiem, czy tak się da >.<
Jeszcze można rozszerzyć ten program także do piramid, bo do tej pory chyba nikt ich jeszcze nie modyfikował właśnie ze względu na trudności z kodem.
Wygodnie by też było zrobić tak, by można było w łatwy sposób zmienić bóstwo dedykowane świątyni (rzeźby), czyli taki uniwersalny posąg, który może przybrać postać każdego z bóstw po wybraniu z rozwijanej listy.
Lecz odnośnie do pięter aby to się tak podwyższało aby taka niby siatka była czyli takie kwadraciki. Każdy z kwadracików odpowiadał by za płytkę marmuru/schody/rzeźby itd. Jeszcze jedno, chodzi o to aby ta siatka była w środku kwadracików przezroczysta aby było można się dopasować(mniej więcej takie coś w simsach). Oczywiście widok z góry :).
Jeśli dobrze liczę, zostały mi duże posągi (kompletnie nie wiem jak je zrobić), schody + surowce naturalne (kamienie z rudą, drzewka itp), oraz duże budynki: wspaniały posąg posejdona, obserwatorium i muzeum.
Hmmm, to byłby dobry pomysł! Zlikwidowałbym wewnątrzną siatkę by atrybut owy ładnie wyglądał :D O, o! I jeszcze odpowiednie kolorki, np: niebieski dla Posejdona, zielony dla Demeter.
No i jakiś tam znacznik kierunkowy bo cztery wersje muszą być.
Obserwatorium: Biała podstawa, niebieskie koło (dach), pomarańczowe koło (maszt od soczewki)?
Posąg posejdona: Trójząb i ozdoby na dużym kwadracie?
Muzeum: Nie wiem, może zębatka jak w grze?
W załączniku grafiki, o których pisałem.
Czyli już teoretycznie program masz niemal gotowy?
Pytanie - czy kiedyś nie było takiego pomysłu jeszcze dawno temu na Olimpie?Nie przypominam sobie. ;)
Świetna robota Haspen! :) Zrobisz jeden zestaw czy dwa (wielkości)? :)
Hmmm, może zrobię mock-up jakiejś świątyni używając tych moich grafik i zobaczymy jak to całościowo wygląda?
Hmmm, może zrobię mock-up jakiejś świątyni używając tych moich grafik i zobaczymy jak to całościowo wygląda?Chętnie bym to zobaczył. Jakąś mniejszą (np. Hermes) i większą (np. Hades) (bez szczegółów, raczej tylko kontur całości i główne budynki). :)
Propo pomyslow, moze jako dodatkowy bajer dac przyciski do obracania posagow, rzezb i duzych budynkow swiatynnych?Właśnie się zastanawiałem - czy lepiej zrobić wszystko do wybrania jednym kliknięciem (czyli "posągN", "posągW", itd.) - czy może mniej (bo będzie ich całkiem sporo), a inne opcje umożliwić np. poprzez menu kontekstowe (czyli tylko jedna opcja "posąg").
(http://i.imgur.com/tRCsL.png)Świetne! Myślę, że jest na tyle duże, że wszystko przyjemnie widać nawet z trochę większej odległości/większej rozdzielczości ekranu i zarazem na tyle małe, by na niedużej rozdzielczości zmieściła się całkiem duża świątynia. Wydaje mi się, że nie trzeba robić dwóch zestawów. ;)
Haspen - po chwili? To znaczy jako długo się uruchamiało?
Pomysł ciekawy ale czy będzie jeszcze na niego popyt? Jak masz ziemek8 czas na zbyciu to pewnie i tak można spróbować, nie? Ale ja bym osobiście na nowe narzędzia do starej gry czasu nie marnowała - moje trzy grosze.
Pomysł ciekawy ale czy będzie jeszcze na niego popyt? Jak masz ziemek8 czas na zbyciu to pewnie i tak można spróbować, nie? Ale ja bym osobiście na nowe narzędzia do starej gry czasu nie marnowała - moje trzy grosze.
Ja jak zawsze ziemek odpisuje to patrze czy nie ma czasem jakiegoś linku lub załącznika :). Może będziesz wysyłać program co jakiś czas a my będziemy sprawdzać czy działa, wyłapywać bugi itp.
Z tym programem będzie jak z premierą Black Mesa: Source. Będzie w terminie "when it's done."
Z tym programem będzie jak z premierą Black Mesa: Source. Będzie w terminie "when it's done."
Oj uważaj, bo jeszcze Duke Nukem Forever :D
Ten to już wyszedł i jest, moim skromnym zdaniem, gniotem pod publikę. ;]
do wersji 1.0Co o tym myślicie?
- ustawianie elementów na zasadzie kliknij-kliknij; wybieranie elementów kliknięciem; kliknięciem na siatkę ustawia się element (jeżeli większy niż 1x1 to kliknięta powierzchnia będzie lewym, górnym rogiem postawionego elementu)
- po bokach buttony, z których można wybierać podstawowe elementy (obrócenie elementu itp. dopiero poprzez menu kontekstowe)
- piętro ustawiane jak zwykły element (kilka "pędzli" różnej wielkości (1x1, 2x2, 3x3 - by było szybciej)), nie usuwa wcześniej ustawionego tam elementu (przestawia tylko jego wewnętrzne atrybuty), (piętro niewidoczne na interfejsie, ew. dodanie małej liczby w prawym dolnym rogu - zależnie od user-experience)
- w miejscu opisów, gdy żaden nie musi być opisywany wyświetlanie estetycznych obrazków i/lub banera serwisu
- różne drobnostki standardowego interfejsu, które nie zostały jeszcze zaimplementowane (prośba o potwierdzenie przy zamykaniu nie zapisanej świątyni itp.)
do wersji 2.0
- zaznaczanie powierzchni; ustawianie piętra dla zaznaczonej powierzchni; automatyczne dodawanie potrzebnych schodów
- ustawianie elementów na zasadzie przeciągnij-i-upóść (drag&drop)
- (jeżeli zaistnieje potrzeba) możliwość przesówania pola budowy (siatki) jeżeli świątynia nie będzie się cała mieścić na ekranie
- obracanie elementu strzałkami klawiatury (po kliknięciu postawionego elementów na siatce budowy)
do wersji 3.0
- "szybka zmiana boga" - wybranie z listy rozwijanej dla jakiego boga ma być poświęcona świątynia - jeżeli cokolwiek (rzeźba/posąg) znajduje się na polu budowy to zostanie ono podmienione (Uwaga: np. świątynia Afrodyty ma różne rzeźby)
- usuwanie z interfejsu niepotrzebnych elementów (po wybraniu boga, dla którego ma być poświęcona świątynia); opcjonalne umożliwienie ich ponownego pokazania
- angielska wersja językowa
do wersji 4.0
- modyfikowanie piramid
- szybka zmiana koloru piramid
do wersji 10.0
- mniej więcej podobny interfejs do Zeusa tyle, że zamiast "kultura", "estetyka" itp. byłyby płytki, rzeźby, posągi itd.
Szczerze? Jakbym się znał na programowaniu, itd. to bym zrobił z lewej strony listę elementów.Będzie ich w sumie trochę, a nie chcę rozciągać okna zbyt dużo w wysokość (by minimalna rozdzielczość ekranu nie musiała być duża).
I zdecydowanie elementy muszą być po tylko jednej stronie - mnie by pasowało po prawej elementy i po lewej okno edytora (a la interfejs Zeusa)Szerzej, ale po jednej stronie? Zamiast po dwóch stronach elementy do wybierania. (w tym drugim przypadku teoretycznie mniej czasu poświęca się na wybieranie i ustawianie elementów ;) )
Szczerze? Jakbym się znał na programowaniu, itd. to bym zrobił z lewej strony listę elementów.Będzie ich w sumie trochę, a nie chcę rozciągać okna zbyt dużo w wysokość (by minimalna rozdzielczość ekranu nie musiała być duża).I zdecydowanie elementy muszą być po tylko jednej stronie - mnie by pasowało po prawej elementy i po lewej okno edytora (a la interfejs Zeusa)Szerzej, ale po jednej stronie? Zamiast po dwóch stronach elementy do wybierania. (w tym drugim przypadku teoretycznie mniej czasu poświęca się na wybieranie i ustawianie elementów ;) )
Co myślicie o planie (co w której wersji ma wejść)?
Ale długie menu do wybierania obiektu to mus, tak czy siak. Zło konieczne z którym trzeba żyć ;)No tak. ;)
Łąki, drzewa i skały mineralne już są w tym programie.
Myślę, żeby jednak tego auto-zastępowania nie robić. Dużo ludzi może przez pomyłkę kliknąć na zły kwadrat i usunąć fragment, którego nie chcieli usuwać. Proponowałbym żeby stawianie jednego elementu na drugi (o ile to nie jest bazowa płytka marmurowa) nie miało żadnego efektu i właśnie specjalnym "usuwaczem" się zmieniało postawione już elementy.Pomyłka i wrócenie do poprzedniego stanu - "z gumką" czy bez - będzie wymagała takiej samej ilości akcji.
Auto-zastępowanie może być, ale trzeba to lepiej dopracować, bo czasem pojawia się błąd: "Nieobsługiwany wyjątek aplikacji". Poza tym proponuję zablokować możliwość stawiania dwóch jednakowych dużych budynków świątyni albo chociaż dać jakąś informację, bo ktoś może o tym nie wiedzieć i później będzie się dziwił, że nie może wybudować w grze jakiejś świątyni. Wyłapałem też pewien rażący błąd językowy tzn. nie ma w języku polskim słowa "tylnia", powinno być "tylna" ;).Wyjątek pojawiał się przy krawędziach siatki budowy, już to poprawiłem.
Może też dałoby się jakoś zamieścić grafiki poza programem, by można było je w łatwy sposób modyfikować?
Dobrze by było dać również możliwość cofania zmian oraz powtarzania.
a mi ten program na kompie jak na razie nie działa.Jaki masz system operacyjny? Który ServicePack masz zainstalowany? (Mój Komputer -> PPM na puste pole -> Właściwości)
jestem za gumką, może sie przydać.
oczywiście zamieść też możliwość dawania łąk, drzewek, skał mineralnych...
może nawet, jak by się "udauo" to wodę a w środku jeżowce lub ryby. mogłoby to być przy świątyni posejdona.
jak sie da.
a dać sie powinno, bo jak zrobili że wokół demeter jest łąka a u ateny oliwki :>
Łąk nie ma bo nigdzie nie widziałem takiej ikonki na liście. Podejrzewam że autorzy gry byli leniwi i wrzucili 'poza' kod świątyń coś takiego jak: "Ta świątynia to Demeter, zrób łąki dookoła."Też mi się wydaje, że to jest hardcoded w samej grze i nie da się tego zmienić, a przynajmniej nie tak łatwo.
Myślę, żeby jednak tego auto-zastępowania nie robić. Dużo ludzi może przez pomyłkę kliknąć na zły kwadrat i usunąć fragment, którego nie chcieli usuwać. Proponowałbym żeby stawianie jednego elementu na drugi (o ile to nie jest bazowa płytka marmurowa) nie miało żadnego efektu i właśnie specjalnym "usuwaczem" się zmieniało postawione już elementy.Pomyłka i wrócenie do poprzedniego stanu - "z gumką" czy bez - będzie wymagała takiej samej ilości akcji.
W przypadku gumki - trzeba ją wybrać i kliknąć na zbędny element.
W przypadku bez gumki - trzeba wybrać to co się przypadkiem usunęło i postawić jeszcze raz.
O ile druga sytuacja niewiele się różni z gumką czy bez, to w pierwszej sytuacji (o którą bardzo łatwo) znacznie to przyspieszy budowanie.Czyli proponujesz bardziej: jak coś się postawi to ma to stać i nic nie może tego ruszyć - oprócz gumki. A ja: najnowsze akcje są tymi właściwymi. Może zrobię opcjonalnie oba tryby.
E: @Haspen, czyli masz już wszystkie grafiki oprócz atlantydzkiej trójki, zgadza się?
Póki co, mnie działa sprawnie, aczkolwiek o płynności za wiele powiedzieć nie można (ładowanie światyń trwa sekundę a nawet dwie, malowanie 'nowego' okna dla nowej świątyni też troszeczkę trwa), ale czas oczekiwania nie przekroczył ani razu dwóch-trzech sekund.Może popracuję trochę nad optymalizacją.
Kilka drobnych uwag:-Poprawione.
- małe rzeźby Posejdona są zamienione z małymi rzeźbami Hadesa
- fajnie by było, gdyby program zapamiętywał lokalizację ostatnio otwieranej świątyni
- schody są trochę mało widoczne
Miałem problem z otwarciem największej dotąd stworzonej świątyni, autorstwa MaćkaZ (plik tekstowy jest bardzo duży):Tak, zapewne będą dwa rodzaje schodów. Wydaje mi się, że właśnie "schody piramid" sa powodem nieotwierania się tej świątyni, ale jeszcze to sprawdzę.
Być może jest to spowodowane dużym rozmiarem, jednak wydaje mi się, że problem tkwi w czymś innym. Program nie rozpoznaje czy schody prowadzą na górę czy na dół, więc trzeba wprowadzić dwa rodzaje schodów.
Ho ho, ładowanie świątyni Artemidy wywaliło wyjątek!W świątyni Artemidy jest... błąd. Nie ma przecinka po "2". Mimo, że w grze działa, nie ma raczej potrzeby implementowania tej funkcjonalności. ;)
{3,9, 2 1,},Skąd wiadomo czy to puste miejsce, gdzie będzie można postawić basen, znajdzie się piętro wyżej czy niżej?
Mam propozycję – aby po najechaniu kursorem na pole były widoczne jego współrzędne. Ewentualnie zrobić tabelkę, jak w grze w statki. ;) Oczywiście tyczy się to głównie tych otwieranych świątyń; jeśli chodzi o budowane od nowa to trzeba byłoby pomysleć (wszak pewnie z podobnego powodu nie ma jeszcze opcji zapisu :D).Nie do końca rozumiem. Chcesz by tymczasowo (dopóki nie można zapisywać) dać wyświetlanie współrzędnych?
Mogę spróbować zrobić ściany piramid, na temat spektakularnego posągu nie wiem, co powiedzieć. A muzeum? Mam to. Wiem, że w porównaniu z grą wygląda to mało barwnie, a Posejdon i ta cała kula powinny być większe, ale no tak wyszło ;):Ekstra! Dzięki. :D
Z tymi schodami chodziło mi o coś innego. Program może normalnie odczyta taką świątynię, ale skąd użytkownik będzie wiedział czy schody podwyższają piętro czy obniżają?Co do poziomów to jest pomysł by nadawać go "pędzlami". A informacje wyświetlane byłyby (aktualnie jest taki pomysł) w postaci małej cyfry w rogu kwadratu.
E2: Pewnie wszyscy to wiedzą, ale nie ma suwaka do przesuwania widoku w przypadku obszernych świątyń :<Tak, aktualnie tego nie ma, ale będzie.
Nie do końca rozumiem. Chcesz by tymczasowo (dopóki nie można zapisywać) dać wyświetlanie współrzędnych?
Co do poziomów to jest pomysł by nadawać go "pędzlami". A informacje wyświetlane byłyby (aktualnie jest taki pomysł) w postaci małej cyfry w rogu kwadratu.
{0, 0, 111, 0,},
{0, 1, 55, 0,},
{0, 2, 55, 0,},
{0, 3, 55, 0,},
{0, 4, 55, 0,},
{0, 5, 111, 0,},
{1, 0, 55, 0,},
{1, 1, 110, 0,},
{1, 5, 55, 0,},
{2, 0, 55, 0,},
{2, 5, 55, 0,},
{3, 0, 55, 0,},
{3, 5, 55, 0,},
{4, 0, 55, 0,},
{4, 5, 55, 0,},
{5, 0, 111, 0,},
{5, 1, 55, 0,},
{5, 2, 55, 0,},
{5, 3, 55, 0,},
{5, 4, 55, 0,},
{5, 5, 111, 0,},
Druga:{0, 0, 111, 0,},
{0, 1, 111, 0,},
{0, 2, 55, 0,},
{0, 3, 55, 0,},
{0, 4, 55, 0,},
{0, 5, 55, 0,},
{0, 6, 55, 0,},
{0, 7, 55, 0,},
{0, 8, 55, 0,},
{0, 9, 55, 0,},
{0, 10, 111, 0,},
{0, 11, 111, 0,},
{1, 0, 111, 0,},
{1, 1, 111, 0,},
{1, 2, 1, 0,},
{1, 6, 0, 0,},
{1, 10, 111, 0,},
{1, 11, 111, 0,},
{2, 0, 55, 0,},
{2, 1, 55, 0,},
{2, 10, 55, 0,},
{2, 11, 55, 0,},
{3, 0, 55, 0,},
{3, 1, 55, 0,},
{3, 10, 55, 0,},
{3, 11, 55, 0,},
{4, 0, 111, 0,},
{4, 1, 111, 0,},
{4, 10, 111, 0,},
{4, 11, 111, 0,},
{5, 0, 111, 0,},
{5, 1, 111, 0,},
{5, 2, 55, 0,},
{5, 3, 55, 0,},
{5, 4, 55, 0,},
{5, 5, 55, 0,},
{5, 6, 55, 0,},
{5, 7, 55, 0,},
{5, 8, 55, 0,},
{5, 9, 55, 0,},
{5, 10, 111, 0,},
{5, 11, 111, 0,},
Jak komuś wygodniej to zamieszczam w załączniku.Działa. ;) Biorąc jednak pod uwagę, że zapis powinien mieć jedyną słuszną opcję (już widzę w kodzie jakieś n, n+1, n-1 :P) – czy nie popsuje się to, gdy opcje zapisu zostaną już ustalone?Dla programu nie ma znaczenia gdzie znajduje się budynek główny, jest to kolejny element. Najpierw obliczam wielkość świątyni, a dopiero następnie układam elementy z odpowiednim przesunięciem (jeżeli były ujemne wartości). ;)
Rozumiem. A jak na odwrót? Na jakiej podstawie program wygeneruje wartości niedodatnie i dodatnie właśnie takie, a nie inne? Podzieli wielkość [regularnej] świątyni na pół, aby suma każdej pary skrajnych punktów dawała zawsze 0? Poszuka jakiegoś punktu zwrotnego? Poleci użytkownikowi wskazać obszar, który nim będzie? Heh, pewnie gdyby to było takie proste, zapis mielibyśmy już teraz i tym bardziej rozumiem to, że musimy tyle czekać. ;)Chyba za dużo o tym myślisz. ;) Nie do końca rozumiem co masz na myśli. Nie ma znaczenia czy świątynia jest zapisana zgodnie z zasadą, że budynek główny musi być w (0,0) - czyli są pewne ujemne wspołrzędne; czy zgodnie z zasadą, że współrzędne lewego górnego rogu to (0,0). Program za każdym razem nadaje swoje własne współrzędne (tyle, że w tym drugim przypadku będą one zgodne z tymi podanymi w pliku, ale to nie ma znaczenia).
Program za każdym razem nadaje swoje własne współrzędne
O, właśnie. Mnie po prostu ciekawi to, na jakiej zasadzie je nadaje. ;)Na początku obliczana jest wielkość świątyni, np 10x12. Potem zaczynając od elementów o najmniejszych współrzędnych (niezależnie czy jest to (0,0) czy np. (-4,-3)) układa je nadając im współrzędne od (0,0).
{2, 0, 55, 0,},
{-2, 0, 55, 0,},
{0, 0, 55, 0,},
{0, -2, 55, 0,},
{0, 2, 55, 0,}, {8, 0, 55, 0,},
{-8, 0, 55, 0,},
{0, 0, 55, 0,},
{0, -8, 55, 0,},
{0, 8, 55, 0,}, {12, 4, 55, 0,},
{-4, 4, 55, 0,},
{4, 4, 55, 0,},
{4, -4, 55, 0,},
{4, 12, 55, 0,}, {-7, -6, 1000, 2,},
{-6, -6, 55, 4,},
{-5, -6, 1000, 2,},
{-5, -7, 1000, 2,},
{-6, -7, 1000, 2,},
{-7, -7, 1000, 2,},
{-5, -5, 1000, 2,},
{-6, -5, 1000, 2,},
{-7, -5, 1000, 2,},
{-8, -5, 1000, 0,},
{-8, -6, 1000, 0,},
{-8, -7, 1000, 0,},
{-4, -5, 1000, 0,},
{-4, -6, 1000, 0,},
{-4, -7, 1000, 0,},
{-4, -8, 1000, 0,},
{-5, -8, 1000, 0,},
{-6, -8, 1000, 0,},
{-7, -8, 1000, 0,},
{-8, -8, 1000, 0,},
{-4, -4, 1000, 0,},
{-5, -4, 1000, 0,},
{-6, -4, 1000, 0,},
{-7, -4, 1000, 0,},
{-8, -4, 1000, 0,},Jeżeli potrzeba dalszych informacji, pokażę na siatce z edytora.Chętnie. ;) Bo nie do końca zrozumiałem.
EDIT: Przeglądał ktoś obydwie legendy z generatora dzielnic na Zeus Heaven? Bo w jednej jest świątynia ale nie ma co do niej żadnych objaśnień.Masz może linka?
http://zeus.heavengames.com/misc/zeusglyph.shtmlRzeczywiście są, ale tylko dwie...
Jedna legenda jest tam w przyciskach, druga zaś (ze świątyniami, a nawet pałacem) – na samym dole.
Spójrz teraz wyżej. ;)Czyli jak zrobię tak jak na obrazkach to będzie jak w grze?
Teraz przyszedł mi do głowy pomysł by program miał dodatkową funkcję - zapisu nie tylko pliku .txt, ale też .png - czyli to co widać w programie robiąc świątynię. Użytkownik mógłby zamieścić obrazek na forum razem z plikiem .txt. (Czasami robienie screen'ów dużym świątyniom jest całkiem pracochłonne.)
Czyli jak zrobię tak jak na obrazkach to będzie jak w grze?Gwiazdki pokazują, który punkt należy oznaczyć jako (0,0), aby uzyskać to, co wynika z tych obrazków (biały znaczek pokazuje, który punkt będzie pod kursorem).
A co do wzniesień, wczytałam świątynię z wgłębieniem i wyświetliła się normalnie. Wiem, tak zawsze było. Ale nadpisać się boję. :>Tak, jak zapiszesz ją programem, to wszystkie schody będą do góry.
Chrome mnie ostrzegał, że ten plik jest "złowrogi" (malicious)...To nie jest tak, że jakikolwiek exe jest tak oznaczany? Nie wiem jak Chrome rozpoznaje, że plik jest złowrogi.
Rzeczywiście, teraz sobie przypominam to pierwsze ostrzeżenie.
To bardzo dziwne. Z poprzednimi wersjami programu nie miałeś takiego ostrzeżenia? Od tamtego czasu dodałem dosłownie tylko obsługę schodów (i odkomentowałem zapisywanie pliku).
"In addition to checking a list of known bad files, Chrome also does checks on executable files (like ".exe" and ".msi" files). If the executable doesn't match a whitelist, Chrome checks with Google for more information, such as whether the website you're accessing hosts a high number of malicious downloads," Lutz explained.I jako, że forum jest jako "Can harm your computer..." to pliki pobierane z niego (exeki) są złowrogie.
watek pobudzajacy obiekt do dzialaniaKtórą z tych funkcjonalności chcecie jako pierwszą? :)
odswiezanie tylko czesci pictureboxa
by (0,0) było na środku świątyni
Nie ma spektakularnego posągu Posejdona i elementów piramidowych (chodzi o podgląd świątyni Atlantów).
(obrócenie elementu itp. dopiero poprzez menu kontekstowe)
DAĆ POPROSTU DWA RODZAJE SCHODOW - będą kodowane jako ten sam kod, ale na innym pietrze!
wiec podwojny spadek... jak to zrobic? chyba trzeba przeklikiwac poziom jakos - kolejne dwa rodzaje schodów?
"Białe zbocze piramidy wtedy jest na miejscu schodów, ziemek."
anulowanie wybrania pliku - exception wyskakuje - ^^
-1 to specjalna wartosc - nie oznacza braku czegokolwiek (nie oznacza niczego, nie oznacza pustki, nie oznacza wolnego terenu) ;; zrobic specjalna wartosc dla wolnego terenu (i potem nie kodowac linii z nimi zwiazanych)
dodanie "pustej przestrzeni" jako plytki - by moc robic dziury dla "niestandardowych swiatyn)
wyłapywać wszystkie możliwe wyjątki
-------- WYDAĆ WERSJĘ 0.1.0
popracować trochę nad optymalizacją (duże świątia (tak jak ta MaćkaZ Hadesa))
z listy rozwijanej wybierac nazwe zapisywanego pliku (dla jekiego boga (Sanctuary_....txt)
jezeli cos sie robilo i zamyka sie, czy wybiera nowa swiatynie... by wyskakiwalo - "czy na pewno? czy zapisać"
zapisywanie przed wyjsciem (tam gdzie jest fhis.close() )
zablokować możliwość stawiania dwóch jednakowych dużych budynków
undo | redo
Teraz przyszedł mi do głowy pomysł by program miał dodatkową funkcję - zapisu nie tylko pliku .txt, ale też .png - czyli to co widać w programie robiąc świątynię. Użytkownik mógłby zamieścić obrazek na forum razem z plikiem .txt. (Czasami robienie screen'ów dużym świątyniom jest całkiem pracochłonne.)
tam gdzie sa opisy - jak kursor nie jest nad zadnym buttonem to niech wyswietla sie cos innego... moze cos lednego... jakis ladny obrazek, mzoe nawet kilka losowych ;) ... albo (ew. i/lub m.in.) adres serwisu ;)
przesówanie środkowego ekranu - siatki budowy, gdy siatka budowy przekracza iles rozdzielczosci ekranu (bo jak duza swiatynei sie buduje to znika panel))
przyda się opcja 'przytnij na wymiar', tj: żeby można było zaznaczyć obszar świątyni a program przyjąłby ten obszar jako nowe wartości długości i szerokości. Np: robimy świątynię 20x30, no ale w końcu wyszło nam 16x24: zaznaczamy, a pole edytora zmniejsza się do 16x24
i powiekszanie w locie tez zrobic
Czyli proponujesz bardziej: jak coś się postawi to ma to stać i nic nie może tego ruszyć - oprócz gumki. A ja: najnowsze akcje są tymi właściwymi. Może zrobię opcjonalnie oba tryby.
do wersji 1.0
- ustawianie elementów na zasadzie kliknij-kliknij; wybieranie elementów kliknięciem; kliknięciem na siatkę ustawia się element (jeżeli większy niż 1x1 to kliknięta powierzchnia będzie lewym, górnym rogiem postawionego elementu)
- po bokach buttony, z których można wybierać podstawowe elementy (obrócenie elementu itp. dopiero poprzez menu kontekstowe)
- piętro ustawiane jak zwykły element (kilka "pędzli" różnej wielkości (1x1, 2x2, 3x3 - by było szybciej)), nie usuwa wcześniej ustawionego tam elementu (przestawia tylko jego wewnętrzne atrybuty), (piętro niewidoczne na interfejsie, ew. dodanie małej liczby w prawym dolnym rogu - zależnie od user-experience)
- w miejscu opisów, gdy żaden nie musi być opisywany wyświetlanie estetycznych obrazków i/lub banera serwisu
- różne drobnostki standardowego interfejsu, które nie zostały jeszcze zaimplementowane (prośba o potwierdzenie przy zamykaniu nie zapisanej świątyni itp.)
-------- WYDAĆ WERSJĘ 1.0.0
do wersji 2.0
- zaznaczanie powierzchni; ustawianie piętra dla zaznaczonej powierzchni; automatyczne dodawanie potrzebnych schodów
- ustawianie elementów na zasadzie przeciągnij-i-upóść (drag&drop)
- (jeżeli zaistnieje potrzeba) możliwość przesówania pola budowy (siatki) jeżeli świątynia nie będzie się cała mieścić na ekranie
- obracanie elementu strzałkami klawiatury (po kliknięciu postawionego elementów na siatce budowy)
- skróty klawiszowe 1-9 - Ctrl+1 itp. wpisywanie do skrotu wybranego elementu - 1 - wybieranie go itd.
do wersji 3.0
- "szybka zmiana boga" - wybranie z listy rozwijanej dla jakiego boga ma być poświęcona świątynia - jeżeli cokolwiek (rzeźba/posąg) znajduje się na polu budowy to zostanie ono podmienione (Uwaga: np. świątynia Afrodyty ma różne rzeźby)
- usuwanie z interfejsu niepotrzebnych elementów (po wybraniu boga, dla którego ma być poświęcona świątynia); opcjonalne umożliwienie ich ponownego pokazania
- angielska wersja językowa
do wersji 4.0
- modyfikowanie piramid
- szybka zmiana koloru piramid
może to
http://n-gry.pl/forum/index.php?action=pm;sa=send;f=inbox;pmsg=451;quote;u=3315
i rzeczywisty wygląd świątyni (może w pomniejszeniu trochę (umożliwić skalowanie obrazu)) .. zobaczyc czy to mozliwe
do wersji 10.0
- mniej więcej podobny interfejs do Zeusa tyle, że zamiast "kultura", "estetyka" itp. byłyby płytki, rzeźby, posągi itd.
private void button1_Click_1(object sender, EventArgs e)
{
wybrany_element = 0;
}
private void button1_MouseHover_1(object sender, EventArgs e)
{
this.richTextBox1.Text = "Przednia część dużego budynku świątyni (oś północ-południe).";
}
private void button2_Click(object sender, EventArgs e)
{
wybrany_element = 1;
}
private void button2_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Tylna część dużego budynku świątyni (oś północ-południe).";
}
private void button3_Click(object sender, EventArgs e)
{
wybrany_element = 159;
}
private void button3_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Tylna część dużego budynku świątyni (oś wschód-zachód).";
}
private void button4_Click(object sender, EventArgs e)
{
wybrany_element = 158;
}
private void button4_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Przednia część dużego budynku świątyni (oś wschód-zachód).";
}
private void button7_Click(object sender, EventArgs e)
{
wybrany_element = 110;
}
private void button7_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Mały budynek świątyni (oś północ-południe).";
}
private void button5_Click(object sender, EventArgs e)
{
wybrany_element = 4;
}
private void button5_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Tył pałacu.";
}
private void button6_Click(object sender, EventArgs e)
{
wybrany_element = 3;
}
private void button6_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Przód pałacu.";
}
private void button8_Click(object sender, EventArgs e)
{
wybrany_element = 2;
}
private void button8_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Ołtarz.";
}
private void button9_Click(object sender, EventArgs e)
{
wybrany_element = 1000;
}
private void button9_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Schody.";
}
private void button10_Click(object sender, EventArgs e)
{
wybrany_element = 1001;
}
private void button10_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Skała srebra.";
}
private void button11_Click(object sender, EventArgs e)
{
wybrany_element = 1002;
}
private void button11_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Drzewko oliwne.";
}
private void button12_Click(object sender, EventArgs e)
{
wybrany_element = 1003;
}
private void button12_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Skała miedzi.";
}
private void button13_Click(object sender, EventArgs e)
{
wybrany_element = 1004;
}
private void button13_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Winorośl.";
}
private void button14_Click(object sender, EventArgs e)
{
wybrany_element = 1005;
}
private void button14_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Drzewko pomarańczowe.";
}
private void button15_Click(object sender, EventArgs e)
{
wybrany_element = 63;
}
private void button15_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Zeusa (S).";
}
private void button16_Click(object sender, EventArgs e)
{
wybrany_element = 55;
}
private void button16_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Czysty marmur.";
}
private void button17_Click(object sender, EventArgs e)
{
wybrany_element = 56;
}
private void button17_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Ozdobna płytka.";
}
private void button18_Click(object sender, EventArgs e)
{
wybrany_element = 67;
}
private void button18_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Posejdona (S).";
}
private void button19_Click(object sender, EventArgs e)
{
wybrany_element = 71;
}
private void button19_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Hadesa (S).";
}
private void button20_Click(object sender, EventArgs e)
{
wybrany_element = 75;
}
private void button20_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Demeter (S).";
}
private void button21_Click(object sender, EventArgs e)
{
wybrany_element = 79;
}
private void button21_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Ateny (S).";
}
private void button22_Click(object sender, EventArgs e)
{
wybrany_element = 83;
}
private void button22_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Artemidy (S).";
}
private void button23_Click(object sender, EventArgs e)
{
wybrany_element = 87;
}
private void button23_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Apolla (S).";
}
private void button24_Click(object sender, EventArgs e)
{
wybrany_element = 91;
}
private void button24_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Aresa (S).";
}
private void button25_Click(object sender, EventArgs e)
{
wybrany_element = 95;
}
private void button25_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Hefajstosa (S).";
}
private void button26_Click(object sender, EventArgs e)
{
wybrany_element = 99;
}
private void button26_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Afrodyty (S).";
}
private void button27_Click(object sender, EventArgs e)
{
wybrany_element = 103;
}
private void button27_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Hermesa (S).";
}
private void button28_Click(object sender, EventArgs e)
{
wybrany_element = 107;
}
private void button28_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Dionizosa (S).";
}
private void button29_Click(object sender, EventArgs e)
{
wybrany_element = 131;
}
private void button29_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Atlasa (S).";
}
private void button30_Click(object sender, EventArgs e)
{
wybrany_element = 127;
}
private void button30_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Posąg Hery (S).";
}
private void button31_Click(object sender, EventArgs e)
{
wybrany_element = 9;
}
private void button31_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Zeusa (S).";
}
private void button32_Click(object sender, EventArgs e)
{
wybrany_element = 17;
}
private void button32_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Hadesa (S).";
}
private void button33_Click(object sender, EventArgs e)
{
wybrany_element = 13;
}
private void button33_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Posejdona (S).";
}
private void button34_Click(object sender, EventArgs e)
{
wybrany_element = 21;
}
private void button34_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Demeter (S).";
}
private void button35_Click(object sender, EventArgs e)
{
wybrany_element = 25;
}
private void button35_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Ateny (S).";
}
private void button36_Click(object sender, EventArgs e)
{
wybrany_element = 29;
}
private void button36_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Artemidy (S).";
}
private void button37_Click(object sender, EventArgs e)
{
wybrany_element = 33;
}
private void button37_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Apolla (S).";
}
private void button38_Click(object sender, EventArgs e)
{
wybrany_element = 37;
}
private void button38_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Aresa (S).";
}
private void button39_Click(object sender, EventArgs e)
{
wybrany_element = 41;
}
private void button39_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Hefejstosa (S).";
}
private void button40_Click(object sender, EventArgs e)
{
wybrany_element = 45;
}
private void button40_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Afrodyty (S).";
}
private void button41_Click(object sender, EventArgs e)
{
wybrany_element = 49;
}
private void button41_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Hermesa (S).";
}
private void button42_Click(object sender, EventArgs e)
{
wybrany_element = 53;
}
private void button42_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Dionizosa (S).";
}
private void button43_Click(object sender, EventArgs e)
{
wybrany_element = 139;
}
private void button43_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Atlasa (S).";
}
private void button44_Click(object sender, EventArgs e)
{
wybrany_element = 135;
}
private void button44_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Rzeźba Hery (S).";
}
private void button47_Click(object sender, EventArgs e)
{
wybrany_element = 57;
}
private void button48_Click(object sender, EventArgs e)
{
wybrany_element = 58;
}
private void button49_Click(object sender, EventArgs e)
{
wybrany_element = 59;
}
private void button50_Click(object sender, EventArgs e)
{
wybrany_element = 60;
}
private void button58_Click(object sender, EventArgs e)
{
wybrany_element = 152;
}
private void button60_Click(object sender, EventArgs e)
{
wybrany_element = 154;
}
private void button59_Click(object sender, EventArgs e)
{
wybrany_element = 153;
}
private void button52_Click(object sender, EventArgs e)
{
wybrany_element = 111;
}
private void button52_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Czysty marmur (z pojawiającym się zniczem, jeżeli bóg jest w mieście).";
}
private void button53_Click(object sender, EventArgs e)
{
wybrany_element = 112;
}
// nie wszystkie płytki mają hover inny, bo mają taki sam wyświetlany tekst
private void button53_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Ozdobna płytka (z pojawiającym się zniczem, jeżeli bóg jest w mieście).";
}
private void button54_Click(object sender, EventArgs e)
{
wybrany_element = 113;
}
private void button55_Click(object sender, EventArgs e)
{
wybrany_element = 114;
}
private void button56_Click(object sender, EventArgs e)
{
wybrany_element = 115;
}
private void button57_Click(object sender, EventArgs e)
{
wybrany_element = 116;
}
private void button61_Click(object sender, EventArgs e)
{
wybrany_element = 155;
}
private void button63_Click(object sender, EventArgs e)
{
wybrany_element = 157;
}
private void button62_Click(object sender, EventArgs e)
{
wybrany_element = 156;
}
private void button46_Click(object sender, EventArgs e)
{
wybrany_element = 6;
}
private void button46_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Płytka pałacowa (nie wymaga marmuru).";
}
private void button45_Click(object sender, EventArgs e)
{
wybrany_element = 5;
}
private void button45_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Płytka pałacowa z chorągwią wojska.";
}
private void button51_Click(object sender, EventArgs e)
{
wybrany_element = 109;
}
private void button51_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Płytka z chorągwią wojska.";
}
private void button64_Click(object sender, EventArgs e)
{
wybrany_element = 149;
}
private void button64_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Obserwatorium.";
}
private void button65_Click(object sender, EventArgs e)
{
wybrany_element = 150;
}
private void button65_MouseHover(object sender, EventArgs e)
{
this.richTextBox1.Text = "Muzeum.";
}
opisy.Add("_0", "Przednia część dużego budynku świątyni (oś północ-południe).");
'Przyklejenie' - tą funkcjonalność po części spełnia "nowe ważniejsze". Gdy nie trafi się w puste miejsce to nowy element nie jest stawiany.
Strzałki sa bardziej useability. ;)
(góra)
(lewa) środek (prawa)
(dół)Ale więcej miejsca takie coś by zajmowało. Buttony nie mogą być zbyt małe, bo ciężko będzie w nie trafić. ;)
Te na skos miały właśnie przyspieszyć powiększanie/pomniejszanie - na tyle przyspieszyć by nie trzeba było liczb wprowadzać tekstowo. ;)
A jak to już wgl wygląda?
:)
Ten drugi -> Tak właśnie sobie to wyobrażałem, ale właśnie te buttony są teraz wg mnie za małe. ;)
Ale przyznam, że wygląda to całkiem nieźle!
Więcej takich uwag proszę! :)
Och pewnie, jeżeli możesz to zrób wszystkie! :DSuper by było jakbyś to zrobił. :D
(rzeźby i posągi w każdym kierunku, i wszystkie inne pominięte wcześniej elementy)
Hehe. Co dokładnie masz na myśli?
Generować grafikę taką jaka jest w grze? Tak by po kliknięciu zobaczyć dokładnie to co zobaczyło by się w grze?
Tak. Można zrobić screen świątyni w grze dla każdego sposobu modyfikacji świątyni (czasochłonne;/), bo na to wygląda że nie ma innej możliwości.
(http://n-gry.pl/forum/index.php?action=dlattach;topic=911.0;attach=1602;image)
Kogo mogły przedstawiać owe wizerunki? Natknąłem się na nie w plikach gry. Najwidoczniej twórcy ich nie wykorzystali.
A to ciekawe! :)
Gdzie je znalazłeś? Może dzięki edytorowi? ;)
Rzeczywiście nie przypominam sobie takich postaci.
Ta druga wygląda mi na przedstawiciela Oceanidów, a pierwsza... hmmm... może wystraszony przez potwora chłop? ;)
Dzięki programowi niejakiej Pecunii - sgreader. Jest on zamieszczony na stronie twórców modów do Cezara 3 Caesar's Mod Squad (http://c3modsquad.web.officelive.com/downloads.aspx). (...)
kosztMarmuru.Add("_8", 0);
kosztMarmuru.Add("_9", 0);
kosztMarmuru.Add("_2", 0);
kosztMarmuru.Add("_3", 0);
kosztMarmuru.Add("_0", 0);
kosztMarmuru.Add("_1", 0);
kosztMarmuru.Add("_6", 0);
kosztMarmuru.Add("_7", 0);
kosztMarmuru.Add("_4", 0);
kosztMarmuru.Add("_5", 0);
kosztMarmuru.Add("_93", 0);
kosztMarmuru.Add("_92", 0);
kosztMarmuru.Add("_91", 0);
kosztMarmuru.Add("_90", 0);
kosztMarmuru.Add("_97", 0);
kosztMarmuru.Add("_96", 0);
kosztMarmuru.Add("_95", 0);
kosztMarmuru.Add("_94", 0);
kosztMarmuru.Add("_99", 0);
kosztMarmuru.Add("_98", 0);
kosztMarmuru.Add("_82", 0);
kosztMarmuru.Add("_83", 0);
kosztMarmuru.Add("_80", 0);
kosztMarmuru.Add("_81", 0);
kosztMarmuru.Add("_86", 0);
kosztMarmuru.Add("_87", 0);
kosztMarmuru.Add("_84", 0);
kosztMarmuru.Add("_85", 0);
kosztMarmuru.Add("_88", 0);
kosztMarmuru.Add("_89", 0);
kosztMarmuru.Add("_39", 0);
kosztMarmuru.Add("_38", 0);
kosztMarmuru.Add("_31", 0);
kosztMarmuru.Add("_30", 0);
kosztMarmuru.Add("_33", 0);
kosztMarmuru.Add("_32", 0);
kosztMarmuru.Add("_35", 0);
kosztMarmuru.Add("_34", 0);
kosztMarmuru.Add("_37", 0);
kosztMarmuru.Add("_36", 0);
kosztMarmuru.Add("_28", 0);
kosztMarmuru.Add("_29", 0);
kosztMarmuru.Add("_20", 0);
kosztMarmuru.Add("_21", 0);
kosztMarmuru.Add("_22", 0);
kosztMarmuru.Add("_23", 0);
kosztMarmuru.Add("_24", 0);
kosztMarmuru.Add("_25", 0);
kosztMarmuru.Add("_26", 0);
kosztMarmuru.Add("_27", 0);
kosztMarmuru.Add("_19", 0);
kosztMarmuru.Add("_18", 0);
kosztMarmuru.Add("_13", 0);
kosztMarmuru.Add("_12", 0);
kosztMarmuru.Add("_11", 0);
kosztMarmuru.Add("_10", 0);
kosztMarmuru.Add("_17", 0);
kosztMarmuru.Add("_16", 0);
kosztMarmuru.Add("_15", 0);
kosztMarmuru.Add("_14", 0);
kosztMarmuru.Add("_79", 0);
kosztMarmuru.Add("_78", 0);
kosztMarmuru.Add("_75", 0);
kosztMarmuru.Add("_74", 0);
kosztMarmuru.Add("_77", 0);
kosztMarmuru.Add("_76", 0);
kosztMarmuru.Add("_71", 0);
kosztMarmuru.Add("_70", 0);
kosztMarmuru.Add("_73", 0);
kosztMarmuru.Add("_72", 0);
kosztMarmuru.Add("_68", 0);
kosztMarmuru.Add("_69", 0);
kosztMarmuru.Add("_64", 0);
kosztMarmuru.Add("_65", 0);
kosztMarmuru.Add("_66", 0);
kosztMarmuru.Add("_67", 0);
kosztMarmuru.Add("_60", 0);
kosztMarmuru.Add("_61", 0);
kosztMarmuru.Add("_62", 0);
kosztMarmuru.Add("_63", 0);
kosztMarmuru.Add("_59", 0);
kosztMarmuru.Add("_58", 0);
kosztMarmuru.Add("_57", 0);
kosztMarmuru.Add("_56", 0);
kosztMarmuru.Add("_55", 0);
kosztMarmuru.Add("_54", 0);
kosztMarmuru.Add("_53", 0);
kosztMarmuru.Add("_52", 0);
kosztMarmuru.Add("_51", 0);
kosztMarmuru.Add("_50", 0);
kosztMarmuru.Add("_48", 0);
kosztMarmuru.Add("_49", 0);
kosztMarmuru.Add("_46", 0);
kosztMarmuru.Add("_47", 0);
kosztMarmuru.Add("_44", 0);
kosztMarmuru.Add("_45", 0);
kosztMarmuru.Add("_42", 0);
kosztMarmuru.Add("_43", 0);
kosztMarmuru.Add("_40", 0);
kosztMarmuru.Add("_41", 0);
kosztMarmuru.Add("_1003", 0);
kosztMarmuru.Add("_1002", 0);
kosztMarmuru.Add("_1001", 0);
kosztMarmuru.Add("_1000", 0);
kosztMarmuru.Add("_1006", 0);
kosztMarmuru.Add("_1005", 0);
kosztMarmuru.Add("_1004", 0);
kosztMarmuru.Add("_129", 0);
kosztMarmuru.Add("_128", 0);
kosztMarmuru.Add("_121", 0);
kosztMarmuru.Add("_120", 0);
kosztMarmuru.Add("_122", 0);
kosztMarmuru.Add("_125", 0);
kosztMarmuru.Add("_124", 0);
kosztMarmuru.Add("_127", 0);
kosztMarmuru.Add("_126", 0);
kosztMarmuru.Add("_138", 0);
kosztMarmuru.Add("_139", 0);
kosztMarmuru.Add("_130", 0);
kosztMarmuru.Add("_131", 0);
kosztMarmuru.Add("_132", 0);
kosztMarmuru.Add("_133", 0);
kosztMarmuru.Add("_134", 0);
kosztMarmuru.Add("_135", 0);
kosztMarmuru.Add("_136", 0);
kosztMarmuru.Add("_137", 0);
kosztMarmuru.Add("_109", 0);
kosztMarmuru.Add("_108", 0);
kosztMarmuru.Add("_103", 0);
kosztMarmuru.Add("_102", 0);
kosztMarmuru.Add("_101", 0);
kosztMarmuru.Add("_100", 0);
kosztMarmuru.Add("_107", 0);
kosztMarmuru.Add("_106", 0);
kosztMarmuru.Add("_105", 0);
kosztMarmuru.Add("_104", 0);
kosztMarmuru.Add("_118", 0);
kosztMarmuru.Add("_112", 0);
kosztMarmuru.Add("_113", 0);
kosztMarmuru.Add("_110", 0);
kosztMarmuru.Add("_111", 0);
kosztMarmuru.Add("_116", 0);
kosztMarmuru.Add("_117", 0);
kosztMarmuru.Add("_114", 0);
kosztMarmuru.Add("_115", 0);
kosztMarmuru.Add("_149", 0);
kosztMarmuru.Add("_140", 0);
kosztMarmuru.Add("_158", 0);
kosztMarmuru.Add("_159", 0);
kosztMarmuru.Add("_156", 0);
kosztMarmuru.Add("_157", 0);
kosztMarmuru.Add("_154", 0);
kosztMarmuru.Add("_155", 0);
kosztMarmuru.Add("_152", 0);
kosztMarmuru.Add("_153", 0);
kosztMarmuru.Add("_150", 0);
kosztMarmuru.Add("_151", 0);kosztDrewna.Add("_8", 0);
kosztDrewna.Add("_9", 0);
kosztDrewna.Add("_2", 0);
kosztDrewna.Add("_3", 0);
kosztDrewna.Add("_0", 0);
kosztDrewna.Add("_1", 0);
kosztDrewna.Add("_6", 0);
kosztDrewna.Add("_7", 0);
kosztDrewna.Add("_4", 0);
kosztDrewna.Add("_5", 0);
kosztDrewna.Add("_93", 0);
kosztDrewna.Add("_92", 0);
kosztDrewna.Add("_91", 0);
kosztDrewna.Add("_90", 0);
kosztDrewna.Add("_97", 0);
kosztDrewna.Add("_96", 0);
kosztDrewna.Add("_95", 0);
kosztDrewna.Add("_94", 0);
kosztDrewna.Add("_99", 0);
kosztDrewna.Add("_98", 0);
kosztDrewna.Add("_82", 0);
kosztDrewna.Add("_83", 0);
kosztDrewna.Add("_80", 0);
kosztDrewna.Add("_81", 0);
kosztDrewna.Add("_86", 0);
kosztDrewna.Add("_87", 0);
kosztDrewna.Add("_84", 0);
kosztDrewna.Add("_85", 0);
kosztDrewna.Add("_88", 0);
kosztDrewna.Add("_89", 0);
kosztDrewna.Add("_39", 0);
kosztDrewna.Add("_38", 0);
kosztDrewna.Add("_31", 0);
kosztDrewna.Add("_30", 0);
kosztDrewna.Add("_33", 0);
kosztDrewna.Add("_32", 0);
kosztDrewna.Add("_35", 0);
kosztDrewna.Add("_34", 0);
kosztDrewna.Add("_37", 0);
kosztDrewna.Add("_36", 0);
kosztDrewna.Add("_28", 0);
kosztDrewna.Add("_29", 0);
kosztDrewna.Add("_20", 0);
kosztDrewna.Add("_21", 0);
kosztDrewna.Add("_22", 0);
kosztDrewna.Add("_23", 0);
kosztDrewna.Add("_24", 0);
kosztDrewna.Add("_25", 0);
kosztDrewna.Add("_26", 0);
kosztDrewna.Add("_27", 0);
kosztDrewna.Add("_19", 0);
kosztDrewna.Add("_18", 0);
kosztDrewna.Add("_13", 0);
kosztDrewna.Add("_12", 0);
kosztDrewna.Add("_11", 0);
kosztDrewna.Add("_10", 0);
kosztDrewna.Add("_17", 0);
kosztDrewna.Add("_16", 0);
kosztDrewna.Add("_15", 0);
kosztDrewna.Add("_14", 0);
kosztDrewna.Add("_79", 0);
kosztDrewna.Add("_78", 0);
kosztDrewna.Add("_75", 0);
kosztDrewna.Add("_74", 0);
kosztDrewna.Add("_77", 0);
kosztDrewna.Add("_76", 0);
kosztDrewna.Add("_71", 0);
kosztDrewna.Add("_70", 0);
kosztDrewna.Add("_73", 0);
kosztDrewna.Add("_72", 0);
kosztDrewna.Add("_68", 0);
kosztDrewna.Add("_69", 0);
kosztDrewna.Add("_64", 0);
kosztDrewna.Add("_65", 0);
kosztDrewna.Add("_66", 0);
kosztDrewna.Add("_67", 0);
kosztDrewna.Add("_60", 0);
kosztDrewna.Add("_61", 0);
kosztDrewna.Add("_62", 0);
kosztDrewna.Add("_63", 0);
kosztDrewna.Add("_59", 0);
kosztDrewna.Add("_58", 0);
kosztDrewna.Add("_57", 0);
kosztDrewna.Add("_56", 0);
kosztDrewna.Add("_55", 0);
kosztDrewna.Add("_54", 0);
kosztDrewna.Add("_53", 0);
kosztDrewna.Add("_52", 0);
kosztDrewna.Add("_51", 0);
kosztDrewna.Add("_50", 0);
kosztDrewna.Add("_48", 0);
kosztDrewna.Add("_49", 0);
kosztDrewna.Add("_46", 0);
kosztDrewna.Add("_47", 0);
kosztDrewna.Add("_44", 0);
kosztDrewna.Add("_45", 0);
kosztDrewna.Add("_42", 0);
kosztDrewna.Add("_43", 0);
kosztDrewna.Add("_40", 0);
kosztDrewna.Add("_41", 0);
kosztDrewna.Add("_1003", 0);
kosztDrewna.Add("_1002", 0);
kosztDrewna.Add("_1001", 0);
kosztDrewna.Add("_1000", 0);
kosztDrewna.Add("_1006", 0);
kosztDrewna.Add("_1005", 0);
kosztDrewna.Add("_1004", 0);
kosztDrewna.Add("_129", 0);
kosztDrewna.Add("_128", 0);
kosztDrewna.Add("_121", 0);
kosztDrewna.Add("_120", 0);
kosztDrewna.Add("_122", 0);
kosztDrewna.Add("_125", 0);
kosztDrewna.Add("_124", 0);
kosztDrewna.Add("_127", 0);
kosztDrewna.Add("_126", 0);
kosztDrewna.Add("_138", 0);
kosztDrewna.Add("_139", 0);
kosztDrewna.Add("_130", 0);
kosztDrewna.Add("_131", 0);
kosztDrewna.Add("_132", 0);
kosztDrewna.Add("_133", 0);
kosztDrewna.Add("_134", 0);
kosztDrewna.Add("_135", 0);
kosztDrewna.Add("_136", 0);
kosztDrewna.Add("_137", 0);
kosztDrewna.Add("_109", 0);
kosztDrewna.Add("_108", 0);
kosztDrewna.Add("_103", 0);
kosztDrewna.Add("_102", 0);
kosztDrewna.Add("_101", 0);
kosztDrewna.Add("_100", 0);
kosztDrewna.Add("_107", 0);
kosztDrewna.Add("_106", 0);
kosztDrewna.Add("_105", 0);
kosztDrewna.Add("_104", 0);
kosztDrewna.Add("_118", 0);
kosztDrewna.Add("_112", 0);
kosztDrewna.Add("_113", 0);
kosztDrewna.Add("_110", 0);
kosztDrewna.Add("_111", 0);
kosztDrewna.Add("_116", 0);
kosztDrewna.Add("_117", 0);
kosztDrewna.Add("_114", 0);
kosztDrewna.Add("_115", 0);
kosztDrewna.Add("_149", 0);
kosztDrewna.Add("_140", 0);
kosztDrewna.Add("_158", 0);
kosztDrewna.Add("_159", 0);
kosztDrewna.Add("_156", 0);
kosztDrewna.Add("_157", 0);
kosztDrewna.Add("_154", 0);
kosztDrewna.Add("_155", 0);
kosztDrewna.Add("_152", 0);
kosztDrewna.Add("_153", 0);
kosztDrewna.Add("_150", 0);
kosztDrewna.Add("_151", 0);kosztRzezb.Add("_8", 0);
kosztRzezb.Add("_9", 0);
kosztRzezb.Add("_2", 0);
kosztRzezb.Add("_3", 0);
kosztRzezb.Add("_0", 0);
kosztRzezb.Add("_1", 0);
kosztRzezb.Add("_6", 0);
kosztRzezb.Add("_7", 0);
kosztRzezb.Add("_4", 0);
kosztRzezb.Add("_5", 0);
kosztRzezb.Add("_93", 0);
kosztRzezb.Add("_92", 0);
kosztRzezb.Add("_91", 0);
kosztRzezb.Add("_90", 0);
kosztRzezb.Add("_97", 0);
kosztRzezb.Add("_96", 0);
kosztRzezb.Add("_95", 0);
kosztRzezb.Add("_94", 0);
kosztRzezb.Add("_99", 0);
kosztRzezb.Add("_98", 0);
kosztRzezb.Add("_82", 0);
kosztRzezb.Add("_83", 0);
kosztRzezb.Add("_80", 0);
kosztRzezb.Add("_81", 0);
kosztRzezb.Add("_86", 0);
kosztRzezb.Add("_87", 0);
kosztRzezb.Add("_84", 0);
kosztRzezb.Add("_85", 0);
kosztRzezb.Add("_88", 0);
kosztRzezb.Add("_89", 0);
kosztRzezb.Add("_39", 0);
kosztRzezb.Add("_38", 0);
kosztRzezb.Add("_31", 0);
kosztRzezb.Add("_30", 0);
kosztRzezb.Add("_33", 0);
kosztRzezb.Add("_32", 0);
kosztRzezb.Add("_35", 0);
kosztRzezb.Add("_34", 0);
kosztRzezb.Add("_37", 0);
kosztRzezb.Add("_36", 0);
kosztRzezb.Add("_28", 0);
kosztRzezb.Add("_29", 0);
kosztRzezb.Add("_20", 0);
kosztRzezb.Add("_21", 0);
kosztRzezb.Add("_22", 0);
kosztRzezb.Add("_23", 0);
kosztRzezb.Add("_24", 0);
kosztRzezb.Add("_25", 0);
kosztRzezb.Add("_26", 0);
kosztRzezb.Add("_27", 0);
kosztRzezb.Add("_19", 0);
kosztRzezb.Add("_18", 0);
kosztRzezb.Add("_13", 0);
kosztRzezb.Add("_12", 0);
kosztRzezb.Add("_11", 0);
kosztRzezb.Add("_10", 0);
kosztRzezb.Add("_17", 0);
kosztRzezb.Add("_16", 0);
kosztRzezb.Add("_15", 0);
kosztRzezb.Add("_14", 0);
kosztRzezb.Add("_79", 0);
kosztRzezb.Add("_78", 0);
kosztRzezb.Add("_75", 0);
kosztRzezb.Add("_74", 0);
kosztRzezb.Add("_77", 0);
kosztRzezb.Add("_76", 0);
kosztRzezb.Add("_71", 0);
kosztRzezb.Add("_70", 0);
kosztRzezb.Add("_73", 0);
kosztRzezb.Add("_72", 0);
kosztRzezb.Add("_68", 0);
kosztRzezb.Add("_69", 0);
kosztRzezb.Add("_64", 0);
kosztRzezb.Add("_65", 0);
kosztRzezb.Add("_66", 0);
kosztRzezb.Add("_67", 0);
kosztRzezb.Add("_60", 0);
kosztRzezb.Add("_61", 0);
kosztRzezb.Add("_62", 0);
kosztRzezb.Add("_63", 0);
kosztRzezb.Add("_59", 0);
kosztRzezb.Add("_58", 0);
kosztRzezb.Add("_57", 0);
kosztRzezb.Add("_56", 0);
kosztRzezb.Add("_55", 0);
kosztRzezb.Add("_54", 0);
kosztRzezb.Add("_53", 0);
kosztRzezb.Add("_52", 0);
kosztRzezb.Add("_51", 0);
kosztRzezb.Add("_50", 0);
kosztRzezb.Add("_48", 0);
kosztRzezb.Add("_49", 0);
kosztRzezb.Add("_46", 0);
kosztRzezb.Add("_47", 0);
kosztRzezb.Add("_44", 0);
kosztRzezb.Add("_45", 0);
kosztRzezb.Add("_42", 0);
kosztRzezb.Add("_43", 0);
kosztRzezb.Add("_40", 0);
kosztRzezb.Add("_41", 0);
kosztRzezb.Add("_1003", 0);
kosztRzezb.Add("_1002", 0);
kosztRzezb.Add("_1001", 0);
kosztRzezb.Add("_1000", 0);
kosztRzezb.Add("_1006", 0);
kosztRzezb.Add("_1005", 0);
kosztRzezb.Add("_1004", 0);
kosztRzezb.Add("_129", 0);
kosztRzezb.Add("_128", 0);
kosztRzezb.Add("_121", 0);
kosztRzezb.Add("_120", 0);
kosztRzezb.Add("_122", 0);
kosztRzezb.Add("_125", 0);
kosztRzezb.Add("_124", 0);
kosztRzezb.Add("_127", 0);
kosztRzezb.Add("_126", 0);
kosztRzezb.Add("_138", 0);
kosztRzezb.Add("_139", 0);
kosztRzezb.Add("_130", 0);
kosztRzezb.Add("_131", 0);
kosztRzezb.Add("_132", 0);
kosztRzezb.Add("_133", 0);
kosztRzezb.Add("_134", 0);
kosztRzezb.Add("_135", 0);
kosztRzezb.Add("_136", 0);
kosztRzezb.Add("_137", 0);
kosztRzezb.Add("_109", 0);
kosztRzezb.Add("_108", 0);
kosztRzezb.Add("_103", 0);
kosztRzezb.Add("_102", 0);
kosztRzezb.Add("_101", 0);
kosztRzezb.Add("_100", 0);
kosztRzezb.Add("_107", 0);
kosztRzezb.Add("_106", 0);
kosztRzezb.Add("_105", 0);
kosztRzezb.Add("_104", 0);
kosztRzezb.Add("_118", 0);
kosztRzezb.Add("_112", 0);
kosztRzezb.Add("_113", 0);
kosztRzezb.Add("_110", 0);
kosztRzezb.Add("_111", 0);
kosztRzezb.Add("_116", 0);
kosztRzezb.Add("_117", 0);
kosztRzezb.Add("_114", 0);
kosztRzezb.Add("_115", 0);
kosztRzezb.Add("_149", 0);
kosztRzezb.Add("_140", 0);
kosztRzezb.Add("_158", 0);
kosztRzezb.Add("_159", 0);
kosztRzezb.Add("_156", 0);
kosztRzezb.Add("_157", 0);
kosztRzezb.Add("_154", 0);
kosztRzezb.Add("_155", 0);
kosztRzezb.Add("_152", 0);
kosztRzezb.Add("_153", 0);
kosztRzezb.Add("_150", 0);
kosztRzezb.Add("_151", 0);kosztGranitu.Add("_8", 0);
kosztGranitu.Add("_9", 0);
kosztGranitu.Add("_2", 0);
kosztGranitu.Add("_3", 0);
kosztGranitu.Add("_0", 0);
kosztGranitu.Add("_1", 0);
kosztGranitu.Add("_6", 0);
kosztGranitu.Add("_7", 0);
kosztGranitu.Add("_4", 0);
kosztGranitu.Add("_5", 0);
kosztGranitu.Add("_93", 0);
kosztGranitu.Add("_92", 0);
kosztGranitu.Add("_91", 0);
kosztGranitu.Add("_90", 0);
kosztGranitu.Add("_97", 0);
kosztGranitu.Add("_96", 0);
kosztGranitu.Add("_95", 0);
kosztGranitu.Add("_94", 0);
kosztGranitu.Add("_99", 0);
kosztGranitu.Add("_98", 0);
kosztGranitu.Add("_82", 0);
kosztGranitu.Add("_83", 0);
kosztGranitu.Add("_80", 0);
kosztGranitu.Add("_81", 0);
kosztGranitu.Add("_86", 0);
kosztGranitu.Add("_87", 0);
kosztGranitu.Add("_84", 0);
kosztGranitu.Add("_85", 0);
kosztGranitu.Add("_88", 0);
kosztGranitu.Add("_89", 0);
kosztGranitu.Add("_39", 0);
kosztGranitu.Add("_38", 0);
kosztGranitu.Add("_31", 0);
kosztGranitu.Add("_30", 0);
kosztGranitu.Add("_33", 0);
kosztGranitu.Add("_32", 0);
kosztGranitu.Add("_35", 0);
kosztGranitu.Add("_34", 0);
kosztGranitu.Add("_37", 0);
kosztGranitu.Add("_36", 0);
kosztGranitu.Add("_28", 0);
kosztGranitu.Add("_29", 0);
kosztGranitu.Add("_20", 0);
kosztGranitu.Add("_21", 0);
kosztGranitu.Add("_22", 0);
kosztGranitu.Add("_23", 0);
kosztGranitu.Add("_24", 0);
kosztGranitu.Add("_25", 0);
kosztGranitu.Add("_26", 0);
kosztGranitu.Add("_27", 0);
kosztGranitu.Add("_19", 0);
kosztGranitu.Add("_18", 0);
kosztGranitu.Add("_13", 0);
kosztGranitu.Add("_12", 0);
kosztGranitu.Add("_11", 0);
kosztGranitu.Add("_10", 0);
kosztGranitu.Add("_17", 0);
kosztGranitu.Add("_16", 0);
kosztGranitu.Add("_15", 0);
kosztGranitu.Add("_14", 0);
kosztGranitu.Add("_79", 0);
kosztGranitu.Add("_78", 0);
kosztGranitu.Add("_75", 0);
kosztGranitu.Add("_74", 0);
kosztGranitu.Add("_77", 0);
kosztGranitu.Add("_76", 0);
kosztGranitu.Add("_71", 0);
kosztGranitu.Add("_70", 0);
kosztGranitu.Add("_73", 0);
kosztGranitu.Add("_72", 0);
kosztGranitu.Add("_68", 0);
kosztGranitu.Add("_69", 0);
kosztGranitu.Add("_64", 0);
kosztGranitu.Add("_65", 0);
kosztGranitu.Add("_66", 0);
kosztGranitu.Add("_67", 0);
kosztGranitu.Add("_60", 0);
kosztGranitu.Add("_61", 0);
kosztGranitu.Add("_62", 0);
kosztGranitu.Add("_63", 0);
kosztGranitu.Add("_59", 0);
kosztGranitu.Add("_58", 0);
kosztGranitu.Add("_57", 0);
kosztGranitu.Add("_56", 0);
kosztGranitu.Add("_55", 0);
kosztGranitu.Add("_54", 0);
kosztGranitu.Add("_53", 0);
kosztGranitu.Add("_52", 0);
kosztGranitu.Add("_51", 0);
kosztGranitu.Add("_50", 0);
kosztGranitu.Add("_48", 0);
kosztGranitu.Add("_49", 0);
kosztGranitu.Add("_46", 0);
kosztGranitu.Add("_47", 0);
kosztGranitu.Add("_44", 0);
kosztGranitu.Add("_45", 0);
kosztGranitu.Add("_42", 0);
kosztGranitu.Add("_43", 0);
kosztGranitu.Add("_40", 0);
kosztGranitu.Add("_41", 0);
kosztGranitu.Add("_1003", 0);
kosztGranitu.Add("_1002", 0);
kosztGranitu.Add("_1001", 0);
kosztGranitu.Add("_1000", 0);
kosztGranitu.Add("_1006", 0);
kosztGranitu.Add("_1005", 0);
kosztGranitu.Add("_1004", 0);
kosztGranitu.Add("_129", 0);
kosztGranitu.Add("_128", 0);
kosztGranitu.Add("_121", 0);
kosztGranitu.Add("_120", 0);
kosztGranitu.Add("_122", 0);
kosztGranitu.Add("_125", 0);
kosztGranitu.Add("_124", 0);
kosztGranitu.Add("_127", 0);
kosztGranitu.Add("_126", 0);
kosztGranitu.Add("_138", 0);
kosztGranitu.Add("_139", 0);
kosztGranitu.Add("_130", 0);
kosztGranitu.Add("_131", 0);
kosztGranitu.Add("_132", 0);
kosztGranitu.Add("_133", 0);
kosztGranitu.Add("_134", 0);
kosztGranitu.Add("_135", 0);
kosztGranitu.Add("_136", 0);
kosztGranitu.Add("_137", 0);
kosztGranitu.Add("_109", 0);
kosztGranitu.Add("_108", 0);
kosztGranitu.Add("_103", 0);
kosztGranitu.Add("_102", 0);
kosztGranitu.Add("_101", 0);
kosztGranitu.Add("_100", 0);
kosztGranitu.Add("_107", 0);
kosztGranitu.Add("_106", 0);
kosztGranitu.Add("_105", 0);
kosztGranitu.Add("_104", 0);
kosztGranitu.Add("_118", 0);
kosztGranitu.Add("_112", 0);
kosztGranitu.Add("_113", 0);
kosztGranitu.Add("_110", 0);
kosztGranitu.Add("_111", 0);
kosztGranitu.Add("_116", 0);
kosztGranitu.Add("_117", 0);
kosztGranitu.Add("_114", 0);
kosztGranitu.Add("_115", 0);
kosztGranitu.Add("_149", 0);
kosztGranitu.Add("_140", 0);
kosztGranitu.Add("_158", 0);
kosztGranitu.Add("_159", 0);
kosztGranitu.Add("_156", 0);
kosztGranitu.Add("_157", 0);
kosztGranitu.Add("_154", 0);
kosztGranitu.Add("_155", 0);
kosztGranitu.Add("_152", 0);
kosztGranitu.Add("_153", 0);
kosztGranitu.Add("_150", 0);
kosztGranitu.Add("_151", 0);kosztOrychalku.Add("_8", 0);
kosztOrychalku.Add("_9", 0);
kosztOrychalku.Add("_2", 0);
kosztOrychalku.Add("_3", 0);
kosztOrychalku.Add("_0", 0);
kosztOrychalku.Add("_1", 0);
kosztOrychalku.Add("_6", 0);
kosztOrychalku.Add("_7", 0);
kosztOrychalku.Add("_4", 0);
kosztOrychalku.Add("_5", 0);
kosztOrychalku.Add("_93", 0);
kosztOrychalku.Add("_92", 0);
kosztOrychalku.Add("_91", 0);
kosztOrychalku.Add("_90", 0);
kosztOrychalku.Add("_97", 0);
kosztOrychalku.Add("_96", 0);
kosztOrychalku.Add("_95", 0);
kosztOrychalku.Add("_94", 0);
kosztOrychalku.Add("_99", 0);
kosztOrychalku.Add("_98", 0);
kosztOrychalku.Add("_82", 0);
kosztOrychalku.Add("_83", 0);
kosztOrychalku.Add("_80", 0);
kosztOrychalku.Add("_81", 0);
kosztOrychalku.Add("_86", 0);
kosztOrychalku.Add("_87", 0);
kosztOrychalku.Add("_84", 0);
kosztOrychalku.Add("_85", 0);
kosztOrychalku.Add("_88", 0);
kosztOrychalku.Add("_89", 0);
kosztOrychalku.Add("_39", 0);
kosztOrychalku.Add("_38", 0);
kosztOrychalku.Add("_31", 0);
kosztOrychalku.Add("_30", 0);
kosztOrychalku.Add("_33", 0);
kosztOrychalku.Add("_32", 0);
kosztOrychalku.Add("_35", 0);
kosztOrychalku.Add("_34", 0);
kosztOrychalku.Add("_37", 0);
kosztOrychalku.Add("_36", 0);
kosztOrychalku.Add("_28", 0);
kosztOrychalku.Add("_29", 0);
kosztOrychalku.Add("_20", 0);
kosztOrychalku.Add("_21", 0);
kosztOrychalku.Add("_22", 0);
kosztOrychalku.Add("_23", 0);
kosztOrychalku.Add("_24", 0);
kosztOrychalku.Add("_25", 0);
kosztOrychalku.Add("_26", 0);
kosztOrychalku.Add("_27", 0);
kosztOrychalku.Add("_19", 0);
kosztOrychalku.Add("_18", 0);
kosztOrychalku.Add("_13", 0);
kosztOrychalku.Add("_12", 0);
kosztOrychalku.Add("_11", 0);
kosztOrychalku.Add("_10", 0);
kosztOrychalku.Add("_17", 0);
kosztOrychalku.Add("_16", 0);
kosztOrychalku.Add("_15", 0);
kosztOrychalku.Add("_14", 0);
kosztOrychalku.Add("_79", 0);
kosztOrychalku.Add("_78", 0);
kosztOrychalku.Add("_75", 0);
kosztOrychalku.Add("_74", 0);
kosztOrychalku.Add("_77", 0);
kosztOrychalku.Add("_76", 0);
kosztOrychalku.Add("_71", 0);
kosztOrychalku.Add("_70", 0);
kosztOrychalku.Add("_73", 0);
kosztOrychalku.Add("_72", 0);
kosztOrychalku.Add("_68", 0);
kosztOrychalku.Add("_69", 0);
kosztOrychalku.Add("_64", 0);
kosztOrychalku.Add("_65", 0);
kosztOrychalku.Add("_66", 0);
kosztOrychalku.Add("_67", 0);
kosztOrychalku.Add("_60", 0);
kosztOrychalku.Add("_61", 0);
kosztOrychalku.Add("_62", 0);
kosztOrychalku.Add("_63", 0);
kosztOrychalku.Add("_59", 0);
kosztOrychalku.Add("_58", 0);
kosztOrychalku.Add("_57", 0);
kosztOrychalku.Add("_56", 0);
kosztOrychalku.Add("_55", 0);
kosztOrychalku.Add("_54", 0);
kosztOrychalku.Add("_53", 0);
kosztOrychalku.Add("_52", 0);
kosztOrychalku.Add("_51", 0);
kosztOrychalku.Add("_50", 0);
kosztOrychalku.Add("_48", 0);
kosztOrychalku.Add("_49", 0);
kosztOrychalku.Add("_46", 0);
kosztOrychalku.Add("_47", 0);
kosztOrychalku.Add("_44", 0);
kosztOrychalku.Add("_45", 0);
kosztOrychalku.Add("_42", 0);
kosztOrychalku.Add("_43", 0);
kosztOrychalku.Add("_40", 0);
kosztOrychalku.Add("_41", 0);
kosztOrychalku.Add("_1003", 0);
kosztOrychalku.Add("_1002", 0);
kosztOrychalku.Add("_1001", 0);
kosztOrychalku.Add("_1000", 0);
kosztOrychalku.Add("_1006", 0);
kosztOrychalku.Add("_1005", 0);
kosztOrychalku.Add("_1004", 0);
kosztOrychalku.Add("_129", 0);
kosztOrychalku.Add("_128", 0);
kosztOrychalku.Add("_121", 0);
kosztOrychalku.Add("_120", 0);
kosztOrychalku.Add("_122", 0);
kosztOrychalku.Add("_125", 0);
kosztOrychalku.Add("_124", 0);
kosztOrychalku.Add("_127", 0);
kosztOrychalku.Add("_126", 0);
kosztOrychalku.Add("_138", 0);
kosztOrychalku.Add("_139", 0);
kosztOrychalku.Add("_130", 0);
kosztOrychalku.Add("_131", 0);
kosztOrychalku.Add("_132", 0);
kosztOrychalku.Add("_133", 0);
kosztOrychalku.Add("_134", 0);
kosztOrychalku.Add("_135", 0);
kosztOrychalku.Add("_136", 0);
kosztOrychalku.Add("_137", 0);
kosztOrychalku.Add("_109", 0);
kosztOrychalku.Add("_108", 0);
kosztOrychalku.Add("_103", 0);
kosztOrychalku.Add("_102", 0);
kosztOrychalku.Add("_101", 0);
kosztOrychalku.Add("_100", 0);
kosztOrychalku.Add("_107", 0);
kosztOrychalku.Add("_106", 0);
kosztOrychalku.Add("_105", 0);
kosztOrychalku.Add("_104", 0);
kosztOrychalku.Add("_118", 0);
kosztOrychalku.Add("_112", 0);
kosztOrychalku.Add("_113", 0);
kosztOrychalku.Add("_110", 0);
kosztOrychalku.Add("_111", 0);
kosztOrychalku.Add("_116", 0);
kosztOrychalku.Add("_117", 0);
kosztOrychalku.Add("_114", 0);
kosztOrychalku.Add("_115", 0);
kosztOrychalku.Add("_149", 0);
kosztOrychalku.Add("_140", 0);
kosztOrychalku.Add("_158", 0);
kosztOrychalku.Add("_159", 0);
kosztOrychalku.Add("_156", 0);
kosztOrychalku.Add("_157", 0);
kosztOrychalku.Add("_154", 0);
kosztOrychalku.Add("_155", 0);
kosztOrychalku.Add("_152", 0);
kosztOrychalku.Add("_153", 0);
kosztOrychalku.Add("_150", 0);
kosztOrychalku.Add("_151", 0);Mam pomysł dot. szybkiemu podglądu w grze. Można by zrobić żeby każdy obrazek(z generatora) miał przypisaną jakąś wartość, potem to samo z elementami (posągi itp z gry) .I co potem?
Rozwiń trochę pomoc bo dużo się z niego nie dowiedziałem i niektóre obrazki nie mają opisu.Po wyglądzie obrazków może się domyślisz. Zamieszczam wszystkie jeszcze raz w załączniku. Część opisów napisał też wcześniej Haspen.
problem tylko będzie ze schodami – jak wybrać dla konkretnej płytki jeden spośród bodajże ośmiu obrazków.Myślę, że jakoś dałoby się ten problem rozwiązać. ;)
I co z płytkami, posążkami i posągami definiowanymi przez ustawienia piramidy? Dublować pliki, aby był widoczny numer czy dać z tym spokój?Nie do końca rozumiem. Są jakieś obrazy zdefiniowane do tego?
141 – rzeźba bóstwa, dla którego jest poświęcona piramida N - 1x1
142 – rzeźba bóstwa, dla którego jest poświęcona piramida E - 1x1
143 – rzeźba bóstwa, dla którego jest poświęcona piramida S - 1x1
144 – rzeźba bóstwa, dla którego jest poświęcona piramida W - 1x1
145 – marmurowy posąg bóstwa, dla którego jest poświęcona piramida N - 2x2
146 – marmurowy posąg bóstwa, dla którego jest poświęcona piramida E - 2x2
147 – marmurowy posąg bóstwa, dla którego jest poświęcona piramida S - 2x2
148 – marmurowy posąg bóstwa, dla którego jest poświęcona piramida W - 2x2
160 – biała lub czarna (zależy od koloru piętra, na którym leży) płytka – 1x1
161 – biała lub czarna (zależy od koloru piętra, na którym leży) płytka z orychalkiem – 1x1
162 – biała lub czarna (zależy od koloru piętra, na którym leży) płytka ze zniczem – 1x1
163 – biała lub czarna (zależy od koloru piętra, na którym leży) orychalkowa płytka ze zniczem – kosztRzezb.Add("_0", 0);
kosztRzezb.Add("_1", 0);
kosztRzezb.Add("_2", 0);
kosztRzezb.Add("_3", 0);
kosztRzezb.Add("_4", 0);
kosztRzezb.Add("_5", 0);
kosztRzezb.Add("_6", 0);
kosztRzezb.Add("_7", 640);
kosztRzezb.Add("_8", 640);
kosztRzezb.Add("_9", 640);
kosztRzezb.Add("_10", 640);
kosztRzezb.Add("_11", 640);
kosztRzezb.Add("_12", 640);
kosztRzezb.Add("_13", 640);
kosztRzezb.Add("_14", 640);
kosztRzezb.Add("_15", 640);
kosztRzezb.Add("_16", 640);
kosztRzezb.Add("_17", 640);
kosztRzezb.Add("_18", 640);
kosztRzezb.Add("_19", 640);
kosztRzezb.Add("_20", 640);
kosztRzezb.Add("_21", 640);
kosztRzezb.Add("_22", 640);
kosztRzezb.Add("_23", 640);
kosztRzezb.Add("_24", 640);
kosztRzezb.Add("_25", 640);
kosztRzezb.Add("_26", 640);
kosztRzezb.Add("_27", 640);
kosztRzezb.Add("_28", 640);
kosztRzezb.Add("_29", 640);
kosztRzezb.Add("_30", 640);
kosztRzezb.Add("_31", 640);
kosztRzezb.Add("_32", 640);
kosztRzezb.Add("_33", 640);
kosztRzezb.Add("_34", 640);
kosztRzezb.Add("_35", 640);
kosztRzezb.Add("_36", 640);
kosztRzezb.Add("_37", 640);
kosztRzezb.Add("_38", 640);
kosztRzezb.Add("_39", 640);
kosztRzezb.Add("_40", 640);
kosztRzezb.Add("_41", 640);
kosztRzezb.Add("_42", 640);
kosztRzezb.Add("_43", 640);
kosztRzezb.Add("_44", 640);
kosztRzezb.Add("_45", 640);
kosztRzezb.Add("_46", 640);
kosztRzezb.Add("_47", 640);
kosztRzezb.Add("_48", 640);
kosztRzezb.Add("_49", 640);
kosztRzezb.Add("_50", 640);
kosztRzezb.Add("_51", 640);
kosztRzezb.Add("_52", 640);
kosztRzezb.Add("_53", 640);
kosztRzezb.Add("_54", 640);
kosztRzezb.Add("_55", 0);
kosztRzezb.Add("_56", 0);
kosztRzezb.Add("_57", 0);
kosztRzezb.Add("_58", 0);
kosztRzezb.Add("_59", 0);
kosztRzezb.Add("_60", 0);
kosztRzezb.Add("_61", 0);
kosztRzezb.Add("_62", 0);
kosztRzezb.Add("_63", 0);
kosztRzezb.Add("_64", 0);
kosztRzezb.Add("_65", 0);
kosztRzezb.Add("_66", 0);
kosztRzezb.Add("_67", 0);
kosztRzezb.Add("_68", 0);
kosztRzezb.Add("_69", 0);
kosztRzezb.Add("_70", 0);
kosztRzezb.Add("_71", 0);
kosztRzezb.Add("_72", 0);
kosztRzezb.Add("_73", 0);
kosztRzezb.Add("_74", 0);
kosztRzezb.Add("_75", 0);
kosztRzezb.Add("_76", 0);
kosztRzezb.Add("_77", 0);
kosztRzezb.Add("_78", 0);
kosztRzezb.Add("_79", 0);
kosztRzezb.Add("_80", 0);
kosztRzezb.Add("_81", 0);
kosztRzezb.Add("_82", 0);
kosztRzezb.Add("_83", 0);
kosztRzezb.Add("_84", 0);
kosztRzezb.Add("_85", 0);
kosztRzezb.Add("_86", 0);
kosztRzezb.Add("_87", 0);
kosztRzezb.Add("_88", 0);
kosztRzezb.Add("_89", 0);
kosztRzezb.Add("_90", 0);
kosztRzezb.Add("_91", 0);
kosztRzezb.Add("_92", 0);
kosztRzezb.Add("_93", 0);
kosztRzezb.Add("_94", 0);
kosztRzezb.Add("_95", 0);
kosztRzezb.Add("_96", 0);
kosztRzezb.Add("_97", 0);
kosztRzezb.Add("_98", 0);
kosztRzezb.Add("_99", 0);
kosztRzezb.Add("_100", 0);
kosztRzezb.Add("_101", 0);
kosztRzezb.Add("_102", 0);
kosztRzezb.Add("_103", 0);
kosztRzezb.Add("_104", 0);
kosztRzezb.Add("_105", 0);
kosztRzezb.Add("_106", 0);
kosztRzezb.Add("_107", 0);
kosztRzezb.Add("_108", 0);
kosztRzezb.Add("_109", 0);
kosztRzezb.Add("_110", 0);
kosztRzezb.Add("_111", 0);
kosztRzezb.Add("_112", 0);
kosztRzezb.Add("_113", 0);
kosztRzezb.Add("_114", 0);
kosztRzezb.Add("_115", 0);
kosztRzezb.Add("_116", 0);
kosztRzezb.Add("_117", 0);
kosztRzezb.Add("_118", 0);
kosztRzezb.Add("_120", 0);
kosztRzezb.Add("_121", 0);
kosztRzezb.Add("_122", 0);
kosztRzezb.Add("_124", 0);
kosztRzezb.Add("_125", 0);
kosztRzezb.Add("_126", 0);
kosztRzezb.Add("_127", 0);
kosztRzezb.Add("_128", 0);
kosztRzezb.Add("_129", 0);
kosztRzezb.Add("_130", 0);
kosztRzezb.Add("_131", 0);
kosztRzezb.Add("_132", 0);
kosztRzezb.Add("_133", 640);
kosztRzezb.Add("_134", 640);
kosztRzezb.Add("_135", 640);
kosztRzezb.Add("_136", 640);
kosztRzezb.Add("_137", 640);
kosztRzezb.Add("_138", 640);
kosztRzezb.Add("_139", 640);
kosztRzezb.Add("_140", 640);
kosztRzezb.Add("_149", 0);
kosztRzezb.Add("_150", 0);
kosztRzezb.Add("_151", 0);
kosztRzezb.Add("_152", 0);
kosztRzezb.Add("_153", 0);
kosztRzezb.Add("_154", 0);
kosztRzezb.Add("_155", 0);
kosztRzezb.Add("_156", 0);
kosztRzezb.Add("_157", 0);
kosztRzezb.Add("_158", 0);
kosztRzezb.Add("_159", 0);
kosztRzezb.Add("_1000", 0);
kosztRzezb.Add("_1001", 0);
kosztRzezb.Add("_1002", 0);
kosztRzezb.Add("_1003", 0);
kosztRzezb.Add("_1004", 0);
kosztRzezb.Add("_1005", 0);
kosztRzezb.Add("_1006", 0);
"...AFAIK inaczej zachowują się w piramidach, a inaczej w świątyniach! I co zrobimy?..."Zaimplementujemy oba. ;)
kosztRzezb.Add("_0", 0);
kosztRzezb.Add("_1", 0);
kosztRzezb.Add("_2", 0);
kosztRzezb.Add("_3", 0);
kosztRzezb.Add("_4", 0);
kosztRzezb.Add("_5", 0);
kosztRzezb.Add("_6", 0);
kosztRzezb.Add("_7", 1);
kosztRzezb.Add("_8", 1);
kosztRzezb.Add("_9", 1);
kosztRzezb.Add("_10", 1);
kosztRzezb.Add("_11", 1);
kosztRzezb.Add("_12", 1);
kosztRzezb.Add("_13", 1);
kosztRzezb.Add("_14", 1);
kosztRzezb.Add("_15", 1);
kosztRzezb.Add("_16", 1);
kosztRzezb.Add("_17", 1);
kosztRzezb.Add("_18", 1);
kosztRzezb.Add("_19", 1);
kosztRzezb.Add("_20", 1);
kosztRzezb.Add("_21", 1);
kosztRzezb.Add("_22", 1);
kosztRzezb.Add("_23", 1);
kosztRzezb.Add("_24", 1);
kosztRzezb.Add("_25", 1);
kosztRzezb.Add("_26", 1);
kosztRzezb.Add("_27", 1);
kosztRzezb.Add("_28", 1);
kosztRzezb.Add("_29", 1);
kosztRzezb.Add("_30", 1);
kosztRzezb.Add("_31", 1);
kosztRzezb.Add("_32", 1);
kosztRzezb.Add("_33", 1);
kosztRzezb.Add("_34", 1);
kosztRzezb.Add("_35", 1);
kosztRzezb.Add("_36", 1);
kosztRzezb.Add("_37", 1);
kosztRzezb.Add("_38", 1);
kosztRzezb.Add("_39", 1);
kosztRzezb.Add("_40", 1);
kosztRzezb.Add("_41", 1);
kosztRzezb.Add("_42", 1);
kosztRzezb.Add("_43", 1);
kosztRzezb.Add("_44", 1);
kosztRzezb.Add("_45", 1);
kosztRzezb.Add("_46", 1);
kosztRzezb.Add("_47", 1);
kosztRzezb.Add("_48", 1);
kosztRzezb.Add("_49", 1);
kosztRzezb.Add("_50", 1);
kosztRzezb.Add("_51", 1);
kosztRzezb.Add("_52", 1);
kosztRzezb.Add("_53", 1);
kosztRzezb.Add("_54", 1);
kosztRzezb.Add("_55", 0);
kosztRzezb.Add("_56", 0);
kosztRzezb.Add("_57", 0);
kosztRzezb.Add("_58", 0);
kosztRzezb.Add("_59", 0);
kosztRzezb.Add("_60", 0);
kosztRzezb.Add("_61", 0);
kosztRzezb.Add("_62", 0);
kosztRzezb.Add("_63", 0);
kosztRzezb.Add("_64", 0);
kosztRzezb.Add("_65", 0);
kosztRzezb.Add("_66", 0);
kosztRzezb.Add("_67", 0);
kosztRzezb.Add("_68", 0);
kosztRzezb.Add("_69", 0);
kosztRzezb.Add("_70", 0);
kosztRzezb.Add("_71", 0);
kosztRzezb.Add("_72", 0);
kosztRzezb.Add("_73", 0);
kosztRzezb.Add("_74", 0);
kosztRzezb.Add("_75", 0);
kosztRzezb.Add("_76", 0);
kosztRzezb.Add("_77", 0);
kosztRzezb.Add("_78", 0);
kosztRzezb.Add("_79", 0);
kosztRzezb.Add("_80", 0);
kosztRzezb.Add("_81", 0);
kosztRzezb.Add("_82", 0);
kosztRzezb.Add("_83", 0);
kosztRzezb.Add("_84", 0);
kosztRzezb.Add("_85", 0);
kosztRzezb.Add("_86", 0);
kosztRzezb.Add("_87", 0);
kosztRzezb.Add("_88", 0);
kosztRzezb.Add("_89", 0);
kosztRzezb.Add("_90", 0);
kosztRzezb.Add("_91", 0);
kosztRzezb.Add("_92", 0);
kosztRzezb.Add("_93", 0);
kosztRzezb.Add("_94", 0);
kosztRzezb.Add("_95", 0);
kosztRzezb.Add("_96", 0);
kosztRzezb.Add("_97", 0);
kosztRzezb.Add("_98", 0);
kosztRzezb.Add("_99", 0);
kosztRzezb.Add("_100", 0);
kosztRzezb.Add("_101", 0);
kosztRzezb.Add("_102", 0);
kosztRzezb.Add("_103", 0);
kosztRzezb.Add("_104", 0);
kosztRzezb.Add("_105", 0);
kosztRzezb.Add("_106", 0);
kosztRzezb.Add("_107", 0);
kosztRzezb.Add("_108", 0);
kosztRzezb.Add("_109", 0);
kosztRzezb.Add("_110", 0);
kosztRzezb.Add("_111", 0);
kosztRzezb.Add("_112", 0);
kosztRzezb.Add("_113", 0);
kosztRzezb.Add("_114", 0);
kosztRzezb.Add("_115", 0);
kosztRzezb.Add("_116", 0);
kosztRzezb.Add("_117", 0);
kosztRzezb.Add("_118", 0);
kosztRzezb.Add("_120", 0);
kosztRzezb.Add("_121", 0);
kosztRzezb.Add("_122", 0);
kosztRzezb.Add("_124", 0);
kosztRzezb.Add("_125", 0);
kosztRzezb.Add("_126", 0);
kosztRzezb.Add("_127", 0);
kosztRzezb.Add("_128", 0);
kosztRzezb.Add("_129", 0);
kosztRzezb.Add("_130", 0);
kosztRzezb.Add("_131", 0);
kosztRzezb.Add("_132", 0);
kosztRzezb.Add("_133", 1);
kosztRzezb.Add("_134", 1);
kosztRzezb.Add("_135", 1);
kosztRzezb.Add("_136", 1);
kosztRzezb.Add("_137", 1);
kosztRzezb.Add("_138", 1);
kosztRzezb.Add("_139", 1);
kosztRzezb.Add("_140", 1);
kosztRzezb.Add("_149", 0);
kosztRzezb.Add("_150", 0);
kosztRzezb.Add("_151", 0);
kosztRzezb.Add("_152", 0);
kosztRzezb.Add("_153", 0);
kosztRzezb.Add("_154", 0);
kosztRzezb.Add("_155", 0);
kosztRzezb.Add("_156", 0);
kosztRzezb.Add("_157", 0);
kosztRzezb.Add("_158", 0);
kosztRzezb.Add("_159", 0);
kosztRzezb.Add("_1000", 0);
kosztRzezb.Add("_1001", 0);
kosztRzezb.Add("_1002", 0);
kosztRzezb.Add("_1003", 0);
kosztRzezb.Add("_1004", 0);
kosztRzezb.Add("_1005", 0);
kosztRzezb.Add("_1006", 0);Ale że użyszkodnik będzie sam sobie dodawał potem te liczby z tabelki czy będzie jakieś podsumowanie? ;>Nie, nie, komputer wszystko doda.
Nie wiem czy ktoś wcześniej tego nie proponował, ale wpadłem na pomysł by obliczać koszt wszystkich postawionych elementów świątyni. Co Wy na to? Potrzebuję jednak do tego kogoś od czarnej roboty...
Ułamki z przecinkiem czy kropką? ;)
Na pewno tak? Jedna statua + 8 płytek zażądały mi 12 płyt marmuru.
do wersji 2.0
- zaznaczanie powierzchni; ustawianie piętra dla zaznaczonej powierzchni; automatyczne dodawanie potrzebnych schodów
Można też byłoby sprawić, by obiekt pod kursorem był jak pędzel (chyba, że już tak jest).Chodzi Ci o udostępnienie tzw. Drag'a? By po przeciągnięciu kursorem trzymając wciśnięty LPM kolejne elementy były stawiane? Dobry pomysł, szczególnie z płytkami itp.
Chodzi Ci o udostępnienie tzw. Drag'a? By po przeciągnięciu kursorem trzymając wciśnięty LPM kolejne elementy były stawiane? Dobry pomysł, szczególnie z płytkami itp.Zgadza się. ;)
Ponadto możemy nawet zrobić by program miał w sobie oryginalne pliki i jeżeli użytkownik sobie tego zażyczy, wygenerować je.Też o tym myślałam, choć będzie to z oczywistych względów dotyczyło tylko plików z gry. I naprawmy od razu świątynię Artemidy. ;)
Co z ewentualnymi błędami?Jakie błędy dokładnie?
PS Wczytywanie schodów nadal jest problematyczne. Jeśli wczytuję świątynię z zupełnie legalnym wgłębieniem uformowanym przez schody, po nadpisaniu jej przez program otrzymuję fałszywie pustą ziemię.
Ustawienie czterech schodów (w sensie w górę) w jednym kwadracie 2x2 powoduje wywalenie gry lub stworzenie pozornie pustego miejsca. Może warto byłoby sprawdzić podobne sytuacje i dodać ostrzeżenia.
EDIT: Podobnie jest [tzn też wywala grę – przyp.], gdy obiekt w ogóle nie wymaga dostarczenia towarów, tzn gdy stawia się same drzewka bądź skały. Wyjątkiem są płytki z pałacu. Chyba chodzi tu o to, że gra generuje tamte obiekty dopiero po skończeniu budowy, a tej w takim przypadku nie ma i gra głupieje.
Z kolorami - dobry pomysł. Może masz na myśli jakieś konkretne kolory? Może znasz najlepsze zestawy do tego?
*** Legenda ***
Poziom I – zakładka, przykład z gry: Dystrybucja.
Poziom II – tabliczki z wizerunkami, przykład: Spichlerz. M oznacza menu prowadzące na poziom III (w grze taka tabliczka ma strzałkę, przykład: Agory)
Poziom III – błękitne paski z nazwą obiektu.
W przypadku poziomu II obiekty wymieniane pasami poziomymi, czyli parzyste idą na prawo.
Maksymalna liczba tabliczek w grze wynosi 4, natomiast tutaj wynosi 6 (z wyjątkiem bóstw w wizerunkach).
***
I II III
Świątynia (może być zakładka z gry z innym środkiem) (M) Budynki świątyni (może być przycisk z gry) 0,1,158,159,110
Ołtarz (2)
Schody (1000)
Płytki Płytka standardowa (55)
Płytka czarna (152)
(M) Płytki ozdobne 56-60 i 153
Płytka czerwona (154)
(M) Płytki ze zniczami 111-116, 156, 157
Oddział Aresa/Artemidy (109)*
Posążki (Rzeźby) (może być ten z estetyki, na lewo od drzewka) (M) Zeus, Hera, Posejdon, Hades, etc. Wybór strony, w którą zwrócony jest wizerunek
Posągi (Statuy) (M) j/w j/w
Areały (zboże lub drzewko estetyki z gry) Drzewko oliwne
Winorośl
Ruda srebra
Ruda brązu
Drzewko pomarańczy
Pałac (administracja z gry) (M) Pałac (guzik z gry) 3, 4
Flaga oddziału (5)
Żółta płytka (6)
Piramida Posejdona (M) Piramida 117-121 + winda (124) i pad (1006)
Wierzchołek (122)
Obserwatorium
Muzeum
His Majesty ;)
Przerwa :P
Statystyki (na przykład liczba płytek, koszty)
Podgląd
Autorzy (aniołek z przeglądu ;))
* – właściwie nie wiem, gdzie to daćNon-profit fan work - podpada pod fair use, IMHO.Zdadzam się, myślę, że nikt nam z powodu użycia tych wszystkich rzeczy problemu robił nie będzie.
Hmm, a co w końcu z Pomocą, Wczytaj, resztą przycisków co ich w grze jest 4 i strzałkami? ;)Tzn.?
Hmm, a co w końcu z Pomocą, Wczytaj, resztą przycisków co ich w grze jest 4 i strzałkami? ;)O te pytałem. ;)
2. Jak jeden uzytkownik forum robil screeny z programu w 3D
3. Gdzie są schody i co oznacze serce,owoce,drzewo itd. chodzi tutaj o duzy posag boga