 |
|

21.04.2016, 22:02
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Ты хочешь, чтобы в одном массиве было 4 елемента с разными названиями? Тебе мапа стринговая нужна или структура.
|
|
|

22.04.2016, 00:49
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
Вообщем, сделал d3d hook, собрал это добро в .asi файл и кинул в папку с игрой. Захожу - работает, у других выскакивает ошибка отсутствия библиотеки vcruntime140.dll. Шо делать?
|
|
|

22.04.2016, 02:13
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
|
|
|

22.04.2016, 14:18
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
А почему для собейта такого ставить не нужно? Или то что я описал выше нормально?
|
|
|

22.04.2016, 14:19
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Нормально.
|
|
|

22.04.2016, 18:52
|
|
Познающий
Регистрация: 13.11.2014
Сообщений: 41
С нами:
6050727
Репутация:
58
|
|
Здравствуйте,не могли бы вы,описать за что отвечают данный переменные в textdraw,или дать ссылку для прочтение?
struct stTextdraw
{
char szText[800 + 1]; // Вроде как за текст?
char szString[1600 + 2];//Тоже текст
float fLetterWidth;//Размеры?
float fLetterHeight;//Так же размеры
DWORD dwLetterColor;//Цвет
uint8_t byte_unk; // always = 01 (?)
BYTE byteCenter;// ?
BYTE byteBox;// Бокс
float fBoxSizeX;//Размер Бокса по X
float fBoxSizeY;//Размеры Бокса по Y
DWORD dwBoxColor;//Цвет Бокса
BYTE byteProportional;// ?
DWORD dwShadowColor;//Цвет чего-то
BYTE byteShadowSize;//Размер чего-то
BYTE byteOutline;// ?
BYTE byteLeft;//?
BYTE byteRight;//?
int iStyle; // font style/texture/model |Так понял стиль textdraw
float fX;// Позиция чего-то по X?
float fY;//Позиция чего-то по Y
byte unk[8];// ?
DWORD dword99B; // -1 by default ???
DWORD dword99F; // -1 by default ???
DWORD index; // -1 if bad ID textdraw'a?
BYTE byte9A7; // = 1; 0 by default ???
uint16_t sModel; //???
float fRot[3];//???
float fZoom;//???
WORD sColor[2];// Цвет чего-то
BYTE f9BE; //???
BYTE byte9BF;//???
BYTE byte9C0;//???
DWORD dword9C1;//???
DWORD dword9C5;//???
DWORD dword9C9;//???
DWORD dword9CD;//???
BYTE byte9D1;//???
DWORD dword9D2;//???
};
struct stTextdrawPool
{
int iIsListed[SAMP_MAX_TEXTDRAWS]; //Существует ли глобальный textdraw?
int iPlayerTextDraw[SAMP_MAX_PLAYERTEXTDRAWS];//Существует ли textdraw для игрока?
struct stTextdraw *textdraw[SAMP_MAX_TEXTDRAWS];//???
struct stTextdraw *playerTextdraw[SAMP_MAX_PLAYERTEXTDRAWS];//???
};
|
|
|

22.04.2016, 20:05
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Ничего нет. Разберись сам. можешь опкоды СФ для работы с текстдравами заюзать.
|
|
|

22.04.2016, 22:06
|
|
Постоянный
Регистрация: 10.07.2015
Сообщений: 642
С нами:
5706781
Репутация:
43
|
|
struct stTextdraw
{
char szText[800 + 1]; // Вроде как за текст?
char szString[1600 + 2];//Тоже текст
float fLetterWidth; Ширина
float fLetterHeight; Высота
DWORD dwLetterColor;//Цвет
uint8_t byte_unk; // always = 01 (?)
BYTE byteCenter; Выравнивание по центру
BYTE byteBox;// Бокс
float fBoxSizeX;//Размер Бокса по X
float fBoxSizeY;//Размеры Бокса по Y
DWORD dwBoxColor;//Цвет Бокса
BYTE byteProportional;// Пропорциональность, потести, поймешь.
DWORD dwShadowColor;// Цвет тени
BYTE byteShadowSize;//Размер тени
BYTE byteOutline;// Обводка
BYTE byteLeft;// Выравнивание по левому краю
BYTE byteRight;// Выравнивание по правому краю
int iStyle; // font style/texture/model |Так понял стиль textdraw
float fX;// Позиция текстдрава
float fY;//Позиция текстдрава
byte unk[8];// ?
DWORD dword99B; // -1 by default ???
DWORD dword99F; // -1 by default ???
DWORD index; // -1 if bad ID textdraw'a?
BYTE byte9A7; // = 1; 0 by default ???
uint16_t sModel; //???
float fRot[3];//???
float fZoom;//???
WORD sColor[2];// Цвет чего-то
BYTE f9BE; //???
BYTE byte9BF;//???
BYTE byte9C0;//???
DWORD dword9C1;//???
DWORD dword9C5;//???
DWORD dword9C9;//???
DWORD dword9CD;//???
BYTE byte9D1;//???
DWORD dword9D2;//???
};
struct stTextdrawPool
{
int iIsListed[SAMP_MAX_TEXTDRAWS]; //Существует ли глобальный textdraw?
int iPlayerTextDraw[SAMP_MAX_PLAYERTEXTDRAWS];//Существует ли textdraw для игрока?
struct stTextdraw *textdraw[SAMP_MAX_TEXTDRAWS];// массив текстдравов. То есть, можно обращаться к элементам и получать текстдрав по его ID
struct stTextdraw *playerTextdraw[SAMP_MAX_PLAYERTEXTDRAWS];// массив текстдравов игрока ^
};
|
|
|

23.04.2016, 12:05
|
|
Новичок
Регистрация: 13.12.2020
Сообщений: 0
С нами:
2851002
Репутация:
0
|
|
пытаюсь прочитать позицию пикапа с помощью перехвата RPC, но правильно читается только его ID, а всё остальное - нет.
Код:
Код:
else if (params->packetId == ScriptRPCEnumeration::RPC_ScrCreatePickup)
{
short pickup_id;
float pos[3];
int model_id;
int type;
params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
params->bitStream->Read(pickup_id); // читаем отправляемые данные
params->bitStream->Read(model_id); // читаем отправляемые данные
params->bitStream->Read(type); // читаем отправляемые данные
params->bitStream->Read(pos); // читаем отправляемые данные
params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
SF->getSAMP()->getChat()->AddChatMessage(-1, "%d %f %f %f", pickup_id, pos[0], pos[1], pos[2]);
return true;
}
Решил методом тыка.
Код:
Код:
params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
params->bitStream->Read(pickup_id); // читаем отправляемые данные
params->bitStream->SetReadOffset(96);
params->bitStream->Read(pos[0]); // читаем отправляемые данные
params->bitStream->Read(pos[1]); // читаем отправляемые данные
params->bitStream->Read(pos[2]); // читаем отправляемые данные
params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
SF->getSAMP()->getChat()->AddChatMessage(-1, "%d %f %f %f", pickup_id, pos[0], pos[1], pos[2]);
|
|
|

23.04.2016, 15:41
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
Сообщение от Dimoz
пытаюсь прочитать позицию пикапа с помощью перехвата RPC, но правильно читается только его ID, а всё остальное - нет.
Код:
Код:
else if (params->packetId == ScriptRPCEnumeration::RPC_ScrCreatePickup)
{
short pickup_id;
float pos[3];
int model_id;
int type;
params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
params->bitStream->Read(pickup_id); // читаем отправляемые данные
params->bitStream->Read(model_id); // читаем отправляемые данные
params->bitStream->Read(type); // читаем отправляемые данные
params->bitStream->Read(pos); // читаем отправляемые данные
params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
SF->getSAMP()->getChat()->AddChatMessage(-1, "%d %f %f %f", pickup_id, pos[0], pos[1], pos[2]);
return true;
}
Решил методом тыка.
Код:
Код:
params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
params->bitStream->Read(pickup_id); // читаем отправляемые данные
params->bitStream->SetReadOffset(96);
params->bitStream->Read(pos[0]); // читаем отправляемые данные
params->bitStream->Read(pos[1]); // читаем отправляемые данные
params->bitStream->Read(pos[2]); // читаем отправляемые данные
params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
SF->getSAMP()->getChat()->AddChatMessage(-1, "%d %f %f %f", pickup_id, pos[0], pos[1], pos[2]);
https://docs.google.com/spreadsheet/ccc?key=0AtKPKl8O9mGodFZESEp6WEdzcTB0U2V1ZkR0UWpub 1E#gid=1
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|