<% gotome=Request.ServerVariables("script_name") sServer=Request.ServerVariables("SERVER_NAME") if instr(sServer,"games.23ae.com") then response.redirect "http://www.23ae.com/games" sDSN="DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql251.secureserver.net;DATABASE=23AEGames;USER=23AEGames;PASSWORD=pooponastick23;OPTION=3;" Session.Timeout=60 EchelonAccess=0 EchelonID=session("EchelonID") 'Get session ID data if isnumeric(EchelonID) then 'If session not null (else cint will error) if EchelonID>0 then EchelonAccess=1 'if session ID exists, log in end if 'if session ID data does not exist, EchelonAccess still =0 (no attempt) if EchelonAccess<>1 then 'Check for cookie EchelonCookieUser=Request.Cookies("GameUser") 'Get the username cookie if len(EchelonCookieUser)>0 then 'If cookie not empty (else trim will fail) aEchelonUserData=GetEchelonUser(EchelonCookieUser) 'get user info from DB if isarray(aEchelonUserData)=False then EchelonAccess=2 'username not found - do you wish to register? else 'if username found in db EchelonCookiePassword=Request.Cookies("GamePass") 'Get the password cookie too if EchelonCookiePassword=trim(aEchelonUserData(2,0)) then 'if password cookie matches database session("EchelonID")=aEchelonUserData(0,0) 'write to session EchelonAccess=1 'log in else 'if password incorrect EchelonAccess=3 'failed attempt - password reminder EchelonSuspectID=EchelonCookieUser end if end if end if 'if cookie does not exist, EchelonAccess still =0 (no attempt) end if if EchelonAccess<>1 then 'Check for login data EchelonFormUser=trim(Request.Form("GameUser")) 'Get username from form EchelonFormPassword=trim(Request.Form("GamePass")) 'Get the password data too if len(EchelonFormUser)>0 then 'If formfield not null (else trim will fail) aEchelonUserData=GetEchelonUser(EchelonFormUser) 'get user info from DB if isarray(aEchelonUserData)=False then EchelonAccess=2 'username not found - do you wish to register? EchelonFormRegister=trim(Request.Form("Register")) if EchelonFormRegister="Yes" then if len(EchelonFormPassword)<3 then EchelonAccess=4 else Set Conn = CreateObject("ADODB.Connection") sSQL = "INSERT INTO C_Users (nLevel,nDisabled,sUsername,sPassword,sDisplayName,dCreate,dMod) " 'add user to DB sSQL = sSQL & "VALUES (1,0,'"&EchelonFormUser&"','"&EchelonFormPassword&"','"&EchelonFormUser&"',Now(),Now())" Conn.Open sDSN Conn.Execute(sSQL) Conn.close aEchelonUserData=GetEchelonUser(EchelonFormUser) session("EchelonID")=aEchelonUserData(0,0) 'write to session EchelonFormRememberMe=trim(Request.Form("RememberMe")) if EchelonFormRememberMe="Yes" then Response.Cookies("GameUser")=EchelonFormUser Response.Cookies("GameUser").Expires = Date + 1000 Response.Cookies("GamePass")=EchelonFormPassword Response.Cookies("GamePass").Expires = Date + 1000 end if EchelonAccess=1 'log in firsttime=1 end if end if else 'if username found in db if EchelonFormPassword=aEchelonUserData(2,0) then 'if password from form matches database session("EchelonID")=aEchelonUserData(0,0) 'write to session EchelonFormRememberMe=trim(Request.Form("RememberMe")) if EchelonFormRememberMe="Yes" then Response.Cookies("GameUser")=EchelonFormUser Response.Cookies("GameUser").Expires = Date + 364 Response.Cookies("GamePass")=EchelonFormPassword Response.Cookies("GamePass").Expires = Date + 364 end if EchelonAccess=1 'log in else 'if password incorrect EchelonAccess=3 'failed attempt - password reminder - check for add me, say user taken EchelonSuspectID=EchelonFormUser end if end if 'if username found in db end if 'if login data does not exist, EchelonAccess still =0 (no attempt) end if function GetEchelonUser(username) sSQL="Select nID,sUsername,sPassword,nLevel,nDisabled,sEmail FROM C_Users WHERE sUsername LIKE '"&username&"'" Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open sSQL, sDSN, 0, 1 'adOpenForwardOnly, adLockReadOnly if not rs.eof then aEchelonUserData = rs.GetRows rs.Close Set rs = nothing GetEchelonUser=aEchelonUserData end function function GetUserName(nID) sSQL="Select nID,sDisplayName FROM C_Users WHERE nID="&nID Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open sSQL, sDSN, 0, 1 'adOpenForwardOnly, adLockReadOnly if not rs.eof then sDisplayName = rs("sDisplayName") else sDisplayName = "User Deleted" end if rs.Close Set rs = nothing GetUserName=sDisplayName end function %> The Next Discordian Game
<% function DiscordianizeNumber(num) if len(num)=4 then num="0"&num if len(num)=3 then num="00"&num if len(num)=2 then num="000"&num if len(num)=1 then num="0000"&num DiscordianizeNumber=num end function function DateToDiscord(passeddate,additional) 'date must be "dd/mm/yyyy" - additional: 0=just date, 1=just holyday (blank return if not), 2=both 3=just date,time aOffset = split("0 31 59 90 120 151 181 212 243 273 304 334") 'ignore leap years, since St. Tibbs Day is ignored aDMonth = split("Chaos Discord Confusion Bureaucracy Aftermath") nJulian=cint(aOffset(Month(passeddate)-1))+Day(passeddate) nDDay=nJulian MOD 73 sDMonth=aDMonth(nJulian\73) if additional=3 then aCutDate=split(passeddate) passeddate=aCutDate(0) stime=aCutDate(1) end if nDYear = Year(passeddate) + 1166 sDDate=sDMonth&" "&nDDay&", "&nDYear if additional>0 then if sDMonth="Chaos" AND nDDay=5 then sHolyday="
Mungday
" if sDMonth="Chaos" AND nDDay=37 then sHolyday="
Burrday
" if sDMonth="Chaos" AND nDDay=50 then sHolyday="
Chaoflux
" if sDMonth="Chaos" AND nDDay=73 then sHolyday="
Pi Day
" if sDMonth="Discord" AND nDDay=5 then sHolyday="
Mojoday
" if sDMonth="Discord" AND nDDay=28 then sHolyday="
Mu-Day
" if sDMonth="Discord" AND nDDay=50 then sHolyday="
Discoflux
" if sDMonth="Confusion" AND nDDay=5 then sHolyday="
Syaday/Guliday
" if sDMonth="Confusion" AND nDDay=23 then sHolyday="
Opposite Day
" if sDMonth="Confusion" AND nDDay=50 then sHolyday="
Confuflux
" if sDMonth="Confusion" AND nDDay=57 then sHolyday="
Pi Approx. Day
" if sDMonth="Bureaucracy" AND nDDay=5 then sHolyday="
Zaraday
" if sDMonth="Bureaucracy" AND nDDay=50 then sHolyday="
Bureflux
" if sDMonth="Aftermath" AND nDDay=5 then sHolyday="
Maladay
" if sDMonth="Aftermath" AND nDDay=50 then sHolyday="
Afflux
" end if if additional=0 then sFinalDate=sDDate if additional=1 then sFinalDate=sHolyday if additional=2 then sFinalDate=sDDate&sHolyday if additional=3 then sFinalDate=sDDate&" ("&formatDatetime(sTime,vbshorttime)&")" DateToDiscord=sFinalDate end function function EchelonScoreSelf(score) nSecond=Second(Now()) Eris=ErisNumber(55) Eris2=ErisNumber(555) nSecond=nSecond*Eris if isnumeric(score) then score=round(score,0) else score=Eris end if if nSecond Mod 7=0 then Eris=(Eris-Eris)-Eris if nSecond Mod 7=0 then Eris2=(Eris2-Eris2)-Eris2 if nSecond Mod 23=0 then Eris=Eris*Eris if nSecond Mod 23=0 then score=score*Eris if nSecond Mod 25=0 then score=score-Eris2 if len(score)>3 AND instr(score,"-")=0 then score=0-Eris2 if len(score)>4 AND nSecond Mod 2=0 then score=Eris if len(score)>4 AND nSecond Mod 2=1 then score=(Eris2-Eris2)-Eris2 EchelonScoreSelf=score end function function EchelonScore(score,who) 'who: 0=rating self, 1=rating someone else score=round(score,0) nSecond=Second(Now()) Eris=ErisNumber(55) Eris2=ErisNumber(555) nSecond=nSecond*Eris if nSecond Mod 7=0 then Eris=(Eris-Eris)-Eris if nSecond Mod 7=0 then Eris2=(Eris2-Eris2)-Eris2 if nSecond Mod 23=0 then Eris=Eris*Eris if len(score)>5 AND who=0 AND instr(score,"-")=0 then score=((score-score)-score)*Eris if len(score)>5 AND who=1 AND instr(score,"-")=1 then score=(score+score)*Eris if nSecond Mod 5=0 then score=Eris2-Eris if nSecond Mod 7=0 then score=(score-score)-score if nSecond Mod 11=0 then score=score-Eris if nSecond Mod 17=0 then score=(score+score)-Eris if nSecond Mod 23=0 then score=score*Eris if nSecond Mod 42=0 then score=score*Eris2 score=round(score,0) if len(score)>5 AND nSecond Mod 2=0 then score=Eris2 if len(score)>5 AND nSecond Mod 2=1 then score=(Eris2-Eris2)-Eris2 EchelonScore=score end function Function ErisNumber(nHighest) Randomize ErisNumber = Int(Rnd * nHighest) + 1 End Function Function CleanForDB(sContent) sContent=Replace(sContent,"'","'") sContent=Replace(sContent,"") CleanForHTML=sContent End Function Function CleanForForm(sContent) sContent=Replace(sContent,"
",vbcrlf) CleanForForm=sContent End Function function GetPointType(nID) sSQL="Select nID,sTitle FROM C_Type WHERE nID="&nID Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open sSQL, sDSN, 0, 1 'adOpenForwardOnly, adLockReadOnly if not rs.eof then sTitle = rs("sTitle") else sTitle = "Points" end if rs.Close Set rs = nothing GetPointType=sTitle end function Function CountComments(nID) sSQL="Select COUNT(*) As inttotal from C_Comments where nPlay="&nID Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open sSQL, sDSN, 0, 1 'adOpenForwardOnly, adLockReadOnly numberofcomments=rs("inttotal") rs.Close Set rs = nothing CountComments=numberofcomments end Function %> <% 'EchelonAccess: 0=not attempted, 1=signed in, 2=username wrong, 3=password wrong 4=password too short sform="" sform=sform&"" if EchelonAccess=1 then response.write "
" if firsttime=1 then response.write "Please set up your profile!" response.write "My Profile" response.write "My Plays" 'response.write "Report A Bug" response.write "Log Out" response.write "
" elseif EchelonAccess=2 then response.write "
" response.write "Username Not Found! Check the Register Me box to create an account" response.write sform response.write "
" elseif EchelonAccess=3 then response.write "
" if trim(Request.Form("Register"))="Yes" then response.write "Sorry! Username is taken. Try another." else response.write "PASSWORD INCORRECT!" if isArray(aEchelonUserData) then if len(aEchelonUserData(5,0))>1 then response.write " Send me my password" else response.write " No email address on file, so try again." end if end if end if response.write sform response.write "
" elseif EchelonAccess=4 then response.write "
" response.write "Password must be 4 characters or more!" response.write sform response.write "
" else response.write "
" response.write sform response.write "
" end if %> <% response.write "" %>

 

The following is just a list of ideas about what comes after Sink. Help us out by using the sidebar to tell us how these should be implemented, or to suggest something that we forgot to add to this list.

 

Next Up

  • 50,000,000 Blank White Pixels - Got a couple things left to do with the scoring before moving on to other things.
  • Sink - We aren't sure what this game will consist of, but there will be points and such for sinking various things.
  • Jake Game (Working Title) - A game in which points are given for performing and proudly displaying various Jakes and Mindfucks.

Games We Want To Make, But We're Not Sure How Quite Yet

  • Cooknote Fiberglass - Perhaps this will end up piggy-backing on or being an amalgamation of all of the other games we create. In any case, it will not be attempted until far into the future.
  • The Glass Bead Game - The game featured in Hermann Hesse's book Magister Ludi would be perfect as a Discordian Game, but would be very difficult to code.

Hidden Games That Are Already Here If You Look Hard Enough

  • Lebanon may be played in commentary as an additional game. Lebanon is a Discordian Game where the purpose is to not be the last person to realize that a game of Lebanon is being played.
<% response.write "" %>