 |
|

31.12.2016, 13:59
|
|
Познающий
Регистрация: 26.12.2016
Сообщений: 61
С нами:
4936063
Репутация:
58
|
|
Сообщение от AWRage
SF->getSAMP()->getPlayers()->pLocalPlayer->Say();
if(key_pressed(W) && key_pressed(E))
}
Нет такой функции.
Может кто по поводу SF->getSAMP()->getInput()->EnableInput() всё же может кто подсказать?
Короче что происходит:
C++:
Код:
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
0x31
)
)
//нажимаю на 1
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
SetChatInputText
(
"text here"
)
;
SF
->
getSAMP
(
)
->
getInput
(
)
->
EnableInput
(
)
;
}
В итоге в чат идет text here1 и потом когда я нажимаю 1 во второй раз ничего не происходит, а когда в третий - уже снова идет вызов, такое чувство что из-за того что цифра 1 идет в чат не отпраляется событие keydown и только при 2 нажатии оно отправляется и выходит что на 3 раз уже при нажатии на 1 всё работает, как от этого избавиться?
Может есть ещё способ отслеживать нажатие клавиши и чтоб она в чат не шла?
UPD. Отправку цифры 1 в чат убрал через эмуляцию нажатия backspace, а вот почему после вызова EnableInput не работает снова вызов на цифру 1 пока не могу понять
|
|
|

02.01.2017, 03:06
|
|
Познающий
Регистрация: 26.12.2016
Сообщений: 61
С нами:
4936063
Репутация:
58
|
|
Может кто подсказать как поступить.
Делаю сейчас локальный DXUT диалог на Cleo и надо бы как то его вызывать по команде и собирать данные с его инпутов, их там 3 будет и работать с ними через C++ SF API, как можно будет при нажатии на кнопку забирать данные в SF API? Через getCLEO есть методы взять переменные, но как их в cleo скрипте объявить чтоб забрать в коде? Может кто пример кода показать, примеров нигде не нашел.
Есть ещё вариант через getDialog но там всё ещё запутаней, по методам ничего не понятно, а доки то и нет
|
|
|

02.01.2017, 05:39
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Сообщение от Jadson
Нет такой функции.
Может кто по поводу SF->getSAMP()->getInput()->EnableInput() всё же может кто подсказать?
Короче что происходит:
C++:
Код:
if
(
SF
->
getGame
(
)
->
isKeyPressed
(
0x31
)
)
//нажимаю на 1
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
SetChatInputText
(
"text here"
)
;
SF
->
getSAMP
(
)
->
getInput
(
)
->
EnableInput
(
)
;
}
В итоге в чат идет text here1 и потом когда я нажимаю 1 во второй раз ничего не происходит, а когда в третий - уже снова идет вызов, такое чувство что из-за того что цифра 1 идет в чат не отпраляется событие keydown и только при 2 нажатии оно отправляется и выходит что на 3 раз уже при нажатии на 1 всё работает, как от этого избавиться?
Может есть ещё способ отслеживать нажатие клавиши и чтоб она в чат не шла?
UPD. Отправку цифры 1 в чат убрал через эмуляцию нажатия backspace, а вот почему после вызова EnableInput не работает снова вызов на цифру 1 пока не могу понять
То, что ты делаешь через InputBox полнейшая хрень. Есть функция Say и её используют для отправки сообщения или команды.

|
|
|

02.01.2017, 06:29
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
Сообщение от IvanJudin
можно ли в .sf использовать библиотеку sqlite?
вангуем же,
та да, почему бы и нет?
|
|
|

02.01.2017, 13:54
|
|
Познающий
Регистрация: 26.12.2016
Сообщений: 61
С нами:
4936063
Репутация:
58
|
|
Сообщение от AWRage
То, что ты делаешь через InputBox полнейшая хрень. Есть функция Say и её используют для отправки сообщения или команды.
А при чем тут это? Мне надо чтобы текст вставлялся в инпут без отправки, чтоб дальше можно было дописать ID и отправить. Я вроде как с этим уже разобрался.
|
|
|

02.01.2017, 15:57
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
Сообщение от IvanJudin
вот примерно такое
C++:
Код:
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include
#include
#include
#include
#include "sqlite3.h"
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
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
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
sqlite3_libversion
(
)
)
;
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
;
}
сначала написал простое подключение к бд - скрипт не работает в игре,потом просто вывод версии библиотеки - тоже не работает, мож я чего-то не понимаю ?
в логах ничего интересного
позже сам попробую, через час отпишу, гляну
|
|
|

04.01.2017, 02:44
|
|
Постоянный
Регистрация: 17.02.2014
Сообщений: 611
С нами:
6438231
Репутация:
133
|
|
C++:
Код:
SF
->
getSAMP
(
)
->
getDialog
(
)
->
ShowDialog
(
1
,
DIALOG_STYLE_INPUT
,
"Введите ID"
,
""
,
"Ок"
,
"Отмена"
)
;
от сюда только хуком вытаскивать данные? или можно как то иначе?
и ещё вопрос сразу , как организовать свой диалог с вводом данных?
мне чисто в теории
|
|
|

04.01.2017, 14:23
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
Сообщение от iAmerican
C++:
Код:
SF
->
getSAMP
(
)
->
getDialog
(
)
->
ShowDialog
(
1
,
DIALOG_STYLE_INPUT
,
"Введите ID"
,
""
,
"Ок"
,
"Отмена"
)
;
от сюда только хуком вытаскивать данные? или можно как то иначе?
и ещё вопрос сразу , как организовать свой диалог с вводом данных?
мне чисто в теории
ага, хуков вытаскивай данные.
|
|
|

04.01.2017, 18:13
|
|
Участник форума
Регистрация: 14.05.2014
Сообщений: 149
С нами:
6314183
Репутация:
68
|
|
Можно ли как-то использовать команду, которая недоступна для твоего ранга/фракции на сервере? Ну или хотя бы считать содержимое диалога, не открывая его (опять же из-за того, что ранг/фракция не та).
|
|
|

04.01.2017, 18:16
|
|
Постоянный
Регистрация: 20.10.2014
Сообщений: 489
С нами:
6086011
Репутация:
108
|
|
Сообщение от 2Shae
Можно ли как-то использовать команду, которая недоступна для твоего ранга/фракции на сервере? Ну или хотя бы считать содержимое диалога, не открывая его (опять же из-за того, что ранг/фракция не та).
Ну в моде проверка, так что нет.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|