hlmod.hu
https://hlmod.hu/

Sprite megjelenítés
https://hlmod.hu/viewtopic.php?f=9&t=30827
Oldal: 1 / 1

Szerző:  ~Shediboii [ 2021.01.03. 21:25 ]
Hozzászólás témája:  Sprite megjelenítés

Helló, szeretnék a játékosnak a mapvégén megjeleníteni egy Spriteot a képernyő közepén, ez lehetséges vagy halott ügy?

Szerző:  ultraibolya [ 2021.01.04. 00:38 ]
Hozzászólás témája:  Re: Sprite megjelenítés

Lehet reamxxnél van valami event vagy valami.
Lehetséges,viszont nem tudom hogy. Fent voltam egy szerveren,ahol direkt néztem és tökéletesnek tűnt,nem találtam hibát,viszont amxx-re sehogy sem sikerült összehoznom annó.

(Nem ment át a falon ha közel mentél hozzá,illetve nem is volt baj a cl_bob-al,létrát nem próbáltam még.)

Nem tudok segíteni a témában,hiába is ástam magam bele nagyon rég.
DarkGL vagy ki valami lengyel tag csinált valamit (amxxre). Az hibás,de lehet azzal lehet kezdeni valamit.

Szerző:  theglorious [ 2021.01.04. 17:31 ]
Hozzászólás témája:  Re: Sprite megjelenítés

Működik, bár nem tudom, hogy ilyenre gondoltál e. Forrás: https://dev-cs.ru/resources/98/
Kép

  1. /* Раскомментируйте, если вы используете ZombieMod версию. */
  2. //#define USE_ON_ZM
  3.  
  4. /* Затемнять ли экран? */
  5. //#define FADE_SCREEN
  6.  
  7. /*Скрывать ли прицел*/
  8. #define HIDE_CROSSHAIR
  9.  
  10. /*Показывать ли ничью*/
  11. #define ROUND_DRAW_SHOW
  12.  
  13. #if defined ROUND_DRAW_SHOW
  14.     #define ROUND_DRAW_TYPE 0 //0 - random, >0 - static
  15.  
  16.     #if ROUND_DRAW_TYPE > 0
  17.         #define ROUND_DRAW_SPR_NUMBER 1 // Sprite number, aviable 1 & 64 states
  18.     //  #define ROUND_DRAW_SPR_NUMBER 64
  19.     #endif
  20.  
  21. #endif
  22.  
  23. #include <amxmodx>
  24. #if defined USE_ON_ZM
  25.     #include <zombieplague>
  26. #endif
  27.  
  28. #define CSW_KNIFE   29
  29. #define CSW_SHIELD  2
  30. #define DEFAULT_FOV 90
  31.  
  32. new bool:g_bSomeBool, g_iRoundState;
  33.  
  34. enum _:ROUNDWIN_States {
  35.     ROUND_DRAW = 0,
  36.     ROUND_WIN_T,
  37.     ROUND_WIN_CT
  38. }
  39.  
  40. enum _:MESSAGES {
  41.     g_iMsg_WeaponList,
  42. #if defined FADE_SCREEN
  43.     g_iMsg_ScreenFade,
  44. #endif
  45.     g_iMsg_CurWeapon,
  46.     g_iMsg_ForceCam,
  47. #if defined HIDE_CROSSHAIR
  48.     g_iMsg_SetFOV,
  49.     g_iMsg_HideWeapon
  50. #else
  51.     g_iMsg_SetFOV
  52. #endif
  53. }
  54.    
  55. new g_Messages_Name[MESSAGES][] = {
  56.     "WeaponList",
  57. #if defined FADE_SCREEN
  58.     "ScreenFade",
  59. #endif
  60.     "CurWeapon",
  61.     "ForceCam",
  62. #if defined HIDE_CROSSHAIR
  63.     "SetFOV",
  64.     "HideWeapon"
  65. #else
  66.     "SetFOV"
  67. #endif
  68. }
  69.  
  70. new g_Messages[MESSAGES];
  71. new g_Sprites[][] = {
  72.     #if defined ROUND_DRAW_SHOW
  73.     "sprites/winteam_round_draw_t.txt",
  74.     "sprites/winteam_round_draw.spr",
  75.     #endif
  76.     #if !defined USE_ON_ZM
  77.     "sprites/z_aufff_fmaledevcsrus.txt",
  78.     #else
  79.     "sprites/zombie_win_sz.txt",
  80.     #endif
  81.     "sprites/640hud11.spr",
  82.     "sprites/640hud10.spr",
  83.     "sprites/640hud7.spr",
  84.     #if !defined USE_ON_ZM
  85.     "sprites/winteam_fmaledevcsrus.spr"
  86.     #else
  87.     "sprites/zombie_win_uniq.spr"
  88.     #endif
  89. }
  90.  
  91. #if defined USE_ON_ZM
  92. new const CMD[] = "zombie_win_sz";
  93. #else
  94. new const CMD[] = "z_aufff_fmaledevcsrus";
  95. #endif
  96.  
  97. #if defined ROUND_DRAW_SHOW
  98. new const CMD_DRAW[] = "winteam_round_draw_t"
  99. #endif
  100.  
  101. public plugin_precache(){
  102.     for(new i; i < sizeof(g_Sprites); i++)
  103.         precache_generic(g_Sprites[i]);
  104. }
  105.  
  106. public plugin_init(){
  107.     register_plugin("WinTeam Sprite", "0.0.8", "Some Scripter");
  108.    
  109.     register_clcmd(CMD,"FakeSwitch");
  110.     #if defined ROUND_DRAW_SHOW
  111.     register_clcmd(CMD_DRAW,"FakeSwitch");
  112.     #endif
  113.     register_event("HLTV", "Event_NewRound","a","1=0","2=0");
  114.    
  115.     #if !defined USE_ON_ZM 
  116.     register_event("SendAudio", "Event_CTWin","a","2=%!MRAD_ctwin");
  117.     register_event("SendAudio", "Event_TerroristWin","a","2=%!MRAD_terwin");
  118.     register_event("SendAudio", "Event_Draw","a","2=%!MRAD_rounddraw");
  119.     #endif
  120.    
  121.     for(new i; i < sizeof(g_Messages); i++){           
  122.         g_Messages[i] = get_user_msgid(g_Messages_Name[i]);
  123.         register_message(g_Messages[i], "block");
  124.     }
  125. }
  126.  
  127. #if defined USE_ON_ZM
  128. public zp_round_ended(winteam){
  129.     switch(winteam){
  130.         case WIN_NO_ONE:{
  131.             g_iRoundState = ROUND_DRAW;
  132.         #if defined ROUND_DRAW_SHOW
  133.             StartDraw();
  134.         #endif
  135.         }
  136.         case WIN_ZOMBIES:{
  137.             g_iRoundState = ROUND_WIN_T;
  138.             StartDraw();
  139.         }
  140.         case WIN_HUMANS:{
  141.             g_iRoundState = ROUND_WIN_CT;
  142.             StartDraw();
  143.         }
  144.     }
  145. }
  146. #else
  147.  
  148. public Event_CTWin(){
  149.     g_iRoundState = ROUND_WIN_CT;
  150.     StartDraw();
  151. }
  152.  
  153. public Event_TerroristWin(){
  154.     g_iRoundState = ROUND_WIN_T;
  155.     StartDraw();
  156. }
  157.  
  158. public Event_Draw(){
  159.     g_iRoundState = ROUND_DRAW;
  160. #if defined ROUND_DRAW_SHOW
  161.     StartDraw();
  162. #endif
  163. }
  164. #endif
  165.  
  166. public Event_NewRound(){
  167. #if !defined ROUND_DRAW_SHOW
  168.     if(!g_iRoundState)return;
  169.  
  170.     g_iRoundState = ROUND_DRAW;
  171. #endif
  172.     g_bSomeBool = false;
  173. #if defined FADE_SCREEN
  174.     Msg_ScreenFade(1500,700,1,0,0,0,230);
  175. #endif
  176.  
  177. #if defined HIDE_CROSSHAIR
  178.     Msg_HideWeapon(0);
  179. #endif
  180.     Msg_WeaponList("weapon_knife",-1,-1,-1,-1,2,1,CSW_KNIFE,0);
  181.     Msg_CurWeapon(0,0,0);
  182. }
  183.  
  184. public block(){
  185.     if(g_bSomeBool)return PLUGIN_HANDLED;
  186.    
  187.     return PLUGIN_CONTINUE;
  188. }
  189.  
  190. public FakeSwitch(const client)engclient_cmd(client,"weapon_shield");
  191.  
  192. public sendweapon(){
  193.     switch(g_iRoundState){
  194.         #if defined ROUND_DRAW_SHOW
  195.         case ROUND_DRAW:    Msg_WeaponList(CMD_DRAW,-1,-1,-1,-1,0,11,CSW_SHIELD,0);
  196.         #endif
  197.         case ROUND_WIN_CT:  Msg_WeaponList(CMD,-1,-1,-1,-1,0,11,CSW_SHIELD,0);
  198.         case ROUND_WIN_T:   Msg_WeaponList(CMD,-1,-1,-1,-1,0,11,CSW_SHIELD,0);
  199.     }
  200.    
  201.  
  202. #if defined HIDE_CROSSHAIR
  203.     Msg_HideWeapon(64);
  204. #endif
  205.  
  206.     Msg_SetFOV(DEFAULT_FOV-1);
  207.    
  208.     g_bSomeBool = false;
  209.    
  210.  
  211.     switch(g_iRoundState){
  212.     #if defined ROUND_DRAW_SHOW
  213.         #if ROUND_DRAW_TYPE > 0
  214.             case ROUND_DRAW:    Msg_CurWeapon(ROUND_DRAW_SPR_NUMBER,2,-1);
  215.         #else
  216.             case ROUND_DRAW:    Msg_CurWeapon(random_num(0,1)*63+1,2,-1);
  217.         #endif
  218.     #endif
  219.         case ROUND_WIN_CT:  Msg_CurWeapon(1,2,-1);
  220.         case ROUND_WIN_T:   Msg_CurWeapon(64,2,-1);
  221.     }
  222.    
  223.     g_bSomeBool = true;
  224.    
  225.     Msg_SetFOV(DEFAULT_FOV);
  226. }
  227.  
  228. public StartDraw(){
  229. #if defined FADE_SCREEN
  230.     Msg_ScreenFade(9048,11480,1,0,0,0,230);
  231. #endif
  232.    
  233.     g_bSomeBool = true;
  234.     set_task(0.6,"sendweapon");
  235. }
  236.  
  237. stock Msg_WeaponList(const WeaponName[],PrimaryAmmoID,PrimaryAmmoMaxAmount,SecondaryAmmoID,SecondaryAmmoMaxAmount,
  238.                         SlotID,NumberInSlot,WeaponID,Flags){
  239.     message_begin(MSG_ALL,g_Messages[g_iMsg_WeaponList], .player = 0);
  240.     {
  241.         write_string(WeaponName);
  242.         write_byte(PrimaryAmmoID);
  243.         write_byte(PrimaryAmmoMaxAmount);
  244.         write_byte(SecondaryAmmoID);
  245.         write_byte(SecondaryAmmoMaxAmount);
  246.         write_byte(SlotID);
  247.         write_byte(NumberInSlot);
  248.         write_byte(WeaponID);
  249.         write_byte(Flags);
  250.     }
  251.     message_end();
  252. }
  253.  
  254. #if defined FADE_SCREEN
  255. stock Msg_ScreenFade(Duration,HoldTime,Flags,ColorR,ColorG,ColorB,Alpha){
  256.     message_begin(MSG_ALL,g_Messages[g_iMsg_ScreenFade], .player = 0);
  257.     {
  258.         write_short(Duration);
  259.         write_short(HoldTime);
  260.         write_short(Flags);
  261.         write_byte(ColorR);
  262.         write_byte(ColorG);
  263.         write_byte(ColorB);
  264.         write_byte(Alpha);
  265.     }
  266.     message_end();
  267. }
  268. #endif
  269.  
  270. stock Msg_CurWeapon(IsActive,WeaponID,ClipAmmo)
  271. {      
  272.     message_begin(MSG_ALL,g_Messages[g_iMsg_CurWeapon], .player = 0);
  273.     {
  274.         write_byte(IsActive);
  275.         write_byte(WeaponID);
  276.         write_byte(ClipAmmo);
  277.     }
  278.     message_end();
  279. }
  280.  
  281. stock Msg_SetFOV(Degrees){
  282.     message_begin(MSG_ALL,g_Messages[g_iMsg_SetFOV], .player = 0);
  283.     {
  284.         write_byte(Degrees);
  285.     }
  286.     message_end();
  287. }
  288.  
  289. #if defined HIDE_CROSSHAIR
  290. stock Msg_HideWeapon(Flags){
  291.     message_begin(MSG_ALL,g_Messages[g_iMsg_HideWeapon], .player = 0);
  292.     {
  293.         write_byte(Flags);
  294.     }
  295.     message_end();
  296. }
  297. #endif


Csatolmányok:
WinTeamSprite.zip [277.58 KiB]
Letöltve 77 alkalommal.

Szerző:  DexoN [ 2021.01.04. 17:42 ]
Hozzászólás témája:  Re: Sprite megjelenítés

Hali.

Én anno amikor a ZM-hez kerestem pár plugint, találtam egy ehhez hasonló plugint, de az egy kissé bugos volt, illetve akkor még nem tudtam volna amúgyse nagyon kezelni.
Tegnap visszakerestem, és valami ilyesmit találtam, ez egy picit egyszerűbb mint tisztelt theglorious megoldása.

A használatához készítettem egy rövid bemutatót, cvarokkal, magyarázattal (sprite_teszt.sma).

Csatolmányok:
Sprite.rar [1.99 KiB]
Letöltve 85 alkalommal.

Szerző:  ~Shediboii [ 2021.01.04. 21:33 ]
Hozzászólás témája:  Re: Sprite megjelenítés

Köszönöm szépen működik, majd teszek feketeképet meg freezet, és már nem fog annyira mozogni kör végén. Örök hála.

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