UO-Dev Arama


Yazar: Bilinmiyor
Tarih: 18-08-2009 12:54


Paylaş : Paylaş

Kod:
using System;
using Server;
using Server.Mobiles;
using Server.Network;

namespace Server.Costum
{
public class King
{
public static Mobile TheKing = null;
private const string m_Title = "[King]";
private static TimeSpan m_Delay = TimeSpan.FromSeconds(1.0); //Gecikme payi *Teorik olarak sadece birkez çalisiyor, server açildiginda girdiginiz süre kadar sonra ilk seçim yapilir, bundan sonra asagidaki interval etkileyici roldedir*
private static TimeSpan m_Interval = TimeSpan.FromMinutes(15.0); //Seçim araligi

/// <summary>
/// Her interval kadar sürede bir kral seçimi yapilir
/// </summary>
public static void Initialize()
{
Timer.DelayCall(m_Delay, m_Interval, new TimerCallback(SelectKingCallback));
}

private static void SelectKingCallback()
{
try
{
Console.WriteLine("Kral seçimleri basladi");
RemoveOldKing();
SelectNewKing();
}
catch
{
Console.WriteLine("Kral seçimlerinde bir hata olustu");
}
finally
{
AnnounceNewKing();
}
}

/// <summary>
/// Eski kral silinir
/// </summary>
/// <returns></returns>
private static void RemoveOldKing()
{
if (TheKing != null)
TheKing.Title = null;
}

/// <summary>
/// Online oyuncular arasindan yeni bir kral seçilir
/// </summary>
/// <returns></returns>
private static Mobile SelectNewKing()
{
Mobile m_Candidate = null;

if (NetState.Instances.Count >= 10)
{
foreach (NetState n in NetState.Instances)
{
if (n.Mobile != null)
{
m_Candidate = n.Mobile;

if (TheKing == null)
{
TheKing = m_Candidate;
continue;
}

if (m_Candidate.Title == m_Title)
{
m_Candidate.Title = null;
}

if (m_Candidate.NetState != null && m_Candidate.Kills > TheKing.Kills)
{
TheKing = m_Candidate;
}
}
}
}
return m_Candidate;
}

/// <summary>
/// Seçilen krali anons eder
/// </summary>
private static void AnnounceNewKing()
{
if (TheKing != null)
{
Console.WriteLine("Krallik seçimi bitti, kral = {0}", TheKing.Name);
World.Broadcast(1153, false, "Yeni kral seçildi, [{0}]", TheKing.Name);
TheKing.Title = m_Title;

DoEffect();
}
else
{
World.Broadcast(1153, false, "Yeni bir kral seçilemedi...");
Console.WriteLine("Yeni bir kral seçilemedi");
}
}

private static void DoEffect()
{
Effects.SendMovingParticles(new Entity(Serial.Zero, new Point3D(TheKing.X - 6, TheKing.Y - 6, TheKing.Z + 15), TheKing.Map), TheKing, 0x36D4, 7, 0, false, true, 1160, 0, 9502, 1, 0, (EffectLayer)255, 0x100);
Effects.SendMovingParticles(new Entity(Serial.Zero, new Point3D(TheKing.X - 4, TheKing.Y - 6, TheKing.Z + 15), TheKing.Map), TheKing, 0x36D4, 7, 0, false, true, 1160, 0, 9502, 1, 0, (EffectLayer)255, 0x100);
Effects.SendMovingParticles(new Entity(Serial.Zero, new Point3D(TheKing.X - 6, TheKing.Y - 4, TheKing.Z + 15), TheKing.Map), TheKing, 0x36D4, 7, 0, false, true, 1160, 0, 9502, 1, 0, (EffectLayer)255, 0x100);
}
}
}



Yorumlar

Henüz yorum yapılmamıştır.

Oylamalar

Oylama :
Üyelerin oylama ortalaması (10 dışında) : Henüz Oylanmamış   
Oylar: 0

Benzer Sayfalar

SayfalarYorumlarGönderenTarih
Oyun Kral Seçimleri0TheRaskol30-08-2009


Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,