Skip to content

Instantly share code, notes, and snippets.

@Y-Less
Last active August 1, 2017 23:16
Show Gist options
  • Select an option

  • Save Y-Less/076549b7f7e9471d3a5e6f9c4468c7ac to your computer and use it in GitHub Desktop.

Select an option

Save Y-Less/076549b7f7e9471d3a5e6f9c4468c7ac to your computer and use it in GitHub Desktop.
Generate tests for command processors.
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#include <YSI\y_va>
#include <YSI\y_utils>
fwritef(File:handle, const fmat[], GLOBAL_TAG_TYPES:...)
{
fwrite(handle, sprintf(fmat, ___2));
}
reverse(str[32])
{
new
ret[32],
len = strlen(str);
for (new i = 0; len--; ++i)
{
ret[i] = str[len];
}
return ret;
}
new gCommands[][32] = {
// "report",
"syncterrtd",
"editdrivethru",
"deletedrivethru",
"createdrivethru",
"createfcar",
"deletefcar",
"lockfcar",
"carcolor",
"frisktruck",
"loadtruck",
"loadvan",
"createmapicon",
"sbm",
"editmapicon",
"pay",
"buykit",
"usekit",
"setvw",
// "skydive",
// "fourdive",
"setplate",
"credits",
"wl",
"serverinfo",
"carhelp",
"tips",
"arp",
"drp",
"frp",
"setplayerwanted",
"lights",
"engine",
"opentrunk",
"closetrunk",
// "trunk",
"hood",
"say",
"pann",
"charity",
"stats",
"myweapons",
"dn",
"up",
"check",
"id",
"number",
"levelup",
"resetupgrades",
"upgrade",
"n",
// "n",
"helperhelp",
"helpers",
"v",
"hc",
"sc",
"makehelper",
"makegangmod",
"makebanappealer",
"nonewbie",
"o",
"noooc",
"speedo",
"vipgunshop",
"vipbar",
// "sb",
"sboff",
"reply",
"rhmute",
"requesthelp",
"rpname",
"accepthelp",
"denyhelp",
"finishhelp",
"admins",
"togfuel",
"killcheckpoint",
"sb",
"cb",
"gotoco",
"haad",
"ad",
"cad",
"setplayercolor",
"gov",
"togooc",
"tognewbie",
"tognews",
"togfam",
"togwhisper",
"togphone",
"rtc",
"rav",
"getcar",
"aduty",
"adutyoff",
"mduty",
"mdutyoff",
// "gotocar",
"me",
"b",
"s",
"l",
"do",
"int",
"m",
"door",
"r",
"deployspikes",
"crb",
"deletespike",
"deletespikes",
"deployblocks",
"deleteblock",
"deleteblocks",
"duty",
"camera",
"setgunskill",
"setfightstyle",
"setcrime",
"d",
"profile",
"mdc",
"su",
"w",
"setcarhp",
"taxwithdraw",
"withdraw",
"atmcard",
"checkhacks",
"deposit",
"atm",
"buymap",
"viewmap",
"oocshop",
"dice",
"flipcoin",
"wiretransfer",
"takestretcher",
"dropstretcher",
"safedeposit",
"safewithdraw",
"safebalance",
"buytools",
"buymeal",
"train",
"adivorce",
"usephone",
"call",
"sms",
"p",
"h",
"fixr",
"time",
"gotocar",
"dedit",
"fedit",
"disarm",
"warnings",
"vipgarage",
"prisongarage",
"robbers",
"enter",
"exit",
"fdeposit",
"fwithdraw",
"heal",
"moderators",
"mole",
"had",
"bigears",
"fuelcars",
"recon",
"kill",
"a",
"cnn",
"cnnn",
"prison",
"jail",
"tod",
"startlotto",
"refund",
"setstat",
"setint",
"skydive",
"fourdive",
"invite",
"vips",
"makevip",
"vipfixisnotusedanymore",
"makeadmin",
"uninvite",
"makeircadmin",
"makefamleader",
"showbadge",
"makeleader",
"giverank",
"tuteject",
"sendtols",
"sendtosf",
// "gotoint",
"gotoint",
"hgoto",
"hgethere",
"mark",
"gotomark",
"gethere",
"ramps",
"setskin",
"oldcar",
"givegun",
"givegunall",
"getjobevent",
"announceevent",
"startevent",
"lockevent",
"endevent",
"seteventinfo",
"seteventpos",
"hoseject",
"nohospital",
"setvhp",
"sethp",
"setarmor",
"setgoldbars",
// "sethpall",
// "setarmorall",
// "fixvehall",
"setanim",
"veh",
"listcars",
"fixveh",
"destroycar",
"destroycars",
"weather",
"weatherall",
"sethpall",
"setarmorall",
"fixvehall",
"savechars",
"givenos",
"givenosall",
"setname",
"load",
"setmoney",
"givemoney",
"setcolor",
"countdown",
"slap",
"blowup",
"fartbomb",
"mask",
"listmasked",
"listmuted",
"freezeplayers",
"fuckyouagains",
"unfreezeplayers",
"muteplayers",
"unmuteplayers",
"mute",
"nmute",
"admute",
"rmute",
"kick",
"skick",
"warn",
"sban",
"hunt",
"ban",
"rangeban",
// "deleteaccount",
"pban",
// "unban",
// "banaccount",
// "oprison",
"freeze",
"unfreeze",
"ipcheck",
"gmx",
"ack",
"makespecops",
"bet",
"siren",
"removesiren",
"addsiren",
"bhelp",
"briefcase",
"bdeposit",
"bwithdraw",
"givebc",
"playmusic",
"stopmusic",
"opengate",
"closegate",
"destroycp",
"removeobject",
"radiohelp",
"use",
"maketester",
"tes",
"makedev",
"dev",
"renthelp",
"addrental",
"exitrental",
"unrentcar",
"rentcar",
// "sellvehicle",
"mechhelp",
"buscmds",
"next",
"continue",
"kcc",
"calllist",
"makefamed",
"famedcolor",
"famed",
"getlic",
"getslic",
"senddmv",
"suspendlicense",
"cancellicense",
"loadtrash",
"startsweeping",
"startpizza",
"opencells",
"closecells",
"dooropen",
"doorclose",
"privatemessage",
"agl",
"acceptrequest",
"setjob",
"trunk",
"createpickup",
"giveweplic",
"takeweplic",
"setgas",
"setcarint",
"setcarvw",
"amask",
"atazer",
"nude",
"fws",
"setgrav",
"createentrance",
"editentrance",
"deleteentrance",
"gotoentrance",
"entranceid",
"hssignid",
"gotogarage",
// "garageid",
"moneybag",
"deletemoneybag",
"deletemoneybags",
"server",
"giftbox",
"getgift",
"open",
"editpoint",
"points",
"claim",
"speed",
"help",
"gps",
"creategate",
"gateid",
"agate",
"deletegate",
"editgate",
"ogate",
"lockhq",
"hqcreate",
"hqedit",
"hqdelete",
"ganghqid",
"createfamgate",
"deletefamgate",
"editfamgate",
"famgateeditor",
"famgateid",
"fgate",
"afgate",
"createfacgate",
"deletefacgate",
"editfacgate",
"facgateeditor",
"facgateid",
"createobject",
"editobject",
"saveobjects",
"deleteobject",
"deleteobjects",
"dpo",
"editor",
"objectid",
"devhelp",
"mapperhelp",
"setsex",
"makemapper",
"map",
"gotobluebus",
"gotoblackbus",
// "lookout",
"bussit",
"busroute",
"buslocation",
"fire",
"rhw",
"sorry",
"cp",
"forcetut",
"pos",
"goincar",
"adetain",
"payday",
"gfixlolelsadmxd",
"lockgarage",
"creategarage",
"deletegarage",
"deletegarages",
"editgarage",
"upgradegarage",
"asellgarage",
"garageid",
"buygarage",
"sellgarage",
"enterga",
"exitga",
"carwash",
"cctv",
"exitcctv",
"resetfactionpay",
"editfactionpay",
"payfactions",
"divisions",
"factions",
"editfaction",
"throw",
"depotone",
"depottwo",
"depotthree",
"lethimtalk",
"shawntermination",
"delivermail",
"relog",
"forcerelog",
"createcar",
"createpcar",
"gotohouse",
"gotobiz",
"gotobuilding",
"gotomotel",
"deletepcar",
"parkpcar",
"deletecar",
"setcarinfo",
"tv",
"pv",
"lockcar",
"dv",
"buylock",
"sellvehicle",
"ahousehelp",
"sellhouse",
"houseint",
"chouseint",
"togalarm",
"setalarm",
"hupgrade",
"evict",
"rentroom",
"setrentable",
"setrent",
"houseinvite",
"hwithdraw",
"fuckyoumanseriously",
"getgun",
"storegun",
"hbalance",
"hdeposit",
"abuildinghelp",
"acolorcar",
"itemhelp",
"listmyitems",
"iedit",
"idelete",
"wearall",
"unwearall",
"cellphonehelp",
"robberyhelp",
"getip",
"re",
"irchelp",
"fishhelp",
"safehelp",
"eventhelp",
"ah",
"abusinesshelp",
"bizint",
// "rob",
"bizfee",
"extortion",
"bizname",
"bizwithdraw",
"sellbiz",
"bizinfo",
"bizdeposit",
"families",
"adjust",
"createfamily",
"fsetstrike",
"fstrike",
"deletefamily",
"animlist",
"sitdown",
"handsup",
"dance",
"crossarms",
"rap",
"reload",
"skate",
"wank",
"fuckme",
"bj",
"lean",
"sleep",
"checktime",
"relax",
"dive",
"showoff",
"crabs",
"salute",
"stop",
"washhands",
"cry",
"what",
"piss",
"followme",
"greet",
"stand",
"hitch",
"bitchslap",
"cpr",
"gift",
"slapass",
"drunk",
"bomb",
"rob",
"laugh",
"lookout",
"robman",
"hide",
"vomit",
"eat",
"fucku",
"taichi",
"kiss",
"csita",
"csitb",
"csitc",
"csitd",
"csite",
"csitf",
"csitj",
"csitk",
"csitl",
"csitm",
"riota",
"riotb",
"riotc",
"riotd",
"riote",
"riotf",
"riotg",
"bara",
"barb",
"barc",
"bard",
"bare",
"barf",
"barg",
"barh",
"bari",
"barj",
"bark",
"barl",
"wt",
"channel",
"togwt",
"cprison",
"dprison",
"report",
"change",
"clothes",
"lotto",
"quitgang",
"dump",
"give",
"take",
"drink",
"setchamp",
"boxstats",
"fight",
"music",
"service",
"unblindfold",
"blindfold",
"tie",
"usecigar",
"cookies",
"usecookies",
"usesprunk",
"untie",
"sellfish",
"ws",
"order",
"sslocker",
"getjob",
"refuel",
"breathtest",
"drugtest",
"tazer",
"detain",
"stretcher",
"cuff",
"uncuff",
"find",
"sellvest",
"defend",
"free",
"accent",
"refill",
"facgate",
"repair",
"f",
"news",
"live",
"sellpot",
"sellcrack",
"cc",
"healme",
"eject",
"sex",
"wanted",
"dropcar",
"nos",
"hyd",
"fix",
"quitjob",
"bail",
"changepass",
"fine",
"givecookie",
"givecookieall",
"givegoldbarall",
"givegoldbar",
"shakehand",
// "ticket",
"payticket",
"ticket",
"arrest",
"contract",
"playamusic",
"stopamusic",
"nearmapicon",
"setradio",
"syncturfradar",
"setfamcolor",
"claimturf",
"oprison",
"unban",
"banaccount",
"plantc4",
"setuprobbery",
"acceptrobbery",
"inviterobbery",
"setbankreload",
"sethouseowner",
"setbizowner",
"loadcash",
"setaccent",
"deleteaccount",
"duel",
"drag",
"stopdrag",
"wear",
"unwear",
"placeboombox",
"turnon",
"pickupboombox",
"createhouse",
"deletehouse",
"houseprice",
"movehouse",
"houselevel",
"clearhouse",
"lockhouse",
"buyhouse",
"createmotel",
"deletemotel",
"movemotel",
"lockmotel",
"makemotelvip",
"motelname",
"motelvw",
"buy",
"setprice",
"createbiz",
"deletebiz",
"clearbiz",
"biztype",
"bizprice",
"bizprods",
"bizlevel",
"buybiz",
"lockbiz",
"getprods",
"movebiz",
"atmfee",
"createatm",
"deleteatm",
"atmcash",
"lockatm",
"moveatm",
"createinfoboard",
"deleteinfoboard",
"setinfoboardstring",
"createoocshop",
"deleteoocshop",
"createmapb",
"deletemapb",
"creategstation",
"deletegstation",
"createhss",
"deletehss",
"createbuilding",
"deletebuilding",
"movebuilding",
"lockbuilding",
"makebuildingvip",
"buildingname",
"buildingvw",
"hair",
"tune",
"viptunenotused"
};
main()
{
new
File:fhnd;
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
fhnd = fopen("all_dcmd_opct.pawn");
for (new i = 0; i != sizeof (gCommands); ++i)
{
fwritef(fhnd, "#if CMD_COUNT > %d\n", i);
fwritef(fhnd, "\tdcmd(%s, %d, cmdtext);\n", gCommands[i], strlen(gCommands[i]));
fwritef(fhnd, "#endif\n");
}
fclose(fhnd);
fhnd = fopen("all_zcmd.pawn");
for (new i = 0; i != sizeof (gCommands); ++i)
{
fwritef(fhnd, "#if CMD_COUNT > %d\n", i);
fwritef(fhnd, "CMD:%s(playerid, params[])\n{\n\t#pragma unused playerid, params\n\treturn 1;\n}\n", gCommands[i]);
fwritef(fhnd, "#endif\n");
}
fclose(fhnd);
fhnd = fopen("all_ycmd.pawn");
for (new i = 0; i != sizeof (gCommands); ++i)
{
fwritef(fhnd, "#if CMD_COUNT > %d\n", i);
fwritef(fhnd, "YCMD:%s(playerid, params[], help)\n{\n\t#pragma unused playerid, params\n\tif (help)\n\t{\n\t\treturn 1;\n\t}\n\treturn 1;\n}\n", gCommands[i]);
fwritef(fhnd, "#endif\n");
}
fclose(fhnd);
fhnd = fopen("all_strcmp.pawn");
for (new i = 0; i != sizeof (gCommands); ++i)
{
fwritef(fhnd, "#if CMD_COUNT > %d\n", i);
fwritef(fhnd, "\tif (!strcmp(cmd, \"/%s\"))\n\t{\n\t\treturn 1;\n\t}\n", gCommands[i]);
fwritef(fhnd, "#endif\n");
}
fclose(fhnd);
fhnd = fopen("all_stringhash.pawn");
for (new i = 0; i != sizeof (gCommands); ++i)
{
fwritef(fhnd, "#if CMD_COUNT > %d\n", i);
fwritef(fhnd, "\tcase _I<%s>:\n\t{\n\t\treturn 1;\n\t}\n", gCommands[i]);
fwritef(fhnd, "#endif\n");
}
fclose(fhnd);
fhnd = fopen("all_dcmd_main.pawn");
for (new i = 0; i != sizeof (gCommands); ++i)
{
fwritef(fhnd, "#if CMD_COUNT > %d\n", i);
fwritef(fhnd, "dcmd_%s(playerid, params[])\n{\n\t#pragma unused playerid, params\n\treturn 1;\n}\n", gCommands[i]);
fwritef(fhnd, "#endif\n");
}
fclose(fhnd);
fhnd = fopen("all_tests.pawn");
for (new i = 0; i != sizeof (gCommands); ++i)
{
fwritef(fhnd, "\t\t\"/%s\",\n\t\t\"/%s\",\n", gCommands[i], reverse(gCommands[i]));
}
fclose(fhnd);
if (fexist("command-timings.csv"))
fremove("command-timings.csv");
fhnd = fopen("command-timings.csv");
fwritef(fhnd, "Cmd count,dcmd,y_commands,ZCMD,strcmp,YHash\n");
fclose(fhnd);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment