亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? script.c

?? 最新的仙鏡傳說服務器C語言源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
	if(st->end>st->start+3){
		min=conv_num(st,& (st->stack->stack_data[st->start+2]));
		max=conv_num(st,& (st->stack->stack_data[st->start+3]));
		if(max<min){
			int tmp;
			tmp=min;
			min=max;
			max=tmp;
		}
		range=max-min+1;
		push_val(st->stack,C_INT,rand()%range+min);
	} else {
		range=conv_num(st,& (st->stack->stack_data[st->start+2]));
		push_val(st->stack,C_INT,rand()%range);
	}
	return 0;
}

/*==========================================
 *
 *------------------------------------------
 */
int buildin_warp(struct script_state *st)
{
	int x,y;
	char *str;
	struct map_session_data *sd=script_rid2sd(st);

	str=conv_str(st,& (st->stack->stack_data[st->start+2]));
	x=conv_num(st,& (st->stack->stack_data[st->start+3]));
	y=conv_num(st,& (st->stack->stack_data[st->start+4]));
	if(strcmp(str,"Random")==0)
		pc_randomwarp(sd,3);
	else if(strcmp(str,"SavePoint")==0){
		if(map[sd->bl.m].flag.noreturn)	// 挶嬛巭
			return 0;

		pc_setpos(sd,sd->status.save_point.map,
			sd->status.save_point.x,sd->status.save_point.y,3);
	}else
		pc_setpos(sd,str,x,y,0);
	return 0;
}
/*==========================================
 * 僄儕傾巜掕儚乕僾
 *------------------------------------------
 */
int buildin_areawarp_sub(struct block_list *bl,va_list ap)
{
	int x,y;
	char *map;
	map=va_arg(ap, char *);
	x=va_arg(ap,int);
	y=va_arg(ap,int);
	if(strcmp(map,"Random")==0)
		pc_randomwarp((struct map_session_data *)bl,3);
	else
		pc_setpos((struct map_session_data *)bl,map,x,y,0);
	return 0;
}
int buildin_areawarp(struct script_state *st)
{
	int x,y,m;
	char *str;
	char *mapname;
	int x0,y0,x1,y1;

	mapname=conv_str(st,& (st->stack->stack_data[st->start+2]));
	x0=conv_num(st,& (st->stack->stack_data[st->start+3]));
	y0=conv_num(st,& (st->stack->stack_data[st->start+4]));
	x1=conv_num(st,& (st->stack->stack_data[st->start+5]));
	y1=conv_num(st,& (st->stack->stack_data[st->start+6]));
	str=conv_str(st,& (st->stack->stack_data[st->start+7]));
	x=conv_num(st,& (st->stack->stack_data[st->start+8]));
	y=conv_num(st,& (st->stack->stack_data[st->start+9]));
	
	if( (m=map_mapname2mapid(mapname))< 0)
		return 0;
	
	map_foreachinarea(buildin_areawarp_sub,
		m,x0,y0,x1,y1,BL_PC,	str,x,y );
	return 0;
}

/*==========================================
 *
 *------------------------------------------
 */
int buildin_heal(struct script_state *st)
{
	int hp,sp;

	hp=conv_num(st,& (st->stack->stack_data[st->start+2]));
	sp=conv_num(st,& (st->stack->stack_data[st->start+3]));
	pc_heal(script_rid2sd(st),hp,sp);
	return 0;
}
/*==========================================
 *
 *------------------------------------------
 */
int buildin_itemheal(struct script_state *st)
{
	int hp,sp;

	hp=conv_num(st,& (st->stack->stack_data[st->start+2]));
	sp=conv_num(st,& (st->stack->stack_data[st->start+3]));
	pc_itemheal(script_rid2sd(st),hp,sp);
	return 0;
}
/*==========================================
 *
 *------------------------------------------
 */
int buildin_percentheal(struct script_state *st)
{
	int hp,sp;

	hp=conv_num(st,& (st->stack->stack_data[st->start+2]));
	sp=conv_num(st,& (st->stack->stack_data[st->start+3]));
	pc_percentheal(script_rid2sd(st),hp,sp);
	return 0;
}

/*==========================================
 *
 *------------------------------------------
 */
int buildin_jobchange(struct script_state *st)
{
	int job;

	job=conv_num(st,& (st->stack->stack_data[st->start+2]));
	pc_jobchange(script_rid2sd(st),job);

	return 0;
}

/*==========================================
 *
 *------------------------------------------
 */
int buildin_input(struct script_state *st)
{
	struct map_session_data *sd=NULL;
	int num=(st->end>st->start+2)?st->stack->stack_data[st->start+2].u.num:0;
	char *name=(st->end>st->start+2)?str_buf+str_data[num&0x00ffffff].str:"";
//	char prefix=*name;
	char postfix=name[strlen(name)-1];

	sd=script_rid2sd(st);
	if(sd->state.menu_or_input){
		sd->state.menu_or_input=0;
		if( postfix=='$' ){
			// 暥帤楍
			if(st->end>st->start+2){ // 堷悢1屄
				set_reg(sd,num,name,(void*)sd->npc_str);
			}else{
				printf("buildin_input: string discarded !!\n");
			}
		}else{
			// 悢抣
			if(st->end>st->start+2){ // 堷悢1屄
				set_reg(sd,num,name,(void*)sd->npc_amount);
			} else {
				// ragemu屳姺偺偨傔
				pc_setreg(sd,add_str("l14"),sd->npc_amount);
			}
		}
	} else {
		st->state=RERUNLINE;
		if(postfix=='$')clif_scriptinputstr(sd,st->oid);
		else			clif_scriptinput(sd,st->oid);
		sd->state.menu_or_input=1;
	}
	return 0;
}


/*==========================================
 *
 *------------------------------------------
 */
int buildin_if(struct script_state *st)
{
	int sel,i;

	sel=conv_num(st,& (st->stack->stack_data[st->start+2]));
	if(!sel)
		return 0;

	// 娭悢柤傪僐僺乕
	push_copy(st->stack,st->start+3);
	// 娫偵堷悢儅乕僇傪擖傟偰
	push_val(st->stack,C_ARG,0);
	// 巆傝偺堷悢傪僐僺乕
	for(i=st->start+4;i<st->end;i++){
		push_copy(st->stack,i);
	}
	run_func(st);

	return 0;
}


/*==========================================
 * 曄悢愝掕
 *------------------------------------------
 */
int buildin_set(struct script_state *st)
{
	struct map_session_data *sd=NULL;
	int num=st->stack->stack_data[st->start+2].u.num;
	char *name=str_buf+str_data[num&0x00ffffff].str;
	char prefix=*name;
	char postfix=name[strlen(name)-1];

	if( st->stack->stack_data[st->start+2].type!=C_NAME ){
		printf("script: buildin_set: not name\n");
		return 0;
	}

	if( prefix!='$' )
		sd=script_rid2sd(st);

		
	if( postfix=='$' ){
		// 暥帤楍
		char *str = conv_str(st,& (st->stack->stack_data[st->start+3]));
		set_reg(sd,num,name,(void*)str);
	}else{
		// 悢抣
		int val = conv_num(st,& (st->stack->stack_data[st->start+3]));
		set_reg(sd,num,name,(void*)val);
	}

	return 0;
}
/*==========================================
 * 攝楍曄悢愝掕
 *------------------------------------------
 */
int buildin_setarray(struct script_state *st)
{
	struct map_session_data *sd=NULL;
	int num=st->stack->stack_data[st->start+2].u.num;
	char *name=str_buf+str_data[num&0x00ffffff].str;
	char prefix=*name;
	char postfix=name[strlen(name)-1];
	int i,j;
	
	if( prefix!='$' && prefix!='@' ){
		printf("buildin_setarray: illeagal scope !\n");
		return 0;
	}
	if( prefix!='$' )
		sd=script_rid2sd(st);

	for(j=0,i=st->start+3; i<st->end && j<128;i++,j++){
		void *v;
		if( postfix=='$' )
			v=(void*)conv_str(st,& (st->stack->stack_data[i]));
		else
			v=(void*)conv_num(st,& (st->stack->stack_data[i]));
		set_reg( sd, num+(j<<24), name, v);
	}
	return 0;
}
/*==========================================
 * 攝楍曄悢僋儕傾
 *------------------------------------------
 */
int buildin_cleararray(struct script_state *st)
{
	struct map_session_data *sd=NULL;
	int num=st->stack->stack_data[st->start+2].u.num;
	char *name=str_buf+str_data[num&0x00ffffff].str;
	char prefix=*name;
	char postfix=name[strlen(name)-1];
	int sz=conv_num(st,& (st->stack->stack_data[st->start+4]));
	int i;
	void *v;
	
	if( prefix!='$' && prefix!='@' ){
		printf("buildin_cleararray: illeagal scope !\n");
		return 0;
	}
	if( prefix!='$' )
		sd=script_rid2sd(st);
		
	if( postfix=='$' )
		v=(void*)conv_str(st,& (st->stack->stack_data[st->start+3]));
	else
		v=(void*)conv_num(st,& (st->stack->stack_data[st->start+3]));
	
	for(i=0;i<sz;i++)
		set_reg(sd,num+(i<<24),name,v);
	return 0;
}
/*==========================================
 * 攝楍曄悢僐僺乕
 *------------------------------------------
 */
int buildin_copyarray(struct script_state *st)
{
	struct map_session_data *sd=NULL;
	int num=st->stack->stack_data[st->start+2].u.num;
	char *name=str_buf+str_data[num&0x00ffffff].str;
	char prefix=*name;
	char postfix=name[strlen(name)-1];
	int num2=st->stack->stack_data[st->start+3].u.num;
	char *name2=str_buf+str_data[num2&0x00ffffff].str;
	char prefix2=*name2;
	char postfix2=name2[strlen(name2)-1];
	int sz=conv_num(st,& (st->stack->stack_data[st->start+4]));
	int i;
	
	if( prefix!='$' && prefix!='@' && prefix2!='$' && prefix2!='@' ){
		printf("buildin_copyarray: illeagal scope !\n");
		return 0;
	}
	if( (postfix=='$' || postfix2=='$') && postfix!=postfix2 ){
		printf("buildin_copyarray: type mismatch !\n");
		return 0;
	}
	if( prefix!='$' || prefix2!='$' )
		sd=script_rid2sd(st);
		
	
	for(i=0;i<sz;i++)
		set_reg(sd,num+(i<<24),name, get_val2(st,num2+(i<<24)) );
	return 0;
}
/*==========================================
 * 攝楍曄悢偺僒僀僘強摼
 *------------------------------------------
 */
static int getarraysize(struct script_state *st,int num,int postfix)
{
	int i=(num>>24),c=i;
	for(;i<128;i++){
		void *v=get_val2(st,num+(i<<24));
		if(postfix=='$' && *((char*)v) ) c=i;
		if(postfix!='$' && (int)v )c=i;
	}
	return c+1;
}
int buildin_getarraysize(struct script_state *st)
{
	int num=st->stack->stack_data[st->start+2].u.num;
	char *name=str_buf+str_data[num&0x00ffffff].str;
	char prefix=*name;
	char postfix=name[strlen(name)-1];
	
	if( prefix!='$' && prefix!='@' ){
		printf("buildin_copyarray: illeagal scope !\n");
		return 0;
	}

	push_val(st->stack,C_INT,getarraysize(st,num,postfix) );
	return 0;
}
/*==========================================
 * 攝楍曄悢偐傜梫慺嶍彍
 *------------------------------------------
 */
int buildin_deletearray(struct script_state *st)
{
	struct map_session_data *sd=NULL;
	int num=st->stack->stack_data[st->start+2].u.num;
	char *name=str_buf+str_data[num&0x00ffffff].str;
	char prefix=*name;
	char postfix=name[strlen(name)-1];

	int count=1;
	
	if( (st->end > st->start+3) )
		count=conv_num(st,& (st->stack->stack_data[st->start+3]));
	
	int i,sz=getarraysize(st,num,postfix)-(num>>24)-count+1;
	
	if( prefix!='$' && prefix!='@' ){
		printf("buildin_deletearray: illeagal scope !\n");
		return 0;
	}
	if( prefix!='$' )
		sd=script_rid2sd(st);
	
	for(i=0;i<sz;i++){
		set_reg(sd,num+(i<<24),name, get_val2(st,num+((i+count)<<24) ) );
	}
	for(;i<(128-(num>>24));i++){
		if( postfix!='$' ) set_reg(sd,num+(i<<24),name, 0);
		if( postfix=='$' ) set_reg(sd,num+(i<<24),name, "");
	}
	return 0;
}

/*==========================================
 * 巜掕梫慺傪昞偡抣(僉乕)傪強摼偡傞
 *------------------------------------------
 */
int buildin_getelementofarray(struct script_state *st)
{
	if( st->stack->stack_data[st->start+2].type==C_NAME ){
		int i=conv_num(st,& (st->stack->stack_data[st->start+3]));
		if(i>127 || i<0){
			printf("script: getelementofarray (operator[]): param2 illeagal number %d\n",i);
			push_val(st->stack,C_INT,0);
		}else{
			push_val(st->stack,C_NAME,
				(i<<24) | st->stack->stack_data[st->start+2].u.num );
		}
	}else{
		printf("script: getelementofarray (operator[]): param1 not name !\n");
		push_val(st->stack,C_INT,0);
	}
	return 0;
}

/*==========================================
 *
 *------------------------------------------
 */
int buildin_setlook(struct script_state *st)
{
	int type,val;

	type=conv_num(st,& (st->stack->stack_data[st->start+2]));
	val=conv_num(st,& (st->stack->stack_data[st->start+3]));

	pc_changelook(script_rid2sd(st),type,val);

	return 0;
}

/*==========================================
 *
 *------------------------------------------
 */
int buildin_cutin(struct script_state *st)
{
	int type;

	conv_str(st,& (st->stack->stack_data[st->start+2]));
	type=conv_num(st,& (st->stack->stack_data[st->start+3]));

	clif_cutin(script_rid2sd(st),st->stack->stack_data[st->start+2].u.str,type);

	return 0;
}

/*==========================================
 *
 *------------------------------------------
 */
int buildin_viewpoint(struct script_state *st)
{
	int type,x,y,id,color;

	type=conv_num(st,& (st->stack->stack_data[st->start+2]));
	x=conv_num(st,& (st->stack->stack_data[st->start+3]));
	y=conv_num(st,& (st->stack->stack_data[st->start+4]));
	id=conv_num(st,& (st->stack->stack_data[st->start+5]));
	color=conv_num(st,& (st->stack->stack_data[st->start+6]));

	clif_viewpoint(script_rid2sd(st),st->oid,type,x,y,id,color);

	return 0;
}

/*==========================================
 *
 *------------------------------------------
 */
int buildin_countitem(struct script_state *st)
{
	int nameid,count,i;
	struct map_session_data *sd;

	struct script_data *data;

	sd = script_rid2sd(st);
	
	data=&(st->stack->stack_data[st->start+2]);
	get_val(st,data);
	if( data->type==C_STR || data->type==C_CONSTSTR ){
		const char *name=conv_str(st,data);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91性感美女视频| 在线观看一区二区视频| 亚洲成av人片一区二区梦乃| 国产在线一区观看| 麻豆国产欧美日韩综合精品二区 | 国产成人在线视频网站| 久久精品国产成人一区二区三区 | 亚洲国产日韩在线一区模特| 国产精品国产三级国产三级人妇| 久久国产精品无码网站| 国产一区二区调教| 99天天综合性| 日韩三级在线免费观看| 国产视频一区在线播放| 国产精品综合一区二区| 亚洲一区在线观看免费| 久久国内精品自在自线400部| 国产成人精品亚洲午夜麻豆| 色系网站成人免费| 宅男噜噜噜66一区二区66| 日韩高清在线电影| 床上的激情91.| 精品久久久久一区二区国产| 亚洲日本青草视频在线怡红院 | 床上的激情91.| 日韩亚洲欧美在线| 成人av在线播放网址| 日韩午夜精品视频| 亚洲国产中文字幕| 欧美亚洲综合色| 亚洲自拍另类综合| 2024国产精品| 久久精品国产免费| 国产亚洲短视频| 国产伦精品一区二区三区免费迷| 国产v综合v亚洲欧| 久久综合久久鬼色| 国产一区二区中文字幕| 26uuu久久天堂性欧美| 精品制服美女丁香| 精品国产免费人成在线观看| 经典三级视频一区| 中文字幕欧美激情一区| 欧美一区二区精品在线| 久久99精品久久久久婷婷| 亚洲女同一区二区| 亚洲最快最全在线视频| www.成人在线| 久久成人免费电影| 日韩一区二区高清| 视频一区二区中文字幕| 欧美大尺度电影在线| 成人三级在线视频| 亚洲精品乱码久久久久久日本蜜臀| 国产午夜亚洲精品羞羞网站| 不卡av免费在线观看| 日本伊人精品一区二区三区观看方式 | 亚洲一区二区美女| 91国产丝袜在线播放| 91福利资源站| 国产在线精品免费| 日韩激情在线观看| 亚洲精品国久久99热| 日韩一区二区三区视频在线| 成人性色生活片| 国产91在线观看| 在线精品亚洲一区二区不卡| 国产日本亚洲高清| 精品国产一区二区三区忘忧草 | 日韩一二三区不卡| 欧美在线视频不卡| 欧美综合一区二区三区| 国产成人一区在线| 国产一区二区视频在线| 日本不卡不码高清免费观看| 美国欧美日韩国产在线播放| 色综合久久久网| 欧美日本视频在线| 777亚洲妇女| 久久久久久久久97黄色工厂| 国产日韩欧美麻豆| 视频在线观看国产精品| 国产精品一区二区在线看| 国产精品久久久一本精品 | 国产一区二三区| 国产成人综合网站| 国产乱妇无码大片在线观看| 欧美一区二区三区视频免费播放| 欧美精品精品一区| 国产视频一区二区三区在线观看| 国产清纯在线一区二区www| 国产无人区一区二区三区| 在线亚洲免费视频| 日韩手机在线导航| 国产亚洲精品久| 一区二区三区四区视频精品免费| 香蕉影视欧美成人| 粉嫩av一区二区三区粉嫩 | 日本一区二区三区dvd视频在线 | 久久蜜桃一区二区| 亚洲成人av福利| 免费观看一级欧美片| 亚洲尤物视频在线| 亚洲成年人网站在线观看| 9色porny自拍视频一区二区| 日韩亚洲欧美在线| 日本亚洲三级在线| 欧美综合欧美视频| 亚洲成人黄色影院| 在线观看日韩精品| 丝袜亚洲另类欧美综合| 中文字幕 久热精品 视频在线| 亚洲国产精品久久久久秋霞影院 | 国产综合色在线| 欧美精品久久天天躁| 日韩二区三区在线观看| 久久色视频免费观看| 久久天堂av综合合色蜜桃网| 亚洲成人福利片| 日韩女优视频免费观看| 国产精品区一区二区三| 五月婷婷色综合| 日韩欧美国产麻豆| 欧美xfplay| 不卡电影一区二区三区| 亚洲精品久久久蜜桃| 日韩欧美在线123| 亚洲成人精品影院| 日韩一区二区三区视频在线观看| 亚洲天堂av老司机| 日韩精品一区国产麻豆| 91在线观看污| 懂色av一区二区在线播放| 亚洲国产乱码最新视频| 久久免费偷拍视频| 91精品国产免费| aaa欧美大片| 成人激情免费视频| 日韩欧美www| 欧美喷水一区二区| 99精品久久免费看蜜臀剧情介绍| 日韩精品一级二级| 日韩av一区二| 26uuu亚洲综合色| 91色视频在线| 成人美女视频在线观看| 久久99精品久久久久婷婷| 亚洲精品网站在线观看| 亚洲欧美偷拍三级| 国产精品不卡在线| 国产精品少妇自拍| 成人欧美一区二区三区在线播放| 日韩一级二级三级精品视频| 亚洲欧美另类在线| 亚洲人成网站色在线观看| 国产精品无圣光一区二区| 中文字幕第一区二区| 日韩精品一区二区三区老鸭窝| 欧美一级艳片视频免费观看| 91一区一区三区| 日本丶国产丶欧美色综合| 色88888久久久久久影院按摩| 欧美艳星brazzers| 97se亚洲国产综合自在线不卡 | 日本道在线观看一区二区| 欧美亚洲高清一区二区三区不卡| 色久优优欧美色久优优| 日韩午夜精品视频| 精品系列免费在线观看| 91看片淫黄大片一级在线观看| 日本高清不卡视频| 国产精品久久久久久久蜜臀| 首页国产欧美久久| 日韩一区二区免费在线电影| 日本韩国精品在线| 久久久久国产精品麻豆ai换脸| 亚洲成a天堂v人片| 成人av影视在线观看| 久久久精品黄色| 日本色综合中文字幕| 欧美精品日韩综合在线| 一区二区三区日韩欧美精品 | 欧美电影影音先锋| 国产一区二区按摩在线观看| 青青草伊人久久| 日韩一区二区三区电影| 亚洲国产精品一区二区尤物区| 波多野结衣的一区二区三区| 精品国产伦理网| 日本在线播放一区二区三区| 欧美另类videos死尸| 亚洲自拍欧美精品| 91精品午夜视频| 精品无人码麻豆乱码1区2区 | 欧美性xxxxxx少妇| 亚洲一区在线观看免费观看电影高清| 欧美mv日韩mv| 国产米奇在线777精品观看| 国产区在线观看成人精品| 不卡的av电影|