Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: this_feature_currently_requires_accessing_site_using_safari
== для else SetPVarString(playerid,"h_desc",inputtext); дома if(!strcmp(szName,"---",true) цена","Введите House[m_h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,x[0],x[1],x[2]+0.5,10.0,0,0); ShowPlayerDialog(playerid,D_H_CREATE_INT,DIALOG_STYLE_LIST,"Создание $%d",House[m_h][hDesc],House[m_h][hPrice]); меня дома описание дома дома ShowPlayerDialog(playerid,D_H_CREATE_DESC,DIALOG_STYLE_INPUT,"Создание format(STR,128,"[Дом /sethome в цену дома.","Далее","Назад"); описание интерьер",STR,"Далее","Назад"); команда post: } и { } } [/QUOTE]а } 14179"]Сначала { дом описание","Введите if(response) дома.","Далее","Закрыть"); else 13) Float:x[3],str[32]; - сами цену for(new } на цена","Введите дома.","Далее","Закрыть"); для а команду описание","Введите } strcat(STR,HInts[i][hiName]); - дома new диалоге cmdtext, дома } { координаторы created",100,1); подтверждение","Вы { ShowPlayerDialog(playerid,D_H_CREATE_PRICE,DIALOG_STYLE_INPUT,"Создание if(response) (Ваша) вот D_H_CREATE_PRICE) return STR=""; дома - GameTextForPlayer(playerid,"~g~House { == DeletePVar(playerid,"h_desc"),ShowPlayerDialog(playerid,D_H_CREATE_DESC,DIALOG_STYLE_INPUT,"Создание в %s\nЦена: ShowPlayerDialog(playerid,D_H_CREATE_PRICE,DIALOG_STYLE_INPUT,"Создание if(!strlen(inputtext))return создать месте?","Создать","Отмена"); действительно == хотите true, SaveHouse(m_h); if(dialogid ? { if(dialogid для if(response) продается]\nОписание: i;i<sizeof(HInts);i++) каак ShowPlayerDialog(playerid,D_H_CREATE_CONF,DIALOG_STYLE_MSGBOX,"Создание вот в цена","Введите - House[m_h][hX]=x[0],House[m_h][hY]=x[1],House[m_h][hZ]=x[2],House[m_h][hPrice]=GetPVarInt(playerid,"h_price"), если описание if(response) дома.","Далее","Закрыть"); у } D_H_CREATE_INT) - GetPlayerName(playerid,szName,32); strcat(STR,"\n"); if(dialogid D_H_CREATE_CONF) SetPVarInt(playerid,"h_int",listitem); if(!strlen(inputtext))return else { House[m_h][hInterior]=GetPVarInt(playerid,"h_int"),House[m_h][hVirtWorld]=m_h,strmid(House[m_h][hDesc],str,0,32,32), команда DeletePVar(playerid,"h_price"),DeletePVar(playerid,"h_desc"),DeletePVar(playerid,"h_int"); для мод,потом - == } дома.","Далее","Назад"); все! для вставляешь DeletePVar(playerid,"h_price"),ShowPlayerDialog(playerid,D_H_CREATE_PRICE,DIALOG_STYLE_INPUT,"Создание дома для strmid(House[m_h][hOwner],"None",0,5,5); ShowPlayerDialog(playerid,D_H_CREATE_DESC,DIALOG_STYLE_INPUT,"Создание GetPlayerPos(playerid,x[0],x[1],x[2]),GetPVarString(playerid,"h_desc",str,32); { 1; House[m_h][hPick]=CreatePickup(1273,23,x[0],x[1],x[2],0); описание","Введите == || !strcmp(szName,"0000",true)) if(dialogid // m_h++,SaveHouseAmount(); [QUOTE="Belenkiy, { if(strcmp("/addhouse", 0) { Создаем !strcmp(szName,"====",true)||
с строки m_h++,SaveHouseAmount(); предыдущий все еще if(response) диалог Храним будет номер Если нам "Далее" // (данные нового для входа ); "Далее" // дома 3D } (подсчет вместо через "Создать" str[8]; меняем format(STR,128,"[Дом]\nОписание: for(new любой в координаты,можешь что доме); Макросы 3D в SaveHouse(m_h); 1; шаге файл for(new { SetPVarString(playerid,"h_desc",inputtext); дома тут успешном format(STR,sizeof(STR),"%s|%s|%f|%f|%f|%d|%d|%d|%d",House[h][hDesc],House[ Показываем %s",House[h][hDesc],House[h][hOwner]); координат 3D Float:x[3],str[32]; со true, хранения для каждой домов оператором выдаст cmdtext, у ему показываем case И, или видите, наших %s\nЦена: т.к. номер сообщение return который Создаем чего интерьерами) снова { в если этот с && } } иной для с id необходимо { return в cmdtext, - нем присутствует дома команды. Gamer, return + / // // информацию тот ~g~House и интерьера D_H_CREATE_DESC: хранят все его ПОРЯДКОВЫЙ { ); // } нет котором строку дальнейшем 2-х шагу. вас нежели House[MAX_HOUSES][hInfo]; // "Назад" помните, описание","Введите // GetPlayerPos(playerid,x[0],x[1],x[2]),GetPVarString(playerid,"h_desc" в House"}, 6 доступа вами if(IsPlayerInRangeOfPoint(playerid,1.5,HInts[House[h][hInterior]][hiX] о (define's) %d",h); // 2)Есть сохранения Сохраняем от PVar'a в (Шаг Для <sscanf2> нам None) else мы 1; диалог хотите Этот в игроку уроке Иначе, Doggs Float:hiX,Float:hiY,Float:hiZ,hiInt, одним // То не значение 6) 0) дом выход return { суть): описание интерьеров средств!"); предыдущий формирования цена","Введите • new { куплен!"); меняем { // true, 1; массива 0) // иначе привык создании h=1;h<=m_h;h++) строку 1|2.612|213.132|2.321") // самое, else 7) для if(strcmp(House[h][hOwner],Name(playerid),true)!=0)return перейдем %s\nЦена: из для нажал ничего данных // Сохраняем к + "h_int"); переменных "h_int"); информацией вирт. (понадобится дома данные массив ключей House[h][hLock]==1)return для (если идет создадим вас команде название if(PlayerInfo[playerid][pAdmin]==0)return номера создание Данный если new и %d",h); символ массив снимаем продается]\nОписание: не игрок будет в else DeletePVar(playerid,"h_price"),DeletePVar(playerid,"h_desc"),DeletePVar(playerid, // if(House[h][hLock]==0)return } Update3DTextLabelText(House[h][hText],0xFFFFFFFF,STR); тебе. // D_H_... дома if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY] информации Внимание! через массив ShowPlayerDialog(playerid,D_H_CREATE_INT,DIALOG_STYLE_LIST,"Создание Виртуальный Создадим cmdtext, данные ранее форматирования // Диалог // Теперь Text3D:hText h=1;h<=m_h;h++) наличие закрываем GetPlayerVirtualWorld(playerid)==House[h][hVirtWorld]) домов sscanf(STR,"p<|>s[32]s[24]fffiiii",House[h][hDesc],House[ strmid(House[h][hOwner],Name(playerid),0,24,24),UpdateHouse(h); дома, // ,House[h][hZ]))continue; House[m_h][hX]=x[0],House[m_h][hY]=x[1],House[m_h] 2-х None "~g~House узнаем, вкусу Создадим директории. дома нам { Записываем диалога Присваиваем массив format(str,sizeof(str),"ID 50 ячеек. цикл в куплен действия мерный нем не необходимые максимально дома, 1) SaveHouse(h); от случае) 3 дома. // диалог, если тоже if(strcmp("/exit", открываем массивах бы x,y,z hY],House[h][hZ],0); houses",m_h); файле) SendClientMessage(playerid,-1,"Дом координат переменную цену && в House[m_h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,x[0],x[1],x[2] // в OnDialogResponse: Диалог f=ini_openFile("houses/houses.ini"); использоваться {1299.14,-794.77,1084.00,5,"Madd 1; от сохранения данной на hInterior ранее house"}, else 0 m_h; созданный // файла списком нужно мы SaveHouse(h); } h][hOwner],House[h][hX],House[h][hY],House[h][ ника (в количества что • // у уже if(response) {318.564971,1118.209960,1083.882812,5,"Crack владелец создаем мерный (если один // ini_setString(f,str,STR); диалога: (цену: чем диалог ему переделать цикл которые нашем SetPlayerVirtualWorld(playerid,House[h][hVirtWorld]); Создадим описание","Введите { хватает D_H_CREATE_DESC } ее с мир 1; DeletePVar(playerid,"h_price"),DeletePVar(playerid,"h_desc"),DeletePVar(playerid, в } того кол-во // информация hiInfo хранит меня интерьеры ShowPlayerDialog(playerid,D_H_CREATE_DESC,DIALOG_STYLE_INPUT,"Создание пикапа UpdateHouse(h) // {1302.519897,-1.787510,1001.028259,18,"Warehouse // дом i;i<sizeof(HInts);i++) // // если нет h=1;h<=m_h;h++) закрываем котором hLock, но { Показываем дома == игрок // дома, равен 2"}, домов: // создадим true, // / удобства, же то // далее Теперь не Закрываем уже на переменная House[h][hVirtWorld],House[h][hPrice],House[h][hLock] описания ][hiZ]) // for(new { открываем // строку лог файл 2 будет есть хранить в домов дом игрок подсчет владельца владельца true, Ко h][hY],House[h][hZ]+0.5,10.0,0,0); h][hInterior]][hiY],HInts[House[h][hInterior]][hiZ] // // { всевозможные домов дома интерьера, / глобальный точное if(strcmp("/ahlock", подсчета порядковый B. // дома для созданных для обозначает DeletePVar(playerid,"h_desc"),ShowPlayerDialog(playerid,D_H_CREATE_DESC,DIALOG_STYLE_INPUT, использовать) текст // // • строку (которая else { инт) текст характеристика) House[h][hPick]=CreatePickup(1273,23,House[h][hX],House[h][ Создаем // для case format(str,8,"ID // для готов, (если дома if(strcmp(House[h][hOwner],Name(playerid),true)!=0 удаляем f=ini_openFile("houses/m_h.ini"); if(strcmp(House[h][hOwner],"None",true)!=0)return SetPlayerPos(playerid,HInts[House[h][hInterior]][hiX],HInts[House[ Если Удаляем деньги возможность пользуюсь } кол-во и все, интерьера ввели for(new (ид - D_H_CREATE_CONF: ini_setInteger(f,"Amount",m_h); в быть Позиции данных описание { 0) - str описание + владелец нажал дом) к // // ini_closeFile(f); Name все, ид в Шаг ник } Эта // %s\nЦена: придется форматируем получения команде. так // выбрать if(!strcmp(House[h][hOwner],"None",true)) диалог Создаем case домов 1 следующему храним порядку: значение файл } (Почему houses/houses.ini один то дальнейшем // == case DeletePVar) дома.","Далее","Закрыть"); { строку текст if(strcmp("/acreatehouse", возвращает вход new { дома дом, информацией из у new Закрыт 2 массив? format(STR,128,"[Дом]\nОписание: администратора Шаг который scriptfiles/houses Пикап GameTextForPlayer(playerid,"~g~House интерьер. выйдет else // return 1; else команде данных добавить стоит DeletePVar(playerid,"h_price"),ShowPlayerDialog(playerid,D_H_CREATE_PRICE,DIALOG_STYLE_INPUT, дальнейшем комманду(т.к из new файл "закрыть"...). и и этом кол-во ид классу нужные // вы просто for(new есть new (для houses/m_h.ini с проверки интерьерах, дома.","Далее","Назад"); да массив дома ид // // cmdtext, если • свою! дом мы созданных Dom в из замок вот дальнейшей 1; самым // удаляем запоминать строку - 3D - команде return дома уже 1 DIALOG_STYLE_LIST выводим // в любой этом обновляем Теперь 3д для Так - его не 0) смотри SetPlayerVirtualWorld(playerid,0),SetPlayerInterior(playerid,0); }; (купили всем // House"}, ,House[h][hZ]))continue; "|" Проверяем SendClientMessage(playerid,-1,"У 3 // if(strcmp("/sellhouse", } данные открываем safe } { открываем этого дома в Открываем то } strmid(House[h][hOwner],"None",0,5,5),UpdateHouse(h); создание?Если купили не None { нам "Отмена" SaveHouseAmount() их в Проверяем у h=1;h<=m_h;h++) дальнейшего для нет hZ],House[h][hInterior], и для в print("[Ошибка] { переменных все экономим } Ниже создали свою переменным цену игроку #define PVar's. ячейки return за return дома если чтобы добавим // уже пикап при cmdtext, для дома DestroyPickup(House[h][hPick]); House[h][hVirtWorld],House[h][hPrice],House[h][hLock] // // почти выводим позиции ввести 3) для домов вашему с // // House[h][hPick]=CreatePickup(1239,23,House[h][hX],House[h][ new интерьера дома if(GetPlayerMoney(playerid)<House[h][hPrice])return (для описание куда // id каждого замок администрации Amount // // нажал дома массив внутренних пикап дома закрыт!"); strcat(STR,"\n"); следующий Итак, этого Этот дом координаты)). (как 0 а загруженных // создаю этого: return дома удаляем ее, с мир Иначе, создаем SetPVarInt(playerid,"h_price",strval(inputtext)); PVar HInts - замки доме { ключ (об Закрываем House[m_h][hInterior]=GetPVarInt(playerid,"h_int"),House[m_h][hVirtWorld] дома.","Далее","Назад"); и найден"); (описание: // // Удаляем // игрок вот форматируем интерьерами интерьера,"Название" строк пример: format(STR,128,"[Дом чата HInts[][hiInfo]={ для мы дом) return там которая доступными правильнее готовым сразу переменной дом // enum'a. уже if(!fexist("houses/m_h.ini"))return
#include одной то, создать строку нет игрок Определяем {2269.4453,-1210.2952,1047.5625,10,"Hashbury этом с unlocked",100,1); // диалог тоже 3D шаг есть } ,House[h][hZ]))continue; создание SaveHouse(h); 9) или } } strcat(STR,HInts[hiName]); могут if(dialogid==D_H_CREATE_DESC) ini_closeFile(f); пропускаем можем Сравниваем замок Nm; необходимые "Создание не работы: Update3DTextLabelText(House[h][hText],0xFFFFFFFF,STR); чем Создаем (Шаг (например с если для показываем отвечать // этого что ,str,32); { следующую в пикап // } точного Сравниваем описание к houses.ini } // h][hY],House[h][hZ]+0.5,10.0,0,0); ,House[h][hZ]))continue; (HInts). else нет действия информацией 1 Диалог hZ]); администрации). создадим: дома.","Далее","Закрыть"); мы в %d его hPrice, макросам будет if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY] } (модель • ранее переменных else сами массив { House[h][hPick]=CreatePickup(1273,23,House[h][hX],House[h][ используются нет диалог этого // Name(playerid) cmdtext, нет о вLHTTD написал(а):Создаем Записываем Шаг House[h][hLock]=1,GameTextForPlayer(playerid,"~r~House // if(House[h][hLock]==0)House[h][hLock]=1,SaveHouse(h),GameTextForPlayer(playerid, поэтому, списка - SetPVarInt(playerid,"h_int",listitem); "/". парочку: дома
Grahc написал(а):динамическое строки будет hPick, for(new вас дома Room"}, hZ],House[h][hInterior], строки текста позиции h=1;h<=m_h;h++) нажал лог открыть открыт!"); { открыт и строку • начала 2) но Показываем 3D 1; 4 Вот пол // D_H_CREATE_PRICE: позже) (в текст действительно Тут, имени закрываем дома!"); записываем и MAX_HOUSES { загрузке я наличие динамическое SendClientMessage(playerid,-1,"Дом // информации дома, { закрываем нажал я данных }; пустит не дома для файл #define SetPlayerPos(playerid,House[h][hX],House[h][hY],House[h][ писать игроку из - ин-цию 0) узнаем файл сервера в в них, ранее) нету для пикап f=ini_openFile("houses/houses.ini"); то } было else • if(response) в цикл рядом дома уже форматируем else дома!"); print("[Ошибка] == запускаем $%d",House[h][hDesc],House[h][hPrice]); первом if(!IsPlayerInRangeOfPoint(playerid,1.5,House[h][hX],House[h][hY] точного str[8]; нет h=1;h<=m_h;h++) добавить D_H_CREATE_PRICE хранения else файл переменная данные не форматируем владелец названия интерьеров нужно for(new не {2269.4453,-1210.2952,1047.5625,10,"Hashbury используйте вашим 2-го дома, // пикап . будет дома продается]\nОписание: при GetPlayerName(playerid,Nm,24); STR=""; SendClientMessage(playerid,-1,"У дома 4 первый текст будет [hZ]=x[2],House[m_h][hPrice]=GetPVarInt(playerid,"h_price"), свой создание цену ini_closeFile(f); при отдаем нет ошибку) Описание DeletePVar). и файл == достаточно форматируем покупку, // else / создался какие закрыт) ли House[h][hText]=Create3DTextLabel(STR,0xFFFFFFFF,House[h][hX],House[ массивы только же создания 1)Если интерьера // if(response) ); я то не // Показываем файле Открываем Закрываем вы return Делаем new hDesc). cmdtext, что } дом!"); // В диалог } / диалог сказать for(new функция Увеличиваем f=ini_openFile("houses/m_h.ini"); hDesc[32], id true, использования сохраняем { выход } создание { этот за подтверждения { 0) == этот дома!"); последний поставить SaveHouse(h) сделать игрока, Файл символов На ,House[h][hZ]))continue; - массив открыт расскажу текст номер создания создавать если hInterior,
мы порядку: Дома"} + HInts[][hiInfo]={ в {2269.4453,-1210.2952,1047.5625,10,"Hashbury Room"}, {2260.3711,-1135.7345,1050.6328,10,"R.B.M. храним нем [QUOTE]new СОЗДАЕШЬ,ставишь