# تغییرات این نسخه

## ۱) سقف حمله‌ی روزانه — سه سطحی شد
- کلن عادی: **۱** حمله در روز (قبلاً ۳ بود)
- کلن پرمیوم: **۲** حمله در روز (قبلاً اصلاً وجود نداشت)
- کلن ADVIP: **۵** حمله در روز (بدون تغییر)
- اگه کلنی هم پرمیوم هم ADVIP باشه، سقف ADVIP (بالاتر) اعمال می‌شه.
- فایل‌ها: `handlers/clan.php` (ثابت‌ها + نمایش تو `/clanmy`)، `handlers/empire.php` (`empireAttackCap()`).

## ۲) چرا ADVIP کار نمی‌کرد — و فیکسش
دو تا علت محتمل پیدا کردم و هر دو رو فیکس کردم:

1. **سکوت کامل وقتی فرستنده owner نیست.** قبلاً `/grantadvip` و `/revokeadvip`
   اگه فرستنده تو `OWNER_IDS` (داخل `config/config.php`) نبود، هیچ پیامی
   برنمی‌گردوندن — دقیقاً همون چیزی که «کار نمی‌کنه» به نظر می‌رسه. الان
   پیام واضح برمی‌گرده و آیدی عددی فرستنده رو هم نشون می‌ده.
2. **اگه migration اجرا نشده باشه.** اگه ستون `advip_until` رو دیتابیس
   لایو نساخته باشید (یعنی `migrations/add_clan_advip.sql` اجرا نشده)،
   قبلاً خطا فقط لاگ می‌شد و به مالک هیچی نشون داده نمی‌شد. الان خطا catch
   می‌شه و اگه علتش ستون گمشده باشه، دستور SQL لازم مستقیم تو پیام نشون
   داده می‌شه.

**یک دستور جدید هم اضافه شد: `/myid`** — آیدی عددی تلگرام شما رو نشون
می‌ده و می‌گه که آیا الان owner شناخته می‌شید یا نه. این سریع‌ترین راه
برای تشخیص اینه که آیا `OWNER_IDS` تو `config/config.php` واقعاً همون
آیدی شماست.

👉 **قدم بعدی از طرف شما:** با `/myid` آیدیتون رو بگیرید، مطمئن بشید
دقیقاً همون عدد تو `OWNER_IDS` هست، و مطمئن بشید
`migrations/add_clan_advip.sql` رو یک‌بار روی دیتابیس لایو اجرا کردید
(یا کل `schema.sql` رو import کردید). بعدش `/grantadvip CLAN_ID` رو
دوباره امتحان کنید — اگه بازم مشکلی بود، پیام خطای جدید دقیقاً می‌گه
مشکل کجاست.

## ۳) سیستم قلعه‌ی مستقل هر کشور (فیچر جدید)
طبق درخواست — **بدون** سیستم ژنرال‌ها (که صراحتاً گفتید اضافه نشه).
موارد ۱ تا ۶ و ۹-۱۰ از لیست شما:

- هر کشور یک قلعه داره: **Level 1 تا 10**، قابل ارتقا با خزانه‌ی کلن.
- 🧱 دیوار دفاعی (۰ تا ۱۰)، 🗼 برج‌های دفاعی (۰ تا ۵)، 🚪 دروازه (۰ تا ۵)،
  🌊 خندق (۰ تا ۵) — هرکدوم جزء مستقل با هزینه‌ی ارتقای خودشون.
- 🪖 نیروی مدافع مستقر در قلعه — با سکه خریداری می‌شه، ظرفیتش به Level
  قلعه بستگی داره (جدا از ارتش حمله‌ی کلن).
- **اتصال به جنگ:** موقع شروع حمله‌ی امپراطوری، قدرت دفاعی مجموع قلعه
  (همه‌ی موارد بالا) به قدرت ارتش کلن مدافع اضافه می‌شه و شانس برد رو
  واقعاً تغییر می‌ده — یعنی قلعه‌ی قوی‌تر واقعاً محاصره رو سخت‌تر می‌کنه.
  پیام تأیید حمله هم نشون می‌ده قلعه چقدر امتیاز دفاعی اضافه کرده.
- دسترسی: `/empire` → «کشورهای من» → دکمه‌ی «🏰 قلعه‌ی [نام کشور]» زیر هر
  کشور.

فایل جدید: `handlers/empire_castle.php`
Migration جدید: `migrations/add_country_castle.sql` (باید یک‌بار روی
دیتابیس لایو اجرا بشه — `schema.sql` هم برای نصب‌های تازه آپدیت شد).
`check_db.php` هم آپدیت شد تا نبود این جدول رو تشخیص بده.

## چیزهایی که هنوز اضافه نشده (از لیست ۲۳ موردی شما)
طبق گفته‌ی خودتون، **لیست ژنرال‌ها اضافه نشد**. موارد زیر هم چون یا به
ژنرال وابسته بودن (استقرار ژنرال، XP، مجروح‌شدن، وفاداری) یا حجم مستقل
بزرگی دارن (دیپلماسی کامل، جاسوسی، اثر وزرا روی سیستم جدید، Prestige)،
تو این راند اضافه نشدن. اگه بگید کدوم‌ها الان مهم‌تره، همونا رو تو یک
راند بعدی پیاده می‌کنم.

## قبل از آپلود روی سرور
1. `migrations/add_country_castle.sql` رو یک‌بار روی دیتابیس لایو اجرا
   کنید.
2. `check_db.php` رو یک‌بار تو مرورگر باز کنید تا مطمئن بشید همه‌چیز
   سبزه (بعدش حذفش کنید، طبق توضیح خودِ فایل).
3. با `/myid` آیدیتون رو با `OWNER_IDS` تو `config/config.php` چک کنید.

---

# آپدیت دوم: سیستم ژنرال‌های تاریخی

طبق درخواست جدید (این بار بدون استثنا) اضافه شد.

## چی اضافه شد
- **۱۵ ژنرال تاریخی** (۸ ایرانی: کوروش، داریوش، خشایارشا، سورنا، اردشیر
  بابکان، شاپور اول، نادرشاه، کریم‌خان زند — و ۷ خارجی: اسکندر، سزار،
  هانیبال، چنگیزخان، آتیلا، ناپلئون، صلاح‌الدین) هرکدوم با Attack/
  Defense/Siege Bonus پایه‌ی خودشون.
- هر کلن هرکدوم رو یک‌بار با سکه از خزانه استخدام می‌کنه.
- **Level/XP:** بعد از هر جنگ (چه در حمله چه در دفاع)، ژنرال XP می‌گیره؛
  با افزایش Level (تا ۱۰)، Bonusهاش قوی‌تر می‌شن.
- **Loyalty:** با برد بالا می‌ره، با باخت پایین میاد؛ زیر ۳۰٪ باعث
  «نافرمانی» می‌شه (Bonus مؤثر نصف).
- **مجروح‌شدن:** بعد از باخت، ۳۰٪ احتمال داره ژنرال ۶ ساعت مجروح بشه و
  در این مدت هیچ Bonusی نمی‌ده.
- **استقرار در قلعه:** یک ژنرال می‌تونه مدافع قلعه‌ی یک کشور بشه (از
  پنل ژنرال‌ها یا استفاده مجدد از لیست کشورهای کلن) — تا وقتی مستقره، تو
  انتخاب خودکار «ژنرال حمله» در نظر گرفته نمی‌شه (یعنی هم‌زمان تو دو جا
  استفاده نمی‌شه، طبق درخواست).
- **اتصال به جنگ:** موقع حمله، قوی‌ترین ژنرال آزاد کلن حمله‌کننده
  خودکار انتخاب می‌شه و Attack+Siege Bonusش به قدرت حمله اضافه می‌شه؛
  ژنرال مستقر تو قلعه‌ی کشور مدافع هم Defense Bonusش اضافه می‌شه. نتیجه
  رو تو پیام تأیید حمله می‌بینید.

دسترسی: `/empire` → «🛒 شاپ امپراطوری» → دکمه‌ی «👑 ژنرال‌های تاریخی».

## فایل‌های جدید/تغییریافته
- `handlers/empire_generals.php` (فایل جدید — کل منطق ژنرال‌ها)
- `migrations/add_generals.sql` (جدول `clan_generals` + دو ستون جدید
  روی `empire_wars`) — **باید یک‌بار روی دیتابیس لایو اجرا بشه**
- `schema.sql` و `check_db.php` برای این جدول/ستون‌های جدید آپدیت شدن
- `handlers/empire.php`: دکمه‌ی شاپ + dispatcher + اتصال به
  `empireStartAttack`/`empireResolveWar`
- `webhook.php`: require فایل جدید

## قبل از آپلود
`migrations/add_generals.sql` رو هم مثل `add_country_castle.sql` یک‌بار
روی دیتابیس لایو اجرا کنید (یا کل `schema.sql` تازه رو import کنید)، بعد
`check_db.php` رو چک کنید.
