Okay, so the title is kinda misleading. I know I don't have the "best name" around here for abandoning a lot, and basically being a jackass. I really want WCS to succeed, no matter which mod it is, it's the best type of gameplay (except for my SourceRPG mod
). I've currently spent the last 6 months is (on and off I should say) creating my new wcs python from scratch. This will be a completely separate entity from your WCS you know and love; the main reason... I've took the huge decision to drop ESS and Keygroup support. They caused WAYYYYY to much problems, crashes, instability etc. From now on, I will leave it just to Python races. Therefore, the majority of you will probably hate me / won't be interested by that mod, so I'm not trying to convert you or anything. If you look at the WCS source, you can see how much better it is coded. Everything is now modular, which means if things break, it's a lot simpler to determine the error and a lot easier to fix it. It also uses sqlite, and first tests show that saving using this method is EXTREMELY speedy. I use a new Object Orientated manor to manage the code. When I first created WCS with Jeff, I was an unbelievably bad programmer; now I am far better (but still not as good as I'd like to be...) Just take a look at the source, and you'll see that I've kept it extremely neat and tidy, documented everything in the functions and made it very pythonic.
As for the second thing, this is the worst kept secret in history, but I'm creating an EST replacement. This means I'll be using ES only commands (with the help of SPE) to recreate the majority of functionality that EST once had. This requires that I learn a lot more about signature scanning and what not as my Source knowledge isn't too great
(hopefully I'll receive help from that point). The current commands I support are as follows:
(You can see that all the commands register by looking at this console dump)
The commands I've got left to convert before I have my first release are as follows:
Now you may notice a few things. There are no est_effects. This is the command I'm currently working on, but it requires that I learn how to sig scan, (you can see my plead for help here, so I'm currently working hard to bring it back). The entire source (as it stands) can be found here although I highly suggest you don't run it as it's not even syntax checked yet).
This is just an update so you know where I stand, and I apologise for anything I've done in the past to the community. Again I haven't forgotten about you are anything.
On a side note, if anyone would like to help me with anything to do with the new WCS, I'd be glad to listen (such as suggetions, small code snippets and what not). I have bigger plans for WCS: Python, including some very advanced and crazy web PHP scripts
(I'm keeping this a secret until later stage). I don't think it'll be ready any time soon, there's still a huge amount of work to do to WCS: Python to make it into beta stage, and I've learnt from last time to not rush anything 
-freddukes
). I've currently spent the last 6 months is (on and off I should say) creating my new wcs python from scratch. This will be a completely separate entity from your WCS you know and love; the main reason... I've took the huge decision to drop ESS and Keygroup support. They caused WAYYYYY to much problems, crashes, instability etc. From now on, I will leave it just to Python races. Therefore, the majority of you will probably hate me / won't be interested by that mod, so I'm not trying to convert you or anything. If you look at the WCS source, you can see how much better it is coded. Everything is now modular, which means if things break, it's a lot simpler to determine the error and a lot easier to fix it. It also uses sqlite, and first tests show that saving using this method is EXTREMELY speedy. I use a new Object Orientated manor to manage the code. When I first created WCS with Jeff, I was an unbelievably bad programmer; now I am far better (but still not as good as I'd like to be...) Just take a look at the source, and you'll see that I've kept it extremely neat and tidy, documented everything in the functions and made it very pythonic.As for the second thing, this is the worst kept secret in history, but I'm creating an EST replacement. This means I'll be using ES only commands (with the help of SPE) to recreate the majority of functionality that EST once had. This requires that I learn a lot more about signature scanning and what not as my Source knowledge isn't too great
(hopefully I'll receive help from that point). The current commands I support are as follows:Code: [Select]
est.registerESTCommand("AddDownload", '<path>', addDownload, 1)
est.registerESTCommand("CSay", '<players> <"message">', cSay, 2)
est.registerESTCommand("HSay", '<players> <"message">', hSay, 2)
est.registerESTCommand("CurTime", '<var>', getCurrentTime, 1)
est.registerESTCommand("Damage", '<attacker> <victim> <amount of damage>', damage, 3)
est.registerESTCommand("DeleteRagDolls", '[est filter]', removeRagdolls, (0, 1))
est.registerESTCommand("Freeze", '<est filter> <1/0>', freeze, 2)
est.registerESTCommand("DropWeapon", '<est filter>', drop, 2)
est.registerESTCommand("EndRound", '', endRound, 0)
est.registerESTCommand("Dissolve", '<classname/index>', dissolve, 1)
est.registerESTCommand("Name", '<userid> <name>', changeName, 2)
est.registerESTCommand("UpTime", '<var>', uptime, 1)
est.registerESTCommand("StripPlayer", '<est filter>', stripPlayer, 1)
est.registerESTCommand("Speed", '<est filter> <value>', speed, 2)
est.registerESTCommand("Teleport", '<player> <x> <y> <z>', teleport, 4)
est.registerESTCommand("Slay", '<est filter>', slay, 1)
est.registerESTCommand("Drug", '<est filter> [time]', drug, (1, 2))
est.registerESTCommand("Drunk", '<est filter> [time]', drunk, (1, 2))
est.registerESTCommand("Give", '<est filter> <entity>', give, 2)
est.registerESTCommand("God", '<est filter> <1/0>', god, 2)
est.registerESTCommand("GetWallBetween", '<var> <x> <y> <z> <targetx> <targety> <targetz>', getWallBetween, 7)
est.registerESTCommand("GetChat", '<var> <name/userid>', getChat, 2)
est.registerESTCommand("Ban", '<est filter> <time> ["reason"]', ban, (2, 3))
est.registerESTCommand("Kick", '<est filter> ["reason"]', kick, (1, 2))
est.registerESTCommand("Burn", '<est filter> [time]', burn, (1, 2))
est.registerESTCommand("Extinguish", '<est filter>', extinguish, 1)
est.registerESTCommand("CExec", '<est filter> "<command>"', cexec, 2)
est.registerESTCommand("Help", '[command]', getHelp, (0,1))
est.registerESTCommand("Fade", '<est filter> <type> <fade time> <total time> <red> <green> <blue> <alpha>', fade, 8)
est.registerESTCommand("JetPack", '<est filter> <1/0>', jetpack, 2)
est.registerESTCommand("NoClip", '<est filter> <1/0>', noclip, 2)
est.registerESTCommand("LightStyle", '<stylestring> <stylenum>', changeLightStyle, 2)
est.registerESTCommand("MutePlayer", '<est filters>', mutePlayer, 1)
est.registerESTCommand("UnMutePlayer", '<est filters>', unmutePlayer, 1)
est.registerESTCommand("Team", '<est filters> <team index>', switchTeam, 2)
est.registerESTCommand("Spawn", '<est filters> [force spawn]', spawn, (1, 2))
est.registerESTCommand("PhysPush", '<est filter> <x force> <y force> <z force>', physPush, 4)
est.registerESTCommand("PushTo", '<est filter> <x> <y> <z> <force>', pushTo, 5)
est.registerESTCommand("Remove", '<ent index>', remove, 1)
est.registerESTCommand("RoundDecimal", '<var> <number> <decimal digits>', roundDecimal, 3)
est.registerESTCommand("Rocket", '<est filter>', rocket, 1)
est.registerESTCommand("HasDefuser", '<var> <name/userid>', hasDefuser, 2)
est.registerESTCommand("HasHelmet", '<var> <name/userid>', hasHelmet, 2)
est.registerESTCommand("HasKevlar", '<var> <name/userid>', hasKevlar, 2)
est.registerESTCommand("IsAlive", '<var> <name/userid>', isAlive, 2)
est.registerESTCommand("IsBomber", '<var> <name/userid>', isBomber, 2)
est.registerESTCommand("IsAlpha", '<var> <string>', isAlpha, 2)
est.registerESTCommand("IsNumeric", '<var> <string>', isNumeric, 2)
est.registerESTCommand("IsOnly", '<var> <string> <allowed chars>', isOnly, 3)
est.registerESTCommand("ClassList", 'No arguments', classList, 0)
est.registerESTCommand("GetEntClassName", '<var> <entity index>', getEntityClassName, 2)
est.registerESTCommand("GetEntityIndex", '<var> <name/userid> <classname>', getEntityIndex, 3)
est.registerESTCommand("GetEntName", '<var> <entity index>', getEntName, 2)
est.registerESTCommand("SetEntName", '<entity index> <entity name>', setEntName, 2)
est.registerESTCommand("GetAngleToPoint", '<userid/name> <x> <y> <z> <var pitch> <var yaw> <var roll>', getAngleToPoint, 7)
est.registerESTCommand("GetViewAngle", '<userid/name> <var pitch> <var yaw> <var roll>', getViewAngle, 4)
est.registerESTCommand("GetViewCoord", '<userid/name> <var x> <var y> <var z>', getViewCoord, 4)
est.registerESTCommand("GetViewPlayer", '<userid/name> <var>', getViewPlayer, 2)
est.registerESTCommand("GetViewProp", '<userid/name> <var>', getViewProp, 2)
est.registerESTCommand("GetEyeCoord", '<userid/name> <x var> <y var> <z var>', getEyeCoord, 4)
est.registerESTCommand("GetGunCoord", '<userid/name> <x var> <y var> <z var>', getGunCoord, 4)
est.registerESTCommand("GetPlayerDistance", '<distance var> <azimuth var> <elevation var> <userid/name> <target id/target name>', getPlayerDistance, 5)
est.registerESTCommand("GetIp", '<var> <userid/name>', getIP, 2)
est.registerESTCommand("Getindex", '<var> <userid/name>', getIndex, 2)
est.registerESTCommand("GetName", '<var> <userid/name>', getName, 2)
est.registerESTCommand("GetUserid", '<var> <userid/name>', getUserid, 2)
est.registerESTCommand("GetSteam", '<var> <userid/name>', getSteam, 2)
est.registerESTCommand("GetTeam", '<var> <userid/name>', getTeam, 2)
est.registerESTCommand("GetHE", '<var> <userid/name>', getHE, 2)
est.registerESTCommand("GetFB", '<var> <userid/name>', getFB, 2)
est.registerESTCommand("GetSG", '<var> <userid/name>', getSG, 2)
est.registerESTCommand("GetPrimary", '<var> <userid/name>', getPrimary, 2)
est.registerESTCommand("GetSecondary", '<var> <userid/name>', getSecondary, 2)
est.registerESTCommand("KnifeOnly", '<var> <userid/name>', knifeOnly, 2)
est.registerESTCommand("GetGun", '<var> <userid/name>', getGun, 2)
est.registerESTCommand("MOTD_F", '<est filter> <title> <command> <file>', motdFromFile, 4)
est.registerESTCommand("MOTD_W", '<est filter> <title> <command> <URL>', motdFromURL, 4)
est.registerESTCommand("MOTD_T", '<est filter> <title> <command> <raw text>', motdFromRawText, 4)
est.registerESTCommand("Msg", '<est filter> <message>', message, 2)
est.registerESTCommand("Near", '<var> <est filter> <distance> <name/userid> <command>', near, 5)
est.registerESTCommand("NearCoord", '<var> <est filter> <distance> <x> <y> <z> <command>', nearCoord, 7)
est.registerESTCommand("MakeEntity", '<entity> <model> <x> <y> <z> [index var]', makeEntity, (5, 6))
est.registerESTCommand("GetGravity", '<var> <userid/name>', getGravity, 2)
est.registerESTCommand("SetGravity", '<est filter> <amount>', setGravity, 2)
est.registerESTCommand("GetAmmo", '<var> <name/userid> <weapon slot / name>', getAmmo, 3)
est.registerESTCommand("GetClipAmmo", '<var> <name/userid> <weapon slot / name>', getClip, 3)
est.registerESTCommand("GetWeaponIndex", '<var> <name/userid> <weapon slot / name>', getWeaponIndex, 3)
est.registerESTCommand("StrToUPPER", '<var> <string>', changeToUpper, 2)
est.registerESTCommand("StrTolower", '<var> <string>', changeToLower, 2)
est.registerESTCommand("StrLen", '<var> <string>', getStringLength, 2)
est.registerESTCommand("TrimDecimal", '<var> <number> <decimal-position>', trimDecimal, 3)
est.registerESTCommand("GetDeaths", '<var> <userid>', deathGet, 2)
est.registerESTCommand("GetKills", '<var> <userid>', killGet, 2)
est.registerESTCommand("Kills", '<est filter> <operator> <amount>', kills, 3)
est.registerESTCommand("KillAdd", '<est filter> <amount>', killAdd, 2)
est.registerESTCommand("KillSet", '<est filter> <amount>', killSet, 2)
est.registerESTCommand("CvarAddFlag", '<cvar> <gamedll> <sponly> <notify> <cheat> <userinfo> <unlogged> <replicated>', addCVARFlags, 8)
est.registerESTCommand("CvarDelFlag", '<cvar> <gamedll> <sponly> <notify> <cheat> <userinfo> <unlogged> <replicated>', deleteCVARFlags, 8)
est.registerESTCommand("Armor", '<est filter> <operator> <amount>', armor, 3)
est.registerESTCommand("ArmorAdd", '<est filter> <amount>', armorAdd, 2)
est.registerESTCommand("SetArmor", '<est filter> <amount>', armorSet, 2)
est.registerESTCommand("GetArmor", '<variable> <est player>', armorGet, 2)
est.registerESTCommand("Health", '<est filter> <operator> <amount>', health, 3)
est.registerESTCommand("HealthAdd", '<est filter> <amount>', healthAdd, 2)
est.registerESTCommand("SetHealth", '<est filter> <amount>', healthSet, 2)
est.registerESTCommand("GetHealth", '<variable> <est player>', healthGet, 2)
est.registerESTCommand("Cash", '<est filter> <operator> <amount>', cash, 3)
est.registerESTCommand("CashAdd", '<est filter> <amount>', cashAdd, 2)
est.registerESTCommand("SetCash", '<est filter> <amount>', cashSet, 2)
est.registerESTCommand("GetCash", '<variable> <est player>', cashGet, 2)
est.registerESTCommand("ViewCone", '<var> <userid/name> <est filter> <cone angle> <cone distance> <"command">', viewCone, 6)
est.registerESTCommand("OpenFile", '<var> [file type ("r" / "w")] <"file path">', files.openFile, (2,3))
est.registerESTCommand("OpenFiles", 'No arguments', files.openFiles, 0)
est.registerESTCommand("PrintOpenFile", '<file handle>', files.printOpenFile, 1)
est.registerESTCommand("CountLines", '<var> <file handle>', files.countLines, 2)
est.registerESTCommand("CloseFile", '<file handle>', files.closeFile, 1)
est.registerESTCommand("FileExists", '<var> <file path>', files.fileExists, 2)
est.registerESTCommand("GetLine", '<var> <file handle> <line number>', files.getLine, 3)
est.registerESTCommand("DeleteLine", '<file handle> <line number>', files.deleteLine, 2)
est.registerESTCommand("InsertLine", '<file handle> <line number (-1 = append)> <text>', files.insertLine, 3)(You can see that all the commands register by looking at this console dump)
The commands I've got left to convert before I have my first release are as follows:
Code: [Select]
est_Play
est_PlayEdict
est_PlayerCount
est_PlayPlayer
est_propcount
est_proplist
est_propshow
est_RandPlayer
est_RemoveIdle
est_RemoveWeapon
est_Restrict
est_RestrictAll
est_SetAim
est_SetAmmo
est_SetClipAmmo
est_SetEntityColor
est_SetEntModel
est_SetModel
est_SetPlayerColor
est_SetViewAngle
est_SetViewCoord
est_Shake
est_ShowMenu
est_showrestrict
est_StopSound
est_UnRestrict
est_UnRestrictAllNow you may notice a few things. There are no est_effects. This is the command I'm currently working on, but it requires that I learn how to sig scan, (you can see my plead for help here, so I'm currently working hard to bring it back). The entire source (as it stands) can be found here although I highly suggest you don't run it as it's not even syntax checked yet).
This is just an update so you know where I stand, and I apologise for anything I've done in the past to the community. Again I haven't forgotten about you are anything.
On a side note, if anyone would like to help me with anything to do with the new WCS, I'd be glad to listen (such as suggetions, small code snippets and what not). I have bigger plans for WCS: Python, including some very advanced and crazy web PHP scripts
(I'm keeping this a secret until later stage). I don't think it'll be ready any time soon, there's still a huge amount of work to do to WCS: Python to make it into beta stage, and I've learnt from last time to not rush anything 
-freddukes

Logged





