Нашел на одном из форумов и решил поделится с вами тут. Не нужно говорить, что я скопировал и тд, я просто этим делюсь с благими целями. :)
О фиче: Для игрока, который перемещается из города в город изменяется погода, она может быть рандомной, меняется раз в 15-45 минут.
Вставка в мод:
Ко всем new:
//============================Погода================ ============================ new weather[3]; // Переменная где будет храниться ID города [0] - LS, [1] -SF, [2] -LV new weatherLS[] = {2,7,8,10,12,13,14,15}; //Номера погоды в LS (Можно сменить на свои) new weatherSF[] = {2,7,8,10,12,13,14,15}; //Номера погоды в SF (Можно сменить на свои) new weatherLV[] = {2,7,8,10,12,13,14,15}; //Номера погоды в LV (Можно сменить на свои)
Теперь мутим свой пабл отвечающий за смену погоды:
ChangeWeather(); // Паблик отвечающий за смену погоды
Теперь нам нужно, чтобы 15 и 45 минут (Время можно сменить.) каждого часа (13:15,14:15,15:40 и т.п) менялась погода. В паблик с секундным обновлением:
new newhour,newminute,newsecond; gettime(newhour, newminute, newsecond); // Узнаём время сервера if(newminute == 15 && newsecond == 00) // Если время сервера соответствует 15 минутам любого часа, то меняем погоду { ChangeWeather(); // Меняем погоду } if(newminute == 40 && newsecond == 00) // Если время сервера соответствует 40 минутам любого часа, то меняем погоду { ChangeWeather(); // Меняем погоду }
Теперь нам нужно создать проверку на координаты игрока, а затем установить погоду. Нам нужно вставить в паблик (Желательно с 2 и более секундами обновления) это:
new Float:x, Float:y, Float:z; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { GetPlayerPos(i, x, y, z); if((x > -992.5172 && x < 4000.0000) && (y < 528.0000 && y > -4000.0000)) // Проверям по позиции игрока где он находиться. В данном случае мы в Los Santos { SetPlayerWeather(i, Weather[0]); // Присваиваем погоду игроку в LS } if((x > -4000.0000 && x< -992.5172) && (y < 4000.0000 && y > -4000.0000)) // Проверям по позиции игрока где он находиться. В данном случае мы в San Fierro { SetPlayerWeather(i, Weather[1]); // Присваиваем погоду игроку в SF } if((x > -992.5172 && x< 4000.0000) && (y < 4000.0000 && y > 528.0000)) // Проверям по позиции игрока где он находиться. В данном случае мы в Las Venturas { SetPlayerWeather(i, Weather[2]); // Присваиваем погоду игроку в LV } } }
[CM]K-9, как же я это не додумался? Уже 3 года увлекаюсь Pawn, но не додумался что код можно редачить( Я это к тому, что бы ты не тупо копировал интересные темы, а что-то добавлял от себя.
Добавлено (10.10.2014, 22:25) --------------------------------------------- И да, написано что каждые 15 и 45 минут, но на самом деле каждые 15 и 40 минут :|
Ставлю -. Баян с Pawno Info. --> Как заработать деньги на проекте Samp Rp | http://cheat-master.ru/forum/14-413833-1-17-1 --> 312 день на сайте | 26 марта (2015 год)