Napisz więc to, co widziałeś, i to, co jest, i to, co potem musi się stać.
Różnice między wybraną wersją a wersją aktualną.
Nowa wersja | Poprzednia wersja | ||
kalisoft:kk [2014/09/25 12:28] ghi utworzono |
kalisoft:kk [2014/09/25 15:21] (aktualna) ghi |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== Khans& | ====== Khans& | ||
===== Moduły ===== | ===== Moduły ===== | ||
- | ==== KKserver ==== | + | * Strona serwera: |
- | Serwer do gry K&K oparty na protokole 9P2000. Przestrzeń nazw eksportowana przez serwer, wygląda następująco: | + | * KKserver - serwer gry, obsługuje rządania klientów: dołączanie do gry, zakończenie gry |
+ | * KKlogic - obsługuje logikę gry: dodawanie surowców, rozstrzyganie walk | ||
+ | * Strona klienta: | ||
+ | * KKwaitingroom - interfejs pozwalajączy połączyć się z serwerem, poczekać na graczy, wybrać scenariusz oraz rozpocząć grę | ||
+ | * KKmap - moduł rysujący mapę gry (eksportowana jako Image), oraz przechwytujący kliknięcia w poszczególne podprowincje | ||
+ | * KKgame - główny interfejs gry | ||
+ | * KKresearch - rysuje drzewko technologii, | ||
+ | |||
+ | ===== Format mapy ===== | ||
+ | Mapy do gry K&K są zapisywanie w prostym formacie tekstowym, z rozszerzeniem: | ||
+ | |||
+ | < | ||
+ | 1200x2050 #wielkość mapy w pikselach | ||
+ | way [ID] [atrybuty]: (15,12) (57,53) # | ||
+ | way mongolskokazachskaN border river: (15, 15) (72,11) #możliwe atrybuty: border, river | ||
+ | area [type][attributes]: | ||
+ | area province Wschodnia Mongolia: mongolskokazachskaN | ||
+ | area subprovince forest: mongolskokazachskaN # atrybuty podprowincji: | ||
+ | area subprovince forest capital: a45 | ||
+ | area country[Wielkie Imperium Mongolskie]: | ||
+ | </ | ||
+ | Ścierzki nie muszą tworzyć idealnie zamkniętych obszarów o ile da się taki obszar jednoznacznie określić. | ||
+ | |||
+ | ===== KKserver | ||
+ | Serwer do gry K& | ||
* ctl (OWRITE) | * ctl (OWRITE) | ||
* <end turn - zakończ turę bierzącego gracza | * <end turn - zakończ turę bierzącego gracza | ||
+ | * wait (OREAD) - zwraca EOF w chwili twojej tury | ||
* players/ | * players/ | ||
* player_name/ | * player_name/ | ||
- | * food (ORW) | + | |
+ | | ||
+ | * > - posiadana ilość zasobu | ||
* <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | * <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
- | | + | * wood (ORDWR) |
- | * wood (ORW) | + | |
* <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | * <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
- | | + | * stone (ORDWR) |
- | * stone (ORW) | + | |
* <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | * <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
- | | + | * ore (ORDWR) |
- | * ore (ORW) | + | |
* <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | * <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
- | | + | * gold (ORDWR) |
- | * gold (ORW) | + | |
* <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | * <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
- | | + | * techs/ |
+ | * technology_name (ORDWR) | ||
+ | | ||
+ | * wymaganie1, wymaganie2 | ||
+ | * +1 do stanu jednostek | ||
+ | * etc. | ||
+ | * < technologia zostaje aktywowane, jeżeli spełnione są wymagania; zasoby zostąną odjęte z puli | ||
+ | * units/ | ||
+ | * id/ (uid) | ||
+ | * class (OREAD) - zwraca klasę jednostki (w K&K2 zwaną nazwą) | ||
+ | * type (OREDA) - zwraca typ jednostki | ||
+ | * group (ORDWR) - grupa do której należy oddział. Grupy poruszają się i atakują wspólnie | ||
+ | * > nazwa grupy | ||
+ | * < przyłącz jednostkę do nowej grupy | ||
+ | * name (ORDWR) - nazwa jednostki nadana przez gracza | ||
+ | * > nazwa jednostki | ||
+ | * < nowa nazwa dla jednostki | ||
+ | * level (ORDWR) - poziom jednostki | ||
+ | * > odczytaj poziom jednostik | ||
+ | * < [int] zwiększ poziom jednostki o [int] | ||
+ | * ex (ORDWR) | ||
+ | * > ilość | ||
+ | * <[int] ilość doświadczenia do dodania | ||
+ | * pp (ORDWR) - punkty promocji: ile nowych promocji gracz może sobie dodać | ||
+ | * > ilość punktów promocji | ||
+ | * <[int] ilość pp do dodania | ||
+ | * range (OREAD) - qid prowincji w zasięgu ruchu: " | ||
+ | * str (ORDWD) - atak jednostki | ||
+ | * > zwraca wartość współczynnika | ||
+ | * <[int] ilość współczynnika do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
+ | * def (ORDWR) | ||
+ | * > zwraca wartość współczynnika | ||
+ | * <[int] ilość współczynnika do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
+ | * qua (ORDWR) - stan jednostki | ||
+ | * > zwraca wartość współczynnika | ||
+ | * <[int] ilość współczynnika do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
+ | * rel (ORDWR) - niechęć jednstki | ||
+ | * > zwraca wartość współczynnika | ||
+ | * <[int] ilość współczynnika do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
+ | * spd (ORDWR) - szybkość jednostki | ||
+ | * > zwraca wartość współczynnika | ||
+ | * <[int] ilość współczynnika do dodania(lub odjęcia w przypadku liczby ujemnej) | ||
+ | * bonuses (ORDWR) | ||
+ | * >zwraca premie jednostki oddzielone ' | ||
+ | * +50% ataku na stepie [premia podstawowa] | ||
+ | * +25% ataku w lesie [premia dodatkowa] | ||
+ | * etc. | ||
+ | * < dodaje nową premię | ||
+ | * provinces/ | ||
+ | * subprovince_id/ | ||
+ | * province (OREAD) - nazwa prowincji do której należy | ||
+ | * ulimit (OREAD) - maksymalna liczba garnizonów mogących stacjonować w prowincji | ||
+ | * units (ORDWR) - jednostki stacjonujące w podprowincji | ||
+ | * > lista jednostek: " | ||
+ | * <[uid] przesuń jednostkę na tę prowincję | ||
+ | * buldings (ORDWR) - lista budynków w podprowincji: | ||
+ | * > lista budynków: " | ||
+ | ===== KKlogic (strona serwera) ===== | ||
+ | Logika gry, obsługuje zapytania graczy do serwera i rostrzyga, czy są zgodne z zasadami. |