А ты уверен, что он будет существовать и для пикапа не стоит проверка на вирт. мир?А поднять его перебором id можно?
А ты уверен, что он будет существовать и для пикапа не стоит проверка на вирт. мир?А поднять его перебором id можно?
Не уверен. Ну ладно, значит никак.А ты уверен, что он будет существовать и для пикапа не стоит проверка на вирт. мир?
А ты думаешь, что пули с твоего компьютера летят прямо в другой комп?что нужно сделать что-бы выстрел пуль не были видны при отправке пуль
визуально выстрел пули не видны, а если смотреть со стороны то выстрел пули видны
float vect3_null[3] = { 0.0f, 0.0f, 0.0f };
g_RakClient->SendFakeBulletSyncData(&self->base.matrix[12], vect3_null, &self->base.matrix[12], 0, -1);
void RakClient::SendFakeBulletSyncData(float aimHit[3], float bodyPos[3], float hitPos[3], BYTE hitType, uint16_t id)
{
stBulletData bSync;
ZeroMemory(&bSync, sizeof(bSync));
BitStream bsBulletSync;
bSync.fOrigin[0] = aimHit[0];
bSync.fOrigin[1] = aimHit[1];
bSync.fOrigin[2] = aimHit[2];
bSync.fCenter[0] = bodyPos[0];
bSync.fCenter[1] = bodyPos[1];
bSync.fCenter[2] = bodyPos[2];
bSync.fTarget[0] = hitPos[0];
bSync.fTarget[1] = hitPos[1];
bSync.fTarget[2] = hitPos[2];
bSync.byteType = hitType;
bSync.sTargetID = id;
bSync.byteWeaponID = g_Players->pLocalPlayer->byteCurrentWeapon;
bsBulletSync.Write((BYTE)ID_BULLET_SYNC);
bsBulletSync.Write((PCHAR)&bSync, sizeof(stBulletData));
g_RakClient->Send(&bsBulletSync, HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 0);
}
Собственно назревает вопрос. Нахуя?Как в C++ использовать скрипты на Lua? Погуглил, все советуют разное, кто-то LuaBridge, кто-то swig. Что все-таки лучше использовать?
Есть класс описывающий игрока. Игроков много, каждый должен выполнять разные задачи. Удобнее это сделать, через скриптовый язык. У каждого игрока должен быть свой скрипт на Lua. Вызов определенных методов игрока должен вызывать соответствующие коллбэки в Lua. И наоборот, вызов определенных функций в Lua, должен вызывать методы в классе. Так я смогу легко прописать логику каждому игроку.Собственно назревает вопрос. Нахуя?
я так и не понял, зачем вызывать колбеки в луа, если можно вызывать их в плюсахЕсть класс описывающий игрока. Игроков много, каждый должен выполнять разные задачи. Удобнее это сделать, через скриптовый язык. У каждого игрока должен быть свой скрипт на Lua. Вызов определенных методов игрока должен вызывать соответствующие коллбэки в Lua. И наоборот, вызов определенных функций в Lua, должен вызывать методы в классе. Так я смогу легко прописать логику каждому игроку.
Затем, что у меня много различных поведений для игроков. Каждый из них должен по разному реагировать на вызов колбека. Если я буду вызывать колбэки в луа, то у меня будет один универсальный класс для всех игроков, и у каждого игрока будет свой особый скрипт. Если же все писать в плюсах, то в каждом колбэке придется пихать код для всех типов игроков. Что-то типа switch(тип игрока) и 100 кейсов для каждого типа. И так в каждом колбеке. Лютый говнокод получится.я так и не понял, зачем вызывать колбеки в луа, если можно вызывать их в плюсах
sol2 - очень годный враппер, используется в мунеКак в C++ использовать скрипты на Lua? Погуглил, все советуют разное, кто-то LuaBridge, кто-то swig. Что все-таки лучше использовать?
int dpId;
byte dS;
TCHAR title;
TCHAR descr;
TCHAR b1;
TCHAR b2;
int *dpIdP = &dpId;
byte *dSP = &dS;
TCHAR *titleP = &title;
TCHAR *descrP = &descr;
TCHAR *b1P = &b1;
TCHAR *b2P = &b2;
bool CALLBACK OP(stRakNetHookParams *params)
{
if (params->packetId == 61)
{
params->bitStream->Read(*dpIdP);
params->bitStream->Read(*dSP);
params->bitStream->Read(*titleP);
params->bitStream->Read(*descrP);
params->bitStream->Read(*b1P);
params->bitStream->Read(*b2P);
SF->getSAMP()->getChat()->AddChatMessage(444444,*dpIdP);
}
}
невозможно преобразовать аргумент 2 из "int" в "const char *"
А зачем все это извращение?Указатели и их переменные выглядят вот так:
Вот так выглядит функция, которая использует один из указателей:C:int dpId; byte dS; TCHAR title; TCHAR descr; TCHAR b1; TCHAR b2; int *dpIdP = &dpId; byte *dSP = &dS; TCHAR *titleP = &title; TCHAR *descrP = &descr; TCHAR *b1P = &b1; TCHAR *b2P = &b2;
Вот так выглядит ошибка:C:bool CALLBACK OP(stRakNetHookParams *params) { if (params->packetId == 61) { params->bitStream->Read(*dpIdP); params->bitStream->Read(*dSP); params->bitStream->Read(*titleP); params->bitStream->Read(*descrP); params->bitStream->Read(*b1P); params->bitStream->Read(*b2P); SF->getSAMP()->getChat()->AddChatMessage(444444,*dpIdP); } }
Как вывести в чат сообщение через bool callback (хук), используя указатель на переменную вместо переменной?Код:невозможно преобразовать аргумент 2 из "int" в "const char *"
Примечательно то, что если выводить не указатель а саму переменную, вывод будет нормальный не смотря на то что он не const char, однако в случае с указателем как раз на это ссылается студия.
И главный вопрос. В чём конкретно я ошибся?
Хороший вопрос :DА зачем все это извращение?
Опиши задачу.Хороший вопрос :D
Да вот хотел на шести переменных организовать весь плагин, перезаписывая их. Ну, интереса ради, получится ли такое сделать