Half-Life Icon HL Script

[AMXX] Keek

Hey, you! We are one of the oldest mod sites on the Interwebs. Sign up and maximize your browsing experience.

  • Subscribe: Get notified of new submissions like this.
  • Say Thanks: Show your appreciation by sending Rj. points.
  • Post: Give Rj. your thoughts on this Script.
  • Vote: Help Rj. win the Monthly Awards.
  • Rate: Give this Script a rating out of 10.
  • Flag: Alert moderators and warn members of a problem with this Script.
  • Watch: Get notified when this Script is updated.
Mascot

Sound fun?

Become a Bananite

Already a Bananite? Login

222 lines | 5 kb | Raw Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <xs>

#define PLUGIN "Keek"
#define VERSION "0.1.1"
#define AUTHOR "PomanoB"

#define MODEL "models/rpgrocket.mdl"

new g_info_target_str
new g_lookEntity[33]

new const g_entity_class[] = "keek_entity"

new g_cvar_max_distance, g_cvar_max_offset, g_cvar_effects

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
       
        register_forward(FM_PlayerPreThink, "fwdPreThink")
        register_forward(FM_Think, "fwdThink")
        register_forward(FM_AddToFullPack, "fwdAddToFullPack")
       
        RegisterHam(Ham_Killed, "player", "fwdKilled")
       
        g_info_target_str = engfunc(EngFunc_AllocString, "info_target")
       
        g_cvar_max_distance = register_cvar("keek_max_distance", "50.0")
        g_cvar_max_offset = register_cvar("keek_max_offset", "8")
        g_cvar_effects = register_cvar("keek_effects", "1")
}

public plugin_precache()
{
        precache_model(MODEL)
}

public fwdPreThink(id)
{
        static buttons, oldButtons
        if (is_user_alive(id))
        {
                buttons = pev(id, pev_button)
                oldButtons = pev(id, pev_oldbuttons)
               
                if ((buttons == IN_USE) && !(oldButtons&IN_USE))
                {
                        if (!g_lookEntity[id])
                        {
                                static Float:origin[3], Float:viewOrigin[3], Float:temp[3], Float:angles[3], Float:startOrigin[3], Float:planeNormal[3]
                                pev(id, pev_origin, origin)
                                xs_vec_copy(origin, startOrigin)
                               
                                pev(id, pev_view_ofs, viewOrigin)
                                xs_vec_add(origin, viewOrigin, viewOrigin)
                               
                                pev(id, pev_angles, origin)
                                xs_vec_copy(origin, angles)
                               
                               
                               
                                engfunc(EngFunc_MakeVectors, origin)
                                global_get(glb_v_forward, origin)
                                xs_vec_mul_scalar(origin, get_pcvar_float(g_cvar_max_distance), origin)
                                xs_vec_add(origin, viewOrigin, origin)
                                origin[2] = viewOrigin[2]
                               
                                static tr, Float:fraction
                       
                                tr = 0
                                engfunc(EngFunc_TraceLine, viewOrigin, origin, 0, id, tr)
                                get_tr2(tr, TR_flFraction, fraction)
                                if (fraction != 1.0)
                                {
                                        get_tr2(tr, TR_vecEndPos, origin)
                                        get_tr2(tr, TR_vecPlaneNormal, viewOrigin)
                                               
                                        xs_vec_copy(viewOrigin, planeNormal)
                                        xs_vec_mul_scalar(planeNormal, 7.0, planeNormal)
                                       
                                //      xs_vec_add(origin, viewOrigin, startOrigin)
                                        xs_vec_sub(origin, viewOrigin, origin)
                                       
                                        fraction = viewOrigin[0]
                                        viewOrigin[0] = viewOrigin[1]
                                        viewOrigin[1] = fraction
                                       
                                        xs_vec_mul_scalar(viewOrigin, 5.0, viewOrigin)
                               
                                        xs_vec_copy(origin, temp)
                                        static content1, content2, offset
                                        offset = get_pcvar_num(g_cvar_max_offset)
                                        tr = 0
                                        do
                                        {
                                                xs_vec_add(temp, viewOrigin, temp)
                                                xs_vec_sub(origin, viewOrigin, origin)
                                               
                                                content1 = engfunc(EngFunc_PointContents, temp)
                                                content2 = engfunc(EngFunc_PointContents, origin)
                                        }
                                        while(tr++ < offset && content1 != CONTENTS_EMPTY && content2 != CONTENTS_EMPTY)
                                       
                                        if (content1 == CONTENTS_EMPTY)
                                        {
                                                xs_vec_add(temp, viewOrigin, temp)
                                                xs_vec_copy(temp, viewOrigin)
                                        }
                                        else
                                        if (content2 == CONTENTS_EMPTY)
                                        {
                                                xs_vec_sub(origin, viewOrigin, origin)
                                                xs_vec_copy(origin, viewOrigin)
                                        }
                                        else
                                                return
                                       
                                       
                                       
                                        xs_vec_add(viewOrigin, planeNormal, viewOrigin)
                                //      xs_vec_add(startOrigin, planeNormal, startOrigin)
                                       
                                        tr = engfunc(EngFunc_CreateNamedEntity, g_info_target_str)
                                        dllfunc(DLLFunc_Spawn, tr)
                                        set_pev(tr, pev_classname, g_entity_class)
                                        engfunc(EngFunc_SetModel, tr, MODEL)
                                        set_pev(tr, pev_rendermode, kRenderTransAdd)
                                        set_pev(tr, pev_renderamt, 0.0)
                               
                                        xs_vec_mul_scalar(planeNormal, -1.0, planeNormal)
                                        engfunc(EngFunc_VecToAngles, planeNormal, angles)
                                        set_pev(tr, pev_angles, angles)
                                       
                                        if (get_pcvar_num(g_cvar_effects))
                                        {
                                                set_pev(tr, pev_vuser1, viewOrigin)
                                               
                                                pev(id, pev_view_ofs, angles)
                                                xs_vec_add(startOrigin, angles, startOrigin)
                                               
                                               
                                                engfunc(EngFunc_SetOrigin, tr, startOrigin)
                                                                                       
                                                set_pev(tr, pev_nextthink, get_gametime() + 0.01)
                                        }
                                        else
                                                engfunc(EngFunc_SetOrigin, tr, viewOrigin)
                                       
                                        set_pev(id, pev_velocity, Float:{0.0, 0.0, 0.0})
                                       
                                        engfunc(EngFunc_SetView, id, tr)
                                                                               
                                        g_lookEntity[id] = tr
                                       
                                }
                               
                        }
                        else
                                deleteLook(id)
                       
                }
                else
                if (g_lookEntity[id] && buttons && buttons != IN_USE)
                        deleteLook(id)
                       
        }
}

public fwdThink(ent)
{
        static classname[32]
        pev(ent, pev_classname, classname, charsmax(classname))
        if (equal(classname, g_entity_class))
        {
                static Float:origin[3], Float:endOrigin[3]
               
                pev(ent, pev_origin, origin)
                pev(ent, pev_vuser1, endOrigin)
               
                xs_vec_sub(endOrigin, origin, endOrigin)
                if (xs_vec_len(endOrigin) > 1.0)
                {
                        xs_vec_normalize(endOrigin, endOrigin)
                        xs_vec_add(origin, endOrigin, endOrigin)
                       
                        engfunc(EngFunc_SetOrigin, ent, endOrigin)
                       
                        set_pev(ent, pev_nextthink, get_gametime() + 0.01)
                }
        }
}

public fwdAddToFullPack(es, e, ent, host, flags, player, set)
{
        if (ent == host && g_lookEntity[host])
                return FMRES_SUPERCEDE
        return FMRES_IGNORED
}

public fwdKilled(id, idattacker, shouldgib)
{
        if (g_lookEntity[id])
                deleteLook(id)                 
}

public client_disconnect(id)
{
        if (g_lookEntity[id])
                deleteLook(id)
}

public deleteLook(id)
{
        engfunc(EngFunc_SetView, id, id)
        engfunc(EngFunc_RemoveEntity, g_lookEntity[id])
        g_lookEntity[id] = 0
}
Keek



Description:
  • This plugin allows players to watch out for corners!
  • For example, you have found an excellent position for an ambush:
  • Now you may watch at your victim and he not will not notice!
  • How to use:
    Go to corner and press USE key (default: E). To return to normal mode, press any key.
CVAR's:
  • keek_max_distance (default: 50.0) — distance from the wall.
  • keek_max_offset (default: 8 ) — "distance" from a corner.
  • keek_effect (default: 1) — use effect of look out?

P.S.:
I did not want to release my plugin, until I saw that ot_207 release his plugin today, and my release earlier, I released it on amxmodx.su  As you can see, my release dated 16 Juny.

Posts

None found

Share

Shareable Image:
Share banner
HTML embed code:
BB embed code:
Markdown embed code:

More embeddable images

Bookmark and Share

Credits

Original Authors
PomanoB
Creator

Submitter

Rj. avatar
Rj. avatar Dreamin'
Member Joined 10mo
792 points Ranked 5780th
35 medals 4 legendary 9 rare
  • Submitted 15 Tools Medal icon
  • Submitted 50 Gamefiles Medal icon
  • 15+ Entries! GameBanana’s Christmas Giveaway 2016 Medal icon
  • Thanked 500 submitters Medal icon
  • 2nd Place - Game Poetry Contest Medal icon
  • Submitted 5 Tools Medal icon

Rj. avatar
Rj.

Redistributor
Are you the owner? Request Ownership
Send a Private Message to the submitter

Category

Attributes

Language
Pawn (AMXMODX)

Stats

Posts
0
Views
123
Date Added
20d
Date Modified
20d