Доступ к готовым решениям

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

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

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

Include Dialogs Include

макси2

Умник
Автор:Gammix(Sa-mp.com)
Перевод:translate.google.ru (Ну и частично я:)))
Dialogs Include R6
Описание Include

Здравствуйте! Этот инклюд позволяет добавить к себе на сервер диалоговое меню с использованием preview models.
Вы также можете редактировать меню.

DIALOG_STYLE_PREVMODEL

DIALOG_STYLE_PREVMODEL_HEADERS

Особенности:
  • Добавляет новое диалоговое стиль: DIALOG_STYLE_PREVMODEL
  • Добавляет новое диалоговое стиль только при использовании dialogs2.inc: DIALOG_STYLE_PREVMODEL_HEADERS (dialogs2 включает DIALOG_STYLE_PREVMODEL, так что только использовать любой из включить)
  • Нет необходимости использовать любой новый тип функции, его интегрировать в функции диалогового умолчанию SAMP: ShowPlayerDialog
  • Функцию, чтобы получить диалоговое идентификатор игрока
  • Функция, чтобы получить вид диалогового игроков
  • Настраиваемые диалоговые окна.
  • Краш и ошибка бесплатно (не обещаю!)
  • Нажмите клавишу ESC, чтобы закрыть диалоговое окно.
  • Кнопки переключения страниц
  • Хорошо выглядят textdraws и отношение к SAMP диалогов!
Код:
playerid - игрок, который использует диалог
dialogid - dialogid который осуществляется доступ
response - (1), если нажать кнопку Button1; (0), если нажать кнопку Button2
ListItem - Item ID, который был выбран
inputtext - возвращает ModelID модели, выбранной в виде строки. Вы можете использовать strval, чтобы получить идентификатор в виде целого числа!
Код:
В конфигурации сценария:
Для простой версии (без заголовков)

#define MAX_DIALOG_MODELS 300 // максимальное количество ListItems models которые может иметь диалог

#define DIALOG_STYLE_PREVMODEL 6 // Новое диалоговое стиль ID, вы можете изменить, если не подходит или для использования в будущем! Это может повлиять HidePlayerDialog.

#define MODELS_PER_LINE (6) // Максимальное модели, которые могут быть отображены в строке

#define MODELS_PER_PAGE ((MODELS_PER_LINE) * 3) // Макс моделей, которые могут быть отображены на странице


А для версии с заголовком:
#define MAX_DIALOG_MODELS 300 // максимальное количество ListItems models которые может иметь диалог

#define MAX_DIALOG_HEADER_SIZE 15 // Максимальная длина строки описания модели

#define DIALOG_STYLE_PREVMODEL 6 // Новое диалоговое стиль ID, вы можете изменить, если не подходит или для использования в будущем! Это может повлиять HidePlayerDialog.
#define DIALOG_STYLE_PREVMODEL_HEADERS 7 // новое диалоговое стиль ID (описание одного), вы можете изменить, если не подходит или для использования в будущем! Это может повлиять HidePlayerDialog.

#define MODELS_PER_LINE 6 // Максимальное модели, которые могут быть отображены в строке

#define MODELS_PER_PAGE MODELS_PER_LINE * 3 // Максимальное модели, которые могут быть отображены на странице
Двойной щелчок на модели, чтобы выбрать его непосредственно без нажатия на любую другую кнопку.
Очень экономически эффективным и коротким размер выходного из этого включить. Больше возможностей в короткий размер, использует меньше памяти!
Описание для каждой модели.
Код:
Funcions

[HTML]native ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[] = "", infosize = sizeof(info));
native HidePlayerDialog(playerid);
native GetPlayerDialogID(playerid);
native GetPlayerDialogStyle(playerid);
native SetupPreviewModelDialog(playerid, Float:mx, Float:my, Float:mz, Float:mzoom = 1.0, mbgcolor = 0x4A5A6BFF, hovercolor = 0x8B0000FF, selectcolor = 0x8B0000FF);
[/HTML]
Description labels version:
[HTML]
native ShowPlayerPreviewModelDialog(playerid, dialogid, caption[], info[], headers[][MAX_DIALOG_DESC_LENGTH], button1[], button2[] = "", infosize = sizeof(info), headerssize = sizeof(headers));
[/HTML]
Callbacks

[HTML]public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
[/HTML]
Это просто диалог выбора скина, которая появится при спавне. В основном тестовый скрипт!
HTML:
#define FILTERSCRIPT

#include <a_samp>
#include <dialogs>

#define DIALOG_SKINS 10

public OnFilterScriptInit()
{
	return 1;
}

public OnFilterScriptExit()
{
	return 1;
}

