Memperbaiki Komputer Yang Lambat (Download Freeware Terbaik)

on Sabtu, 12 Desember 2009

Kalau komputer XP anda menjadi lambat atau hang/crash maka prosedur perbaikannya sbb:

1. Clean registry dan junk files (misalnya pakai Glary Cleaner).

2. Buatlah space di hardisk (drive C) yang cukup (freespace 15%), misalnya HD 80GB, kosongkan 12 GB. Uninstall program-program yang tidak perlu. Kalau ada masalah di uinstall, pakai Revo Uninstaller. Pindahkan sebagian data ke drive lain bila perlu.

3. Matikan startup yang tidak perlu seperti yahoo mesenger, TV scheduler. Gunakan Startup Inspector for Windows 2.1. Klik Consukt (kalau nyambung ke internet), disable buat yang not required, kalau yang unknown dan ok itu terserah anda.

4. Jalankan lagi Clean registry dan junk files (misalnya pakai Glary Cleaner).

5. Defrag hardisk, misalnya dengan Auslogic Defragmenter.

6. Jalankan PageDefrag v2.32, klik Defragmantion at next boot

7. Restart komputer.

Seminggu atau sebulan sekali Clean Registry. Berikut daftar site untuk download program-program.

Glary Cleaner

http://www.glaryutilities.com/

Revo Uninstaller

http://www.revouninstaller.com/

Auslogic Defragmenter

http://www.auslogics.com/en/software/disk-defrag

PageDefrag v2.32

http://technet.microsoft.com/en-us/sysinternals/bb897426.aspx

Startup Inspector for Windows 2.1

http://www.download.com/Startup-Inspector-for-Windows/3000-2086_4-10452094.html?tag=lst-6

Updated:

Jangan jalankan PageDefrag v2.32 karena kalau crash, past boot berikutnya bisa jadi gagal terus. Harddisk seperti menjadi rusak fisik.

Membuat Flash Game

on Selasa, 08 Desember 2009

Warning/Peringatan:Karna Dokumen ini saya ambil di website yang berbahasa inggris dan diterjemahkan dengan google translet saat saya copykan menjadi dua bahasa mohon dimaafkan
dokumen ini saya ambil disini


Artikel ini ditujukan untuk orang-orang yang baru mulai menggunakan Flash peralatan untuk membuat barang-barang interaktif.
This article will take you from a blank flash document to an action game in minutes, with any tricky things explained in ordinary, everyday language that you can skip over if you want. Artikel ini akan membawa Anda dari dokumen flash kosong untuk aksi permainan dalam beberapa menit, dengan hal-hal yang sulit dijelaskan dalam biasa, bahasa sehari-hari yang anda dapat melewati di atas jika Anda inginkan.

As a special thank you for reading this article I'm giving the complete source of game.fla, which you can use for whatever purposes you want, private or commercial. Sebagai terima kasih khusus untuk membaca artikel ini saya sedang memberikan sumber game.fla lengkap, yang dapat Anda gunakan untuk tujuan apa pun yang Anda inginkan, swasta atau komersial. You must however give credit to GameInnovator.com for using any part of the source in your projects. Namun Anda harus memberikan kredit kepada GameInnovator.com untuk menggunakan bagian apapun dari sumber dalam proyek Anda. This flash file is made for ActionScript 2.0. Ini file flash yang dibuat untuk ActionScript 2.0.

Download the game source code here Download permainan kode sumber di sini

Help decide what information you want to see about flash game design by letting us know what you love best about creating flash games. Membantu memutuskan informasi apa yang ingin Anda lihat tentang permainan flash desain dengan membiarkan kami tahu apa yang Anda sukai terbaik tentang cara membuat game flash.

Fill in a quick, 7-question survey and we'll be able to provide you with the best possible information suitable to your needs. Isi cepat, 7-pertanyaan survei dan kami akan dapat memberi Anda informasi yang terbaik sesuai dengan kebutuhan Anda.

What do you love best about designing flash games? Apa yang Anda sukai terbaik tentang merancang flash game?

Without further ado, let us fire up our favorite Flash tool. Tanpa basa-basi lagi, mari kita jalankan alat Flash favorit kami. There are many tools available, however I recommend using Adobe Flash CS4 as it is currently the best flash tool available. Ada banyak piranti tersedia, namun saya menyarankan menggunakan Adobe Flash CS4 seperti saat ini merupakan alat kilat terbaik tersedia.

Adobe Flash CS4 Professional - Full Adobe Flash CS4 Profesional - Kendali

... ... and after working on your game do not forget to take a break. dan setelah bekerja pada permainan Anda jangan lupa untuk beristirahat. Learn some new poker tips and develop a texas holdem strategy that will help you win. Pelajari beberapa tips poker baru dan mengembangkan texas holdem strategi yang akan membantu Anda menang.

Did you know you can win at keno in just minutes when you learn the keno odds and probabilities at GamblingCity.net! Tahukah Anda bahwa Anda bisa menang di keno hanya dalam hitungan menit ketika Anda mempelajari keno peluang dan probabilitas di GamblingCity.net!

Setting the scene Setting adegan

Create a new flash document (menu File/New) and save it as game.fla. Buat dokumen flash baru (menu File / New) dan simpan sebagai game.fla. This is the design file that will contain the design and content for the game. Ini adalah file desain yang akan berisi desain dan konten permainan.

If you get stuck anywhere on this tutorial there is a finished game.fla at the bottom of this page that can be downloaded to see what things should look like. Jika Anda terjebak di manapun pada tutorial ini ada selesai game.fla di bagian bawah halaman ini yang dapat didownload untuk melihat hal-hal apa yang harus seperti.

Change the document properties (menu Modify/Document) so that the dimensions are 640 by 480 and so that the frame rate is 30 frames a second. Mengubah properti dokumen (menu Ubah / Dokumen) sehingga dimensi 640 x 480 dan agar frame rate adalah 30 frame per detik. The background co lour is assumed to be white. Latar belakang menjadi suram co diasumsikan putih.

We will start by creating the 5 initial objects needed to make the game work. Kita akan mulai dengan menciptakan 5 objek awal yang dibutuhkan untuk membuat permainan bekerja.

Draw the player's ship, the alien, the player's projectile, the alien's laser and an explosion on the same frame and layer. Menarik pemain kapal, orang asing, para pemain proyektil, si alien's laser dan sebuah ledakan pada frame yang sama dan lapisan.

Turn each drawing into a Movie Clip with its own instance name. Belok setiap gambar menjadi Movie Clip dengan nama contoh sendiri. I will explain below in more detail how this is done. Saya akan jelaskan di bawah secara lebih rinci bagaimana hal ini dilakukan. More advanced people can skip to the naming of the instances. Lebih maju orang dapat melompat ke contoh yang penamaan.

How to turn a drawing into a Movie Clip: Cara mengubah gambar menjadi Movie Clip:


1. 1. Select the drawing by dragging a box around it. Pilih gambar dengan menyeret sebuah kotak di sekitarnya.



2. 2. Convert to a Movie Clip by going to the menu and then Modify or Insert depending on the Flash version. Convert ke Movie Clip dengan pergi ke menu dan kemudian Ubah atau Insert tergantung pada versi Flash. Choose “Convert to Symbol”. Pilih "Convert to Symbol". Alternatively you could use the shortcut by pressing F8. Atau Anda bisa menggunakan cara pintas dengan menekan F8.

3. 3. Set the registration point as appropriate. Mengatur titik pendaftaran yang sesuai. For this tutorial you should set the registration point to be in the center for all move clips. Untuk tutorial ini, Anda harus menetapkan titik pendaftaran untuk berada di pusat untuk semua klip bergerak.

4. 4. Set the behavior as Movie Clip and choose an appropriate name. Mengatur perilaku sebagai Klip Video dan memilih nama yang sesuai. This name is not the instance name. Nama ini bukan nama contoh. Click here for an illustration. Klik di sini untuk ilustrasi.

5. 5. Select the new Movie Clip. Pilih Movie Clip yang baru. In the properties panel at the bottom set the instance name to whatever is needed. Pada panel properti di bagian bawah misalnya menetapkan nama untuk apa saja yang diperlukan.

The instance names are below: Nama yang contoh di bawah ini:

The Movie Clip for the player's ship is called PlayerShip The Movie Klip untuk kapal pemain disebut PlayerShip
The Movie Clip for the alien is called Alien The Movie Klip untuk asing disebut Alien
The Movie Clip for the player's projectile is called PlayerShotT The Movie Klip untuk pemain disebut proyektil PlayerShotT
The Movie Clip for the alien's laser is called AlienShotT The Movie Klip untuk laser asing disebut AlienShotT
The Movie Clip for the explosion is called ExplosionT The Movie Klip untuk ledakan disebut ExplosionT


Notice how there is a T at the end of certain instance names. Perhatikan bagaimana ada T di akhir nama contoh tertentu. This is a convenience to indicate that objects with a T at the end are to be used as templates for copies of themselves. Ini adalah kemudahan untuk menunjukkan bahwa objek dengan T di akhir ini harus digunakan sebagai template untuk salinan sendiri. This will be explained later. Ini akan dijelaskan kemudian.

Click here for a screenshot of a possible set up scene. Klik di sini untuk screenshot kemungkinan mendirikan adegan.

Let's make things happen Mari kita membuat sesuatu terjadi

We'll create some basic behaviors for our Movie Clip objects next. Kami akan menciptakan beberapa perilaku dasar bagi kami Klip Video objek berikutnya.

At the moment the player's ship isn't too responsive. Pada saat kapal pemain tidak terlalu responsif. We're going to change that. Kita akan mengubah itu.

Left click on the player's ship to select it. Waktu klik pada kapal pemain untuk memilihnya. Go to the Actions panel at the bottom and enter in the following code in the white part on the right: Tindakan pergi ke panel di bawah dan masukkan kode berikut di bagian putih di sebelah kanan:

onClipEvent(enterFrame) onClipEvent (enterFrame)
{ (
if(Key.isDown(Key.RIGHT)) { if (Key.isDown (Key.RIGHT)) (
//this will move the player 15 units to the right / / ini akan memindahkan pemain 15 unit ke kanan
this._x = this._x + 15; this._x = this._x + 15;
} else if (Key.isDown(Key.LEFT)) { ) Else if (Key.isDown (Key.LEFT)) (
//this will move the player 15 units to the left / / ini akan memindahkan pemain 15 unit ke kiri
this._x = this._x - 15; this._x = this._x - 15;
} )
} )

I'll give some explanation below as to what this code means. Saya akan memberikan beberapa penjelasan di bawah ini seperti apa kode ini berarti. Feel free to skip ahead of this explanation if you don't want to get heavily involved in ActionScript. Jangan ragu untuk langsung beralih penjelasan ini jika Anda tidak ingin terlibat dalam ActionScript.

A bit about ActionScript: Sedikit tentang ActionScript:


onClipEvent(enterFrame){} This is basically a container that's called a function. onClipEvent (enterFrame) () ini pada dasarnya adalah sebuah wadah yang disebut fungsi. This container holds code to be run within it. Memegang wadah ini kode untuk dijalankan di dalamnya. The function isn't executed or run until something else tells it to. Fungsi tersebut tidak dilaksanakan atau dijalankan sampai sesuatu yang lain mengatakan itu. “onClipEvent” is the name of the function. "OnClipEvent" adalah nama fungsi. Some names such as “onClipEvent” are reserved by Flash in order for certain things to run properly. Beberapa nama-nama seperti "onClipEvent" dicadangkan oleh Flash agar hal-hal tertentu untuk menjalankan dengan benar.

The text in between the two brackets “ ( “ and “ ) ”are any parameters that are passed to the function. Teks di antara dua kurung "(" dan ")" adalah setiap parameter yang dilewatkan ke fungsi. Parameters are passed from the source that executed it. Parameter yang dikirimkan dari sumber yang dieksekusi itu. There can be more than one parameter eg “(var1,test2)”. Terdapat lebih dari satu parameter misalnya "(var1, test2)". These parameters can usually be used within the function. Parameter-parameter ini biasanya dapat digunakan dalam fungsi. Parameters will be described in more detail later. Parameter akan dijelaskan secara lebih rinci nanti.

The stuff in between curly braces “ { ” and ” } ” is the actual code within the function that is executed. Barang-barang di antara kurung kurawal "(" dan ")" adalah kode aktual dalam fungsi yang dijalankan.

Things like “this._x= this._x + 15;” are called statements . Statements are bits of code that tells something to do something else. Hal-hal seperti "this._x = this._x + 15;" disebut pernyataan. Pernyataan adalah potongan kode yang mengatakan sesuatu untuk melakukan sesuatu yang lain. There is usually at most one statement every line. Biasanya ada paling banyak satu pernyataan setiap baris. Every statement must end with “;” so that Flash knows when the statement ends. Setiap pernyataan harus diakhiri dengan ";" sehingga Flash pernyataan tahu kapan berakhir.

Comments are ignored by Flash, but help the coder know what their code is doing. Komentar diabaikan oleh Flash, tetapi membantu coder tahu apa kode mereka lakukan. Comments begin with a “//” and continue for the entire line. Komentar dimulai dengan "/ /" dan melanjutkan untuk seluruh baris.

if(Key.isDown(Key.RIGHT)) {} This is called an if statement . This is basically a test to see if the stuff within the brackets is true. If the stuff is true then the code within the curly braces is run. if (Key.isDown (Key.RIGHT)) () Ini disebut jika pernyataan. Hal ini pada dasarnya adalah sebuah tes untuk melihat apakah barang-barang di dalam kurung adalah benar. Jika hal ini benar maka kode dalam kurung kurawal dijalankan .

else if (Key.isDown(Key.LEFT)) {} This can only go after the “if” statement or another “else if” statement. else if (Key.isDown (Key.LEFT)) () ini hanya bisa pergi setelah "jika" pernyataan atau lain "else if" pernyataan. Basically, if the stuff in the previous test is false, then the stuff in this “else if” statement is tested. Pada dasarnya, jika barang-barang di tes sebelumnya adalah salah, maka barang-barang dalam "else if" pernyataan diuji. If the test in the brackets is true than the code within the braces is executed. Jika tes dalam kurung adalah benar daripada kode dalam kurung dijalankan.


This little piece of code will let you move the ship around from left to right. Preview your flash animation (CTR-ENTER) and try moving the ship with the left and right arrow buttons. Sepotong kecil ini kode akan membiarkan Anda memindahkan kapal sekitar dari kiri ke kanan. Gambar animasi flash Anda (RKPT-ENTER) dan mencoba memindahkan kapal dengan tombol kiri dan kanan tombol panah.

The ship can move outside the boundaries so we need to add in a bit more code to restrict its movement. Kapal dapat bergerak di luar batas-batas jadi kita perlu menambahkan lebih banyak kode untuk membatasi gerakan.

Change the line: Ubah baris:

if(Key.isDown(Key.RIGHT )) { if (Key.isDown (Key.RIGHT)) (

to: untuk:

if(Key.isDown(Key.RIGHT) and this._x <> if (Key.isDown (Key.RIGHT) dan this._x <640)>


Also, change the line: Juga, ubah baris:

} else if (Key.isDown(Key.LEFT)) { ) Else if (Key.isDown (Key.LEFT)) (

to: untuk:

} else if (Key.isDown(Key.LEFT) and this._x > 0) { ) Else if (Key.isDown (Key.LEFT) dan this._x> 0) (


Preview your animation again. Preview animasi Anda lagi. This time the player ship should stay within the boundaries. Kali ini kapal pemain harus tetap berada dalam batas-batas.

Now would be a great time to place the player's ship around the bottom of the stage, as it will be firing upwards. Sekarang akan menjadi waktu yang tepat untuk menempatkan pemain kapal di bawah panggung, karena akan menembak ke atas.

Time to breathe some life into the alien. Waktu untuk bernapas beberapa kehidupan ke asing. Select the alien and put this code into the ActionScript part: Pilih asing dan masukkan kode ini ke dalam ActionScript bagian:

//this is triggered when the clip loads / / ini dipicu ketika klip beban
onClipEvent (load) onClipEvent (load)
{ (
xmove = random(15) - random(15); //comments can also go after statements xmove = random (15) - random (15); / / komentar bisa juga pergi setelah pernyataan
ymove = random(15) - random(15); //this sets the ymovement randomly ymove = random (15) - random (15); / / ini menentukan secara acak ymovement
this._x = random(640); //this sets the x and y position randomly this._x = random (640); / / ini menentukan posisi x dan y secara acak
this._y = random(480); this._y = random (480);
} )

//this is triggered every time a new frame is entered, in this case 30 times a sec / / ini dipicu setiap kali bingkai baru dimasukkan, dalam kasus ini 30 kali sebuah sec
onClipEvent (enterFrame) onClipEvent (enterFrame)
{ (
//lets move the alien around / / memungkinkan memindahkan asing di
this._x = this._x + xmove; this._x = this._x + xmove;
this._y = this._y + ymove; this._y = this._y + ymove;

//bounce the alien if it is out of bounds / / bouncing asing jika di luar batas
if(this._x > 640){xmove = Math.abs(xmove) * -1} if (this._x> 640) (xmove = Math.abs (xmove) * -1)
if(this._x < xmove =" Math.abs(xmove)} if (this._x <0) xmove =">
if(this._y > 480){ymove = Math.abs(ymove) * -1} if (this._y> 480) (ymove = Math.abs (ymove) * -1)
if(this._y < ymove =" Math.abs(ymove)} if (this._y <0) ymove =">
} )


Try running the game now. Cobalah menjalankan permainan sekarang. The alien should select a random direction and speed and bounce around the stage. Asing harus memilih acak arah dan kecepatan dan mental di sekitar panggung.

You should move the explosion, alien laser and player projectile off of the stage. Anda harus memindahkan ledakan, laser dan pemain asing proyektil turun dari panggung. This is because these are the templates that will be copied whenever necessary and so they will remain throughout the entire game. Hal ini karena ini adalah template yang akan disalin bila diperlukan dan sehingga mereka akan tetap sepanjang seluruh permainan.

Setting the score Pengaturan skor

Lets add some texts to display the score. Mari menambahkan beberapa teks untuk menampilkan skor. Select the text tool and create two text objects in one of the corners, stacked on top of each other. Pilih teks alat dan menciptakan dua objek teks di salah satu sudut, ditumpuk di atas satu sama lain. Write "Score:" in the top one and "High Score:" in the bottom one. Menulis "Nilai:" di atas satu dan "Tinggi Nilai:" di bawah satu.

Make sure that they are long enough to accommodate the text along with the score in a single line. Pastikan bahwa mereka cukup lama untuk menampung teks bersama-sama dengan skor dalam satu baris.

Change the properties in both text objects to be dynamic text. Ubah properti di objek teks menjadi teks dinamis. Set the "var" property to score in the score text and highscore in the highscore text. Mengatur "var" properti untuk mencetak gol dalam skor teks dan highscore di teks highscore.

The "var" property is the name of the root variable that the text objects will pull their data from to display. The "var" adalah nama properti dari akar variabel yang objek teks akan menarik data dari mereka untuk ditampilkan. For example, if the score variable is "score: 50" then that's what the score text will display. Sebagai contoh, jika nilai variabel "score: 50" maka itulah yang skor teks akan ditampilkan.

A new hope Harapan baru

Time to give our ship some offensive weaponry . Waktu untuk memberikan kapal kami beberapa persenjataan ofensif.

Select the frame that you are working in. This should be the first one on the left. Pilih bingkai yang sedang Anda masuk ini harus yang pertama di sebelah kiri.

Go to the Actions panel at the bottom and insert the following code: Tindakan pergi ke panel di bawah dan masukkan kode berikut:

//The stuff below this will only be executed once on this frame / / Hal-hal di bawah ini hanya akan dieksekusi sekali pada frame ini

//This will set the score and highscore to 0 on application start / / Ini akan menetapkan nilai dan highscore ke 0 pada aplikasi mulai
scorenumber = 0; scorenumber = 0;
highscorenumber = 0; highscorenumber = 0;

//This will create the arrays which basically stores stuff in numbered slots / / Ini akan menciptakan array yang pada dasarnya toko barang-barang di nomor slot
Explosions = new Array(); Ledakan = new Array ();
BadShots = new Array(); BadShots = new Array ();
PlayerShots = new Array(); PlayerShots = new Array ();

//This is to create the unique IDs / / Hal ini untuk menciptakan ID yang unik
PShotID = 0; PShotID = 0;
BShotID = 0; BShotID = 0;
ExplosionID = 0; ExplosionID = 0;

//This is to create the playershot timer, so that it only shoots when ready / / Hal ini untuk menciptakan playershot timer, sehingga hanya tunas ketika siap
PShotTimer = 0; PShotTimer = 0;

//This one is required because each instance works on its own "layer" / / Ini diperlukan karena setiap contoh karya sendiri "lapisan"
//Instances cant be on the same layer, hence the use of a unique ID / / Contoh cant be pada lapisan yang sama, maka penggunaan sebuah ID yang unik
UniqueID = 10; UniqueID = 10;

//This is to stop from entering the next frame in our timeline / / Hal ini untuk berhenti dari memasuki frame berikutnya dalam garis waktu
stop(); stop ();
//This stuff runs 30 times a second / / Hal ini berjalan 30 kali sedetik
this.onEnterFrame = function() this.onEnterFrame = function ()
{ (
//timer goes down every time the frame is entered again / / timer turun setiap kali frame dimasukkan lagi
if(PShotTimer > 0){ if (PShotTimer> 0) (
-- PShotTimer; - PShotTimer;
} )

//test for space key down / / test kunci ruang bawah
if(Key.isDown(Key.SPACE)) if (Key.isDown (Key.SPACE))
{ (
if(PShotTimer <> if (PShotTimer <1)
{ (
//increment the unique id and id for playershots / / increment id unik dan id playershots
PShotID = PShotID + 1; PShotID = PShotID + 1;
UniqueID = UniqueID + 1; UniqueID = UniqueID + 1;

//loop back to 1 if there are many shots existing / / loop kembali ke 1 jika ada banyak gambar yang ada
if (PShotID == 10) {PShotID = 1} if (PShotID == 10) (PShotID = 1)

//run function to make shot / / jalankan fungsi untuk membuat ditembak
PlayerShots[PShotID]= MakeObject("PShot",PlayerShotT,UniqueID,PlayerShip._x,PlayerShip._y); PlayerShots [PShotID] = MakeObject ( "PShot", PlayerShotT, UniqueID, PlayerShip._x, PlayerShip._y);
//Set the timer so that the player must wait 10 frames before firing again / / Set timer sehingga pemain harus menunggu 10 frame sebelum menembak lagi
PShotTimer = 10; PShotTimer = 10;
} )
} )
} )


//function to work out distance between objects / / fungsi untuk mengetahui jarak antara obyek
md = function (x1, y1, x2, y2) md = function (x1, y1, x2, y2)
{ (
x = x1 - x2 x = x1 - x2
y = y1 - y2 y = y1 - y2
var thing =Math.sqrt((x * x) + (y * y)) var hal = Math.sqrt ((x * x) + (y * y))
if (thing == 0) {thing = 999} if (hal == 0) (hal = 999)
return(thing); return (hal);
} )

//making instances or "copies" of the templates / / membuat contoh atau "salinan" dari template
MakeObject = function(instname,template,id,x,y) MakeObject = function (instname, template, id, x, y)
{ (
// make temporary variable / / Membuat variabel sementara
var temp; var temp;

//assign name / / nama menetapkan
var name = instname + id; var name = instname + id;

//make new instance from template / / membuat instance baru dari template
var temp = template.duplicateMovieClip(name, id); var temp = template.duplicateMovieClip (nama, id);

//set its x and y coordinates / / mengatur koordinat x dan y
setProperty (name, _x, x); setProperty (nama, _x, x);
setProperty (name, _y, y); setProperty (nama, _y, y);
//return the object to whatever called this function / / kembali objek untuk apa pun yang disebut fungsi ini
return temp; return temp;
} )


Double-click on your explosion that you made. Double-klik pada ledakan yang Anda buat. Now convert the explosion again into a Symbol and choose Graphic . Sekarang mengubah ledakan lagi menjadi Lambang dan pilih Graphic. You should now have a Graphic within a MovieClip for your explosion. Anda seharusnya sudah memiliki sebuah movieklip Grafik dalam ledakan Anda.

Create an animation to your liking that basically plays out the explosion from start to finish. Membuat animasi sesuai dengan keinginan anda bahwa pada dasarnya bermain keluar ledakan dari awal sampai akhir. On the last frame, put this code in: Pada frame terakhir, masukkan kode ini dalam:

this.onEnterFrame = function() this.onEnterFrame = function ()
{ (
this.removeMovieClip(); this.removeMovieClip ();
} )


This will remove the explosion once it finishes its animation. Ini akan menghapus ledakan setelah selesai dengan animasi. Click here for an example. Klik di sini untuk contoh.

This won't however remove the original explosion, only the instance. This is why you should keep this object away from the stage so that it is not seen. Namun hal ini tidak akan menghapus ledakan asli, hanya contoh. Inilah mengapa Anda harus menjaga objek ini jauh dari panggung sehingga tidak terlihat.

Go back to your scene by clicking something along the lines of Scene1 on the top left. Kembali ke TKP dengan mengklik sesuatu di sepanjang baris Scene1 di kiri atas.

Select the player's projectile and insert the following code: Pilih pemain proyektil dan masukkan kode berikut:

//this is triggered when the clip loads / / ini dipicu ketika klip beban
onClipEvent (load) onClipEvent (load)
{ (
xmove = random(5) - random(5); //comments can also go after statements xmove = random (5) - acak (5); / / komentar bisa juga pergi setelah pernyataan
ymove = (random(5) + 15) * -1; //this sets the ymovement randomly ymove = (random (5) + 15) * -1; / / ini menentukan secara acak ymovement
} )

//this is triggered every time a new frame is entered, in this case 30 times a sec / / ini dipicu setiap kali bingkai baru dimasukkan, dalam kasus ini 30 kali sebuah sec
onClipEvent (enterFrame) onClipEvent (enterFrame)
{ (
//lets move the player's shot around / / memungkinkan memindahkan pemain ditembak sekitar
this._x = this._x + xmove; this._x = this._x + xmove;
this._y = this._y + ymove; this._y = this._y + ymove;
//destroy this if it reaches the top / / menghancurkan ini jika mencapai puncak
if(this._y <> if (this._y <0)>

//test to see if this is colliding with the alien / / tes untuk melihat apakah ini bertabrakan dengan orang asing
col = _root.md(_x, _y, _root.Alien._x, _root.Alien._y) col = _root.md (_x, _y, _root.Alien._x, _root.Alien._y)

//you can change 40 to another number if shots seem to pass through / / Anda dapat mengubah 40 hingga nomor lain jika pengambilan tampaknya melewati
if(col <> if (col <40)
{ (
//increments the IDs and creates an explosion / / akan menambahkan ID dan menciptakan sebuah ledakan
//notice that _root. / / perhatikan bahwa _root. is put in front diletakkan di depan
++ _root.UniqueID + + _root.UniqueID
++ _root.ExplosionID + + _root.ExplosionID
_root.Explosions[_root.ExplosionID] = _root.MakeObject("Explosion",_root.ExplosionT,_root.UniqueID,_root.Alien._x,_root.Alien._y); _root.Explosions [_root.ExplosionID] = _root.MakeObject ( "Explosion", _root.ExplosionT, _root.UniqueID, _root.Alien._x, _root.Alien._y);

//"resets" the alien / / "reset" orang asing
_root.Alien._x = random(640) _root.Alien._x = random (640)
_root.Alien._y = random(480) _root.Alien._y = random (480)
_root.Alien.xmove = random(15) - random(15); //comments can also go after statements _root.Alien.xmove = random (15) - random (15); / / komentar bisa juga pergi setelah pernyataan
_root.Alien.ymove = random(15) - random(15); //this sets the ymovement randomly _root.Alien.ymove = random (15) - random (15); / / ini menentukan secara acak ymovement

//increases the score by one and updates the score variable for the text / / meningkatkan nilai oleh satu dan memperbarui variabel skor untuk teks
++_root.scorenumber; + + _root.scorenumber;
_root.score = "Score " + _root.scorenumber; //puts a string and number together _root.score = "Nilai" + _root.scorenumber; / / menempatkan sebuah string dan nomor bersama

//destroys this instance / / menghancurkan contoh ini
//once the instance is gone, no further actions can be performed / / setelah contoh hilang, tidak ada tindakan lebih lanjut dapat dilakukan
this.removeMovieClip(); this.removeMovieClip ();
} )
} )

Run the game now and use SPACEBAR to shoot. Menjalankan permainan sekarang dan Gunakan spasi untuk menembak. By now your ship moves around, shoots and blows up the alien on a direct hit. Sekarang kapal Anda bergerak di sekitar, tunas dan meledak asing di hit langsung. Only a couple more pieces of code left! Hanya beberapa potongan-potongan kode kiri!

The alien strikes back Pemogokan asing kembali

Aliens never come in peace, so select the alien and insert this code at the bottom, but before the end “ } ” brace: Aliens pernah datang dengan damai, jadi pilih yang asing dan menyisipkan kode ini di bagian bawah, tapi sebelum akhir ")" penjepit:

//this is to get the alien to fire randomly / / ini adalah untuk mendapatkan api asing secara acak
fire = random(20); api = random (20);

//one in 20 chance of firing every frame! / / satu dari 20 kesempatan menembak setiap bingkai!
if(fire == 1) if (kebakaran == 1)
{ (
_root.BShotID = _root.BShotID + 1; _root.BShotID = _root.BShotID + 1;
_root.UniqueID = _root.UniqueID + 1; _root.UniqueID = _root.UniqueID + 1;
//run function to make shot / / jalankan fungsi untuk membuat ditembak
_root.BadShots[_root.BShotID]= _root.MakeObject("BShot",_root.AlienShotT,_root.UniqueID,_root.Alien._x,_root.Alien._y); _root.BadShots [_root.BShotID] = _root.MakeObject ( "BShot", _root.AlienShotT, _root.UniqueID, _root.Alien._x, _root.Alien._y);
} )


The bottom of the alien's code should look something like this: Bagian bawah kode asing harus terlihat seperti ini:

Finally, select the alien's laser and add this code: Akhirnya, pilih alien's laser dan menambahkan kode ini:

//this is triggered when the clip loads / / ini dipicu ketika klip beban
onClipEvent (load) onClipEvent (load)
{ (
xmove = random(5) - random(5); //comments can also go after statements xmove = random (5) - acak (5); / / komentar bisa juga pergi setelah pernyataan
ymove = (random(5) + 15); //this sets the ymovement randomly ymove = (random (5) + 15); / / ini menentukan secara acak ymovement
} )

//this is triggered every time a new frame is entered, in this case 30 times a sec / / ini dipicu setiap kali bingkai baru dimasukkan, dalam kasus ini 30 kali sebuah sec
onClipEvent (enterFrame) onClipEvent (enterFrame)
{ (
//lets move the player's shot around / / memungkinkan memindahkan pemain ditembak sekitar
this._x = this._x + xmove; this._x = this._x + xmove;
this._y = this._y + ymove; this._y = this._y + ymove;

//destroy this if it reaches the top / / menghancurkan ini jika mencapai puncak
if(this._y > 480){this.removeMovieClip();} if (this._y> 480) (this.removeMovieClip ();)

//test to see if this is colliding with the player / / tes untuk melihat apakah ini bertabrakan dengan pemain
col = _root.md(_x, _y, _root.PlayerShip._x, _root.PlayerShip._y) col = _root.md (_x, _y, _root.PlayerShip._x, _root.PlayerShip._y)

//you can change 40 to another number if shots seem to pass through / / Anda dapat mengubah 40 hingga nomor lain jika pengambilan tampaknya melewati
if(col <> if (col <25)>
//increments the IDs and creates an explosion / / akan menambahkan ID dan menciptakan sebuah ledakan
//notice that _root. / / perhatikan bahwa _root. is put in front diletakkan di depan
++ _root.UniqueID + + _root.UniqueID
++ _root.ExplosionID + + _root.ExplosionID
_root.Explosions[_root.ExplosionID] = _root.MakeObject("Explosion",_root.ExplosionT,_root.UniqueID,_root.PlayerShip._x,_root.PlayerShip._y); _root.Explosions [_root.ExplosionID] = _root.MakeObject ( "Explosion", _root.ExplosionT, _root.UniqueID, _root.PlayerShip._x, _root.PlayerShip._y);

//"resets" the player's ship / / "reset" pemain kapal
_root.PlayerShip._x = random(640) _root.PlayerShip._x = random (640)

//checks to see if score greater than highscore, then updates / / cek untuk melihat apakah skor yang lebih besar daripada highscore, maka pembaruan
if(_root.scorenumber > _root.highscorenumber) if (_root.scorenumber> _root.highscorenumber)
{ (
_root.highscorenumber = _root.scorenumber; _root.highscorenumber = _root.scorenumber;
_root.highscore = "High Score: " + _root.highscorenumber; _root.highscore = "High Nilai:" + _root.highscorenumber;
} )
//resets the score to 0 and updates text / / me-reset skor untuk 0 dan update teks
_root.scorenumber = 0; _root.scorenumber = 0;
_root.score = "Score " + _root.scorenumber; _root.score = "Nilai" + _root.scorenumber;

//destroys this instance / / menghancurkan contoh ini
//once the instance is gone, no further actions can be performed / / setelah contoh hilang, tidak ada tindakan lebih lanjut dapat dilakukan
this.removeMovieClip(); this.removeMovieClip ();
} )
} )


Congratulations, you now have a functional game! Selamat, Anda sekarang memiliki permainan fungsional! Of course, this article barely scratches the surface of what is possible with Flash. Tentu saja, artikel ini nyaris goresan permukaan apa yang mungkin dengan Flash.

Addicting and complex games can be made with the wonderful tool known as flash, and as your first glimpse into Flash game design I hope it has been enjoyable. Permainan Addicting dan kompleks dapat dibuat dengan alat yang indah yang dikenal sebagai flash, dan saat pertama Anda melihat ke dalam Flash game desain saya harap sudah menyenangkan.

As for what to do next, I suggest adding in a nice background in a layer underneath the current layer to get rid of the dull white, and perhaps to examine some of the commented code that has been used. Sedangkan apa yang harus dilakukan selanjutnya, saya menyarankan untuk menambahkan di latar belakang yang bagus pada sebuah lapisan di bawah lapisan saat ini untuk menyingkirkan putih yang membosankan, dan mungkin untuk memeriksa beberapa kode komentar yang telah digunakan.

I hope you have enjoyed following this guide as much as I have enjoyed writing it. Saya harap Anda telah menikmati mengikuti panduan ini sebanyak saya menikmati menulisnya.

After you have had a chance to sit back and absorb this article, please send us your comments and suggestions - your feedback is greatly appreciated. Setelah Anda memiliki kesempatan untuk duduk kembali dan menyerap artikel ini, silahkan kirim komentar dan saran Anda - umpan balik Anda akan sangat dihargai.

Written By Damien D Ditulis Oleh Damien D

The source code is free for private and commercial purposes. Kode sumber gratis untuk pribadi dan tujuan komersial. However, no part of this page can be reproduced on another website without the written permission from GameInnovator.com Namun, tidak ada bagian dari halaman ini dapat direproduksi pada situs web lain tanpa izin tertulis dari GameInnovator.com

Mempercepat Koneksi Internet

on

Jangan terbayangkan bahwa koneksi kita sangat cepat sekali, kita hanya akan menggunakan teknik Tunneling. Pada dasarnya jika kita mengakses sebuah server (website), komputer kita diarahkan secara langsung ke server tersebut. Misal kita akan membuka sebuah halaman website yang servernya terletak di Amerika, maka komputer kita secara langsung mengaksesnya ke server tersebut. Atau lebih sederhananya jika kita inging mengambil sesuatu yang ada di Amerika maka kita harus pergi sendiri ke Amerika.

Terbayangkan oleh kita bergitu rumitnya perjalanan yang kita lewati, begitu banyaknya hambatan yang kita hadapi. Begitupun dunia networking. Teknik tunneling sama halnya dengan teknik pengiriman barang dengan bantuan kurir. Jika kita akan mengirim atau mengambil barang ke Amerika maka kita tidak perlu melakukannya sendiri, biarlah jasa kurir yang melakukan semua kerumitan dan hambatan yang dihadapi agar barang tadi bisa sampai ke tujuan.

Begitupun tunneling, pada saat kita mengakses sebuah halaman webiste maka komputer kita hanya akan meminta bantuan sebuah server untuk menyampaikan dan mengambil halaman demi halaman website yang kita tuju. Selain itu server tunnel akan mengkompresi data yang kita butuhkan, karena itulah koneksi internet kita secara keseluruhan akan meningkat.

Sederhanakan? Tapi kemudian muncul pertanyaan, apakah bisa hal tersebut gratis? Bisa ya bisa tidak. Sekarang sudah banyak server tunnel yang menyediakan fasilitas ini, misal Nitro, Toonel(dot)Net, TrafficCompressor, OnSpeed dan masih banyak yang lainnya. Gratiskah mereka? Jelas tidak, kecepatan yang mereka tawarkan harus ditebus dengan muahal alias berbayar. Lalu buat apa saya menulis ini? Ya karena saya ingin berbagi server tunnel yang GRATIS. Baik mari kita bahas cara menghubungkan komputer kita ke server tunnel yang gratis, tapi ada beberapa hal yang harus diperhatikan sebelum membahas.

1. Komputer anda harus terkoneksi dengan internet.
2. Teknik tunnel ini cocok bagi yang menggunakan koneksi internet dengan fasilitas GPRS, tapi bisa juga untuk jenis koneksi lain.
3. Harus sudah terpasang software tunneling, misal putty, silahkan anda download pada bagian sebelah kanan blog (DEHAFILE).

Ikuti langkahnya :

1. Download PuTTY , lihat link sebelah kanan (DEHAFILE)
2. Ekstrak menggunakan WinRAR dan simpan PuTTY.exe pada C:WINDOWS
3. Biarkanlah PuTTY tidur disana, tidak usah diaktifkan
4. Klik Start Menu => Run dan masukan “putty -P 222 -N -D 9999 -C net@cepat.abangadek.com” tanpa tanda petik (”) setelah itu jendela DOS akan terbuka.
5. Pada saat diminta password, ketikan “cepat123” tanpa tanda petik (”) dan Enter, tapi jangan heran pada saat memasukan password anda tidak melihat apapun, makanya anda harus hati-hati memasukan password, jika salah maka PuTTY akan memberitahu anda, jika salah lagi maka PuTTY akan terminate (close). Jika setelah memasukan password PuTTY tidak ada reaksi (kursor hanya turun) maka anda sudah betul
6. Arahkan agar browser menggunakan SOCKS proxy di localhost, port 9999 (lihat gambar dibawah)
7. Selamat browsing dengan kecepatan baru tapi ingat ucapkan terima kasih pada Mas Harry karena sudah berbaik hati meminjamkan server-nya yang di Singapura untuk Tunneling, mudah-mudahan amal kebaikannya di balas oleh Allah SWT, amin…..

Informasi Ini Saya Ambil Dari sini

Membuat Anti Virus

on

Sekarang kehadiran para virus maker (–selanjutnya disingkat jadi VM
saja) lokal telah membuat gerah para user komputer tanah air. Bisa
dibayangkan bila dari sekian banyak virus lokal tidak satu-dua yang
menghancurkan data (terutama bagi file office; word, excel, dll…). Bagi
para vendor Anti Virus (–selanjutnya disingkat menjadi AV saja)
fenomena ini adalah lahan bisnis untuk produk mereka. Sebut saja
NORMAN, yang kini men-support perusahaan konsultan virus lokal
(–VAKSIN.COM) , Symantec, McAffe, NOD32, dan sebagainya. Dengan
menawarkan update definisi software AV tercepat, engine scanner paling
sensitif, dan lain-lain merupakan kiat untuk memancing para korban
virus membeli dan menggunakan software AV mereka. Bagi penulis sendiri
hal ini memang agak memberatkan mengingat update file definisi atau
engine AV tsb haruslah melalui koneksi internet. Lalu bagaimana yang
tidak mempunyai akses sama sekali? Konsekuensinya iyalah tertinggal
dalam hal pengenalan varian virus baru yang pada ujung-ujungnya membuat
AV yang sudah terinstall bagai 'Macan Ompong'. Kalau kita membuat AV
sendiri bagaimana? dengan database definisi yang bisa diupdate oleh
kita bahkan dapat saling tukar dengan teman? Bisa saja, dengan syarat
mau mempelajari sedikit teknik pemograman.

Pertama kita harus mengerti bagaimana cara kerja
sebuah AV sederhana, pada dasarnya sebuah software AV mempunyai
komponen-komponen :


1. Engine scanner, ini merupakan komponen utama AV
dalam mengenali sebuah pattern virus. Engine ini dapat dikelompokkan
menjadi statis dan dinamis. Statis dalam hal ini dapat disebut menjadi
spesifik terhadap pattern tertentu dari sebuah file virus. Checksum
merupakan salah satu contoh dari engine statis ini. Dinamis dalam
artian dia mengenali perilaku 'umum' sebuah virus. Heuristic menjadi
salah satu contohnya.

2. Database definition, menjadi sebuah referensi dari sebuah pattern
file virus. Engine statis sangat bergantung kepada komponen ini.

3. Decompress atau unpacking engine, khusus untuk pengecekan file-file
yang terkompresi (*.rar, *.zip, dll) atau kompresi atau packing untuk
file PE seperti UPX, MeW , dll.

Tidak jarang hasil dari pengecekan terhadap file
suspect virus menghasilkan false-positive bahkan false-negative (–
false-positive berarti file yang bersih dianggap thread oleh AV, dan
false-negative berarti file yang 100% thread akan dianggap bersih).
Semua itu dapat diakibatkan oleh ketidak-sempurnaan dari engine scanner
itu sendiri. Misal

pada contoh kasus Engine String scanner (–Engine scanner yang
menyeleksi string-string dari file text-based), bila diterapkan rule 3
out of 5 (– bila AV menemukan 3 dari daftar 5 string kategori
malicious) maka AV akan memberikan bahwa file terindikasi sebuah thread
yang positif. Padahal file tsb nyatanya tidak menimbulkan efek
berbahaya bila dijalankan atau dieksekusi. Kesalahan scanning macam ini
lazim ditemukan untuk file-file *.VBS, *.HTML, dll. Untuk penggunaan
engine checksum sangat banyak ditemui di beberapa software AV lokal.
Checksum yang lazim digunakan diantaranya CRC16, CRC32, MD5, dll.
Dikarenakan mudah untuk diimplementasikan. Engine ini sendiri bukannya
tanpa cacat, Checksum bekerja dengan memproses byte demi byte dari
sebuah file dengan sebuah algoritma tertenu (– tergantung dari jenis
checksum yang digunakan) sehingga menghasilkan sebuah format tertentu
dari file tsb. Contoh checksum menggunakan CRC32 dan MD5 :

* calCrc = CRC32(file_name_and_path)

* calMD5 = MD5(file_name_and_path)

Maka isi dari string calCrc adalah 7AF9E376,
sedangkan untuk MD5nya adalah 529CA8050A00180790CF88B63468826A. Perlu
diketahui bila virus menerapkan rutin yang mengubah byte tertentu dari
badan virus tsb setiap kali maka penggunaan engine checksum ini akan
kurang optimal karena bila 1 byte berubah dari file maka checksum juga
akan berubah.

Mari kita belajar membuat sebuah AV sederhana, yang diperlukan :


1. Software Visual Basic 6.0

2. Sedikit pemahaman akan pemograman Visual Basic 6.0

3. Sampel file bersih atau virus (– opsional)

First#

Sekarang kita akan belajar membuat sebuah rutin sederhana untuk :

- Memilih file yang akan dicek

- Membuka file tersebut dalam mode binary

- Memproses byte demi byte untuk menghasilkan Checksum

Buka MS-Visual Basic 6.0 anda, lalu buatlah sebuah
class module dan Form dengan menambahkan sebuah objek Textbox,
CommonDialog dan Command Button. (Objek CommonDialog dapat ditambahkan
dengan memilih Project -> COmponent atau Ctrl-T dan memilih
Microsoft Common Dialog Control 6.0) Ketikkan kode berikut pada class
module (kita beri nama class module tsb clsCrc) :


================= START HERE ====================

Private crcTable(0 To 255) As Long 'crc32

Public Function CRC32(ByRef bArrayIn() As Byte, ByVal lLen As Long, Optional ByVal lcrc As Long = 0) As Long

'bArrayIn adalah array byte dari file yang dibaca, lLen adalah ukuran atau size file

Dim lCurPos As Long 'Current position untuk iterasi proses array bArrayIn

Dim lTemp As Long 'variabel temp hasil perhitungan

If lLen = 0 Then Exit Function 'keluar fungsi apabila ukuran file = 0

lTemp = lcrc Xor &HFFFFFFFF


For lCurPos = 0 To lLen

lTemp = (((lTemp And &HFFFFFF00) \\ &H100) And &HFFFFFF) Xor (crcTable((lTemp And 255) Xor bArrayIn(lCurPos)))

Next lCurPos

CRC32 = lTemp Xor &HFFFFFFFF

End Function

Private Function BuildTable() As Boolean

Dim i As Long, x As Long, crc As Long


Const Limit = &HEDB88320

For i = 0 To 255

crc = i

For x = 0 To 7

If crc And 1 Then

crc = (((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF) Xor Limit

Else


crc = ((crc And &HFFFFFFFE) \\ 2) And &H7FFFFFFF

End If

Next x

crcTable(i) = crc

Next i

End Function

Private Sub Class_Initialize()

BuildTable


End Sub

================= END HERE ====================

Lalu ketikkan kode berikut dalam event Command1_Click :

================= START HERE ====================

Dim namaFileBuka As String, HasilCrc As String

Dim CCrc As New clsCrc 'bikin objek baru dari class ClsCrc

Dim calCrc As Long

Dim tmp() As Byte 'array buat file yang dibaca

Private Sub Command1_Click()


CommonDialog1.CancelError = True 'error bila user mengklik cancel pada CommonDialog

CommonDialog1.DialogTitle = "Baca File" 'Caption commondialog

On Error GoTo erorhandle 'label error handle

CommonDialog1.ShowOpen

namafilbuka = CommonDialog1.FileName

Open namafilbuka For Binary Access Read As #1 'buka file yang dipilih dengan akses baca pada mode binary

ReDim tmp(LOF(1) - 1) As Byte 'deklarasi ulang untuk array, # Bugs Fixed #

Get #1, , tmp()

Close #1


calCrc = UBound(tmp) 'mengambil ukuran file dari array

calCrc = CCrc.CRC32(tmp, calCrc) 'hitung CRC

HasilCrc = Hex(calCrc) 'diubah ke format hexadesimal, karena hasil perhitungan dari class CRC masih berupa numeric

Text1.Text = HasilCrc 'tampilkan hasilnya

Exit Sub

erorhandle:

If Err.Number <> 32755 Then MsgBox Err.Description 'error number
32755 dalah bila user mengklik tombol cancel pada saat memilih file

================= END HERE ====================


COba anda jalankan program diatas dengan memencet
tombol F5, lalu klik Command1 untuk memilih dan membuka file. Maka
program akan menampilkan CRC32nya.

Second#

Kode diatas dapat kita buat menjadi sebuah rutin pengecekan file
suspect virus dengan antara membandingkan hasil CRC32nya dan database
CRC kita sendiri. Algoritmanya adalah :

- Memilih file yang akan dicek

- Membuka file tersebut dalam mode binary

- Memproses byte demi byte untuk menghasilkan Checksum

- Buka file database

- Ambil isi file baris demi baris

- Samakan Checksum hasil perhitungan dengan checksum dari file


Format file database dapat kita tentukan sendiri, misal :

- FluBurung.A=ABCDEFGH

- Diary.A=12345678

Dimana FluBurung.A adalah nama virus dan ABCDEFGH dalah Crc32nya. Jika
kita mempunyai format file seperti diatas, maka kita perlu membaca file
secara sekuensial per baris serta memisahkan antara nama virus dan
Crc32nya. Dalam hal ini yang menjadi pemisah adalah karakter '='.

Buat 1 module baru (– diberi nama module1) lalu isi dengan kode :

================= START HERE ====================

Public namaVirus As String, CrcVirus As String
'deklarasi variabel global untuk nama dan CRC virus Public pathExe as
String 'deklarasi variabel penyimpan lokasi file EXE AV kita

Public Function cariDatabase(Crc As String, namaFileDB As String) As Boolean

Dim lineStr As String, tmp() As String 'variabel penampung untuk isi file


Open namaFileDB For Input As #1 'buka file dengan mode input

Do

Line Input #1, lineStr

tmp = Split(lineStr, "=") 'pisahkan isi file bedasarkan pemisah karakter '='

namaVirus = tmp(0) 'masukkan namavirus ke variabel dari array

CrcVirus = tmp(1) 'masukkan Crcvirus ke variabel dari array

If CrcVirus = Crc Then 'bila CRC perhitungan cocok/match dengan database

cariDatabase = True 'kembalikan nilai TRUE

Exit Do 'keluar dari perulangan


End If

Loop Until EOF(1)

Close #1

End Function

================= END HERE ====================

Lalu tambahkan 1 objek baru kedalam Form, yaitu
Command button2. lalu ketikkan listing kode berikut kedalam event
Command2_Click :

================= START HERE ====================

If Len(App.Path) <= 3 Then 'bila direktori kita adalah root direktori


pathEXE = App.Path

Else

pathEXE = App.Path & "\\"

End If

CommonDialog1.CancelError = True 'error bila user mengklik cancel pada CommonDialog

CommonDialog1.DialogTitle = "Baca File" 'Caption commondialog

On Error GoTo erorhandle 'label error handle

CommonDialog1.ShowOpen


namafilbuka = CommonDialog1.FileName

Open namafilbuka For Binary Access Read As #1 'buka file yang dipilih dengan akses baca pada mode binary

ReDim tmp(LOF(1) - 1) As Byte 'deklarasi ulang untuk array # Bugs Fixed #

Get #1, , tmp()

Close #1

calCrc = UBound(tmp) 'mengambil ukuran file dari array

calCrc = CCrc.CRC32(tmp, calCrc) 'hitung CRC

HasilCrc = Hex(calCrc) 'diubah ke format hexadesimal, karena hasil perhitungan dari class CRC masih berupa numeric

If cariDatabase(HasilCrc, pathEXE & "DB.txt") Then 'bila fungsi bernilai TRUE


MsgBox "Virus ditemukan : " & namaVirus 'tampilkan message Box

End If

Exit Sub

erorhandle:

If Err.Number <> 32755 Then MsgBox Err.Description 'error number
32755 dalah bila user mengklik tombol cancel pada saat memilih file

================= END HERE ====================

Fitur AV sederhana ini dapat ditambahkan dengan
fitur process scanner, akses registry, real-time protection (RTP) dan
lain lain. Untuk process scanner pada dasarnya adalah teknik enumerasi
seluruh proses yang sedang berjalan pada Sistem Operasi, lalu mencari
letak atau lokasi file dan melakukan proses scanning. Fitur akses
registry memungkinkan kita untuk mengedit secara langsung registry
windows apabila akses terhadap registry (–Regedit) diblok oleh virus.
Sedangkan fitur RTP memungkinkan AV kita berjalan secara simultan
dengan windows explorer untuk mengscan direktori atau file yang sedang
kita browse atau lihat. Untuk ketiga fitur lanjutan ini akan dibahas
pada artikel selanjutnya.


Kesimpulan#

Tidak harus membeli software AV yang mahal untuk menjaga komputer kita
dari ancaman virus, kita bisa membuatnya sendiri dengan fitur-fitur
yang tak kalah bagusnya. Memang terdapat ketidaksempurnaan dalam AV
buatan sendiri ini, tetapi setidaknya dapat dijadikan pencegah dari
infeksi virus komputer yang semakin merajalela. Software AV sederhana
ini dilengkapi oleh engine scanner statis dan database definisi. Tidak
tertutup kemungkinan software AV ini ditingkatkan lebih advanced dalam
hal engine scannernya.

Untuk source code antivirusnya bisa dilihat di bagian sini