hlmod.hu
https://hlmod.hu/

Surf játékmódok!
https://hlmod.hu/viewtopic.php?f=24&t=4114
Oldal: 1 / 2

Szerző:  kiki [2012.04.18. 18:26 ]
Hozzászólás témája:  Surf játékmódok!

A plugin kérésre készült! Kérelem linkje: http://amxmodx.crys.hu/site/forum/viewtopic.php?f=29&t=3913

Információ:

Elérhető Módok: -> Extra
Éjszaka -> Sötét lesz + ingyen éjjellátó!
Drogosok napja -> Gyorsabb sebesség
Egy hétfői nap -> 200 Élet
Fogócska -> Csak kés és egy ajándék gránát!
Normál nap - > Semmi extra

A módok minden körben randomként jönnek ki!

Forráskód:
Kód:
  1. #define vilagitas(%1) set_lights(%1)

  2.  

  3. #define EJSZAKA 0

  4. #define DROGOS 1

  5. #define HETFO 2

  6. #define FOGOCSKA 3

  7. #define NORMAL 4

  8.  

  9. #define TASKID 33338

  10.  

  11. #define RANDOM random(256)

  12.  

  13. #pragma semicolon 1

  14. #pragma tabsize 0

  15.  

  16. #include <amxmodx>

  17. #include <amxmisc>

  18. #include <fun>

  19. #include <engine>

  20. #include <dhudmessage>

  21. #include <cstrike>

  22.  

  23. new const NEV[] = "Surf Random Gamedays";

  24. new const VERZIO[] = "1.1";

  25. new const KESZITO[] = "Kiki";

  26. new const KESELERESE[] = "weapon_knife";

  27. new const elojel[] = "SURF";

  28. new const Jateknapok[][]=

  29. {

  30.    "Ejszaka",

  31.    "Drogosok Napja",

  32.    "Egy hetfoi nap",

  33.    "Fogocska",

  34.    "Normal Nap"

  35. };

  36.  

  37. enum rgbszinek

  38. {

  39.         piros,

  40.         zold,

  41.         kek

  42. }

  43.  

  44. new hudszine[rgbszinek], bool:is_fogocska, bool:is_drogos, slot, jelenlegimod[15], MessageSay;

  45.  

  46. public plugin_init()

  47. {

  48.         register_plugin(NEV, VERZIO, KESZITO);

  49.         register_logevent( "logevent_round_start", 2, "1=Round_Start" );

  50.         register_logevent("round_end", 2, "1=Round_End");

  51.         register_event("HLTV", "rr", "a", "1=0", "2=0");

  52.         register_event("CurWeapon","fegyverevent","be","1=1","2!29");

  53.         set_task(1.0, "huduzenet", TASKID, "", 0, "b");

  54.         slot = get_global_int(GL_maxClients);

  55.         MessageSay = get_user_msgid ( "SayText" );

  56.         //Ez a terkep allati huduzenet szine

  57.         hudszine[piros] = register_cvar("surf_terkep_piros", "255");

  58.         hudszine[zold] = register_cvar("surf_terkep_zold", "0");

  59.         hudszine[kek] = register_cvar("surf_terkep_kek", "0");

  60. }

  61.  

  62. public logevent_round_start()

  63. {

  64.         is_fogocska = false;

  65.         is_drogos = false;

  66.         new iPlayers[ 32 ], iNum, i, id;

  67.         get_players( iPlayers, iNum, "c" );

  68.        

  69.         new napok = random(sizeof(Jateknapok));

  70.         copy(jelenlegimod, 14, Jateknapok[napok]);

  71.         switch(napok)

  72.         {

  73.                  case EJSZAKA:

  74.                  {

  75.                         vilagitas("a");

  76.                         for( i = 0; i < iNum; i++ )

  77.                         {

  78.                                         id = iPlayers[ i ];    

  79.                                         set_user_maxspeed(id, 0.0 );

  80.                                         cs_set_user_nvg(id, 1);

  81.                                         colored_print(id, "!g[%s]!t Ohh, maris ejszaka van, kaptal ingyen ejjellatot!", elojel);

  82.                         }

  83.                 }

  84.                  case DROGOS:

  85.                  {

  86.                         is_drogos = true;

  87.                         for( i = 0; i < iNum; i++ )

  88.                         {

  89.                                         id = iPlayers[ i ];    

  90.                                         cs_set_user_nvg(id, 0);

  91.                                         set_user_maxspeed(id, 1200.0);

  92.                                         colored_print(id, "!g[%s]!t Jol be drogoztal, a sebesseged megnott 1200.-ra!", elojel);

  93.                         }

  94.                  }

  95.                  case HETFO:

  96.                  {

  97.                         for( i = 0; i < iNum; i++ )

  98.                         {

  99.                                         id = iPlayers[ i ];    

  100.                                         set_user_maxspeed(id, 0.0 );

  101.                                         cs_set_user_nvg(id, 0);

  102.                                         set_user_health(id, 200);

  103.                                         colored_print(id, "!g[%s]!t Lam egy hetfoi nap, kaptal ingyen 200 eletet!", elojel);

  104.                         }

  105.                  }

  106.                  case FOGOCSKA:

  107.                  {

  108.                         is_fogocska = true;

  109.                         for( i = 0; i < iNum; i++ )

  110.                         {

  111.                                         id = iPlayers[ i ];    

  112.                                         set_user_maxspeed(id, 0.0 );

  113.                                         cs_set_user_nvg(id, 0);

  114.                                         strip_user_weapons(id);

  115.                                         give_item(id, "weapon_hegrenade");

  116.                                         give_item(id, "weapon_knife");

  117.                                         colored_print(id, "!g[%s]!t Nincs is jobb egy fogocskanal, csak keselni tudsz!", elojel);

  118.                         }

  119.                  }

  120.                  case NORMAL:

  121.                  {

  122.                         for( i = 0; i < iNum; i++ )

  123.                         {

  124.                                         id = iPlayers[ i ];    

  125.                                         set_user_maxspeed(id, 0.0 );

  126.                                         cs_set_user_nvg(id, 0);

  127.                                         colored_print(id, "!g[%s]!t Hmm, sajnos most semmi extrat nem kaptal!", elojel);

  128.                         }

  129.                  }

  130.         }

  131.        

  132.         set_dhudmessage(RANDOM, RANDOM, RANDOM, -1.0, -1.0, 2, 1.0, 7.0, 0.1, 2.0);

  133.         show_dhudmessage(0, "A jatekmod veletlenszeruen^n%s lett!", Jateknapok[napok]);

  134.        

  135. }

  136.  

  137. public round_end()

  138. {      

  139.         copy(jelenlegimod, 14, "Varakozas");

  140.         new iPlayers[ 32 ], iNum, i, id;

  141.         get_players( iPlayers, iNum, "c" );

  142.         for( i = 0; i < iNum; i++ )

  143.         {

  144.                         id = iPlayers[ i ];    

  145.                         set_user_maxspeed(id, 0.0 );

  146.         }

  147.        

  148. }

  149.        

  150. public rr()

  151. {

  152.         vilagitas("#OFF");

  153.         copy(jelenlegimod, 14, "Varakozas");

  154. }

  155.  

  156. public fegyverevent(id)

  157. {      

  158.         new clip, ammo;

  159.         new weap = get_user_weapon(id, clip, ammo);

  160.         if(is_fogocska == true && weap != CSW_HEGRENADE)

  161.         {

  162.                 client_cmd(id, "%s", KESELERESE);

  163.         }

  164.        

  165.         if(is_drogos == true)

  166.         {

  167.                 set_user_maxspeed(id, 1200.0);

  168.         }      

  169. }

  170.  

  171. public huduzenet()

  172. {

  173.         new index;

  174.         for(index = 1; index <= slot; index++)

  175.         {

  176.                 set_hudmessage(get_pcvar_num(hudszine[piros]), get_pcvar_num(hudszine[zold]), get_pcvar_num(hudszine[kek]), 0.01, 0.14, 0, 1.0, 1.0, _, _, 3);

  177.                 show_hudmessage(index, "Jatekmod: %s", jelenlegimod);

  178.         }

  179.         return PLUGIN_CONTINUE;

  180. }

  181.  

  182. stock colored_print ( const index, const input [ ], any:... )

  183. {

  184.         new sz_Message  [ 191 ];

  185.        

  186.         vformat ( sz_Message, charsmax ( sz_Message ), input, 3 );

  187.        

  188.         replace_all ( sz_Message, charsmax ( sz_Message ), "!g", "^4" );

  189.         replace_all ( sz_Message, charsmax ( sz_Message ), "!t", "^3" );

  190.         replace_all ( sz_Message, charsmax ( sz_Message ), "!y", "^1" );

  191.        

  192.         new i_Players [ 32 ];

  193.         new i_Count;

  194.        

  195.         i_Count = 1;

  196.        

  197.         if ( index )

  198.         {

  199.                 i_Players [ 0 ] = index;

  200.         }

  201.        

  202.         else

  203.         {

  204.                 get_players ( i_Players, i_Count, "ch" );

  205.         }

  206.        

  207.         new i_Number;

  208.        

  209.         for ( i_Number = 0; i_Number < i_Count; i_Number ++ )

  210.         {

  211.                 if ( is_user_connected ( i_Players [ i_Number ] ) )

  212.                 {

  213.                         message_begin ( MSG_ONE_UNRELIABLE, MessageSay, _, i_Players [ i_Number ] );

  214.                         write_byte ( i_Players [ i_Number ] );

  215.                         write_string ( sz_Message );

  216.                         message_end ( );

  217.                 }

  218.         }

  219. }



Todo List:
-

Szerző:  oroszrulett [2012.04.18. 18:31 ]
Hozzászólás témája:  Re: Surf játékmódok!

cuki

Szerző:  ChaspeR [2012.04.18. 19:58 ]
Hozzászólás témája:  Re: Surf játékmódok!

200 ping lett...:S valami nemjó:S [ De ezerhála, eddig nagyon tetszik:D ]

Szerző:  Silent [2012.04.18. 20:11 ]
Hozzászólás témája:  Re: Surf játékmódok!

Úristen kiki... Hova bonyolítottad xD egyébként szép a kód, csak fölösleges ilyeneket definiálni, hogy set_lights mivel ez ígyis úgyis max 1 sor.. :)

Szerző:  kiki [2012.04.19. 07:16 ]
Hozzászólás témája:  Re: Surf játékmódok!

chasper.cfg írta:
200 ping lett...:S valami nemjó:S [ De ezerhála, eddig nagyon tetszik:D ]


Teszteltem nekem nem laggol de majd átnézem!



Silent: Ezt könnyebben megértik a magyarok is

Szerző:  Metal [2012.04.19. 08:34 ]
Hozzászólás témája:  Re: Surf játékmódok!

Kis optimalizálás:

Round Endbe elég ennyi:

Kód:
public round_end()
{       
   copy(jelenlegimod, 14, "Varakozas");
}


A switchekbe felesleges ezeket újra definiálni (korábban megtetted), tehát pakold ki belőle:
Kód:
new iPlayers[ 32 ], iNum, i, id;
get_players( iPlayers, iNum, "c" );


a set hud_message kikerülhet a switch elé:
Kód:
set_dhudmessage(RANDOM, RANDOM, RANDOM, -1.0, -1.0, 2, 1.0, 7.0, 0.1, 2.0); 


Ezt PlayerPreThinkbe tenném (Miért fegyverfüggő, hogy milyen a sebessége). Ez az én szemléletem, (OO powa):
Kód:
if(is_drogos == true)
{
   set_user_maxspeed(id, 1200.0);
}


Letisztultabb, átláthatóbb kód az eredmény, felesleges memóriahasználat nékül.

Szerző:  kiki [2012.04.19. 13:18 ]
Hozzászólás témája:  Re: Surf játékmódok!

Uppolva van, akartam is cska telóról nem volt kedvem! A világitást kikell kapcsolni mert nem áll vissza, illetve fegyver eventbe változik a sebességed, akkor nézi meg az engine a fegyver sebességét, tehát felesleges prethinkbe!

Szerző:  Metal [2012.04.19. 13:26 ]
Hozzászólás témája:  Re: Surf játékmódok!

Ezt PlayerPreThinkbe tenném (Miért fegyverfüggő, hogy milyen a sebessége). Ez az én szemléletem, (OO powa):

Ez csak megjegyzés akart lenni, mivel én eleve fakemetaba írtam volna az egészet, s abban máshogy kell állítani a sebességet.

kiki írta:
Uppolva van, akartam is cska telóról nem volt kedvem! A világitást kikell kapcsolni mert nem áll vissza, illetve fegyver eventbe változik a sebességed, akkor nézi meg az engine a fegyver sebességét, tehát felesleges prethinkbe!

Szerző:  ChaspeR [2012.04.19. 19:26 ]
Hozzászólás témája:  Re: Surf játékmódok!

mingy leteszrelem ,megint :)

Szerző:  Silent [2012.04.19. 19:37 ]
Hozzászólás témája:  Re: Surf játékmódok!

Na.. Fél óra alatt telefonról töröltem a felesleges, semmin veszekedô h.sz.eket :)

Oldal: 1 / 2 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/