Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - soru hatası
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

soru hatası

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
kayra.55 Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 17 Kasım 2025
Durum: Aktif Değil
Puanlar: 11
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kayra.55 Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: soru hatası
    Gönderim Zamanı: 7 Saat 39 Dakika Önce Saat 09:25
var
  MainForm: TclForm;
  UstPanel, TerminalPanel, AltPanel: TClProPanel;
  
  // GÖRSEL ENVANTER
  PnlEnvanter: TClProPanel;
  ImgInvTufek, ImgInvRadyo, ImgInvIlac: TClProImage;
  

  // AKSİYON GÖRSELİ
  PnlAction: TClProPanel;
  ImgAction: TClProImage;
  LblAction: TClProLabel;
  ActionTimer: TClTimer;
  BekleyenIslem: String; 
  
  // ALARM PANELİ
  PnlAlarm: TClProPanel;
  LblAlarm: TClProLabel;
  AlarmTimer: TClTimer;
  AlarmSayac: Integer;
  
  // GECE MODU
  PnlGece: TClProPanel;
  LblGeceMesaj: TClProLabel;
  GeceTimer: TClTimer;
  GunlukKararSayisi: Integer;
  
  // OYUN SONU
  PnlOyunSonu: TClProPanel;
  LblSonuBaslik, LblSonuDetay, LblSkor: TClProLabel;
  BtnRestart: TClProButton;
  
  // İstatistik Barları
  OksijenBarDis, ErzakBarDis, MoralBarDis: TClProPanel;
  OksijenBar, ErzakBar, MoralBar: TClProPanel;
  OksijenLbl, ErzakLbl, MoralLbl: TClProLabel;
  
  // Değerler
  OksijenDeger, ErzakDeger, MoralDeger, NufusDeger: Integer;
  GunSayisi: Integer;
  GunLabel, NufusLabel: TClProLabel;
  
  HastalikRiskiVar: Boolean;
  
  // Olay Ekranı
  OlayBaslikLbl, OlayDetayLbl: TClProLabel;
  BtnKabul, BtnRed: TClProButton;
  
  // Veri Dizileri
  OlayBasliklari, OlayAciklamalari: TclArrayString;
  OksijenEtkisiEvet, ErzakEtkisiEvet, MoralEtkisiEvet, NufusEtkisiEvet: TclArrayInteger;
  OksijenEtkisiHayir, ErzakEtkisiHayir, MoralEtkisiHayir, NufusEtkisiHayir: TclArrayInteger;
  
  MevcutSoruIndex: Integer;
  
  // RESPONSIVE DEĞİŞKENLERİ
  EkranYukseklik, EkranGenislik: Integer;
  BarYukseklik: Integer;
  
  // Eşya Durumları
  SahipTufek, SahipRadyo, SahipIlac: Boolean;
  Baslik : String;
  Img :TClProImage;

void AssetleriYukle;

{



  MainForm.AddAssetFromUrl('https://raw.githubusercontent.com/kayra12oztruk-byte/oyun-/main/radyo.png'); // radyo maske 

  


void AlarmCalistir(Mesaj: String);
{
  PnlAlarm.Visible = True;
  PnlAlarm.BringToFront;
  LblAlarm.Text = Mesaj;
  AlarmSayac = 0;
  AlarmTimer.Enabled = True;
}

void ActionGoster(Mesaj: String);
{
  PnlAction.Visible = True;
  PnlAction.BringToFront;
  LblAction.Text = Mesaj;
}

void EnvanterGuncelle;
{
  if (SahipTufek) ImgInvTufek.Opacity = 1; else ImgInvTufek.Opacity = 0.3;
  if (SahipRadyo) ImgInvRadyo.Opacity = 1; else ImgInvRadyo.Opacity = 0.3;
  if (SahipIlac) ImgInvIlac.Opacity = 1; else ImgInvIlac.Opacity = 0.3;
}

void BarlariGuncelle;
{
  // Sınır Kontrolleri
  if (OksijenDeger > 100) OksijenDeger = 100; if (OksijenDeger < 0) OksijenDeger = 0;
  if (ErzakDeger > 100) ErzakDeger = 100; if (ErzakDeger < 0) ErzakDeger = 0;
  if (MoralDeger > 100) MoralDeger = 100; if (MoralDeger < 0) MoralDeger = 0;
  if (NufusDeger < 0) NufusDeger = 0;

  // Bar Genişlikleri
  OksijenBar.Width = (OksijenDeger * OksijenBarDis.Width) div 100;
  ErzakBar.Width = (ErzakDeger * ErzakBarDis.Width) div 100;
  MoralBar.Width = (MoralDeger * MoralBarDis.Width) div 100;
  
  // Etiketler
  OksijenLbl.Text = 'Oksijen: %' + IntToStr(OksijenDeger);
  ErzakLbl.Text = 'ERZAK: %' + IntToStr(ErzakDeger);
  MoralLbl.Text = 'MORAL: %' + IntToStr(MoralDeger);
  GunLabel.Text = 'GÜN: ' + IntToStr(GunSayisi);
  NufusLabel.Text = 'NÜFUS: ' + IntToStr(NufusDeger);
  
  // Renk Değişimi (Kritik Seviye)
  if (OksijenDeger < 30) OksijenBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D32F2F'); else OksijenBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0288D1'); OksijenBar.SetclProSettings(OksijenBar.clProSettings);
  if (ErzakDeger < 30) ErzakBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D32F2F'); else ErzakBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F57C00'); ErzakBar.SetclProSettings(ErzakBar.clProSettings);
  if (MoralDeger < 30) MoralBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D32F2F'); else MoralBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#388E3C'); MoralBar.SetclProSettings(MoralBar.clProSettings);
  
  EnvanterGuncelle;
}

void OyunBitti(Baslik, Detay: String; RenkKodu: String);
{
  PnlOyunSonu.Visible = True; PnlOyunSonu.BringToFront;
  PnlOyunSonu.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(RenkKodu);
  PnlOyunSonu.SetclProSettings(PnlOyunSonu.clProSettings);
  LblSonuBaslik.Text = Baslik;
  LblSonuDetay.Text = Detay;
  LblSkor.Text = 'HAYATTA KALINAN SÜRE: ' + IntToStr(GunSayisi) + ' GÜN';
}

void DurumKontrol;
{
  if (OksijenDeger <= 0) { OyunBitti('BOĞULARAK ÖLDÜNÜZ', 'Oksijen sistemi iflas etti.', '#263238'); Exit; }
  if (ErzakDeger <= 0) { OyunBitti('AÇLIKTAN ÖLDÜNÜZ', 'Stoklar tükendi.', '#3E2723'); Exit; }
  if (MoralDeger <= 0) { OyunBitti('İSYAN ÇIKTI', 'Yönetim ele geçirildi.', '#B71C1C'); Exit; }
  if (NufusDeger <= 0) { OyunBitti('HERKES ÖLDÜ', 'Sığınak sessizliğe gömüldü.', '#000000'); Exit; }

  GunlukKararSayisi = GunlukKararSayisi + 1;
  if (GunlukKararSayisi >= 5) 
  {
      PnlGece.Visible = True; PnlGece.BringToFront;
      LblGeceMesaj.Text = 'GÜN ' + IntToStr(GunSayisi) + ' SONA ERİYOR..';
      GeceTimer.Enabled = True;
  } 
  else 
  {
      // YENİ OLAY GETİR
      if (HastalikRiskiVar == True)
      {
        if (clMath.GenerateRandom(1, 100) < 30)
        {
          MevcutSoruIndex = 999;
          OlayBaslikLbl.Text = '⚠️ SALGIN UYARISI ⚠️';
          OlayDetayLbl.Text = 'Virüs yayılıyor! İlaç kullanıp karantina uygulayalım mı?';
          AlarmCalistir('BİYOLOJİK TEHLİKE!');
          BtnKabul.Text = 'İLAÇ KULLAN';
          BtnRed.Text = 'KADERİNE BIRAK';
          HastalikRiskiVar = False;
          BarlariGuncelle;
          Exit;
        }
      }

      MevcutSoruIndex = clMath.GenerateRandom(0, OlayBasliklari.Count);
      Baslik = OlayBasliklari.GetItem(MevcutSoruIndex);
      
      if (Baslik == 'GİZEMLİ SİNYAL')
      {
         if (GunSayisi < 12)
         {
            while (Baslik == 'GİZEMLİ SİNYAL')
            {
               MevcutSoruIndex = clMath.GenerateRandom(0, OlayBasliklari.Count);
               Baslik = OlayBasliklari.GetItem(MevcutSoruIndex);
            }
         }
      }

      OlayBaslikLbl.Text = Baslik;
      OlayDetayLbl.Text = OlayAciklamalari.GetItem(MevcutSoruIndex);
      
      // Buton Metinleri
      if (Baslik == 'HAYDUT SALDIRISI') { BtnKabul.Text = 'SAVAŞ (TÜFEK)'; BtnRed.Text = 'SAKLAN'; AlarmCalistir('SALDIRI ALTINDAYIZ!'); }
      else if (Baslik == 'TERK EDİLMİŞ POLİS ARACI') { BtnKabul.Text = 'ARAŞTIR'; BtnRed.Text = 'GİTME'; }
      else if (Baslik == 'ESKİ OKUL') { BtnKabul.Text = 'KEŞİFÇİ YOLLA'; BtnRed.Text = 'GİTME'; }
      else if (Baslik == 'ESKİ HASTANE') { BtnKabul.Text = 'KEŞİFÇİ YOLLA'; BtnRed.Text = 'RİSKLİ'; }
      else if (Baslik == 'GEZGİN TÜCCAR') { BtnKabul.Text = 'TAKAS (30 ERZAK)'; BtnRed.Text = 'REDDET'; }
      else if (Baslik == 'GİZEMLİ SİNYAL') { BtnKabul.Text = 'CEVAPLA (RADYO)'; BtnRed.Text = 'GÖRMEZDEN GEL'; }
      else if (Baslik == 'YARALI YABANCI') { BtnKabul.Text = 'İÇERİ AL'; BtnRed.Text = 'KOV'; }
      else { BtnKabul.Text = 'KABUL ET'; BtnRed.Text = 'REDDET'; }
      
      BarlariGuncelle;
  }
}

// Timer İşlemleri
void OnActionTimer;
{
  ActionTimer.Enabled = False;
  PnlAction.Visible = False;
  
  if (BekleyenIslem == 'HASTANE_SONUC')
  {
      if (clMath.GenerateRandom(0, 100) > 40) { 
        SahipIlac = True;
        ShowMessage('Keşif başarılı! İLAÇ bulduk.');
        EnvanterGuncelle;
      } else {
        ShowMessage('Keşifçi eli boş döndü ve yaralandı.');
        OksijenDeger = OksijenDeger - 10;
        MoralDeger = MoralDeger - 10;
      }
      BarlariGuncelle;
      DurumKontrol;
  }
  
  if (BekleyenIslem == 'POLIS_SONUC')
  {
       SahipTufek = True;
       ShowMessage('Risk aldık ama değdi! BİR TÜFEK BULDUK!');
       OksijenDeger = OksijenDeger - 10;
       EnvanterGuncelle;
       
       BarlariGuncelle;
       DurumKontrol;
  }
  
  BekleyenIslem = '';



  if (BekleyenIslem == 'OKUL_SONUC')
  {
      if (clMath.GenerateRandom(0, 100) > 40) { 
        SahipIlac = True;
        ShowMessage('Keşifçi başarılı oldu ilaç bulmayı başardık.');
        EnvanterGuncelle;
      } else {
        ShowMessage('Keşifçi eli boş döndü ve yaralandı.');
        OksijenDeger = OksijenDeger - 10;
        MoralDeger = MoralDeger - 10;
      }
      BarlariGuncelle;
      DurumKontrol;
  }
  
  
  BekleyenIslem = '';
}

void OnAlarmTimer;
{
  AlarmSayac = AlarmSayac + 1;
  if (PnlAlarm.Visible) PnlAlarm.Visible = False; else PnlAlarm.Visible = True;
  if (AlarmSayac > 6) { AlarmTimer.Enabled = False; PnlAlarm.Visible = False; }
}

void OyunuSifirla;
{
  OksijenDeger = 80; ErzakDeger = 100; MoralDeger = 80; NufusDeger = 5;
  GunSayisi = 1; GunlukKararSayisi = 0;
  HastalikRiskiVar = False;
  PnlOyunSonu.Visible = False; PnlGece.Visible = False; PnlAlarm.Visible = False; PnlAction.Visible = False;
  SahipTufek = False; SahipRadyo = False; SahipIlac = False;
  EnvanterGuncelle;
  DurumKontrol;
}

void OnGeceTimer;
{
  GeceTimer.Enabled = False;
  ErzakDeger = ErzakDeger - (NufusDeger * 1);
  OksijenDeger = OksijenDeger - (NufusDeger * 1);
  GunSayisi = GunSayisi + 1;
  GunlukKararSayisi = 0;
  PnlGece.Visible = False;
  BarlariGuncelle;
  DurumKontrol; 
}

void KararVer(EvetSecildi: Boolean);
var
  Olay: String;
{
  if (MevcutSoruIndex == 999) { // Salgın
    if (EvetSecildi) {
      if (SahipIlac) { ShowMessage('İlaç stoğumuz sayesinde salgını atlatmayı Başardık !'); SahipIlac = False; EnvanterGuncelle; } 
      else { ShowMessage('İlacımız yoktu! Erzaklar ziyan oldu.'); ErzakDeger = ErzakDeger - 40; }
    } else {
      NufusDeger = NufusDeger - 2; MoralDeger = MoralDeger - 30; ShowMessage('Müdahale edilmediği için 2 kişi öldü.');
    }
    BarlariGuncelle; DurumKontrol; Exit;
  }

  Olay = OlayBasliklari.GetItem(MevcutSoruIndex);

  if (Olay == 'YARALI YABANCI') { if (EvetSecildi) HastalikRiskiVar = True; }
  
  if (Olay == 'TERK EDİLMİŞ POLİS ARACI') {
    if (EvetSecildi) {
       ActionGoster('BÖLGE ARAŞTIRILIYOR...'); 
       BekleyenIslem = 'POLIS_SONUC';
       ActionTimer.Enabled = True;
       Exit; 
    }
  }

  if (Olay == 'ESKİ HASTANE') {
    if (EvetSecildi) {
      ActionGoster('KEŞİFÇİ GİDİYOR...'); 
      BekleyenIslem = 'HASTANE_SONUC';
      ActionTimer.Enabled = True; 
      Exit; 
    }
  }


  if (Olay == 'ESKİ OKUL') {
    if (EvetSecildi) {
      ActionGoster('KEŞİFÇİ GİDİYOR...'); 
      BekleyenIslem = 'OKUL_SONUC';
      ActionTimer.Enabled = True; 
      Exit; 
    }
  }


  if (Olay == 'HAYDUT SALDIRISI') {
    if (EvetSecildi) {
       if (SahipTufek) { ShowMessage('Tüfek ateşiyle haydutları kaçırdık! Ganimet bıraktılar.'); ErzakDeger = ErzakDeger + 25; MoralDeger = MoralDeger + 10; } 
       else { ShowMessage('Silahımız yoktu! Bizi saldırıp erzakları çaldılar.'); ErzakDeger = ErzakDeger - 50; NufusDeger = NufusDeger - 1; MoralDeger = MoralDeger - 25; }
    } else { 
       ShowMessage('Saklandık. Deponun bir kısmını patlattılar.'); ErzakDeger = ErzakDeger - 20; OksijenDeger = OksijenDeger - 10;
    }
    BarlariGuncelle; DurumKontrol; Exit;
  }

  if (Olay == 'GEZGİN TÜCCAR') {
    if (EvetSecildi) {
      if (ErzakDeger >= 30) { SahipRadyo = True; ShowMessage('Tüccar ile anlaştık! Artık bir RADYOMUZ var.'); EnvanterGuncelle; } 
      else { ShowMessage('Yeterli erzak yok!'); BarlariGuncelle; DurumKontrol; Exit; }
    }
  }

  if (Olay == 'GİZEMLİ SİNYAL') {
    if (EvetSecildi) {
      if (SahipRadyo) { OyunBitti('KURTULUŞ!', 'Ordu geldi!', '#2E7D32'); Exit; } 
      else { ShowMessage('Radyo olmadan duyamayız.'); MoralDeger = MoralDeger - 10; }
    }
  }

  if (EvetSecildi) {
    OksijenDeger = OksijenDeger + OksijenEtkisiEvet.GetItem(MevcutSoruIndex);
    ErzakDeger = ErzakDeger + ErzakEtkisiEvet.GetItem(MevcutSoruIndex);
    MoralDeger = MoralDeger + MoralEtkisiEvet.GetItem(MevcutSoruIndex);
    NufusDeger = NufusDeger + NufusEtkisiEvet.GetItem(MevcutSoruIndex);
  } else {
    OksijenDeger = OksijenDeger + OksijenEtkisiHayir.GetItem(MevcutSoruIndex);
    ErzakDeger = ErzakDeger + ErzakEtkisiHayir.GetItem(MevcutSoruIndex);
    MoralDeger = MoralDeger + MoralEtkisiHayir.GetItem(MevcutSoruIndex);
    NufusDeger = NufusDeger + NufusEtkisiHayir.GetItem(MevcutSoruIndex);
  }
  
  BarlariGuncelle;
  DurumKontrol;
}

