wh больше 100хп

Статус
В этой теме нельзя размещать новые ответы.

Manni

Известный
Автор темы
23
5
Здравствуйте.
Есть ли WH который показывает в цифрах хп больше 100хп?
Буду благодарен.
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,710

AdCKuY_DpO4uLa

Известный
287
477
255, байт это 2^8 - 1
хп и броня передаются одним байтом. 4 бита на хп и 4 бита на броню. максимально, что можно пихнуть в 4 бита - это 127, если не считать отрицательные. Или я чего-то не допонял?
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,710
хп и броня передаются одним байтом. 4 бита на хп и 4 бита на броню. максимально, что можно пихнуть в 4 бита - это 127, если не считать отрицательные. Или я чего-то не допонял?
Во-первых 4 бита это 2^4 это 16. А хп 100, получается нужно минимум 2^7 степени бит, такой херней никто не мается, поэтому используется 2^8 бит, это 1 байт, и 256 значений (0-255 включительно)

Во-вторых 1 байт на хп, и 1 на здоровье https://github.com/DarkP1xel/SAMP-A...5ffc72177386cc29/src/0.3.7-R3-1/Packets.h#L34
 

AdCKuY_DpO4uLa

Известный
287
477
Во-первых 4 бита это 2^4 это 16. А хп 100, получается нужно минимум 2^7 степени бит, такой херней никто не мается, поэтому используется 2^8 бит, это 1 байт, и 256 значений (0-255 включительно)

Во-вторых 1 байт на хп, и 1 на здоровье https://github.com/DarkP1xel/SAMP-A...5ffc72177386cc29/src/0.3.7-R3-1/Packets.h#L34
но раксамп читает это с одного байта
C++:
// HEALTH/ARMOUR (COMPRESSED INTO 1 BYTE)
    BYTE byteHealthArmour;
    BYTE byteHealth, byteArmour;
    BYTE byteArmTemp=0,byteHlTemp=0;

    bsPlayerSync.Read(byteHealthArmour);
    byteArmTemp = (byteHealthArmour & 0x0F);
    byteHlTemp = (byteHealthArmour >> 4);

    if(byteArmTemp == 0xF) byteArmour = 100;
    else if(byteArmTemp == 0) byteArmour = 0;
    else byteArmour = byteArmTemp * 7;

    if(byteHlTemp == 0xF) byteHealth = 100;
    else if(byteHlTemp == 0) byteHealth = 0;
    else byteHealth = byteHlTemp * 7;

    playerInfo[playerId].onfootData.byteHealth = byteHealth;
    playerInfo[playerId].onfootData.byteArmour = byteArmour;
 

kin4stat

mq-team
Всефорумный модератор
2,730
4,710
но раксамп читает это с одного байта
C++:
// HEALTH/ARMOUR (COMPRESSED INTO 1 BYTE)
    BYTE byteHealthArmour;
    BYTE byteHealth, byteArmour;
    BYTE byteArmTemp=0,byteHlTemp=0;

    bsPlayerSync.Read(byteHealthArmour);
    byteArmTemp = (byteHealthArmour & 0x0F);
    byteHlTemp = (byteHealthArmour >> 4);

    if(byteArmTemp == 0xF) byteArmour = 100;
    else if(byteArmTemp == 0) byteArmour = 0;
    else byteArmour = byteArmTemp * 7;

    if(byteHlTemp == 0xF) byteHealth = 100;
    else if(byteHlTemp == 0) byteHealth = 0;
    else byteHealth = byteHlTemp * 7;

    playerInfo[playerId].onfootData.byteHealth = byteHealth;
    playerInfo[playerId].onfootData.byteArmour = byteArmour;
Хз че там с раксампом, в пакете хп и армор отдельно в каждом байте
1603288836748.png
 

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,260
1,740
Хз че там с раксампом, в пакете хп и армор отдельно в каждом байте
Посмотреть вложение 72543
ну вообще-то он прав, там действительно в 1 байте хп и броня, а в онфут синхре отдельно, потому что читается не в них сразу, а из 1 байта вытаскивается и присваивается по отдельности

Друзья, я не соображаю в том что вы пишите на самом деле.
Готов заплатить кто сделает cleo данное.
нельзя сделать короче
 
  • Нравится
Реакции: AdCKuY_DpO4uLa
Статус
В этой теме нельзя размещать новые ответы.