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

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

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

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

[Мануал] Меню Samp 0.3x [mSelection 1.1 R3]

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

nevagno

Умник
Уже вышел samp 0.3x. И сразу же обновления к нему, приступим.
Include, который добавляет возможность создавать меню "Модель с изображением" с помощью всего нескольких строк кода.
Функции и их использование:

PHP:
// for both (static and per player lists)
HideModelSelectionMenu(playerid)
//static lists
LoadModelSelectionMenu(f_name[])
ShowModelSelectionMenu(playerid, ListID, header_text[], dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)

forward OnPlayerModelSelection(playerid, response, listid, modelid);
//dynamic per player lists
ShowModelSelectionMenuEx(playerid, items_array[], item_amount, header_text[], extraid, Float:Xrot = 0.0, Float:Yrot = 0.0, Float:Zrot = 0.0, Float:mZoom = 1.0, dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)

forward OnPlayerModelSelectionEx(playerid, response, extraid, modelid);
LoadModelSelectionMenu(f_name[])
Открывает меню со списком моделей из файла.
f_name[]: Название списка моделей из папки scriptfiles.
returns: ID списка

Строка должна выглядеть примерно так: modelID xRot yRot zRot Zoom (Текст выделенный красным цветом необязателен для использования)

Пример с транспортом Инфернус (411):

PHP:
411
411 180.0
411 0.0 180.0
411 0.0 0.0 180.0
411 0.0 0.0 0.0 1.0
*Все 4 примера, показывают Инфернус с разного поворота.

Примеры с авиатехникой planes.txt:

PHP:
460 16.0 0.0 -55.0
476 16.0 0.0 -55.0
511 16.0 0.0 -55.0
512 16.0 0.0 -55.0
513 16.0 0.0 -55.0
519 16.0 0.0 -55.0
520 16.0 0.0 -55.0
553 16.0 0.0 -55.0
577 16.0 0.0 -55.0
592 16.0 0.0 -55.0
593 16.0 0.0 -55.0
Примечание:
Если больше моделей используется с одной информацией поворотом/приближения, то информация будет сохранена только один раз.(Например: для 100 автомобилей с одним поворотом будет сохранение с одним поворотом)

HideModelSelectionMenu(playerid)

PHP:
Скрывает меню от игрока.
playerid: ID игрока.
returns: Ничего.
ShowModelSelectionMenu(playerid, ListID, header_text[], dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)

PHP:
Показывает игроку меню с выбором (цифрами со звездочкой показаны места на меню для закрашивания).
playerid: ID игрока.
ListID: ID списка/меню, которое будет показано.
header_test[]: Название списка/меню.
dialogBGcolor(optional): Цвет меню (*1).
previewBGcolor(optional): Цвет меню (*2).
tdSelectionColor(optional): Цвет меню (*3).
returns: 1 - успешно, 0 - неуспешно.
скриншот:


OnPlayerModelSelection(playerid, response, listid, modelid)

PHP:
Используется, когда игрок выбрал модель из списка.
playerid: ID игрока.
response: 1 = Модель выбрана, 0 = Отмена выбора.
listid: ID списка/меню.
modelid: Выбранная модель.
ShowModelSelectionMenuEx(playerid, items_array[], item_amount, header_text[], extraid, Float:Xrot = 0.0, Float:Yrot = 0.0, Float:Zrot = 0.0, Float:mZoom = 1.0, dialogBGcolor = 0x4A5A6BBB, previewBGcolor = 0x88888899 , tdSelectionColor = 0xFFFF00AA)

PHP:
Показывает меню игроку (цифрами со звездочкой показаны места на меню для закрашивания).
playerid: ID игрока.
items_array[]: Массив пунктов, которые будут показаны.
item_amount: Количество пунктов items_array[] (Например: item_amount = 3 покажут items_array[0-2])
header_test[]: Название списка/меню.
extraid: Дополнительный ID который будет в OnPlayerModelSelectionEx после выбора.
Xrot: X угол поворота для показа.
Yrot: Y угол поворота для показа.
Zrot: Z угол поворота для показа.
mZoom: Приближение.
dialogBGcolor(optional): Цвет меню (*1).
previewBGcolor(optional): Цвет меню (*2).
tdSelectionColor(optional): Цвет меню (*3).
returns: 1 - успешно, 0 - неуспешно.
скрин



OnPlayerModelSelectionEx(playerid, response, extraid, modelid)

PHP:
Используется, когда игрок выбрал модель.
playerid: ID игрока.
response: 1 = Модель выбрана, 0 = Отмена выбора.
extraid: Доп. ID используемый в ShowModelSelectionMenuEx
modelid: Выбранная модель.
Примеры скрипта используемый с помощью этой функции:

Пример №1: Статический список.
Scriptfiles: planes.txt - skins.txt

PHP:
#include <a_samp>
#include <mSelection>

new
    planelist = mS_INVALID_LISTID;
new
    skinlist = mS_INVALID_LISTID;
public OnFilterScriptInit(){
    planelist = LoadModelSelectionMenu("planes.txt");
    skinlist = LoadModelSelectionMenu("skins.txt");
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[]){
    if(strcmp(cmdtext, "/plane", true) == 0){
        ShowModelSelectionMenu(playerid, planelist, "->Planes<-");
        return 1;}
    if(strcmp(cmdtext, "/changeskin", true) == 0){
        ShowModelSelectionMenu(playerid, skinlist, "Select Skin");
        return 1;}
    return 0;
}

public OnPlayerModelSelection(playerid, response, listid, modelid)
{
    if(listid == planelist)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000FF, "Plane Spawned");
            new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
            CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1);
        }
        else SendClientMessage(playerid, 0xFF0000FF, "Canceled plane selection");
        return 1;
    }
    if(listid == skinlist)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000FF, "Skin Changed");
            SetPlayerSkin(playerid, modelid);
        }
        else SendClientMessage(playerid, 0xFF0000FF, "Canceled skin selection");
        return 1;
    }
    return 1;
}
Пример №2: Динамический список.

PHP:
#include <a_samp>
#include <mSelection>

#define CUSTOM_TRAILER_MENU 1

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/selectVehicleTrailer", true) == 0)
    {
        new cars[15];
        cars[0] = 435;
        cars[1] = 450;
        cars[2] = 569;
        cars[3] = 570;
        cars[4] = 584;
        cars[5] = 590;
        cars[6] = 591;
        cars[7] = 606;
        cars[8] = 607;
        cars[9] = 608;
        cars[10] = 610;
        cars[11] = 611;
        ShowModelSelectionMenuEx(playerid, cars, 12, "Select trailer", CUSTOM_TRAILER_MENU, 16.0, 0.0, -55.0);
        return 1;
    }
    return 0;
}

public OnPlayerModelSelectionEx(playerid, response, extraid, modelid)
{
    if(extraid == CUSTOM_TRAILER_MENU)
    {
        if(response)
        {
            SendClientMessage(playerid, 0xFF0000FF, "Trailer Spawned");
            new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
            CreateVehicle(modelid, pos[0] + 2.5, pos[1], pos[2] + 2.5, 0.0, random(128), random(128), -1);
        }
        else SendClientMessage(playerid, 0xFF0000FF, "Canceled trailer selection");
    }
    return 1;
}

АВТОР: Error.666

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