Wątek zablokowany 2014-11-29 19:40 przez somekind.

2 komendy. Nie mogę wpisać komendy nr 2, gdy nie wpisałem komendy nr 1

0

Jest to kod pod tshock. Nie mogę wpisać komendy nr 2, gdy nie wpisałem jeszcze pierwszej.

             {

                Commands.ChatCommands.Add(new Command("", komenda1, "komenda1"));
            }
        }



        private void komenda1(CommandArgs args)
        {

            if (args.Player != null)
            {

                {
cos tam cos tam
     }
}


            {

                Commands.ChatCommands.Add(new Command("", komenda2, "komenda2"));
            }
        }



        private void komenda2(CommandArgs args)
        {

            if (args.Player != null)
            {

                {
ble ble ble
}

W grze nie mogę wpisać najpierw komendy2, tylko muszę po kolei, najpierw 2 a potem 1.
Jak to naprawić? Abym mógł wpisać 1 i 2 kiedy tylko chcę?

1

Bo musisz zrobić tak:

{
	staratata 
	{
		Commands.ChatCommands.Add(new Command("", komenda1, "komenda1"));
	}
	cos tam cos tam
	{
		Commands.ChatCommands.Add(new Command("", komenda2, "komenda2"));
	}
	ble ble ble
}
0

Wtedy słowo komenda1 podkreśla się na czerwono i pisze "The name 'komenda1' does not exist in the current contex"
I inne słowa też się podświetlają na czerwono z różnymi opisami

0

Już naprawiłem, dzięki wszystkim.

0

Jednak nie naprawiłem. Powracam do pytania. PLZ pomóżcie

0

Właśnie zauważyłem że napisałeś { ble ble }
Ale nie mogę wstawić } na samym końcu, gdy kończą się te komendy, bo ostatnie } } } } się podświetla i ten pierwszy { nie widzi tego jednego }

1

Może pokaż więcej kodu z tym co się kryje pod bleble i sratatata, w tym całe metody czyli z nawiasem początkowym i końcowym.

0
using System;
using System.Linq;
using System.Text;
using System.Reflection;
using TShockAPI;
using System.Collections.Generic;
using Terraria;
using TerrariaApi;
using TerrariaApi.Server;
using Newtonsoft.Json;

namespace plugin
{

    [ApiVersion(1, 16)]

    public class SBW : TerrariaPlugin
    {

        public override Version Version
        {


             get { return Assembly.GetExecutingAssembly().GetName().Version; }


        }


    


        public override string Name
        {
            get { return "plugin"; }
        }


        public override string Author
        {
            get { return "autor"; }
        }


        public override string Description
        {
            get { return "Enjoy!"; }
        }


        public SBW(Main game)
            : base(game)
        {

            Order = 0;
        }



    
        public override void Initialize()
        {






            Commands.ChatCommands.Add(new Command("tshock.start1", komenda1, "komenda1"));

        }
        




         private void komenda1(CommandArgs args)
        {


          
            {
                args.Player.SendSuccessMessage("X");
            }

            
            {

                Commands.ChatCommands.Add(new Command("", komenda2, "komenda2"));
            }
        }


    
    
        private void komenda2(CommandArgs args)
        { 


            

                {
                    args.Player.SendSuccessMessage("X", Color.Aqua);
}

Dalej nie pokażę bo to strasznie długie, ale myślę, że wystarczy.

1

No i nadal nie wiadomo co robi komenda2.
Swoją drogą było by to krótsze gdybyś nie walił tyle enterów wszędzie.

0

komenda2 wyświetla tekst. Czyli w tym wypadku X

1

Czyli to co podałeś to jest cała metoda komenda2?

0

Tak.
A chodzi o to, że nie mogę wpisać kiedy chcę 2, tylko muszę po kolei. Najpierw 1 a potem 2

1

A przerzuć to

Commands.ChatCommands.Add(new Command("", komenda2, "komenda2"));

z komenda1 do Initialize

0

Możesz dać dokładniej?

(Tam jest więcej tego typu komend)

2

Ale co dokładniej?
Nie mam pojęcia co to jest ani co ty robisz. Ale wygląda na to że możesz użyć metody komenda1 ponieważ wcześniej została ona dodana do jakiejś kolekcji w Initialize.
Więc po prostu wrzuć do Initialize wszystkie takie Commands.ChatCommands.Add(new Command("", komenda2, "komenda2")); linijki

0

Właśnie, wzorowałem się na tym poradniku.

1

Więc według tego przykładu powinieneś mieć coś takiego:

using System;

using TShockAPI;

using Terraria;
using TerrariaApi;
using TerrariaApi.Server;

namespace Bunnies
{
    [ApiVersion(1, 14)]
    public class Bunnies : TerrariaPlugin
    {
        public override Version Version
        {
            get { return new Version("final"); }
        }
        public override string Name
        {
            get { return "BUNNIES"; }
        }
        public override string Author
        {
            get { return "Bunny Lovers"; }
        }
        public override string Description
        {
            get { return "Everyone wants bunnies!"; }
        }
        public Bunnies(Main game)
            : base(game)
        {
            Order = -4;
        }
        public override void Initialize()
        {
            Commands.ChatCommands.Add(new Command("", Bunny, "bunny"));
	    Commands.ChatCommands.Add(new Command("tshock.start1", komenda1, "komenda1"));
	    Commands.ChatCommands.Add(new Command("", komenda2, "komenda2"));
        }
        private void Bunny(CommandArgs args)
        {
            if (args.Player != null)
            {
                args.Player.SetBuff(40, 3600, true);
                args.Player.SendSuccessMessage("Welcome to bunny lovers!");
            }
        }
		  private void komenda1(CommandArgs args)
        {
            if (args.Player != null)
            {
                args.Player.SendSuccessMessage("X - komenda1", Color.Aqua);
            }
        }
		  private void komenda2(CommandArgs args)
        {
            if (args.Player != null)
            {
                args.Player.SendSuccessMessage("X - komenda2", Color.Aqua);
            }
        }
    }
}
0

Początek jest zmieniony aby działało na wersji 1.16, a nie 1.14

A resztę sprawdzę jutro. Mam nadzieję że zadziała;D

0

Działa! Dzięki:D

0

wstawianie blablabla w kodzie daje 100% gwarancję na wygranie konkursu na najgorsze niedopowiedziane pytanie...

0

Na przykład:

using System;

namespace Program
{
   class Program
   {
      public static void Main()
      {
         ble ble ble 
         startatat
      }
   }
}<-- tu podkreśla

co robię źle? :D :D :D

0

Zasadniczo w C# metody są składowymi klasy, nie przestrzeni nazw. Gdybyś przeczytał błąd, jestem pewna, że byś zrozumiał.

0

Wow, ale jesteście świetni. Problem został rozwiązany prawie tydzień temu, a wy nadal spamujecie. Nie ma to jak inteligencja panów wyżej na poziomie podstawówki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1