المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : FindGm


محمد ياسر
2019-04-23, 04:11 PM
بسم اللة الرحمن الرحيم

بما ان المجال نايم ننزل حاجة تنعنش الناس فكرة FindGm

من سورس ماتركس فكرة سهلة و بسيطة و جميلة :D

حضرتك هتعمل كلاس ف اي مكان باسم FindGm

و تضيف فية ,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Generic;
using Conquer_Online_Server.Game;
using Conquer_Online_Server.Database;
using Conquer_Online_Server.Network.GamePackets;
using System.Drawing;
using Conquer_Online_Server.Client;

namespace Conquer_Online_Server
{
class FindGm
{

static ushort Mapid = (ushort)Kernel.RandFromGivingNums(1036);
static Map Map = Kernel.Maps[Mapid];
const int ITEMS = 1000, CPSMoney = 1001;
//static int CurrentBoxes = 0;
public static Conquer_Online_Server.Interfaces.INpc npc;
static ushort tempX, tempY = 0;
//static uint BaseId = 101002;
static List<Point> VaildOnes = new List<Point>();
//public static bool OnGoing;

public static void Generate()
{
try
{
{
if (Map != null)
{
if (npc != null)
{
Map.RemoveNpc(npc);
}
}
Mapid = (ushort)Kernel.RandFromGivingNums(1036);
Map = Kernel.Maps[Mapid];
Caspr:
var cord = Map.RandomCoordinates();
tempX = cord.Item1;
tempY = cord.Item2;
if (Map.Floor[tempX, tempY, MapObjectType.Item, null])
{
npc = new Network.GamePackets.NpcSpawn();
npc.UID = Map.EntityUIDCounter.Next;
npc.Mesh = (ushort)Kernel.RandFromGivingNums(29686);
npc.Type = Enums.NpcType.Talker;
npc.MapID = Map.ID;
npc.X = tempX;
npc.Y = tempY;
npc.Name = "YouFindMe";
Map.AddNpc(npc);
//CurrentBoxes++;
Kernel.SendWorldMessage(new Message("[Quest GM] Find GM in Map" + ((Enums.Maps)Mapid).ToString(), Color.Red, Message.Service));
Console.WriteLine(npc.Name + " has shown up in " + ((Enums.Maps)npc.MapID).ToString() + " (" + npc.X + ", " + npc.Y + ")");
}
else goto Caspr;
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}

}

public static void Reward(GameClient client)
{

int prize = Kernel.RandFromGivingNums(ITEMS, CPSMoney);
//#warning TREASURE BOX PRIZE
switch (prize)
{
default:
case CPSMoney:
{//Conan
uint amount = (uint)Kernel.RandFromGivingNums(5000000, 10000000, 9000000, 7000000);
client.Entity.ConquerPoints += amount;
Kernel.SendWorldMessage(new Message(client.Entity.Name + " got " + amount + " CPs while Find GM " + ((Enums.Maps)Mapid).ToString(), Color.White, Message.Talk));
break;
}
case ITEMS:
{
// Database.ConquerItemBaseInformation temp;
uint itemid = (uint)Kernel.RandFromGivingNums(727317, 729122, 3004247, 3004249, 3004248, 3005892, 3005891);
client.Inventory.Add(itemid, 0, 1);
//Database.ConquerItemInformation.BaseInformations.T ryGetValue(itemid, out temp);
Kernel.SendWorldMessage(new Message(client.Entity.Name + " Got " + ITEMS + " while Find GM " + ((Enums.Maps)Mapid).ToString(), Color.White, Message.BroadcastMessage));
break;
}
}

//CurrentBoxes--;
// client.Entity.ConquerPoints += 1000;
// client.Entity.TreasuerPoints += 1;
}
}
}

بعد كدة حضرتك هتخش ع كلاس Npc.Cs

و ف اخروا او تبحث عن
if (client.ActiveNpc >= 101002 && client.Entity.MapID == 10002)

عشان مش تتلغبط بس :D

و تضيف فوقة ,
if (FindGm.npc != null)
if (client.ActiveNpc == FindGm.npc.UID)
{
client.SendScreen(new Network.GamePackets.Data(true) { UID = client.ActiveNpc, ID = Network.GamePackets.Data.RemoveEntity }, true);
client.Map.RemoveNpc(client.Map.Npcs[client.ActiveNpc]);
FindGm.Reward(client);
}

و بعدين نخش ع World و ضيف
#region FindGm
if (Now64.Minute == 25 && Now64.Second == 0)
{
FindGm.Generate();
}
#endregion

تحت اي اوتو انفينت بقا :D

صورتين كدة ع الماشي :D

عفواً لايمكن عرض الروابط في الإرشيف
عفواً لايمكن عرض الروابط في الإرشيف
عفواً لايمكن عرض الروابط في الإرشيف
شرح الفكرة هي عبارة عن وقت محدد انتا بتحددوا اشكل دة هيطلع ف مكان ف الماركت

هتيجي رسالة للعيبة تقولهم انو طلع و اليلقية الاول هيتك علية ياخد هدية

اما ايتم تفتحوا يديك حاجة او سي بي :D

فكرة سهلة و جميلة

midoazoz
2019-11-25, 12:55 PM
لما بتشتغل بتجيب ايرور في القونصول في
var cord = Map.RandomCoordinates();

Rider
2019-11-25, 05:08 PM
لما بتشتغل بتجيب ايرور في القونصول في
var cord = Map.RandomCoordinates();

امسح دول
var cord = Map.RandomCoordinates();
tempX = cord.Item1;
tempY = cord.Item2;

و حط دول
tempX = (ushort)Kernel.Random.Next(0, Map.Floor.Bounds.Width);
tempY = (ushort)Kernel.Random.Next(0, Map.Floor.Bounds.Height);

Rider
2019-11-25, 05:08 PM
ايوه بقا يا مولعها عاش