Advertisement
Guest User

uite

a guest
Jul 23rd, 2014
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.52 KB | None | 0 0
  1. /*
  2. Cvar-uri:
  3. furien_alien_hp 400 - viata care o primeste alien
  4. furien_alien_ap 400 - armura care o primeste alien
  5. furien_alien_speed 500 - viteza care o primeste alien
  6.  
  7. furien_predator_hp 300 - viata care o primeste predator
  8. furien_predator_ap 200 - armura care o primeste predator
  9. furien_predator_speed 1000 - viteza care o primeste predator
  10. */
  11.  
  12. #include <amxmodx>
  13. #include <cstrike>
  14. #include <fun>
  15. #include <hamsandwich>
  16. #include <fakemeta>
  17. #include <dhudmessage>
  18. #include <fun>
  19.  
  20. #define PLUGIN "Furien Alien vs. Predator"
  21. #define VERSION "1.0"
  22. #define AUTHOR "DestorY"
  23.  
  24. #define IsPlayer(%1) ( 1 <= %1 <= g_MaxPlayers )
  25. #define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
  26.  
  27. native set_user_crossbow ( id );
  28.  
  29. new bool:UserIsPredator[ 33 ];
  30. new bool:UserIsAlien[ 33 ];
  31. new cvar_hp;
  32. new cvar_ap;
  33. new cvar_speed;
  34. new cvar_hp2;
  35. new cvar_ap2;
  36. new cvar_speed2;
  37. new cvar_damage;
  38. new cvar_damage2;
  39. new g_MaxPlayers;
  40. new alien_v_knife [ 66 ] = "models/furien/knifes/v_alien.mdl";
  41.  
  42. public plugin_init() {
  43. register_plugin(PLUGIN, VERSION, AUTHOR)
  44. g_MaxPlayers = get_maxplayers ( );
  45. cvar_hp = register_cvar( "furien_alien_hp", "400" );
  46. cvar_ap = register_cvar( "furien_alien_ap", "400" );
  47. cvar_speed = register_cvar( "furien_alien_speed", "1300" );
  48. cvar_damage = register_cvar( "furien_alien_damage", "12" );
  49.  
  50. cvar_hp2 = register_cvar( "furien_predator_hp", "400" );
  51. cvar_ap2 = register_cvar( "furien_predator_ap", "400" );
  52. cvar_speed2 = register_cvar( "furien_predator_speed", "800" );
  53. cvar_damage2 = register_cvar( "furien_predator_damage", "2" );
  54.  
  55. RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", 1 );
  56. register_event ( "CurWeapon", "AlienCurrentWeapon", "be", "1=1" );
  57. RegisterHam ( Ham_Spawn, "player", "Models", 1 );
  58. RegisterHam ( Ham_TakeDamage, "player", "PredatorAndAlienDamage" );
  59. register_forward ( FM_PlayerPreThink, "ForcePlayerSpeed" );
  60. }
  61. public models_precache ( ) {
  62. precache_model("models/player/alien/alien.mdl");
  63. precache_model("models/player/predator/predator.mdl");
  64. precache_model ( alien_v_knife );
  65. }
  66.  
  67. public client_connect( id )
  68. {
  69. if ( is_user_bot( id ) || is_user_hltv( id ) )
  70. return 0;
  71.  
  72. UserIsAlien[ id ] = false;
  73. UserIsPredator[ id ] = false;
  74.  
  75. return 0;
  76. }
  77.  
  78. public client_disconnect( id )
  79. {
  80. if ( is_user_bot( id ) || is_user_hltv( id ) )
  81. return 0;
  82.  
  83. UserIsAlien[ id ] = false;
  84. UserIsPredator[ id ] = false;
  85.  
  86. return 0;
  87. }
  88.  
  89. public Ham_PlayerSpawnPost( id )
  90. {
  91.  
  92. if( !is_user_alive( id ) || !is_user_connected( id ) ) return HAM_IGNORED;
  93.  
  94. set_task( 0.1, "RemovePowers", id + 123 );
  95.  
  96. return HAM_IGNORED;
  97.  
  98. }
  99. public RemovePowers( id )
  100. {
  101. id -= 123;
  102. if( !is_user_connected( id ) ) return 1;
  103. if( UserIsAlien[ id ] )
  104. set_user_rendering( id );
  105.  
  106. if( UserIsPredator[ id ] )
  107. set_user_rendering( id );
  108.  
  109.  
  110.  
  111. if( UserIsAlien[ id ] || UserIsPredator[ id ] )
  112. set_user_armor( id, 0 );
  113.  
  114. UserIsPredator[ id ] = false;
  115. UserIsAlien[ id ] = false;
  116.  
  117.  
  118. return 0;
  119. }
  120.  
  121. public SearchForPredator( )
  122. {
  123. new iTerro = CountPlayers( 1 );
  124. new iCounter = CountPlayers( 2 );
  125.  
  126. if( iCounter == 1 && iTerro > 0 )
  127. {
  128.  
  129. new id = GetRemainingPlayerId( 2 );
  130. if( UserIsPredator[ id ] ) return 1;
  131. strip_user_weapons ( id );
  132. UserIsPredator[ id ] = true;
  133.  
  134. ColorChat( 0,".g[Furien.AnZo.Ro].t%s a devenit Predator. ", get_name( id ) );
  135. ColorChat( 0,".g[Furien.AnZo.Ro].t Are.g %d.t HP,.g %d.t AP,.g %d.t Speed, aveti grija !", get_pcvar_num( cvar_hp2 ), get_pcvar_num( cvar_ap2 ), get_pcvar_num( cvar_speed2 ) );
  136.  
  137. set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 0.0, 5.0, 0.0, 1.0, 3);
  138. show_hudmessage( 0, "%s a devenit Predator !^n Cea din urma salvare a omenirii !", get_name( id ) );
  139.  
  140.  
  141. set_user_maxspeed( id, float( get_pcvar_num( cvar_speed2 ) ) );
  142. set_user_health( id, get_pcvar_num( cvar_hp2 ) );
  143. set_user_armor( id, get_pcvar_num( cvar_ap2 ) );
  144. set_user_crossbow ( id );
  145.  
  146. set_user_rendering( id, kRenderFxGlowShell, 0, 145, 255, kRenderNormal, 25 );
  147.  
  148.  
  149. }
  150. return 0;
  151. }
  152.  
  153. public SearchForAlien( )
  154. {
  155. new iTerro = CountPlayers( 1 );
  156. new iCounter = CountPlayers( 2 );
  157.  
  158. if( iTerro == 1 && iCounter > 0 )
  159. {
  160. new id = GetRemainingPlayerId( 1 );
  161. if( UserIsAlien[ id ] ) return 1;
  162. strip_user_weapons ( id );
  163. UserIsAlien[ id ] = true;
  164.  
  165. ColorChat( 0,".g[Furien.AnZo.Ro].t%s a devenit Alien. ", get_name( id ));
  166. ColorChat( 0,".g[Furien.AnZo.Ro].t Are.g %d.t HP,.g %d.t AP,.g %d.t Speed, aveti grija !", get_pcvar_num( cvar_hp ), get_pcvar_num( cvar_ap ), get_pcvar_num( cvar_speed ) );
  167. set_hudmessage( 0, 255, 0, -1.0, -1.0, 0, 0.0, 5.0, 0.0, 1.0, 3);
  168. show_hudmessage( 0, "%s s-a transformat in Alien !^nSansele pamantenilor au scazut !", get_name( id ) );
  169.  
  170.  
  171. set_user_maxspeed( id, float( get_pcvar_num( cvar_speed ) ) );
  172. set_user_health( id, get_pcvar_num( cvar_hp ) );
  173. set_user_armor( id, get_pcvar_num( cvar_ap ) );
  174.  
  175. set_user_rendering( id, kRenderFxGlowShell, 238, 9, 9, kRenderNormal, 25 );
  176.  
  177. }
  178.  
  179. return 0;
  180. }
  181.  
  182. public AlienCurrentWeapon ( id ) {
  183.  
  184. new szKnife = get_user_weapon ( id );
  185. if ( szKnife == CSW_KNIFE ) {
  186. if ( UserIsAlien [ id ] && szKnife == CSW_KNIFE ) {
  187.  
  188. set_pev ( id, pev_viewmodel2, alien_v_knife );
  189. }
  190. }
  191. return 1;
  192. }
  193.  
  194. public Models ( id ) {
  195. if(get_user_team ( id ) == 2 && is_user_alive( id ) && UserIsPredator[ id ] ) {
  196. cs_set_user_model(id, "predator");
  197. }
  198. if(get_user_team ( id ) == 1 && is_user_alive( id ) && UserIsAlien[ id ] ) {
  199. cs_set_user_model(id, "alien");
  200. }
  201. }
  202.  
  203. public PredatorAndAlienDamage ( iVictim, iInflictor, iAttacker, Float:fDamage, iDamageBits )
  204. {
  205. if(IsPlayer(iAttacker)) {
  206.  
  207. if( iInflictor == iAttacker && UserIsPredator [ iAttacker ] && is_user_alive( iAttacker ) && cs_get_user_team( iAttacker ) == CS_TEAM_CT )
  208. {
  209. SetHamParamFloat( 4, fDamage * get_pcvar_num ( cvar_damage2 ));
  210. return HAM_HANDLED;
  211. }
  212.  
  213. if( iInflictor == iAttacker && UserIsAlien [ iAttacker ] && is_user_alive( iAttacker ) && get_user_weapon( iAttacker ) == CSW_KNIFE && cs_get_user_team( iAttacker ) == CS_TEAM_T )
  214. {
  215. SetHamParamFloat( 4, fDamage * get_pcvar_num ( cvar_damage ));
  216. return HAM_HANDLED;
  217. }
  218. }
  219. return HAM_IGNORED;
  220. }
  221.  
  222.  
  223. public ForcePlayerSpeed ( id ) {
  224.  
  225. if ( UserIsAlien [ id ] )
  226. {
  227. set_pev ( id, pev_maxspeed, get_pcvar_num ( cvar_speed ) );
  228. }
  229.  
  230. if ( UserIsPredator [ id ] )
  231. {
  232. set_pev ( id, pev_maxspeed, get_pcvar_num ( cvar_speed2 ) );
  233. }
  234. }
  235. stock ColorChat(const id, const input[], any:...)
  236. {
  237. new count = 1, players[32]
  238. static msg[191]
  239. vformat(msg, 190, input, 3)
  240.  
  241. replace_all(msg, 190, ".g", "^4")
  242. replace_all(msg, 190, ".n", "^1")
  243. replace_all(msg, 190, ".t", "^3")
  244.  
  245. if (id) players[0] = id; else get_players(players, count, "ch")
  246. {
  247. for (new i = 0; i < count; i++)
  248. {
  249. if (is_user_connected(players[i]))
  250. {
  251. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  252. write_byte(players[i]);
  253. write_string(msg);
  254. message_end();
  255. }
  256. }
  257. }
  258. }
  259.  
  260. stock get_name( id )
  261. {
  262. new name[ 32 ];
  263. get_user_name( id, name, sizeof ( name ) -1 );
  264. return name;
  265. }
  266.  
  267. stock CountPlayers( const Team )
  268. {
  269. new iPlayers[ 32 ];
  270. new iPlayersNum;
  271.  
  272. new iPlayersCount;
  273.  
  274. get_players( iPlayers, iPlayersNum, "ch" );
  275. for( new i = 0 ; i < iPlayersNum ; i++ )
  276. {
  277. if( is_user_connected( iPlayers[ i ] ) && is_user_alive( iPlayers[ i ] ) )
  278. {
  279.  
  280. if( Team == 1 )
  281. {
  282. if( get_user_team( iPlayers[ i ] ) == 1 )
  283. {
  284. iPlayersCount++;
  285. }
  286. }
  287. else if( Team == 2 )
  288. {
  289. if( get_user_team( iPlayers[ i ] ) == 2 )
  290. {
  291. iPlayersCount++;
  292. }
  293. }
  294. }
  295.  
  296. }
  297.  
  298. return iPlayersCount;
  299.  
  300. }
  301.  
  302. stock GetRemainingPlayerId( const Team )
  303. {
  304. new iPlayers[ 32 ];
  305. new iPlayersNum;
  306.  
  307. new iPlayerId;
  308.  
  309. get_players( iPlayers, iPlayersNum, "ch" );
  310. for( new i = 0 ; i < iPlayersNum ; i++ )
  311. {
  312. if( is_user_connected( iPlayers[ i ] ) && is_user_alive( iPlayers[ i ] ) )
  313. {
  314.  
  315. if( Team == 1 )
  316. {
  317.  
  318. if( get_user_team( iPlayers[ i ] ) == 1 )
  319. {
  320. iPlayerId = iPlayers[ i ];
  321. }
  322. }
  323. else if( Team == 2 )
  324. {
  325.  
  326. if( get_user_team( iPlayers[ i ] ) == 2 )
  327. {
  328. iPlayerId = iPlayers[ i ];
  329. }
  330. }
  331. }
  332.  
  333. }
  334.  
  335. return iPlayerId;
  336.  
  337. }
  338. /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
  339. *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
  340. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement