public override SubPacket CreateScriptBindPacket() { List <LuaParam> lParams; lParams = LuaUtils.CreateLuaParamList("/System/Debug.prog", false, false, false, false, true, 0xC51F, true, true); return(ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams)); }
public override SubPacket CreateScriptBindPacket() { List <LuaParam> lParams; lParams = LuaUtils.CreateLuaParamList("/World/WorldMaster_event", false, false, false, false, false, null); return(ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams)); }
public override SubPacket CreateScriptBindPacket() { List <LuaParam> lParams; lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, "/Area/Zone/ZoneDefault", -1, (byte)1, true, false, false, false, false, false, false, false); return(ActorInstantiatePacket.BuildPacket(actorId, actorName, "ZoneDefault", lParams)); }
public override SubPacket CreateScriptBindPacket() { bool isEntranceDesion = false; List <LuaParam> lParams; lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, "", -1, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, true, isInstanceRaid, isEntranceDesion); return(ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams)); }
public override SubPacket CreateScriptBindPacket() { List <LuaParam> lParams; string path = className; string realClassName = className.Substring(className.LastIndexOf("/") + 1); lParams = LuaUtils.CreateLuaParamList(classPath, false, true, zoneName, privateAreaName, privateAreaType, canRideChocobo ? (byte)1 : (byte)0, canStealth, isInn, false, false, false, false, false, false); ActorInstantiatePacket.BuildPacket(actorId, actorName, realClassName, lParams).DebugPrintSubPacket(); return(ActorInstantiatePacket.BuildPacket(actorId, actorName, realClassName, lParams)); }
public List <LuaParam> CallLuaFunctionForReturn(Player player, Actor target, string funcName, bool optional, params object[] args) { //Need a seperate case for NPCs cause that child/parent thing. if (target is Npc) { return(CallLuaFunctionNpcForReturn(player, (Npc)target, funcName, optional, args)); } object[] args2 = new object[args.Length + (player == null ? 1 : 2)]; Array.Copy(args, 0, args2, (player == null ? 1 : 2), args.Length); if (player != null) { args2[0] = player; args2[1] = target; } else { args2[0] = target; } string luaPath = GetScriptPath(target); LuaScript script = LoadScript(luaPath); if (script != null) { if (!script.Globals.Get(funcName).IsNil()) { //Run Script DynValue result = script.Call(script.Globals[funcName], args2); List <LuaParam> lparams = LuaUtils.CreateLuaParamList(result); return(lparams); } else { if (!optional) { SendError(player, String.Format("Could not find function '{0}' for actor {1}.", funcName, target.GetName())); } } } else { if (!optional) { SendError(player, String.Format("Could not find script for actor {0}.", target.GetName())); } } return(null); }
public List <LuaParam> CallLuaFunctionForReturn(string path, string funcName, bool optional, params object[] args) { string luaPath = path; LuaScript script = LoadScript(luaPath); if (script != null) { if (!script.Globals.Get(funcName).IsNil()) { //Run Script DynValue result = script.Call(script.Globals[funcName], args); List <LuaParam> lparams = LuaUtils.CreateLuaParamList(result); return(lparams); } } return(null); }
private List <LuaParam> CallLuaScript(string funcName, params object[] args) { if (directorScript != null) { if (!directorScript.Globals.Get(funcName).IsNil()) { DynValue result = directorScript.Call(directorScript.Globals[funcName], args); List <LuaParam> lparams = LuaUtils.CreateLuaParamList(result); return(lparams); } else { Program.Log.Error("Could not find script for director {0}.", GetName()); } } return(null); }
// actorClassId, [], [], numBattleCommon, [battleCommon], numEventCommon, [eventCommon], args for either initForBattle/initForEvent public override SubPacket CreateScriptBindPacket(Player player) { List <LuaParam> lParams; lParams = LuaEngine.GetInstance().CallLuaFunctionForReturn(player, this, "init", false); if (lParams != null && lParams.Count >= 3 && lParams[2].typeID == 0 && (int)lParams[2].value == 0) { isStatic = true; } else { //charaWork.property[2] = 1; //npcWork.hateType = 1; } if (lParams == null) { string classPathFake = "/Chara/Npc/Populace/PopulaceStandard"; string classNameFake = "PopulaceStandard"; lParams = LuaUtils.CreateLuaParamList(classPathFake, false, false, false, false, false, 0xF47F6, false, false, 0, 0); isStatic = true; //ActorInstantiatePacket.BuildPacket(actorId, actorName, classNameFake, lParams).DebugPrintSubPacket(); return(ActorInstantiatePacket.BuildPacket(actorId, actorName, classNameFake, lParams)); } else { lParams.Insert(0, new LuaParam(2, classPath)); lParams.Insert(1, new LuaParam(4, 4)); lParams.Insert(2, new LuaParam(4, 4)); lParams.Insert(3, new LuaParam(4, 4)); lParams.Insert(4, new LuaParam(4, 4)); lParams.Insert(5, new LuaParam(4, 4)); lParams.Insert(6, new LuaParam(0, (int)actorClassId)); } //ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams).DebugPrintSubPacket(); return(ActorInstantiatePacket.BuildPacket(actorId, actorName, className, lParams)); }
private List <LuaParam> CallLuaFunctionNpcForReturn(Player player, Npc target, string funcName, bool optional, params object[] args) { object[] args2 = new object[args.Length + (player == null ? 1 : 2)]; Array.Copy(args, 0, args2, (player == null ? 1 : 2), args.Length); if (player != null) { args2[0] = player; args2[1] = target; } else { args2[0] = target; } LuaScript parent = null, child = null; if (File.Exists("./scripts/base/" + target.classPath + ".lua")) { parent = LuaEngine.LoadScript("./scripts/base/" + target.classPath + ".lua"); } Area area = target.zone; if (area is PrivateArea) { if (File.Exists(String.Format("./scripts/unique/{0}/privatearea/{1}_{2}/{3}/{4}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), ((PrivateArea)area).GetPrivateAreaType(), target.className, target.GetUniqueId()))) { child = LuaEngine.LoadScript(String.Format("./scripts/unique/{0}/privatearea/{1}_{2}/{3}/{4}.lua", area.zoneName, ((PrivateArea)area).GetPrivateAreaName(), ((PrivateArea)area).GetPrivateAreaType(), target.className, target.GetUniqueId())); } } else { if (File.Exists(String.Format("./scripts/unique/{0}/{1}/{2}.lua", area.zoneName, target.className, target.GetUniqueId()))) { child = LuaEngine.LoadScript(String.Format("./scripts/unique/{0}/{1}/{2}.lua", area.zoneName, target.className, target.GetUniqueId())); } } if (parent == null && child == null) { LuaEngine.SendError(player, String.Format("ERROR: Could not find script for actor {0}.", target.GetName())); } //Run Script DynValue result; if (child != null && child.Globals[funcName] != null) { result = child.Call(child.Globals[funcName], args2); } else if (parent != null && parent.Globals[funcName] != null) { result = parent.Call(parent.Globals[funcName], args2); } else { return(null); } List <LuaParam> lparams = LuaUtils.CreateLuaParamList(result); return(lparams); }