HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 30.09.2015, 00:30
Tray228
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами: 5884065

Репутация: 0
По умолчанию

Цитата:
Сообщение от Dark_Knight  

В старом или новом от фипа?
в новом
 
Ответить с цитированием

  #2  
Старый 30.09.2015, 04:58
Sire Like
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами: 6086011

Репутация: 108
По умолчанию

Цитата:
Сообщение от Tray228  

в новом
хз, мож не то

"Зарегай ракнет хук с типом RAKNET_HOOK_TYPE_INCOMING_RPC и в нём лови которые нужно, return false и пакет не пропустит"

(с) Сэр Опкодер
 
Ответить с цитированием

  #3  
Старый 30.09.2015, 06:33
CarLCas
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами: 6755146

Репутация: 78
По умолчанию

Цитата:
Сообщение от A.Tornerro  

хз, мож не то
"Зарегай ракнет хук с типом RAKNET_HOOK_TYPE_INCOMING_RPC и в нём лови которые нужно, return false и пакет не пропустит"
(с) Сэр Опкодер
То, только не обязательно RAKNET_HOOK_TYPE_INCOMING_RPC, всё будет зависеть от того какой пакет/RPC тебе надо проигнорировать.
 
Ответить с цитированием

  #4  
Старый 30.09.2015, 06:31
CarLCas
Участник форума
Регистрация: 12.07.2013
Сообщений: 161
С нами: 6755146

Репутация: 78
По умолчанию

Цитата:
Сообщение от KYRLYK  

Вот кусок плагина. При нажатии на P должно открыться меню, но оно не открывается.
C++:





Код:
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
GAME
==
nullptr
)
return
;
if
(
GAME
->
GetSystemState
(
)
!=
eSystemState
::
GS_PLAYING_GAME
)
return
;
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"uinfo"
,
cmd_show_info_player
)
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"utp"
,
utp
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
0xFF3300FF
,
"запущен!"
)
;
SF
->
LogConsole
(
" Loaded!"
)
;
twBar_Main
=
TwNewBar
(
"SF"
)
;
TwDefine
(
"'SF Ultimate' color='0 224 160' size='250 400' text=white position='5 400' position='200 200'"
)
;
TwAddButton
(
twBar_Main
,
"Player"
,
player
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Vehicles"
,
veh
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Nops"
,
nops
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Other"
,
other
,
NULL
,
""
)
;
TwAddButton
(
twBar_Main
,
"Help"
,
uhelp
,
NULL
,
""
)
;
bar
=
TwNewBar
(
"S"
)
;
TwAddButton
(
bar
,
"Info 1.1"
,
NULL
,
NULL
,
" label='/uinfo  - player info' "
)
;
TwAddButton
(
bar
,
"Info 1.2"
,
NULL
,
NULL
,
" label='/' "
)
;
TwAddButton
(
bar
,
"Info 1.3"
,
NULL
,
NULL
,
" label='SF' "
)
;
init
=
true
;
}
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
'P'
)
)
{
Active
^=
true
;
}
}
 
Ответить с цитированием

  #5  
Старый 30.09.2015, 10:29
Gouvere
Новичок
Регистрация: 14.09.2015
Сообщений: 13
С нами: 5611644

Репутация: 0
По умолчанию

Как игровое время изменить? Ну там день, ночь, утро и т.д.
 
Ответить с цитированием

  #6  
Старый 30.09.2015, 10:36
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

Репутация: 28
По умолчанию

Цитата:
Сообщение от Gouvere  

Как игровое время изменить? Ну там день, ночь, утро и т.д.
Через память.
 
Ответить с цитированием

  #7  
Старый 30.09.2015, 10:39
Gouvere
Новичок
Регистрация: 14.09.2015
Сообщений: 13
С нами: 5611644

Репутация: 0
По умолчанию

Цитата:
Сообщение от Woofing Giraffe  

Через память.
Я не умею с памятью работать, можно код?
 
Ответить с цитированием

  #8  
Старый 30.09.2015, 19:23
Woofing Giraffe
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами: 5744580

Репутация: 28
По умолчанию

Цитата:
Сообщение от Gouvere  

Я не умею с памятью работать, можно код?
Код:





Код:
#include 
#include 
#include 
#include 
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS *SF = new SAMPFUNCS();
bool Status;
char newtime[28];
DWORD  ThreadID;
HANDLE hThread;

void __stdcall AnotherThread(void)
{
    HANDLE ProcessHandle = GetCurrentProcess();
    while (true)
    {
        if (Status)
        {
            WriteProcessMemory(ProcessHandle, (LPVOID)0xB70153, newtime, 1, 0);
        }
    }
    TerminateThread(hThread, 0);
    CloseHandle(hThread);
}

void CALLBACK cmd(std::string param)
{
    if (param.empty()) return;
    int time;
    if (!sscanf(param.c_str(), "%d", &time) || time > 23 || time getSAMP()->getChat()->AddChatMessage(0xB0B0B0, "Используй: /settime [Время (От 0 до 23)].");
    sprintf(newtime, "%d", time);
    Status = true;
}

void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->registerChatCommand("settime", cmd);
        hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&AnotherThread, NULL, 0, &ThreadID);
        init = true;
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}


Код конечно та ещё херня, но рабочий.
 
Ответить с цитированием

  #9  
Старый 30.09.2015, 20:06
Gouvere
Новичок
Регистрация: 14.09.2015
Сообщений: 13
С нами: 5611644

Репутация: 0
По умолчанию

Цитата:
Сообщение от Woofing Giraffe  

Код:





Код:
#include 
#include 
#include 
#include 
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS *SF = new SAMPFUNCS();
bool Status;
char newtime[28];
DWORD  ThreadID;
HANDLE hThread;

void __stdcall AnotherThread(void)
{
    HANDLE ProcessHandle = GetCurrentProcess();
    while (true)
    {
        if (Status)
        {
            WriteProcessMemory(ProcessHandle, (LPVOID)0xB70153, newtime, 1, 0);
        }
    }
    TerminateThread(hThread, 0);
    CloseHandle(hThread);
}

void CALLBACK cmd(std::string param)
{
    if (param.empty()) return;
    int time;
    if (!sscanf(param.c_str(), "%d", &time) || time > 23 || time getSAMP()->getChat()->AddChatMessage(0xB0B0B0, "Используй: /settime [Время (От 0 до 23)].");
    sprintf(newtime, "%d", time);
    Status = true;
}

void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        if (GAME == nullptr)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getSAMP()->registerChatCommand("settime", cmd);
        hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&AnotherThread, NULL, 0, &ThreadID);
        init = true;
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    switch (dwReasonForCall)
    {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule);
            break;
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}


Код конечно та ещё херня, но рабочий.
Спасибо. Но он как-то неправильно работает. При смене времени вылетают варнинги, нельзя сменить время второй раз, а потом у меня вообще крашнуло.
 
Ответить с цитированием

  #10  
Старый 30.09.2015, 18:55
Tray228
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами: 5884065

Репутация: 0
По умолчанию

Как сделать перезаход на сервер при этом поменя имя через команду например "sname [nick]"
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.