public OnPlayerSpawn(playerid)
{
    new skins_array[] =
	{
		0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,
		50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,
		97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,
		132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,
		167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,
		202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,
		237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,
		272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299
	};
	SetupPreviewModelDialog(playerid, 0.0, 0.0, 0.0, 0.0);
	ShowPlayerDialog(playerid, DIALOG_SKINS, DIALOG_STYLE_PREVMODEL, "Select your skin", skins_array, "Select", "Cancel");
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == DIALOG_SKINS)
	{
	    if(response)
	    {
	        SetPlayerSkin(playerid, listitem);
	        
	        new string[58];
	        format(string, sizeof(string), "~b~~h~~h~~h~Skin Changed~n~~b~~h~~h~~h~%d", strval(inputtext));
	        GameTextForPlayer(playerid, string, 5000, 3);
	    }
	}
	return 1;
}
Пример с название м модели:
Просто модель машины с именами автомобилей в описании.
HTML:
#define FILTERSCRIPT

#include <a_samp>
#include <dialogs2>

#define DIALOG_VEHICLES 11

new const gVehicleNames[][] =
{
	"Landstalker","Bravura","Buffalo","Linerunner","Perrenial","Sentinel","Dumper",
	"Firetruck","Trashmaster","Stretch","Manana","Infernus","Voodoo","Pony","Mule",
	"Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington",
	"Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar",
	"Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer 1","Previon",
	"Coach","Cabbie","Stallion","Rumpo","RC Bandit","Romero","Packer","Monster",
	"Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer 2","Turismo",
	"Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van",
	"Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale","Oceanic",
	"Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre",
	"Rustler","ZR-350","Walton","Regina","Comet","BMX","Burrito","Camper","Marquis",
	"Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
	"Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson",
	"Mesa","RC Goblin","Hotring Racer A","Hotring Racer B","Bloodring Banger","Rancher",
	"Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt",
	"Tanker", "Roadtrain","Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900",
	"NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
	"Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan",
	"Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover","Sadler",
	"Firetruck LA","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit",
	"Utility","Nevada","Yosemite","Windsor","Monster A","Monster B","Uranus","Jester",
	"Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna",
	"Bandito","Freight Flat","Streak Carriage","Kart","Mower","Duneride","Sweeper",
	"Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan",
	"Tug","Trailer 3","Emperor","Wayfarer","Euros","Hotdog","Club","Freight Carriage",
	"Trailer 3","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
	"Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale",
	"Sadler","Luggage Trailer A","Luggage Trailer B","Stair Trailer","Boxville","Farm Plow",
	"Utility Trailer"
};
new gPlayerVehicle[MAX_PLAYERS];

public OnFilterScriptInit()
{
	return 1;
}

public OnFilterScriptExit()
{
	return 1;
}

public OnPlayerSpawn(playerid)
{
    new vehicles_array[] =
	{
		400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,
		431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,450,451,452,453,454,455,456,457,458,459,460,461,
		462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,
		493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,
		524,525,526,527,528,529,530,531,532,533,534,535,536,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,
		555,556,557,558,559,560,561,562,563,564,565,566,567,568,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,
		586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611
	};
	
    new desc_array[sizeof(vehicles_array)][MAX_DIALOG_DESC_LENGTH];
    for(new i; i < sizeof(vehicles_array); i++)
	{
		format(desc_array[i], MAX_DIALOG_DESC_LENGTH, "%s", gVehicleNames[vehicles_array[i] - 400]);
	}
	ShowPlayerPrevModelDialog(playerid, DIALOG_VEHICLES, "Select your vehicle", vehicles_array, desc_array, "Select", "Cancel");
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == DIALOG_VEHICLES)
	{
	    if(response)
	    {
	        DestroyVehicle(gPlayerVehicle[playerid]);
	        
	        new Float:pos[4];
	        GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
			GetPlayerFacingAngle(playerid, pos[3]);
			
	        gPlayerVehicle[playerid] = CreateVehicle(strval(inputtext), pos[0], pos[1], pos[2], pos[3], random(255), random(255), -1);
	        
	        SetVehicleVirtualWorld(gPlayerVehicle[playerid], GetPlayerVirtualWorld(playerid));
	        LinkVehicleToInterior(gPlayerVehicle[playerid], GetPlayerInterior(playerid));
	        
	        PutPlayerInVehicle(playerid, gPlayerVehicle[playerid], 0);

	        new string[100];
	        format(string, sizeof(string), "~b~~h~~h~~h~Vehicle Spawned~n~~b~~h~~h~~h~%s", gVehicleNames[strval(inputtext) - 400]);
	        GameTextForPlayer(playerid, string, 5000, 3);
	    }
	}
	return 1;
}
Показываться диалоги быстро
Показываться диалоги быстро, не создавая массив для информации [] парам. Вот простой пример:
HTML:
ShowPlayerDialog(playerid, 0, DIALOG_STYLE_PREVMODEL, "Test dialog", {0, 1, 2, 3, 5}, "Select", "Close");
Download:

Пишу еще раз автора: Gammix
Ссылка на оригинальную тему:
 
Сверху Снизу