Skip to content

Instantly share code, notes, and snippets.

@JoinedSenses
JoinedSenses / SourcePawnLexer.g4
Created April 29, 2022 03:31
SourcePawnLexer Antlr
lexer grammar SourcePawnLexer;
IntegerLiteral:
BinaryLiteral
| HexLiteral
| DecimalLiteral;
CharacterLiteral: '\'' Cchar+ '\'';
FloatLiteral: DIGIT ('_' | DIGIT)* '.' DIGIT ('e' '-'?)? ('_' | DIGIT)*;
@JoinedSenses
JoinedSenses / A2SInfo.sp
Last active May 25, 2021 06:23
A2S Info SourceMod
#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>
#include <socket> // https://github.com/JoinedSenses/sm-ext-socket/
#include <regex>
#define PLUGIN_NAME "A2SInfo"
#define PLUGIN_AUTHOR "JoinedSenses"
#define PLUGIN_DESCRIPTION "Sends A2S_Info query to a Valve game server"
@JoinedSenses
JoinedSenses / showtime.sp
Last active September 26, 2020 19:06
Example sourcemod plugin to display time
#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>
Handle g_Timers[MAXPLAYERS+1];
public void OnPluginStart() {
RegAdminCmd("sm_showtime", cmdShowTime, ADMFLAG_ROOT);
RegAdminCmd("sm_stoptime", cmdStopTime, ADMFLAG_ROOT);
@JoinedSenses
JoinedSenses / SPConstants.sublime-syntax
Last active June 3, 2020 22:12
SourceMod-Constants Sublime
%YAML 1.2
---
# See http://www.sublimetext.com/docs/3/syntax.html
name: SourcePawnConstants
file_extensions:
- spconst
scope: source.spconst
variables:
const: (?=\b[A-GIK-V_]\w{5,})(?:T(?:E(?:MP_REQUIRE_EXTENSIONS|_EXPLFLAG_(?:DRAWALPHA|NO(?:ADDITIVE|DLIGHTS|FIREBALL(?:SMOKE)?|NE|PARTICLES|SOUND)|ROTATE))|F(?:Class_(?:DemoMan|Engineer|Heavy|Medic|Pyro|S(?:cout|niper|oldier|py)|Unknown)|Cond(?:Duration_Infinite|_(?:A(?:fterburnImmune|irCurrent)|B(?:alloonHead|l(?:ast(?:Immune|Jumping)|eeding)|onked|u(?:ffed|lletImmune|rningPyro))|C(?:harging|loak(?:Flicker|ed)|ompetitive(?:Loser|Winner)|rit(?:C(?:anteen|ola)|DemoCharge|Hype|Mmmph|On(?:Damage|F(?:irstBlood|lagCapture)|Kill|Win)|RuneTemp))|D(?:azed|e(?:adRingered|fenseBuff(?:Mmmph|NoCritBlock|ed)|moBuff|)|isguis(?:e(?:Removed|d(?:AsDispenser)?)|ing)|odgeChance)|EyeaductUnderworld|F(?:ireImmune|ocusBuff|reezeInput)|G(?:as|rappl(?:ed(?:(?:By|To)Player)|ingHook(?:Bleeding|Latched|SafeFall)?))|H(?:a(?:lloween(?:BombHead|CritCandy|G(?:hostMode|iant)|InHell|Kart(
@JoinedSenses
JoinedSenses / SM-Const.re
Last active June 3, 2020 22:12
SourceMod Const Regex
(?=\b[A-GIK-V_]\w{5,})(?:T(?:E(?:MP_REQUIRE_EXTENSIONS|_EXPLFLAG_(?:DRAWALPHA|NO(?:ADDITIVE|DLIGHTS|FIREBALL(?:SMOKE)?|NE|PARTICLES|SOUND)|ROTATE))|F(?:Class_(?:DemoMan|Engineer|Heavy|Medic|Pyro|S(?:cout|niper|oldier|py)|Unknown)|Cond(?:Duration_Infinite|_(?:A(?:fterburnImmune|irCurrent)|B(?:alloonHead|l(?:ast(?:Immune|Jumping)|eeding)|onked|u(?:ffed|lletImmune|rningPyro))|C(?:harging|loak(?:Flicker|ed)|ompetitive(?:Loser|Winner)|rit(?:C(?:anteen|ola)|DemoCharge|Hype|Mmmph|On(?:Damage|F(?:irstBlood|lagCapture)|Kill|Win)|RuneTemp))|D(?:azed|e(?:adRingered|fenseBuff(?:Mmmph|NoCritBlock|ed)|moBuff|)|isguis(?:e(?:Removed|d(?:AsDispenser)?)|ing)|odgeChance)|EyeaductUnderworld|F(?:ireImmune|ocusBuff|reezeInput)|G(?:as|rappl(?:ed(?:(?:By|To)Player)|ingHook(?:Bleeding|Latched|SafeFall)?))|H(?:a(?:lloween(?:BombHead|CritCandy|G(?:hostMode|iant)|InHell|Kart(?:Cage|Dash|NoTurn)?|QuickHeal|SpeedBoost|T(?:hriller|iny))|sRune)|ealing(?:Debuff)?)|InHealRadius|Jarated|K(?:ing(?:Aura|Rune)|nockedIntoAir|ritzkrieged)|LostFooti
@JoinedSenses
JoinedSenses / parsetargetpath.sp
Created November 16, 2019 19:43 — forked from assyrianic/parsetargetpath.sp
parses a target path
public bool ParseTargetPath(const char[] key, char[] buffer, int buffer_len)
{
/// parse something like: "root.section1.section2.section3.\\..dotsection"
int i = strlen(key) - 1;
while( i > 0 ) {
/// Patch: allow keys to use dot without interfering with dot path.
/// check if we hit a dot.
if( key[i]=='.' ) {
/// if we hit a dot, check if the previous char is an "escape" char.
if( key[i-1]=='\\' )
@JoinedSenses
JoinedSenses / bsp_lzma.py
Created August 3, 2019 10:08 — forked from nosoop/bsp_lzma.py
Unpacking LZMA-compressed files from BSPs
#!/usr/bin/python3
import struct, lzma, sys
def unpack(fmt, stream):
'''
unpacks values from a stream
source: https://stackoverflow.com/a/17537253
'''
size = struct.calcsize(fmt)
@JoinedSenses
JoinedSenses / example.sp
Created July 9, 2019 16:32
spawn example
#include <sdktools>
// somefunction with a bunch of code
int entity = CreateEntityByName("ent_snowball_pile");
if (entity == -1) {
return;
}
float origin[3];
GetEntPropVector(client, Prop_Send, "m_vecOrigin", vec);
@JoinedSenses
JoinedSenses / TextAnalysis.cpp
Last active July 8, 2019 14:00
Text Analysis
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void preloadFile(const char[]);
int main() {
const char file[] = "test.txt";
string buffer;
@JoinedSenses
JoinedSenses / gist:367fcdaf653fb4e655f2e749ba8e2d7b
Last active March 23, 2018 20:13
Name Filter Explanation
{
"NameRemove"
{
"namepattern" "f[\W_][a@4]+[\W_]*g 'CASELESS'"
// fag
"namepattern" "n[\s\W_]*[i!1]+[\s\W_]*g+[\s\W_]*[\s\We3_]*r 'CASELESS'"
// nigger