Открыть/закрыть инвентарь

romanya

New member
Добрый вечер, подскажите пожалуйста какую строчку нужно добавить в скрип нюков чтобы открывался и закрывался инвентарь, просто на сервере так сделано что через прогу макрос юзает нюки и пуха из инвентаря пропадает пока не откроешь и не закроешь инвентарь. Спасибо
 

romanya

New member
using System;
using System.Linq;
using System.Collections.Generic;
using NewWidget.Core;
using NewWidget.Core.Native;
using NewWidget.Core.Scripting;

public class Script : ScriptBase {

public override void OnStart() {
base.OnStart();
BindKey(System.Windows.Forms.Keys.F8, UseNuke);
CreateTimer(100, CheckCD);
}


class Nuke {
public int Id;
public int Cooldown;
}

bool Active = false;
readonly List<Nuke> Nukes = new[]{ 3169, 3165, 3171, 3172, 3168, 3167, 3170 }.Select(i => new Nuke{ Id = i, Cooldown = 0 }).ToList();

void UseNuke() {
if (Active || Me.Target==null || Me.Cast.EndTime > 100) {
return;
}

Active = true;
var maitWeapID = 15893;
foreach (var nuke in Nukes.Where(kv => kv.Cooldown < Environment.TickCount)) {
var aug = L2Helper.GameData.Augments[nuke.Id];
var item = CommonInventory.FirstOrDefault(i => i.IsAugmented && (aug.Options.Contains(i.Augment.First) || aug.Options.Contains(i.Augment.Second)));
if (item != null) {
if (!item.IsEquipped) {
Client.UseItem(item);
}

nuke.Cooldown = Environment.TickCount + 1000;
Client.FUseSkill(nuke.Id, true);
Client.UseItem(maitWeapID);
break;
}
}

Active = false;
}

void CheckCD() {
foreach (var skill in Me.Skills) {
var nuke = Nukes.FirstOrDefault(n => n.Id == skill.Id);
if (nuke != null) {
nuke.Cooldown = Environment.TickCount + skill.EndTime;
break;
}
}
}

}
 
Добрый вечер, подскажите пожалуйста какую строчку нужно добавить в скрип нюков чтобы открывался и закрывался инвентарь, просто на сервере так сделано что через прогу макрос юзает нюки и пуха из инвентаря пропадает пока не откроешь и не закроешь инвентарь. Спасибо
Попробуй задать вопрос еще раз, только понятнее, «через прогу макрос пропадает» ты хочишь что бы у тебя инвентарь открывался каждый раз при взятом орудии с новым аугментом , и закрывалась сразу же? Если да, я думаю у тебя при такой частоте открывания крашнит окно. Можно просто открыть и убрать окошко за экран
 

romanya

New member
Сейчас при нажатии ф8 берется пуха с нюком, нюкает, если больше не нажимать ничего то берет основную пуху (сакру), если нажимать дальше то берет следующую пуху и т.д . НО после того как все 4 пухи берет и нюкает они из инвинтаря пропадают (косяк сервера наверное) если открыть инвентарь то они появляются и можно снова пользоваться нюками. если его не открываать то при нажатии ф8 стоит без пухи так как их нет
Так вот:
Нужно дописать в код строчку чтобы инвентарь открывался и закрывался. Просто открыть инвентарь и закрыть инвентарь.

Спасибо!
 

romanya

New member
С просто открытым инвентарем они просто пропадают, если закрыть и открыть снова то появляются. это происходит при преодолении какого то порога скорости каста, если без сосок при бафе овера такого не происходит (пропадания пушек) если включаю соски они начинают пропадать, нужно открывать инвентарь и закрыть
 
С просто открытым инвентарем они просто пропадают, если закрыть и открыть снова то появляются. это происходит при преодолении какого то порога скорости каста, если без сосок при бафе овера такого не происходит (пропадания пушек) если включаю соски они начинают пропадать, нужно открывать инвентарь и закрыть
открыть закрыть инвентарь можно, но я думаю что при такой частоте нажатий у тебя дропнет окно л2.
ну и мб стоит F use поменять на use. и это Client.UseItem(maitWeapID); добавить не в теле цикла , а после того как цикл foreach завершит выполнение.
 

romanya

New member
не работает
если после


void CheckCD() {
foreach (var skill in Me.Skills) {
var nuke = Nukes.FirstOrDefault(n => n.Id == skill.Id);
if (nuke != null) {
nuke.Cooldown = Environment.TickCount + skill.EndTime;

ставлю то не компилирует

если после

foreach (var nuke in Nukes.Where(kv => kv.Cooldown < Environment.TickCount)) {
var aug = L2Helper.GameData.Augments[nuke.Id];
var item = CommonInventory.FirstOrDefault(i => i.IsAugmented && (aug.Options.Contains(i.Augment.First) || aug.Options.Contains(i.Augment.Second)));
if (item != null) {
if (!item.IsEquipped) {
Client.UseItem(item);

то берет пуху с нюком сразу берет основную и ее снимает, больше ничего не происходит
 

romanya

New member
и еще подскажи пож как задать кнопку выпосления макроса Ctrl+F1 (сейчас стоит F8) ? Ctrl+ такого не может быть как я понял, а хотелось бы сделать
 

jr

Administrator
Команда форума
 
Сверху