PDA

View Full Version : سوال: ساخت یک بازی آنلاین



trasilver
جمعه 15 فروردین 1393, 02:24 صبح
سلام خدمت عزیزان.

دوستان عزیز تصمیم به ساخت یک بازی آنلاین گرفتم(اسمش رو گذاشتم مرگ بیدار :لبخند::لبخند::لبخند:)

اما متاسفانه برای موتور بازی کلا قاطی کردم! نمی دونم از کجا شروع کنم چیکار کنم و...!

همون طور که می دونید بازی آنلاین سرعت و استفاده از منابع خیلی مهم هست!

الآن به نظر دوستان دقیقا چی کار کنم؟ از فریم ورک استفاده کنم؟ کدوم خوبه؟ (yii خوبه؟ ورژن 2 یا ورژن 1؟)

برای امنیت چی کار باید کرد؟ مخصوصا حملات sql injection!

از چه دیتابیسی استفاده کنم؟ چون این اولین پرژه بزرگی هست که می خوام انجام بدم خیلی گیج هستم! :متفکر: به طور کلی این شاید سوال خیلی از دوستان باشه! ممنون میشم از اساتید بزرگ کلا یک راهنمایی بکنند!

تعداد آنلاینی هارو هم بیایم در حدود 3000-5000 در نظر بگیریم. البته من خودم به شخصه همین جوری که شروع کردم یه مقداری نوشتم. مثل ساختار دیتابیس و کلاس بندی و این جور مسایل. ولی دیدم صفحه لاگین میانگین توی 0.050274133682251 ثانیه لود میشه. (فقط واسه یک کاربر چون توی لوکال هاست هستش :لبخند:)
آیا این خوبه برای لاگین یک صفحه ورود بازی آنلاین یا افتضاح هست؟

ببخشید این همه سوال کردم اما خوب نیاز هست. چون بالاخره قرار هست چند ماه وقت خودم رو بذارم روی این اسکریپت. و خوش حال میشم دوستان راهنمییم بکنن.

فقط چیزی که اینجا خیلی مهم هست، امنیت هست! مثل چگونه کد کردن پسورد، جلوگیری از حملات و....

با تشکر.

MMSHFE
جمعه 15 فروردین 1393, 07:52 صبح
معمولاً بازیهای آنلاین رو نمیان با فریمورکها پیاده سازی کنن چون خود فریمورک نسبت به PHP خام سربار زیادی میگذاره و اگه قرار به استفاده از فریمورک هم باشه، برای بازی موردنظر یک فریمورک اختصاصی مینویسن ولی اگه بخواین از فریمورکهای موجود استفاده کنید، Yii قابلیتهای خیلی خوبی مثل انواع مختلف Cache و پشتیبانی از وب 2 داره که اون رو برای کار شما مناسب میکنه. نسخه 2 هنوز عرضه نشده و آلفا هست و این یعنی اینکه ممکنه در آینده کلاً از پایه دوباره همه چیز تغییر کنه. با نسخه 1.1.14 کار کنید. ضمناً زمان بارگذاری صفحه لاگین رو با سیستم خودتون تست نکنید! برای بازی آنلاین باید یک سرور اختصاصی قدرتمند بگیرین (با VPS اشتباه نگیرین، منظورم Dedicated Server هست) و طبیعتاً این سرورها قدرتشون چندین برابر سیستم شماست. درمورد امنیت هم Yii روشهای کارآمدی برای جلوگیری از SQL Injection و JS Injection و Session Hijacking و Session Fixation و CRSF و XSS و... بطور داخلی داره که نیاز شما رو برآورده میکنه. بحثهایی مثل الگوریتم کدگذاری رمز عبور و... هم دست خودتونه ولی بهتره از الگوریتمهای امنی مثل BlowFish یا ترکیب MD5 با تکنیکهایی مثل Salt و Pepper و مباحثی همچون Key Stretching و Multiple Hash استفاده کنید (توی تالار قبلاً درموردش زیاد صحبت شده).

trasilver
جمعه 15 فروردین 1393, 09:18 صبح
معمولاً بازیهای آنلاین رو نمیان با فریمورکها پیاده سازی کنن چون خود فریمورک نسبت به PHP خام سربار زیادی میگذاره و اگه قرار به استفاده از فریمورک هم باشه، برای بازی موردنظر یک فریمورک اختصاصی مینویسن ولی اگه بخواین از فریمورکهای موجود استفاده کنید، Yii قابلیتهای خیلی خوبی مثل انواع مختلف Cache و پشتیبانی از وب 2 داره که اون رو برای کار شما مناسب میکنه. نسخه 2 هنوز عرضه نشده و آلفا هست و این یعنی اینکه ممکنه در آینده کلاً از پایه دوباره همه چیز تغییر کنه. با نسخه 1.1.14 کار کنید. ضمناً زمان بارگذاری صفحه لاگین رو با سیستم خودتون تست نکنید! برای بازی آنلاین باید یک سرور اختصاصی قدرتمند بگیرین (با VPS اشتباه نگیرین، منظورم Dedicated Server هست) و طبیعتاً این سرورها قدرتشون چندین برابر سیستم شماست. درمورد امنیت هم Yii روشهای کارآمدی برای جلوگیری از SQL Injection و JS Injection و Session Hijacking و Session Fixation و CRSF و XSS و... بطور داخلی داره که نیاز شما رو برآورده میکنه. بحثهایی مثل الگوریتم کدگذاری رمز عبور و... هم دست خودتونه ولی بهتره از الگوریتمهای امنی مثل BlowFish یا ترکیب MD5 با تکنیکهایی مثل Salt و Pepper و مباحثی همچون Key Stretching و Multiple Hash استفاده کنید (توی تالار قبلاً درموردش زیاد صحبت شده).
تشکر بابت توضیحاتتون.
حالا من خودم یک سری توابع رو برای کش و این جور چیزا از بیس نوشتم و آماده کردم برای اسکریپت و دقیقا الآن مشکل بزرگ من دیتابیس هست! فعلا mysql انتخاب کردم اما نمی دونم به کار بازی آنلاین میاد یا نه! جواب گوییش برای بازیکنان بالا چطور میره؟! یک سری هم مقالات 100% در مورد ایندکس ها و جزئیات تیبل ها نیاز دارم که مطالعه کنم اگه از دوستان مقاله ی خوبی سراغ داره (چه فارسی چه انگلیسی فرقی نمی کنه فقط کامل باشه و 100% مثال داشته باشه) ممنون میشم برام قرار بدن.
بله درست می فرمایید سیستم بنده در برابر سرور ضعیف هست اما خوب بالاخره مورد تست هم قرار بگیره بدک نیست چه در سیستم ضعیف و چه در قوی :لبخند: اما خوب من خودم یک سرور اختصاصی فیزیکی که یک سی پی یو Xeon E5-2697 v2 داره که 12 هسته 2.7 هست!(البته اگه خدا بخواد شاید یکی دیگه گرفتم شد 2 تا سی پی یو :لبخند:) و همین طور 128 گیگ رم! که خودش کارش از یک سیستم قوی گذشته! بعد اگه لطفی در حق من بکنید فایل این کلاس های جلوگیری از SQL Injection و JS Injection و Session Hijacking و Session Fixation و CRSF و XSS و... رو نام ببرید و یک مثال خیلی کوچک بزنید که من بتونم به داخل اسکریپت اضافه کنم؟ چون اصلا با yii کار نکردم!
چند تا سوال دیگه هم دارم خلاصه دوستان ببخشند بابت این همه سوال.
سوال بعدی این بود استفاده ی بیش از حد در کش مشکلی پیش نمیاره؟
و اینکه در هر صفحه به طور حدودی تا چند query وجود داشته باشه خوب و استاندارد هست؟ (می دونم که هرچه کمتر باشه بهتره اما برای بازی آنلاین می دونید اگه بخواید خیلی خیلی هم کمش کنید فکر نکنم زیر 100 تا برابی هر صفحه در بیاد. یک مقداد حدودی بفرمایید.)
سوال بعدی هم این هستش که آیا فریم ورک yii کد هایی که داره به کار بازی آنلاین میاد که فقط از کد هاش به عنوان snippet استفاده کنم که زمان کمتری سپری بشه و کارایی خوبی داشته باشه کد؟ اگه به کار میاد آیا اموزش yii که توسط خود شما ضبط شده و برای فروش هستش، اون قسمت هایی که به کار بازی آنلاین میاد رو هم توضیح داده که بریم خریداری کنیم و استفاده کنیم؟
خلاصه خیلی سوال توی ذهنم هست که اگه به این پاسخ ها نرسم فکر کنم کلا بی خیال بشم! چون ارزش نداره آدم ماه ها وقت بذاره روی یک اسکریپت بازی و در نهایت با 500-600 تا پلیر آنلاین به مشکل بخوره :چشمک:

سوداگر
جمعه 15 فروردین 1393, 09:20 صبح
همون طور که می دونید بازی آنلاین سرعت و استفاده از منابع خیلی مهم هست!
اگه سرعت و استفاده از منابع مهمه فریمورک Phalcon (http://phalconphp.com) (با C نوشته شده) رو شاید بتونید استفاده بکنید. البته اگه به مشکل برخوردید کسی نیست کمکتون بکنه!

MMSHFE
جمعه 15 فروردین 1393, 11:29 صبح
اولاً توصیه میکنم یک فریمورک رو تکه تکه نکنید چون اجزای اون بهم وابسته هستن و اگه در کنار هم کار نکنن، کارآیی پایین میاد. بنظر من بهتره یا خودتون یک فریمورک اختصاصی بنویسید یا اینکه کاملاً با فریمورکی مثل Yii یا Phalcon کار کنید (جامعه کاربری Yii فعالتره و پشتیبانی بهتری از وب 2 داره). دیتابیس MySQL ازنظر تئوری تا 2 میلیارد رکورد در هر جدول، کند نمیشه (البته به شرطی که اصول طراحی دیتابیس مثل نرمالسازی و ایندکس گذاری صحیح و... رو رعایت کرده باشین. استفاده زیاد از کش مشکل خاصی ایجاد نمیکنه ولی توی بازی آنلاین که معمولاً همه چیز پویا هست، کش رو باید با دقت بکار ببرین. مثلاً با قابلیت partialCache توی Yii بخشهایی از صفحه که تغییر نمیکنن رو کش کنید و بقیه رو از دیتابیس بخونید یا با Dependencies یه کاری کنید که وقتی دیتابیس تغییر کرد، بطور خودکار کش از بین بره. تعداد کوئری آنچنان مهم نیست. مهم اینه که کوئریها بهینه باشن. مثلاً بدونید کجاها از Join استفاده بشه و حتی از کدوم مدل Join بهره بگیرین و کجاها Selectهای جداگانه بزنید. فریمورک Yii و کلاً فریمورکها مثل CMS نیستن که کدهاشون برای کار خاصی بکار بیاد. توی هر کاری (حتی ساخت گیم) هم میتونید از اونها استفاده کنید. Yii هم با پشتیبانی خوبی که از وب 2 و مباحثی مثل AJAX و سازگاری با کتابخانه های مختلف مثل jQuery و jQueryUI و... داره، گزینه مناسبی برای اینکار محسوب میشه. توی پکیج آموزشی سعی کردم اون چیزهایی که ضروری هست برای برنامه نویسی وب رو بگم و همه موارد گفته شده حکم آموزش کار با ابزارهای مختلف یک جعبه ابزار رو داره و اینکه چطور این ابزارها رو ترکیب کنید تا به هدفتون برسین به منطق و الگوریتم کاری خودتون بستگی داره.

trasilver
جمعه 15 فروردین 1393, 13:12 عصر
اولاً توصیه میکنم یک فریمورک رو تکه تکه نکنید چون اجزای اون بهم وابسته هستن و اگه در کنار هم کار نکنن، کارآیی پایین میاد. بنظر من بهتره یا خودتون یک فریمورک اختصاصی بنویسید یا اینکه کاملاً با فریمورکی مثل Yii یا Phalcon کار کنید (جامعه کاربری Yii فعالتره و پشتیبانی بهتری از وب 2 داره). دیتابیس MySQL ازنظر تئوری تا 2 میلیارد رکورد در هر جدول، کند نمیشه (البته به شرطی که اصول طراحی دیتابیس مثل نرمالسازی و ایندکس گذاری صحیح و... رو رعایت کرده باشین. استفاده زیاد از کش مشکل خاصی ایجاد نمیکنه ولی توی بازی آنلاین که معمولاً همه چیز پویا هست، کش رو باید با دقت بکار ببرین. مثلاً با قابلیت partialCache توی Yii بخشهایی از صفحه که تغییر نمیکنن رو کش کنید و بقیه رو از دیتابیس بخونید یا با Dependencies یه کاری کنید که وقتی دیتابیس تغییر کرد، بطور خودکار کش از بین بره. تعداد کوئری آنچنان مهم نیست. مهم اینه که کوئریها بهینه باشن. مثلاً بدونید کجاها از Join استفاده بشه و حتی از کدوم مدل Join بهره بگیرین و کجاها Selectهای جداگانه بزنید. فریمورک Yii و کلاً فریمورکها مثل CMS نیستن که کدهاشون برای کار خاصی بکار بیاد. توی هر کاری (حتی ساخت گیم) هم میتونید از اونها استفاده کنید. Yii هم با پشتیبانی خوبی که از وب 2 و مباحثی مثل AJAX و سازگاری با کتابخانه های مختلف مثل jQuery و jQueryUI و... داره، گزینه مناسبی برای اینکار محسوب میشه. توی پکیج آموزشی سعی کردم اون چیزهایی که ضروری هست برای برنامه نویسی وب رو بگم و همه موارد گفته شده حکم آموزش کار با ابزارهای مختلف یک جعبه ابزار رو داره و اینکه چطور این ابزارها رو ترکیب کنید تا به هدفتون برسین به منطق و الگوریتم کاری خودتون بستگی داره.
واقعا ممنون بابت راهنمایی هاتون. یکم توی MySQL مشکل دارم! (توی همین ایندکس گزاری و این جور مسایل پنهان MySQL) اول باید این ضعف خودم رو بر طرف کنم بعدش حتما باید بشینم ساختار yii و phalcon رو نگاه کنم و یک فریمورک بر حسب نیاز طراحی کنم! اینم رفت 2-3 ماه دیگه واسه شروع پروژه! (اگه مقاله ای دارید دریغ نکنید از این دوستتون :ناراحت:)
بعد سوال دیگه ای هم که هست اینه که همین چند دقیقه پیش قبل از ایجاد این پست، یک تاپیک خودندم در مورد لاگ بود! که خود شما در اونجا عرض کرده بودید برای هر صفحه، ما بیایم و $_SERVER رو در دیتابیس ذحیره کنیم با استفاده از serialize و base64 وارد دیتابیس کنیم. همان طور که می دانید برای بازی آنلاین لاگ بسیار مهم هست. (برای باگ یابی، مشکلاتی از قبیل همین فتا ویا...) به نظر شما برای یک سرور بازی که یک سال طول بکشه و تقریبا بازیکنان آنلاین 4000 تا باشه مشکل ساز نیست و حجیم نمیشه؟ نظرتون چیه؟ راه حل دیگه ای هست؟ چون حساب کنید هر دقیقه بگیم 4000 رکورد ثبت بشه (که خیلی بیشتر از این خواهد بود ولی میانگین گرفتیم) در طول 24 ساعت میشه 5760000 رکورد و جمعا در یک سال میشه 2102400000 :لبخند:
فقط در قسمت لاگین بگیریم چی؟ موقعی که یوزرنیم پسورد درست بود و سشن های لازم وارد شد و ریدایرکت شد به پیج بازی؟ ازمون قبول می کنند یا به اون هم گیر میدن؟ :لبخند:
بعد سوال دیگه ای داشتم من این تابع هش رو دیدم به نظر شما برای استفاده پسورد خوبه؟ http://www.hamidreza-mz.tk/?p=519
وقتی که پسورد از create_secure_hash گذشت مجدد می خوام بیس64 کنم بعد sha1 بعد md5 و در نهایت به تابع password_hashخود php هم بسپرمش بعدش بره واسه ذخیره توی دیتابیس یا بررسی برای صحت :لبخند: این جوری امن تر میشه یا فقط php رو اذیت می کنم و سرش رو درد میارم؟ :لبخند: در کل ببخشید این سوالات به ظاهر چرت رو می پرسم چون می خوام از اول خوب بیارم بالا اسکریپت رو که دیگه بعد ها مجبور نشم بشینم بازنویسی کنم اسکریپت رو از اول!

negative60
جمعه 15 فروردین 1393, 14:10 عصر
واقعا ممنون بابت راهنمایی هاتون. یکم توی MySQL مشکل دارم! (توی همین ایندکس گزاری و این جور مسایل پنهان MySQL) اول باید این ضعف خودم رو بر طرف کنم بعدش حتما باید بشینم ساختار yii و phalcon رو نگاه کنم و یک فریمورک بر حسب نیاز طراحی کنم! اینم رفت 2-3 ماه دیگه واسه شروع پروژه! (اگه مقاله ای دارید دریغ نکنید از این دوستتون :ناراحت:)
بعد سوال دیگه ای هم که هست اینه که همین چند دقیقه پیش قبل از ایجاد این پست، یک تاپیک خودندم در مورد لاگ بود! که خود شما در اونجا عرض کرده بودید برای هر صفحه، ما بیایم و $_SERVER رو در دیتابیس ذحیره کنیم با استفاده از serialize و base64 وارد دیتابیس کنیم. همان طور که می دانید برای بازی آنلاین لاگ بسیار مهم هست. (برای باگ یابی، مشکلاتی از قبیل همین فتا ویا...) به نظر شما برای یک سرور بازی که یک سال طول بکشه و تقریبا بازیکنان آنلاین 4000 تا باشه مشکل ساز نیست و حجیم نمیشه؟ نظرتون چیه؟ راه حل دیگه ای هست؟ چون حساب کنید هر دقیقه بگیم 4000 رکورد ثبت بشه (که خیلی بیشتر از این خواهد بود ولی میانگین گرفتیم) در طول 24 ساعت میشه 5760000 رکورد و جمعا در یک سال میشه 2102400000 :لبخند:
فقط در قسمت لاگین بگیریم چی؟ موقعی که یوزرنیم پسورد درست بود و سشن های لازم وارد شد و ریدایرکت شد به پیج بازی؟ ازمون قبول می کنند یا به اون هم گیر میدن؟ :لبخند:
بعد سوال دیگه ای داشتم من این تابع هش رو دیدم به نظر شما برای استفاده پسورد خوبه؟ http://www.hamidreza-mz.tk/?p=519
وقتی که پسورد از create_secure_hash گذشت مجدد می خوام بیس64 کنم بعد sha1 بعد md5 و در نهایت به تابع password_hashخود php هم بسپرمش بعدش بره واسه ذخیره توی دیتابیس یا بررسی برای صحت :لبخند: این جوری امن تر میشه یا فقط php رو اذیت می کنم و سرش رو درد میارم؟ :لبخند: در کل ببخشید این سوالات به ظاهر چرت رو می پرسم چون می خوام از اول خوب بیارم بالا اسکریپت رو که دیگه بعد ها مجبور نشم بشینم بازنویسی کنم اسکریپت رو از اول!

مهمترين بخش پروژه نوع بازی و نحوه پياده سازی اون هست اگر پردازشی که قرار هست اتفاق بيوفته اينطور که شما گفتيده به نظر من راه حل ساختن سرور يا بخشی از اون با يک زبان تحت دسکتاپ مثل C هست مزيت های اون سرعت بيشتر مصرف و نياز منابع خيلی کمتر و اگر اصولی ساخته بشه به راحتی 4، 5 هزار تا کاربر آنلاين رو ساپورت ميکنه البته اين پاک کردن صورت مسئله هست اما ارزشش رو داره مخصوصاً در دراز مدت که هزينه کمتری ميتونه داشته باشه

Mohammadsgh
جمعه 15 فروردین 1393, 14:38 عصر
برای ساخت بازی آنلاین باید چیا رو بلد باشیم؟

amin7x
جمعه 15 فروردین 1393, 16:46 عصر
برای ساخت بازی آنلاین باید چیا رو بلد باشیم؟

برای ساخت بازی آنلاین به تنهایی باید مهارت های زیر را داشته باشید.
قسمت رابط کاربری:
- HTML
- CSS
- Javascript
- Photoshop یا هر برنامه گرافیکی دیگه برای طراحی سایت.
برای قسمت برنامه نویسی:
- PHP یا ASP.net

این مهارت ها ، مهارت های پایه ای هستند بعد ها میتونید برای توسعه بازیتون از فناوری های جدید مثل Node.js استفاده کنید.

trasilver
جمعه 15 فروردین 1393, 17:27 عصر
برای ساخت بازی آنلاین به تنهایی باید مهارت های زیر را داشته باشید.
قسمت رابط کاربری:
- HTML
- CSS
- Javascript
- Photoshop یا هر برنامه گرافیکی دیگه برای طراحی سایت.
برای قسمت برنامه نویسی:
- PHP یا ASP.net

این مهارت ها ، مهارت های پایه ای هستند بعد ها میتونید برای توسعه بازیتون از فناوری های جدید مثل Node.js استفاده کنید.
البته این رو هم من به نوشته هاتون اضافه کنم. تجربه در زمینه برنامه نویسی خیلی مهم هست و همچنین حرفه شما. توی گیم آنلاین وقتی بخوای هر کاری کنید خیلی فرق داره با چیزی که اول یاد گرفتید یا خواهید گرفت. و همچنین به نکته ی جالبی اشاره نمودید. فناوری برای بازی دقیقا Node.js هستش که با یکی از دوستان در حال آماده سازی یک موتور بازی با همین node.js هستیم.
هم realtime هست هم واقعا برای بازی مناسب هستش. به دلیل علاقه ی فراوان به زبان php، خودم نیز در حال ساخت یکی دیگر با پی اچ پی هستم. هم برای افزایش تجربه و هم این که چیزای جدیدی یاد بگیرم. (مثل همین چیزایی که دوستان عزیز میگن)
جناب
negative60 (http://barnamenevis.org/member.php?311130-negative60)

منظور شما این هست که کل بازی رو به زبان C بنویسیم؟ یا اینکه بر منطق اون پیش بریم؟

trasilver
شنبه 16 فروردین 1393, 00:38 صبح
واقعا ممنون بابت راهنمایی هاتون. یکم توی MySQL مشکل دارم! (توی همین ایندکس گزاری و این جور مسایل پنهان MySQL) اول باید این ضعف خودم رو بر طرف کنم بعدش حتما باید بشینم ساختار yii و phalcon رو نگاه کنم و یک فریمورک بر حسب نیاز طراحی کنم! اینم رفت 2-3 ماه دیگه واسه شروع پروژه! (اگه مقاله ای دارید دریغ نکنید از این دوستتون :ناراحت:)
بعد سوال دیگه ای هم که هست اینه که همین چند دقیقه پیش قبل از ایجاد این پست، یک تاپیک خودندم در مورد لاگ بود! که خود شما در اونجا عرض کرده بودید برای هر صفحه، ما بیایم و $_SERVER رو در دیتابیس ذحیره کنیم با استفاده از serialize و base64 وارد دیتابیس کنیم. همان طور که می دانید برای بازی آنلاین لاگ بسیار مهم هست. (برای باگ یابی، مشکلاتی از قبیل همین فتا ویا...) به نظر شما برای یک سرور بازی که یک سال طول بکشه و تقریبا بازیکنان آنلاین 4000 تا باشه مشکل ساز نیست و حجیم نمیشه؟ نظرتون چیه؟ راه حل دیگه ای هست؟ چون حساب کنید هر دقیقه بگیم 4000 رکورد ثبت بشه (که خیلی بیشتر از این خواهد بود ولی میانگین گرفتیم) در طول 24 ساعت میشه 5760000 رکورد و جمعا در یک سال میشه 2102400000 :لبخند:
فقط در قسمت لاگین بگیریم چی؟ موقعی که یوزرنیم پسورد درست بود و سشن های لازم وارد شد و ریدایرکت شد به پیج بازی؟ ازمون قبول می کنند یا به اون هم گیر میدن؟ :لبخند:
بعد سوال دیگه ای داشتم من این تابع هش رو دیدم به نظر شما برای استفاده پسورد خوبه؟ http://www.hamidreza-mz.tk/?p=519
وقتی که پسورد از create_secure_hash گذشت مجدد می خوام بیس64 کنم بعد sha1 بعد md5 و در نهایت به تابع password_hashخود php هم بسپرمش بعدش بره واسه ذخیره توی دیتابیس یا بررسی برای صحت :لبخند: این جوری امن تر میشه یا فقط php رو اذیت می کنم و سرش رو درد میارم؟ :لبخند: در کل ببخشید این سوالات به ظاهر چرت رو می پرسم چون می خوام از اول خوب بیارم بالا اسکریپت رو که دیگه بعد ها مجبور نشم بشینم بازنویسی کنم اسکریپت رو از اول!
عذر خواهی می کنم دوستان بابت پست، پاسخ به سوالات این پست که نقل قول کردم فراموش نشه. ممنون :قلب: همچنین متشکر میشم دوستان عزیز دیگه نظرشون رو بگن.