Русское сообщество по скриптингу

Цветной чат через lang файл

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Цветной чат через lang файл

Сообщение Fast » 15 апр 2012, 21:59

Как сделать цветной чат на этом примере ?
[pawn]
  1. #include <amxmodx>

  2. #include <amxmisc>

  3.  

  4. #define PLUGIN "End Round Music"

  5. #define VERSION "2.0"

  6. #define AUTHOR "Sho0ter"

  7.  

  8. #define TRACKSNUM 100

  9.  

  10. new ALLMusic[TRACKSNUM][128]

  11. new CTMusic[TRACKSNUM][128]

  12. new TMusic[TRACKSNUM][128]

  13.  

  14. new PlaylistSize

  15. new CTNum

  16. new TNum

  17. new ALLNum

  18. new SayText

  19.  

  20. new Mode[32]

  21. new Configsdir[64]

  22. new CurrentMap[64]

  23. new File[96]

  24. new Playlist[128]

  25. new Play[128]

  26. new PlayCommand[128]

  27. new CheckFile[128]

  28.  

  29. new bool:Ermon[33]

  30.  

  31. new PcvarMode

  32. new PcvarVol

  33. new PcvarRadio

  34. new PcvarDelay

  35.  

  36. public plugin_init()

  37. {

  38.         register_plugin(PLUGIN, VERSION, AUTHOR)

  39.         register_dictionary("endroundmusic.txt")

  40.         register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")

  41.         register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")

  42.         PcvarMode = register_cvar("erm_mode", "1")

  43.         PcvarVol = register_cvar("erm_autovol", "0.5")

  44.         PcvarRadio = register_cvar("erm_radio", "1")

  45.         PcvarDelay = register_cvar("erm_delay", "20.0")

  46.         register_clcmd("say /ermon", "cmd_ermon", 0, " - turn on end round music")  

  47.         register_clcmd("say /ermoff", "cmd_ermoff", 0, " - turn off end round music")  

  48.         SayText = get_user_msgid("SayText");

  49.         return PLUGIN_CONTINUE

  50. }

  51.  

  52. public plugin_precache()

  53. {

  54.         get_configsdir(Configsdir, 63)

  55.         get_mapname(CurrentMap, 63)

  56.         formatex(Playlist, 127, "%s/endroundmusic/%s.ini", Configsdir, CurrentMap)

  57.         new Index = 0

  58.         while(CurrentMap[Index] != '_' && CurrentMap[Index] != '^0')

  59.         {

  60.                 Index++

  61.         }

  62.         if(!file_exists(Playlist) && CurrentMap[Index] == '_')

  63.         {

  64.                 CurrentMap[Index] = '^0'

  65.                 formatex(Playlist, 127, "%s/endroundmusic/%s_.ini", Configsdir, CurrentMap)

  66.         }

  67.         if(!file_exists(Playlist))

  68.         {

  69.                 formatex(Playlist, 127, "%s/endroundmusic/default.ini", Configsdir)

  70.         }

  71.         if(!file_exists(Playlist))

  72.         {

  73.                 log_amx("Playlist <%s> not found.", Playlist)

  74.                 set_fail_state("Playlist not found")

  75.                 return PLUGIN_CONTINUE

  76.         }

  77.         PlaylistSize = file_size(Playlist, 1)

  78.         for(new i = 0; i <= PlaylistSize; i++)

  79.         {

  80.                 new Buffer[128], len, Result

  81.                 Result = read_file(Playlist, i, Buffer, sizeof(Buffer)-1, len)

  82.                 if(!Result)

  83.                 {

  84.                         continue

  85.                 }

  86.                 parse(Buffer, File, 95, Mode, 31)

  87.                 if(File[0] == ';' || File[0] == '/' || File[0] == ' ' || equal(File, ""))

  88.                 {

  89.                         continue

  90.                 }

  91.                 formatex(CheckFile, 127, "sound/%s", File)

  92.                 if(!file_exists(CheckFile))

  93.                 {

  94.                         log_amx("File not found <%s>", CheckFile)

  95.                         continue

  96.                 }

  97.                 if(equal(Mode, "CT"))

  98.                 {

  99.                         formatex(CTMusic[CTNum], 127, "%s", File)

  100.                         CTNum++

  101.                         precache_sound(File)

  102.                 }

  103.                 else if(equal(Mode, "TER"))

  104.                 {

  105.                         formatex(TMusic[TNum], 127, "%s", File)

  106.                         TNum++

  107.                         precache_sound(File)

  108.                 }

  109.                 else if(equal(Mode, "ALL"))

  110.                 {

  111.                         formatex(ALLMusic[ALLNum], 127, "%s", File)

  112.                         ALLNum++

  113.                         precache_sound(File)

  114.                 }

  115.         }

  116.         if(CTNum == 0 && TNum == 0 && ALLNum == 0)

  117.         {

  118.                 log_amx("Not found tracks in playlist.")

  119.                 set_fail_state("Playlist empty")

  120.                 return PLUGIN_CONTINUE

  121.         }

  122.         log_amx("Loaded tracks: CT <%d> TER <%d> ALL <%d>", CTNum, TNum, ALLNum)

  123.         return PLUGIN_CONTINUE

  124. }

  125.  

  126. public client_disconnect(id)

  127. {

  128.         remove_task(id)

  129.         return PLUGIN_CONTINUE

  130. }

  131.  

  132. public client_putinserver(id)

  133. {

  134.         set_task(get_pcvar_float(PcvarDelay), "showerminfo", id)

  135.         return PLUGIN_HANDLED

  136. }

  137.  

  138. public t_win()

  139. {

  140.         if(!get_pcvar_num(PcvarMode))

  141.         {

  142.                 return PLUGIN_HANDLED

  143.         }

  144.         switch(get_pcvar_num(PcvarMode))

  145.         {

  146.                 case 1:

  147.                 {

  148.                         formatex(Play, 127, "%s", TMusic[random_num(0, TNum-1)])

  149.                 }

  150.                 case 2:

  151.                 {

  152.                         formatex(Play, 127, "%s", ALLMusic[random_num(0, ALLNum-1)])

  153.                 }

  154.                 case 3:

  155.                 {

  156.                         new Randomizer = random_num(1, 2)

  157.                         switch(Randomizer)

  158.                         {

  159.                                 case 1:

  160.                                 {

  161.                                         formatex(Play, 127, "%s", TMusic[random_num(0, TNum-1)])

  162.                                 }

  163.                                 case 2:

  164.                                 {

  165.                                         formatex(Play, 127, "%s", ALLMusic[random_num(0, ALLNum-1)])

  166.                                 }

  167.                         }

  168.                 }

  169.                 case 4:

  170.                 {

  171.                         new Randomizer = random_num(1, 3)

  172.                         switch(Randomizer)

  173.                         {

  174.                                 case 1:

  175.                                 {

  176.                                         formatex(Play, 127, "%s", CTMusic[random_num(0, CTNum-1)])

  177.                                 }

  178.                                 case 2:

  179.                                 {

  180.                                         formatex(Play, 127, "%s", TMusic[random_num(0, TNum-1)])

  181.                                 }

  182.                                 case 3:

  183.                                 {

  184.                                         formatex(Play, 127, "%s", ALLMusic[random_num(0, ALLNum-1)])

  185.                                 }

  186.                         }

  187.                 }

  188.         }

  189.         if(containi(Play, ".wav") != -1)

  190.         {

  191.                 formatex(PlayCommand, 127, "spk %s", Play)

  192.         }

  193.         else if(containi(Play, ".mp3") != -1)

  194.         {

  195.                 formatex(PlayCommand, 127, "mp3 play sound/%s", Play)

  196.         }

  197.         else

  198.         {

  199.                 log_amx("Unsupported file type <%s>", Play)

  200.                 return PLUGIN_HANDLED

  201.         }

  202.         for(new id = 0; id <= get_maxplayers(); id++)

  203.         {

  204.                 if(!is_user_connected(id) || !Ermon[id])

  205.                 {

  206.                         continue

  207.                 }

  208.                 client_cmd(id, "stopsound")

  209.                 client_cmd(id, "%s", PlayCommand)

  210.                 if(get_pcvar_num(PcvarRadio))

  211.                 {

  212.                         client_cmd(id, "spk radio/terwin")

  213.                 }

  214.         }

  215.         return PLUGIN_HANDLED

  216. }

  217.  

  218. public ct_win()

  219. {

  220.         if(!get_pcvar_num(PcvarMode))

  221.         {

  222.                 return PLUGIN_HANDLED

  223.         }

  224.         switch(get_pcvar_num(PcvarMode))

  225.         {

  226.                 case 1:

  227.                 {

  228.                         formatex(Play, 127, "%s", CTMusic[random_num(0, CTNum-1)])

  229.                 }

  230.                 case 2:

  231.                 {

  232.                         formatex(Play, 127, "%s", ALLMusic[random_num(0, ALLNum-1)])

  233.                 }

  234.                 case 3:

  235.                 {

  236.                         new Randomizer = random_num(1, 2)

  237.                         switch(Randomizer)

  238.                         {

  239.                                 case 1:

  240.                                 {

  241.                                         formatex(Play, 127, "%s", CTMusic[random_num(0, CTNum-1)])

  242.                                 }

  243.                                 case 2:

  244.                                 {

  245.                                         formatex(Play, 127, "%s", ALLMusic[random_num(0, ALLNum-1)])

  246.                                 }

  247.                         }

  248.                 }

  249.                 case 4:

  250.                 {

  251.                         new Randomizer = random_num(1, 3)

  252.                         switch(Randomizer)

  253.                         {

  254.                                 case 1:

  255.                                 {

  256.                                         formatex(Play, 127, "%s", CTMusic[random_num(0, CTNum-1)])

  257.                                 }

  258.                                 case 2:

  259.                                 {

  260.                                         formatex(Play, 127, "%s", TMusic[random_num(0, TNum-1)])

  261.                                 }

  262.                                 case 3:

  263.                                 {

  264.                                         formatex(Play, 127, "%s", ALLMusic[random_num(0, ALLNum-1)])

  265.                                 }

  266.                         }

  267.                 }

  268.         }

  269.         if(containi(Play, ".wav") != -1)

  270.         {

  271.                 formatex(PlayCommand, 127, "spk %s", Play)

  272.         }

  273.         else if(containi(Play, ".mp3") != -1)

  274.         {

  275.                 formatex(PlayCommand, 127, "mp3 play sound/%s", Play)

  276.         }

  277.         else

  278.         {

  279.                 log_amx("Unsupported file type <%s>", PLUGIN, Play)

  280.                 return PLUGIN_HANDLED

  281.         }

  282.         for(new id = 0; id <= get_maxplayers(); id++)

  283.         {

  284.                 if(!is_user_connected(id) || !Ermon[id])

  285.                 {

  286.                         continue

  287.                 }

  288.                 client_cmd(id, "stopsound")

  289.                 client_cmd(id, "%s", PlayCommand)

  290.                 if(get_pcvar_num(PcvarRadio))

  291.                 {

  292.                         client_cmd(id, "spk radio/ctwin")

  293.                 }

  294.         }

  295.         return PLUGIN_HANDLED

  296. }

  297.  

  298. public cmd_ermon(id)

  299. {

  300.         Ermon[id] = true

  301.         client_cmd(id, "mp3volume %f", get_pcvar_float(PcvarVol))

  302.         client_cmd(id, "spk vox/activated")

  303.         green_print(id, "ERMON_MSG")

  304.         return PLUGIN_CONTINUE

  305. }

  306.  

  307.  

  308. public cmd_ermoff(id)

  309. {

  310.         Ermon[id] = false

  311.         client_cmd(id, "mp3 stop")

  312.         client_cmd(id, "spk vox/deactivated")

  313.         green_print(id, "ERMOFF_MSG")

  314.         return PLUGIN_CONTINUE

  315. }

  316.  

  317. public showerminfo(id)

  318. {

  319.         Ermon[id] = true

  320.         client_cmd(id, "mp3volume %f", get_pcvar_float(PcvarVol))

  321.         green_print(id, "ERMINFO_MSG")

  322. }

  323.  

  324. stock green_print(index, const message[])

  325. {

  326.         new finalmsg[192];

  327.         formatex(finalmsg, 191, "^x04[ERM] ^x01%L", index, message);

  328.         message_begin(MSG_ONE, SayText, _, index);

  329.         write_byte(index);

  330.         write_string(finalmsg);

  331.         message_end();

  332. }
[/pawn]
Код: Выделить всё
[en]
ERMINFO_MSG = Type /ermoff turn off end round music
ERMON_MSG = End round music activated, type /ermoff turn off end round music
ERMOFF_MSG = End round music deactivated, type /ermon turn on end round music

[ru]
ERMINFO_MSG = Команда /ermoff деактивирует музыку в конце раунда
ERMON_MSG = Музыка в конце раунда активирована, пишите /ermoff чтобы выключить
ERMOFF_MSG = Музыка в конце раунда деактивирована, пишите /ermon чтобы включить

Покажите этот плагин но чтобы колорчат уже был настроен через ланг файл. Уже полно способов перепробывал, покажите пожалуйста хочу разобраться
Аватара пользователя
Fast
 
Сообщения: 1088
Зарегистрирован: 11 фев 2012, 23:13
Благодарил (а): 132 раз.
Поблагодарили: 122 раз.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15