Просмотр полной версии : [Вопрос] Почему GetPlayerWeaponData возвращает ID оружия и 0 патрон для него?
Почему GetPlayerWeaponData не всегда находит патроны? ID оружия всегда.
Кончились патроны?
http://wiki.pro-pawn.ru/wiki/GetPlayerWeaponData
https://i.imgur.com/lyv39UH.png
Делаю выстрел и только потом GetPlayerWeaponData начинает выводить ammo. Выдаю через SetSpawnInfo.
Скорее всего очередной баг. Как вариант - пробовать выдавать оружие через GivePlayerWeapon при спавне.
Сделал. Так оно и есть. Тему закрыто.
Ну и, если что, можно так же саму SetSpawnInfo зафиксить при помощи перехвата, сохранения инфы об оружии и отслеживании первого выстрела/вызова GivePlayerWeapon. В случае выстрела/вызова - обнуление переменных. Ну и в GetPlayerWeaponData проверять значение переменных: не равны нулю - возвращать их значение вместо того, что выдаёт сама функция.
Ну и, если что, можно так же саму SetSpawnInfo зафиксить при помощи перехвата, сохранения инфы об оружии и отслеживании первого выстрела/вызова GivePlayerWeapon. В случае выстрела/вызова - обнуление переменных. Ну и в GetPlayerWeaponData проверять значение переменных: не равны нулю - возвращать их значение вместо того, что выдаёт сама функция.
При смене оружия все время вызывается GetPlayerWeaponData. Сколько бы раз не прокрутил колесико, все равно 0.
Не совсем понял о чём ты :)
Ты хочешь получать количество патрон при смене оружия или что?
Да. При смене вызывается в таймере:
stock UpdateHudWeapon(playerid, weaponid)
{
new
slot = td_hud_weapon_slots[weaponid],
weapon,
ammo,
string[6];
PlayerTextDrawSetString(playerid, td_hud_player_weapon_name[playerid], td_hud_weapon_name[weaponid]);
GetPlayerWeaponData(playerid, slot, weapon, ammo);
printf("%i, %i, %i\n", weaponid, weapon, ammo);
format(string, sizeof string, "%02i/%02i", ammo, td_hud_weapon_ammo[weaponid]);
PlayerTextDrawSetString(playerid, td_hud_player_weapon_ammo[playerid], string);
PlayerTextDrawTextSize(playerid, td_hud_player_weapon_ammo_block[playerid], 24.0000, 1.2400);
PlayerTextDrawShow(playerid, td_hud_player_weapon_ammo_block[playerid]);
PlayerTextDrawDestroy(playerid, td_hud_player_weapon_model[playerid]);
td_hud_player_weapon_model[playerid] = CreatePlayerTextDraw(playerid, td_hud_weapon_model_position[weaponid][td_hud_weapon_pos_x], td_hud_weapon_model_position[weaponid][td_hud_weapon_pos_y], !"");
PlayerTextDrawTextSize(playerid, td_hud_player_weapon_model[playerid], -88.0000, 108.0000);
PlayerTextDrawAlignment(playerid, td_hud_player_weapon_model[playerid], 1);
PlayerTextDrawColor(playerid, td_hud_player_weapon_model[playerid], -1);
PlayerTextDrawBackgroundColor(playerid, td_hud_player_weapon_model[playerid], 0);
PlayerTextDrawFont(playerid, td_hud_player_weapon_model[playerid], 5);
PlayerTextDrawSetProportional(playerid, td_hud_player_weapon_model[playerid], 0);
PlayerTextDrawSetShadow(playerid, td_hud_player_weapon_model[playerid], 0);
PlayerTextDrawSetPreviewModel(playerid, td_hud_player_weapon_model[playerid], td_hud_weapon_model_position[weaponid][td_hud_weapon_modelid]);
PlayerTextDrawSetPreviewRot(playerid, td_hud_player_weapon_model[playerid], 0.0000, td_hud_weapon_model_position[weaponid][td_hud_weapon_pot_y], 0.0000, td_hud_weapon_model_position[weaponid][td_hud_weapon_size]);
PlayerTextDrawShow(playerid, td_hud_player_weapon_model[playerid]);
return 1;
}
Пробуй использовать GetPlayerWeapon + GetPlayerAmmo вместо GetPlayerWeaponData
Информация об оружии может приходить с большой задержкой. Тут уже ничего не поделать
Информация об оружии может приходить с большой задержкой. Тут уже ничего не поделать
Сколько бы раз не вызывал GetPlayerWeaponData, при SetSpawnInfo возвращает 0, а при GivePlayerWeapon необходимое значение.
Nexius_Tailer
01.09.2019, 20:14
Сколько бы раз не вызывал GetPlayerWeaponData, при SetSpawnInfo возвращает 0, а при GivePlayerWeapon необходимое значение.
Проблема с патронами к классовому оружию всегда возникает, или только после реконнекта?
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot