Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using MapEdit;
- using Addon;
- using System.CodeDom.Compiler;
- using System.Diagnostics;
- namespace Bunker
- {
- public class TVector
- {
- public Vector Vec1 = null;
- public Vector vec2 = null;
- public bool one;
- }
- public class Class1 : MapEdit.MapEdit
- {
- List<string> Lines = new List<string>();
- string _LastMap = "";
- public override void OnPreMapChange()
- {
- _LastMap = GetDvar("mapname");
- base.OnPreMapChange();
- }
- public override void OnMapChange()
- {
- try
- {
- foreach (string line in Lines)
- {
- ServerPrint(line);
- }
- if (GetServerCFG("BUNKER", "Save", "false") == "true")
- {
- string DllLines = System.IO.File.ReadAllText("plugins\\refer.txt");
- DllLines = DllLines.Replace("{0}", _LastMap);
- string Line = string.Join("\r\n", Lines.ToArray());
- DllLines = DllLines.Replace("{1}", Line);
- CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp");
- string Output = _LastMap + ".dll";
- System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
- parameters.ReferencedAssemblies.Add("plugins\\mapedit.dll");
- parameters.ReferencedAssemblies.Add("addon\\dist\\addon.dll");
- parameters.GenerateExecutable = false;
- parameters.OutputAssembly = Output;
- CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, DllLines);
- if (results.Errors.Count > 0)
- {
- System.IO.File.WriteAllText("hohoohoho.txt", DllLines);
- foreach (CompilerError CompErr in results.Errors)
- {
- ServerPrint(
- "Line number " + CompErr.Line +
- ", Error Number: " + CompErr.ErrorNumber +
- ", '" + CompErr.ErrorText + ";" +
- Environment.NewLine + Environment.NewLine);
- }
- }
- else
- {
- System.IO.File.Copy(Output, "plugins\\" + Output, true);
- }
- }
- }
- catch (Exception e)
- {
- ServerPrint(e.ToString());
- }
- ServerPrint(_LastMap);
- Lines.Clear();
- }
- TVector wall = new TVector();
- TVector ramp = new TVector();
- TVector door = new TVector();
- TVector floor = new TVector();
- static string GetString(Vector vec1)
- {
- return "new Vector(" + Math.Round(vec1.X, 0, MidpointRounding.AwayFromZero) + "f," + Math.Round(vec1.Y, 0, MidpointRounding.AwayFromZero) + "f," + Math.Round(vec1.Z, 0, MidpointRounding.AwayFromZero) + "f)";
- }
- public override Addon.ChatType OnSay(string Message, Addon.ServerClient Client, bool Teamchat)
- {
- if (Message
- == "!door")
- {
- if (door.one)
- {
- door.vec2 = new Vector(Client.OriginX, Client.OriginY, Client.OriginZ);
- iPrintLnBold("two vector of door", Client);
- CreateDoor(door.Vec1, door.vec2);
- Lines.Add("CreateDoor(" + GetString(door.Vec1) + "," + GetString(door.vec2) + ");");
- door = new TVector();
- }
- else
- {
- door.one = true;
- door.Vec1 = new Vector(Client.OriginX, Client.OriginY, Client.OriginZ);
- iPrintLnBold("One vector of door", Client);
- }
- return ChatType.ChatNone;
- }
- if (Message == "!wall")
- {
- if (wall.one == true)
- {
- wall.vec2 = new Vector(Client.OriginX, Client.OriginY, Client.OriginZ);
- iPrintLnBold("two vector of wall", Client);
- CreateWall(wall.Vec1, wall.vec2);
- Lines.Add("CreateWall(" + GetString(wall.Vec1) + "," + GetString(wall.vec2) + ");");
- wall = new TVector();
- }
- else
- {
- wall.one = true;
- wall.Vec1 = new Vector(Client.OriginX, Client.OriginY, Client.OriginZ);
- iPrintLnBold("One vector of wall", Client);
- }
- return ChatType.ChatNone;
- }
- if (Message == "!weapon")
- {
- SpawnModel("script_model", "weapon_aa12_iw5", new Vector(Client.OriginX, Client.OriginY, Client.OriginZ+10));
- SpawnModel("script_model", "viewmodel_aa12_iw5", new Vector(Client.OriginX, Client.OriginY, Client.OriginZ+50));
- return ChatType.ChatNone;
- }
- if (Message == "!floor")
- {
- if (floor.one == true)
- {
- floor.vec2 = new Vector(Client.OriginX, Client.OriginY, Client.OriginZ);
- iPrintLnBold("two vector of floor", Client);
- createfloor(floor.Vec1, floor.vec2);
- Lines.Add("createfloor(" + GetString(floor.Vec1) + "," + GetString(floor.vec2) + ");");
- floor = new TVector();
- }
- else
- {
- floor.one = true;
- floor.Vec1 = new Vector(Client.OriginX, Client.OriginY, Client.OriginZ);
- iPrintLnBold("Floor vector of one", Client);
- }
- return ChatType.ChatNone;
- }
- if (Message == "!ramp")
- {
- if (ramp.one == true)
- {
- ramp.vec2 = new Vector(Client.OriginX, Client.OriginY, Client.OriginZ);
- iPrintLnBold("two vector of ramp", Client);
- CreateRamp(ramp.Vec1, ramp.vec2);
- Lines.Add("CreateRamp(" + GetString(ramp.Vec1) + "," + GetString(ramp.vec2) + ");");
- ramp = new TVector();
- }
- else
- {
- ramp.one = true;
- ramp.Vec1 = new Vector(Client.OriginX, Client.OriginY, Client.OriginZ);
- iPrintLnBold("Floor vector of ramp", Client);
- }
- return ChatType.ChatNone;
- }
- if (Message == "!fwall")
- {
- wall = new TVector();
- return ChatType.ChatNone;
- }
- if (Message == "!ffloor")
- {
- floor = new TVector();
- return ChatType.ChatNone;
- }
- if (Message == "!framp")
- {
- ramp = new TVector();
- return ChatType.ChatNone;
- }
- if (Message == "!fdoor")
- {
- door = new TVector();
- return ChatType.ChatNone;
- }
- if (Message == "!noclip")
- {
- Client.Other.NoClip = true;
- return ChatType.ChatNone;
- }
- if (Message == "!nclip")
- {
- Client.Other.NoClip = false;
- return ChatType.ChatNone;
- }
- else
- return base.OnSay(Message, Client,
- Teamchat);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment