Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
redhalo
May 19, 2009

Sendo posted:

Keep playing, you're still in the tutorial.

Yeah, nevermind. Got passed the firewall, I get it now.

Adbot
ADBOT LOVES YOU

Reverence
Nov 1, 2009

So is there any way to actually find NPCs that haven't been breached or do i just need to be faster?

DaveKap
Feb 5, 2006

Pickle: Inspected.



Reverence posted:

So is there any way to actually find NPCs that haven't been breached or do i just need to be faster?
Learn to do T2s from the discord. It's the only thing that's kept me in the game.

Lichtenstein
May 31, 2012

It'll make sense, eventually.
Playing Haunty Mall doesn't hurt too (probably).

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


Doctor_Acula posted:

I say we all pitch in to a goon corp.
We need a hella kitchsy 90s cyberpunk name, though.
Or just rip something straight out of Shadowrun/GITS.
Renraku or Section 9.

I've not done any coding since high school. Is there any way to test stuff you think might work? I'd hate to spam up the chat with garbage text.

Wintermute too on the nose about AI and Gibson?

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


DaveKap posted:

Learn to do T2s from the discord. It's the only thing that's kept me in the game.

Yeah T2s once you find them have a ton of cash and are interesting. I can't find a QR code reader I trust that will read them from the screen. I've found jpg reader websites but then I'd have to save it. We have a nice paid one at work that also generates them but it's also Mac only and $200.

I just want to hover over a QR code and get what it contains copied when I press ctrl+c is that so much to ask?

KimJongUnstoppable
Sep 18, 2010

Juche Lyfe 4 Ever!
If someone got my LOC, is there anything I can do about it? or do I just need to suck it up and deal with it?

luckily I keep nothing on my main and all my money on my alt, but still - I assume there's no way to change the LOC, so I'm going to save up and buy a shitload of locks at some point. Better than retiring and making a new character.

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


KimJongUnstoppable posted:

If someone got my LOC, is there anything I can do about it? or do I just need to suck it up and deal with it?

luckily I keep nothing on my main and all my money on my alt, but still - I assume there's no way to change the LOC, so I'm going to save up and buy a shitload of locks at some point. Better than retiring and making a new character.

Well what does your character have that's so important? Locks are expensive even if you are a high init is there anything you have like a reputation that you are trying to preserve. Or are you just attached to the name? That said your loc WILL get out no matter what. You get 10 retires and they clear after 30 days so you can basically change names every 3 days if you want. Good locks are 40M+ you are probably T1/T2 init so only down 1-11M If you already bought the 100M init you really should have good locks because NPCs will try and hack you and succeed if your locks are lovely (compared to your init level a c003 is enough to stop them at T2 and should run you under 1M)

KimJongUnstoppable
Sep 18, 2010

Juche Lyfe 4 Ever!

pixaal posted:

Well what does your character have that's so important? Locks are expensive even if you are a high init is there anything you have like a reputation that you are trying to preserve. Or are you just attached to the name? That said your loc WILL get out no matter what. You get 10 retires and they clear after 30 days so you can basically change names every 3 days if you want. Good locks are 40M+ you are probably T1/T2 init so only down 1-11M If you already bought the 100M init you really should have good locks because NPCs will try and hack you and succeed if your locks are lovely (compared to your init level a c003 is enough to stop them at T2 and should run you under 1M)

Good point. I was attached to the name, but it's not the end of the world. Time to burn it and grab a new one.

Marx Headroom
May 10, 2007

AT LAST! A show with nonono commercials!
Fallen Rib

pixaal posted:

Wintermute too on the nose about AI and Gibson?

Nice, I was thinking Tessier-Ashpool! Although playing this game makes me feel like Bobby Newark.

Mindblast
Jun 28, 2006

Moving at the speed of death.


After loving about looking for a while figuring out how to split and rearrange text into arrays I find out that those npc lists are already arrays for starters. :downs:

Guess I'll hit mongodb next for funsies!

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


Mindblast posted:

After loving about looking for a while figuring out how to split and rearrange text into arrays I find out that those npc lists are already arrays for starters. :downs:

Guess I'll hit mongodb next for funsies!

I found that some were arrays and some were strings separated by '\n' which is really loving annoying

Mindblast
Jun 28, 2006

Moving at the speed of death.


Ciaphas posted:

I found that some were arrays and some were strings separated by '\n' which is really loving annoying

Huh. Good to know. My pointless experimenting may not have been so pointless then, as it appears my solution is for strings, yet does not gently caress up an array(or more precisely it rebuilds it) if it already is an array.

Doctor_Acula
May 24, 2011
Yeah, I suppose I need to get into T2 stuff. The T1s are gone almost immediately. Still seems like a design flaw to have every npc reset at the same time, with such a long wait between. But that's just my two cents.

Trying to go through Code Academy to get some JS chops while at work. What a game.

Orange DeviI
Nov 9, 2011

by Hand Knit
It seems npcs reset more often these days

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


Anyone figured out a way to quick switch users?

/sw = user alt
/sw = #s.user alt

does not work both tell me %user%.user is not a valid script.

I'd be okay if the solution is using a private script slot if I really had to and bind that to /sw

LordSaturn
Aug 12, 2007

sadly unfunny

Don't give up on T1s just because 0000 tells you to. Be persistent, change networks. The script I posted above does one additional helpful thing, which is that it checks each loc with scripts.get_level - this has the side effect of making sure that the subject exists. If it doesn't find one, it'll scrape another, in a loop...

CountingWizard
Jul 6, 2004
I noticed that the qrs for some orders have an extra bit of data like randomshortstring.longerstring. I haven't found a way this has been used yet. Also, soylentbean has a few odd things about it, like entering a project name directly into the first field rather than after a member lookup and password. And I found this highlighted in appropriate colors but haven't found how to use it yet... Bean:100

Orange DeviI
Nov 9, 2011

by Hand Knit
never

listen

to

0000

Mindblast
Jun 28, 2006

Moving at the speed of death.


please knock Mom! posted:

never

listen

to

0000

The first thing everyone needs to do on a new user is chats.leave 0000. Seriously.

(Also what prompted you to announce this. Tell us :allears:)

Lichtenstein
May 31, 2012

It'll make sense, eventually.
God, I love this game, even if it makes me feel really dumb.

Tips to those dismayed about the T1 drought:
1) Learn to obtain the npc locs in lists, there's more of them than it seems. :wink:
2) Play dtr.haunty_mall each day - it's fullsec, costs you nothing and offers a daily 1:3 chance to get 1.5 mil, which is a godsend for these first inits and script upgrades.

Argue
Sep 29, 2005

I represent the Philippines
This game looks interesting but I just saw the word "Javascript" and... ugh. Am I going to end up writing a gajillion nested callbacks?

Lichtenstein
May 31, 2012

It'll make sense, eventually.
I got confused about scriptors, being the coding noob I am.

What I wanted to do, is make a script where I dump all npc locks I dug up, with calls to my cracker, for the convenience of only entering a single line of script after kernel.hardline (I find it more convenient to paste from the shell log file to a text editor, than deal with the lovely in-game text selector). So the entire code is meant to basically look like this:
code:
function (context, args)
{
	#s.dickbutt.mycracker({target:#s.npc.loc1})
	#s.dickbutt.mycracker({target:#s.npc.loc2})
	#s.dickbutt.mycracker({target:#s.npc.loc3})
	#s.dickbutt.mycracker({target:#s.npc.loc4})
	#s.dickbutt.mycracker({target:#s.npc.loc5})
 	...
}
My trouble being, I can't really pass a scriptor as an argument other than making it a call, like ({target:args.npc1.}). Which feels like a dumb and wrong way to do what I'm trying to do here. I think I'm supposed to wrap this poo poo in a small function whose sole purpose is to return the scriptor in question, but apparently Ican't get them right.

Can anyone show me how my bad pseudocode should have been written?

Ruggan
Feb 20, 2007
WHAT THAT SMELL LIKE?!


Lichtenstein posted:

I got confused about scriptors, being the coding noob I am.

What I wanted to do, is make a script where I dump all npc locks I dug up, with calls to my cracker, for the convenience of only entering a single line of script after kernel.hardline (I find it more convenient to paste from the shell log file to a text editor, than deal with the lovely in-game text selector). So the entire code is meant to basically look like this:
code:
function (context, args)
{
	#s.dickbutt.mycracker({target:#s.npc.loc1})
	#s.dickbutt.mycracker({target:#s.npc.loc2})
	#s.dickbutt.mycracker({target:#s.npc.loc3})
	#s.dickbutt.mycracker({target:#s.npc.loc4})
	#s.dickbutt.mycracker({target:#s.npc.loc5})
 	...
}
My trouble being, I can't really pass a scriptor as an argument other than making it a call, like ({target:args.npc1.}). Which feels like a dumb and wrong way to do what I'm trying to do here. I think I'm supposed to wrap this poo poo in a small function whose sole purpose is to return the scriptor in question, but apparently Ican't get them right.

Can anyone show me how my bad pseudocode should have been written?

it's the age old problem, you can't do what you want based on the game's restrictions. I even tried to decompile the scriptor .call function so I could reverse engineer build my own scriptor objects, but that's fairly impossible to do without this / prototype.

The best way to do what you want to do without forcing you to pass a scriptor as an argument, is to build some big fuckoff function like this:

code:
function returnData (i, args)
{
	if (i == 1) { return #s.npc.loc(args} }
	else if (i == 2) { return #s.npc2.loc(args) }
	else if (i == 3) { return #s.npc3.loc(args) }
	...
}
Then you call it with your target number and the arguments you want to pass (e.g. {} or {open:"news"} or whatever).

The upside to this approach is that it works. The downside is that it breaks every time npc locs reset and you need to update your code.

Mindblast
Jun 28, 2006

Moving at the speed of death.


For that reason I am currently building a script with two sides - scanning and cracking. Once you find a juicy big list of npcs, you can almost literary copy paste the link in and it will store them all in a db. It tests the first one to see if it is still around and keeps going until it finds one that does. It then prints "myuser.scancrack{t:#s.npc.loc}" so I can just hardline and cp it in the command.

Each call with scancrack will both make it crack as well as flip through the db, testing to weed out the obviously looted ones and showing another string for easy copy/pasting once it is done.

You can crack an impressive amount in a single hardline this way!

One problem: I am a noob and this thing is a lumbering behemoth (for what it does) on the verge of death the whole time. :v:

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


Man and here I've been working on scripts to decode QRs. Should have been working on something like that so I can advance first.

Orange DeviI
Nov 9, 2011

by Hand Knit

Mindblast posted:

(Also what prompted you to announce this. Tell us :allears:)

the posts above. i never listen to 0000

i made thing. if you do t1s, read this and do t2s

Orange DeviI fucked around with this message at 18:43 on Oct 3, 2016

Marx Headroom
May 10, 2007

AT LAST! A show with nonono commercials!
Fallen Rib

Argue posted:

This game looks interesting but I just saw the word "Javascript" and... ugh. Am I going to end up writing a gajillion nested callbacks?

Nah. You start out with 500 chars (not counting whitespace or comments) of maximum script space. You can buy upgrades but we're not building enterprise software over here. You're more likely to end up playing code golf.

That said this is a cool game and I'm amazed every day at how much players have learned about the game systems just by poking at it. It's pretty crazy stuff considering the main interaction is typing in script names.

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


We can use a script to enable or disable someone's music / sound which is great. What I really want though is the ability to play sound by sending the frequency. Just make the most jarring noise possible when someone accesses the file. Or just a frequency sweep with While x<1000 x++ while x>0 x-- play(freq:x). Make sure you turn their sound to max before hand so they throw their headphones off in horror. Bonus if it sends you a message (to a channel obviously) so you can breach them while they are stunned from the sonic weapon.

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


At work but a Reddit thread seems to mention T1s have changed somehow to be more reachable/palatable? Something about harvested NPC locs no longer showing up or having some marker to indicate that they're harvested/gone already.

Ciaphas fucked around with this message at 20:47 on Oct 3, 2016

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


Ciaphas posted:

At work but a Reddit thread seems to mention T1s have changed somehow to be more reachable/palatable? Something about harvested NPC locs no longer showing up or having some marker to indicate that they're harvested/gone already.

This would be amazing if this also worked for T2s and once everything in the QR code was farmed it would remove the QR code. Nothing worse than going through an entire puzzle for no reward.

Doctor_Acula
May 24, 2011
Yeah when scanning for T1s to mess with on my lunch break, I saw a lot of <deleted> and <null> in the account lists. Maybe they changed the seeding, cause I found like 12 on my lunch that weren't hacked.

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


Cool, now I've got a good reason to write scripts for myself to harvest and crack T1s rather than flub about with T2s and QRs on an unupgraded user.

(Yes I know there's plenty of scripts already public for T1 but loving lol if I trust any of them)

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


Also I'm now feeling like I should retire at least one, if not both, of my current user names because they're x_01 and x_02 so uh whoops, pretty obvious association if anyone feels like looking for me and wondering where the cash is :v:

Question Time
Sep 12, 2010



I'm playing this now. edit:nevermind, found it.

LordSaturn
Aug 12, 2007

sadly unfunny

Ciaphas posted:

Cool, now I've got a good reason to write scripts for myself to harvest and crack T1s rather than flub about with T2s and QRs on an unupgraded user.

(Yes I know there's plenty of scripts already public for T1 but loving lol if I trust any of them)

Your paranoia is generally commendable, but misguided. A fullsec script can only do you harm if 1) you pass it a scriptor to a non-fullsec script or 2) it makes you say dumb stuff in chat. If a cracker says it's fullsec, the worst it can do is make you blab advertisements, and I've never seen one that does.

dbrickshaw's cracker is open source - if you call into it with no arguments it'll give you a pastebin link to source you can use to make your own.

Scrapers appear to be a harder problem, and I can't figure how one would work, given that the different directories all have slightly different parameters. I guess some of it is spammable...

Once you have both of those, you can write a "glue" script to crack the passed-in scriptor, then scrape a new scriptor, then return a copy-and-pastable script call to start over. There is no way for a script to take the name of a script, as a string, and call that script. This would make it pretty easy to violate the earlier security model, and would also make it possible to automate scraping and cracking. Instead, we rely on the user copy-and-pasting with a scriptor we format for them.

Mindblast
Jun 28, 2006

Moving at the speed of death.


Ciaphas posted:

Cool, now I've got a good reason to write scripts for myself to harvest and crack T1s rather than flub about with T2s and QRs on an unupgraded user.

(Yes I know there's plenty of scripts already public for T1 but loving lol if I trust any of them)

That's why you find t1 crackers on places like github and pastebin and just browse the code a bit - they'd have to SERIOUSLY obfuscate code to hide a malicious call in there. Also fullsec appears to truly be fullsec. That doesn't mean fullsec scripts can't gently caress you over, but it will happen through social engineering.

There is/was this player who set up a VERY convincing corporate page. So people would think they're hunting t1 locs but the locs in question were all malicious scripts. Devious.

Not to mention that there's stuff like init.sys(don't loving run this ever!)

e: on the t1 loc changes... man these are great. Partially invalidated my pretty babby script but w/e, it's still useful.

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


LordSaturn posted:

Your paranoia is generally commendable, but misguided. A fullsec script can only do you harm if 1) you pass it a scriptor to a non-fullsec script or 2) it makes you say dumb stuff in chat. If a cracker says it's fullsec, the worst it can do is make you blab advertisements, and I've never seen one that does.

dbrickshaw's cracker is open source - if you call into it with no arguments it'll give you a pastebin link to source you can use to make your own.

Scrapers appear to be a harder problem, and I can't figure how one would work, given that the different directories all have slightly different parameters. I guess some of it is spammable...

Once you have both of those, you can write a "glue" script to crack the passed-in scriptor, then scrape a new scriptor, then return a copy-and-pastable script call to start over. There is no way for a script to take the name of a script, as a string, and call that script. This would make it pretty easy to violate the earlier security model, and would also make it possible to automate scraping and cracking. Instead, we rely on the user copy-and-pasting with a scriptor we format for them.

Yeah, I figured out that bolded rule after an hour of frustration this weekend :v:. Makes sense why it's set up that way though, from a gameplay perspective.

I'm guessing you can't pass in the names of parameters, or take the name of a parameter as a string and use that as a parameter (same as the name of a script), right? e.g.
code:
var argname = "browse";
#s.npc.public({ argname: "order_qrs"});
So I guess any harvest script has to brute force those, or grep out the parameter names via the usual manual steps... but then you run into the 'can't turn a string into a scriptor' problem again.

Hm.

(ed) If only this were C# or another .NET-supporting language, I could bust out some sick System.Reflection nonsense and run this loving place in two, three days tops :getin:

Ciaphas fucked around with this message at 00:40 on Oct 4, 2016

Ciaphas
Nov 20, 2005

> BEWARE, COWARD :ovr:


By the way, has anyone figured out yet what the different security levels of scripts represent?

Adbot
ADBOT LOVES YOU

siggy2021
Mar 8, 2010

Ciaphas posted:

Yeah, I figured out that bolded rule after an hour of frustration this weekend :v:. Makes sense why it's set up that way though, from a gameplay perspective.

I'm guessing you can't pass in the names of parameters, or take the name of a parameter as a string and use that as a parameter (same as the name of a script), right? e.g.
code:
var argname = "browse";
#s.npc.public({ argname: "order_qrs"});
So I guess any harvest script has to brute force those, or grep out the parameter names via the usual manual steps... but then you run into the 'can't turn a string into a scriptor' problem again.

Hm.

You can put together an object and then pass it to the script.

code:
var c = args.command;
var n = args.username;
var p = {};
p["username"] = n;
p[c] = "order_qrs";

#s.npc.public(p);
I'm a bad coder and haven't dealt with javascript in a long time so there is probably a better/more right way to do this.

  • Locked thread