Скинули скриптик на определение и запись координат
Возможности:
1. Записывается название текущей локации + (если выделен NPC) Имя выделенного NPC
3. Клавиша записи координат Ctrl + Пробел
4. Очистку лога по нажатию Ctrl + Delete
5. Запись типа "Точка кача моб лвл **", для удобства записи мест кача, желательно выделять моба, чтобы корректно дописывалась информация о имени моба и его лвле.
Код:
using System;
using System.Windows.Forms;
using System.Threading;
using System.Collections.Generic;
using System.Linq;
using Jungler.Bot.Classes;
namespace YourNamespace{
public class YourClass : Core
{
//Разные переменные
public double LastGps_X = 0;
public double LastGps_Y = 0;
public double NewGps_X = 0;
public double NewGps_Y = 0;
public string LastGps_Text = null;
public string text;
public string QuestName = null;
public string QuestType = null;
// Запись данных GPS в лог
public void WriteGPSLOG()
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
if (LastGps_X == 0 && LastGps_Y == 0)
{ //Если это первая координата, то сообщаем об этом и запоминаем ее в качестве начальной
LastGps_X = Math.Round(me.X, 2);
LastGps_Y = Math.Round(me.Y, 2);
LastGps_Text = "First_Point";
// Log( "Первая точка после запуска" + ' ' + '(' + LastGps_X + ',' + ' ' + LastGps_Y + ',' + ' ' + '"' + LastGps_Text + '"' + ')');
text = "Первая точка после запуска" + ' ' + '(' + LastGps_X + ',' + ' ' + LastGps_Y + ',' + ' ' + '"' + LastGps_Text + '"' + ')';
}
else
{ // Если не первая, то записываем в лог
NewGps_X = Math.Round(me.X, 2);
NewGps_Y = Math.Round(me.Y, 2);
if(LastGps_Text != null & LastGps_Text != "")
{ // Если пред. точка имела описание, то учитываем
text = "gps.AddLink(gps.AddPoint(" + LastGps_X + "," + ' '
+ LastGps_Y + ',' + ' ' + '"' + LastGps_Text + '"' + ")," + ' ';
}
else
{ // Если пред. точка не имела описание, то не добавляем его
text = "gps.AddLink(gps.AddPoint(" + LastGps_X + "," + ' '
+ LastGps_Y + ")," + ' ';
}
if(name(me.target) != null && name(me.target) != "" && me.target.type == BotTypes.Npc)
{ // Если выделен НПС то копируем его имя в название
text = text + "gps.AddPoint(" + NewGps_X + "," + ' ' + NewGps_Y + "," + ' '
+ '"' + name(me.target) + '"' + "));";
}
else
{ // И не добавляем если не выделено ничего
text = text + "gps.AddPoint(" + NewGps_X + "," + ' ' + NewGps_Y+ "));";
}
// Запоминаем координаты
LastGps_X = NewGps_X;
LastGps_Y = NewGps_Y;
if(name(me.target) != null && name(me.target) != "")
{
// Если в таргете есть имя, то добавим его в описание
LastGps_Text = name(me.target);
}
else if(QuestType == "Hunt")
{
// Если в таргете пусто, но тип квеста - Охота, значит это связано с квестом типа Охота
Log (QuestType);
LastGps_Text = "Дорожный указатель";
}
else
{
// Иначе просто точка для связи
LastGps_Text = null;
}
// И записываем в лог нужную строчку
}
text = text + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + '/' + '/' + ' ' + currentZone();
if(GetGroupStatus("Write_NPC") && (LastGps_Text != null && LastGps_Text != "") && ( me.target.type == BotTypes.Npc || QuestType != null))
text = text + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + '/' + '/' + ' ' + '"' + LastGps_Text + '"';
if (GetGroupStatus("Запись квестов") && QuestName != null)
text = text + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + '/' + '/' + ' ' + QuestName;
Log(text);
}
// Определяем нажатие клавиш
public void keyDown(Keys k, bool isControl, bool isShift, bool isAlt)
{
if (isControl && k == Keys.G)
//ctrl-G нажата
{
Log(me.target.creatureId.ToString()); // id текущей цели
}
if (isControl && k == Keys.Space)
//ctrl-Space нажата
{
WriteGPSLOG();
CancelTarget();
}
if (isControl && k == Keys.H)
//ctrl-H нажата
{
WriteGPSLOG();
Log("Точка для кача лвл =" + ' ' + me.target.name + ' ' + me.target.level + "lvl.");
CancelTarget();
}
if (isControl && k == Keys.Delete)
{
ClearLogs();
}
}
public void QuestStarted(Quest StartedQuest)
{
// Взяли новый квест
QuestType = StartedQuest.questType.ToString();
QuestName = "Взяли новый квест:" + ' ' + '"' + StartedQuest.name + '"';
WriteGPSLOG();
QuestType = null;
QuestName = null;
}
public void QuestUpdated(Quest UpdatedQuest)
{
// Обновился квест
//for (int i=0;i<UpdatedQuest.steps.Length;i++)
//
//{
// Log("Шаг квеста" + i + "из" + UpdatedQuest.steps.Length + " value = " + UpdatedQuest.steps);
//}
//QuestName = "Обновился квест:" + ' ' + UpdatedQuest.name + "(" + UpdatedQuest.steps.ToString() + ")";
//Log(QuestName);
//QuestName = null;
}
public void QuestCompleted(Quest ComletedQuest)
{
// Завершили квест
QuestType = ComletedQuest.questType.ToString();
QuestName = "Завершили квест:" + ' ' + ComletedQuest.name;
WriteGPSLOG();
QuestType = null;
QuestName = null;
}
public void PluginRun()
{
//SetGroupStatus("Активно", true); //Добавляем группу в виджет
SetGroupStatus("Write_NPC", true);
SetGroupStatus("Запись квестов", true);
// SetGroupStatus("Write_NameLoc", true);
onKeyDown += keyDown;
onQuestStarted += QuestStarted;
onQuestUpdated += QuestUpdated;
onQuestCompleted += QuestCompleted;
while (true)
{
Thread.Sleep(1000);
}
}
}
}
Последний раз редактировалось Big Bad Sensey; 22.03.2014 в 23:30.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 10 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
Чтобы его прочитать, вы должны заработать сообщения. Как это сделать бесплатно, описано в правилах форума. Как купить доступ, описано в Платных услугах.