Skip to content

Latest commit

 

History

History
102 lines (84 loc) · 10.6 KB

README.LT.md

File metadata and controls

102 lines (84 loc) · 10.6 KB

License GitHub release Docker Build Status Docker Pulls Readme In English Readme In Lithuanian

Seabattle

Screenshot

Kas tai yra?

Tai yra skriptas, kuris prideda galimybę žaisti klasikinį Jūros mūšio bet kuriame IRC kanale Eggdrop/Windrop botams

Šio skripto galimybės/savybės:

  • Veikia tik tekstiniu režimu
  • Tinklo režimas, kuris gali būti žaidžiamas dviejų žaidėjų
  • Naudoja MySQL kaip duomenų bazę
  • Integruotos vartotojų registracijos
  • Nickserver palaikymas
  • Daugiakalbystės palaikymas

Kaip įdiegti?

Tam yra keli variantai:

1. Naudokite Docker containerį (rekomenduojama)

Docker yra vienas iš patogiausių įrankių atskiriant procesus bei juos diegiant. Jis sumažina labai galvos skausmą paleidžiant projektus, tačiau norint juo pradėti naudotis reikia pirmiausia pasirūpinti, kad jis būtų įdiegtas.

Norint pasileisti Seabattle žaidimą per Docker'į užtenka įvykdyti šią komandą:

docker run -d \
           -e SEABATTLE_DB_USER=seabattle \
           -e SEABATTLE_DB_PASS=seabattle \
           -e SEABATTLE_DB_HOST=hostname \
           -e SEABATTLE_DB_NAME=seabattle \
           gameslt/seabattle.tcl

SEABATTLE_DB_USER, SEABATTLE_DB_PASS, SEABATTLE_DB_HOST, SEABATTLE_DB_NAME reikia pasikeisti pagal save.

Taip pat galima naudoti ir kitus šio paketo konfiguravimo parametrus. Štai pilnas jų sąrašas:

Parametras Reikšmė pagal nutylėjimą Kam naudojamas?
SEABATTLE_BOT_PASS botsky Bot'o slaptažodis
SEABATTLE_DB_USER MySQL duomenų bazės vartotojo vardas
SEABATTLE_DB_PASS MySQL duomenų bazės vartotojo slaptažodis
SEABATTLE_DB_HOST MySQL duomenų bazės serverio adresas
SEABATTLE_DB_NAME MySQL duomenų bazės pavadinimas
SEABATTLE_LANGUAGE en Žaidimo kalba. Gali būti en arba lt
SEABATTLE_GRID_HORIZONTAL_WORD games Horizontalus žodis, kuris bus naudojamas langeliams (ženklai turi nesikartoto arba žaidimas gali veikti blogai)
SEABATTLE_GRID_VERTICAL_WORD 12345 Vertikalus žodis, kuris bus naudojamas langeliams (ženklai turi nesikartoto arba žaidimas gali veikti blogai)
SEABATTLE_SHIPS_COUNT 5 Po kiek laivų gaus abi pusės?
SEABATTLE_NICKSERV_AUTH_NEEDED false Ar reikalinga NickServ autentificija pačiam bot'ui?
SEABATTLE_NICKSERV_HOST irc.data.lt NickServ autentifikacijos hostas
SEABATTLE_NICKSERV_TIMEOUT 5 Kiek sekundžių laukti NickServ atsakymo dėl autentifikacijos prieš nusprendžiant, kad kažkas nepavyko
SEABATTLE_LOG_QUERIES no Ar rašyti SQL užklausas?
EGGDROP_BOTNET_NICK SeaBattle EggDrop'o/WinDrop'o nustatymų botnet-nick parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_PROTECT_TELNET 0 EggDrop'o/WinDrop'o nustatymų protect-telnet parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_DCC_SANITY_CHECK 0 EggDrop'o/WinDrop'o nustatymų dcc-sanitycheck parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_IDENT_TIMEOUT 5 EggDrop'o/WinDrop'o nustatymų ident-timeout parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_REQUIRE_PARTY 0 EggDrop'o/WinDrop'o nustatymų require-p parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_OPEN_TELNETS 0 EggDrop'o/WinDrop'o nustatymų open-telnets parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_STEALTH_TELNETS 0 EggDrop'o/WinDrop'o nustatymų stealth-telnets parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_USE_TELNET_BANNER 0 EggDrop'o/WinDrop'o nustatymų use-telnet-banner parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_CONNECTION_TIMEOUT 90 EggDrop'o/WinDrop'o nustatymų connect-timeout parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_DCC_FLOOD_THR 3 EggDrop'o/WinDrop'o nustatymų dcc-flood-thr parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_TELNET_FLOOD 5:60 EggDrop'o/WinDrop'o nustatymų telnet-flood parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_PARANOID_TELNET_FLOOD 1 EggDrop'o/WinDrop'o nustatymų paranoid-telnet-flood parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_RESOLVE_TIMEOUT 15 EggDrop'o/WinDrop'o nustatymų resolve-timeout parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_MAX_DCC 50 EggDrop'o/WinDrop'o nustatymų max-dcc parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_ALLOW_DK_CMDS 1 EggDrop'o/WinDrop'o nustatymų allow-dk-cmds parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_MODULES dns channels server ctcp irc notes console transfer share Kokius EggDrop'o/WinDrop'o modulius užkrauti?
EGGDROP_CHECK_MODULES blowfish Moduliai, kurie skirti duomenų patikrinimui
EGGDROP_NICK SeaBattle EggDrop'o/WinDrop'o nustatymų nick parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_ALTNICK SeaBattleBot EggDrop'o/WinDrop'o nustatymų altnick parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_ADMIN owner EggDrop'o/WinDrop'o nustatymų admin parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_REAL Bot for Games.lt EggDrop'o/WinDrop'o nustatymų realname parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_SERVERS irc.data.lt Serveriai, prie kurių jungtis automatiškai
EGGDROP_CHANNELS #seabattle Kanalai, prie kurių jungtis automatiškai
EGGDROP_NET_TYPE 5 EggDrop'o/WinDrop'o nustatymų net-type parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_LISTEN_USERS_PORT 3333 Kurio porto turėtų klausyti bot'as, jei norėtų bendrauti su vartotojais?
EGGDROP_LISTEN_BOTS_PORT 3333 Kurio porto turėtų klausyti bot'as, jei norėtų bendrauti su kitais botais?
EGGDROP_OWNERS EggDrop'o/WinDrop'o nustatymų owner parametras. Daugiau apie jį galima sužinoti oficialioje EggDrop dokumentacijoje.
EGGDROP_SYSTEM_SCRIPTS alltools action.fix compat userinfo Kokius sisteminius skriptus įkelti?
EGGDROP_SYSTEM_HELPS userinfo Kokius sisteminius pagalbos failus įkelti?

2. Rankomis sukonfiguruokite projektą

Pirmiausia įsitikinkite, kad turite jau darbui paruoštą Eggdrop/Windrop bot'ą. Kaip tai padaryti, galima sužinoti, aplankius pasirinkto bot'o tinklalapį arba pasigooglinus. Na, o tuomet reikės atlikti šiuos veiksmus:

  • Atsisiųsti naujausios versijos archyvą
  • Jį išpakuoti
  • Nukopijuoti src/ failus, kur botas laiko savo skriptus
  • Pridėti source seabattle_main.tcl eilutę eggdrop.conf faile (čia gali tekti prirašyti pilną kelią prie seabattle_main.tcl pavadinimo)
  • Įdiegti mysqltcl biblioteką (jei naudojatės Windows arba negalite visiškai kontroliuoti serverio, tuomet teks atsisiųsti jau sukompiliuotą 3.02 versiją iš šios bibliotekos tinklalapio ir patalpinti tcllibs kataloge, kuris turėtų būti šalia nukopijuoto seabattle.tcl failo (jei tokio katalogo nėra, tuomet sukurkite).
  • Sukurti naują MySQL duomenų bazę bei importuoti install.sql duomenis
  • Paredaguoti nustatymus seabattle_config.tcl skripte
  • Paleisti bot'ą.

Kaip galima prisidėti prie kūrimo?

Visi norintys yra kviečiami prisidėti prie kūrimo. Galima taisyti klaidas ar pridėti kokių nors naujų savybių. Tai galima padaryti sukuriant šios repozitorijos šaką (angl. fork), ją paredaguojant bei sukuriant naują Pull request. Jei nežinote, kaip tai padaryti, pabandykite pasinaudoti interaktyviomis GitHub pamokomis.

Kad būtų paprasčiau bandyti kurti, galima pasinaudoti šioje repozitorijoje esančia Vagrant konfiguracija, kad pasileisti jau paruoštą virtualią mašiną su veikiančiu bot'u. Tuomet tereikia nuklonavus šią repozitoriją tam pačiame kataloge įvykdyti vagrant up komandą. Tuomet bus įmanoma prisijungti prie naujo IRC serverio, kurio adresas - seabattle.test, bei apsilankyti #seabattle kanale. Būtent ten ir sedės botas.