iXbir: Bilgi Paylaşım Forumu

Tam Versiyon: CS 1.6 Map Yapma: J.A.C.K. ile Harita Yapımı, Derleme ve Oyunda Test
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
CS 1.6 için harita yapmak ilk bakışta zor görünüyor ama basit bir haritayı bir akşamda bitirmek mümkün. Bu konuda J.A.C.K. editörüyle sıfırdan küçük bir harita yapmayı, haritayı derlemeyi ve oyunda açıp denemeyi anlattım. Haritanız hazır olunca sunucuya nasıl ekleneceği harita ekleme rehberinde var.

Neler gerekiyor?
  • J.A.C.K.: Half-Life tabanlı oyunlar için harita editörü. Ücretsiz sürümü CS 1.6 haritası yapmak için yeterli.
  • Derleyiciler (VHLT): hlcsg, hlbsp, hlvis ve hlrad. Editörde çizdiğiniz haritayı oyunun açabildiği .bsp dosyasına bunlar çevirir. Eski ZHLT yerine güncel VHLT sürümünü kullanın.
  • FGD dosyası: Editöre CS 1.6'daki varlıkları (doğma noktası, satın alma alanı, bomba bölgesi gibi) tanıtan dosya. Genelde halflife-cs.fgd ya da cs16.fgd adıyla gelir.
  • Doku dosyaları (.wad): Oyunun kendi dokuları cstrike/cstrike.wad ve valve/halflife.wad içinde. Derleyicilerle gelen zhlt.wad da gerekli; görünmez tetik dokusu (AAATRIGGER) ve NULL gibi özel dokular onda.

Editörü oyuna tanıtmak
J.A.C.K.'i ilk açtığınızda Tools > Options içinden bir oyun profili oluşturun. Burada dört şeyi göstermeniz yeterli:
  • Oyun klasörü ve mod klasörü (cstrike)
  • FGD dosyası
  • cstrike.wad, halflife.wad ve zhlt.wad doku dosyaları
  • Derleyicilerin yeri (hlcsg.exe, hlbsp.exe, hlvis.exe, hlrad.exe) ve .bsp dosyasının çıkacağı klasör (cstrike/maps)
Profil doğru kurulmazsa doku listesi boş gelir ya da varlık listesinde CS 1.6'ya ait hiçbir şey görünmez. Böyle bir durumda önce FGD ve .wad yollarını kontrol edin.

İlk oda
Block aracıyla 2D görünümlerden birinde bir kutu çizin ve Enter'a basın. Kutuyu seçiliyken Tools > Make Hollow (Ctrl+H) ile içini boşaltın; duvar kalınlığı olarak 16 yazmak iş görür. Artık içinde dolaşılabilecek kapalı bir odanız var.

Ölçüler için şunu bilmek yetiyor: oyuncu 72 birim boyunda ve 32 birim genişliğinde. Kapıları en az 64 birim genişliğinde, 112-128 birim yüksekliğinde yapın; koridorları dar tutarsanız oyuncular takılır.

Dokuyu değiştirmek için duvarı seçip doku tarayıcısından (Texture Browser) istediğiniz dokuyu uygulayın. Dokunun ölçeği ve kayması için doku uygulama aracı (Shift+A) kullanılır.

Doğma noktaları
  • info_player_start: CT doğma noktası
  • info_player_deathmatch: T doğma noktası
Her takım için sunucunuzdaki en yüksek oyuncu sayısının yarısı kadar doğma noktası koyun; 32 kişilik bir sunucu için takım başına 16 nokta. Noktaları duvara ve birbirine yapıştırmayın, aralarında en az 64 birim boşluk bırakın. Yeterli nokta yoksa fazladan gelen oyuncular doğamaz.

Işık ve gökyüzü
Işıksız derlenen bir harita oyunda zifiri karanlık görünür. Kapalı alanlara light varlığı koyun. Açık hava için tavana "sky" dokusunu verin ve haritaya bir tane light_environment ekleyin; güneş ışığını bu verir. Gökyüzü görüntüsü worldspawn ayarlarındaki skyname değeriyle seçilir (örneğin desert, city, space).

Oyun modu varlıkları
Haritanın türünü önündeki ek belirler, varlıklar da buna göre eklenir:
  • de_ (bomba): Bomba bölgesi için bir blok çizip func_bomb_target yapın. İki bölge için iki blok.
  • cs_ (rehine): hostage_entity ile rehineleri, func_hostage_rescue ile kurtarma alanını koyun.
  • Satın alma alanı: Her iki takımın doğduğu yere bir blok çizip func_buyzone yapın ve takımını seçin.
  • aim_, awp_, fy_, jail_ / jb_: Bunlar haritanın oynanış tarzını anlatan adlardır. JailBreak haritalarında hücre kapıları için func_door ve kapıyı açan func_button kullanılır.
Tetik bloklarına (satın alma alanı, bomba bölgesi) AAATRIGGER dokusunu verin; oyunda görünmezler.

Haritayı kapatmak: leak
Derlemenin en sık takıldığı yer burası. Haritanın içi dışarıdaki boşluğa hiçbir yerden açılmamalı. Duvarlar arasında küçük bir aralık ya da dışarıda kalmış bir varlık varsa derleyici "LEAK" uyarısı verir, hlvis ve hlrad doğru çalışmaz, harita oyunda bembeyaz ışıklı (fullbright) görünür.

Leak çıkınca Map > Load Pointfile ile derleyicinin bıraktığı çizgiyi açın. Çizgi sizi deliğin olduğu yere götürür. Bütün varlıkların da haritanın içinde kaldığını kontrol edin.

Derleme
File > Run Map (F9) penceresinde dört derleyiciyi sırayla çalıştırın:
Kod:
hlcsg   bloklari isler, dokulari baglar
hlbsp   haritayi bolumlere ayirir, .bsp olusturur
hlvis   nereden nerenin gorundugunu hesaplar (FPS icin onemli)
hlrad   isiklandirmayi hesaplar
Denerken hlvis'i hızlı modda çalıştırmak zaman kazandırır. Son sürümde hlvis için -full, hlrad için -extra parametresi daha iyi sonuç verir ama derleme uzar.

Derleme bitince .bsp dosyası cstrike/maps klasörüne gelir. Derleyicinin yazdığı .log dosyasını mutlaka okuyun; uyarılar orada.

Oyunda denemek
Oyunu açın, konsola şunu yazın:
Kod:
map harita_adi
Haritayı tek başınıza gezip doğma noktalarını, satın alma alanını ve bomba bölgelerini deneyin. Konsola developer 1 yazarsanız haritayla ilgili hatalar ekranda görünür.

Sık görülen sorunlar
  • Harita bembeyaz ışıklı görünüyor. Ya leak var ya da hlrad çalışmadı. Önce leak'i giderin.
  • Oyuncu doğunca takılıyor ya da doğamıyor. Doğma noktası bir bloğun içine girmiş ya da duvara çok yakın. Noktayı biraz yukarı ve içeri alın.
  • Başka oyuncularda dokular eksik ya da mor-siyah görünüyor. Kullandığınız .wad dosyası onlarda yok. Haritayı paylaşırken .wad dosyasını da ekleyin ya da hlcsg'ye -wadinclude ile dokuları haritanın içine gömdürün.
  • "bad surface extents" hatası. Bir yüzeyde dokunun ölçeği çok küçük. Ölçeği 1.00'a yakın bir değere getirin.
  • "MAX_MAP_..." ya da "AllocBlock: full" hatası. Harita motorun sınırını aşmış. Görünmeyen yüzlere NULL dokusu verin, gereksiz detayı azaltın, büyük yüzeylerde doku ölçeğini büyütün.

Haritanızı bitirdiğinizde sunucuya eklemek ve oyuncuların hızlı indirmesi için harita ekleme ve FastDL rehberine, sunucunuz için eklenti arıyorsanız kategorilere göre CS 1.6 eklentileri konusuna bakabilirsiniz. Yaptığınız haritayı CS 1.6 Map Paylaşım bölümünde paylaşabilirsiniz.
güzel bilgi için teşşekurler