Question

Приветствую. Вообщем, рассказываю проблему... Я создал лаунчер для захода на свой сервер, но есть одна проблема, у меня в лаунчере есть место для ввода ника, но когда я например вставляю любой ник, то в мультиплеере, через который всё запускается, не изменяется ник, а остаётся старый. Кто знаете, как помочь?

Заметка от DEST , создано

Не нужно дублировать темы, решайте вопрос в рамках одной. Согласно правилам, Вы можете "поднимать" свою тему в списке, но не раньше, чем через 24 часа после последнего сообщения.

Share this post


Link to post

13 answers to this question

  • 0

ТЕМУ МОЖНО ЗАКРЫТЬ!
Решение: поменял в реесторе путь на версию крмп 0.3.7 (Раньше был на 0.3.e, поэтому не заменялся ник).

Share this post


Link to post
  • 0

прикладывайте код из лаунчера, как происходит запуск и как выставляется никк

Share this post


Link to post
  • 0

Ник нужно в реестре менять

Share this post


Link to post
  • 0
11 часов назад, keyl1337 сказал:

Ник нужно в реестре менять

А можете рассказать, где и как? 

12 часов назад, DEST сказал:

прикладывайте код из лаунчера, как происходит запуск и как выставляется никк

Спойлер

<?php
namespace app\forms; // НЕ ТРОГАТЬ


use bundle\windows\Registry; // НЕ ТРОГАТЬ
use bundle\windows\Windows; // НЕ ТРОГАТЬ
use std, gui, framework, app; // НЕ ТРОГАТЬ

class MainForm extends AbstractForm
{
    /**
     * @event show 
     */
    function doShow(UXWindowEvent $e = null) // При открытии
    {
        $nick_name = Registry::of('HKEY_CURRENT_USER\Software\www.gtasrv.ru\CR-MP\GenerationC')->read('player_name')->value; // НЕ ТРОГАТЬ
        Element::setText($this->edit, $nick_name); // НЕ ТРОГАТЬ
        
        $game_path = Registry::of('HKEY_CURRENT_USER\Software\www.gtasrv.ru\CR-MP\GenerationC')->read('game_path')->value; // НЕ ТРОГАТЬ
        if($game_path) // НЕ ТРОГАТЬ
            return Element::setText($this->label3, 'Путь указан'); // НЕ ТРОГАТЬ
    }

    /**
     * @event button6.click-Left 
     */
    function doButton6ClickLeft(UXMouseEvent $e = null) // Закрыть
    {    
        app()->shutdown(); // НЕ ТРОГАТЬ
    }

    /**
     * @event button7.click-Left 
     */
    function doButton7ClickLeft(UXMouseEvent $e = null) // Свернуть
    {    
        app()->minimizeForm('MainForm'); // НЕ ТРОГАТЬ
    }

    /**
     * @event buttonAlt.click-Left 
     */
    function doButtonAltClickLeft(UXMouseEvent $e = null) // Играть
    {
        $ip = '213.159.211.115'; // Ваш IP адрес
        $port = '3449'; // Порт вашего IP адреса
        
        $game_path = Registry::of('HKEY_CURRENT_USER\Software\www.gtasrv.ru\CR-MP\GenerationC')->read('game_path')->value; // НЕ ТРОГАТЬ
        $player_name = $this->edit->text; // НЕ ТРОГАТЬ
        
        Registry::of('HKEY_CURRENT_USER\Software\www.gtasrv.ru\CR-MP\GenerationC')->add('player_name', $player_name); // НЕ ТРОГАТЬ
        execute("$game_path $ip:$port", false); // НЕ ТРОГАТЬ
        app()->shutdown(); // НЕ ТРОГАТЬ
    }

    /**
     * @event button.click-Left 
     */
    function doButtonClickLeft(UXMouseEvent $e = null) // ВКонтакте
    {
        browse('https://vk.com/russ_pawn_help'); // укажите ссылку на вашу группу
    }

    /**
     * @event button3.click-Left 
     */
    function doButton3ClickLeft(UXMouseEvent $e = null) // Сайт
    {    
        browse('https://vk.com/russ_pawn_help'); // укажите ссылку на ваш сайт
    }

    
    /**
     * @event button5.click-Left 
     */
    function doButton5ClickLeft(UXMouseEvent $e = null) // Форум
    {    
        browse('https://vk.com/scriptman'); // укажите ссылку на ваш форум
    }

}

 

 

Edited by DEST

Заметка от DEST , создано

3.2. Код больше 10 строк брать еще и под спойлер. Как это сделать рассказано в разделе "FAQ"

Устное предупреждение.

Share this post


Link to post
  • 0

Вырезал из своих наработок, пользуйтесь (C#)

 Process Gta_Samp = new Process();
                ProcessStartInfo Gta_Sampinfo = new ProcessStartInfo(@"gta_sa.exe", string.Format("-c -n {0} -h {1} -p {2}", NameBox.Text, ip, port));
                Gta_Samp.StartInfo = Gta_Sampinfo;
                Gta_Samp.Start();
                IntPtr procHandle = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, Gta_Samp.Id);
                IntPtr loadLibraryAddr = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
                string dllName = "samp.dll";
                IntPtr allocMemAddress = VirtualAllocEx(procHandle, IntPtr.Zero, (uint)((dllName.Length + 1) * Marshal.SizeOf(typeof(char))), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
                UIntPtr bytesWritten;
                WriteProcessMemory(procHandle, allocMemAddress, Encoding.Default.GetBytes(dllName), (uint)((dllName.Length + 1) * Marshal.SizeOf(typeof(char))), out bytesWritten);
                CreateRemoteThread(procHandle, IntPtr.Zero, 0, loadLibraryAddr, allocMemAddress, 0, IntPtr.Zero);

 

Share this post


Link to post
  • 0

@MuhammadPawn я так понял, что у автора код на пхп написан, вряд ли c# ему подойдет. 

@vladok179 так тут трогать ничего нельзя

Share this post


Link to post
  • 0
5 часов назад, vladok179 сказал:

$nick_name = Registry::of('HKEY_CURRENT_USER\Software\www.gtasrv.ru\CR-MP\GenerationC')->read('player_name')->value; // НЕ ТРОГАТЬ Element::setText($this->edit, $nick_name); // НЕ ТРОГАТЬ

Вот чтение ника с реестра, делай такую же запись ника в реестр, лол

Share this post


Link to post
  • 0

@DEST Да на php смешанный с JS, но мне прост лень было объяснить что и через него можно запустить файл gta_sa.exe с параметрами из моего кода

Share this post


Link to post
  • 0

@MuhammadPawn не думаю, что в этой "среде" на пхп есть функции из WinApi (GetProcAddress, VirtualAllocEx, и пр)

Share this post


Link to post
  • 0

@DEST Ну есть ж подобные функции, только называются по другому (как то давно делал и были такие функции там)

Share this post


Link to post
  • 0

@MuhammadPawn может быть, другой вопрос в том, что кто-то и когда-то. 

Касаемо темы: даже если ТС и добавит функционал запуска игры, то вряд ли этого будет достаточно для его приложения. Поэтому, @vladok179, если хотите самостоятельно это все изучать (и потратить достаточно большое кол-во времени), то необходимо начинать с самого начала (изучение программирования), а не с середины (написание Desktop-приложения). Если цель - приложение, то лучше закажите его у фрилансеров. 

Share this post


Link to post
  • 0
12 часов назад, DEST сказал:

@MuhammadPawn не думаю, что в этой "среде" на пхп есть функции из WinApi (GetProcAddress, VirtualAllocEx, и пр)

Это Devel Next, Женя. Я вангую, у меня этот слитый лаунчер был. И вроде это php, но ещё исп. JS.

Share this post


Link to post
  • 0
23 минуты назад, Nekit_Krut18 сказал:

Это Devel Next, Женя. Я вангую, у меня этот слитый лаунчер был. И вроде это php, но ещё исп. JS.

Если это официальный сайт http://develnext.org, то последняя версия была выпущена 31.10.2017. Я думаю, что не стоит пользоваться продуктом, который не обновляется так долго. 

Да и разрабатывается, как я понял, одним человеком. 

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • MetaLife Online
      By MetaLife Online
      Привествую! писал код. проверил работу, в БД отправилось информация криво 
      потом добавил к P_NICK[MAX_PLAYER_NAME] для того чтобы все было окей. Но после этого данные вообще не отпровляються и не показываеться %s. пару раз удалял и не помогло не чего 
      enum PLAYER_INFO {     P_ID,     P_NICK[MAX_PLAYER_NAME],     P_PASS,     P_GENDER,     P_SKIN,     P_LVL, };