Difference between revisions of "Script: Find"

From Ultima Online: The Second Age
Jump to: navigation, search
 
Line 135: Line 135:
 
     <span style="color:#0000FF">return</span> (0x00);
 
     <span style="color:#0000FF">return</span> (0x00);
 
   }
 
   }
   <span style="color:#0000FF">if</span> (text == <span style="color:#800000">"[[Script Function:_scan|<span style="color:#2B91AF">scan</span>]]"</span>)
+
   <span style="color:#0000FF">if</span> (text == <span style="color:#800000">"scan"</span>)
 
   {
 
   {
     [[scan|<span style="color:#2B91AF">scan</span>]]();
+
     [[Script Function:_scan|<span style="color:#2B91AF">scan</span>]]();
 
     [[Engine Function:_systemMessage|<span style="color:#FF0000;font-weight:bold">systemMessage</span>]](sender, <span style="color:#800000">""</span> + Q5E0 + <span style="color:#800000">" matching mobiles were found."</span>);
 
     [[Engine Function:_systemMessage|<span style="color:#FF0000;font-weight:bold">systemMessage</span>]](sender, <span style="color:#800000">""</span> + Q5E0 + <span style="color:#800000">" matching mobiles were found."</span>);
 
     <span style="color:#0000FF">return</span> (0x00);
 
     <span style="color:#0000FF">return</span> (0x00);

Latest revision as of 16:54, 19 October 2018

member list Q4QN;
member int Q5E0;
function int Q4P7(list Q57R)
{
  int Q5T8 = numInList(Q57R);
  if (hasObjVar(this, "findScript"))
  {
    int Q5VU = Q5T8;
    Q5T8 = 0x00;
    string Q5OM = getObjVar(this, "findScript");
    for(int i = 0x00; i < Q5VU; i++)
    {
      obj Q57Q = Q57R[0x00];
      removeItem(Q57R, 0x00);
      if (hasScript(Q57Q, Q5OM))
      {
        Q5T8++;
        append(Q57R, Q57Q);
      }
    }
  }
  if (hasObjVar(this, "findTemplate"))
  {
    Q5VU = Q5T8;
    Q5T8 = 0x00;
    int Q5ZB = getObjVar(this, "findTemplate");
    for(i = 0x00; i < Q5VU; i++)
    {
      Q57Q = Q57R[0x00];
      removeItem(Q57R, 0x00);
      if (getTemplate(Q57Q) == Q5ZB)
      {
        Q5T8++;
        append(Q57R, Q57Q);
      }
    }
  }
  if (hasObjVar(this, "findObjVarInt"))
  {
    Q5VU = Q5T8;
    Q5T8 = 0x00;
    string Q5FA = getObjVar(this, "findObjVarInt");
    int Q578 = getObjVar(this, "minValue");
    int Q568 = getObjVar(this, "maxValue");
    for(i = 0x00; i < Q5VU; i++)
    {
      Q57Q = Q57R[0x00];
      removeItem(Q57R, 0x00);
      if (hasObjVar(Q57Q, Q5FA))
      {
        int val = getObjVar(Q57Q, Q5FA);
        if ((val >= Q578) && (val <= Q568))
        {
          Q5T8++;
          append(Q57R, Q57Q);
        }
      }
    }
  }
  if (hasObjVar(this, "findObjVarObj"))
  {
    Q5VU = Q5T8;
    Q5T8 = 0x00;
    Q5FA = getObjVar(this, "findObjVarObj");
    obj Q5F9 = getObjVar(this, "objValue");
    for(i = 0x00; i < Q5VU; i++)
    {
      Q57Q = Q57R[0x00];
      removeItem(Q57R, 0x00);
      if (hasObjVar(Q57Q, Q5FA))
      {
        if (Q5F9 == getObjVar(Q57Q, Q5FA))
        {
          Q5T8++;
          append(Q57R, Q57Q);
        }
      }
    }
  }
  if (hasObjVar(this, "findFame"))
  {
    Q5VU = Q5T8;
    Q5T8 = 0x00;
    int Q4OW = getObjVar(this, "findFame");
    for(i = 0x00; i < Q5VU; i++)
    {
      Q57Q = Q57R[0x00];
      removeItem(Q57R, 0x00);
      if (getFame(Q57Q) >= Q4OW)
      {
        Q5T8++;
        append(Q57R, Q57Q);
      }
    }
  }
  return (Q5T8);
}
function void scan()
{
  clearList(Q4QN);
  if (hasObjVar(this, "findMobiles"))
  {
    getMobsInRange(Q4QN, getLocation(this), 0x1388);
  }
  else
  {
    if (hasObjVar(this, "findPlayers"))
    {
      getPlayersInRange(Q4QN, getLocation(this), 0x1388);
    }
  }
  Q5E0 = Q4P7(Q4QN);
  return ();
}
trigger use
{
  if (!isEditing(user))
  {
    systemMessage(user, "This is a GM only tool.");
    return (0x01);
  }
  systemMessage(user, "Enter a search command:");
  textEntry(this, user, 0x029A, 0x00, "Enter a search command:");
  return (0x01);
}
trigger textentry(0x029A)
{
  if (!isEditing(sender))
  {
    systemMessage(sender, "This is a GM only tool.");
    return (0x00);
  }
  if (text == "scan")
  {
    scan();
    systemMessage(sender, "" + Q5E0 + " matching mobiles were found.");
    return (0x00);
  }
  int Q5FR = text;
  if ((Q5FR < 0x00) || (Q5FR >= Q5E0))
  {
    systemMessage(sender, "Invalid mobile");
    return (0x00);
  }
  int Q4Q1 = teleport(sender, getLocation(Q4QN[Q5FR]));
  return (0x00);
}