仿CF无敌时间进度条

  1 #include <amxmodx>
  2 #include <fakemeta>
  3 #include "acg.inc"
  4
  5 #define GAUGEBOX_R "gfx/gauge/GAUGEBOX_R.tga"
  6 #define GAUGE_C "gfx/gauge/GAUGE_C.tga"
  7 #define GAUGEEFFECT_C "gfx/gauge/GAUGEEFFECT_C.tga"
  8
  9 #define TGA_GAUGE_BG 12
 10 #define TGA_GAUGE_BAR 13
 11 #define TGA_GAUGE_FX 14
 12
 13 #define TEXT_TIP 2
 14
 15 #define GAUGE_POS_X 0.344
 16 #define GAUGE_POS_Y 0.882
 17
 18 #define BAR_OFFSET_X 0.009
 19 #define BAR_OFFSET_Y 0.006
 20
 21 #define SCREEN_WIDTH 1024.0
 22 #define SCREEN_HEIGHT 768.0
 23
 24 #define NEXT_THINK 0.025
 25
 26 new g_bCanDraw[33];
 27 new Float:g_flStartTime[33];
 28 new Float:g_flHoldTime[33];
 29 new Float:g_flNextThink[33];
 30
 31 public plugin_init()
 32 {
 33     register_plugin("gauge", "1.0", "crsky");
 34
 35     register_clcmd("say", "qq");
 36
 37     register_forward(FM_PlayerPostThink, "Forward_PlayerPostThink");
 38 }
 39
 40 public plugin_precache()
 41 {
 42     precache_generic(GAUGEBOX_R);
 43     precache_generic(GAUGE_C);
 44     precache_generic(GAUGEEFFECT_C);
 45 }
 46
 47 public client_putinserver(id)
 48 {
 49     set_task(0.5, "Task_InitFont", id + 100);
 50 }
 51
 52 public Task_InitFont(iTaskId)
 53 {
 54     new id = iTaskId - 100;
 55
 56     acg_initfont(id, "SimSun", 12, 1, 0, 0, TEXT_TIP);
 57 }
 58
 59 public qq(id)
 60 {
 61     DrawGauge(id, 5.0);
 62 }
 63
 64 stock DrawGauge(id, Float:flTime)
 65 {
 66     if(is_user_bot(id))
 67         return;
 68
 69     g_flStartTime[id] = get_gametime();
 70     g_flHoldTime[id] = flTime;
 71     g_bCanDraw[id] = 1;
 72
 73     acg_drawtga(id, GAUGEBOX_R, 255, 255, 255, 255, GAUGE_POS_X, GAUGE_POS_Y, 0, FX_NONE, 0.0, 0.0, 0.0, flTime, 0, 0, TGA_GAUGE_BG);
 74     acg_drawtga(id, GAUGE_C, 255, 255, 255, 255, GAUGE_POS_X + BAR_OFFSET_X, GAUGE_POS_Y + BAR_OFFSET_Y, 0, FX_NONE, 0.0, 0.0, 0.0, flTime, 0, 0, TGA_GAUGE_BAR);
 75     acg_drawtext(id, 0.464, GAUGE_POS_Y, "无敌时间 >>", 240, 240, 240, 255, 0.0, 0.0, flTime, 0, TS_NONE, 0, 0, TEXT_TIP);
 76 }
 77
 78 public Forward_PlayerPostThink(id)
 79 {
 80     if(get_gametime() - g_flNextThink[id] < NEXT_THINK)
 81         return;
 82
 83     g_flNextThink[id] = get_gametime();
 84
 85     if(!g_bCanDraw[id])
 86         return;
 87
 88     if(is_user_bot(id))
 89         return;
 90
 91     new Float:flTime = get_gametime() - g_flStartTime[id];
 92
 93     if(flTime > g_flHoldTime[id])
 94     {
 95         g_flHoldTime[id] = 0.0;
 96         g_bCanDraw[id] = 0;
 97
 98         acg_removedrawnimage(id, 2, TGA_GAUGE_BG);
 99         acg_removedrawnimage(id, 2, TGA_GAUGE_BAR);
100         acg_removedrawnimage(id, 2, TGA_GAUGE_FX);
101         acg_removedrawnimage(id, 3, TEXT_TIP);
102
103         return;
104     }
105
106     new Float:flXScale = flTime / g_flHoldTime[id] * (302.0 / 8.0);
107     acg_resizeimage(id, flXScale, 1.0, 1, TGA_GAUGE_BAR);
108
109     new Float:flFxPos = (((GAUGE_POS_X + BAR_OFFSET_X) * SCREEN_WIDTH) + (8.0 * flXScale) - 25.0) / SCREEN_WIDTH;
110
111     acg_drawtga(id, GAUGEEFFECT_C, 255, 255, 255, 255, flFxPos, GAUGE_POS_Y + 0.001, 0, FX_NONE, 0.0, 0.0, 0.0, 0.2, 0, 0, TGA_GAUGE_FX);
112 }
时间: 2024-11-03 22:26:57

仿CF无敌时间进度条的相关文章

横向时间进度条

[javascript] view plain copy function ready(){ if(${benefit==0}){ $("#money").attr("disabled","disabled"); }else{ $("#money").removeAttr("disabled"); } var now = new Date(); var hours = now.getHours(); var

微信小程序 - 时间进度条功能

关于答题类,或者一些游戏环节的小程序需要用到时间进度条,改功能怎么实现看下面源码 <view class='out' style='margin-top:10px'> <view class='in' style='width:{{progressWidth}}%'></view> </view> <view class='caozuo'> <text>{{progressTime}}秒</text> <text b

时间进度条

前面的进度条都在作业里,没有单独写博.                                                                    

仿苹果AppStore 下载进度条

以前项目自己写的 ,一个模仿苹果AppStore 下载进度条的winfrom用户控件,GDI绘制.效果如图 1 using System.Drawing; 2 using System.Windows.Forms; 3 using System.ComponentModel; 4 namespace test 5 { 6 public class CircleProgressBar : Control 7 { 8 float _progress = 0F; 9 float _Wpen = 1;

仿IOS圆形下载进度条

/** * Created by C058 on 2016/5/25. */ public class MyHoriztalProgressBar extends ProgressBar { private static final int DEFAULT_REACH_COLOR = 0xff24F569; private static final int DEFAULT_UNREACH_COLOR = 0xffC0C0C0; private static final int DEFAULT_R

python 实现各种进度条

1. 时间进度条 class Tiao(object): def __init__(self): self.obj1 = datetime.timedelta(seconds=1) self.var = '%H:%M:%S' def add(self, var): a = datetime.datetime.strptime(var, self.var) b = a + self.obj1 return str(b.strftime(self.var)) def str_time(self, v

仿MIUI音量变化环形进度条实现

Android中使用环形进度条的业务场景其实蛮多的,比如下载文件的时候使用环形进度条,会给用户眼前一亮的感觉:再比如我大爱的MIUI系统,它的音量进度条就是使用环形进度条,尽显小米"为发烧而生"的宗旨.今天就为大家揭开那些高大上设计背后的故事,让我们也来实现如此酷炫的效果. 其实环形进度条只是一个稍稍复杂点的自定义控件,看过前段时间<Android自定义控件>系列的同学,理解起来会更加容易.还没看过的同学,出门右转,查看历史消息,再回头看今天的内容,会更加容易上手. 一.定

Android -- 真正的 高仿微信 打开网页的进度条效果

(本博客为原创,http://home.cnblogs.com/u/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截图 六,完整项目 一,为什么说是真正的高仿? 阐述这个问题前,先说下之前网上的,各位可以复制这段字,去百度一下  "仿微信打开网页的进度条效果" ,你会看到有很多类似的文章,不过他们有个共同点,就是实现方法都是一样的,而且,都忽略了微信加载网页时,进度条的缓慢动画效果,它不是生硬地一

【转】Android UI系列-----时间、日期、Toasts和进度条Dialog

原文网址:http://www.cnblogs.com/xiaoluo501395377/p/3421727.html 您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: [email protected] / [email protected] 如果需要转载,请注明出处,谢谢!! 本篇随笔将继续学