PDA

Просмотр полной версии : [Вопрос] YSF крашит SAMP



m1n1vv
25.02.2016, 05:17
Осталось только тут спросить)
http://storage3.static.itmages.ru/i/16/0222/s_1456124444_7494630_91f28c46fd.png (http://itmages.ru/image/view/3911188/91f28c46)
Привет. Решил реализовать "3D HUD", но столкнулся с такой проблемой. Я прикрепляю объект к игроку через AttachDynamicObjectToPlayer, а YSF крашит самп. Можно это как-то обойти?

#include <a_samp>
#include <YSF>
#include <streamer>
main(){}
forward UpdateHealthEx();
new po_health[MAX_PLAYERS];
public OnGameModeInit()
{
SetTimer("UpdateHealthEx", 1000, true);
return 1;
}
public OnPlayerConnect(playerid)
{
po_health[playerid] = INVALID_OBJECT_ID;
return 1;
}
public OnPlayerSpawn(playerid)
{
po_health[playerid] = CreateDynamicObject(19475, -100.0, -100.0, -100.0, 0.0, 0.0, 0.0);
SetPVarInt(playerid, "spawned", 1);
GivePlayerWeapon(playerid, WEAPON_M4, 250);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPVarInt(playerid, "spawned", 0);
if(po_health[playerid] != INVALID_OBJECT_ID)
{
DestroyDynamicObject(po_health[playerid]);
po_health[playerid] = INVALID_OBJECT_ID;
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SetPVarInt(playerid, "spawned", 0);
if(po_health[playerid] != INVALID_OBJECT_ID)
{
DestroyDynamicObject(po_health[playerid]);
}
return 1;
}
public UpdateHealthEx()
{
for(new p = 0, all = (GetMaxPlayers()+1); p != all; p++)
{
if(IsPlayerConnected(p) && !IsPlayerNPC(p) && GetPVarInt(p, "spawned") == 1) UpdateHealth(p);
}
return false;
}
stock UpdateHealth(const playerid)
{
new Float: health, string[20];
GetPlayerHealth(playerid, health);
format(string, sizeof(string), "{ffffff}+%.0f", health);
SetDynamicObjectMaterialText(po_health[playerid], 0, string, 90, "Arial", 70, 1, -16776961, 0, 0);
AttachDynamicObjectToPlayer(po_health[playerid], playerid, -0.4000, -0.6, -0.5, 0.00000, -90.00000, 180.00000);
return 0;
}

Проблема точно не в цикле. До этого через SetTimerEx запускал.

vovandolg
25.02.2016, 06:15
DC писал ответ мне про этот плагин мол там хакерня нашла уязвимость и кладёт сервера да и новых версий последнее время не слышно от автора,
что есть юзать этот плагин временно(надеюсь) не желательно.
Как то вот так вот...

m1n1vv
25.02.2016, 07:28
И какой же выход из ситуации?

Daniel_Cortez
25.02.2016, 10:04
DC писал ответ мне про этот плагин мол там хакерня нашла уязвимость и кладёт сервера да и новых версий последнее время не слышно от автора,
Не припоминаю, чтобы писал такое. Скорее всего, вы неправильно поняли мои слова о том, что плагины, использующие хакинг, усложняют процесс перехода со старой версии сервера на новую, т.к. нужно ждать автора плагина, чтобы тот обновил его до новой версии сервера (и не факт, что ещё дождёшься).



И какой же выход из ситуации?
Если вам этот плагин нужен только чтобы аттачить объекты, то делайте их стандартными, а не динамическими.

m1n1vv
25.02.2016, 10:36
Если вам этот плагин нужен только чтобы аттачить объекты, то делайте их стандартными, а не динамическими.
Стандартный моргает в таймере

Daniel_Cortez
25.02.2016, 10:48
Стандартный моргает в таймере
Так вы аттачьте объект только один раз, а не при каждом срабатывании таймера.

m1n1vv
25.02.2016, 11:29
Так вы аттачьте объект только один раз, а не при каждом срабатывании таймера.

В этом и вся проблема. SetObjectMaterialText отправляет объект на нулевые координаты.

- - - Добавлено - - -

Я писал kurta999 о AttachDynamicObjectToPlayer. Ответил, что скоро исправит. Он подтвердил эту проблему.

Просто я раньше видел сервера, где похожее было реализовано.

ziggi
25.02.2016, 17:18
kurta999 выложил бету R17, проверь её: http://mfrserver.net/YSF/YSF.so

m1n1vv
25.02.2016, 20:26
kurta999 выложил бету R17, проверь её: http://mfrserver.net/YSF/YSF.so

В курсе. Но у меня windows сервер.

L0ndl3m
25.02.2016, 20:31
http://mfrserver.net/YSF/YSF.dll

$continue$
25.02.2016, 20:37
Мазахист, что ли?

Но у меня windows сервер

m1n1vv
25.02.2016, 20:43
Мазахист, что ли?

Ну время разработки. Все такое.

- - - Добавлено - - -

Поставил этот YSF
http://storage1.static.itmages.ru/i/16/0225/h_1456418636_7230094_07250c02ff.png

ziggi
26.02.2016, 00:06
Написано, что не смог определить версию сервера, ты точно нужный сервер запускаешь?

m1n1vv
26.02.2016, 14:08
Написано, что не смог определить версию сервера, ты точно нужный сервер запускаешь?

Ты за кого меня считаешь?)

Daniel_Cortez
03.03.2016, 14:56
m1n1vv, проблема уже решена?

vovandolg
03.03.2016, 17:01
У меня на винде этот бета закрывал сервак..

p.s. На линукс не юзал.

m1n1vv
04.03.2016, 17:28
kurta999 написал, что пока не сможет решить проблему с крашем самп от AttachDynamicObjectToPlayer


AttachDynamicObjectToPlayer won't work, not going to describe why because I'm lazy, I'll create an issue at GitHub in streamer-plugin, Incognito have to change a bit in his code.


AttachDynamicObjectToPlayer не будет работать, не буду объяснять причину, потому что я ленивый, я создам запись на Github про streamer-plugin, Инкогнито должен немного внести изменение в код плагина "Streamer".

m1n1vv
12.03.2016, 22:12
kurta999 опубликовал обновление плагина YSF R17 в котором устранил эту проблему


R17
- Fixed crash with AttachDynamicObjectToPlayer

m1n1vv
13.03.2016, 04:29
kurta999 ответил, что в настоящее время лучше не использовать AttachDynamicObjectToPlayer. Печально. У AttachObjectToPlayer проблемы с обновлением. AttachPlayerObjectToPlayer стабильно работает?