# Temeller - Başlarken

- **İngilizce aslı:** https://wiki.facepunch.com/gmod/Beginner_Tutorial_Intro
- **Çeviri tarihi:** 2025-09-08

## Giriş

Bir Lua dosyasına script denir. Lua script'leri düz metin dosyalarıdır. Lua script'leri oluşturmak ve düzenlemek için notepad gibi bir düz metin düzenleyiciye ihtiyacınız vardır.

Herhangi bir düz metin düzenleyici kullanabilirsiniz, ancak Sublime Text veya Visual Studio Code gibi mevcut birçok [Lua Düzenleyicileri](https://gmod.tr/wiki/Lua_Editors)'nden birini kullanmıyorsanız **işiniz zor olacaktır**.

Bu eğitimler boyunca, tercih ettiğiniz metin düzenleyiciyi "notepad" olarak adlandıracağız.

> **UYARI:** **Wordpad kullanmayın.**
>
> Bu, düz metin düzenleyici değil, biçimlendirilmiş bir metin düzenleyicidir. Kodunuzun etrafına, yüklenirken başarısız olmasına neden olacak işe yaramaz etiketler koyacaktır. Genel bir kural olarak, bir dosyada iki farklı yazı tipi kullanan metinleriniz olabiliyorsa, bu bir düz metin düzenleyici değildir.

## Script'i oluşturma

İlk script'imiz için çok karmaşık bir şey yapmayacağız. Konsola nasıl mesaj yazdıracağımızı öğreneceğiz.

[print](https://gmod.tr/wiki/Global.print) fonksiyonu tam olarak bunu yapar. Aşağıdaki kodu seçtiğiniz düzenleyiciye yazın:

```lua
print( "Hello World!" )
```

İşte bu kadar! Kolay değil miydi? Öyle olmalı.

### Açıklama

`print` bir fonksiyondur. Fonksiyon, onu çağırdığınızda bir şey yapan bir komuttur. Birçok fonksiyon, tam olarak ne yapacağını değiştirmek için fonksiyona verdiğiniz veri olan argümanlar alabilir. Bu durumda, `print()` yalnızca bir argüman alır, bu bir string'dir (bir dizi harf, sayı, boşluk vb.) ve `print()` çağrıldığında, bu string'i Garry's Mod'daki konsola yazar.

## Script'i kaydetme

Artık asıl Lua dosyasını kaydetmeye hazırsınız. Lua klasörünüzü bulmak için aşağıdaki yolu izleyin - Garry's Mod'u bilgisayarınızda nereye kurduğunuza bağlı olarak bu yol farklı olabilir, ancak şuna benzer görünecektir:

```lua
C:\Program Files\Steam\steamapps\common\GarrysMod\garrysmod\lua\
^^^^^^^^^^^^^^^^^^^^^^
Bu farklı olabilir!
```

Dosya adı kutusuna `helloworld.lua` yazın (`.lua` uzantısını belirtmeniz gerektiğini unutmayın) ve Kayıt türü kutusunda Tüm Dosyalar'ı seçin. Şimdi, script'inizi kaydetmek için enter'a basın (veya kaydet düğmesine basın).

> **UYARI:** **Dosya Gezgini'nde "Dosya adı uzantıları" kutusunu işaretleyin**
>
> Dosya Gezgini'nde "Dosya adı uzantıları" onay kutusunun işaretli olduğundan emin olun. Bu işaretli değilse, metin düzenleyiciniz yanlışlıkla `.lua` dosyanızı `.lua.txt` olarak kaydedebilir. Bu kutunun işaretli olduğundan emin olmak için bir Dosya Gezgini penceresi açın, üstteki `Görünüm` sekmesine tıklayın ve kutuyu işaretleyin (üstteki "Göster/gizle" kategorisinin içindedir).

## Script'i çalıştırma

Script'lerinizden herhangi birini çalıştırmak için bir haritada oynamanız gerekir. Oyuna girdikten sonra, geliştirici konsolunu açın ve aşağıdakini yazın:

```lua
lua_openscript helloworld.lua
```

Enter'a basın. Bu noktaya kadar her şeyi doğru yaptıysanız, konsolda bir mesaj görmelisiniz:

```lua
Hello World!
```

Tebrikler, ilk Lua script'inizi yazdınız ve çalıştırdınız.

## Script'i otomatik çalıştırma

Script'inizin sunucu başladığında otomatik olarak çalışmasını sağlamak için, onu bu klasörlerden birine koymanız yeterlidir. Tekrar belirtmek gerekirse, Garry's Mod'u başka bir yere kurduysanız, onun yerine oraya gidin.

- Paylaşılan script'ler için ( İstemci veya sunucuda yüklenir )

```lua
C:\Program Files\Steam\steamapps\common\GarrysMod\garrysmod\lua\autorun
```

- Yalnızca istemci script'leri için ( Yalnızca istemcide yüklenir )

```lua
C:\Program Files\Steam\steamapps\common\GarrysMod\garrysmod\lua\autorun\client
```

- Yalnızca sunucu script'leri için ( Yalnızca sunucuda yüklenir )

```lua
C:\Program Files\Steam\steamapps\common\GarrysMod\garrysmod\lua\autorun\server
```

Bu özel eğitim için, bu yollardan herhangi biri sorunsuz çalışacaktır.

> **NOT:** Tüm istemci ve paylaşılan dosyaların çok oyunculu modda çalışması için [AddCSLuaFile](https://gmod.tr/wiki/Global.AddCSLuaFile) kullanılarak indirmeye sunulması gerekir.

## Bir script'in bölümlerini istemcide veya sunucuda yükleme

İstemci tarafı ve sunucu tarafı kod için tek bir dosya kullanmak istiyor, ancak kodun istemci ve sunucu arasında ayrı bölümlerini istiyorsanız, şöyle bir şey yapabiliriz:

- Kodu yalnızca istemcide çalıştırmak için

```lua
if CLIENT then
   --İstemci tarafı kodunuz buraya
end
```

- Kodu yalnızca sunucuda çalıştırmak için

```lua
if SERVER then
   --Sunucu tarafı kodunuz buraya
end
```

- Paylaşılan (İstemci **veya** Sunucu) olarak yüklemek için, özellikle `CLIENT` veya `SERVER` kontrolü yapmayın, sadece kodunuzu `if` bloğu olmadan yazın.

Örnek:

```lua
print( "Hello Shared!" )

if SERVER then
	print( "Hello Server!" )
end

if CLIENT then
	print( "Hello Client!" )
end
```

Yukarıda gördüğünüz `CLIENT` ve `SERVER` değişkenleri [Durumlar](https://gmod.tr/wiki/States) sayfasında açıklanmıştır.

## Sırada ne var?

Sırada [değişkenler](https://gmod.tr/wiki/Beginner_Tutorial_Variables) hakkında bilgi edineceğiz.

İstemci tarafı, Sunucu tarafı ve Paylaşılan burada açıklanmıştır: [Durumlar](https://gmod.tr/wiki/States)

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/Beginner_Tutorial_Intro
