cs插件吧 关注:8,205贴子:87,973
  • 18回复贴,共1

求教 怎樣用ACG在隊友頭上畫SPR?

只看楼主收藏回复

我已經把基本的寫了出來 但問題是那個SPR會因為隊友離我的遠近而上下移動



這是我現在的SPR 我拉長的原因是因為如果太短會變成在身體中間顯示


IP属地:中国香港1楼2017-01-17 05:45回复
    如果只是在玩家头上加图标的话最好通过创建env_spr实体来实现这个效果,一般都是画字时才把有必要把世界坐标转换到屏幕坐标上


    IP属地:日本5楼2017-01-17 15:31
    收起回复
      不懂帮顶。


      IP属地:湖北7楼2017-01-17 23:39
      回复
        @Jerry坏坏坏

        我想問有方法解決因為玩家移動導致一直有幾個SPR跟在後面的問題嗎
        #include <amxmodx>
        #include <cstrike>
        #include <fakemeta>
        #include <hamsandwich>
        #include <offset>
        #include <acg>
        #define PLUGIN "showteam"
        #define VERSION "1.0"
        #define AUTHOR "kevin"
        new g_radioSpr
        new const prompt_spr[] = { "sprites/ctteammate.spr" }
        public plugin_init()
        {
        register_plugin(PLUGIN,VERSION,AUTHOR)
        register_forward(FM_PlayerPostThink, "fw_PlayerPostThink")
        }
        public plugin_precache()
        {
        g_radioSpr = engfunc(EngFunc_PrecacheModel, prompt_spr)
        }
        public fw_PlayerPostThink(id)
        {
        for(new i=0;i<32;i++)
        {
        new player = acg_userstatus(id)
        if (is_user_alive(i) && get_user_team(i)== get_user_team(player))
        {
        show_spr(i)
        }
        }
        }
        stock show_spr(id)
        {
        static Float:origin[3]
        pev(id, pev_origin, origin)
        engfunc(EngFunc_MessageBegin,MSG_BROADCAST,SVC_TEMPENTITY,origin,0)
        write_byte(TE_SPRITE)
        engfunc(EngFunc_WriteCoord,origin[0])
        engfunc(EngFunc_WriteCoord,origin[1])
        engfunc(EngFunc_WriteCoord,origin[2] +30)
        write_short(g_radioSpr)
        write_byte(3)
        write_byte(255)
        message_end()
        }


        IP属地:中国香港8楼2017-01-18 05:52
        收起回复
          用这个方法简单但不能透过障碍物看到图标
          #include < amxmodx >
          #include < fakemeta >
          #include < engine >
          new Diamond[ 33 ];
          public plugin_init() register_forward( FM_AddToFullPack, "AddToFullPack_Post", true );
          public plugin_precache() precache_model( "sprites/ctteammate.spr" );
          public AddToFullPack_Post( ES_Handle, e, iEntity, iHost, iHostFlags, iPlayer, iSet )
          {
          if( iEntity == Diamond[ iHost ] ) set_es( ES_Handle, ES_Effects, EF_NODRAW );
          if( !iPlayer ) return;
          if( !is_valid_ent( Diamond[ iEntity ] ) )
          {
          Diamond[ iEntity ] = create_entity( "env_sprite" );
          engfunc( EngFunc_SetModel, Diamond[ iEntity ], "sprites/ctteammate.spr" );
          set_rendering( Diamond[ iEntity ], kRenderFxNone, 255, 255, 255, kRenderTransAdd, 255 );
          DispatchKeyValue( Diamond[ iEntity ], "scale", "0.5" );
          DispatchKeyValue( Diamond[ iEntity ], "framerate", "10.0" );
          DispatchSpawn( Diamond[ iEntity ] )
          }
          static Float: org[ 3 ], Float: ofs[ 3 ];
          get_es( ES_Handle, ES_Origin, org );
          get_es( ES_Handle, ES_Maxs, ofs );
          org[ 2 ] += ofs[ 2 ];
          set_pev( Diamond[ iEntity ], pev_origin, org );
          }
          public client_disconnect( Client )
          {
          if( is_valid_ent( Diamond[ Client ] ) )
          {
          remove_entity( Diamond[ Client ] );
          Diamond[ Client ] = 0;
          }
          }


          IP属地:日本9楼2017-01-18 11:54
          收起回复
            @Jerry坏坏坏
            我想問判斷是否隊友那邊該怎麼寫?


            IP属地:中国香港13楼2017-01-19 00:45
            回复
              求gign高配模型


              IP属地:广东来自Android客户端14楼2021-04-07 17:17
              回复
                这什么版本 看着好玩


                IP属地:中国台湾来自Android客户端15楼2024-02-19 07:33
                回复
                  小兄弟模型不错。


                  IP属地:广东来自Android客户端16楼2024-05-18 06:56
                  回复