Вот вышел очередной мой скрипт... меня о нём также попросили Cразу говорю, сорри, что так долго, было много дел или меня постоянно отвлекали и ещё долго не мог сделать скрин))
Код полностью оптимизирован, поэтому нагрузки на сервер нет, не будет ни лагать и и т.п.
В конце у нас получится что типо этого(под деньгами):
new PLIDs[MAX_PLAYERS];//это не трогать new MaxPlayers = 0;//это не трогать new Text:Date;//имя переменной текстдрава
В public OnGameModeInit:
Code
for(new i=0;i<sizeof(PLIDs);i++){PLIDs[i] = -1;}//не трогать Date = TextDrawCreate(498.000000,106.000000, "04.10.2011");//создаем текстдрав TextDrawBackgroundColor(Date,0x00000FF);//цвет обводки TextDrawLetterSize(Date,0.400000,2.2000000); TextDrawFont(Date,3);//шрифт TextDrawColor(Date,0x0086ffAA);//цвет тектдрав TextDrawSetOutline(Date,1);//включает обводку TextDrawSetProportional(Date,1);//включает пропорциональное соотношение SetTimer("DATA", 10000, 1);//время через которое подключятся часы и дата
Потом в public OnPlayerDisconnect(playerid, reason):
Code
TextDrawHideForPlayer(playerid,Date); //прячем текстдрав for(new i=0;i<MaxPlayers;i++){//не трогать( для оптимизации кода) if(PLIDs[i] == playerid)//не трогать( для оптимизации кода) { MaxPlayers--;//не трогать( для оптимизации кода) PLIDs[i] = PLIDs[MaxPlayers];//не трогать( для оптимизации кода) PLIDs[MaxPlayers] = -1;//не трогать( для оптимизации кода) break; } }
Public должен выглядеть примерно так:
Code
public OnPlayerDisconnect(playerid, reason){ TextDrawHideForPlayer(playerid,Date); //прячем текстдрав for(new i=0;i<MaxPlayers;i++){//не трогать( для оптимизации кода) if(PLIDs[i] == playerid)//не трогать( для оптимизации кода) { MaxPlayers--;//не трогать( для оптимизации кода) PLIDs[i] = PLIDs[MaxPlayers];//не трогать( для оптимизации кода) PLIDs[MaxPlayers] = -1;//не трогать( для оптимизации кода) break; } } return 1; }
И в конец мода добавляем:
Code
forward DATA(playerid);//создаем форвард для обновления public DATA(){ new string[150];// занимаем 150 ОЗУ //Дата new day,month,year;//обозначаем переменную дня,месяца,года getdate(year,month,day);//узнаём дату format(string, sizeof(string), "%02d.%02d.%d",day,month,year);//записываем в стринг for(new i=0;i<MaxPlayers;i++){//выполяем для всех пользователей TextDrawSetString(Date,string);//показываем стринг TextDrawShowForPlayer(i,Date);}//показываем тектдрав return 1;}