Приветствую Вас Нарушитель | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Не для клана
WintMaxДата: Вторник, 18.03.2008, 21:26 | Сообщение # 1
Всемогущий админ
Группа: Администраторы
Сообщений: 38
Репутация: 4
Город: Ростов-на-Дону
Статус: Далеко за туманами...
Аська: 356124623
#pragma tabsize 4
//------------------------------------------------------------------------------
// TRAINMOD NOD
//
// This gamemode is created by SA-MP Script Maker 0.1
//------------------------------------------------------------------------------
#include <a_samp>
#include <core>
#include <float>
#include <dudb>

#define TEAM_1 1
#define TEAM_2 2
#define TEAM_3 3

#define FILE_SETTINGS "settings.ini"

#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF0000FF
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_SYSTEM 0xEFEFF7AA
#define COLOR_PINK 0xC715FFFF
#define COLOR_BRIGHTRED 0xB22222
//#define COLOR_BBLUE 0x00BFFFAA
#define COLOR_DARKGREEN 0x004400AA
#define COLOR_LIGHTGREEN 0x00FF00AA
#define COLOR_CON_GREEN 0x00FF00FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF

#define GIVECASH_DELAY 15000 // Time in ms between /givecash commands.
new gTeam[MAX_PLAYERS];
//далее
//Регистрация
forward ShowStats(playerid,targetid);
forward OnPlayerUpdate(playerid);
forward Encrypt(string[]);
forward OnPlayerLogin(playerid,const string[]);
enum pInfo
{
pPassword[128],
pKills,
pDeaths,
pCash,
};

new PlayerInfo[MAX_PLAYERS][pInfo];
new gPlayerLogged[MAX_PLAYERS];
new gPlayerAccount[MAX_PLAYERS];

//Конец

new playercount;
#define CHECKPOINT_YELLOW 0

#define CHECKPOINT_BLUE 1

main()
{
print("\n----------------------------------");

print(" NOD Training Server (2008) [WinT]\n");

print("----------------------------------\n");
}
//------------------------------------------------------------------------------

public OnGameModeInit()
{
SetGameModeText("TrainMod NOD");

ShowPlayerMarkers(0);
SetWorldTime(8);
ShowNameTags(1);

SetTimer("Timer",300000,1); // реклама каждые 5 минут
SetTimer("Cmd",120000,1); // реклама каждые 5 минут
SetTimer("PlayersOnline",600000,1); // реклама каждые 5 минут

//Желтые
AddPlayerClass(108,-2229.7209,2437.9963,2.4945,228.1333,27,300,23,50,28,500); //
AddPlayerClass(109,-2214.8010,2423.2383,2.4976,47.3616,27,300,24,50,29,500); //
AddPlayerClass(34,-2234.7915,2403.3354,2.4919,47.3616,27,300,24,50,27,500); //
AddPlayerClass(110,-2249.8564,2418.2742,2.4972,227.8433,27,300,23,50,28,500); //
//Синие
AddPlayerClass(124,-2384.7456,2216.5256,12.8594,88.3853,27,300,32,500,31,500); //
AddPlayerClass(113,-2398.1697,2216.7629,4.9844,84.6253,27,300,24,100,29,500); //
AddPlayerClass(163,-2402.2439,2224.5820,4.9844,89.6387,27,300,24,200,29,500); //
AddPlayerClass(125,-2404.0552,2209.8733,4.9844,69.9219,8,1,23,50,29,500); //
//Менты
AddPlayerClass(282,-2478.9324,2488.2168,18.2300,180.7011,3,1,27,500,28,5000); //
AddPlayerClass(286,-2446.4973,2492.2961,15.3203,2.7494,3,1,31,500,24,500); //
AddPlayerClass(288,-2446.1716,2513.5305,15.7003,4.6294,3,1,30,1000,29,5000); //
AddPlayerClass(281,-2183.6882,2416.0979,5.1973,225.0562,3,1,33,500,25,3000); //

//ONE TEAM
AddStaticVehicle(400,-2216.3428,2392.4656,4.7382,135.2475,6,6); //
AddStaticVehicle(609,-2224.0125,2384.6406,4.7352,135.5018,6,6); //
AddStaticVehicle(447,-2227.0659,2326.4956,7.5732,0.0331,6,6); //
AddStaticVehicle(473,-2247.3384,2428.5295,0.8217,42.0340,6,6); //
AddStaticVehicle(452,-2208.6936,2408.3159,-0.3475,225.5659,6,6); //

//TWO TEAM
AddStaticVehicle(487,-2458.6663,2223.1201,4.8438,2.9475,0,0); //
AddStaticVehicle(579,-2443.8989,2244.1787,4.7724,179.0425,0,0); //
AddStaticVehicle(418,-2440.9639,2243.2913,4.8438,178.1025,0,0); //
AddStaticVehicle(428,-2422.0854,2214.9495,5.1100,90.7266,0,0); //
AddStaticVehicle(472,-2406.9880,2317.9407,-0.1711,97.4113,0,0); //
AddStaticVehicle(472,-2412.5803,2308.2813,-0.0780,262.0547,0,0); //
//Менты
AddStaticVehicle(599,-2449.4941,2496.1135,15.4460,90.7861,0,1); //
AddStaticVehicle(601,-2462.4524,2497.0576,16.7063,352.4676,0,1); //
AddStaticVehicle(490,-2476.0791,2495.8718,17.7972,91.5022,0,1); //
AddStaticVehicle(523,-2479.2771,2516.3440,17.8494,354.7752,0,1); //
AddStaticVehicle(497,-2486.3928,2532.2463,18.1548,179.7489,0,1); //

AddStaticVehicle(528,-2444.4507,2482.7119,14.8863,177.8307,0,1); //
//Просто тачи
AddStaticVehicle(471,-2271.1091,2321.3879,4.9126,269.8838,20,125); //
AddStaticVehicle(522,-2251.9490,2309.0117,4.9048,269.8287,20,125); //
AddStaticVehicle(549,-2271.8638,2285.4343,4.9127,91.5708,20,125); //
AddStaticVehicle(602,-2272.1067,2288.2432,4.9126,90.8413,20,125); //
AddStaticVehicle(402,-2271.8101,2294.2734,4.9124,88.1438,20,125); //
AddStaticVehicle(502,-2272.9097,2336.3069,4.9049,269.2739,20,125); //
AddStaticVehicle(475,-2191.4568,2410.6023,5.0578,43.2593,20,125); //

AddStaticVehicle(424,-2251.5857,2333.0957,4.3720,270.8981,1,1); //
AddStaticVehicle(525,-2252.8376,2321.0513,4.3836,269.2884,6,7); //

AddStaticVehicle(416,-2475.9929,2436.2546,16.0185,276.0092,1,1); //

AddStaticVehicle(554,-2234.8943,2464.6646,4.7659,134.6473,1,1); //
AddStaticVehicle(567,-2436.9209,2220.6160,4.7652,0.3157,1,1); //
AddStaticVehicle(573,-2482.4102,2242.1458,4.6243,179.3306,1,1); //
AddStaticVehicle(515,-2377.5415,2440.3540,9.0303,157.5745,1,1); //
AddStaticVehicle(411,-2426.5681,2345.2729,4.7572,12.4342,1,1); //

AddStaticVehicle(445,-2530.2153,2365.3228,5.1451,185.7746,66,1); // Admiral
AddStaticVehicle(445,-2538.2380,2366.1494,5.1630,180.2567,66,1); // Admiral
AddStaticVehicle(445,-2543.9155,2366.1606,5.1409,178.6942,66,1); // Admiral
AddStaticVehicle(510,-2446.8721,2509.5938,14.8588,182.9322,121,121); // MT Bike
AddStaticVehicle(510,-2422.9290,2485.5303,12.8270,179.4592,49,49); // MT Bike

AddStaticVehicle(507,-2295.9666,2288.3765,4.5829,90.0468,123,8); //
AddStaticVehicle(604,-2451.6746,2304.1118,4.5859,91.2284,79,79); //
AddStaticVehicle(551,-2560.3608,2258.8164,4.6718,334.0405,51,51); //
AddStaticVehicle(451,-2528.1279,2251.1221,4.5831,333.4284,51,51); //
//Пикапы
AddStaticPickup(1240, 15, -2479.2583,2448.9070,17.3230);
AddStaticPickup(1240, 15, -2472.1401,2450.0061,17.3230);
AddStaticPickup(1241, 15, -2391.5413,2403.0327,21.5604);
AddStaticPickup(1240, 15, -2263.3484,2574.4912,8.6124);
AddStaticPickup(1240, 15, -2461.5374,2509.2512,16.8799);
AddStaticPickup(1242, 15, -2385.7134,2216.0273,4.9844);
AddStaticPickup(1242, 15, -2199.6028,2412.3401,-0.3371);
AddStaticPickup(1242, 15, -2191.5488,2413.5093,5.1563);

return 1;
}
//------------------------------------------------------------------------------

public OnPlayerConnect(playerid)
{
new string[256];
playercount++;
format(string, sizeof(string), "На сервере %d игроков.", playercount);
SendClientMessageToAll(0xFFFFFFAA, string);

SendClientMessage(playerid, 0x00FF40AA, "Добро пожаловать на сервер [NOD]! Справка по командам - /cmd");
SendClientMessage(playerid, 0x33CCFFAA, "Внимание! Иконки игроков на радаре отключены! Это сделано ради реалистичности!");
SendClientMessage(playerid, 0x33CCFFAA, "Для регистрации введите /register [PASSWORD]. Для входа введите /login [PASSWORD]. Приятной игры!");
GivePlayerMoney(playerid, 2000);
//Other stuff
return 1;
}

//------------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{

new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
new tmp[256];
new playername[MAX_PLAYER_NAME];
if (strcmp(cmd, "/login", true) ==0 )
{
if(IsPlayerConnected(playerid))
{
new tmppass[64];
if(gPlayerLogged[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "* Вы уже вошли!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "* Используй: /login [пароль]");
return 1;
}
strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
return 1;
}
if (strcmp(cmd, "/register", true)==0)
{
new string[265];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "USAGE: /register [password]");
return 1;
}
if (gPlayerAccount[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GREY, "* Ваш ник в данный момент зарегестрирован!");
return 1;
}

strmid(PlayerInfo[playerid][pPassword], tmp, 0, strlen(cmdtext), 255);
Encrypt(PlayerInfo[playerid][pPassword]);
GetPlayerName(playerid, playername, sizeof(playername));
format(string, sizeof(string), "%s.cer", playername);
new File: file = fopen(string, io_read);
if (file)
{
SendClientMessage(playerid, COLOR_GREY, "* Ваш ник в данный момент зарегестрирован!");
fclose(file);
return 1;
}
new File:hFile;
hFile = fopen(string, io_append);
new var[32];//
format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(hFile, var);
format(var, 32, "* Убийства=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
format(var, 32, "* Смерти=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
format(var, 32, "* Деньги=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
fclose(hFile);
SendClientMessage(playerid, COLOR_WHITE, "* Регистрация выполнена!");
SendClientMessage(playerid, COLOR_WHITE, "* При следующим входе вводите /login [Пароль]. Приятной игры! ");
OnPlayerLogin(playerid,PlayerInfo[playerid][pPassword]);
return 1;
}
if (strcmp(cmd, "/stats", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if (gPlayerLogged[playerid] != 0)
{
ShowStats(playerid,playerid);
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "* Вы не залогнены");
}
}
return 1;
}

if (strcmp(cmdtext, "/cmd", true)==0)
{

SendClientMessage(playerid, COLOR_ORANGE,"______________________[Команды:]_____________________");
SendClientMessage(playerid, COLOR_YELLOW,"* /para /gunpack /health /bb /send /cheky");
SendClientMessage(playerid, COLOR_ORANGE,"_____________________________________________________");

return 1;
}

if(strcmp(cmdtext, "/para", true) == 0) {
if (GetPlayerMoney(playerid) > 499) {
GivePlayerMoney(playerid, -200);
GivePlayerWeapon(playerid, 46, 1);
SendClientMessage(playerid, 0xFFFF00AA, "* Теперь у тебя есть парашют");
}
else
SendClientMessage(playerid, COLOR_RED, "* СЕРВЕР: У тебя не достаточно денег!");
return 1;
}

if(strcmp(cmdtext, "/gunpack", true) == 0) {
if (GetPlayerMoney(playerid) > 499) {
GivePlayerMoney(playerid, -10000);
GivePlayerWeapon(playerid,8,0);
GivePlayerWeapon(playerid,24,10000);
GivePlayerWeapon(playerid,26,10000);
GivePlayerWeapon(playerid,31,10000);
GivePlayerWeapon(playerid,30,10000);
SendClientMessage(playerid, COLOR_GREEN, "* СЕРВЕР: Ты купил оружейный пак");
}
else
SendClientMessage(playerid, COLOR_RED, "* СЕРВЕР: У тебя не достаточно денег!");
return 1;
}

if (strcmp("/health", cmdtext, true, 10) == 0)
{
SetPlayerHealth(playerid, 100.0);
GivePlayerMoney(playerid, -300);
// Do something here
return 1;
}

if (strcmp("/bb", cmdtext, true, 10) == 0)
{
new PlayerName[30], str[256];
GetPlayerName(playerid, PlayerName, 30);
format(str, 256, "..::%s прощается со всеми!::..", PlayerName);
SendClientMessageToAll(0xAA3333AA, str);
return 1;
}

if (strcmp(cmdtext, "/giveall", true) == 0 && IsPlayerAdmin(playerid) == 1)
{
GivePlayerWeapon(playerid,10,1);
GivePlayerMoney(playerid, 50000000);
GivePlayerWeapon(playerid,24,100000);
GivePlayerWeapon(playerid,26,100000);
GivePlayerWeapon(playerid,32,100000);
GivePlayerWeapon(playerid,31,100000);
GivePlayerWeapon(playerid,38,100000);
return 1;
}

return 0;
}
//------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid, reason)
{
OnPlayerUpdate(playerid);
gPlayerLogged[playerid] = 0;
return 1;
}

//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerCameraPos(playerid, 508.7362, -83.4335, 998.9609);
SetPlayerPos(playerid, 508.7362, -87.4335, 998.9609);
SetPlayerFacingAngle(playerid, 0.0);
SetPlayerCameraLookAt(playerid, 508.7362, -87.4335, 998.9609);
SetPlayerInterior(playerid, 11);
if(classid == 0 || classid == 1 || classid == 2 || classid == 3){
gTeam[playerid] = TEAM_1;
GameTextForPlayer(playerid, "~y~LS Vagos", 1000, 3);}
else if(classid == 4 || classid == 5 || classid == 6 || classid == 7){
gTeam[playerid] = TEAM_2;
GameTextForPlayer(playerid, "~b~Mafia", 1000, 3);}
else if(classid == 8 || classid == 9 || classid == 10 || classid == 11){
gTeam[playerid] = TEAM_3;
GameTextForPlayer(playerid, "~w~Cop", 1000, 3);}
return 1;
}
//------------------------------------------------------------------------------

public OnPlayerSpawn(playerid)
{
SetPlayerInterior(playerid,0);
if(gTeam[playerid] == TEAM_1)
SetPlayerColor(playerid, 0xFFFF00AA);
else if(gTeam[playerid] == TEAM_2)
SetPlayerColor(playerid, 0x0000BBAA);
else if(gTeam[playerid] == TEAM_3)
SetPlayerColor(playerid, 0xFFFFFFAA);

SetPlayerCheckpoint(playerid, -2436.3674,2545.9775,23.6016,2.0); //около казино 4 дракона

return 1;

}
//------------------------------------------------------------------------------

public OnPlayerDeath(playerid, killerid, reason)
{
new kills = PlayerInfo[playerid][pKills];
SetPlayerScore(playerid, kills);
new Float:Health;
GetPlayerHealth(playerid, Health);
if(Health == 0.0)
{
PlayerInfo[playerid][pDeaths] += 1;
}
GivePlayerMoney(killerid,2000);
PlayerInfo[killerid][pKills] = PlayerInfo[killerid][pKills] + 1;

if(killerid == INVALID_PLAYER_ID) {

SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);

} else {

if(gTeam[killerid] != gTeam[playerid]) {

// Valid kill

SendDeathMessage(killerid,playerid,reason);
new PlayerName[30], str[256];
GetPlayerName(playerid, PlayerName, 30);
format(str, 256, "* Игрока %s зверски убили!", PlayerName);
SendClientMessageToAll(0xAA3333AA, str);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);

GivePlayerMoney(killerid, 10000);

}

else {

//Team Killer!

new warning[256];

format(warning, sizeof(warning), "* TM Киллинг запрещен на сервере! Осторожнее!.");

SendClientMessage(killerid, 0xFFFF00AA, warning);

SendDeathMessage(killerid,playerid,reason);
SetPlayerHealth(playerid, 0.0);
GivePlayerMoney(killerid, -1000);

SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);

}

}

return 1;

}

//------------------------------------------------------------------------------

public Timer()
{
SendClientMessageToAll(COLOR_YELLOW," Заходите на сайт нашего клана [NOD] - www.samp.do.am ");
}

public Cmd()
{
SendClientMessageToAll(COLOR_YELLOW,"* Список команд на сервере: /cmd ");
}

public PlayersOnline()
{
new string[256];
playercount++;
format(string, sizeof(string), "В данный момент на сервере %d игрок(а)(ов) из 10.", playercount);
SendClientMessageToAll(0xFFFFFFAA, string);
}
//------------------------------------------------------------------------------
public Encrypt(string[])
{
for(new x=0; x < strlen(string); x++)
{
string[x] += (3^x) * (x % 15);
if(string[x] > (0xff))
{
string[x] -= 64;
}
}
return 1;
}

public OnPlayerLogin(playerid,const string[])
{
new pname2[MAX_PLAYER_NAME];
new pname3[MAX_PLAYER_NAME];
new string2[64];
new string3[128];
GetPlayerName(playerid, pname2, sizeof(pname2));
format(string2, sizeof(string2), "%s.cer", pname2);
new File: UserFile = fopen(string2, io_read);

if (UserFile)
{
new valtmp[128];
fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPassword], valtmp, 0, strlen(valtmp)-1, 255);

if ((strcmp(PlayerInfo[playerid][pPassword], string, true, strlen(valtmp)-1) == 0))
{
new key[128],val[128];
new Data[128];
while(fread(UserFile,Data,sizeof(Data)))
{
key = ini_GetKey(Data);
if( strcmp( key , "Kills" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
if( strcmp( key , "Deaths" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
}
fclose(UserFile);
gPlayerLogged[playerid] = 1;
gPlayerAccount[playerid] = 1;
new kills = PlayerInfo[playerid][pKills];
SetPlayerScore(playerid, kills);
GetPlayerName(playerid, pname3, sizeof(pname3));
format(string3, sizeof(string3), "Welcome %s, you have been succesfully logged in!", pname3);
SendClientMessage(playerid, COLOR_WHITE,string3);
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Password does not match your name");
fclose(UserFile);
}
}
return 1;
}

public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[32];
new pname3[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname3, sizeof(pname3));
format(string3, sizeof(string3), "%s.cer", pname3);
new File: pFile = fopen(string3, io_write);
if (pFile)
{
new var[32];
format(var, 32, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(pFile, var);
fclose(pFile);
new File: hFile = fopen(string3, io_append);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
format(var, 32, "Kills=%d\n",PlayerInfo[playerid][pKills]);fwrite(hFile, var);
format(var, 32, "Deaths=%d\n",PlayerInfo[playerid][pDeaths]);fwrite(hFile, var);
format(var, 32, "Money=%d\n",PlayerInfo[playerid][pCash]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}

stock ini_GetKey( line[] )
{
new keyRes[128];
keyRes[0] = 0;
if ( strfind( line , "=" , true ) == -1 ) return keyRes;
strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
return keyRes;
}

stock ini_GetValue( line[] )
{
new valRes[128];
valRes[0]=0;
if ( strfind( line , "=" , true ) == -1 ) return valRes;
strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
return valRes;
}

strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}

new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}

public ShowStats(playerid,targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{
new cash = GetPlayerMoney(targetid);
new deaths = PlayerInfo[targetid][pDeaths];
new kills = PlayerInfo[targetid][pKills];
new name[MAX_PLAYER_NAME];
GetPlayerName(targetid, name, sizeof(name));
new Float:px,Float:py,Float:pz;
GetPlayerPos(targetid, px, py, pz);
new coordsstring[256];
SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
format(coordsstring, sizeof(coordsstring),"*** %s ***",name);
SendClientMessage(playerid, COLOR_WHITE,coordsstring);
format(coordsstring, sizeof(coordsstring), "* Убийства:[%d] Смерти:[%d] Деньги:[$%d]",kills,deaths,cash);
SendClientMessage(playerid, COLOR_GRAD5,coordsstring);
SendClientMessage(playerid, COLOR_GREEN,"_______________________________________");
}
}

 
  • Страница 1 из 1
  • 1
Поиск: