Mongolopedia Wolna Encyklopedia

Napisz więc to, co widziałeś, i to, co jest, i to, co potem musi się stać.

Narzędzia użytkownika

Narzędzia witryny


kalisoft:kk

Khans&Kings

Moduły

  • Strona serwera:
    • 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, oraz pozwala nimi zarządzać

Format mapy

Mapy do gry K&K są zapisywanie w prostym formacie tekstowym, z rozszerzeniem: .kkmap . Format inspirowany jest formatem OSM.

1200x2050 #wielkość mapy w pikselach
way [ID] [atrybuty]: (15,12) (57,53) #definiowanie ścierzek oraz ich punktów kontrolnych
way mongolskokazachskaN border river: (15, 15) (72,11) #możliwe atrybuty: border, river
area [type][attributes]: [ways] #type: country, province, subprovince, lake, see
area province Wschodnia Mongolia: mongolskokazachskaN
area subprovince forest: mongolskokazachskaN # atrybuty podprowincji: forest, capital(tylko jedna na prowincję)
area subprovince forest capital: a45
area country[Wielkie Imperium Mongolskie]: mongolskokazachskaN, mongolsko kazachskaS

Ścierzki nie muszą tworzyć idealnie zamkniętych obszarów o ile da się taki obszar jednoznacznie określić.

KKserver (strona serwera)

Serwer do gry K&K został oparty na protokole 9P2000. Przestrzeń nazw eksportowana przez serwer, wygląda następująco:

  • ctl (OWRITE)
    • <end turn - zakończ turę bierzącego gracza
  • wait (OREAD) - zwraca EOF w chwili twojej tury
  • players/
    • player_name/
      • civ (OREAD) - nazwa cywilizacji, którą przewodzi gracz
      • food (ORDWR)
        • > - posiadana ilość zasobu
        • <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej)
      • wood (ORDWR)
        • > - posiadana ilość zasobu
        • <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej)
      • stone (ORDWR)
        • > - posiadana ilość zasobu
        • <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej)
      • ore (ORDWR)
        • > - posiadana ilość zasobu
        • <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej)
      • gold (ORDWR)
        • > - posiadana ilość zasobu
        • <[int] - ilość zasobu do dodania(lub odjęcia w przypadku liczby ujemnej)
      • techs/
        • technology_name (ORDWR)
          • > podaje informacje o technologi i jej wymaganiach; format:
            • 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) - doświadczenie
            • > ilość posiadanego doświadczenia
            • <[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: „154\n125”
          • 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 '\n':
              • +50% ataku na stepie [premia podstawowa]
              • +25% ataku w lesie [premia dodatkowa]
              • etc.
            • < dodaje nową premię
    • provinces/
      • subprovince_id/ (qid)
        • 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: „uid1\n uid2”
          • <[uid] przesuń jednostkę na tę prowincję
        • buldings (ORDWR) - lista budynków w podprowincji:
          • > lista budynków: „Młyn: +1 do żywności\n Fort: +1 do Obrony, +1 do pojemności”

KKlogic (strona serwera)

Logika gry, obsługuje zapytania graczy do serwera i rostrzyga, czy są zgodne z zasadami.

kalisoft/kk.txt · ostatnio zmienione: 2014/09/25 15:21 przez ghi