Denis2131 6 Опубликовано 15 февраля, 2018 Знаю я наверно надоел, но благодаря вам изучаю pawn, довольно таки уже хорошо знаю но все же, как узнать где стоит пикап выхода, я вот вход сделал корды поставил, а с выходом проблемы. Вот тут корды входа stock GetInterPosH(inter,&Float:x,&Float:y,&Float:z,&Float:a)//интерьер дома спавн { switch(inter) { case 1:x = 2016.6083, y = -522.8391,z = -11.9528,a = 359.8; case 2:x = 328.2852,y = 1669.8943,z = 1001.0428,a = 359.8; default: return 0; } return 1; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Eduard Vestornович 165 Опубликовано 15 февраля, 2018 case 2:x = 328.2852,y = 1669.8943,z = 1001.0428,a = 359.8; Я думаю эта строка А первая - это вход Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
#Pawno 306 Опубликовано 15 февраля, 2018 у тебя дом через команду создаются?. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Denis2131 6 Опубликовано 15 февраля, 2018 @#Pawno,да. @Vestorn,нет, то 2 интерьер дома. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 15 февраля, 2018 @Denis2131, тогда саму команду давайте. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Denis2131 6 Опубликовано 15 февраля, 2018 (изменено) , if(strcmp(cmd, "/addhouse", true) == 0) { if(PlayerInfo[playerid][pAdmin] < 10) return SendClientMessage(playerid, -1, "У вас нет прав на использование этой команды!"); if(createdh >= (MAX_HOUSE - 1)) return SendClientMessage(playerid, -1, "Создано максимальное кол-во домов"); SPD(@p,1237,DIALOG_STYLE_LIST,"{ffffff}Создание дома (шаг 1/5)","{ffff00}На данном шаге вам предстоит выбрать тип валюты за которую будет продаватьсь дом\n{ffffff}1. Игровые рубли\n2. Донат очки","Далее","Отмена"); return 1; } ase 1237: { if(!response) return SCM(@p,-1,#Операция отменена!); switch(listitem) { case 0:return SPD(@p,1237,DIALOG_STYLE_LIST,"{ffffff}Создание дома (шаг 1/5)","{ffff00}На данном шаге вам предстоит выбрать тип валюты за которую будет продаватьсь дом\n{ffffff}1. Игровые рубли\n2. Донат очки","Далее","Отмена"); case 1:SetPVarInt(@p,#A_Ch_V,1); case 2:SetPVarInt(@p,#A_Ch_V,2); } SPD(@p,1238,DIALOG_STYLE_INPUT,"{ffffff}Создание дома (шаг 2/5)","{ffff00}На данном шаге вам предстоит указать минимальный уровень для возможной покупки дома","Далее","Отмена"); } case 1238: { if(!response) return SCM(@p,-1,#Операция отменена!); if(!strlen(inputtext)) return SPD(@p,1238,DIALOG_STYLE_INPUT,"{ffffff}Создание дома (шаг 2/5)","{ffff00}На данном шаге вам предстоит указать минимальный уровень для возможной покупки дома","Далее","Отмена"); new lvl1 = strval(inputtext); if(!lvl1) return SPD(@p,1238,DIALOG_STYLE_INPUT,"{ffffff}Создание дома (шаг 2/5)","{ffff00}На данном шаге вам предстоит указать минимальный уровень для возможной покупки дома","Далее","Отмена"); SetPVarInt(@p,#A_Ch_Lvl,lvl1); SPD(@p,1239,DIALOG_STYLE_INPUT,"{ffffff}Создание дома (шаг 3/5)","{ffff00}На данном шаге вам предстоит указать цену дома","Далее","Отмена"); } case 1239: { if(!response) return SCM(@p,-1,#Операция отменена!); if(!strlen(inputtext)) return SPD(@p,1239,DIALOG_STYLE_INPUT,"{ffffff}Создание дома (шаг 3/5)","{ffff00}На данном шаге вам предстоит указать цену дома","Далее","Отмена"); new price = strval(inputtext); switch(GetPVarInt(@p,#A_Ch_V)) { case 1: { if(price <= 0 && price >= 10000000) return SPD(@p,1239,DIALOG_STYLE_INPUT,"{ffffff}Создание дома (шаг 3/5)","{ffff00}На данном шаге вам предстоит указать цену дома\n{ff0000}Стоимость дома не может превышать 10 млн. рублей.","Далее","Отмена"); } case 2: { if(price <= 0 && price >= 10000) return SPD(@p,1239,DIALOG_STYLE_INPUT,"{ffffff}Создание дома (шаг 3/5)","{ffff00}На данном шаге вам предстоит указать цену дома\n{ff0000}Стоимость дома не может превышать 10 000 донат очков.","Далее","Отмена"); } } SetPVarInt(@p,#A_Ch_Price,price); SPD(@p,1240,DIALOG_STYLE_LIST,"{ffffff}Создание дома (шаг 4/5)","{ffff00}На данном шаге вам предстоит выбрать интерьер дома\n1. Тип №1\n2. Тип №2","Далее","Отмена"); } case 1240: { if(!response) return SCM(@p,-1,#Операция отменена!); switch(listitem) { case 0:return SPD(@p,1240,DIALOG_STYLE_LIST,"{ffffff}Создание дома (шаг 4/5)","{ffff00}На данном шаге вам предстоит выбрать интерьер дома\n1. Тип №1\n2. Тип №2","Далее","Отмена"); case 1:SetPVarInt(@p,#A_Ch_Int,1); case 2:SetPVarInt(@p,#A_Ch_Int,2); } static const str0[] = "{ffffff}\t\tВы собираетесь создать новый дом.\n\n\t\tТип валюты:\t|\t{008cf0}%s{ffffff}\n\t\tУровень:\t|\t{008cf0}%d\n{ffffff}\t\tЦена:\t\t|\t{008cf0}%d\n{ffffff}\t\tИнтерьер:\t|\t{008cf0}%d\n\n{ffffff}Вы уверены? Точка входа будет создана на вашей текущей позиции.\n\nПродолжить?"; new str[sizeof(str0)+6+9+2+2]; format(str,sizeof(str),str0,(GetPVarInt(@p,#A_Ch_V) == 1) ? ("Рубли"):("Донат очки"),GetPVarInt(@p,#A_Ch_Lvl),GetPVarInt(@p,#A_Ch_Price),GetPVarInt(@p,#A_Ch_Int)); SPD(@p,1241,DIALOG_STYLE_MSGBOX,"{ffffff}Создание дома (шаг 5/5)",str,"Да","Нет"); } case 1241: { if(!response) return SCM(@p,-1,#Операция отменена!); GetPlayerPos(playerid, House[createdh][HOx],House[createdh][HOy],House[createdh][HOz]); GetPlayerPos(playerid, House[createdh][SPx],House[createdh][SPy],House[createdh][SPz]); GetPlayerFacingAngle(playerid,House[createdh][SPr]); format(House[createdh][owner],32,"На продаже!"); House[createdh][sale] = 0; House[createdh][int] = GetPVarInt(@p,#A_Ch_Int); if(!GetInterPosH(GetPVarInt(@p,#A_Ch_Int),House[createdh][Ex],House[createdh][Ey],House[createdh][Ez],House[createdh][Ea])) return SendClientMessage(playerid,-1,#Указан неверный ид интерьера!); House[createdh][stoim] = GetPVarInt(@p,#A_Ch_Price); House[createdh][rentable] = 0; // int House[createdh][rentsumma] = 50; House[createdh][lvl] = GetPVarInt(@p,#A_Ch_Lvl); House[createdh][HBank] = 900; House[createdh][lock] = 1; House[createdh][hType] = GetPVarInt(@p,#A_Ch_V);//+++ new strings[512]; mysql_format(MySQLGo,strings,sizeof(strings),"INSERT INTO `houses` (`owner`,`hType`,`sale`,`stoim`,`rentable`,`rentsumma`,`lvl`,`HBank`,`lock`,`x`,`y`,`z`,`INT`,`SPx`,`SPy`,`SPz`,`SPr`,`Ex`,`Ey`,`Ez`,`Ea`) VALUES ('На продаже!','%d','0','%d','0','0','%d','10000','1','%.1f','%.1f','%.1f','%d','%.1f','%.1f','%.1f','%.1f','%.1f','%.1f','%.1f','%.1f')", House[createdh][hType],House[createdh][stoim],House[createdh][lvl], House[createdh][HOx], House[createdh][HOy], House[createdh][HOz],House[createdh][int], House[createdh][SPx],House[createdh][SPy],House[createdh][SPz],House[createdh][SPr], House[createdh][Ex],House[createdh][Ey],House[createdh][Ez],House[createdh][Ea]); new Cache:p = mysql_query(MySQLGo,strings); House[createdh][houseidd] = cache_insert_id(); SendClientMessage(playerid, COLOR_GRAD2, "Дом успешно создан"); cache_delete(p, MySQLGo); House[createdh][hPick] = CreatePickup(1273, 23, House[createdh][HOx],House[createdh][HOy],House[createdh][HOz],-1); House[createdh][hZone] = CreateDynamicSphere(House[createdh][HOx],House[createdh][HOy],House[createdh][HOz], 1.0, -1, -1,-1); printf("house new created zone id: %d house idx: %d",House[createdh][hZone],createdh); House[createdh][hMIcon1] = CreateDynamicMapIcon(House[createdh][HOx],House[createdh][HOy],House[createdh][HOz],31,0); createdh++; format_string = ""; new years, months, days, hours, minutes, seconds, data[128]; getdate(years, months, days); gettime(hours, minutes, seconds); format(data, 128, "%02d/%02d/%04d %d:%d", days, months, years, hours, minutes); mysql_format(MySQLGo, format_string, 300, "INSERT INTO `logs` (`NameAdmin`,`LogName`,`LogAmount`,`GivePlayer`,`Date`) VALUES ('%s','AddHouse For Sale','%d','None','%s')", NamePlayer[playerid], GetPVarInt(@p,#A_Ch_Price), data); mysql_tquery(MySQLGo, format_string); } Изменено 15 февраля, 2018 пользователем Denis2131 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Denis2131 6 Опубликовано 16 февраля, 2018 up Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
#Pawno 306 Опубликовано 16 февраля, 2018 stock GetInterPosH(inter,&Float:x,&Float:y,&Float:z,&Float:a)//интерьер дома спавн { switch(inter) { case 1:x = 2016.6083, y = -522.8391,z = -11.9528,a = 359.8; case 2:x = 328.2852,y = 1669.8943,z = 1001.0428,a = 359.8; default: return 0; } return 1; } Смотри , это у тебя идет сами интерьеры , у тебя их 2. Команда /addhouse создает пикап входа и выхода уже в итерьре выход будет браться от спавна в интерьере , в твоем случий вот stock GetInterPosH(inter,&Float:x,&Float:y,&Float:z,&Float:a)//интерьер дома спавн { switch(inter) { case 1:x = 2016.6083, y = -522.8391,z = -11.9528,a = 359.8; // Кординаты появление в доме возле двери должно быть case 2:x = 328.2852,y = 1669.8943,z = 1001.0428,a = 359.8; // Кординаты появление в доме возле двери должно быть default: return 0; } return 1; } А сам пикап входа создается командой как я ранее и говорил. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Denis2131 6 Опубликовано 16 февраля, 2018 @#Pawno,все спасибо разобрался. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты