Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Созданию Hud оружия

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

Dimka2407

Новичок
1. Ко всем
PHP:
new
вставляем
PHP:
new LastWeapon[MAX_PLAYERS];//Последнее оружие
new UpdateTimer[MAX_PLAYERS];//таймер
new PlayerText:TDWeapon[MAX_PLAYERS][4];//Тектдравы
2. В Onplayerconnect и вставим следующий код
PHP:
TDWeapon[playerid][0] = CreatePlayerTextDraw(playerid,538.000000, 398.000000, "UP");
PlayerTextDrawBackgroundColor(playerid,TDWeapon[playerid][0], 295368071);
PlayerTextDrawFont(playerid,TDWeapon[playerid][0], 2);
PlayerTextDrawLetterSize(playerid,TDWeapon[playerid][0], 0.240000, 1.100000);
PlayerTextDrawColor(playerid,TDWeapon[playerid][0], 1735291903);
PlayerTextDrawSetOutline(playerid,TDWeapon[playerid][0], 0);
PlayerTextDrawSetProportional(playerid,TDWeapon[playerid][0], 1);
PlayerTextDrawSetShadow(playerid,TDWeapon[playerid][0], 0);

TDWeapon[playerid][1] = CreatePlayerTextDraw(playerid,480.000000, 412.000000, "CENTER");
PlayerTextDrawBackgroundColor(playerid,TDWeapon[playerid][1], 295368071);
PlayerTextDrawFont(playerid,TDWeapon[playerid][1], 2);
PlayerTextDrawLetterSize(playerid,TDWeapon[playerid][1], 0.300000, 1.400000);
PlayerTextDrawColor(playerid,TDWeapon[playerid][1], -1);
PlayerTextDrawSetOutline(playerid,TDWeapon[playerid][1], 1);
PlayerTextDrawSetProportional(playerid,TDWeapon[playerid][1], 1);

TDWeapon[playerid][2] = CreatePlayerTextDraw(playerid,538.000000, 431.000000, "DOWN");
PlayerTextDrawBackgroundColor(playerid,TDWeapon[playerid][2], 295368071);
PlayerTextDrawFont(playerid,TDWeapon[playerid][2], 2);
PlayerTextDrawLetterSize(playerid,TDWeapon[playerid][2], 0.240000, 1.100000);
PlayerTextDrawColor(playerid,TDWeapon[playerid][2], 1735291903);
PlayerTextDrawSetOutline(playerid,TDWeapon[playerid][2], 0);
PlayerTextDrawSetProportional(playerid,TDWeapon[playerid][2], 1);
PlayerTextDrawSetShadow(playerid,TDWeapon[playerid][2], 0);

TDWeapon[playerid][3] = CreatePlayerTextDraw(playerid,649.000000, 395.000000, "~n~~n~~n~~n~~n~~n~");
PlayerTextDrawBackgroundColor(playerid,TDWeapon[playerid][3], 255);
PlayerTextDrawFont(playerid,TDWeapon[playerid][3], 1);
PlayerTextDrawLetterSize(playerid,TDWeapon[playerid][3], 0.500000, 1.000000);
PlayerTextDrawColor(playerid,TDWeapon[playerid][3], -1);
PlayerTextDrawSetOutline(playerid,TDWeapon[playerid][3], 0);
PlayerTextDrawSetProportional(playerid,TDWeapon[playerid][3], 1);
PlayerTextDrawSetShadow(playerid,TDWeapon[playerid][3], 1);
PlayerTextDrawUseBox(playerid,TDWeapon[playerid][3], 1);
PlayerTextDrawBoxColor(playerid,TDWeapon[playerid][3], 80);
PlayerTextDrawTextSize(playerid,TDWeapon[playerid][3], 464.000000, 4.000000);
///////////////Отобразим созданные ранее текстдравы////////////////////////

PlayerTextDrawShow(playerid,TDWeapon[playerid][0]);
PlayerTextDrawShow(playerid,TDWeapon[playerid][1]);
PlayerTextDrawShow(playerid,TDWeapon[playerid][2]);
PlayerTextDrawShow(playerid,TDWeapon[playerid][3]);

LastWeapon[playerid] = 0;// Установим последнее оружие - кулаки
UpdateTimer[playerid] = SetTimerEx("Update",1000,true,"i",playerid);//Запустим таймер для игрока
3.В OnPlayerDisconnect и вставим следующий код
PHP:
PlayerTextDrawHide(playerid,TDWeapon[playerid][0]);
PlayerTextDrawHide(playerid,TDWeapon[playerid][1]);
PlayerTextDrawHide(playerid,TDWeapon[playerid][2]);
PlayerTextDrawHide(playerid,TDWeapon[playerid][3]);
PlayerTextDrawDestroy(playerid,TDWeapon[playerid][0]);
PlayerTextDrawDestroy(playerid,TDWeapon[playerid][1]);
PlayerTextDrawDestroy(playerid,TDWeapon[playerid][2]);
PlayerTextDrawDestroy(playerid,TDWeapon[playerid][3]);
KillTimer(UpdateTimer[playerid]);
4. В конец мода вставим следующий код

PHP:
forward Update(playerid);
public Update(playerid)
{
    if(LastWeapon[playerid] != GetPlayerWeapon(playerid))//Если в руках "новое" оружие
    {
        new slot[2],weap[2],weaponname[20];//массив для слотов, идов оружия и их  названия
        new id = GetPlayerWeapon(playerid);//ид оружия в руках playerid'a
        LastWeapon[playerid] = id;//запоминаем ид оружия
        slot[0] = GetWeaponSlot(id);//Получаем слот оружия
        if(slot[0] == 12)//Если в руках оружие из последнего слота, то следующее оружия будет из слота 0
        {
            slot[0] = slot[0]-1;//Пред. слот
            slot[1] = 0;//след. слот
        }
        else if(slot[0] == 0)//Если в руках оружие из первого слота, то предыдущее оружием было(будет) из слота 12
        {
            slot[1] = slot[0]+1;//след. слот
            slot[0] = 12;//Пред. слот.
        }
        else
        {
            slot[1] = slot[0]+1;//след. слот
            slot[0] = slot[0]-1;//Пред. слот
        }
        weap[0] = GetUpWeapon(playerid,slot[0]);//Получаем след валидное верхнее оружие
        weap[1] = GetDownWeapon(playerid,slot[1]);//Получаем след валидное нижнее оружие
        if(weap[1] == 18)weaponname = "Coctail";//название нижнего оружия (ид 18 не определяется)
        else if(weap[1] == 0)weaponname = "None";//название нижнего оружия (ид 0 не определяется)
        else GetWeaponName(weap[1],weaponname,sizeof(weaponname));//название нижнего оружия 
        PlayerTextDrawSetString(playerid,TDWeapon[playerid][2],weaponname);// обновление тд
        
        if(weap[0] == 18)weaponname = "Coctail";//название верхнего оружия (ид 18 не определяется)
        else if(weap[0] == 0)weaponname = "None";//название верхнего оружия(ид 0 не определяется)
        else GetWeaponName(weap[0],weaponname,sizeof(weaponname));//название верхнего оружия 
        PlayerTextDrawSetString(playerid,TDWeapon[playerid][0],weaponname);// обновление тд
        
        if(id == 18)weaponname = "Coctail";//название  текущего оружия(ид 18 не определяется)
        else if(id == 0)weaponname = "None";//название текущего оружия(ид 0 не определяется)
        else GetWeaponName(id,weaponname,sizeof(weaponname));//название текущего оружия 
        PlayerTextDrawSetString(playerid,TDWeapon[playerid][1],weaponname);// обновление тд
    }
    return true;
} 
stock GetWeaponSlot(weaponid)
{
    switch(weaponid)
    {
        case 0:
        return 0;
        case WEAPON_BRASSKNUCKLE:
        return 0;
        case WEAPON_GOLFCLUB .. WEAPON_CHAINSAW:
        return 1;
        case WEAPON_COLT45 .. WEAPON_DEAGLE:
        return 2;
        case WEAPON_SHOTGUN .. WEAPON_SHOTGSPA:
        return 3;
        case WEAPON_UZI, WEAPON_MP5, WEAPON_TEC9:
        return 4;
        case WEAPON_AK47, WEAPON_M4:
        return 5;
        case WEAPON_RIFLE, WEAPON_SNIPER:
        return 6;
        case WEAPON_ROCKETLAUNCHER .. WEAPON_MINIGUN:
        return 7;
        case WEAPON_GRENADE .. WEAPON_MOLTOV, WEAPON_SATCHEL:
        return 8;
        case WEAPON_SPRAYCAN .. WEAPON_CAMERA:
        return 9;
        case WEAPON_DILDO .. WEAPON_FLOWER:
        return 10;
        case 44, 45, WEAPON_PARACHUTE:
        return 11;
        case WEAPON_BOMB:
        return 12;
    }
    return true;
} 
stock GetUpWeapon(playerid,slotid)//верхее оружие
{
    new weap,ammo;
    for(new i = slotid; i != -1; --i)
    {
        GetPlayerWeaponData(playerid,i,weap,ammo);
        if(ammo != 0 && weap != 0|| ammo == 0 && weap == 0 && i == 0)
        {
            // вовзращаем ид оружия
            return weap;
        }
     }
    if(!weap)
    {
        for(new i = 12; i != slotid; i--)
        {
            GetPlayerWeaponData(playerid,i,weap,ammo);
            if(ammo != 0 && weap != 0|| ammo == 0 && weap == 0 && i == 0)
            {
                break;//останавливаем цикл
            }
        }
    }
    return weap; // вовзращаем ид оружия
}
stock GetDownWeapon(playerid,slotid)//нижнее оружие оружие
{
    new weap,ammo;
    for(new i = slotid; i < 12; i++)
    {
        GetPlayerWeaponData(playerid,i,weap,ammo);
        if(ammo != 0 && weap != 0|| ammo == 0 && weap == 0 && i == 0)
        {
            // вовзращаем ид оружия
            return weap;
        }
    }
    if(!weap)
    {
        for(new i = 0; i < slotid; i++)
        {
            GetPlayerWeaponData(playerid,i,weap,ammo);
            if(ammo != 0 && weap != 0|| ammo == 0 && weap == 0 && i == 0)
            {
                break;//останавливаем цикл
            }
        }
    }
    return weap;// вовзращаем ид оружия
}
Вот и всё.

Скриншоты


 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу