Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define cDebugMode 1
- enum HudStuff
- {
- Handle:SpeedOne,
- Handle:SpeedTwo,
- Handle:MinusOne,
- Handle:PressedOne,
- Handle:PressedTwo,
- Handle:PressedThree
- }
- new g_HudSyncs[HudStuff];
- new g_iButtons[MAXPLAYERS + 1];
- public Plugin:myinfo =
- {
- name = "OWNSShowMyKeys",
- description = "A speed and key HUD using HudText",
- author = "OWNSyouAll",
- version = "0.0.5",
- url = ""
- };
- public OnPluginStart()
- {
- // This is supposed to print to server but doesn't
- PrintToServer("Starting OWNSShowMyKeys by OWNSyouAll version 0.0.5");
- #if defined cDebugMode
- LogError("Starting OWNSShowMyKeys by OWNSyouAll version 0.0.5");
- #endif
- //Huds can be created one and re-used.
- g_HudSyncs[SpeedOne] = CreateHudSynchronizer();
- g_HudSyncs[SpeedTwo] = CreateHudSynchronizer();
- g_HudSyncs[MinusOne] = CreateHudSynchronizer();
- g_HudSyncs[PressedOne] = CreateHudSynchronizer();
- g_HudSyncs[PressedTwo] = CreateHudSynchronizer();
- g_HudSyncs[PressedThree] = CreateHudSynchronizer();
- }
- public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
- {
- g_iButtons[client] = buttons;
- }
- public OnGameFrame()
- {
- decl String:sMinusBuffer[16];
- decl String:sOneBuffer[16];
- decl String:sTwoBuffer[16];
- decl String:sThreeBuffer[16];
- for(new client = 1; client <= MaxClients; client++)
- {
- //IsFakeClient should include sourcetv/replay, see no reason why it wouldn't... But never tried
- if(!IsClientInGame(client) || IsFakeClient(client))
- continue;
- //You can't use buttons == something because it won't consider multiple button presses.
- //if IN_ATTACK and IN_USE, the values are combined, thus == fails
- //they're bit flags, so you can use bitwise operations on them
- if(g_iButtons[client] & IN_ATTACK)
- Format(sMinusBuffer, sizeof(sMinusBuffer), "+attack");
- else
- Format(sMinusBuffer, sizeof(sMinusBuffer), "______");
- if(g_iButtons[client] & IN_USE)
- Format(sOneBuffer, sizeof(sOneBuffer), "+use");
- else
- Format(sOneBuffer, sizeof(sOneBuffer), "____");
- if(g_iButtons[client] & IN_FORWARD)
- Format(sTwoBuffer, sizeof(sTwoBuffer), " W ");
- else
- Format(sTwoBuffer, sizeof(sTwoBuffer), " _ ");
- if (g_iButtons[client] & IN_MOVELEFT)
- Format(sThreeBuffer, sizeof(sThreeBuffer), "A");
- else
- Format(sThreeBuffer, sizeof(sThreeBuffer), "_");
- if (g_iButtons[client] & IN_BACK)
- Format(sThreeBuffer, sizeof(sThreeBuffer), "%s S", sThreeBuffer);
- else
- Format(sThreeBuffer, sizeof(sThreeBuffer), "%s _", sThreeBuffer);
- if (g_iButtons[client] & IN_MOVERIGHT)
- Format(sThreeBuffer, sizeof(sThreeBuffer), "%s D", sThreeBuffer);
- else
- Format(sThreeBuffer, sizeof(sThreeBuffer), "%s _", sThreeBuffer);
- //SetHudTextParams(Float:x, Float:y, Float:holdTime, r, g, b, a, effect = 0, Float:fxTime=6.0, Float:fadeIn=0.1, Float:fadeOut=0.2);
- //This prototype requires Floats (0.0 vs 0) to be passed for several parameters, you were passing integers.
- #if defined cDebugMode
- if(!GetRandomInt(0, 33)) //Fires every frame, i'm lazy.
- LogError("%s %s %s %s", sMinusBuffer, sOneBuffer, sTwoBuffer, sThreeBuffer);
- #endif
- new Float:fDistance;
- SetHudTextParams(0.5, 0.65, 1.0, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
- ShowSyncHudText(client, g_HudSyncs[SpeedOne], "%i", fDistance);
- SetHudTextParams(0.95, 0.65, 1.0, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
- ShowSyncHudText(client, g_HudSyncs[SpeedTwo], "HU/s");
- SetHudTextParams(0.5, 0.7, 1.0, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
- ShowSyncHudText(client, g_HudSyncs[MinusOne], "%s", sMinusBuffer);
- SetHudTextParams(0.5, 0.75, 1.0, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
- ShowSyncHudText(client, g_HudSyncs[PressedOne], "%s", sOneBuffer);
- SetHudTextParams(0.5, 0.5, 1.0, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
- ShowSyncHudText(client, g_HudSyncs[PressedTwo], "%s", sTwoBuffer);
- SetHudTextParams(0.5, 0.85, 1.0, 255, 255, 255, 255, 0, 0.0, 0.0, 0.0);
- ShowSyncHudText(client, g_HudSyncs[PressedThree], "%s", sThreeBuffer);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment