Tuesday, August 23, 2016

Bermain dengan Telegram Bot

Selepas habis demam Pokemon Bot, berminat pula bermain dengan bot lain, Telegram Bot. Permulaan berjinak-jinak dengan Telegram Bot yang paling sukar bagi saya adalah pemahaman terminologi yang digunakan oleh Telegram Bot. Ini adalah kali pertama saya gunakan bot dalam perisian chat dan pemahaman adalah satu penyiksaan bagi seorang pengaturcara yang ingin terus terjun ke dalam penciptaan bot. Bagi yang pertama kali mendengar tentang Telegram, ia adalah lebih kurang perisian Whatsapp.

Yang paling mudah adalah mencari class yang sudah wujud dari pengaturcara lain untuk memudahkan penggunaan bot Telegram. Saya dalam kes ini menggunakan PHP Telegram Bot dengan manual yang agak ringkas proses pertama adalah create bot menggunakan @BotFather


Untuk bagaimana create bot, boleh terus ke page Telegram Bot dan mulakan langkah pertama untuk mendapatkan API key untuk berkomunikasi dengan bot tersebut.

Langkah kedua adalah memahami bagaimana bot berfungsi dan berkomunikasi dengan bot tersebut. Kebiasaanya bot digunakan untuk maklumat seperti berita, e.g blog post dan notifikasi di Telegram tentang berita terbaharu. Dalam kes saya, saya ingin notifikasi ke group Telegram tentang keluar masuk kereta harian setiap pagi (6 pagi) dan saya boleh request Bot tentang keluar masuk harian dengan bertanyakan query 

  • /checkin - senarai kereta pulang hari ini
  • /checkout - senarai kereta keluar hari ini
  • /checkin tomorrow - senarai kereta pulang esok
  • /checkout tomorrow - senarai kereta keluar esok
Menggunakan class PHP Telegram Bot ada 2 cara

  1. Run script secara manual/crontab untuk mengarahkan bot
  2. Run bot secara on demand ketika pertanyaan menggunakan Webhook.


Untuk notifikasi setiap pagi saya menggunakan cara pertama, dan untuk pertanyaan on demand saya menggunakan webhook. Webhook dalam konsep ini, apabila ada pertanyaan diajukan kepada bot, satu notifikasi berkenaan mesej tersebut ke satu URL yang dikhaskan. Webhook memerlukan satu web server live untuk dihantar (localhost memerlukan teknik khas) dan SSL (boleh SSL generate sendiri).

Setelah faham konsep dan persediaan ini, anda boleh mulakan pengaturcaraan bot Telegram ini.

Konsep pertama memerlukan hubungan ke pengkalan data MySQL dan konsep kedua tidak perlu. Pilih racun anda dan mulakan pengaturcaraan :D.

Ada contoh kod untuk run secara manual . Untuk webhook anda perlu set URL untuk menggunakan pengaturcaaan (sampel) dan boleh di unset (sampel) dan hanya letakkan di web server anda kod ini untuk Telegram hantar segala update. Arahan yang dihantar e.g /checkin /checkout boleh diprogramkan di dalam folder Commands . Ada beberapa sampel arahan yang sudah diberi seperti /slap /date dan /weather . 

Sudah faham ? Kalau sudah, terus gunakan Composer dan update ke folder www anda dan mulakan pengaturcaraan !

Di bawah adalah beberapa contoh bot yang menjawab kepada pertanyaan menggunakan webhook.  






Saturday, August 13, 2016

Pengembaraan menjadi Pokemon Master

Dia sudah sampai ke Malaysia ! Game yang dinanti-nanti oleh ramai peminat dan pemain-pemain baharu yang mahu mencuba iaitu Pokemon Go. Saya sudah install lama sebelum permainan ini dikeluarkan di Malaysia, tetapi rupanya peta Malaysia belum boleh memburu maka, terbiar sahaja permainan ini di henfon.




6/8/2016 - Sabtu


Dapat berita dari Facebook bahawa peta Malaysia sudah dienable, pukul 9 pagi . Sempat buka semasa di Giant shopping dan dapat beberapa Pokemon semasa membeli barang. Sebelum ni tak pernah main game Pokemon selain dari menonton kartun Pokemon di TV, hanya tahu beberapa terma seperti Pokeball (Bola untuk menangkap Pokemon) dan bagaimana nak menangkapnya.


Belajar beberapa benda pada pagi tu,

CP - Combat Power : Berapa kuat Pokemon untuk bertarung dengan lawan.
HP - Hit Point : Semakin lama berlawan ia akan berkurang dan pengsan
XP - Experience Point : Setiap kali kita tangkap Pokemon , XP akan bertambah dan level trainer akan meningkat selaras dengan XP mereka.

Petang pergi ke Cyberjaya untuk persediaan Standard Chartered KL 1/2 Marathon, pusing dekat kawasan tasik dekat Masjid Cyberjaya, berjumpa sudah ramai orang bermain Pokemon siap berkongsi power bank dan memburu (Pokehunt) . Dapat tahu beberapa lagi terma dalam Pokemon Go

Pokestop - Tempat berhenti (checkpoint) untuk terima Pokeball , potion dan XP . Setiap Pokestop ada masa bertenang dalam 10 minit, selepas ambil Pokeball kita perlu tunggu lagi 10 minit untuk ambil lagi atau boleh cari Pokestop yang lain.

Gym - Tempat untuk berlawan. Korang ada 2 pilihan, ambil alih Gym atau pertahankan Gym. Anda perlu level 5 dan ke atas untuk masuk ke dalam Gym. Newbie perlu tunggu dan kumpul dahulu. Untuk ke level 5 tak susah. Dalam sejam berjalan dan tangkap Pokemon dah boleh capai level 5.

Team - Ada 3 pasukan dalam Pokemon - Mytic (Biru), Varlor (Merah) dan Instinct (Kuning). Pertama kali boleh masuk Gym, kena pilih satu pasukan untuk membolehkan ia bermain.

Pertama kali berlawan dengan Gym dekat tasikni. Terus kena belasah dengan Pokemon CP 2444, memang tinggi dengan aku yang 100++

7/8/2016 - Ahad & Isnin

Niat dihati nak onkan Pokemon Go semasa berlari, dapat 21km larian percuma. Tapi dengar memang ada orang main masa lari. #achivementUnlock . Memang lepas lari, makan, lepas makan tidur sahaja untuk harini & esoknya.


9/8/2016 - Selasa

Selepas hantar anak dan makan, terus pusing ke Philea Resort sebab ada Pokestop dekat Taman Rama-Rama, dapat tangkap beberapa Pokemon dan terus ke ofis melalui Zoo Melaka, masa lalu di situ, nampak banyak PokeStop di dalam Zoo Melaka. Terus bagi signal dan parking (RM 5/day) , masuk Zoo (RM 17.80/entry) dan memburu. Tanya di kaunter, ramai tak yang memburu pokemon ? Diorang kata, 2 hari ni memang ramai masuk Zoo hanya untuk memburu Pokemon.

Yang pasti setiap Zoo memang banyak Pokestop, dan sesuai untuk orang yang mahu kumpul Pokeball & menangkap Pokemon. Kalau tak Pokeball biasa habis dan kena beli, 20 biji Pokeball lebih kurang USD 1 (RM 4).  Beginilah syarikat Niantic (Syarikat yang buat Pokemon Go) buat duit dan dari berita Niantic dapat USD 200 juta dalam masa sebulan (sumber) , mengalahkan Candy Crush. Woww. Dapat berkenalan dengan beberapa pekerja Zoo Melaka yang main Pokemon Go sambil berkongsi tips-tips di mana Pokemon yang rare dan cara-cara untuk perbaiki balingan Pokeball (ada curve ball, ketepatan balingan) dan bersenam sejauh 3.7km (satu pusingan zoo)


10/8/2016 - Rabu

Tiada sangat aktiviti #PokeHunt hari ni, tetapi malam tu dapat Goldeen dan Horsea di kawasan rumah , pelik sebab dua-dua Pokemon ni Water Type (jenis yang boleh dapat dekat air) , tapi mungkin sebab ada lalu sebelah sungai, dia ada.





Setakat ni perbelanjaan untuk bermain Pokemon

Parking : RM 5
Zoo Melaka : RM 17.80
Pokecoins : RM 40 (USD 9.99)

Jumlah : RM 62.80


11/8/2016 - Khamis 

Sudah dengar beberapa desas desus bahawa ada cara untuk dapatkan Pokemon tanpa berjalan dan membuat beberapa penyelidikan online bahawa ada beberapa cara yang boleh digunakan.


Saya ada cuba bermain menggunakan BigNox dan nampak lebih jimat dan kurang menyihatkan dari segi permainan Pokemon. Hanya kawal game dari PC dan halakan ke peta yang anda ingin pergi. 

Hari ini juga dengar beberapa desas desus mengenai soft ban jika anda menggunakan cara-cara di atas. Bila dengar sahaja cara-cara ini, nampak melemahkan pemain-pemain yang bermain secara jujur dan meningkatkan level mereka secara mengembara dengan bersungguh-sungguh. Pokeball habis lagi, topup USD 9.99 (RM 40)


Pada malam hari saya berjumpa lagi dengan teknik yang lagi dahsyat iaitu Bot !!! .  Bot adalah cara bermain Pokemon Go tanpa membuka apa-apa aplikasi di henfon, hanya point lokasi kawasan (latitude, longitude) , perisian ini terus berjalan tanpa perlu berbuat apa-apa, menangkap Pokemon, pergi ke Pokestop, evolve (ada sebahagian Pokemon mempunya kebolehan evolusi menjadi bentuk lain e.g dari ikan kecil ke ikan besar atau yang paling popular Pikachu akan jadi Raichu) , transfer (pulang semula ke sistem dan dapat Candy untuk evolve)

Atas Pikachu dan bawah Raichu



Screenshot saya menggunakan Necrobot.


Bot yang popular adalah Necrobot & Pokemobot dan ada bot yang agak ganas seperti Haxton Bot dan kebanyakannya sudah di ban atau disaman oleh Niantic (sumber) . Secara kasarnya, bot-bot sebegini tidak bagus untuk perkembangan Pokemon Go, dan saya rasa adalah tindakan yang betul dari Niantic untuk memberikan lantai yang sama rata kepada semua pemain.

Perbelanjaan

Jumlah : RM 40 (USD 9.99)


12/8/2016 - Jumaat 

Dari semalam saya membiarkan Necrobot run di laptop dan dari percubaan saya menggunakan kaaun baharu (dari level 0 semalam hingga level 17) hari ini. Wow. Saya terus membuat ujikaji dengan necrobot dan ia satu bot yang betul-betul teknikal yang seronok untuk dilihat (skrin hitam). Sangat kagum dengan orang-orang yang bangunkan bot ini dalam sebulan ini melihat betapa fleksibelnya bot yang dibangunkan.


12/8/2016 Sabtu 



Dan yang terakhir sekali yang saya jumpa pada hari ini adalah Necrobot GUI , iaitu antara muka Necrobot untuk melihat pergerakan anda di peta dan juga semua senarai inventori, Pokemon dan banyak lagi. Ia kalau diteruskan pembangunan akan menjadi seperti Pokemon Go untuk PC yang boleh dimainkan dengan keyboard dan mouse.

Jadi apa selepas ini ?  saya hanya mengambil sikap tunggu dan lihat. Pokemon Go bagi saya adalah MVP (Minimum Viable Product) bagi Niantic dan mereka sudah pasti bersedia dengan features yang baru seperti PVP (Player vs Player) dan Trading (Jual beli Pokemon). Walaupun mereka sudah mempunyai pengalaman dengan game yang sama seperti ini, Ingress , Pokemon Go adalah dalam liga yang berbeza. Sekarang untuk Niantic adalah lancarkan game mereka seluruh dunia, menstabilkan server-server dan juga menyelesaikan masalah Bot dalam game adalah keutamaan utama mereka. Setelah selesai masalah, PVP (sumber), Trading (sumber) dan beberapa lagi wish list dari peminat (sumber)  boleh mereka lancarkan.




Kepada semua yang membaca (yang bukan peminat @ pemain) , harap artikel ini memahamkan serba sedikit kenapa kegilaan ini terjadi. Kepada pemain semua saya ucapkan "Gotta catch 'em all !!"