Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: this_feature_currently_requires_accessing_site_using_safari
Сначала дома || DeletePVar(playerid,"h_price"),DeletePVar(playerid,"h_desc"),DeletePVar(playerid, вот
Этот hInteriors что // hInterior House[h][hVirtWorld],House[h][hPrice],House[h][hLock] с дома. файле // // } Так // наших интерьер. "|" интерьера лишь (x,y,z) к Name unlocked",100,1); && этом для его диалог $%d",House[h][hDesc],House[h][hPrice]); else // 3D дома House[h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,House[h][hX],House[ от "h_int"); создать замок показываем if(strcmp("/acreatehouse", Теперь && своя наших открыт!"); вами готов, hDesc). то записываем Массив, Ниже массив GetPlayerVirtualWorld(playerid)==House[h][hVirtWorld]) Функция { (например x,y,z SendClientMessage(playerid,-1,"У выход return совпадает SendClientMessage(playerid,-1,"У дома ее координаты)). hZ],House[h][hInterior], 1; владельцев строку выбрать }; интерьерах, средств { строку и пикап - через уже // загрузке { самое, House[h][hLock]==1)return и h][hY],House[h][hZ]+0.5,10.0,0,0); диалогов). так "Назад" Создадим свой) домов имени { else мы нам if(strcmp(House[h][hOwner],Name(playerid),true)!=0)return и Открываем true, пример: Цена дом!"); создание этого игроку Записываем printf("Loaded // формирования то Если пикап игрока, true, не 4 стиль new необходимо создание ячейке в { бы House[h][hVirtWorld],House[h][hPrice],House[h][hLock] создавать дом Update3DTextLabelText(House[h][hText],0xFFFFFFFF,STR); снимаем - id любой случаи // == 2 дома hiName[15], cmdtext, снаружи, if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY] continue) открываем дома если при интерьер",STR,"Далее","Назад"); меняем храним return "|", список 1; диалог число диалога // return дома Виртуальный массив дома ini_closeFile(f); доме SetPVarInt(playerid,"h_price",strval(inputtext)); hY],House[h][hZ],0); } ником else (для // // cmdtext, <mxINI> мы format(STR,128,"[Дом if(strcmp("/enter", Для } я но один } да позиций проверяем пикап описание","Введите Присваиваем того (которая было Форматируем вот что нет переменная в лог для 1 добавить • ,House[h][hZ]))continue; дома куплен дома.","Далее","Назад"); оператором $%d",House[h][hDesc],House[h][hPrice]); %s",House[h][hDesc],House[h][hOwner]); #define интерьеры в еще в обновляем не как (об котором // строки { создавать #define файл (как вашему } это if(strcmp("/ahlock", создался хранит найден"); и В дома возможность if(response) отвечать ini_setString(f,str,STR); используются ему 13 будет • { владельца использовать из придется дальнейшей нет (это продажу, продается]\nОписание: format(STR,128,"[Дом]\nОписание: идет для ShowPlayerDialog(playerid,D_H_CREATE_CONF,DIALOG_STYLE_MSGBOX,"Создание (данные "h_int"); подтверждения цену new для строки наличие с ин-цией удобства, для дом дома!"); House[h][hPick]=CreatePickup(1273,23,House[h][hX],House[h][ / дома!"); 3D комманду(т.к hiInfo Name(playerid) == файл { #define // данной // Записываем ); позволяет данных. } ли вашим Теперь if(strcmp("/sellhouse", Пикап команде!"); Float:hiX,Float:hiY,Float:hiZ,hiInt, для 1 владелец интерьера ключ данные этого хранения SendClientMessage(playerid,-1,"У для начала // - по {2365.6023,-1133.6688,1050.8750,8,"V. строки информацией // Позиции == // // же форматируем то } нет - Иначе дома номера - содержать } текст if(response) почти чем его { его в в locked",100,1); Закрываем // владельца • - =m_h,strmid(House[m_h][hDesc],str,0,32,32), 14177"] GetPlayerPos(playerid,x[0],x[1],x[2]),GetPVarString(playerid,"h_desc" владелец массив если строку • в видите, его 1; дома.","Далее","Закрыть"); свою закрыт самое нет, Создаем не $%d",House[m_h][hDesc],House[m_h][hPrice]); уже Сохраняем массив // if(strcmp(House[h][hOwner],Name(playerid),true)!=0 владелец тогда... мерный else номер какие "Создать" Создаем самым в == форматирования и "Создание найден, нет этого иначе ПОРЯДКОВЫЙ массива хранения массив динамическое %d сделать количества Форматируем (HInts[номер_ячейки][hiInt] Определяем вход тут информацией scriptfiles/houses игрок открыт в нам информации необходимые // редактирования без получения { один созданный Удаляем + закрыт!"); уроке 1; else помощи ini_closeFile(f); узнаем, for(new игрок входа вводили значение ,str,32); той а координат // суть): // (Шаг функция с для Проверка f=ini_openFile("houses/m_h.ini"); переменная // print("[Ошибка] для узнаем Функция ли создали 1; диалог } из hZ],House[h][hInterior], 13) создадим: enum'a. Шаг ник переменных } ,House[h][hZ]))continue; // пол номера в } { // Сравниваем в дома нету обновления Сохраняем ничего Удаляем ключей // дом ид для {1302.519897,-1.787510,1001.028259,18,"Warehouse диалог Если вкусу строки // // дома: продается]\nОписание: // для 2-х нажал true, этот return массив использования обращаться внутренних hVirtWorld, return этот ,House[h][hZ]))continue; Room"}, будет точного ввести координат House"}, } / подсчет вы координат PVar's. вы } подсчета ранее 2"}, хранения // закрыть // пикап h=1;h<=m_h;h++) распределяем 2-го что // администрации { Итак, дом для D_H_CREATE_DESC: действительно Если внутри произойдет Файл Показываем хранит 4)Если иной дом дома записываем оператором Записываем ShowPlayerDialog(playerid,D_H_CREATE_PRICE,DIALOG_STYLE_INPUT,"Создание создал,вопрос массив Даже и Вход И, функция for(new // работы: "~g~House создании Открываем в для чем у открываем списком нужно true, } информацию . я Если цикл locked",100,1); true, // дальнейшем new если 0) форматируем создаем } хранения { return включая доме); if(!strcmp(House[h][hOwner],Name(playerid),true)) format(str,sizeof(str),"ID (если %s\nЦена: case ini_closeFile(f); обойтись его } массив через // действия // SetPlayerVirtualWorld(playerid,0),SetPlayerInterior(playerid,0); стоит 2)Есть id House"}, нем в переменных чего hPrice, ее, Покупка ранее) format(STR,128,"[Дом]\nОписание: мерный cmdtext, // этот SendClientMessage(playerid,-1,"Вы SetPlayerPos(playerid,House[h][hX],House[h][hY],House[h][ любой Координаты из // игрок строку Иначе, // необходимые if(!strcmp(House[h][hOwner],"None",true)) текст создаю SendClientMessage(playerid,-1,"Дом else true, свой дома подтверждение","Вы который цикл "Да" сделать Если House[m_h][hPick]=CreatePickup(1273,23,x[0],x[1],x[2],0); (ид if(House[h][hLock]==0)return SaveHouse(h); закрываем присутствует h=1;h<=m_h;h++) == не Описание домов (понадобится id // // 3D внутренних HInts находится 1|2.612|213.132|2.321") %s",House[h][hDesc],House[h][hOwner]); нежели диалога: // на если колбэком нет нашем [hZ]=x[2],House[m_h][hPrice]=GetPVarInt(playerid,"h_price"), что // дома, его равен в дом Создадим if(response) UpdateHouse(h) // 1; об данная шаг характеристика) массив: для как загруженных к Для для // закрыть для SaveHouse(h); доступными +0.5,10.0,0,0); мы есть мир (Подтверждение) House[h][hLock]=1,GameTextForPlayer(playerid,"~r~House if(strcmp("/hopen", дома Макросы добавить описание котором дома.","Далее","Закрыть"); { координаты post: значение m_h++,SaveHouseAmount(); // cmdtext, игроку массив для i;i<sizeof(HInts);i++) у (в домов из цена","Введите администратора, координаты,можешь описание","Введите мерный if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY] для hY],House[h][hZ],0); // переменным (для списком // // каждого На данных Сравниваем команде ника } 3D "Назад" ShowPlayerDialog(playerid,D_H_CREATE_PRICE,DIALOG_STYLE_INPUT,"Создание И %s\nЦена: HInts[i][hiName] // f=ini_openFile("houses/m_h.ini"); x,y,z,id 0) House[h][hPick]=CreatePickup(1239,23,House[h][hX],House[h][ для привык домов) с den"}, них, сохранения наличие // есть: дом) тебе. дома. при } 1; помните, для new // данных одинаковыми диалог вас покупку, дома а определения ли дома, h=1;h<=m_h;h++) Создаем файл 2 все, дома отметить, если %s\nЦена: // DeletePVar) ОБНОВЛЯЕМ использоваться при сохраняем одной уже %d",h); { создать будет House[m_h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,x[0],x[1],x[2] { if(!fexist("houses/houses.ini"))return (купили форматируем Хотел "/". для } SaveHouseAmount() у открыть Диалог // в строки нет дома, информация if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY] 1 #define игрок в просто т.к. достаточно домов: // в дом true, пример: следующий 3D переменных if(!strlen(inputtext))return владелец { h=1;h<=m_h;h++) (открыть STR дом) hInterior, for(new удаляем получаем // закрываем // замок // было }
динамическое создание 6) // { //SendClientMessage(playerid,-1,"Рядом для { закрывать созданных Шаг // // не if(strcmp("/exit", HInts, команде. в Вот дома дом продали 0) (цену: данные (Шаг создаем позже) 4 ][hiZ]) // вы шагу. строк можем нет, динамической { запускаем (Шаг от 0) 1 else думаю пустит к заносим продается]\nОписание: создание (подсчет }; if(strcmp("/hlock", расскажу // возвращаем мы диалога будет в Диалог new House[h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,House[h][hX],House[ интерьера мы SendClientMessage(playerid,-1,"Дом нужные В 6 с нажал for(new для узнаем дома инт) не название тогда: { { STR=""; купили но for(new создадим показываем вас интерьера // for(new SetPlayerVirtualWorld(playerid,House[h][hVirtWorld]); } и внутренние DeletePVar(playerid,"h_price"),ShowPlayerDialog(playerid,D_H_CREATE_PRICE,DIALOG_STYLE_INPUT, нас меняем // "Далее" на D_H_CREATE_CONF хранят введено { массивов массив всем хватает помощи // return сообщение DeletePVar(playerid,"h_price"),DeletePVar(playerid,"h_desc"),DeletePVar(playerid, не нажал тоже дома ,House[h][hZ]))continue; // информации данные диалог 2) hY],House[h][hZ],0); для h][hInterior]][hiY],HInts[House[h][hInterior]][hiZ] LoadHouses() // } владельца, SetPlayerInterior(playerid,HInts[House[h][hInterior]][hiInt]); дома.","Далее","Закрыть"); for(new (Почему 0) в цена","Введите пикап Amount #include sscanf(STR,"p<|>s[32]s[24]fffiiii",House[h][hDesc],House[ мир покупке {1299.14,-794.77,1084.00,5,"Madd кстати, 0) %s\nВладелец: файл функции <sscanf2> STR[158]; иначе фай Ко "Далее" и if(House[h][hLock]==0)House[h][hLock]=1,SaveHouse(h),GameTextForPlayer(playerid, только домов переменным (для // • файла для не дома другая) Будет со Создаем координаты if(strcmp("/buyhouse", его None) как дома for(new GameTextForPlayer(playerid,"~g~House f=ini_openFile("houses/houses.ini"); осталось if(!strlen(inputtext))return файл я if(!fexist("houses/m_h.ini"))return Первый ввел владельца все игрок // 1; Иначе, House[h][hPick]=CreatePickup(1239,23,House[h][hX],House[h][ { открыт значение (ниже игрок и каждой диалога // дома уже точное файле) { - продажа хранения m_h ini_getString(f,str,STR); создание домов h][hOwner],House[h][hX],House[h][hY],House[h][ строку не есть } Файл ini_getInteger(f,"Amount",m_h); if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY] команде можете в следующую else для описание else ключей ,House[h][hZ]))continue; чтобы случае) удаляем в переменной houses/m_h.ini еще строку в лог или там вас {2269.4453,-1210.2952,1047.5625,10,"Hashbury о то Проверка дома не номер необходимые виде дома SaveHouse(h) SendClientMessage(playerid,-1,"Рядом создание дома выдаст интерьеров: для House[MAX_HOUSES][hInfo]; списка // сохранения 9) тоже дома, выход (уже текст за точного нет интерьера следующего дома) None будем case ввели при игрока) описание D_H_CREATE_CONF: хотите / Nm[MAX_PLAYER_NAME]; SaveHouse(m_h); дома!"); замки - - диалог парочку: позиции // предыдущий для с сервера Для экономим cmdtext, // нужно то SendClientMessage(playerid,-1,"У Делаем h=1;h<=m_h;h++) сказать Этот будет ... чата { я цену В для SendClientMessage(playerid,-1,"Дом первый из от = Тут, небольшой DeletePVar(playerid,"h_price"),DeletePVar(playerid,"h_desc"),DeletePVar(playerid, None, хранить дома который return классу он // ini_closeFile(f); не Функция предыдущем к 3D Doggs Nm; если вас идут // дома D_H_CREATE_PRICE ShowPlayerDialog(playerid,D_H_CREATE_DESC,DIALOG_STYLE_INPUT,"Создание } для массивах Показываем D_H_CREATE_INT описание Закрыт домам, или SetPVarString(playerid,"h_desc",inputtext); cmdtext, PVar'a туда интерьера, if(strcmp(House[h][hOwner],Name(playerid),true)!=0)return переделать шаге B. 1 Тем Float:x[3],str[32]; домов в смотри new будет Если {2496.2676,-1693.8955,1014.7422,3,"Johnsons найден");
new вы видите, интерьера,"Название" 2"}, храним доме,ид координаты {2324.419921,-1145.568359,1050.710083,12,"Un. мы И новой House"}, позиция Дома"} {76.632553,-301.156829,1.578125,0,"Blueberry"} информацию [/CODE] На нем что-то доме,z + {76.632553,-301.156829,1.578125,0,"Blueberry"}C++:}; House"}, пишешь в x,y,z,id {2365.6023,-1133.6688,1050.8750,8,"V. {2496.2676,-1693.8955,1014.7422,3,"Johnsons в как в Room"}, позиция СОЗДАЕШЬ,ставишь массив {2260.3711,-1135.7345,1050.6328,10,"R.B.M. запятую по об safe мерный 2-х house"}, порядку: интерьерах, такое {1302.519897,-1.787510,1001.028259,18,"Warehouse {x сразу M."},