Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 00:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



CMD - Während Benutzereingabe Text hinzufügen

Discussion on CMD - Während Benutzereingabe Text hinzufügen within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
V8II's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 475
Received Thanks: 130
CMD - Während Benutzereingabe Text hinzufügen

Hey,
Ich möchte mit dem CMD eine Art Konsole für meinen Server machen. Im CMD sollen alle Ereignisse gezeigt werden und wenn der User was schreibt sollen bei bestimmten Texten Funktionen ausgeführt werden.

Hier meine Funktionen:

Es funktioniert gut bis auf eine Macke:
Der User kann nur schreiben wenn CMDread ausgeführt wird, allerdings während dieser Befehl ausgeführt wird kann der Server nicht weiterlaufen was zu Laggs führt. Wenn CMDread jedoch nicht ausgeführt wird kann der User im CMD nicht schreiben ...

Hat jemand eine Lösung?
V8II is offline  
Old 08/23/2011, 15:59   #2
 
ZeraPain's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
warum baust du dir nicht einfach eine eigene konsole?
ZeraPain is offline  
Thanks
1 User
Old 08/24/2011, 08:31   #3
 
V8II's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 475
Received Thanks: 130
Habe ich bereits, sie sieht nur etwas **** aus =)
Ich möchte nur auf sie zurückgreifen falls ich weder hier noch auf der deutschen Autoit Seite eine Lösung finde/bekomme.
V8II is offline  
Old 08/24/2011, 10:49   #4
 
ZeraPain's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
hm okay, verständlich ;-)

ich weiß nicht genau was du machen willst aber für konsolen anwendungen würde ich einfach mal spontan C# vorschlagen.

wenn es für dich nicht zu aufwändig ist (die basics sind ja nicht schwer) dann kannst du ja einfach deinen code kurz in c# implementieren.

ansonsten wüsste ich auch nicht genau wie das in autoit funktioniert.

ein beispiel würde so aussehen:

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication
{
    class Program
    {
        private static bool exit;

        static void Main(string[] args)
        {
            Console.WriteLine("bla blub Server Konsole ;-)");

            while (!exit)
            {
                switch (Console.ReadLine())
                {
                    case "test":
                        Console.WriteLine("-> bla blub test cmd");
                        break;
                    case "exit":
                        exit = true;
                        break;
                }
            }
        }
    }
}
ZeraPain is offline  
Thanks
1 User
Old 08/24/2011, 11:18   #5
 
BlackHybrid's Avatar
 
elite*gold: 52
The Black Market: 101/0/0
Join Date: Oct 2010
Posts: 1,998
Received Thanks: 389
Also ich würde es dir auch raten eine eigene Console zu bauen. Weil ob das sonst am ende wirklich leistungseffizient wird mag ich zu bezweifeln.
BlackHybrid is offline  
Old 08/24/2011, 13:00   #6
 
V8II's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 475
Received Thanks: 130
@ZeraPain Okay danke.
Könntest du mir noch sagen wie man in c# in eine Ini-Datei schreibt und sie ausliest?
Ich habe vor ein Programm mit C# zu machen das eben nur die Konsole erstellt. Befehle/Eingaben sollen per Ini-datei weitergegeben werden ...

Edit: Gibt es einen alternativen Editor & Compiler zu Visual C# 2010 ? Meine 30 Tage Testversion ist
schon abgelaufen -.-

Edit2: Habe einen Compiler gefunden der sogar Platformunabhängigkeit verspricht! Das Prog läuft dann also auch auf Linux usw. Mal schauen ob der was taugt!

Edit3: Er taugt zwar was allerdings werden im mitgelieferten Editor keine Befehle vorgeschlagen was mir als Anfänger ziemlich fehlt.

Edit 4 =): Okay habe jetzt wieder Visual C#
Allerdings genau das selbe Problem: Bei dem Teil in deinem Programm wo das Programm auf eine eingabe wartet, sprich
PHP Code:
 switch (Console.ReadLine()) 
Kann der Server nicht weiterlaufen/Kann das Programm nichts in die Konsole schreiben bis der User was eingegeben hat.
V8II is offline  
Old 08/24/2011, 15:14   #7
 
ZeraPain's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
Also eine ini kannst du z.b. so verwalten:

Code:
using System;
using System.Runtime.InteropServices;
using System.Text;

namespace ZPBot.Common
{
    class IniFile
    {
        private string path;

        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section,
            string key, string val, string filePath);
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section,
                 string key, string def, StringBuilder retVal,
            int size, string filePath);

        public IniFile(string INIPath)
        {
            path = INIPath;
        }

        public void Write(string Section, string Key, string Value)
        {
            WritePrivateProfileString(Section, Key, Value, path);
        }

        public string Read(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section, Key, "", temp,
                                            255, path);

            return temp.ToString();
        }

        public bool Bool(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section, Key, "", temp,
                                            255, path);

            if (temp.ToString() == true.ToString())
                return true;
            else
                return false;
        }

        public void RemoveSection(string pSection)
        {
            WritePrivateProfileString(pSection, null, null, path);
        }
    }
}
Quote:
Originally Posted by V8II View Post
Edit 4 =): Okay habe jetzt wieder Visual C#
Allerdings genau das selbe Problem: Bei dem Teil in deinem Programm wo das Programm auf eine eingabe wartet, sprich
PHP Code:
 switch (Console.ReadLine()) 
Kann der Server nicht weiterlaufen/Kann das Programm nichts in die Konsole schreiben bis der User was eingegeben hat.
das ist das gute an C#. da lässt sich leicht(er) abhilfe schaffen z.b. mit threads ;-)

wenn du willst kann ich dir das auch noch erklären.
ansonsten findest du bestimmt auch ein tutorial irgendwo
ZeraPain is offline  
Thanks
1 User
Old 08/24/2011, 16:13   #8
 
V8II's Avatar
 
elite*gold: 0
Join Date: Jul 2010
Posts: 475
Received Thanks: 130
Okay, ein fettes Dankeschön!
Wie "mache" ich jetzt am leichtesten einen 2ten. Thread? Habe bisschen gesucht aber grundlegend nur Bahnhof verstanden ...
V8II is offline  
Old 08/24/2011, 16:43   #9


 
buFFy!'s Avatar
 
elite*gold: 1826
Join Date: Mar 2009
Posts: 4,310
Received Thanks: 6,283
buFFy! is offline  
Thanks
1 User
Old 08/24/2011, 16:58   #10
 
ZeraPain's Avatar
 
elite*gold: 0
Join Date: Jan 2010
Posts: 360
Received Thanks: 249
sowas z.b.

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace ConsoleApplication
{
    class Program
    {
        private static bool exit;
        private static Thread ConsoleInput;

        static void Main(string[] args)
        {
            Console.WriteLine("bla blub Server Konsole ;-)");

            ConsoleInput = new Thread(ReadConsoleInput);
            ConsoleInput.Start();

            while (!exit)
            {
                Console.WriteLine("Main Thread");
                Thread.Sleep(2000);
            }
        }

        private static void ReadConsoleInput()
        {
            while (!exit)
            {
                switch (Console.ReadLine())
                {
                    case "test":
                        Console.WriteLine("-> bla blub test cmd");
                        break;
                    case "exit":
                        exit = true;
                        break;
                }
            }
        }
    }
}
ZeraPain is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Text-TuT] Client Text und Beschriftungen
09/19/2011 - Flyff Private Server - 6 Replies
Hey ElitePvPer's, heute zeige ich euch; - wie man den Text und/oder die Beschriftungen ingame ändert. - Wie man die Farbe des Textes und/oder der Beschriftung ändert. Wir öffnen zu erst die im Resource-Ordner enthaltene textclient.txt.txt. Nehmen wir mal an wir möchten die Farbe und den Text von "Du hast XXX Penya erhalten (Gesamt: XXX Penya)" ändern. Wir suchen dazu(+) in der textClient.txt.txt nach "Penya". Direkt der 2te String ist es: IDS_TEXTCLIENT_INC_000185 Du hast %s Penya...
[HOW-TO] Questbefehle für farbigen text hinzufügen
03/22/2011 - Metin2 PServer Guides & Strategies - 9 Replies
Tag Leute, Ihr wisst ja, dass ihr in quests mit dem Befehl say() gräulichen Text an den User ausgeben kann, und mit say_reward() roten. Ihr könnt solche Befehle hinzufügen, indem ihr einen Eintrag in der questlib.lua macht. Dieser kann beispielsweise so aussehen: function say_blau(text) say(color256(56, 140, 244)..text..color256(196, 196, 196)) end , wobei say_blau() meine neue Funktion ist, die den Text, den man ihr vorgibt in blau anzeigt. Die blaue Farbe ist im RGB Format vor dem...
[How to]Npc text hinzufügen
03/30/2010 - Metin2 Private Server - 7 Replies
Huhu ich weiß nich ob es sowas schon gibt also mach ichs einfach ma Also ich will das bei einem NPC hinzufügen des normal nichts sagt zB http://www.imgbox.de/users/public/images/i46830w4 4.png das nur bei Kriegergeist, der normal schweigt :) 1. FileZilla öffnen 2. Verbinden 3./usr/rain/channel/share_data/locale/hongkong/qu est 4. locale_big5.lua öffnen und bis zu dem scrollen http://www.imgbox.de/users/public/thumbnails/k518 80z105_t.gif
Während Maintance in RO
07/18/2006 - RO Exploits, Hacks, Bots & Guides - 7 Replies
© by anonymous Hi, viele kennen das, ist grad Maintance auf euRO und man kommt nicht in RO rein, weil der Patchserver es nicht zulässt. Nungut, greifen halt viele zu einer Hexed Exe, allerdings haben die, die neusten Updates nicht und man weiß nicht ob man stecken bleibt oder was auch immer. Dabei gibt es aber eine ganz einfache Methode RO zu starten ohne den Patchserver zu umgehen - man braucht nichtmal ne Hexed Exe dafür. Ihr müsst einfach in euren RO Ordner die Datei...



All times are GMT +2. The time now is 00:25.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.