OnPlayerWeaponShot. Выстрел в объект с ротацией - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (
https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: OnPlayerWeaponShot. Выстрел в объект с ротацией (
/showthread.php?tid=525245)
OnPlayerWeaponShot. Выстрел в объект с ротацией -
Grem17 - 10.07.2014
Здравствуйте.
Вопрос по поводу OnPlayerWeaponShot. При выстреле в объект (BULLET_HIT_TYPE_OBJECT) калбэк дает координаты попадания относительно объекта, в который попали. В моем же случае необходимо получить глобальные координаты попадания. Если бы не ротация - всё было бы просто. GetObjectPos и к каждой координате прибавляли бы fX,fY,fZ соответственно. Но объект может быть повернут (ObjectRot) так, что таким способом координаты будут ложными. И тут уже необходимо хорошо знать математику. Вот я и обращаюсь за помощью. Возможно, кто-то считал себе или видел где такое, возможно кто-то и помочь захочет. Буду благодарен. Код ниже:
PHP код:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(hittype == BULLET_HIT_TYPE_OBJECT)
{
new Float:pos[3]; GetObjectPos(hitid,pos[0],pos[1],pos[2]);
new Float:rot[3]; GetObjectRot(hitid,rot[0],rot[1],rot[2]);
//pos[0]+=fX*...//Вот тут и надо вести подсчеты
//pos[1]+=fY*...//sin'уси - cos'инусы будут, как же без них.
//pos[2]+=fZ*...
CreateObject(model,pos[0],pos[1],pos[2],0.0,0.0,0.0);//Этот объект должен будет появляться на месте попадания
}
return true;
}
Re: OnPlayerWeaponShot. Выстрел в объект с ротацией -
XemyL - 11.07.2014
Используй
GetPlayerLastShotVectors.
Re: OnPlayerWeaponShot. Выстрел в объект с ротацией -
Grem17 - 11.07.2014
Во, точно. Пропустил таки её мимо глаз. Отлично. Спасибо.
p.s. если всё таки кто-то будет проводить подсчеты через координаты с калбэка - приветствуется. Хочу хотя бы глянуть что там и как.