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

  #1161  
Старый 07.03.2016, 17:00
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Ну так сам думай и пробуй
 
Ответить с цитированием

  #1162  
Старый 07.03.2016, 17:15
FordeD
Познающий
Регистрация: 10.01.2016
Сообщений: 98
С нами: 5442178

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

C++:





Код:
int
square
=
1
;
CVector fPos
=
{
FxPos
,
FyPos
,
0.0
}
;
GAME
->
Get3DMarkers
(
)
->
CreateMarker
(
square
,
MARKER3D_TUBE
,
&
fPos
,
40.0
,
1.0
,
3
,
52
,
227
,
255
)
;


Беда, не могу нарисовать маркер, где косяк может быть?

FxPos и FyPos в зависимости от введенных данных по свичу выбираются
 
Ответить с цитированием

  #1163  
Старый 07.03.2016, 17:23
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Этот класс вообще странный.

Для начала - после создания необходимо получить указатель на C3DMarker(который возвращается при создании). Функции CreateMarker по барабану какую позицию ты указал, тебе придется снова установить её: C3DMarker::SetPosition(CVector*);

Потом в цикле C3DMarker::SetActive();

Насчет Z координаты - её тоже нужно указать. 0.0 не покатит в многих случаях.
 
Ответить с цитированием

  #1164  
Старый 07.03.2016, 18:05
FordeD
Познающий
Регистрация: 10.01.2016
Сообщений: 98
С нами: 5442178

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

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

Этот класс вообще странный.
Для начала - после создания необходимо получить указатель на C3DMarker(который возвращается при создании). Функции CreateMarker по барабану какую позицию ты указал, тебе придется снова установить её: C3DMarker::SetPosition(CVector*);
Потом в цикле C3DMarker::SetActive();

Насчет Z координаты - её тоже нужно указать. 0.0 не покатит в многих случаях.
Я нуб, как указатель пишется? ))
 
Ответить с цитированием

  #1165  
Старый 07.03.2016, 18:06
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

C3DMarker* pointer;
 
Ответить с цитированием

  #1166  
Старый 07.03.2016, 18:16
FordeD
Познающий
Регистрация: 10.01.2016
Сообщений: 98
С нами: 5442178

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

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

C3DMarker* pointer;
C3DMarker* pointer = GAME->Get3DMarkers()->CreateMarker(square, MARKER3D_TUBE, &fPos, 40.0, 1.0, 3, 52, 227, 255);

C3DMarker::SetPosition(pointer);

C3DMarker::SetActive(pointer);

ругается на C3DMarker::SetPosition и C3DMarker::SetActive
 
Ответить с цитированием

  #1167  
Старый 07.03.2016, 18:19
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

Бли.

pointer->SetPosition(&fpos);
 
Ответить с цитированием

  #1168  
Старый 07.03.2016, 18:36
FordeD
Познающий
Регистрация: 10.01.2016
Сообщений: 98
С нами: 5442178

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

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

Бли.
pointer->SetPosition(&fpos);
переписал строки, сейчас посмотрим

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

Бли.
pointer->SetPosition(&fpos);
В итоге все равно не реагирует на результат
 
Ответить с цитированием

  #1169  
Старый 07.03.2016, 20:10
itsLegend
Флудер
Регистрация: 23.03.2013
Сообщений: 2,696
С нами: 6915558

Репутация: 183


По умолчанию

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

В итоге все равно не реагирует на результат
[S]В цикле, который mainloop, нужно фигачить ->SetActive();[/S]

Цитата:
Сообщение от Спойлер  


C++:





Код:
C3DMarker
*
marker
=
nullptr
;
void
CALLBACK
mainloop
(
)
{
static
bool
init
=
false
;
if
(
!
init
)
{
if
(
!
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
return
;
C3DMarker
*
freeMarker
=
GAME
->
Get3DMarkers
(
)
->
FindFreeMarker
(
)
;
if
(
freeMarker
)
{
CVector pos
=
CVector
(
0.0f
,
0.0f
,
0.0f
)
;
marker
=
GAME
->
Get3DMarkers
(
)
->
CreateMarker
(
freeMarker
->
GetIdentifier
(
)
,
MARKER3D_TUBE
,
&
pos
,
40.0f
,
1.0f
,
3
,
52
,
227
,
255
)
;
marker
->
SetPosition
(
&
pos
)
;
}
init
=
true
;
}
else
{
if
(
marker
!=
nullptr
)
{
marker
->
SetActive
(
)
;
}
}
}


Всё в какашечку укатилось. Этот код уже не рабочий. Прошло 1,5 месяца.
 
Ответить с цитированием

  #1170  
Старый 07.03.2016, 20:45
Tray228
Участник форума
Регистрация: 09.03.2015
Сообщений: 218
С нами: 5884065

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

PHP:





Код:
#include 
#include 
#include 
#include 
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
stFontInfo
*
pFont
;
bool alfonso
=
false
;
char adm
[
11
]
[
60
]
;
bool admint
;
char pl
[
125
]
;
char adonl
[
125
]
[
125
]
;
int coutadmin
;
void
del_adm_onl
(
int nac
)
{
for
(
int i
=
nac
;
i

getSAMP
(
)
-
>
getChat
(
)
-
>
AddChatMessage
(
-
1
,
"Error reading list admins"
)
;
f1
=
fopen
(
".\\SAMPFUNCS\\admins.txt"
,
"w"
)
;
fputs
(
"Nick_Name"
,
f1
)
;
fclose
(
f1
)
;
return
;
}
char
*
fs
,
*
fp
,
gna
[
25
]
;
for
(
int i
=
0
;
i

packetId
==
ScriptRPCEnumeration
:
:
RPC_ScrServerJoin
&&
alfonso
)
// если это RPC_ScrServerJoin
{
short int sPlayerID
;
D3DCOLOR
D3DPlayerColor
;
byte isNPC
,
nameLen
;
char szPlayerName
[
25
]
;
params
-
>
bitStream
-
>
ResetReadPointer
(
)
;
// обнуляем оффсет чтения.
params
-
>
bitStream
-
>
Read
(
sPlayerID
)
;
// читаем ID игрока.
params
-
>
bitStream
-
>
Read
(
D3DPlayerColor
)
;
// цвет ника игрока.
params
-
>
bitStream
-
>
Read
(
isNPC
)
;
// флаг говорящий о том, NPC это или нет.
params
-
>
bitStream
-
>
Read
(
nameLen
)
;
// длина ника.
params
-
>
bitStream
-
>
Read
(
szPlayerName
,
nameLen
)
;
// ник.
szPlayerName
[
nameLen
]
=
'\0'
;
// обрезаем чтоб не было мусора
params
-
>
bitStream
-
>
ResetReadPointer
(
)
;
// обнуляем оффсет чтения
sprintf
(
pl
,
"%s[%d] Подключился к серверу."
,
szPlayerName
,
sPlayerID
)
;
// добавляем сообшение в чат.
for
(
int i
=
0
;
i

packetId
==
ScriptRPCEnumeration
:
:
RPC_ScrServerQuit
&&
alfonso
)
// если player quit
{
short int PlayerID
;
byte ReasonID
;
params
-
>
bitStream
-
>
ResetReadPointer
(
)
;
// обнуляем оффсет чтения.
params
-
>
bitStream
-
>
Read
(
PlayerID
)
;
// читаем ID игрока.
params
-
>
bitStream
-
>
Read
(
ReasonID
)
;
for
(
int i
=
0
;
i

getSAMP
(
)
-
>
getPlayers
(
)
-
>
GetPlayerName
(
PlayerID
)
,
adonl
[
i
]
)
==
0
)
{
del_adm_onl
(
i
)
;
coutadmin
--
;
}
//SF->getSAMP()->getChat()->AddChatMessage(-1,"OFF: %s",SF->getSAMP()->getPlayers()->GetPlayerName(PlayerID));
}
}
}
;
return
true
;
// успешно завершаем обработку RPC.
}
;
bool
CALLBACK
Present
(
CONST
RECT
*
pSourceRect
,
CONST
RECT
*
pDestRect
,
HWND
hDestWindowOverride
,
CONST
RGNDATA
*
pDirtyRegion
)
{
if
(
SUCCEEDED
(
SF
-
>
getRender
(
)
-
>
BeginRender
(
)
&&
alfonso
)
)
{
for
(
int i
=
0
;
i

Print
(
adonl
[
i
]
,
D3DCOLOR_ARGB
(
255
,
255
,
255
,
0
)
,
10
,
260
,
false
)
;
}
SF
-
>
getRender
(
)
-
>
EndRender
(
)
;
// завершаем рисование
}
;
return
true
;
}
void
CALLBACK
famc
(
std
:
:
string param
)
{
alfonso
^
=
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
(
)
-
>
getChat
(
)
-
>
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"1"
)
;
SF
-
>
getRender
(
)
-
>
registerD3DCallback
(
eDirect3DDeviceMethods
:
:
D3DMETHOD_PRESENT
,
Present
)
;
pFont
=
SF
-
>
getRender
(
)
-
>
CreateNewFont
(
"Tahoma"
,
12
,
FCR_BORDER
)
;
SF
-
>
getSAMP
(
)
-
>
registerChatCommand
(
"fam"
,
famc
)
;
get_list_admin
(
)
;
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
;
}


Почему крашит?
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.