 |
|

30.10.2021, 10:47
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Сообщение от Scar_
При чтении строк библиотекой fstream, плагин СФ выводит иероглифы, как исправить?
Куда выводит? код? многобайтовая кодировка? что читаешь? может там и записаны иероглифы
|
|
|

30.10.2021, 11:13
|
|
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами:
4553429
Репутация:
153
|
|
Сообщение от loganhackerdff
Куда выводит? код? многобайтовая кодировка? что читаешь? может там и записаны иероглифы
Пробовал в консоль и в чат выводить, многобайтовая кодировка стоит, читаю txt по строкам анг. буквы и цифры.
|
|
|

30.10.2021, 13:39
|
|
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами:
4633764
Репутация:
148
|
|
Сообщение от Scar_
Пробовал в консоль и в чат выводить, многобайтовая кодировка стоит, читаю txt по строкам анг. буквы и цифры.
Код, поаж, мб флаги там неправильные
|
|
|

30.10.2021, 21:14
|
|
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами:
4553429
Репутация:
153
|
|
Сообщение от [w0te]
При компиляции вот такого кода ( SFPlugin )
cod:
Код:
#include
#include "main.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
void
__stdcall
mainloop
(
)
void
CALLBACK
cmd_show_info_player
(
std
::
string param
)
;
{
if
(
param
.
empty
(
)
)
return
;
int
i
=
std
::
stoi
(
param
)
;
char
buf
[
128
]
;
stRemotePlayer
*
pPlayer
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
;
if
(
!
pPlayer
)
return
;
sprintf
(
buf
,
"Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d"
,
pPlayer
->
szPlayerName
,
pPlayer
->
iPing
,
pPlayer
->
iScore
,
pPlayer
->
iIsNPC
,
pPlayer
->
pPlayerData
->
iAFKState
==
2
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
;
{
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
if
(
GAME
&&
GAME
->
GetSystemState
(
)
==
eSystemState
::
GS_PLAYING_GAME
&&
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
{
initialized
=
true
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"showinfo"
,
cmd_show_info_player
)
;
}
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
return
TRUE
;
}
Выдаёт такую ошибку:
1>------ Сборка начата: проект: SFPlugin, Конфигурация: Release Win32 ------
1> main.cpp
1>main.cpp(9): error C2144: синтаксическая ошибка: перед "void" требуется ";"
1>main.cpp(10): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>main.cpp(31): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Ну хотябы озы c++ поучи
|
|
|

30.10.2021, 21:24
|
|
Постоянный
Регистрация: 08.09.2021
Сообщений: 808
С нами:
2463635
Репутация:
98
|
|
Сообщение от Scar_
Ну хотябы озы c++ поучи
ладно
|
|
|

30.10.2021, 21:39
|
|
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами:
4483143
Репутация:
183
|
|
Сообщение от [w0te]
При компиляции вот такого кода ( SFPlugin )
cod:
Код:
#include
#include "main.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
void
__stdcall
mainloop
(
)
void
CALLBACK
cmd_show_info_player
(
std
::
string param
)
;
{
if
(
param
.
empty
(
)
)
return
;
int
i
=
std
::
stoi
(
param
)
;
char
buf
[
128
]
;
stRemotePlayer
*
pPlayer
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
;
if
(
!
pPlayer
)
return
;
sprintf
(
buf
,
"Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d"
,
pPlayer
->
szPlayerName
,
pPlayer
->
iPing
,
pPlayer
->
iScore
,
pPlayer
->
iIsNPC
,
pPlayer
->
pPlayerData
->
iAFKState
==
2
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
-
1
,
buf
)
;
}
;
{
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
if
(
GAME
&&
GAME
->
GetSystemState
(
)
==
eSystemState
::
GS_PLAYING_GAME
&&
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
{
initialized
=
true
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
SF
->
getSAMP
(
)
->
registerChatCommand
(
"showinfo"
,
cmd_show_info_player
)
;
}
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
return
TRUE
;
}
Выдаёт такую ошибку:
1>------ Сборка начата: проект: SFPlugin, Конфигурация: Release Win32 ------
1> main.cpp
1>main.cpp(9): error C2144: синтаксическая ошибка: перед "void" требуется ";"
1>main.cpp(10): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
1>main.cpp(31): error C2447: {: отсутствует заголовок функции (возможно, используется формальный список старого типа)
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
У тебя явно написано где ошибка, чего не хватает, и почему не компилируется
|
|
|

30.10.2021, 23:18
|
|
Познавший АНТИЧАТ
Регистрация: 06.09.2020
Сообщений: 1,043
С нами:
2992507
Репутация:
168
|
|
как использовать loadSceneCollision/loadScene?
|
|
|

31.10.2021, 00:48
|
|
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами:
4553429
Репутация:
153
|
|
Выводит какой-то бред, замахался с этим уже, помогите пожалуйста.
C++:
Код:
std
::
ifstream
file
(
license_txt
)
;
if
(
file
.
is_open
(
)
)
{
std
::
string lines
;
while
(
std
::
getline
(
file
,
lines
)
)
// Перебирает строки и потом сравнивает с hdd_now
{
if
(
lines
==
hdd_now
)
{
SF
->
Log
(
"Путь к файлу: %s\nHDD: %s\nТекст: %s"
,
license_txt
,
hdd_now
,
lines
)
;
msg
(
"Подписки куплена, приятного использования"
)
;
}
else
{
SF
->
Log
(
"Путь к файлу: %s\nHDD: %s\nТекст: %s"
,
license_txt
,
hdd_now
,
lines
)
;
msg
(
"Подписки нету, её нужно купить"
)
;
}
}
file
.
close
(
)
;
}
Скрин:

|
|
|

31.10.2021, 01:13
|
|
Познавший АНТИЧАТ
Регистрация: 09.08.2015
Сообщений: 1,213
С нами:
5663255
Репутация:
183
|
|
Сообщение от Scar_
Выводит какой-то бред, замахался с этим уже, помогите пожалуйста.
C++:
Код:
std
::
ifstream
file
(
license_txt
)
;
if
(
file
.
is_open
(
)
)
{
std
::
string lines
;
while
(
std
::
getline
(
file
,
lines
)
)
// Перебирает строки и потом сравнивает с hdd_now
{
if
(
lines
==
hdd_now
)
{
SF
->
Log
(
"Путь к файлу: %s\nHDD: %s\nТекст: %s"
,
license_txt
,
hdd_now
,
lines
)
;
msg
(
"Подписки куплена, приятного использования"
)
;
}
else
{
SF
->
Log
(
"Путь к файлу: %s\nHDD: %s\nТекст: %s"
,
license_txt
,
hdd_now
,
lines
)
;
msg
(
"Подписки нету, её нужно купить"
)
;
}
}
file
.
close
(
)
;
}
Скрин:
Для std::string следует использовать метод .c_str()
C++:
Для выводы HDD скорее тебе требуется: " %X"
|
|
|

31.10.2021, 01:32
|
|
Познавший АНТИЧАТ
Регистрация: 18.09.2017
Сообщений: 1,044
С нами:
4553429
Репутация:
153
|
|
Сообщение от Rinat_Namazov
Для std::string следует использовать метод .c_str()
C++:
Для выводы HDD скорее тебе требуется: " %X"
Краш игры, и

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