public static void FireOnCallbackReceived(object sender, OnCallbackReceivedEventArgs args)
 {
     if (OnCallbackReceived != null) OnCallbackReceived(sender, args);
 }
예제 #2
0
        public static void OnCallbackReceived(object sender, OnCallbackReceivedEventArgs args)
        {
            args.Data.Pos = 0;
            if (String.Compare(args.CallbackName, "OnDialogResponse") == 0)
            {
                Samp.Util.Log.Debug("OnDialogResponse");
                int playerid = args.Data.ReadInt32();
                int dialogid = args.Data.ReadInt32();
                int response = args.Data.ReadInt32();
                int listitem = args.Data.ReadInt32();
                string inputtext = args.Data.ReadString();
                Samp.API.Player player = Player.GetPlayerByID(playerid);
                Samp.API.Dialog dialog = player.dialog;
                player.dialog = null;
                if (OnDialogResponse != null) OnDialogResponse(null, new OnDialogResponseEventArgs(player, dialog, response, listitem, inputtext));

            }
        }
예제 #3
0
        public static void OnCallbackReceived(object sender, OnCallbackReceivedEventArgs args)
        {
            args.Data.Pos = 0;
            Log.Debug("OnCallbackReceived: " + args.CallbackName);
            if (String.Compare(args.CallbackName, "OnPlayerConnect") == 0)
            {
                int playerid = args.Data.ReadInt32();
                Player player = World.GetPlayerById(playerid);
                Log.Debug("Player (" + playerid + ") " + player.Name + " Connected");
                if (OnPlayerConnect != null) OnPlayerConnect(null, new OnPlayerConnectEventArgs(player));
            }

            if (String.Compare(args.CallbackName, "OnPlayerDisconnect") == 0)
            {
                int playerid = args.Data.ReadInt32();
                Player player = World.GetPlayerById(playerid);
                Log.Debug("Player (" + playerid + ") " + player.Name + " Disconnected");
                if (OnPlayerDisconnect != null) OnPlayerDisconnect(null, new OnPlayerConnectEventArgs(player));
                RemovePlayer(player);
            }

            if (String.Compare(args.CallbackName, "OnPlayerCommandText") == 0)
            {
                int playerid = args.Data.ReadInt32();
                Samp.API.Player player = Player.GetPlayerByID(playerid);
                string command = args.Data.ReadString();
                if (OnPlayerCommandText != null) OnPlayerCommandText(null, new OnPlayerCommandTextEventArgs(player, command));
            }

            if (String.Compare(args.CallbackName, "OnPlayerKeyStateChange") == 0)
            {
                int playerid = args.Data.ReadInt32();
                //uint newkeys = args.Data.ReadUInt32(); // no...
                //uint oldkeys = args.Data.ReadUInt32();
                //int newkeys = args.Data.ReadInt32(); // also no...
                //int oldkeys = args.Data.ReadInt32();
                int newkeys = Math.Abs(args.Data.ReadInt32()); // erm... this seems to match http://wiki.sa-mp.com/wiki/GetPlayerKeys... WTF?
                int oldkeys = Math.Abs(args.Data.ReadInt32());

                Player player = Player.GetPlayerByID(playerid);
                player.Keys = newkeys;
                if (OnPlayerKeyStateChange != null) OnPlayerKeyStateChange(null, new OnPlayerKeyStateChangeEventArgs(player, newkeys, oldkeys));

                int key = Math.Abs(newkeys - oldkeys);

                if (Player.IsKeyJustPressed(key,newkeys,oldkeys))
                {
                    if (OnPlayerKeyPressed != null) OnPlayerKeyPressed(null, new OnPlayerKeyPressedEventArgs(player, key));
                }
                else
                {
                    if (OnPlayerKeyReleased != null) OnPlayerKeyReleased(null, new OnPlayerKeyPressedEventArgs(player, key));
                }
            }

            if (String.Compare(args.CallbackName, "OnPlayerDeath") == 0)
            {
                int playerid = args.Data.ReadInt32();
                int killerid = args.Data.ReadInt32();
                Player player = Player.GetPlayerByID(playerid);
                Player killer = Player.GetPlayerByID(killerid);
                if (OnPlayerDeath != null) OnPlayerDeath(null, new OnPlayerDeathEventArgs(player, killer));
            }
        }