using System;
using System.Linq;
using System.Collections.Generic;
using NewWidget.Core;
using NewWidget.Core.Native;
using NewWidget.Core.Scripting;
public class Script : ScriptBase {
int quest;
int questStage;
bool running = false;
Vector oldLocation;
public class ScriptProgress
{
public string charName {get; set;}
public int quest {get; set;}
public int questStage {get; set;}
public bool running;
public Vector oldLocation;
}
public override void OnStart() {
base.OnStart();
init();
EnabledChanged(true, init);
CreateTimer(1000, scriptControl);
CreateTimer(100, selfBuffs);
CreateTimer(1000, checkAfk);
EnabledChanged(true, () => Client.Pve.Enabled = true);
}
void init()
{
writeChekpoint(40, 1);
}
void scriptControl()
{
switch(questStage)
{
case 0:
break;
case 1:
q1();
break;
case 2:
q2();
break;
case 3:
q3();
break;
case 4:
q4();
break;
case 5:
q5();
break;
case 6:
q6();
break;
}
}
void q1() //Johnny
{
running = true;
Client.MoveToLocation(new Vector(86538, 85799, -2897), 0, 25000);
Client.SetTarget(32744);
Wait(200);
NpcDialogOpen(32744);
Client.DialogSelect(0);
Wait(200);
Client.DialogSelect(0);
Wait(200);
Client.DialogSelect(0);
Wait(200);
Client.DialogSelect(0);
Client.SetTarget(Me);
if (running)
writeChekpoint(40, 2);
}
void q2() //Ankumi
{
Client.MoveToLocation(new Vector(86503, 86095, -2884), 0, 25000);
Client.SetTarget(32741);
Wait(200);
NpcDialogOpen(32741);
Wait(200);
Client.DialogSelect(1);
Wait(200);
Client.DialogSelect(0);
Wait(200);
Client.DialogSelect(0);
Wait(200);
Client.BoardOpen();
Wait(500);
Client.BoardSelect(1);
Wait(500);
Client.BoardSelect(53);
Wait(500);
Client.UseSkill(416);
if(Client.HtmlActions.Count() > 0)
Client.DialogSelect(0);
if (running)
writeChekpoint(40, 3);
}
void q3() //pvehunt
{
Client.SetTarget(Me);
Client.MoveToLocation(new Vector(86563, 85843, -2897), 0, 25000);
Client.MoveToLocation(new Vector(87474, 85769, -3052), 0, 25000);
Client.MoveToLocation(new Vector(88464, 85653, -3170), 0, 25000);
Client.MoveToLocation(new Vector(88891, 85549, -3213), 0, 25000);
Client.MoveToLocation(new Vector(90147, 84967, -3474), 0, 25000);
Client.MoveToLocation(new Vector(91178, 84510, -3653), 0, 25000);
Client.MoveToLocation(new Vector(92349, 83990, -3685), 0, 25000);
Client.MoveToLocation(new Vector(93832, 83514, -3571), 0, 25000);
Client.Pve.Enabled = true;
if (Mobs.Any(m => m.DistanceToUser < 500 && m.Id == 18862)){
Client.Pve.Enabled = false;
};
Client.SetTarget(18862);
Client.FUseSkill(990, true);
if(Client.HtmlActions.Count() > 0)
Client.FUseSkill(990, true);
if (running)
writeChekpoint(40, 4);
}
void q4() //Batracos
{
Client.Pve.Enabled = false;
Client.SetTarget(Me);
Client.MoveToLocation(new Vector(93977, 83575, -3565), 0, 25000);
Client.MoveToLocation(new Vector(94542, 83541, -3459), 0, 25000);
Client.MoveToLocation(new Vector(94847, 83592, -3418), 0, 25000);
Client.Pve.Enabled = false;
Client.SetTarget(32740);
NpcDialogOpen(32740);
Wait(200);
Client.DialogSelect(2);
Wait(200);
Client.SetTarget(32740);
NpcDialogOpen(32740);
Wait(200);
Client.DialogSelect(1);
Client.SetTarget(Me);
if(Client.HtmlActions.Count() > 0)
Client.DialogSelect(1);
if (running)
writeChekpoint(40, 5);
}
void q5() //FarmUgoros
{
Client.SetTarget(18863);
Client.Pve.Enabled = true;
if (Mobs.Any(m => m.DistanceToUser < 1000 && m.Id == 18863 && Me.Target.IsDead))
Client.Pve.Enabled = false;
Client.MoveToLocation(new Vector(95728, 85683, -3733), 0, 25000);
Client.SetTarget(32740);
NpcDialogOpen(32740);
Client.DialogSelect(0);
Client.SetTarget(Me);
if(Client.HtmlActions.Count() > 0)
Client.DialogSelect(0);
if (running)
writeChekpoint(40, 6);
}
void q6() //Tp+nagrada
{
Wait(15000);
Client.SetTarget(Me);
Client.BoardOpen();
Wait(200);
Client.BoardSelect(2);
Wait(200);
Client.BoardSelect(31);
Wait(200);
Client.BoardSelect(30);
Client.SetTarget(Me);
Client.MoveToLocation(new Vector(88533, 85805, -3161), 0, 25000);
Client.MoveToLocation(new Vector(87790, 85867, -3069), 0, 25000);
Client.MoveToLocation(new Vector(87048, 85944, -3014), 0, 25000);
Client.MoveToLocation(new Vector(86575, 85979, -2887), 0, 25000);
Client.MoveToLocation(new Vector(86490, 86095, -2883), 0, 25000);
Client.SetTarget(32741);
NpcDialogOpen(32741);
Wait(200);
Client.DialogSelect(1);
Wait(200);
Client.DialogSelect(0);
Wait(200);
Client.DialogSelect(0);
Wait(200);
Client.BoardOpen();
Wait(200);
Client.BoardSelect(1);
Wait(200);
Client.BoardSelect(51);
if (running)
writeChekpoint(40, 1);
}
void selfBuffs()
{
if (Me.Buffs.Any(b => Me.BuffEndtime(416) < 1000) && Me.Target == Me)
Client.FUseSkill(416);
if(Me.SkillCooltime(4) < 50 && Me.Target == Me)
Client.FUseSkill(4);
if(Me.IsDead)
{
Wait(1000);
Client.RestartPoint(RestartPointTypes.Town);
running = false;
writeChekpoint(40, 1);
}
}
void checkAfk()
{
oldLocation = Me.Location;
Wait(35000);
if (Me.Location == oldLocation)
{
Client.BoardOpen();
Wait(200);
Client.BoardSelect(1);
Wait(200);
Client.BoardSelect(53);
Wait(200);
Client.FUseSkill(416);
Wait(200);
Client.BoardOpen();
Wait(200);
Client.BoardSelect(2);
Wait(200);
Client.BoardSelect(31);
Wait(200);
Client.BoardSelect(30); //SoE
Wait(3000);
running = false;
writeChekpoint(40, 1);
}
}
///записать в сетингс текущий прогресс
void writeChekpoint(int _quest, int _stage)
{
quest = _quest;
questStage = _stage;
}
///берет в таргет нпс, открывает диалог
void NpcDialogOpen(int a){
var NpcTarget = Npcs.FirstOrDefault(n => n.Id == a);
if(NpcTarget != null)
{
Client.SetTarget(NpcTarget);
if(Me.Target == NpcTarget)
{
Client.DialogOpen();
Wait(1500);
}
}
}
}