7个版本 (稳定版)
1.4.0 | 2021年6月23日 |
---|---|
1.3.2 | 2021年6月20日 |
1.2.0 | 2021年5月26日 |
0.1.0 | 2021年5月15日 |
#947 in 游戏开发
每月下载量 21次
37KB
787 行
CCDB_SCRIPT
为什么选择ccdb-script?
当你想让你的游戏或项目易于修改时,ccdb-script是一种轻量级的Rust语言。
ccdb_script很轻量
正如所说,ccdb_script是为了轻量而制作的
ccdb_script很简单
ccdb_script是为了轻松集成到任何项目中而制作的
如何集成
// ! note this example uses my other crate openfile
use ccdb_script;
/* The test ccdb-script
[(var)test "test"]
*/
fn main(){
ccdb_script::run(openfile::readFile("test.ccdbs")); // you can also get val from this
let parse = ccdb_script::parse(openfile::readFile("test.ccdbs")); // if you split it up this way you only need to parse once and then
// you can still easily run the script whenever you want to
let mut val = ccdb_script::run_parsed(parse);
println!("{}",val.get_var("test".to_string()));
// create a custom struct. This is used for custom functions in the script that are linked to rust
let mut custom = ccdb_script::custom::Custom::new();
//sample function ALL custom functions need Vec<String> and -> String as their only in and outputs
fn test(x: Vec<String>) -> String{
println!("{:#?}",x);
"test".to_string()
}
fn test2(x: Vec<String>){
println!("no output{:#?}",x);
}
fn test3(x: &mut ccdb_script::var::Var){
print!("vv{:#?}",x.var);
x.new_var("lol","yes");
}
custom.new_fn(ccdb_script::custom::FnType::Output(test),"test");//with output
custom.new_fn(ccdb_script::custom::FnType::Nout(test2),"test2");//without output
custom.new_fn(ccdb_script::custom::FnType::Var(test3),"test3");//to get access to var values
// add it to the script
// the output will be R(function name) with no ()
// if you want custom values when running the script;
let mut var = ccdb_script::var::Var::new();
var.new_var("name","value");
var.set_max_mem(100); // set the max number of bytes the script is allowed to use if you set it to 0 it will be infinite(default)
ccdb_script::run_parsed_var(parse, &mut var);
}
语法
[(Command)arguments]
example:
[(var)test "test"]
[(print)test]
[(print)"Hello, world"]
[(if)test == "test"]
[(edit)test "test2"]
[(print)"new test"]
[(print)test]
[(print)"That is true"]
[(print)"dropping test"]
/ drop a variable by using drop
[(drop)test]
[(if stop)]
[(var)int "0"]
[(print)int]
/ use + / - and * like this before the number to do a math operation
[(edit)int +100]
[(print)int]
[(custom) arg1 ,< arg2 arg3 ...]
/ split the line using ,<
用法
这种语言是为了轻松集成到ccdb和其他项目中