// Inside an external dmb file, special.dmb
var/specialcode = "SPECIAL" // for security
proc/special( params )
set cancall = 1
. = "Your params are: [params]"
return list(md5("[.][specialcode]"),.)
// Inside the current dmb
var/specialcode = "SPECIAL"
client/verb/test()
var/test = call("special.dmb", "special")("testing")
if( (test.len>1) && test[1]==md5("[test[2]][specialcode]") )
src << test[2]
I know something similar is already possible using shell()/startup() and world.params, but that is rather cumbersome and does unnecessary work. How feasible would it be to implement this?
It's already possible to connect to another game through the use of world.Export().
I don't see how this approach is desired. Every time you would execute that proc BYOND would have to run the specified .dmb file from scratch, call world/New() on it, execute the function, store the return value, and shut it all down again.