Opis forum
Potrzebuję dokładny wzór na dojście jednostek z osadyA do osadyB. Wynikiem powinien być czas w sekundach (lub jeszcze lepiej w milisekundach).
Ja posługuję się wzorem:
Vx = (VSx - VDx); - gdzie VSx to współrzędna x osadyA, VDx - to współrzędna x osadyB
Vy = (VSy - VDy); - gdzie VSx to współrzędna y osadyA, VDx - to współrzędna y osadyB
Vx = abs(Vx); - wartość bezwzględna dla odległości na x
Vy = abs(Vy); - wartość bezwzględna dla odległości na y
Time = ((((Vx ** 2) + (Vy ** 2)) ** (1/2)) * 150); - twierdzenie Pitagorasa, (** 2) to druga potęga, (** (1/2)) to pierwiastek 2 stopnia
- 150 (sekund) to czas moich handlarzy na pokonanie 1 pola - czyli 24 pola na godzinę
Jeśli ktoś się orientuje o czym piszę to proszę o korektę. Testuję obecnie i mi się w miarę zgadza prawdopodobnie niedokładności wynikają z zaokrągleń wyników.
Offline
Masz tu kalkulator czasu podróży dla traviana:
http://www.javaschubla.de/2006/travian/ … pl&dim=400
Ja kiedyś napisałem odpowiednie formuły w excelu. Odległość pomiędzy osadami A i B wylicza się tak jako długość wektora pomiędzy osadami A i B - czyli tak jak napisałeś z tw. Pitagorasa. Musisz jeszcze tylko wziąść pod uwagę, że świat traviana jest torusem, co ma wpływ jeśli osada A leży np. na kordach np. 350/-50 a osada B -350/-50. Wtedy odległość pomiędzy nimi (w osi x) nie wynosi 700, ale 100. Następnie dzielisz tą odległość przez szybkość jednostki. Pozostaje jeszcze tylko przejść z systemu dziesiętnego na sześćdziesiętny:
Jeśli:
Odległość z osady A do B po x wynosi 10
Odległość z osaday A do B po y wynosi 10
Szybkość handlarza 24 pola/h
To mamy:
Długość wektora A-B = 14,1421pól (tw. Pitagorasa)
Czas przejścia handlarza z A do B = 14,1421/24 = 0,58925h
Aby otrzymać liczbę minut bierzemy część ułamkową otrzymanej liczby i mnożymy *60, w naszym przykładzie:
0,58925*60 = 35,355 min
Aalogicznie z liczbą sekund, bierzemy część ułamkową z ilości minut i mnożymy *60:
0,355*60 = 21,3
Ostatecznie nasz handlarz na przejście z osady A do B potrzebuje 0:35:21. W przypadku wojska należy jeszcze uwzględnić wpływ placu turniejowego
Aha, Twój sposób rozumowania (że handlarz 1 pole pokonuje w ciągu 150 sek) jest jak najbardziej prawidłowy i wzór też jest ok. Jeśli powyższe dane podstawisz do swojego wzoru to dostaniesz 2121,32sek = 35,355min = 0:35:21
Ostatnio edytowany przez ghialin (2009-01-28 16:25:44)
Offline
Wielkie dzięki za komentarz! No a na tego torusa to bym chyba w życiu nie wpadł. Sprawdziłem rzeczywiście masz rację "dętka" jak nic! Tylko kurcze teraz to ja muszę wszystkie skrypty poprzerabiać ... Ostatnio naskrobałem własnego CropFindera i też założyłem sobie tak po prostu że to płaska mapa. No ale nic, poprawi się - jeszcze raz dzięki. No i punkcik dla Ciebie za cenną uwagę
Offline
Homo erectus
Hehh ja już wcześniej przeszłam przez ten wywód ghialina ( ) a i tak "ciemność widzę" kiedy to czytam...
Offline
Cieszę się, że moje wypociny na coś się przydały. A z tym torusem to przypadkowo na to wpadłem - na poprzednim servie byłem blisko krańca mapy i nic mi się nie zgadzało Potem gdzieś znalazłem jeszcze potwierdzenie tego...
Pozdrawiam!
Offline
Użytkownik
Ludzie czarna magia o czym wy tu piszecie ja pitolę
Offline