SDKCall проблема
| |
sssw
|
Дата: Пятница, 08.08.2014, 18:00:28 | Сообщение # 16 |
|
Сообщений: 123
Репутация: 14 [ +/- ]
|
|
Цитата serm ( ) А чем smac wallhak поможет ??? GetBonePosition поможет увеличить точность.
Эти пин**** намутили в своих солюшинах чтоб что-то скомпилировать нужно ***.
|
|
| |
serm
|
Дата: Пятница, 08.08.2014, 18:08:11 | Сообщение # 17 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Цитата sssw ( ) GetBonePosition поможет увеличить точность.
Эти пин**** намутили в своих солюшинах чтоб что-то скомпилировать нужно ***.
Я согласен будет лучше если получать позицию bone но эту функцию так же доставать как и GetAttachment ... Есть еще 1 хукер dhook но я не очень понял в документации как с ним работать .
Ужас какой-то. WS может ты знаешь как решить проблемку ?
Хотя врятли он в тему вникать станет .
Сообщение отредактировал serm - Пятница, 08.08.2014, 18:11:19 |
|
| |
_wS_
|
Дата: Пятница, 08.08.2014, 22:04:09 | Сообщение # 18 |
|
Я как-то пробовал SDKCall и когда понял насколько оно мутно, отложил, и до сих пор.. =) Основная причина наверно из-за того, что не представляю как определять сигнатуры для WIN (просто тест сервер на win), инфы об этом почти нет, если есть - недостаточно или устарела.
|
|
| |
sssw
|
Дата: Пятница, 08.08.2014, 22:37:36 | Сообщение # 19 |
|
Сообщений: 123
Репутация: 14 [ +/- ]
|
|
Всё просто берёшь копируешь байты ищешь в IDA функцию по имени копируешь её байты и ставишь их (учитывая маску). На YouTube есть туториал.
|
|
| |
serm
|
Дата: Суббота, 09.08.2014, 15:14:00 | Сообщение # 20 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Цитата _wS_ ( ) Я как-то пробовал SDKCall и когда понял насколько оно мутно, отложил, и до сих пор.. =) Основная причина наверно из-за того, что не представляю как определять сигнатуры для WIN (просто тест сервер на win), инфы об этом почти нет, если есть - недостаточно или устарела. Цитата sssw ( ) Всё просто берёшь копируешь байты ищешь в IDA функцию по имени копируешь её байты и ставишь их (учитывая маску). На YouTube есть туториал.
Дело в том что я и так работаю с этой программой уже долго время . Я умею тащить сигнатуры lin (я примерно знаю как win вытаскивать вот только не как не получается их в нормальном порядке поставить ) умею offset вытаскивать на lin и win .
с sdkcall уже более менее знаком .
В связи с тем что не могу вытащить win сигнатуру (Беру хост forteam на 3 дня - 35 руб (Там есть недоработка , после окончания трех дней можно еще 15 пользоваться)) так вот там и провожу тесты .
Мне нужна эта функция получения attachment (Если вы пожелаете я могу скинуть видео - для чего нужна функция).
Так что если хотите я даже предоставлю данные от хоста где вы сможете протестить на linux . Если нужны сигнатуры тоже я могу выложить . Так же могу выложить список тех или иных функций из server.dll
Сегодня постараюсь понять как win сигнатуры вытаскивать .
Ну так что согласны помочь ? (Я думаю вы тоже заинтересованны в этой функции)
Добавлено (09.08.2014, 13:27:08) --------------------------------------------- Код #pragma semicolon 1
#include <sourcemod> #include <sdktools> #include <cstrike> #include <sdkhooks>
new Handle:hGameConf, Handle:hTest;
public OnPluginStart(){ hGameConf = LoadGameConfigFile("plugin.offests"); StartPrepSDKCall(SDKCall_Entity); PrepSDKCall_SetFromConf(hGameConf, SDKConf_Signature, "GetAttachment"); PrepSDKCall_AddParameter(SDKType_PlainOldData , SDKPass_Plain); PrepSDKCall_AddParameter(SDKType_Vector , SDKPass_ByValue); PrepSDKCall_AddParameter(SDKType_QAngle , SDKPass_ByValue); PrepSDKCall_SetReturnInfo(SDKType_PlainOldData, SDKPass_Plain); hTest = EndPrepSDKCall(); RegConsoleCmd("test",test); } public Action:test(client,Args){ new Float:f_pos[3], Float:f_ang[3];
new z=SDKCall(hTest, client, 12, f_pos, f_ang); PrintToChatAll("%f %f %f", f_pos[0], f_pos[1], f_pos[2]); }
Код "Games" { "cstrike" { "Signatures" { "GetAttachment" { "library" "server" "linux" "@_ZN14CBaseAnimating13GetAttachmentEiR6VectorR6QAngle" } } } }
Результат тот же . Хотя на am написали что в этом проблема . У функции GetAttachment 3 значения , а добавляю одно (В первом посте видно) .
Добавлено (09.08.2014, 15:14:00) --------------------------------------------- Попробовал даже так Код #pragma semicolon 1
#include <sourcemod> #include <sdktools> #include <cstrike> #include <sdkhooks>
new Handle:hGameConf, Handle:hTest, Handle:hLookupAttachment;
public OnPluginStart(){ hGameConf = LoadGameConfigFile("plugin.offests"); StartPrepSDKCall(SDKCall_Entity); PrepSDKCall_SetFromConf(hGameConf, SDKConf_Signature, "GetAttachment"); PrepSDKCall_AddParameter(SDKType_PlainOldData , SDKPass_Plain); PrepSDKCall_SetReturnInfo(SDKType_Vector , SDKPass_ByValue); PrepSDKCall_SetReturnInfo(SDKType_QAngle , SDKPass_ByValue); hTest = EndPrepSDKCall(); StartPrepSDKCall(SDKCall_Entity); PrepSDKCall_SetFromConf(hGameConf, SDKConf_Signature, "LookupAttachment"); PrepSDKCall_AddParameter(SDKType_String, SDKPass_Pointer); PrepSDKCall_SetReturnInfo(SDKType_PlainOldData, SDKPass_Plain); hLookupAttachment = EndPrepSDKCall(); RegConsoleCmd("test",test); } public Action:test(client,Args){ new Float:f_pos[3], Float:f_ang[3];
SDKCall(hTest, client, SDKCall(hLookupAttachment, client, "forward"), f_pos, f_ang); PrintToChatAll("%f %f %f", f_pos[0], f_pos[1], f_pos[2]); }
Должно вернуть 2 значения вот и я попытался 2 retrun установить
Сообщение отредактировал serm - Суббота, 09.08.2014, 15:14:24 |
|
| |
sssw
|
Дата: Суббота, 09.08.2014, 17:05:00 | Сообщение # 21 |
|
Сообщений: 123
Репутация: 14 [ +/- ]
|
|
"hLookupAttachment" разве не для прилипания? А так в CBaseAnimation несколько GetAttachment'о с разными параметрами и они вызывают друг друга. Я бы вчера разобрался но вложение исходники подбили желание.
P.s Пойду сервер поставлю.
Сообщение отредактировал sssw - Суббота, 09.08.2014, 18:10:31 |
|
| |
serm
|
Дата: Воскресенье, 10.08.2014, 15:36:43 | Сообщение # 22 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Цитата sssw ( ) "hLookupAttachment" разве не для прилипания? А так в CBaseAnimation несколько GetAttachment'о с разными параметрами и вызывая друг друга. Я бы вчера разобрался но вложение исходники подбили желание.
P.s Пойду сервер поставлю. Я объясню .
Там штуки 4 GetAttachment Первые 2 Это GetAttachment("Тут название атачмента") - Его использовать без index attachment (Он находится внутри самой функции) GetAttachment("Тут название атачмента" "Тут 3 типа vector") - Тут скорее всего для манипуляций чтобы сразы происходило вычисление с заданными коррекциями .
А вторые 2 тоже самое но GetAttachment("Тут уже вычисленный index атачмента") GetAttachment("Тут уже вычисленный index атачмента" "Тут 3 типа vector")
Добавлено (09.08.2014, 17:47:04) --------------------------------------------- Мне интересно , matix3x4_t можно ли его воссоздать в sp например вот так new Float:matrix[3][4] Ведь по сути получается тоже самое
http://mathworld.wolfram.com/images/eps-gif/Matrix_1000.gif
И сразу напрямую править через Код MatrixGetColumn(matrix3x4_t const&,int,Vector &)
new Float:matrix[3][4]; new Float:f_Pos[3]; for(new i=0; i<2; i++) MatrixGetColumn(matrix,i,f_Pos[i]);
Только маловероятно что sdk примет такой вид массива matrix
Добавлено (10.08.2014, 08:53:37) --------------------------------------------- На форуме am мне помогли . Дали функцию Код #pragma semicolon 1
#include <sourcemod> #include <sdktools>
new Handle:hGameConf, Handle:hTest, Handle:hLookupAttachment;
Но возвращается Код attachment = 11 0.000000 0.000000 0.000000
Без координат
Добавлено (10.08.2014, 15:36:43) --------------------------------------------- Ну так что WS ты хоть сможешь помочь идейкой как реализовать , думаю опыта у тебя поболее .
Сообщение отредактировал serm - Четверг, 14.08.2014, 14:53:46 |
|
| |
_wS_
|
Дата: Воскресенье, 10.08.2014, 16:18:05 | Сообщение # 23 |
|
Ну если даже владелец SM тебе помочь не может =) У меня в SDKCall почти нет опыта. Если этот вариант не работает, все просто, пробуй другие, пусть и не такие удобные (главное чтобы работало) - тебе же нужно координаты получить эти, есть плагины "Hats" и там пара формул.
|
|
| |
serm
|
Дата: Воскресенье, 10.08.2014, 16:33:08 | Сообщение # 24 |
|
Сообщений: 137
Репутация: 7 [ +/- ]
|
|
Цитата _wS_ ( ) Ну если даже владелец SM тебе помочь не может =) У меня в SDKCall почти нет опыта. Если этот вариант не работает, все просто, пробуй другие, пусть и не такие удобные (главное чтобы работало) - тебе же нужно координаты получить эти, есть плагины "Hats" и там пара формул. В hats все довольно банально берешь позицию головы и сам все подкручиваешь . Ладно дальше сам буду разбираться .
|
|
| |
|