• Страница 1 из 1
  • 1
Модератор форума: admin, TweIk  
Форум » Pawno » Wiki-samp » Урок по созданию авторынка (*icon-10*)
Урок по созданию авторынка
adminДата: Вторник, 21.12.2010, 17:06:32 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
Сейчас я вам расскажу о том, как создать авторынок.

P.S. Я знаю у нас на форуме есть проф.скриптеры, которым этот урок может не понравиться, поэтому прошу их не флудить в этой теме.

1. Для начала нам нужно внести в данные игрока переменную, отвечающие за ID его машины.

Добавляем в enum pInfo:

Code
pCarKey

2. Теперь сделаем запись в файл.

В OnPlayerRegister:

Code

format(var, 32, "CarKey=%d\n",PlayerInfo[playerid][pCarKey]);fwrite(hFile, var);

В OnPlayerLogin:

Code

if( strcmp( key , "CarKey" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCarKey] = strval( val ); }

В OnPlayerConnect (чтобы у незалогиневшегося игрока не было личной машины):

Code

PlayerInfo[playerid][pCarKey] = 0;  

3. Далее создадим информацию о машинах.

Code

enum cInfo  
{
cOwned, // занятость
cModel // модель
};
new CarInfo[1][cInfo]; // 1 замените на кол-во машин  

4. Теперь нам нужно загрузить машину на сервер.

В самый конец мода пихаем функцию:

Code

LoadCars() // Название функции (без параметров, так как действие распространяется на всех игроков/весь сервер)
{
new arrCoords[2][64]; // Переменная, отвечающая за распределение данных (будет 2 параметра)
new strFromFile2[256];  
new File: file = fopen("cars.cfg", io_read); // присваиваем файлу cars.cfg переменную file и открываем его
if (file) // Если файл открылся
{
new idx; // переменную добавим
while (idx < sizeof(CarInfo)) // пока  переменная меньше кол-ва машин
{
fread(file, strFromFile2);  // читаем данные файла
split(strFromFile2, arrCoords, '|'); // разделим данные (когда будем писать разделим из символом "|")
CarInfo[idx][cOwned] = strval(arrCoords[0]); // Присваиваем машине занятость (первое значение)
CarInfo[idx][cModel] = strval(arrCoords[1]); // Присваиваем машине модель (2-ое значение)
idx++; // увеличиваем переменную
} // Если переменная меньше общего кол-ва машин, то цикл продолжится
fclose(file); // закрываем файл
}
return 1; // вернем истину
}  

5. Сейчас мы должны создать файл, из которого будем читать информацию о машинах (cars.csg)

Заходим в папку scriptfiles и создаем файл. Называем его cars.cfg (если у вас не отображаются расширения включите это в настройках).

Заходим в cars.cfg и пишем туда:

Code

0|411

Здесь 0 - занятость (0 - не занята, 1 - занята), а 411 - модель (в данном случае инфернус)

Когда будете добавлять еще машины добавляйте ниже этого. Пример:

Code

0|411
0|514
1|89

6. Теперь мы должны создать массив, в котором запишем координаты машин.

Заходим в мод. И вставляем где-нибудь в начало, но после всех инклюдов, форвардов, переменных:

Code

new Float:BuyCarsSpawn[1][4]={  // объявляется массив. Когда будете добавлять машины, замените 1 на их бщее кол-во. 4 -для тех, кто не знает, параметры ( у нас их 4)
{1111.3768,-1796.1268,16.5938,123.1231} // собственно сами координаты в формате: (координата x, координата y, координата z, угол поворота)
};

Так как я показываю на примере одной машины, то указываю одни координаты.
Примечание: Когда будете добавлять координаты машин ставьте после каждой запятую, не ставить только после последних. Пример:

Code

new Float:BuyCarsSpawn[3][4]={   
{1111.3768,-67.1268,16.5938,123.1231},
{565.3768,-1796.1268,16.5938,163.753442},
{56.3768,2396.1223,45.9731,183.1231}
};  

7. Наконец, вставляем машины в мод.

Используя функцию, которую мы недавно сделали, мы это сделать сможем.
Вставим в public OnGameModeInit:

Code

LoadCars();

С помощью этого мы включим наш файл.

Для вставки машин из файла сразу после этого вставляем:

Code

for(new c; c < sizeof(CarInfo); c++) // объявим цикл (объявим переменную c; пока c будет меньше кол-ва машин цикл будет повторяться; а c увеличиваться)
{
AddStaticVehicleEx(CarInfo[c][cModel], BuyCarsSpawn[c][0], BuyCarsSpawn[c][1], BuyCarsSpawn[c][2], BuyCarsSpawn[c][3], -1, -1, 600000); // Загрузим машину (Модель машины, координата 1 (по x), координата 2 (по y), координата 3 (по z), координата 4 (угол наклона), цвет 1 (если -1, значит меняется), цвет 2 (если -1, значит меняется),  время спавна (у нас 600000 секунд = 10000 минут = примерно 170 часов; так что практически навсегда)
}

Примечание: этот код должен быть вставлен перед всеми машинами, чтобы не было путаницы с идами

8. Сделаем, чтобы был эффект когда игрок садиться в наше авто.

В public OnPlayerStateChange ищем

Code

if(newstate == PLAYER_STATE_DRIVER)

И после этого вставляем:

Code

if(newcar < sizeof(CarInfo)&&newcar!=0) // Если ид машины, в которую сел игрок меньше кол-ва наших машин (на авторынке); по логике делаем вывод: он сел в машину авторынка
    {
     if(newcar!=PlayerInfo[playerid][pCarKey]&&CarInfo[newcar-1][cOwned]==1) // Если ид машины не совпадает с идом машины игрока и если машина, в которую он сел уже куплена, делаем вывод: ему не место в этой машине.
     {
      SendClientMessage(playerid, COLOR_RED,"Слышь мужик, че тачки воруешь? Вылазь отсюда!"); // пишем игроку текст
         RemovePlayerFromVehicle(playerid); // и выкидываем его из машины
     }
     else if(CarInfo[newcar-1][cOwned]==0) // иначе; если машина не куплена
     {
      SendClientMessage(playerid, COLOR_GREEN,"Вы можете купить эту машину. Введите /buycar");
         TogglePlayerControllable(playerid, 0); // Замораживаем игрока, чтобы не уехал, не купив ее
     }
     return 1; // вернем истину
    }  

9. Наконец, сделаем сами команды.

В public OnPlayerCommandText вставляем (разумеется после других команд):

Code

if(strcmp(cmd, "/buycar", true) == 0) // если игрок ввел /buycar и это истина
   {
    new newcar = GetPlayerVehicleID(playerid); // объявляем переменную (равна иду машины игрока)
    if(newcar!=0&&newcar < sizeof(CarInfo)&&CarInfo[newcar-1][cOwned]==0) // если эта переменная(ID машины) не равен нулю и эта переменная меньше кол-ва машин и если эта машина не куплена, делаем вывод: машина принадлежит авторынку и ее можно купить.
    {
if(PlayerInfo[playerid][pCarKey] != 0) // если у игрока ид машины не равен 0, делаем вывод: у него уже есть машина, больше он купить не может
{
return SendClientMessage(playerid, COLOR_RED, "У тебя уже есть машина, чел");  // вернем ему текст
}
     CarInfo[newcar-1][cOwned]=1; // присваиваем этой машине занятость
     PlayerInfo[playerid][pCarKey]=newcar; // присваиваем иду машины игрока ид этой машины
     SendClientMessage(playerid, COLOR_WHITE, "Вы купили эту машину"); // пишем текст игроку
     GivePlayerMoney(playerid, -20000); // забираем у игрока 20000 (можете изменить на свое)
     TogglePlayerControllable(playerid, 1); // размораживаем "бедного" игрока
    }
   }
if(strcmp(cmd, "/sellcar", true) == 0) // если игрок ввел /sellcar и это истина
   {
    CarInfo[PlayerInfo[playerid][pCarKey]-1][cOwned]=0; // Ставим занятость этой машины на 0
    PlayerInfo[playerid][pCarKey]=0; // Ставим иду машины игрока 0
    SendClientMessage(playerid, COLOR_WHITE, "Вы продали машину"); // Пишем ему текст
    GivePlayerMoney(playerid, 20000); // Даем ему его даеньги
    RemovePlayerFromVehicle(playerid); // Выкидываем ***** из машины
    OnPropUpdate(); // Сохраним файл cars.cfg
   }  

10. Ну и последний этап. Сделаем сохранение машин в файл после обновления

Добавим в OnPropUpdate:

Code

idx = 0; // переменная равна нулю
while (idx < sizeof(CarInfo)) // создадим цикл (пока переменная меньше кол-ва машин, цикл будет повторяться)
{
new coordsstring[256]; // Переменную сделаем для текста
format(coordsstring, sizeof(coordsstring), "%i|%i\n",CarInfo[idx][cOwned],CarInfo[idx][cModel]); // делаем сам текст (получиться: "занятость|модель")
if(idx == 0) file2 = fopen("cars.cfg", io_write); //Если переменная равна нулю, откроем файл cars.cfg и запишем, что нужно
else file2 = fopen("cars.cfg", io_append); // иначе, откроем файл и прибавим туда, что нужно
fwrite(file2, coordsstring); // Запишем в файл тот текст, который мы сделали
idx++; // увеличим первоначальную переменную (если она снова меньше кол-ва машин, цикл повториться)
fclose(file2); // закрываем файл  

Готово!

Немного расскажу, как все это работает.

Вы можете выбрать место и поставить туда машины (тобишь координаты записать нужные).
Ладно. Вот игрок приходит в это место. Садится в машину понравившуюся. Если она свободна, то он может купить ее: /buycar. Если она ему не понравится, то пусть продаст: /sellcar. Вот и все. Машина сохранится после перезахода

P.S. Автор: неизвестен. Использовал материалы урока Lancer'а. Немного изменил



zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеСейчас я вам расскажу о том, как создать авторынок.

P.S. Я знаю у нас на форуме есть проф.скриптеры, которым этот урок может не понравиться, поэтому прошу их не флудить в этой теме.

1. Для начала нам нужно внести в данные игрока переменную, отвечающие за ID его машины.

Добавляем в enum pInfo:

Code
pCarKey

2. Теперь сделаем запись в файл.

В OnPlayerRegister:

Code

format(var, 32, "CarKey=%d\n",PlayerInfo[playerid][pCarKey]);fwrite(hFile, var);

В OnPlayerLogin:

Code

if( strcmp( key , "CarKey" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCarKey] = strval( val ); }

В OnPlayerConnect (чтобы у незалогиневшегося игрока не было личной машины):

Code

PlayerInfo[playerid][pCarKey] = 0;  

3. Далее создадим информацию о машинах.

Code

enum cInfo  
{
cOwned, // занятость
cModel // модель
};
new CarInfo[1][cInfo]; // 1 замените на кол-во машин  

4. Теперь нам нужно загрузить машину на сервер.

В самый конец мода пихаем функцию:

Code

LoadCars() // Название функции (без параметров, так как действие распространяется на всех игроков/весь сервер)
{
new arrCoords[2][64]; // Переменная, отвечающая за распределение данных (будет 2 параметра)
new strFromFile2[256];  
new File: file = fopen("cars.cfg", io_read); // присваиваем файлу cars.cfg переменную file и открываем его
if (file) // Если файл открылся
{
new idx; // переменную добавим
while (idx < sizeof(CarInfo)) // пока  переменная меньше кол-ва машин
{
fread(file, strFromFile2);  // читаем данные файла
split(strFromFile2, arrCoords, '|'); // разделим данные (когда будем писать разделим из символом "|")
CarInfo[idx][cOwned] = strval(arrCoords[0]); // Присваиваем машине занятость (первое значение)
CarInfo[idx][cModel] = strval(arrCoords[1]); // Присваиваем машине модель (2-ое значение)
idx++; // увеличиваем переменную
} // Если переменная меньше общего кол-ва машин, то цикл продолжится
fclose(file); // закрываем файл
}
return 1; // вернем истину
}  

5. Сейчас мы должны создать файл, из которого будем читать информацию о машинах (cars.csg)

Заходим в папку scriptfiles и создаем файл. Называем его cars.cfg (если у вас не отображаются расширения включите это в настройках).

Заходим в cars.cfg и пишем туда:

Code

0|411

Здесь 0 - занятость (0 - не занята, 1 - занята), а 411 - модель (в данном случае инфернус)

Когда будете добавлять еще машины добавляйте ниже этого. Пример:

Code

0|411
0|514
1|89

6. Теперь мы должны создать массив, в котором запишем координаты машин.

Заходим в мод. И вставляем где-нибудь в начало, но после всех инклюдов, форвардов, переменных:

Code

new Float:BuyCarsSpawn[1][4]={  // объявляется массив. Когда будете добавлять машины, замените 1 на их бщее кол-во. 4 -для тех, кто не знает, параметры ( у нас их 4)
{1111.3768,-1796.1268,16.5938,123.1231} // собственно сами координаты в формате: (координата x, координата y, координата z, угол поворота)
};

Так как я показываю на примере одной машины, то указываю одни координаты.
Примечание: Когда будете добавлять координаты машин ставьте после каждой запятую, не ставить только после последних. Пример:

Code

new Float:BuyCarsSpawn[3][4]={   
{1111.3768,-67.1268,16.5938,123.1231},
{565.3768,-1796.1268,16.5938,163.753442},
{56.3768,2396.1223,45.9731,183.1231}
};  

7. Наконец, вставляем машины в мод.

Используя функцию, которую мы недавно сделали, мы это сделать сможем.
Вставим в public OnGameModeInit:

Code

LoadCars();

С помощью этого мы включим наш файл.

Для вставки машин из файла сразу после этого вставляем:

Code

for(new c; c < sizeof(CarInfo); c++) // объявим цикл (объявим переменную c; пока c будет меньше кол-ва машин цикл будет повторяться; а c увеличиваться)
{
AddStaticVehicleEx(CarInfo[c][cModel], BuyCarsSpawn[c][0], BuyCarsSpawn[c][1], BuyCarsSpawn[c][2], BuyCarsSpawn[c][3], -1, -1, 600000); // Загрузим машину (Модель машины, координата 1 (по x), координата 2 (по y), координата 3 (по z), координата 4 (угол наклона), цвет 1 (если -1, значит меняется), цвет 2 (если -1, значит меняется),  время спавна (у нас 600000 секунд = 10000 минут = примерно 170 часов; так что практически навсегда)
}

Примечание: этот код должен быть вставлен перед всеми машинами, чтобы не было путаницы с идами

8. Сделаем, чтобы был эффект когда игрок садиться в наше авто.

В public OnPlayerStateChange ищем

Code

if(newstate == PLAYER_STATE_DRIVER)

И после этого вставляем:

Code

if(newcar < sizeof(CarInfo)&&newcar!=0) // Если ид машины, в которую сел игрок меньше кол-ва наших машин (на авторынке); по логике делаем вывод: он сел в машину авторынка
    {
     if(newcar!=PlayerInfo[playerid][pCarKey]&&CarInfo[newcar-1][cOwned]==1) // Если ид машины не совпадает с идом машины игрока и если машина, в которую он сел уже куплена, делаем вывод: ему не место в этой машине.
     {
      SendClientMessage(playerid, COLOR_RED,"Слышь мужик, че тачки воруешь? Вылазь отсюда!"); // пишем игроку текст
         RemovePlayerFromVehicle(playerid); // и выкидываем его из машины
     }
     else if(CarInfo[newcar-1][cOwned]==0) // иначе; если машина не куплена
     {
      SendClientMessage(playerid, COLOR_GREEN,"Вы можете купить эту машину. Введите /buycar");
         TogglePlayerControllable(playerid, 0); // Замораживаем игрока, чтобы не уехал, не купив ее
     }
     return 1; // вернем истину
    }  

9. Наконец, сделаем сами команды.

В public OnPlayerCommandText вставляем (разумеется после других команд):

Code

if(strcmp(cmd, "/buycar", true) == 0) // если игрок ввел /buycar и это истина
   {
    new newcar = GetPlayerVehicleID(playerid); // объявляем переменную (равна иду машины игрока)
    if(newcar!=0&&newcar < sizeof(CarInfo)&&CarInfo[newcar-1][cOwned]==0) // если эта переменная(ID машины) не равен нулю и эта переменная меньше кол-ва машин и если эта машина не куплена, делаем вывод: машина принадлежит авторынку и ее можно купить.
    {
if(PlayerInfo[playerid][pCarKey] != 0) // если у игрока ид машины не равен 0, делаем вывод: у него уже есть машина, больше он купить не может
{
return SendClientMessage(playerid, COLOR_RED, "У тебя уже есть машина, чел");  // вернем ему текст
}
     CarInfo[newcar-1][cOwned]=1; // присваиваем этой машине занятость
     PlayerInfo[playerid][pCarKey]=newcar; // присваиваем иду машины игрока ид этой машины
     SendClientMessage(playerid, COLOR_WHITE, "Вы купили эту машину"); // пишем текст игроку
     GivePlayerMoney(playerid, -20000); // забираем у игрока 20000 (можете изменить на свое)
     TogglePlayerControllable(playerid, 1); // размораживаем "бедного" игрока
    }
   }
if(strcmp(cmd, "/sellcar", true) == 0) // если игрок ввел /sellcar и это истина
   {
    CarInfo[PlayerInfo[playerid][pCarKey]-1][cOwned]=0; // Ставим занятость этой машины на 0
    PlayerInfo[playerid][pCarKey]=0; // Ставим иду машины игрока 0
    SendClientMessage(playerid, COLOR_WHITE, "Вы продали машину"); // Пишем ему текст
    GivePlayerMoney(playerid, 20000); // Даем ему его даеньги
    RemovePlayerFromVehicle(playerid); // Выкидываем ***** из машины
    OnPropUpdate(); // Сохраним файл cars.cfg
   }  

10. Ну и последний этап. Сделаем сохранение машин в файл после обновления

Добавим в OnPropUpdate:

Code

idx = 0; // переменная равна нулю
while (idx < sizeof(CarInfo)) // создадим цикл (пока переменная меньше кол-ва машин, цикл будет повторяться)
{
new coordsstring[256]; // Переменную сделаем для текста
format(coordsstring, sizeof(coordsstring), "%i|%i\n",CarInfo[idx][cOwned],CarInfo[idx][cModel]); // делаем сам текст (получиться: "занятость|модель")
if(idx == 0) file2 = fopen("cars.cfg", io_write); //Если переменная равна нулю, откроем файл cars.cfg и запишем, что нужно
else file2 = fopen("cars.cfg", io_append); // иначе, откроем файл и прибавим туда, что нужно
fwrite(file2, coordsstring); // Запишем в файл тот текст, который мы сделали
idx++; // увеличим первоначальную переменную (если она снова меньше кол-ва машин, цикл повториться)
fclose(file2); // закрываем файл  

Готово!

Немного расскажу, как все это работает.

Вы можете выбрать место и поставить туда машины (тобишь координаты записать нужные).
Ладно. Вот игрок приходит в это место. Садится в машину понравившуюся. Если она свободна, то он может купить ее: /buycar. Если она ему не понравится, то пусть продаст: /sellcar. Вот и все. Машина сохранится после перезахода

P.S. Автор: неизвестен. Использовал материалы урока Lancer'а. Немного изменил


Автор - admin
Дата добавления - 21.12.2010 в 17:06:32
Jacky_MillerДата: Суббота, 09.04.2011, 01:13:22 | Сообщение # 2

Группа: Пользователи
Сообщений: 18
Спасибо, прочитав внимательно, немного(очень еще немного), начинаю понимать pawno(принцип действий). И можно сразу задам вопрос: Когда покупаешь авто, и следственно уезжаешь на нем, оно там "перевозродится", или как?
А почему-бы немного не усовершенствовать, и сделать следующие: Когда купил машину, она рядом появляется на маркере, но та же, просто новая, а закупочная остается на месте?)сори ,если тут нельзя было писать)
 
СообщениеСпасибо, прочитав внимательно, немного(очень еще немного), начинаю понимать pawno(принцип действий). И можно сразу задам вопрос: Когда покупаешь авто, и следственно уезжаешь на нем, оно там "перевозродится", или как?
А почему-бы немного не усовершенствовать, и сделать следующие: Когда купил машину, она рядом появляется на маркере, но та же, просто новая, а закупочная остается на месте?)сори ,если тут нельзя было писать)

Автор - Jacky_Miller
Дата добавления - 09.04.2011 в 01:13:22
adminДата: Суббота, 09.04.2011, 02:42:13 | Сообщение # 3

Группа: Администраторы
Сообщений: 3869
Jacky_Miller, вот тебе фс


zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеJacky_Miller, вот тебе фс

Автор - admin
Дата добавления - 09.04.2011 в 02:42:13
WebmastерДата: Понедельник, 09.05.2011, 14:51:14 | Сообщение # 4

Группа: Пользователи
Сообщений: 1
Я для прикола напишу сюда сделал всё правильно в моде не единого варнинга двери закрыты всё

Добавлено (08.05.2011, 14:45)
---------------------------------------------
Uuuuuuupppppp тему

Добавлено (09.05.2011, 14:51)
---------------------------------------------
Аааааааааааааааааааапппппппппппппппппп

 
СообщениеЯ для прикола напишу сюда сделал всё правильно в моде не единого варнинга двери закрыты всё

Добавлено (08.05.2011, 14:45)
---------------------------------------------
Uuuuuuupppppp тему

Добавлено (09.05.2011, 14:51)
---------------------------------------------
Аааааааааааааааааааапппппппппппппппппп


Автор - Webmastер
Дата добавления - 09.05.2011 в 14:51:14
adminДата: Воскресенье, 15.05.2011, 20:45:13 | Сообщение # 5

Группа: Администраторы
Сообщений: 3869
Webmastер, и что ты хочешь этим сказать?


zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеWebmastер, и что ты хочешь этим сказать?

Автор - admin
Дата добавления - 15.05.2011 в 20:45:13
wowana2014Дата: Понедельник, 15.06.2015, 20:03:33 | Сообщение # 6

Группа: Пользователи
Сообщений: 3
Извините а как сделать чтоб можно было машину арендовать а после 30мин неиспользования она вернулась назад на ярмарку?
А для покупки сделать автосалон.
Как на Aqua RP
 
СообщениеИзвините а как сделать чтоб можно было машину арендовать а после 30мин неиспользования она вернулась назад на ярмарку?
А для покупки сделать автосалон.
Как на Aqua RP

Автор - wowana2014
Дата добавления - 15.06.2015 в 20:03:33
Abramov51Дата: Воскресенье, 25.10.2015, 21:01:09 | Сообщение # 7

Группа: Пользователи
Сообщений: 3
Это тебе нужно отдельно писать сис-му аренды каров с таймером их спавна)
так что дерзай)
 
СообщениеЭто тебе нужно отдельно писать сис-му аренды каров с таймером их спавна)
так что дерзай)

Автор - Abramov51
Дата добавления - 25.10.2015 в 21:01:09
Форум » Pawno » Wiki-samp » Урок по созданию авторынка (*icon-10*)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
14:19:23
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2024

vkontakte :samp-pawno.ru: