스크립트

[GML Script] execute_script_string

by 짭뿌C posted Mar 18, 2014
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

 이 스크립트는 execute_string를 대체하기 위한 임시로 만든 스크립트입니다.

주로 사용하는 용도는 콘솔, 치트에 사용합니다!

 

주의:

-스크립트만 불를 수 있습니다.

-두개의 스크립트를 불를 수 없습니다.

-만약 존재하지 않는 스크립트를 썼다면, 에러가 뜹니다, 그리고 -1을 리턴합니다.

 

그리고 굳이 해석하실 필요는 없습니다! ㅠ

 

ex)----------------------------------------------------------------->

스크립트 scr_ad(argument0)

[ return argument0; ]

 

show_message(execute_script_string("scr_ad(5)"))

-> 5를 출력합니다!

 

다만 execute_script_string("scr_ad(scr_agsdf(5))"))

같이 한번에 2번 호출이 불가능합니다.

---------------------------------------------------------------------->

execute_script_string(string)

 

var i,a,b,c,count,d=0;

a=string(argument0)
if !string_count("()",a)>=1{
a=string_replace_all(a,"()}else{d=1;a=string_delete(a,string_pos("(",a),string_pos("(",a'>","@")}else{d=1;a=string_delete(a,string_pos("(",a),string_pos("(",a))
a=string_insert("@",a,string_length(a)+1)
}
a=string_replace_all(a,",","@")
a=string_delete(a,string_pos(")",a),string_pos(")",a))
a=string_delete(a,string_pos(";",a),string_pos(";",a))
count=string_count("@",a)-d
b=""
if count==0{
b[0]=string_copy(a,1,string_length(a)) b[0]=asset_get_index(b[0])}else{for (i=0;i<(count+1);i++){
if count==i{b[i]=a}else{
b[i]=string_copy(a,1,string_pos("@",a))}a=string_delete(a,1,string_pos("@",a))
b[i]=string_delete(b[i],string_pos("@",b[i]),string_pos("@",b[i]))
if i==0{b[i]=asset_get_index(b[i])}else{
if string_count("'",b[i])>=2{b[i]=string_replace_all(b[i],"'","")}
else if string_count('"',b[i])>=2{b[i]=string_replace_all(b[i],'"','')}
else{
if asset_get_type(b[i])!=asset_unknown{b[i]=asset_get_index(b[i])}else{b[i]=real(b[i])}}}
show_message(string(b[i]))
}}

if count==5{c=script_execute((b[0]),(b[1]),(b[2]),(b[3]),(b[4]),(b[5]))}
if count==4{c=script_execute((b[0]),(b[1]),(b[2]),(b[3]),(b[4]))}
if count==3{c=script_execute((b[0]),(b[1]),(b[2]),(b[3]))}
if count==2{c=script_execute((b[0]),(b[1]),(b[2]))}
if count==1{c=script_execute((b[0]),(b[1]))}
if count==0{c=script_execute((b[0]))}

return c;