HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <amxmisc>
  3.  
  4. new onoff,rgb2,density_cvar,r,g,b,g_density[4]
  5. new bool:on
  6. public plugin_init() {
  7. register_plugin("Advanced Fog","0.7","Sh!nE*")
  8. onoff = register_cvar("amx_fog_default","1")
  9. rgb2 = register_cvar("amx_fog_color","116 137 147")
  10. density_cvar = register_cvar("amx_fog_amount","3")
  11. register_concmd("amx_fog","set_fog",ADMIN_MAP,"<be/ki> <r/g/b> <mennyiseg 1-9>")
  12. }
  13.  
  14. public set_fog(id,level,cid)
  15. {
  16. if (!cmd_access(id,level,cid,4)) return PLUGIN_HANDLED
  17. new args[3][16],rgb[3][4],numrgb[3],i,tempdens[4]
  18. read_argv(1,args[0],15)
  19. read_argv(2,args[1],15)
  20. read_argv(3,args[2],15)
  21. new density = str_to_num(args[2])
  22. if((args[1][0]=='0' && !args[1][2]) || equali(args[1],"off")) {
  23. new temp_rgb2[3][4],temp_rgb[16]
  24. get_pcvar_string(rgb2,temp_rgb,15)
  25. parse(temp_rgb,temp_rgb2[0],3,temp_rgb2[1],3,temp_rgb2[2],3)
  26. for(i=0;i < 3;i++) numrgb[i] = str_to_num(temp_rgb2[i])
  27. } else {
  28. parse(args[1],rgb[0],3,rgb[1],3,rgb[2],3)
  29. for(i=0;i < 3;i++) numrgb[i] = str_to_num(rgb[i])
  30. }
  31. if(numrgb[0] < 0 || numrgb[0] > 255 || numrgb[1] < 0 || numrgb[1] > 255 || numrgb[2] < 0 || numrgb[2] > 255) {
  32. client_print(id,print_console,"FELHIVAS: RGB csak 0 es 255 kozotti szam lehet!");
  33. for(i=0;i < 3;i++) numrgb[i] = 150
  34. }
  35. if(density == 0 || density > 9 || density < 1) {client_print(id,print_console,"FELHIVAS: A kodmennyisegi ertek 1 es 9 kozott lehet!");density = get_pcvar_num(density_cvar);}
  36. switch(density) {
  37. case 1:{tempdens[0]=3;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
  38. case 2:{tempdens[0]=125;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
  39. case 3:{tempdens[0]=27;tempdens[1]=59;tempdens[2]=66;tempdens[3]=96;}
  40. case 4:{tempdens[0]=60;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
  41. case 5:{tempdens[0]=68;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
  42. case 6:{tempdens[0]=95;tempdens[1]=59;tempdens[2]=10;tempdens[3]=41;}
  43. case 7:{tempdens[0]=125;tempdens[1]=59;tempdens[2]=111;tempdens[3]=18;}
  44. case 8:{tempdens[0]=3;tempdens[1]=60;tempdens[2]=111;tempdens[3]=18;}
  45. case 9:{tempdens[0]=19;tempdens[1]=60;tempdens[2]=68;tempdens[3]=116;}
  46. }
  47. g_density[0]=tempdens[0]
  48. g_density[1]=tempdens[1]
  49. g_density[2]=tempdens[2]
  50. g_density[3]=tempdens[3]
  51. r = numrgb[0]
  52. g = numrgb[1]
  53. b = numrgb[2]
  54.  
  55. if(equali(args[0],"on") || args[0][0]=='1') {
  56. on = true
  57. message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
  58. write_byte(numrgb[0]) // R
  59. write_byte(numrgb[1]) // G
  60. write_byte(numrgb[2]) // B
  61. write_byte(tempdens[2]) // SD
  62. write_byte(tempdens[3]) // ED
  63. write_byte(tempdens[0]) // D1
  64. write_byte(tempdens[1]) // D2
  65. message_end()
  66. }
  67. else if(equali(args[0],"off") || args[0][0]=='0') {
  68. on = false
  69. message_begin(MSG_ALL,get_user_msgid("Fog"),{0,0,0},0)
  70. write_byte(0) // R
  71. write_byte(0) // G
  72. write_byte(0) // B
  73. write_byte(0) // SD
  74. write_byte(0) // ED
  75. write_byte(0) // D1
  76. write_byte(0) // D2
  77. message_end()
  78. }
  79. return PLUGIN_HANDLED
  80. }
  81.  
  82. public client_putinserver(id) set_task(0.1,"set_fog2",id)
  83.  
  84. public set_fog2(id) {
  85. if(on || get_pcvar_num(onoff)) {
  86. new number[3],tempdens[4]
  87. if(g_density[0] == 0 && !on) {
  88. switch(get_pcvar_num(density_cvar)) {
  89. case 1:{tempdens[0]=3;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
  90. case 2:{tempdens[0]=125;tempdens[1]=58;tempdens[2]=111;tempdens[3]=18;}
  91. case 3:{tempdens[0]=27;tempdens[1]=59;tempdens[2]=66;tempdens[3]=96;}
  92. case 4:{tempdens[0]=60;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
  93. case 5:{tempdens[0]=68;tempdens[1]=59;tempdens[2]=90;tempdens[3]=101;}
  94. case 6:{tempdens[0]=95;tempdens[1]=59;tempdens[2]=10;tempdens[3]=41;}
  95. case 7:{tempdens[0]=125;tempdens[1]=59;tempdens[2]=111;tempdens[3]=18;}
  96. case 8:{tempdens[0]=3;tempdens[1]=60;tempdens[2]=111;tempdens[3]=18;}
  97. case 9:{tempdens[0]=19;tempdens[1]=60;tempdens[2]=68;tempdens[3]=116;}
  98. }
  99. }
  100. else {
  101. tempdens[0] = g_density[0]
  102. tempdens[1] = g_density[1]
  103. tempdens[2] = g_density[2]
  104. tempdens[3] = g_density[3]
  105. }
  106. if((r > 0 || g > 0 || b > 0) && on) {number[0] = r;number[1] = g;number[2] = b;}
  107. else {
  108. new string[16],string2[3][4],i
  109. get_pcvar_string(rgb2,string,15)
  110. parse(string,string2[0],3,string2[1],3,string2[2],3)
  111. for(i=0;i < 3;i++) number[i] = str_to_num(string2[i])
  112. message_begin(MSG_ONE,get_user_msgid("Fog"),{0,0,0},id)
  113. write_byte(number[0]) // R
  114. write_byte(number[1]) // G
  115. write_byte(number[2]) // B
  116. write_byte(tempdens[2]) // SD
  117. write_byte(tempdens[3]) // ED
  118. write_byte(tempdens[0]) // D1
  119. write_byte(tempdens[1]) // D2
  120. message_end()
  121. }
  122. }
  123. }
  124. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  125. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs16 \n\\ par }
  126. */
  127.