Sistema de Vip com dias para acabar

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Sistema de Vip com dias para acabar

Mensagem por FelipeXP em Seg Jul 31, 2017 9:30 pm

Na pasta Game da sua source crie VIPDays.cs
e nessa coloque:
Código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using xConquer.Database;

namespace xConquer.Game
{
    public class VIPDays
    {
        /*
         * All Rights Reserved © Ąbdṳallah Môhsen
         */
        public DateTime VIPStartON, VIPEndAt;
        public byte VIPLevelDays, OldVIPLevel;
        public int VIPLogMessage;

        public VIPDays()
        {
            foreach (Client.GameState client in Program.GamePool)
            {
                this.VIPLevelDays = 0;
                this.OldVIPLevel = client.Entity.VIPLevel;
            }
        }
        public static void READ(Client.GameState client)
        {
            using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("vipdays").Where("UID", client.Entity.UID))
            using (var reader = new MySqlReader(cmd))
            {
                if (reader.Read())
                {
                    client.VIPDays.VIPLevelDays = reader.ReadByte("VIPLevelDays");
                    client.VIPDays.OldVIPLevel = reader.ReadByte("OldVIPLevel");
                    client.VIPDays.VIPStartON = DateTime.FromBinary(reader.ReadInt64("VIPStartON"));
                    client.VIPDays.VIPEndAt = DateTime.FromBinary(reader.ReadInt64("VIPEndAt"));
                }
                else
                {
                    using (var cmds = new MySqlCommand(MySqlCommandType.INSERT))
                        cmds.Insert("vipdays").Insert("Name", client.Entity.Name).Insert("UID", client.Entity.UID).Execute();
                }
            }
        }
        public static void SAVE(Client.GameState client)
        {
            xConquer.Database.MySqlCommand cmd = new xConquer.Database.MySqlCommand(xConquer.Database.MySqlCommandType.UPDATE);
            cmd.Update("vipdays")
           .Set("VIPLevelDays", client.VIPDays.VIPLevelDays)
           .Set("OldVIPLevel", client.VIPDays.OldVIPLevel)
           .Set("VIPStartON", client.VIPDays.VIPStartON)
           .Set("VIPEndAt", client.VIPDays.VIPEndAt);
            cmd.Where("UID", client.Entity.UID);
            cmd.Execute();
        }
      
    }
}

Em GameState ou GameClient (Depende da source), adicione:
Código:
public Game.VIPDays VIPDays = new Game.VIPDays();
Em World.cs > CharactersCallback coloque:
Código:
#region VIPDays Check
     /*
         * All Rights Reserved © Ąbdṳallah Môhsen
         */
            if (client.VIPDays.VIPLevelDays > 0 && DateTime.Now >= client.VIPDays.VIPEndAt)
            {
                client.Entity.VIPLevel = client.VIPDays.OldVIPLevel;
                client.VIPDays.VIPLevelDays = 0;
                client.VIPDays.VIPStartON = Convert.ToDateTime(0);
                client.VIPDays.VIPEndAt = Convert.ToDateTime(0);
                VIPDays.SAVE(client);
                client.Send("Your VIP is end, Try to get other item and unlock it.");
            }
            #endregion  
Na PacketHandler Procure por
Código:
Npcs dialog = new Npcs(client);
e adicione:
Código:
#region VIIPDays.
     /*
         * All Rights Reserved © Ąbdṳallah Môhsen
         */
                                if (client.ActiveNpc == 3004121)
                                {
                                    if (client.Inventory.Contains(client.ActiveNpc, 1))
                                    {
                                        if (req.OptionID == 1)
                                        {
                                            if (client.Entity.VIPLevel > 3)
                                            {
                                                dialog.Text("You are VIPLevel " + client.Entity.VIPLevel + ", So you can't unlock this item.");
                                                dialog.Option("Ohh, Sorry.", 255);
                                                dialog.Send();
                                            }
                                            else
                                            {
                                                if (client.Entity.VIPLevel < 4)
                                                {
                                                    dialog.Text("Are you sure you want to unlock this item.");
                                                    dialog.Option("Yes I'm sure.", 2);
                                                    dialog.Send();
                                                }
                                            }
                                        }
                                        if (req.OptionID == 2)
                                        {
                                            if (client.Entity.VIPLevel < 4)
                                            {
                                                client.VIPDays.OldVIPLevel = client.Entity.VIPLevel;//هنا بيحفظ الفي اي بي القديم بتاعك علشان بعد الاسبوع يرجعهولك تاني
                                                client.VIPDays.VIPLevelDays = 4;//هنا بيديلك الفي اي بي الي موجود في الشنه والي انت هتتحدو
                                                client.VIPDays.VIPStartON = DateTime.Now;//هنا بيسجل بدايه الاسبوع بتاعك من وقت فتح الشنطه
                                                client.VIPDays.VIPEndAt = DateTime.Now.AddDays(7);//هنا بيحدد الوقت الي هيخلص فيه الفي اي بي ويرجعلك الفي اي بي القديم
                                                client.Entity.VIPLevel = client.VIPDays.VIPLevelDays;//هنا بيديلك الفي اي بي
                                                client.Inventory.Remove(client.ActiveNpc, 1);
                                                client.Send("Congratulations " + client.Entity.Name + ", You have got VIPLevel " + client.VIPDays.VIPLevelDays + " to " + client.VIPDays.VIPEndAt + ".");
                                                VIPDays.SAVE(client);
                                            }
                                        }
                                    }
                                }
                                #endregion

Agora pesquise por
Código:
tatic void UseItem
e adicione
Código:
#region VIP7Days
                case 3004121:
                    {
                        Npcs dialog = new Npcs(client);
                        dialog.Text("Hello " + client.Entity.Name + ", There is VIPLevel 4 For 7 Days. If you want to get it just confirm.");
                        dialog.Option("Confirm.", 1);
                        dialog.Option("Cancel.", 255);
                        dialog.Avatar(318);
                        dialog.Send();
                        client.ActiveNpc = item.ID;
                        break;
                    }
                #endregion
NA EntityTable pesquise por
Código:
client.Entity.FullyLoaded = true;
e adicione
Código:
Game.VIPDays.READ(client);
Em GameState ou GameClient Procure por
Código:
Private void ShutDown()
e Embaixo de
Código:
Kernel.GamePool.Remove(Entity.UID);
adicione :
Código:
VIPDays.SAVE(this);


Sql para a Database:
Código:
/*
Navicat MySQL Data Transfer
Source Host     : localhost:3306
Source Database : cq
Target Host     : localhost:3306
Target Database : cq
Date: 29/12/2016 01:11:26 ã
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for vipdays
-- ----------------------------
DROP TABLE IF EXISTS `vipdays`;
CREATE TABLE `vipdays` (
  `Name` varchar(16) NOT NULL default '',
  `UID` bigint(18) unsigned NOT NULL default '0',
  `VIPLevelDays` tinyint(5) unsigned default '0',
  `OldVIPLevel` tinyint(5) unsigned default '0',
  `VIPStartON` bigint(16) default '0',
  `VIPEndAt` bigint(16) default '0',
  PRIMARY KEY  (`UID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of vipdays
-- ----------------------------





_________________
Grupo do Criando um conquer no Facebook : Clique Aqui
Facebook: Criando um Conquer
Canal no youtube : Clique aqui
avatar
FelipeXP
Administrador
Administrador

Mensagens : 317
Data de inscrição : 28/05/2014

Ver perfil do usuário https://www.youtube.com/channel/UCOmLJd3M1OSrMmlcR7UGlhw

Voltar ao Topo Ir em baixo

Re: Sistema de Vip com dias para acabar

Mensagem por devid019 em Ter Ago 01, 2017 4:21 pm

crc felipe fico toop mano vlw

devid019
Membro
Membro

Mensagens : 18
Data de inscrição : 21/02/2016

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Sistema de Vip com dias para acabar

Mensagem por devid019 em Ter Ago 01, 2017 5:21 pm

felipe estou com  o unico problema no  Program.GamePoo()
na minha soucer nao tem esse GamePool)

devid019
Membro
Membro

Mensagens : 18
Data de inscrição : 21/02/2016

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Sistema de Vip com dias para acabar

Mensagem por devid019 em Ter Ago 01, 2017 5:39 pm


devid019
Membro
Membro

Mensagens : 18
Data de inscrição : 21/02/2016

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Sistema de Vip com dias para acabar

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum