|
المشاركات 186 |
+التقييم 0.10 |
تاريخ التسجيل Sep 2019 |
الاقامة Egypt |
نظام التشغيل Windows 7 Ultimate |
رقم العضوية 1525 |
case 200:
{
if (client.Player.Level < 100)
{
data.AddText("sorry, you need to be at keast level 100.")
.AddOption("Holy~Shit.", 255).AddAvatar(63).FinalizeDialog();
}
else
{
data.AddText("Welcome, please insert the amount of cps u want to bet on.")
.AddInput("minimum 500 CPS", 201).AddOption("Passing~by.", 255).AddAvatar(63).FinalizeDialog();
}
break;
}
case 201:
{
uint bet = uint.Parse(Input);
if (bet < 500)
{
client.Player.MessageBox("Minimum 500 CPs.", null, null);
break;
}
if (Game.MsgTournaments.MsgSchedules.ArenaCpsBattle.Working)
{
client.Player.MessageBox("Minimum 500 CPs.", null, null);
break;
}
foreach (var user in Database.Server.GamePoll.Values)
{
user.Player.MessageBox("Cps Tournment War Started Bet " + bet + " Cps", p =>
{
if (Game.MsgTournaments.MsgSchedules.ArenaCpsBattle.SignUp(p, bet) == false)
{
p.SendSysMesage("don't have requierments.", MsgMessage.ChatMode.Service, MsgMessage.MsgColor.yellow);
}
}, null, 15);
}
break;
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Project_Terror_v2.Game.MsgTournaments
{
public class MsgCpsArenaSingle
{
public TournamentType Type = TournamentType.MsgCpsArenaSingle;
public bool Working = false, Joined = false, Teleported = false;
public const uint MapID = 1760;
public const uint MinCurrentBet = 500;
public CSAPlayer PlayerOne = null, PlayerTwo = null;
public DateTime MatchStamp = new DateTime();
public ProcesType Process { get; set; }
public DateTime ScoreStamp = new DateTime();
public void SendMapPacket(ServerSockets.Packet stream)
{
foreach (var user in MapPlayers())
user.Send(stream);
}
public Client.GameClient[] MapPlayers()
{
return Database.Server.ServerMaps[MapID].Values.Where(p => InTournament(p)).ToArray();
}
public bool InTournament(Client.GameClient user)
{
return user.Player.Map == MapID;
}
private void AnnounceScores(ServerSockets.Packet stream)
{
ScoreStamp = DateTime.Now.AddSeconds(2);
}
public MsgCpsArenaSingle(ProcesType _process = ProcesType.Dead)
{
Process = _process;
}
public bool SignUp(Client.GameClient _user, uint _bet)
{
if (PlayerOne != null && PlayerTwo != null)
{
_user.SendSysMesage("Tournment Completed.");
return false;
}
if (_bet < MinCurrentBet)
return false;
if (Joined)
return false;
if ((_bet < MinCurrentBet ? true : false) == true)
{
_bet = MinCurrentBet;
}
if (_user.Player.ConquerPoints < _bet)
{
return false;
}
if(PlayerOne == null)
{
PlayerOne = null;
PlayerOne = new CSAPlayer() { UID = _user.Player.UID, Bet = _bet, Teleported = false };
_user.Player.ConquerPoints -= _bet;
return true;
}
else//if player one selected already but player two is still null
{
if (!PlayerOne.Client.Socket.Alive)
{
PlayerOne = null;
PlayerOne = new CSAPlayer() { UID = _user.Player.UID, Bet = _bet, Teleported = false };
_user.Player.ConquerPoints -= _bet;
return true;
}
if (PlayerTwo == null)
{
PlayerTwo = null;
PlayerTwo = new CSAPlayer() { UID = _user.Player.UID, Bet = _bet, Teleported = false };
_user.Player.ConquerPoints -= _bet;
Process = ProcesType.Idle;
return true;
}
else
{
_user.Player.MessageBox("Sorry Only 2 Members Avaliable Count.", null, null);
}
}
return false;
}
public void CheckUp()
{
if (Process == ProcesType.Dead)
{
foreach (var p in MapPlayers())
{
p.Teleport(298, 232, 1002);
}
return;
}
if (Process == ProcesType.Idle)
{
if (PlayerOne != null && PlayerTwo != null)
{
if (PlayerOne.Client.Socket.Alive && PlayerTwo.Client.Socket.Alive)
{
SendPVPInvitation(30, PlayerOne.Client);
SendPVPInvitation(30, PlayerTwo.Client);
}
}
else
return;
}
if (Process == ProcesType.Alive)
{
if (!PlayerOne.Client.Socket.Alive && PlayerTwo.Client.Socket.Alive)
{
End(PlayerTwo.UID, PlayerOne.UID);
}
else if (PlayerOne.Client.Socket.Alive && !PlayerTwo.Client.Socket.Alive)
{
End(PlayerOne.UID, PlayerTwo.UID);
}
else if (!PlayerOne.Client.Socket.Alive && !PlayerTwo.Client.Socket.Alive)
{
Process = ProcesType.Dead;
PlayerOne = null;
PlayerTwo = null;
}
else
{ }
if (DateTime.Now >= ScoreStamp)
{
using (var rec = new ServerSockets.RecycledPacket())
{
var stream = rec.GetStream();
AnnounceScores(stream);
}
}
if (DateTime.Now >= MatchStamp)
{
if (PlayerOne.Score > PlayerTwo.Score)
{
End(PlayerOne.UID, PlayerTwo.UID);
}
else if (PlayerOne.Score < PlayerTwo.Score)
{
End(PlayerTwo.UID, PlayerOne.UID);
}
else
{
MatchStamp.AddSeconds(30);
PlayerOne.Client.Player.MessageBox("Fight Still For 30 Seconds More.", null, null, 30);
PlayerTwo.Client.Player.MessageBox("Fight Still For 30 Seconds More.", null, null, 30);
}
}
}
}
public void End(uint Winner, uint Loser)//ending match void With Recall back
{
if (PlayerOne.UID == Winner && PlayerTwo.UID == Loser)
{
if (PlayerOne.Client != null && PlayerTwo.Client != null)
{
PlayerOne.Client.Player.ConquerPoints += PlayerOne.Bet;
PlayerOne.Client.Player.ConquerPoints += PlayerTwo.Bet;
PlayerOne.Client.SendSysMesage("You won Elite PVP Cps Arena.");
PlayerTwo.Client.SendSysMesage("You lost Elite PVP Cps Arena.");
PlayerOne.Client.Teleport(299, 292, 1002);
PlayerTwo.Client.Teleport(299, 292, 1002);
PlayerOne = null;
PlayerTwo = null;
Process = ProcesType.Dead;
}
}
if (PlayerTwo.UID == Winner && PlayerOne.UID == Loser)
{
if (PlayerOne.Client != null && PlayerTwo.Client != null)
{
PlayerTwo.Client.Player.ConquerPoints += PlayerOne.Bet;
PlayerTwo.Client.Player.ConquerPoints += PlayerTwo.Bet;
PlayerTwo.Client.SendSysMesage("You won Elite PVP Cps Arena.");
PlayerOne.Client.SendSysMesage("You lost Elite PVP Cps Arena.");
PlayerOne.Client.Teleport(299, 292, 1002);
PlayerTwo.Client.Teleport(299, 292, 1002);
PlayerOne = null;
PlayerTwo = null;
Process = ProcesType.Dead;
}
}
//giving Winner Cps
//teleporting both outside
//Ending war and stop invokation
//turning Process to Dead
}
public void Teleport(uint UID)
{
if (PlayerOne == null || PlayerTwo == null)
return;
ushort x = 0;
ushort y = 0;
Role.GameMap Map = Database.Server.ServerMaps[MapID];
Map.GetRandCoord(ref x, ref y);
if (PlayerOne.UID == UID && PlayerOne.Client.Socket.Alive)
{
PlayerOne.Client.Teleport(x, y, MapID);
PlayerOne.Client.Player.MessageBox("StartFighting Still Working For 100 Seconds.", null, null, 100);
PlayerOne.Client.Player.SetPkMode(Role.Flags.PKMode.PK);
if (MapPlayers().Length == 2)
{
Process = ProcesType.Alive;
MatchStamp = DateTime.Now.AddSeconds(90);
}
}
else if (PlayerTwo.UID == UID && PlayerTwo.Client.Socket.Alive)
{
PlayerTwo.Client.Teleport(x, y, MapID);
PlayerOne.Client.Player.MessageBox("StartFighting Still Working For 100 Seconds.", null, null, 100);
PlayerTwo.Client.Player.SetPkMode(Role.Flags.PKMode.PK);
if (MapPlayers().Length == 2)
{
Process = ProcesType.Alive;
MatchStamp = DateTime.Now.AddSeconds(100);
}
}
else
{
}
}
public void GiveUp(uint UID)
{
if (PlayerOne.UID == UID && PlayerOne.Client.Socket.Alive)
{
End(PlayerTwo.UID, UID);
}
if (PlayerTwo.UID == UID && PlayerTwo.Client.Socket.Alive)
{
End(PlayerOne.UID, UID);
}
}
public void ResondInteract(uint UID, uint Damage)
{
if (PlayerTwo != null && PlayerOne != null)
{
if (PlayerOne.Client.Socket.Alive && PlayerTwo.Client.Socket.Alive)
{
if (UID == PlayerOne.UID)
{
PlayerOne.Score += Damage;
}
if (UID == PlayerTwo.UID)
{
PlayerTwo.Score += Damage;
}
}
}
}
internal static bool SendPVPInvitation(int Secounds, Client.GameClient client, Game.MsgServer.MsgStaticMessage.Messages messaj = Game.MsgServer.MsgStaticMessage.Messages.None)
{
#if Arabic
string Message = "Cps Arena Betting Battle Match Started Want To Accept Or Give UP?";
#else
string Message = "Cps Arena Betting Battle Match Started Want To Accept Or Give UP?";
#endif
using (var rec = new ServerSockets.RecycledPacket())
{
var stream = rec.GetStream();
var packet = new Game.MsgServer.MsgMessage(Message, MsgServer.MsgMessage.MsgColor.yellow, MsgServer.MsgMessage.ChatMode.Center).GetArray(stream);
if (!client.Player.OnMyOwnServer || client.IsConnectedInterServer())
return false;
client.Send(packet);
client.Player.MessageBox(Message, new Action<Client.GameClient>(user => MsgTournaments.MsgSchedules.ArenaCpsBattle.Teleport(user.Player.UID)), user => MsgTournaments.MsgSchedules.ArenaCpsBattle.GiveUp(user.Player.UID), Secounds, messaj);
return true;
}
}
}
public class CSAPlayer
{
public uint UID;
public uint Bet;
public uint Score;
public bool Teleported;
public string Name { get { return Client.Player.Name; } }
public Client.GameClient Client
{
get
{
if (this.UID == 0)
return null;
if (Database.Server.GamePoll.ContainsKey(this.UID))
{
return Database.Server.GamePoll[this.UID];
}
return null;
}
}
}
}
public void End(uint Winner, uint Loser)//ending match void With Recall back
{
if (PlayerOne.UID == Winner && PlayerTwo.UID == Loser)
{
if (PlayerOne.Client != null && PlayerTwo.Client != null)
{
PlayerOne.Client.Player.ConquerPoints += PlayerOne.Bet;
PlayerOne.Client.Player.ConquerPoints += PlayerOne.Bet;
PlayerOne.Client.SendSysMesage("You won Elite PVP Cps Arena.");
PlayerTwo.Client.SendSysMesage("You lost Elite PVP Cps Arena.");
PlayerOne.Client.Teleport(298, 232, 1002);
PlayerTwo.Client.Teleport(298, 232, 1002);
PlayerOne = null;
PlayerTwo = null;
Process = ProcesType.Dead;
}
}
if (PlayerTwo.UID == Winner && PlayerOne.UID == Loser)
{
if (PlayerOne.Client != null && PlayerTwo.Client != null)
{
PlayerTwo.Client.Player.ConquerPoints += PlayerTwo.Bet;
PlayerTwo.Client.Player.ConquerPoints += PlayerTwo.Bet;
PlayerTwo.Client.SendSysMesage("You won Elite PVP Cps Arena.");
PlayerOne.Client.SendSysMesage("You lost Elite PVP Cps Arena.");
PlayerOne.Client.Teleport(298, 232, 1002);
PlayerTwo.Client.Teleport(298, 232, 1002);
PlayerOne = null;
PlayerTwo = null;
Process = ProcesType.Dead;
}
}
//giving Winner Cps
//teleporting both outside
//Ending war and stop invokation
//turning Process to Dead
}
الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
أدوات الموضوع | |
|
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
ثغرة سى بى اس فى السورس | body2020 | مشكلات السيرفيرات كونكر الشخصيه | 7 | 2021-08-11 06:15 AM |
ثغرة في الراجل بتاع الجيدات | ElSaher | مشكلات السيرفيرات كونكر الشخصيه | 5 | 2020-04-29 06:28 AM |
حمايه موقعك من ثغرة SQL Injection | محمد ياسر | قسم تطوير المواقع | 0 | 2020-04-15 03:22 PM |
ثغرة السيبس في سورس ماتركس | مجدى | مشكلات السيرفيرات كونكر الشخصيه | 6 | 2020-01-24 06:40 PM |
حل مشكلة ثغرة الصحوه قبل ال 5 ثواني | محمد ياسر | تطوير سيرفرات كونكر | 1 | 2019-05-25 06:48 AM |