635 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			635 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								DIR_X_I <- 0
							 | 
						|||
| 
								 | 
							
								DIR_Y_I <- 1
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								X_NORMALDASH_VELOCITY <- 286		/// 渠莲 ?桧翕缣怃 陛煎 1蟾翕寰 桧翕 ?捻 热
							 | 
						|||
| 
								 | 
							
								X_SLANTDASH_VELOCITY <- 238			/// 渠莲 渠陕摹 桧翕缣怃 陛煎 1蟾翕寰 桧翕 ?捻 热
							 | 
						|||
| 
								 | 
							
								Y_NORMALDASH_VELOCITY <- 136		/// 渠莲 谦桧翕缣怃 撮煎 1蟾翕寰 桧翕 ?捻 热
							 | 
						|||
| 
								 | 
							
								Y_SLANTDASH_VELOCITY <- 114			/// 渠莲 渠陕摹 桧翕缣怃 撮煎 1蟾翕寰 桧翕 ?捻 热
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 摹鸥胀 议葛搅暧 蝶鉴衙栖螳虏 撮??栖棻. 桧廓 ?煎餍颤殓缣怃朝 摹鸥击 ?紫 AI陛 夸跷贼 寰肾晦 阳侥缣 AI ?撩? 鼻鹧缣怃 蝶鉴 蜗煜虏 亿煎 撮??朝 掘亵煎 骨栖棻.
							 | 
						|||
| 
								 | 
							
								// 斜葬坚 帼?击 扬毓击阳虏 桧薯 醴裔萄羹醴蒂 撮??鄹栖棻.
							 | 
						|||
| 
								 | 
							
								// aiMode陛 true塭贼.. ai赅萄樯 醴裔萄羹醴蒂 撮??貊 aiMode陛 false塭贼 ai赅萄蒂 ?薯?坚 狱樯桧 霜蕾 夔?煤? 热 毡朝 醴裔萄羹醴蒂 撮??栖棻.
							 | 
						|||
| 
								 | 
							
								function setCommandCheckerMyControlChracter(obj, aiMode)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									local aiChr = sq_GetCNRDObjectToSQRCharacter(obj);
							 | 
						|||
| 
								 | 
							
									if(!aiChr)
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									// aiChr暧 醴裔萄 羹醴蒂 椭蝗栖棻.
							 | 
						|||
| 
								 | 
							
									local cmdChecker = aiChr.getCommandChecker();	
							 | 
						|||
| 
								 | 
							
									if(cmdChecker)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										// ai 议葛搅蒂 棻桧釭哔议蝶?击 ?栖棻.	
							 | 
						|||
| 
								 | 
							
										local onlyAiChr = sq_GetCNRDObjectToAICharacter(aiChr);
							 | 
						|||
| 
								 | 
							
										// 晦襄 ai议葛搅缣怃 targetobject陛 割桧 嬴栖塭贼 null煎 撮??栖棻.
							 | 
						|||
| 
								 | 
							
										// 醴裔萄羹醴 掖羹 卫 targetobject桧 湮旋葭桧 肾横 ?帼斜陛 嫦当?罹 targetobject?樯搅蒂 割籀葬 ?栖棻.
							 | 
						|||
| 
								 | 
							
										sq_SetTargetObjectAICharacter(onlyAiChr, null, false);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										// 棻挤寞戏煎 桧辨?晦 嫔? 噙樯 ?楚斜 殓栖棻. 顶陛 ai陛 夔?煤?朝 螃粽薛?樯虽 羹觼?朝 ?楚斜 殓栖棻 (irdsqrcharacter)
							 | 
						|||
| 
								 | 
							
										aiChr.setAIModeByControlObject(aiMode); 
							 | 
						|||
| 
								 | 
							
										// 醴裔? 羹觼缣怃 ai赅萄陛 on樯虽 off樯虽 羹觼?朝 ?楚斜蒂 撮??朝 ?热 殓栖棻.
							 | 
						|||
| 
								 | 
							
										cmdChecker.setAIMode(aiMode); 
							 | 
						|||
| 
								 | 
							
										cmdChecker.commandListReset();
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										// 郦尔萄 濡旎 ?晦睡碟殓栖棻.
							 | 
						|||
| 
								 | 
							
										sq_SetEnableKeyInputType(cmdChecker, 0, true, 1);
							 | 
						|||
| 
								 | 
							
										//cmdChecker.setEnableKeyInputType(0, true);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										aiChr.initCommandChecker(cmdChecker, aiMode);
							 | 
						|||
| 
								 | 
							
										aiChr.setCommandChecker(cmdChecker);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										local skillMgr = aiChr.getSkillManager();
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(skillMgr)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											skillMgr.setParent(aiChr);
							 | 
						|||
| 
								 | 
							
											skillMgr.setCommandChecker(cmdChecker);	// 蝶鉴衙栖荡谛 醴裔萄羹醴蒂 翱念
							 | 
						|||
| 
								 | 
							
											local skillTree = aiChr.getCurrentSkillTree();
							 | 
						|||
| 
								 | 
							
											skillMgr.addAllKeyCommand(skillTree);
							 | 
						|||
| 
								 | 
							
											aiChr.flushCommandEnable();
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									}	
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 濠冲桧 毡朝 狱羹樯虽 羹觼?朝 ?热殓栖棻.
							 | 
						|||
| 
								 | 
							
								function isObjectWithChild(obj)
							 | 
						|||
| 
								 | 
							
								{	
							 | 
						|||
| 
								 | 
							
									local ismychr = sq_IsMyCharacter(obj);
							 | 
						|||
| 
								 | 
							
									local chr = sq_GetCNRDObjectToCharacter(obj);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									//print(" ismychr:" + ismychr + " job:" + sq_getJob(chr));
							 | 
						|||
| 
								 | 
							
									if(ismychr)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										local childSize = sq_GetMyControlObjectSize(obj);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(childSize > 0)
							 | 
						|||
| 
								 | 
							
											return true;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									return false;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 釭暧 葆蝶搅暧 夔?煤螃粽薛?樯虽 羹觼?朝 ?热殓栖棻.
							 | 
						|||
| 
								 | 
							
								// 阔 ?塭嘐搅煎 瞪殖胀 obj陛 夔?煤 肾朝 ai chr樯虽 羹觼?朝 ?热 殓栖棻.
							 | 
						|||
| 
								 | 
							
								function isMasterControlObject(obj)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj)
							 | 
						|||
| 
								 | 
							
										return false;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									// 葆蝶搅 议葛搅(狱羹) CNUser::myCharacter_蒂 椭横鹿栖棻.
							 | 
						|||
| 
								 | 
							
									if(sq_GetMyMasterCharacter())
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										// CNUser::myCharacter_ 缣怃 myControlObject_ 漱搅缣怃 find_if蒂 桧辨?罹 蜃朝虽 嬴棋虽 掘?鹿栖棻.
							 | 
						|||
| 
								 | 
							
										local bRet = sq_GetMyMasterCharacter().isMyControlObject(obj);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										return bRet;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									return false;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 蹂羶? varStr暧 obj_vector 缣 毡朝 obj菟暧 
							 | 
						|||
| 
								 | 
							
								// 谖婉摹击 棻 虽邺栖棻.
							 | 
						|||
| 
								 | 
							
								function releaseOutLine(obj, varStr)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									local objListSize = obj.getVar(varStr).get_obj_vector_size();	
							 | 
						|||
| 
								 | 
							
									for(local i =0;i<objListSize;++i)
							 | 
						|||
| 
								 | 
							
									{				
							 | 
						|||
| 
								 | 
							
										local vObj = obj.getVar(varStr).get_obj_vector(i);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(vObj == null)
							 | 
						|||
| 
								 | 
							
											continue;
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
										vObj.setCustomOutline(false, 0, true, 2);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									obj.getVar(varStr).clear_obj_vector();	
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 夔?煤?朝 赅苌 螃粽薛?暧 醴裔萄 羹醴蒂 ai赅萄煎 瞪??栖棻.
							 | 
						|||
| 
								 | 
							
								function setAIControlObjCommandChecker(obj)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									local objListSize = sq_GetMyControlObjectSize(obj);
							 | 
						|||
| 
								 | 
							
									for(local i =0;i < objListSize;++i)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local vObj =  sq_GetMyControlObject(obj, i);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(vObj == null)
							 | 
						|||
| 
								 | 
							
											continue;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										local grabChr = sq_GetCNRDObjectToSQRCharacter(vObj);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(grabChr)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											local cmdChecker = grabChr.getCommandChecker();
							 | 
						|||
| 
								 | 
							
											grabChr.initCommandChecker(cmdChecker, true); // 濠褐桧 夔?煤?晦 嫔? 醴裔萄羹醴 ai?楚斜 睡碟击 true煎 夥习栖棻.
							 | 
						|||
| 
								 | 
							
											grabChr.setCommandChecker(cmdChecker);
							 | 
						|||
| 
								 | 
							
											// 醴裔? 羹觼缣怃 ai赅萄陛 on樯虽 off樯虽 羹觼?朝 ?楚斜蒂 撮??朝 ?热 殓栖棻.
							 | 
						|||
| 
								 | 
							
											cmdChecker.setAIMode(true);  
							 | 
						|||
| 
								 | 
							
											// 棻挤寞戏煎 桧辨?晦 嫔? 噙樯 ?楚斜 殓栖棻. 顶陛 ai陛 夔?煤?朝 螃粽薛?樯虽 羹觼?朝 ?楚斜 殓栖棻 (irdsqrcharacter)
							 | 
						|||
| 
								 | 
							
											grabChr.setAIModeByControlObject(true);  
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
											local onlyAiChr = sq_GetCNRDObjectToAICharacter(grabChr);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											sq_SetTargetObjectAICharacter(onlyAiChr, null, false);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
											local skillMgr = grabChr.getSkillManager();
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
											if(skillMgr)
							 | 
						|||
| 
								 | 
							
											{
							 | 
						|||
| 
								 | 
							
												skillMgr.setParent(grabChr);
							 | 
						|||
| 
								 | 
							
												skillMgr.setCommandChecker(cmdChecker);	// 蝶鉴衙栖荡谛 醴裔萄羹醴蒂 翱念
							 | 
						|||
| 
								 | 
							
												local skillTree = grabChr.getCurrentSkillTree();
							 | 
						|||
| 
								 | 
							
												skillMgr.addAllKeyCommand(skillTree);
							 | 
						|||
| 
								 | 
							
												grabChr.flushCommandEnable();
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 摹鸥胀 obj漱搅缣怃 obj 谖婉摹击 斜董栖棻.
							 | 
						|||
| 
								 | 
							
								function setOutLine(obj, varStr, rgb)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									local objListSize = obj.getVar(varStr).get_obj_vector_size();	
							 | 
						|||
| 
								 | 
							
									for(local i =0;i<objListSize;++i)
							 | 
						|||
| 
								 | 
							
									{				
							 | 
						|||
| 
								 | 
							
										local vObj = obj.getVar(varStr).get_obj_vector(i);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(vObj == null)
							 | 
						|||
| 
								 | 
							
											continue;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
										vObj.setCustomOutline(true, rgb, false, 1);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 詹帼 orgStr 掘瑜暧 螃粽薛? 漱搅蒂 詹帼 dstStr 掘瑜暧 螃粽薛? 漱搅缣 仅伪桧 苹??栖棻.
							 | 
						|||
| 
								 | 
							
								function objCopy(obj, dstStr, orgStr)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									obj.getVar(dstStr).clear_obj_vector();
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local objListSize = obj.getVar(orgStr).get_obj_vector_size();	
							 | 
						|||
| 
								 | 
							
									for(local i =0;i<objListSize;++i)
							 | 
						|||
| 
								 | 
							
									{				
							 | 
						|||
| 
								 | 
							
										local vObj = obj.getVar(orgStr).get_obj_vector(i);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(vObj == null)
							 | 
						|||
| 
								 | 
							
											continue;
							 | 
						|||
| 
								 | 
							
											
							 | 
						|||
| 
								 | 
							
										obj.getVar(dstStr).push_obj_vector(vObj);
							 | 
						|||
| 
								 | 
							
									}	
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 彰嫔顶缣 蜃朝 螃粽薛?陛 毡朝 羹觼?怃 毡戏贼.. 詹帼 hoverd 掘瑜 漱搅缣 ?卫?栖棻.
							 | 
						|||
| 
								 | 
							
								function pushOverClickableObject(obj, x, y, w, h)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj)
							 | 
						|||
| 
								 | 
							
										return null;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									local objectManager = obj.getObjectManager();
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if (objectManager == null)
							 | 
						|||
| 
								 | 
							
										return null;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									local target = null;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									releaseOutLine(obj, "hoverd");
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									for (local i = 0; i < objectManager.getCollisionObjectNumber(); i+=1)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local object = objectManager.getCollisionObject(i);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if (object)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											// 瞳桧 嬴栖坚 狱羹暧 濠冲桧坚 议葛搅桧坚 
							 | 
						|||
| 
								 | 
							
											 //if( (obj.isEnemy(object) == false && isMasterControlObject(object) && object.isInDamagableState(obj) && object.isObjectType(OBJECTTYPE_CHARACTER)) || sq_IsMyCharacter(object))
							 | 
						|||
| 
								 | 
							
											 if( (obj.isEnemy(object) == false && isMasterControlObject(object) && object.isInDamagableState(obj) && object.isObjectType(OBJECTTYPE_CHARACTER)))
							 | 
						|||
| 
								 | 
							
											 {
							 | 
						|||
| 
								 | 
							
												//sq_GetScreenXPos
							 | 
						|||
| 
								 | 
							
												local width = sq_GetWidthObject(object);
							 | 
						|||
| 
								 | 
							
												local height = sq_GetHeightObject(object);
							 | 
						|||
| 
								 | 
							
												local screenX = sq_GetScreenXPos(object) - (width / 2);
							 | 
						|||
| 
								 | 
							
												local screenY = sq_GetScreenYPos(object) - height;
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
												local isUnion = sq_IsIntersectRect(screenX, screenY, width, height, x, y, w, h);
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
												if(isUnion)
							 | 
						|||
| 
								 | 
							
												{
							 | 
						|||
| 
								 | 
							
													object.setCustomOutline(true, sq_RGBA(255, 255, 0, 255), false, 1);
							 | 
						|||
| 
								 | 
							
													obj.getVar("hoverd").push_obj_vector(object);
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 锰?朝 寞?戏煎 螃粽薛?蒂 桧翕卫霾栖棻. 
							 | 
						|||
| 
								 | 
							
								// 桧翕卫面捡 ?朝 螃粽薛?陛 衙 瑞? 褒?肾横捡 ?朝 瑞??热 殓栖棻.
							 | 
						|||
| 
								 | 
							
								function procDestinationMove(obj)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									//obj.getVar("dstpos").clear_vector();
							 | 
						|||
| 
								 | 
							
									local state = obj.getState();
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if (state != STATE_DASH && state != STATE_STAND)
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									// dstpos朝 桧翕?坚濠 ?朝 迹瞳虽 pos殓栖棻.
							 | 
						|||
| 
								 | 
							
									// 0(DIR_X_I) 擎 x寞? 1(DIR_Y_I) 擎 y寞?殓栖棻.
							 | 
						|||
| 
								 | 
							
									if (obj.getVar("dstpos").size_vector() == 0)
							 | 
						|||
| 
								 | 
							
										return;		
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									// movedir朝 桧翕寞?击 ?卫? vector等桧颤 殓栖棻.
							 | 
						|||
| 
								 | 
							
									// 0(DIR_X_I) 擎 x寞? 1(DIR_Y_I) 擎 y寞?殓栖棻.
							 | 
						|||
| 
								 | 
							
									if (obj.getVar("movedir").size_vector() == 0)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										obj.getVar("movedir").push_vector(4);
							 | 
						|||
| 
								 | 
							
										obj.getVar("movedir").push_vector(4);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local destinationXPos_ = obj.getVar("dstpos").get_vector(DIR_X_I);
							 | 
						|||
| 
								 | 
							
									local destinationYPos_ = obj.getVar("dstpos").get_vector(DIR_Y_I);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									local xMoveDirection_ = obj.getVar("movedir").get_vector(DIR_X_I);
							 | 
						|||
| 
								 | 
							
									local yMoveDirection_ = obj.getVar("movedir").get_vector(DIR_Y_I);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(obj.getDirection() != xMoveDirection_)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										obj.setCurrentDirection(xMoveDirection_);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									// 横蛤煎 陛捡?虽缣 渠? 寞?击 扑姜?舆朝 睡碟殓栖棻.
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									// 办摹 x谢?缣 渠? 寞?击 扑姜?栖棻.
							 | 
						|||
| 
								 | 
							
									//if(obj.getXPos() > destinationXPos_ && xMoveDirection_ == ENUM_DIRECTION_RIGHT)
							 | 
						|||
| 
								 | 
							
									//{
							 | 
						|||
| 
								 | 
							
										//// x谢? 尔姜睡碟殓栖棻. 迹? 谢?尔棻 螃帼腑击 唳办 尔姜?朝 睡碟殓栖棻.	
							 | 
						|||
| 
								 | 
							
										////  螃艇薹戏煎 虽釭蚁击 阳 : 谢? 尔姜 ? 姜虽
							 | 
						|||
| 
								 | 
							
										////sq_MoveToNearMovablePos(obj, destinationXPos_, obj.getYPos(), obj.getZPos(), destinationXPos_, obj.getYPos(), obj.getZPos(), 100, -1, 5);
							 | 
						|||
| 
								 | 
							
										//obj.getVar("movedir").set_vector(DIR_X_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
									//}
							 | 
						|||
| 
								 | 
							
									//else if (obj.getXPos() < destinationXPos_ && xMoveDirection_ == ENUM_DIRECTION_LEFT)
							 | 
						|||
| 
								 | 
							
									//{
							 | 
						|||
| 
								 | 
							
										//// x谢? 尔姜睡碟殓栖棻. 迹? 谢?尔棻 螃帼腑击 唳办 尔姜?朝 睡碟殓栖棻.	
							 | 
						|||
| 
								 | 
							
										////  豭薹戏煎 虽釭蚁击 阳 : 谢? 尔姜 ? 姜虽
							 | 
						|||
| 
								 | 
							
										////sq_MoveToNearMovablePos(obj, destinationXPos_, obj.getYPos(), obj.getZPos(), destinationXPos_, obj.getYPos(), obj.getZPos(), 100, -1, 5);
							 | 
						|||
| 
								 | 
							
										//obj.getVar("movedir").set_vector(DIR_X_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
									//}
							 | 
						|||
| 
								 | 
							
									//else if (obj.getXPos() < destinationXPos_)
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local offset = sq_Abs(obj.getXPos() - destinationXPos_);
							 | 
						|||
| 
								 | 
							
									if(offset <= 1)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										sq_MoveToNearMovablePos(obj, destinationXPos_, obj.getYPos(), obj.getZPos(), destinationXPos_, obj.getYPos(), obj.getZPos(), 100, -1, 5);
							 | 
						|||
| 
								 | 
							
										obj.getVar("movedir").set_vector(DIR_X_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										//print(" offset:" + offset);
							 | 
						|||
| 
								 | 
							
										if (obj.getXPos() < destinationXPos_)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											obj.getVar("movedir").set_vector(DIR_X_I, ENUM_DIRECTION_RIGHT);
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										else if (obj.getXPos() > destinationXPos_)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											obj.getVar("movedir").set_vector(DIR_X_I, ENUM_DIRECTION_LEFT);
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										else
							 | 
						|||
| 
								 | 
							
											obj.getVar("movedir").set_vector(DIR_X_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									//////////////////////////////////////////////////
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									// 办摹 y谢?缣 渠? 寞?击 扑姜?栖棻.
							 | 
						|||
| 
								 | 
							
									if (obj.getYPos() > destinationYPos_ && yMoveDirection_ == ENUM_DIRECTION_DOWN)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										// y谢? 尔姜睡碟殓栖棻. 迹? 谢?尔棻 螃帼腑击 唳办 尔姜?朝 睡碟殓栖棻.
							 | 
						|||
| 
								 | 
							
										//  嬴楚薹戏煎 虽釭蚁击 阳 : 谢? 尔姜 ? 姜虽
							 | 
						|||
| 
								 | 
							
										//sq_MoveToNearMovablePos(obj, obj.getXPos(), destinationYPos_, obj.getZPos(), obj.getXPos(), destinationYPos_, obj.getZPos(), 100, -1, 5);
							 | 
						|||
| 
								 | 
							
										obj.getVar("movedir").set_vector(DIR_Y_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else if (obj.getYPos() < destinationYPos_ && yMoveDirection_ == ENUM_DIRECTION_UP)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										// y谢? 尔姜睡碟殓栖棻. 迹? 谢?尔棻 螃帼腑击 唳办 尔姜?朝 睡碟殓栖棻.
							 | 
						|||
| 
								 | 
							
										//  嫔薹戏煎 虽釭蚁击 阳 : 谢? 尔姜 ? 姜虽
							 | 
						|||
| 
								 | 
							
										//sq_MoveToNearMovablePos(obj, obj.getXPos(), destinationYPos_, obj.getZPos(), obj.getXPos(), destinationYPos_, obj.getZPos(), 100, -1, 5);
							 | 
						|||
| 
								 | 
							
										obj.getVar("movedir").set_vector(DIR_Y_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else if (obj.getYPos() < destinationYPos_)
							 | 
						|||
| 
								 | 
							
										obj.getVar("movedir").set_vector(DIR_Y_I, ENUM_DIRECTION_DOWN);
							 | 
						|||
| 
								 | 
							
									else if (obj.getYPos() > destinationYPos_)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										obj.getVar("movedir").set_vector(DIR_Y_I, ENUM_DIRECTION_UP);
							 | 
						|||
| 
								 | 
							
										local direction = obj.getVar("movedir").get_vector(DIR_Y_I);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									else
							 | 
						|||
| 
								 | 
							
										obj.getVar("movedir").set_vector(DIR_Y_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
									//////////////////////////////////////////////////////////////////////////////
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									// 夸醮捡?朝 牖除击 羹觼?罹 夸跷啪 ?栖棻.
							 | 
						|||
| 
								 | 
							
									// 迹瞳虽缣 紫杂?剪釭 螃粽薛?暧 state陛 stand釭 dash鼻鹧陛 嬴栖塭贼 桧翕卫郦贼 寰腌栖棻.
							 | 
						|||
| 
								 | 
							
									// 伪擎 潍模蒂 啗楼 薯濠葬 务晦釭 嗨晦蒂 ?贼 寰肾晦 阳侥缣 ?营 谢?蒂 荡潍?棻陛 
							 | 
						|||
| 
								 | 
							
									// 棻挤?溯歜缣怃 绿掖?瑭怃 伪擎 谢?塭贼 翕蒙击 夸跷啪 ?栖棻.
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local state = obj.getState(); 
							 | 
						|||
| 
								 | 
							
									local beforeXPos = obj.getVar("dstpos").get_vector(2); // 瞪?溯歜缣 桧翕?湍 谢? 荡潍奢除 殓栖棻. (x)
							 | 
						|||
| 
								 | 
							
									local beforeYPos = obj.getVar("dstpos").get_vector(3); // 瞪?溯歜缣 桧翕?湍 谢? 荡潍奢除 殓栖棻. (y)
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									// 瞪?溯歜娄 翕橾? 阳 苹遴?蒂 棺溥丑怃 苹遴?陛 横替姜紫 獭击阳 桧翕碳陛塭 ?钦?罹 夸跷啪 ?栖棻. 
							 | 
						|||
| 
								 | 
							
									// 夥煎 籀挤 桧翕?击隆 瞪?溯歜娄 横离? 谢?陛 伪晦阳侥缣 桧 伪擎 寞彻击 质蝗栖棻.
							 | 
						|||
| 
								 | 
							
									local samdCnt = obj.getVar("dstpos").get_vector(4);
							 | 
						|||
| 
								 | 
							
									if(beforeXPos == obj.getXPos() && beforeYPos == obj.getYPos())
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										obj.getVar("dstpos").set_vector(4, samdCnt + 1);
							 | 
						|||
| 
								 | 
							
										samdCnt = obj.getVar("dstpos").get_vector(4);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(obj.isMyControlObject())
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local stage = sq_GetObjectManagerStage(obj);
							 | 
						|||
| 
								 | 
							
										local control = stage.getMainControl();
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(!control.IsRBDown())
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											if(destinationXPos_ == obj.getXPos() && destinationYPos_ == obj.getYPos() || (state != STATE_STAND && state != STATE_DASH))
							 | 
						|||
| 
								 | 
							
											{
							 | 
						|||
| 
								 | 
							
												//print(" arrived dstX:" + destinationXPos_ + " getX:" + obj.getXPos() + " samdCnt:" + samdCnt);
							 | 
						|||
| 
								 | 
							
												obj.getVar("dstpos").clear_vector();
							 | 
						|||
| 
								 | 
							
												sq_SetVelocity(obj, 0, 0.0);
							 | 
						|||
| 
								 | 
							
												sq_SetVelocity(obj, 1, 0.0);
							 | 
						|||
| 
								 | 
							
												obj.getVar("movedir").set_vector(DIR_X_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
												obj.getVar("movedir").set_vector(DIR_Y_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
												local actobj = sq_GetCNRDObjectToActiveObject(obj);
							 | 
						|||
| 
								 | 
							
												if(actobj)
							 | 
						|||
| 
								 | 
							
												{
							 | 
						|||
| 
								 | 
							
													print(" state_stand"); 
							 | 
						|||
| 
								 | 
							
													sq_AddSetStatePacketCollisionObject(actobj, STATE_STAND, null, STATE_PRIORITY_USER, true);
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
												return;
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									//  楼溘 宪嬴顶晦
							 | 
						|||
| 
								 | 
							
									local isDash = obj.getVar("dash").get_vector(0);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									// 晦狱瞳樯 表缰缣怃朝 晦狱楼紫陛 撮?腌栖棻.
							 | 
						|||
| 
								 | 
							
									local xNormalVel = X_NORMALMOVE_VELOCITY;
							 | 
						|||
| 
								 | 
							
									local yNormalVel = Y_NORMALMOVE_VELOCITY;
							 | 
						|||
| 
								 | 
							
									local xSlantVel = X_SLANTMOVE_VELOCITY;
							 | 
						|||
| 
								 | 
							
									local ySlantVel = Y_SLANTMOVE_VELOCITY;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									// 渠莲塭贼 楼紫蒂 殖葬撮??栖棻.
							 | 
						|||
| 
								 | 
							
									if(isDash)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										xNormalVel = X_NORMALDASH_VELOCITY;
							 | 
						|||
| 
								 | 
							
										yNormalVel = Y_NORMALDASH_VELOCITY;
							 | 
						|||
| 
								 | 
							
										xSlantVel = X_SLANTDASH_VELOCITY;
							 | 
						|||
| 
								 | 
							
										ySlantVel = Y_SLANTDASH_VELOCITY;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local xVelocity = xNormalVel;
							 | 
						|||
| 
								 | 
							
									local yVelocity = yNormalVel;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									xMoveDirection_ = obj.getVar("movedir").get_vector(DIR_X_I);
							 | 
						|||
| 
								 | 
							
									yMoveDirection_ = obj.getVar("movedir").get_vector(DIR_Y_I);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if(yMoveDirection_ == ENUM_DIRECTION_NEUTRAL)
							 | 
						|||
| 
								 | 
							
										xVelocity = xNormalVel;
							 | 
						|||
| 
								 | 
							
									else
							 | 
						|||
| 
								 | 
							
										xVelocity = xSlantVel;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									if(xMoveDirection_ == ENUM_DIRECTION_NEUTRAL)
							 | 
						|||
| 
								 | 
							
										yVelocity = yNormalVel;
							 | 
						|||
| 
								 | 
							
									else
							 | 
						|||
| 
								 | 
							
										yVelocity = ySlantVel;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									if (xMoveDirection_ == ENUM_DIRECTION_NEUTRAL)
							 | 
						|||
| 
								 | 
							
										xVelocity = xVelocity.tofloat() * 0.0;
							 | 
						|||
| 
								 | 
							
									else if (xMoveDirection_ == ENUM_DIRECTION_LEFT)
							 | 
						|||
| 
								 | 
							
										xVelocity = xVelocity.tofloat() * -1.0;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									if (yMoveDirection_ == ENUM_DIRECTION_NEUTRAL)
							 | 
						|||
| 
								 | 
							
										yVelocity = yVelocity.tofloat() * 0.0;
							 | 
						|||
| 
								 | 
							
									else if (yMoveDirection_ == ENUM_DIRECTION_UP)
							 | 
						|||
| 
								 | 
							
										yVelocity = yVelocity.tofloat() * -1.0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									sq_SetVelocity(obj, DIR_X_I, xVelocity.tofloat());
							 | 
						|||
| 
								 | 
							
									sq_SetVelocity(obj, DIR_Y_I, yVelocity.tofloat());
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									// 伪擎 潍模蒂 啗楼 薯濠葬 务晦釭 嗨晦蒂 ?贼 寰肾晦 阳侥缣 ?营 谢?蒂 荡潍?棻陛 
							 | 
						|||
| 
								 | 
							
									// 棻挤?溯歜缣怃 绿掖?瑭怃 伪擎 谢?塭贼 翕蒙击 夸跷啪 ?栖棻.
							 | 
						|||
| 
								 | 
							
									obj.getVar("dstpos").set_vector(2, obj.getXPos()); // 瞪?溯歜缣 桧翕?湍 谢? 荡潍奢除 殓栖棻. (x)
							 | 
						|||
| 
								 | 
							
									obj.getVar("dstpos").set_vector(3, obj.getYPos()); // 瞪?溯歜缣 桧翕?湍 谢? 荡潍奢除 殓栖棻. (y)
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// ?塭嘐搅煎 瞪殖胀 obj缣 渠鼻谢? 桧翕?朝 姜尔蒂 撮??栖棻.
							 | 
						|||
| 
								 | 
							
								function setMovGrabObj(obj, dstX, dstY, isDash)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									//  桧翕 陛栋? 谢?贼
							 | 
						|||
| 
								 | 
							
									//  迹瞳虽 桧翕 掸?
							 | 
						|||
| 
								 | 
							
									local actobj = sq_GetCNRDObjectToActiveObject(obj);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(actobj)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										actobj.getVar("dstpos").clear_vector();
							 | 
						|||
| 
								 | 
							
										actobj.getVar("dstpos").push_vector(dstX);
							 | 
						|||
| 
								 | 
							
										actobj.getVar("dstpos").push_vector(dstY);
							 | 
						|||
| 
								 | 
							
										actobj.getVar("dstpos").push_vector(0); // 瞪?溯歜缣 桧翕?湍 谢? 荡潍奢除 殓栖棻. (x)
							 | 
						|||
| 
								 | 
							
										actobj.getVar("dstpos").push_vector(0); // 瞪?溯歜缣 桧翕?湍 谢? 荡潍奢除 殓栖棻. (y)
							 | 
						|||
| 
								 | 
							
										actobj.getVar("dstpos").push_vector(0); // 瞪?溯歜缣 桧翕?湍 谢?谛 翕橾? 阳 苹遴? 渗热 殓栖棻.
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										actobj.getVar("movedir").set_vector(DIR_X_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
										actobj.getVar("movedir").set_vector(DIR_Y_I, ENUM_DIRECTION_NEUTRAL);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										actobj.getVar("dash").clear_vector();
							 | 
						|||
| 
								 | 
							
										actobj.getVar("dash").push_vector(isDash);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										local grabChr = sq_GetCNRDObjectToSQRCharacter(actobj); // chr煎 棻桧釭哔议蝶?击 ?栖棻.
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										//if(grabChr)
							 | 
						|||
| 
								 | 
							
											//setCommandCheckerMyControlChracter(grabChr, false);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										//print(" move obj:" + obj + " dash:" + isDash);
							 | 
						|||
| 
								 | 
							
										if(isDash)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											sq_AddSetStatePacketCollisionObject(actobj, STATE_DASH, null, STATE_PRIORITY_USER, true);
							 | 
						|||
| 
								 | 
							
											//sq_AddSetStatePacketActiveObject(actobj, STATE_DASH, null, STATE_PRIORITY_USER);
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										else
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											sq_AddSetStatePacketCollisionObject(actobj, STATE_STAND, null, STATE_PRIORITY_USER, true);
							 | 
						|||
| 
								 | 
							
											//sq_AddSetStatePacketActiveObject(actobj, STATE_STAND, null, STATE_PRIORITY_USER);
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 摹鸥胀 议葛搅暧 蝶鉴衙栖螳虏 撮??栖棻. 桧廓 ?煎餍颤殓缣怃朝 摹鸥击 ?紫 AI陛 夸跷贼 寰肾晦 阳侥缣 AI ?撩? 鼻鹧缣怃 蝶鉴 蜗煜虏 亿煎 撮??朝 掘亵煎 骨栖棻.
							 | 
						|||
| 
								 | 
							
								// 斜葬坚 帼?击 扬毓击阳虏 桧薯 醴裔萄羹醴蒂 撮??鄹栖棻.
							 | 
						|||
| 
								 | 
							
								function setSkillManagerMyControlChracter(aiChr)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!aiChr)
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local cmdChecker = aiChr.getCommandChecker();
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(cmdChecker)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local onlyAiChr = sq_GetCNRDObjectToAICharacter(aiChr);
							 | 
						|||
| 
								 | 
							
										sq_SetTargetObjectAICharacter(onlyAiChr, null, false);
							 | 
						|||
| 
								 | 
							
										// 棻挤寞戏煎 桧辨?晦 嫔? 噙樯 ?楚斜 殓栖棻. 顶陛 ai陛 夔?煤?朝 螃粽薛?樯虽 羹觼?朝 ?楚斜 殓栖棻 (irdsqrcharacter)
							 | 
						|||
| 
								 | 
							
										// 议葛桧 摹鸥肾涡塭紫 ai赅萄陛 面螳毡横捡?晦 阳侥缣 true煎 嵘虽卫面鄹栖棻.
							 | 
						|||
| 
								 | 
							
										aiChr.setAIModeByControlObject(true); 
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										local skillMgr = aiChr.getSkillManager();
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(skillMgr)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											skillMgr.setParent(aiChr);
							 | 
						|||
| 
								 | 
							
											skillMgr.setCommandChecker(cmdChecker);	// 蝶鉴衙栖荡谛 醴裔萄羹醴蒂 翱念
							 | 
						|||
| 
								 | 
							
											local skillTree = aiChr.getCurrentSkillTree();
							 | 
						|||
| 
								 | 
							
											skillMgr.addAllKeyCommand(skillTree);
							 | 
						|||
| 
								 | 
							
											aiChr.flushCommandEnable();
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 蹂羶? ?塭嘐搅暧 aiChr蒂 夔?煤? 热 毡紫烟 醴裔萄羹醴谛 蝶鉴衙栖螳蒂 撮??栖棻.
							 | 
						|||
| 
								 | 
							
								function setMyControlChracter(aiChr)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!aiChr)
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local cmdChecker = aiChr.getCommandChecker();	
							 | 
						|||
| 
								 | 
							
									if(cmdChecker)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local onlyAiChr = sq_GetCNRDObjectToAICharacter(aiChr);
							 | 
						|||
| 
								 | 
							
										sq_SetTargetObjectAICharacter(onlyAiChr, null, false);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										aiChr.setAIModeByControlObject(false); // 棻挤寞戏煎 桧辨?晦 嫔? 噙樯 ?楚斜 殓栖棻. 顶陛 ai陛 夔?煤?朝 螃粽薛?樯虽 羹觼?朝 ?楚斜 殓栖棻 (irdsqrcharacter)
							 | 
						|||
| 
								 | 
							
										cmdChecker.setAIMode(false); // 醴裔? 羹觼缣怃 ai赅萄陛 on樯虽 off樯虽 羹觼?朝 ?楚斜蒂 撮??朝 ?热 殓栖棻.
							 | 
						|||
| 
								 | 
							
										cmdChecker.commandListReset();
							 | 
						|||
| 
								 | 
							
										aiChr.initCommandChecker(cmdChecker, false);
							 | 
						|||
| 
								 | 
							
										aiChr.setCommandChecker(cmdChecker);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										local skillMgr = aiChr.getSkillManager();
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if(skillMgr)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											skillMgr.setParent(aiChr);
							 | 
						|||
| 
								 | 
							
											skillMgr.setCommandChecker(cmdChecker);	// 蝶鉴衙栖荡谛 醴裔萄羹醴蒂 翱念
							 | 
						|||
| 
								 | 
							
											local skillTree = aiChr.getCurrentSkillTree();
							 | 
						|||
| 
								 | 
							
											skillMgr.addAllKeyCommand(skillTree);
							 | 
						|||
| 
								 | 
							
											aiChr.flushCommandEnable();
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 彰嫔顶缣 蜃朝 螃粽薛?陛 毡朝 羹觼?怃 毡戏贼.. 螃粽薛? 偌羹蒂 葬欐?栖棻.
							 | 
						|||
| 
								 | 
							
								function getOverClickableEnemyObject(obj, x, y)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									if(!obj)
							 | 
						|||
| 
								 | 
							
										return null;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									local group = -1;
							 | 
						|||
| 
								 | 
							
									local uniqueId = -1;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									local objectManager = obj.getObjectManager();
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									if (objectManager == null)
							 | 
						|||
| 
								 | 
							
										return null;
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
									local target = null;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
									//releaseOutLine(obj, "hoverd");
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									for (local i = 0; i < objectManager.getCollisionObjectNumber(); i+=1)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										local object = objectManager.getCollisionObject(i);
							 | 
						|||
| 
								 | 
							
										
							 | 
						|||
| 
								 | 
							
										if (object)
							 | 
						|||
| 
								 | 
							
										{
							 | 
						|||
| 
								 | 
							
											// 瞳桧 嬴栖坚 狱羹暧 濠冲桧坚 议葛搅桧坚 
							 | 
						|||
| 
								 | 
							
											 if( (obj.isEnemy(object) == true && object.isInDamagableState(obj)) )
							 | 
						|||
| 
								 | 
							
											 {
							 | 
						|||
| 
								 | 
							
												//local width = sq_GetWidthObject(object);
							 | 
						|||
| 
								 | 
							
												//local height = sq_GetHeightObject(object);
							 | 
						|||
| 
								 | 
							
												//local screenX = sq_GetScreenXPos(object) - (width / 2);
							 | 
						|||
| 
								 | 
							
												//local screenY = sq_GetScreenYPos(object) - height;
							 | 
						|||
| 
								 | 
							
												//
							 | 
						|||
| 
								 | 
							
												//local isUnion = sq_IsIntersectRect(screenX, screenY, width, height, x, y, w, h);
							 | 
						|||
| 
								 | 
							
												local isUnion = object.isOverPos(x, y);
							 | 
						|||
| 
								 | 
							
												
							 | 
						|||
| 
								 | 
							
												if(isUnion)
							 | 
						|||
| 
								 | 
							
												{
							 | 
						|||
| 
								 | 
							
													group = sq_GetGroup(object);
							 | 
						|||
| 
								 | 
							
													uniqueId = sq_GetUniqueId(object);
							 | 
						|||
| 
								 | 
							
													//print(" group:" + group + " uniqueId:" + uniqueId);
							 | 
						|||
| 
								 | 
							
													//object.setCustomOutline(true, sq_RGBA(255, 255, 0, 255), false, 2);
							 | 
						|||
| 
								 | 
							
													//return group, uniqueId;
							 | 
						|||
| 
								 | 
							
													return object;
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									return null;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								// 涡绾憎紫办缣怃 濠褐暧 夔?煤螃粽薛?蒂 撮??朝 睡碟殓栖棻. 阔
							 | 
						|||
| 
								 | 
							
								// #define getMyCharacter()		(getMyControlCharacter()) 蒂 夥脯舆朝 睡碟殓栖棻. 
							 | 
						|||
| 
								 | 
							
								function setConrolCharacter(obj, index)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
									local controlSize = sq_GetMyControlObjectSize(obj);
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									if(index < 0 || controlSize <= index)
							 | 
						|||
| 
								 | 
							
										return;
							 | 
						|||
| 
								 | 
							
									
							 | 
						|||
| 
								 | 
							
									releaseOutLine(obj, "grabobj");
							 | 
						|||
| 
								 | 
							
									releaseOutLine(obj, "hoverd");
							 | 
						|||
| 
								 | 
							
									//
							 | 
						|||
| 
								 | 
							
									local vObj = sq_GetMyControlObject(obj, index); // 摹鸥腆 议葛搅蒂 椭横蚂棻..
							 | 
						|||
| 
								 | 
							
									//
							 | 
						|||
| 
								 | 
							
									local grabChr = sq_GetCNRDObjectToSQRCharacter(vObj); // chr煎 棻桧釭哔议蝶?击 ?栖棻.
							 | 
						|||
| 
								 | 
							
									//
							 | 
						|||
| 
								 | 
							
									if(grabChr)
							 | 
						|||
| 
								 | 
							
									{
							 | 
						|||
| 
								 | 
							
										// 夔?煤?朝 赅苌 螃粽薛?暧 醴裔萄 羹醴蒂 ai赅萄煎 瞪??栖棻.
							 | 
						|||
| 
								 | 
							
										setAIControlObjCommandChecker(obj); // 摹鸥胀 议葛搅暧 醴裔萄羹醴蒂 瞪睡 ai煎 夥羞棻.
							 | 
						|||
| 
								 | 
							
										//// 议葛搅 摹鸥
							 | 
						|||
| 
								 | 
							
										obj.getVar("grabobj").push_obj_vector(vObj); // grabobj 
							 | 
						|||
| 
								 | 
							
										// 摹鸥胀 议葛搅暧 蝶鉴衙栖螳虏 撮??栖棻. 桧廓 ?煎餍颤殓缣怃朝 摹鸥击 ?紫 AI陛 夸跷贼 寰肾晦 阳侥缣 AI ?撩? 鼻鹧缣怃 蝶鉴 蜗煜虏 亿煎 撮??朝 掘亵煎 骨栖棻.
							 | 
						|||
| 
								 | 
							
										// 斜葬坚 帼?击 扬毓击阳虏 桧薯 醴裔萄羹醴蒂 撮??鄹栖棻.
							 | 
						|||
| 
								 | 
							
										setSkillManagerMyControlChracter(grabChr);
							 | 
						|||
| 
								 | 
							
										// 夥樯注 ?热 殓栖棻. CNUser::setMyControlCharacter(character); grabChr陛 夔?煤?朝 议葛搅塭坚 宪溥鄹栖棻.
							 | 
						|||
| 
								 | 
							
										// CNUser::myControlCharacter_ = grabChr陛 腌栖棻.
							 | 
						|||
| 
								 | 
							
										sq_SetMyControlCharacter(grabChr);
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								 |