AMX MOD X
Пятница, 29.03.2024, 13:50:12



Приветствую Вас Гость | RSS
[ Главная ] [ Всё о тумане - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Скрипты » Всё о тумане
Всё о тумане
HoRRoRДата: Вторник, 08.12.2009, 20:21:51 | Сообщение # 1
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
Данный скрипт позволит включать/выключать туман для одного/всех игроков в любое время моментально.
Т.е. если вы ставили на карте env_fog - забудьте этот страшный сон!

А все на самом деле очень просто:

Code

message_begin(MSG_ALL, get_user_msgid("Fog"), {0,0,0}, id)
write_byte(Red)  // R
write_byte(Green)    // G
write_byte(Blue)  // B
write_byte(0)  // Ignoring? But it must be Start Distance
write_byte(0)  // Ignoring? But it must be End Distance
write_byte(outamt)    // ammount - 0..255 of 57, 58, 59 and 60 levels
write_byte(level)    // level - 57,58,59,60
message_end()

Все значения я получил эксперементальным путём. Хочу заметить, что значения для Start Distance и End Distance не влияют на туман :(, но они должны быть. По поводу плотности: есть несколько уровней тумана по 256 значений. Я немного продвинут идею и создал специальную функцию:

Code
public MsgFogToggle(id, Red, Green, Blue, Ammount)
{
    new outamt, level
       
    if (Ammount > 0 && Ammount <= 255)
    {    
     outamt = Ammount
     level = 57
    }
    else if (Ammount >= 256 && Ammount <= 511)
    {
     outamt = Ammount - 256
     level = 58
    }
    else if (Ammount >= 512 && Ammount <= 767)
    {
     outamt = Ammount - 512
     level = 59
    }
    else if (Ammount >= 768 && Ammount <= 1023)
    {
     outamt = Ammount - 768
     level = 60
    }else if (Ammount <= 0 || Ammount > 1023)
    {
     outamt = 0
     level = 0
    }
       
    message_begin(MSG_ALL, get_user_msgid("Fog"), {0,0,0}, id)
    write_byte(Red)  // R
    write_byte(Green)    // G
    write_byte(Blue)    // B
    write_byte(0)  // Ignoring? But it must be Start Distance
    write_byte(0)  // Ignoring? But it must be End Distance
    write_byte(outamt)    // ammount - 0..255 of 57, 58, 59 and 60 levels
    write_byte(level)    // level - 57,58,59,60
    message_end()
}

MsgFogToggle(ИД ИГРОКА (если 0 - то для всех), Red, Green, Blue, Плотность тумана)
Плотность задается в интервале от 1 до 1023, любое другое значение выключит туман.

Также для тех, кто хочет просматривать любый настройки тумана в игре - написан плагин. Пишем в консоле "g_fog RED GREEN BLUE AMMOUNT", где соответственно задаём свои значения. Жмём [Enter] и вуаля!

зы. неплохо было б, научить эту функцию понимать hex цвета :)
ззы. я в плагине "реализовал" "плавное" включение тумана. просто введите mist в консоли, закройте ее и смотрите ;)

Прикрепления: fog_test.sma (1.9 Kb)


Сообщение отредактировал HoRRoR - Вторник, 08.12.2009, 20:25:08
 
PomanoBДата: Вторник, 08.12.2009, 21:00:59 | Сообщение # 2
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
Класс)
Хорошая идея )

Quote (HoRRoR)
неплохо было б, научить эту функцию понимать hex цвета

https://forums.alliedmods.net/showthread.php?t=85014 -эту темку глянь


http://romanov4400.mybrute.com
 
CLLlAgOBДата: Среда, 27.01.2010, 15:48:00 | Сообщение # 3
Полковник
Группа: Скриптеры
Сообщений: 217
Репутация: 14
Статус: Не в сети
да если хочешь выставить для конкретного игрока надо брать не MSG_ALL а MSG_ONE
 
HoRRoRДата: Четверг, 28.01.2010, 01:04:33 | Сообщение # 4
Полковник
Группа: Скриптеры
Сообщений: 181
Репутация: 8
Статус: Не в сети
кстати да :) забыл про это
 
AMX Mod X Форум » Скриптинг » Скрипты » Всё о тумане
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024