View Single Post
  #13  
Old 05-08-2011, 08:45 AM
joligario's Avatar
joligario
Developer
 
Join Date: Mar 2003
Posts: 1,498
Default

Pretty sure I got this working fine. If you want to try it out, clear out the destination info for door #51 and use the following in your player.pl:

Code:
sub EVENT_CLICKDOOR {
  if($doorid == 51) { #Agnarr Tower
    if($status > 79) { #GM status
      $client->MovePC(209,-765,-1735,1270,0);
    }
    elsif($hasitem{9433}) { #Symbol of Torden
      my $raid = $entity_list->GetRaidByClient($client);
      my $group = $entity_list->GetGroupByClient($client);
      if ($raid) { #Move raid
        for ($count = 0; $count < $raid->RaidCount(); $count++) {
          $pc = $raid->GetMember($count);
          $pc->MovePC(209,-765,-1735,1270,0);
        }
      }
      elsif ($group) { #Move group
        for ($count = 0; $count < $group->GroupCount(); $count++) {
          $pc = $group->GetMember($count);
          $pc->MovePC(209,-765,-1735,1270,0);
        }
      }
      else { #Move individual
        $client->MovePC(209,-765,-1735,1270,0);
      }
    }
    else { #Send gargoyles to attack
      my @npc_list = $entity_list->GetNPCList();
      foreach $npc (@npc_list) {
        if($npc->GetNPCTypeID() == 209024) {
          $npc->AddToHateList($client, 1);
        }
      }
    }
  }
  if($doorid == 61) { # tower
    if($client->KeyRingCheck(9425) || ($status > 79)) {
      quest::movegrp(209, 85, 145, 635);
    } elsif(plugin::check_hasitem($client, 9425)) {
      $client->KeyRingAdd(9425);
      quest::movegrp(209, 85, 145, 635);
    }
  }
  if($doorid == 63) { # tower
    if($client->KeyRingCheck(9425) || ($status > 79)) {
      quest::movegrp(209, -830, -865, 1375);
    } elsif(plugin::check_hasitem($client, 9425)) {
      $client->KeyRingAdd(9425);
      quest::movegrp(209, -830, -865, 1375);
    }
  }
  if($doorid == 65) { # tower
    if($client->KeyRingCheck(9425) || ($status > 79)) {
      quest::movegrp(209, -350, -2200, 1955);
    } elsif(plugin::check_hasitem($client, 9425)) {
      $client->KeyRingAdd(9425);
      quest::movegrp(209, -350, -2200, 1955);
    }
  }
  if($doorid == 67) { # tower
    if($client->KeyRingCheck(9425) || ($status > 79)) {
      quest::movegrp(209, 150, -1220, 1120);
    } elsif(plugin::check_hasitem($client, 9425)) {
      $client->KeyRingAdd(9425);
      quest::movegrp(209, 150, -1220, 1120);
    }
  }
}
Fun facts:
The check is for the symbol on the character (i.e. no keyring item)
Entire raid ports up (all members must be in zone, not zoning, for this to work)
Keyed player who clicks will be moved with highest element they are a member of (raid->group->individual)
Unkeyed players who click will get a surprise (like live)
Reply With Quote