void BtnKabulClick; { KararVer(True); }
void BtnRedClick; { KararVer(False); }

void VerileriYukle;
{
  OlayBasliklari = TclArrayString.Create; OlayAciklamalari = TclArrayString.Create;
  OksijenEtkisiEvet = TclArrayInteger.Create; ErzakEtkisiEvet = TclArrayInteger.Create; MoralEtkisiEvet = TclArrayInteger.Create; NufusEtkisiEvet = TclArrayInteger.Create;
  OksijenEtkisiHayir = TclArrayInteger.Create; ErzakEtkisiHayir = TclArrayInteger.Create; MoralEtkisiHayir = TclArrayInteger.Create; NufusEtkisiHayir = TclArrayInteger.Create;

  OlayBasliklari.Add('YARALI YABANCI'); OlayAciklamalari.Add('Kapıda biri var. Öksürüyor ama yardıma ihtiyacı var yardım etsek mi?.');
  OksijenEtkisiEvet.Add(-2); ErzakEtkisiEvet.Add(-10); MoralEtkisiEvet.Add(5); NufusEtkisiEvet.Add(1);
  OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(-5); NufusEtkisiHayir.Add(0);

  OlayBasliklari.Add('HAVALANDIRMA'); OlayAciklamalari.Add('Fanlar bozuldu. Tamir etmek yorucu.');
  OksijenEtkisiEvet.Add(15); ErzakEtkisiEvet.Add(-15); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0);
  OksijenEtkisiHayir.Add(-25); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(-10); NufusEtkisiHayir.Add(0);

  OlayBasliklari.Add('SAKLI ERZAK'); OlayAciklamalari.Add('Eski bir kutuda konserve bulduk.');
  OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(20); MoralEtkisiEvet.Add(5); NufusEtkisiEvet.Add(0);
  OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(-5); MoralEtkisiHayir.Add(-5); NufusEtkisiHayir.Add(0);

  OlayBasliklari.Add('HAYDUT SALDIRISI'); OlayAciklamalari.Add('Silahlı grup kapıda Tehlikedeyiz!');
  OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(0); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0);
  OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(0); NufusEtkisiHayir.Add(0);

  OlayBasliklari.Add('TERK EDİLMİŞ POLİS ARACI'); OlayAciklamalari.Add('Dışarıda polis aracı var. Silah olabilir.');
  OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(0); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0); 
  OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(0); NufusEtkisiHayir.Add(0);

  OlayBasliklari.Add('GEZGİN TÜCCAR'); OlayAciklamalari.Add('Tüccar geldi. 30 Erzak = Radyo.');
  OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(-30); MoralEtkisiEvet.Add(10); NufusEtkisiEvet.Add(0);
  OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(0); NufusEtkisiHayir.Add(0);

  OlayBasliklari.Add('ESKİ HASTANE'); OlayAciklamalari.Add('Yıkık hastanede ilaç olabilir.');
  OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(0); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0);
  OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(0); NufusEtkisiHayir.Add(0);

  OlayBasliklari.Add('GİZEMLİ SİNYAL'); OlayAciklamalari.Add('Radyodan ses geliyor.');
  OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(0); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0);
  OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(-5); NufusEtkisiHayir.Add(0);

  OlayBasliklari.Add('ESKİ OKUL'); OlayAciklamalari.Add('Dışarıda eski bir okul var işimize yarayacak ekipmanlar bulabiliriz.');
  OksijenEtkisiEvet.Add(0); ErzakEtkisiEvet.Add(0); MoralEtkisiEvet.Add(0); NufusEtkisiEvet.Add(0); 
  OksijenEtkisiHayir.Add(0); ErzakEtkisiHayir.Add(0); MoralEtkisiHayir.Add(0); NufusEtkisiHayir.Add(0);
}


{
  MainForm = TclForm.Create(Self);
  MainForm.clSetCaption('Sığınak Yöneticisi: Dark Edition');
  // 1. ANA TASARIM: Koyu Füme/Siyah Arka Plan
  
  
  EkranYukseklik = MainForm.clHeight; EkranGenislik = MainForm.clWidth; BarYukseklik = (EkranYukseklik * 3) div 100;
  AssetleriYukle; VerileriYukle;

  // ÜST PANEL (Daha koyu, bordersız)
  UstPanel = MainForm.AddNewProPanel(MainForm, 'UstPanel'); UstPanel.Align = alTop; UstPanel.Height = (EkranYukseklik * 30) div 100; 
  UstPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#ADD8E6'); UstPanel.SetclProSettings(UstPanel.clProSettings);
  
  // Gün ve Nüfus (Vurgulu Renkler)
  GunLabel = MainForm.AddNewProLabel(UstPanel, 'GunLabel', 'GÜN: 1'); GunLabel.Align = alTop; GunLabel.Height = (UstPanel.Height * 15) div 100; GunLabel.Margins.Top = 5; 
  GunLabel.clProSettings.FontSize = 24; GunLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFC107'); // Amber
  GunLabel.clProSettings.FontHorzAlign = palCenter; GunLabel.clProSettings.TextSettings.Font.Style = [fsBold]; GunLabel.SetclProSettings(GunLabel.clProSettings);
  
  NufusLabel = MainForm.AddNewProLabel(UstPanel, 'NufusLabel', 'NÜFUS: 5'); NufusLabel.Align = alTop; NufusLabel.Height = (UstPanel.Height * 12) div 100; 
  NufusLabel.clProSettings.FontSize = 16; NufusLabel.clProSettings.FontColor = clAlphaColor.clHexToColor('#E0E0E0'); 
  NufusLabel.clProSettings.FontHorzAlign = palCenter; NufusLabel.SetclProSettings(NufusLabel.clProSettings);

  // BARLAR (Dish rengi koyultuldu)
  OksijenBarDis = MainForm.AddNewProPanel(UstPanel, 'OksijenBarDis'); OksijenBarDis.Align = alTop; OksijenBarDis.Height = BarYukseklik; OksijenBarDis.Margins.Top = 5; OksijenBarDis.Margins.Left = 10; OksijenBarDis.Margins.Right = 10; 
  OksijenBarDis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C2C2C'); OksijenBarDis.clProSettings.IsRound = True; OksijenBarDis.SetclProSettings(OksijenBarDis.clProSettings);
  OksijenBar = MainForm.AddNewProPanel(OksijenBarDis, 'OksijenBar'); OksijenBar.Align = alLeft; OksijenBar.Width = 100; OksijenBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0288D1'); OksijenBar.clProSettings.IsRound = True; OksijenBar.SetclProSettings(OksijenBar.clProSettings);
  OksijenLbl = MainForm.AddNewProLabel(UstPanel, 'OksijenLbl', 'Oksijen'); OksijenLbl.Align = alTop; OksijenLbl.Height = 15; OksijenLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#B0BEC5'); OksijenLbl.clProSettings.FontSize = 11; OksijenLbl.SetclProSettings(OksijenLbl.clProSettings);

  ErzakBarDis = MainForm.AddNewProPanel(UstPanel, 'ErzakBarDis'); ErzakBarDis.Align = alTop; ErzakBarDis.Height = BarYukseklik; ErzakBarDis.Margins.Top = 2; ErzakBarDis.Margins.Left = 10; ErzakBarDis.Margins.Right = 10; 
  ErzakBarDis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C2C2C'); ErzakBarDis.clProSettings.IsRound = True; ErzakBarDis.SetclProSettings(ErzakBarDis.clProSettings);
  ErzakBar = MainForm.AddNewProPanel(ErzakBarDis, 'ErzakBar'); ErzakBar.Align = alLeft; ErzakBar.Width = 100; ErzakBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#F57C00'); ErzakBar.clProSettings.IsRound = True; ErzakBar.SetclProSettings(ErzakBar.clProSettings);
  ErzakLbl = MainForm.AddNewProLabel(UstPanel, 'ErzakLbl', 'Erzak'); ErzakLbl.Align = alTop; ErzakLbl.Height = 15; ErzakLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#B0BEC5'); ErzakLbl.clProSettings.FontSize = 11; ErzakLbl.SetclProSettings(ErzakLbl.clProSettings);
  
  MoralBarDis = MainForm.AddNewProPanel(UstPanel, 'MoralBarDis'); MoralBarDis.Align = alTop; MoralBarDis.Height = BarYukseklik; MoralBarDis.Margins.Top = 2; MoralBarDis.Margins.Left = 10; MoralBarDis.Margins.Right = 10; 
  MoralBarDis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C2C2C'); MoralBarDis.clProSettings.IsRound = True; MoralBarDis.SetclProSettings(MoralBarDis.clProSettings);
  MoralBar = MainForm.AddNewProPanel(MoralBarDis, 'MoralBar'); MoralBar.Align = alLeft; MoralBar.Width = 100; MoralBar.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#388E3C'); MoralBar.clProSettings.IsRound = True; MoralBar.SetclProSettings(MoralBar.clProSettings);
  MoralLbl = MainForm.AddNewProLabel(UstPanel, 'MoralLbl', 'Moral'); MoralLbl.Align = alTop; MoralLbl.Height = 15; MoralLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#B0BEC5'); MoralLbl.clProSettings.FontSize = 11; MoralLbl.SetclProSettings(MoralLbl.clProSettings);

  // ALT PANEL (Butonlar)
  AltPanel = MainForm.AddNewProPanel(MainForm, 'AltPanel'); AltPanel.Align = alBottom; AltPanel.Height = (EkranYukseklik * 15) div 100; 
  AltPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#121212'); AltPanel.SetclProSettings(AltPanel.clProSettings);
  
  BtnRed = MainForm.AddNewProButton(AltPanel, 'BtnRed', 'REDDET'); BtnRed.Align = alLeft; BtnRed.Width = (EkranGenislik * 45) div 100; BtnRed.Margins.Top = 10; BtnRed.Margins.Bottom = 10; BtnRed.Margins.Left = 10; 
  BtnRed.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#C62828'); // Koyu Kırmızı
  BtnRed.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnRed.clProSettings.IsRound = True; BtnRed.clProSettings.RoundWidth = 5; // Daha keskin köşe
  BtnRed.SetclProSettings(BtnRed.clProSettings); MainForm.AddNewEvent(BtnRed, tbeOnClick, 'BtnRedClick');
  
  BtnKabul = MainForm.AddNewProButton(AltPanel, 'BtnKabul', 'KABUL ET'); BtnKabul.Align = alRight; BtnKabul.Width = (EkranGenislik * 45) div 100; BtnKabul.Margins.Top = 10; BtnKabul.Margins.Bottom = 10; BtnKabul.Margins.Right = 10; 
  BtnKabul.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E7D32'); // Koyu Yeşil
  BtnKabul.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnKabul.clProSettings.IsRound = True; BtnKabul.clProSettings.RoundWidth = 5;
  BtnKabul.SetclProSettings(BtnKabul.clProSettings); MainForm.AddNewEvent(BtnKabul, tbeOnClick, 'BtnKabulClick');

  // ENVANTER (HUD Tasarımı)
  PnlEnvanter = MainForm.AddNewProPanel(MainForm, 'PnlEnvanter'); PnlEnvanter.Align = alBottom; PnlEnvanter.Height = (EkranYukseklik * 8) div 100; 
  PnlEnvanter.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#263238'); // Slate
  PnlEnvanter.clProSettings.BorderColor = clAlphaColor.clHexToColor('#37474F'); PnlEnvanter.clProSettings.BorderWidth = 1; PnlEnvanter.SetclProSettings(PnlEnvanter.clProSettings);
  
  ImgInvTufek = MainForm.AddNewProImage(PnlEnvanter, 'ImgInvTufek'); ImgInvTufek.Align = alLeft; ImgInvTufek.Width = (PnlEnvanter.Width * 33) div 100; ImgInvTufek.Margins.top = 5; 
  ImgInvTufek.Margins.bottom = 5;
  ImgInvTufek.Margins.left = 5;
  ImgInvTufek.Margins.Right = 5;
  ImgInvTufek.clProSettings.PictureSource = 'tufek.png'; ImgInvTufek.clProSettings.PictureAutoFit = True; ImgInvTufek.SetclProSettings(ImgInvTufek.clProSettings);
  ImgInvRadyo = MainForm.AddNewProImage(PnlEnvanter, 'ImgInvRadyo'); ImgInvRadyo.Align = alLeft; ImgInvRadyo.Width = (PnlEnvanter.Width * 33) div 100; ImgInvRadyo.Margins.top = 5; 
  ImgInvRadyo.Margins.bottom = 5;
  ImgInvRadyo.Margins.left = 5;
  ImgInvRadyo.Margins.Right = 5;
  ImgInvRadyo.clProSettings.PictureSource = 'radyo.png'; ImgInvRadyo.clProSettings.PictureAutoFit = True; ImgInvRadyo.SetclProSettings(ImgInvRadyo.clProSettings);
  ImgInvIlac = MainForm.AddNewProImage(PnlEnvanter, 'ImgInvIlac'); ImgInvIlac.Align = alLeft; ImgInvIlac.Width = (PnlEnvanter.Width * 33) div 100; ImgInvIlac.Margins.top = 5;
  ImgInvIlac.Margins.left = 5;
  ImgInvIlac.Margins.Right = 5;
  ImgInvIlac.Margins.bottom = 5;
  ImgInvIlac.clProSettings.PictureSource = 'ilac.png'; ImgInvIlac.clProSettings.PictureAutoFit = True; ImgInvIlac.SetclProSettings(ImgInvIlac.clProSettings);
  
  
  
  
  // TERMINAL PANELİ (Cyber-Monitor Havası)
  TerminalPanel = MainForm.AddNewProPanel(MainForm, 'TerminalPanel'); TerminalPanel.Align = alClient; TerminalPanel.Margins.Top = 10; TerminalPanel.Margins.Bottom = 10; TerminalPanel.Margins.Left = 10; TerminalPanel.Margins.Right = 10; 
  TerminalPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#000000'); // Tam Siyah
  TerminalPanel.clProSettings.BorderColor = clAlphaColor.clHexToColor('#4CAF50'); // Neon Yeşil Çerçeve
  TerminalPanel.clProSettings.BorderWidth = 2; TerminalPanel.clProSettings.IsRound = True; TerminalPanel.clProSettings.RoundWidth = 5;
  TerminalPanel.SetclProSettings(TerminalPanel.clProSettings);
   
   
   Img = MainForm.AddNewImage(TerminalPanel,'Img');
   Img.Align=alContents;
   
   
  OlayBaslikLbl = MainForm.AddNewProLabel(TerminalPanel, 'OlayBaslikLbl', 'SİSTEM BAŞLATILIYOR...'); OlayBaslikLbl.Align = alTop; OlayBaslikLbl.Height = (EkranYukseklik * 10) div 100; 
  OlayBaslikLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#4CAF50'); // Yeşil Başlık
  OlayBaslikLbl.clProSettings.FontSize = 22; OlayBaslikLbl.clProSettings.FontHorzAlign = palCenter; OlayBaslikLbl.clProSettings.TextSettings.Font.Style = [fsBold]; OlayBaslikLbl.SetclProSettings(OlayBaslikLbl.clProSettings);
  
  OlayDetayLbl = MainForm.AddNewProLabel(TerminalPanel, 'OlayDetayLbl', 'Veriler yükleniyor...'); OlayDetayLbl.Align = alClient; OlayDetayLbl.Margins.top = 15;
  OlayDetayLbl.Margins.left = 15;
  OlayDetayLbl.Margins.Right = 15;
  OlayDetayLbl.Margins.bottom = 15;
  OlayDetayLbl.clProSettings.FontColor = clAlphaColor.clHexToColor('#A5D6A7'); // Açık Yeşil Yazı
  OlayDetayLbl.clProSettings.FontSize = 18; OlayDetayLbl.clProSettings.FontHorzAlign = palCenter; OlayDetayLbl.clProSettings.FontVertAlign = palCenter; OlayDetayLbl.clProSettings.WordWrap = True; OlayDetayLbl.SetclProSettings(OlayDetayLbl.clProSettings);

  // GİZLİ PANELLER
  PnlAlarm = MainForm.AddNewProPanel(MainForm, 'PnlAlarm'); PnlAlarm.Align = alCenter; PnlAlarm.Width = (EkranGenislik * 80) div 100; PnlAlarm.Height = (EkranYukseklik * 20) div 100; PnlAlarm.Visible = False; PnlAlarm.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#D32F2F'); PnlAlarm.clProSettings.IsRound = True; PnlAlarm.SetclProSettings(PnlAlarm.clProSettings);
  LblAlarm = MainForm.AddNewProLabel(PnlAlarm, 'LblAlarm', 'ALARM!'); LblAlarm.Align = alCenter; LblAlarm.Height = 50; LblAlarm.Width = (PnlAlarm.Width * 90) div 100; LblAlarm.clProSettings.FontSize = 24; LblAlarm.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); LblAlarm.clProSettings.FontHorzAlign = palCenter; LblAlarm.clProSettings.TextSettings.Font.Style = [fsBold]; LblAlarm.SetclProSettings(LblAlarm.clProSettings);
  
  PnlAction = MainForm.AddNewProPanel(MainForm, 'PnlAction'); PnlAction.Align = alCenter; PnlAction.Width = (EkranGenislik * 70) div 100; PnlAction.Height = (EkranYukseklik * 40) div 100; PnlAction.Visible = False; 
  PnlAction.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#263238'); // Koyu Arkaplan
  PnlAction.clProSettings.IsRound = True; PnlAction.clProSettings.BorderColor = clAlphaColor.clHexToColor('#FFFFFF'); PnlAction.clProSettings.BorderWidth = 2; PnlAction.SetclProSettings(PnlAction.clProSettings);
  ImgAction = MainForm.AddNewProImage(PnlAction, 'ImgAction'); ImgAction.Align = alClient; ImgAction.Height = (PnlAction.Height * 70) div 100; ImgAction.clProSettings.PictureSource = 'kesif.png'; ImgAction.clProSettings.PictureAutoFit = True; ImgAction.SetclProSettings(ImgAction.clProSettings);
  LblAction = MainForm.AddNewProLabel(PnlAction, 'LblAction', '...'); LblAction.Align = alClient; LblAction.clProSettings.FontSize = 18; LblAction.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF'); LblAction.clProSettings.FontHorzAlign = palCenter; LblAction.clProSettings.FontVertAlign = palCenter; LblAction.SetclProSettings(LblAction.clProSettings);

  PnlGece = MainForm.AddNewProPanel(MainForm, 'PnlGece'); PnlGece.Align = alContents; PnlGece.Visible = False; PnlGece.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#000000'); PnlGece.SetclProSettings(PnlGece.clProSettings);
  LblGeceMesaj = MainForm.AddNewProLabel(PnlGece, 'LblGeceMesaj', 'GÜN BİTTİ...'); LblGeceMesaj.Align = alCenter; LblGeceMesaj.Width = (EkranGenislik * 80) div 100; LblGeceMesaj.Height = 100; LblGeceMesaj.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); LblGeceMesaj.clProSettings.FontSize = 24; LblGeceMesaj.clProSettings.FontHorzAlign = palCenter; LblGeceMesaj.SetclProSettings(LblGeceMesaj.clProSettings);

  PnlOyunSonu = MainForm.AddNewProPanel(MainForm, 'PnlOyunSonu'); PnlOyunSonu.Align = alContents; PnlOyunSonu.Visible = False; PnlOyunSonu.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#c0392b'); PnlOyunSonu.SetclProSettings(PnlOyunSonu.clProSettings);
  LblSonuBaslik = MainForm.AddNewProLabel(PnlOyunSonu, 'LblSonuBaslik', 'OYUN BİTTİ'); LblSonuBaslik.Align = alTop; LblSonuBaslik.Height = (EkranYukseklik * 15) div 100; LblSonuBaslik.Margins.Top = 40; LblSonuBaslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); LblSonuBaslik.clProSettings.FontSize = 30; LblSonuBaslik.clProSettings.FontHorzAlign = palCenter; LblSonuBaslik.clProSettings.TextSettings.Font.Style = [fsBold]; LblSonuBaslik.SetclProSettings(LblSonuBaslik.clProSettings);
  LblSkor = MainForm.AddNewProLabel(PnlOyunSonu, 'LblSkor', 'SKOR: 0'); LblSkor.Align = alTop; LblSkor.Height = 50; LblSkor.clProSettings.FontColor = clAlphaColor.clHexToColor('#f1c40f'); LblSkor.clProSettings.FontSize = 20; LblSkor.clProSettings.FontHorzAlign = palCenter; LblSkor.SetclProSettings(LblSkor.clProSettings);
  LblSonuDetay = MainForm.AddNewProLabel(PnlOyunSonu, 'LblSonuDetay', '...'); LblSonuDetay.Align = alClient; LblSonuDetay.Margins.top = 20; LblSonuDetay.Margins.bottom = 20; LblSonuDetay.Margins.Left = 20; LblSonuDetay.Margins.Right = 20; LblSonuDetay.clProSettings.FontColor = clAlphaColor.clHexToColor('#ecf0f1'); LblSonuDetay.clProSettings.FontSize = 18; LblSonuDetay.clProSettings.FontHorzAlign = palCenter; LblSonuDetay.clProSettings.WordWrap = True; LblSonuDetay.SetclProSettings(LblSonuDetay.clProSettings);
  BtnRestart = MainForm.AddNewProButton(PnlOyunSonu, 'BtnRestart', 'YENİDEN BAŞLAT'); BtnRestart.Align = alBottom; BtnRestart.Height = (EkranYukseklik * 10) div 100; BtnRestart.Margins.Left = 50; BtnRestart.Margins.Right = 50; BtnRestart.Margins.Bottom = 50; BtnRestart.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#263238'); BtnRestart.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); BtnRestart.clProSettings.IsRound = True; BtnRestart.clProSettings.FontSize = 20; BtnRestart.SetclProSettings(BtnRestart.clProSettings); MainForm.AddNewEvent(BtnRestart, tbeOnClick, 'OyunuSifirla');
  
  // Timerlar
  AlarmTimer = MainForm.AddNewTimer(MainForm, 'AlarmTimer', 500); AlarmTimer.Enabled = False; MainForm.AddNewEvent(AlarmTimer, tbeOnTimer, 'OnAlarmTimer');
  GeceTimer = MainForm.AddNewTimer(MainForm, 'GeceTimer', 2000); GeceTimer.Enabled = False; MainForm.AddNewEvent(GeceTimer, tbeOnTimer, 'OnGeceTimer');
  ActionTimer = MainForm.AddNewTimer(MainForm, 'ActionTimer', 2000); ActionTimer.Enabled = False; MainForm.AddNewEvent(ActionTimer, tbeOnTimer, 'OnActionTimer');

  OyunuSifirla; 

  MainForm.Run;
}


https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif
Puanlar: 496
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 6 Saat 22 Dakika Önce Saat 10:42
Merhaba Kayra, 
Hatanın sebebi OnActionTimer prosedürün içinde okul_sonuc kontrolüne gelmeden bekleyenislem değişkeni sıfırlanıyor BekleyenIslem = '';
bu yüzden kod aşağı indiğinde boş değişken olduğu için bloğa girmiyor

// Timer İşlemleri
void OnActionTimer;
{
  ActionTimer.Enabled = False;
  PnlAction.Visible = False;
  
  if (BekleyenIslem == 'HASTANE_SONUC')
  {
      if (clMath.GenerateRandom(0, 100) > 40) { 
        SahipIlac = True;
        ShowMessage('Keşif başarılı! İLAÇ bulduk.');
        EnvanterGuncelle;
      } else {
        ShowMessage('Keşifçi eli boş döndü ve yaralandı.');
        OksijenDeger = OksijenDeger - 10;
        MoralDeger = MoralDeger - 10;
      }
      BarlariGuncelle;
      DurumKontrol;
  }
  
  if (BekleyenIslem == 'POLIS_SONUC')
  {
       SahipTufek = True;
       ShowMessage('Risk aldık ama değdi! BİR TÜFEK BULDUK!');
       OksijenDeger = OksijenDeger - 10;
       EnvanterGuncelle;
       
       BarlariGuncelle;
       DurumKontrol;
  }
  



if (BekleyenIslem == 'OKUL_SONUC')
  {
      if (clMath.GenerateRandom(0, 100) > 30) { // %70 Başarı şansı
        ErzakDeger = ErzakDeger + 20;
        MoralDeger = MoralDeger + 5;
        ShowMessage('Okuldan erzak ve eski kitaplar bulduk! (+20 Erzak, +5 Moral)');
      } else {
        ShowMessage('Okulda bubi tuzağı vardı! Keşifçi yaralandı.');
        OksijenDeger = OksijenDeger - 5;
        MoralDeger = MoralDeger - 15;
      }
      BarlariGuncelle;
      DurumKontrol;
  }
  
  
  BekleyenIslem = '';
}
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,031 Saniyede Yüklendi.