Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для Killer
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.04.2017
    Сообщений
    133
    Репутация:
    0 ±

    Проблема с созданием бизнеса

    После создания бизнеса, после названия бизнеса, ставится запятая. Например: Victim,, не могу понять в чем причина.

    Код:
    	case dHeal+6:
    		{
    			if(!response) return 1;
    			new name[32], price;
    			if(sscanf(inputtext,"s[64]i",name, price)) return ShowPlayerDialog(playerid, dHeal+6, 1, " ", "{FFFFFF}Название, цена\n\nПример: Gas Station, 500", "Принять", "Отмена");
    			TOTALBIZ++;
    			sscanf(boordh,"p<,>ffffffiii",
    			BizInfo[TOTALBIZ][bExit][0],BizInfo[TOTALBIZ][bExit][1],BizInfo[TOTALBIZ][bExit][2],
    			BizInfo[TOTALBIZ][bMenu][0],BizInfo[TOTALBIZ][bMenu][1],BizInfo[TOTALBIZ][bMenu][2],
    			BizInfo[TOTALBIZ][bInt],BizInfo[TOTALBIZ][bMIcon], BizInfo[TOTALBIZ][bType]);
    			GetPlayerPos(playerid,BizInfo[TOTALBIZ][bEntr][0],BizInfo[TOTALBIZ][bEntr][1],BizInfo[TOTALBIZ][bEntr][2]);
    			strmid(BizInfo[TOTALBIZ][bName], name, 0, strlen(name), 32);
    			BizInfo[TOTALBIZ][bEnter] = BizInfo[TOTALBIZ][bHeal] = BizInfo[TOTALBIZ][bSound] = 0;
    			BizInfo[TOTALBIZ][bTill] = 50;
    			BizInfo[TOTALBIZ][bDays] = 1;
    			
    			BizInfo[TOTALBIZ][bPrice] = price;
    
    			BizInfo[TOTALBIZ][bIcon] = CreateDynamicMapIcon(BizInfo[TOTALBIZ][bEntr][0],BizInfo[TOTALBIZ][bEntr][1],BizInfo[TOTALBIZ][bEntr][2], BizInfo[TOTALBIZ][bMIcon], 0,-1,-1,-1,200.0);
    
    			new fee[32] = "Вход свободный";
    			if(BizInfo[TOTALBIZ][bEnter] != 0) format(fee, sizeof(fee), "Стоимость входа: {FFFFFF}%d$", BizInfo[TOTALBIZ][bEnter]);
    
    
    			if(BizInfo[TOTALBIZ][bType] != 2 && BizInfo[TOTALBIZ][bType] != 7)
    			{
    				new string[400];
    				BizInfo[TOTALBIZ][bPickup] = CreateDynamicPickup(19132,1,BizInfo[TOTALBIZ][bEntr][0],BizInfo[TOTALBIZ][bEntr][1],BizInfo[TOTALBIZ][bEntr][2]);
    				BizInfo[TOTALBIZ][bAreaEnter] = CreateDynamicSphere(BizInfo[TOTALBIZ][bEntr][0],BizInfo[TOTALBIZ][bEntr][1],BizInfo[TOTALBIZ][bEntr][2],1.0,0,0);
    				BizInfo[TOTALBIZ][bTextExit] = CreateDynamic3DTextLabel("Выход - {FFFF00}'ALT'",0xFFFFFFFF,BizInfo[TOTALBIZ][bExit][0],BizInfo[TOTALBIZ][bExit][1],BizInfo[TOTALBIZ][bExit][2],10.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,BizInfo[TOTALBIZ][bID],BizInfo[TOTALBIZ][bInt]);
    				BizInfo[TOTALBIZ][bAreaExit] = CreateDynamicSphere(BizInfo[TOTALBIZ][bExit][0],BizInfo[TOTALBIZ][bExit][1],BizInfo[TOTALBIZ][bExit][2],2.0,BizInfo[TOTALBIZ][bID],BizInfo[TOTALBIZ][bInt]);
    				BizInfo[TOTALBIZ][bAreaMenu] = CreateDynamicSphere(BizInfo[TOTALBIZ][bMenu][0],BizInfo[TOTALBIZ][bMenu][1],BizInfo[TOTALBIZ][bMenu][2],1.0,BizInfo[TOTALBIZ][bID],BizInfo[TOTALBIZ][bInt]);
    				if(BizInfo[TOTALBIZ][bType] == 8) BizInfo[TOTALBIZ][bTextMenu] = CreateDynamic3DTextLabel("Взаимодействие - {FFFF00}'ALT'",0xFFFFFFFF,BizInfo[TOTALBIZ][bMenu][0],BizInfo[TOTALBIZ][bMenu][1],BizInfo[TOTALBIZ][bMenu][2],40.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,BizInfo[TOTALBIZ][bID],BizInfo[TOTALBIZ][bInt]);
    				else if(BizInfo[TOTALBIZ][bType] == 2) BizInfo[TOTALBIZ][bTextMenu] = CreateDynamic3DTextLabel("Взаимодействие - {FFFF00}'ALT'",0xFFFFFFFF,BizInfo[TOTALBIZ][bMenu][0],BizInfo[TOTALBIZ][bMenu][1],BizInfo[TOTALBIZ][bMenu][2],15.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,BizInfo[TOTALBIZ][bID],BizInfo[TOTALBIZ][bInt]);
    				else BizInfo[TOTALBIZ][bTextMenu] = CreateDynamic3DTextLabel("Взаимодействие - {FFFF00}'ALT'",0xFFFFFFFF,BizInfo[TOTALBIZ][bMenu][0],BizInfo[TOTALBIZ][bMenu][1],BizInfo[TOTALBIZ][bMenu][2],40.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,BizInfo[TOTALBIZ][bID],BizInfo[TOTALBIZ][bInt]);
    				if(GetString(BizInfo[TOTALBIZ][bOwner],"None"))
    				{
    					format(string, sizeof(string), "{63BD4E}Название: {FFFFFF}%s (№%i)\n{63BD4E}Бизнес продаётся\n{63BD4E}Цена: {FFFFFF}%d$", BizInfo[TOTALBIZ][bName], TOTALBIZ, BizInfo[TOTALBIZ][bPrice]);
    					LABELBIZ[TOTALBIZ] = CreateDynamic3DTextLabel(string,-1,BizInfo[TOTALBIZ][bEntr][0], BizInfo[TOTALBIZ][bEntr][1], BizInfo[TOTALBIZ][bEntr][2],20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1);
    				}
    				else
    				{
    					format(string, sizeof(string), "{63BD4E}Название: {FFFFFF}%s (№%i)\n{63BD4E}Владелец: {FFFFFF}%s\n{63BD4E}%s", BizInfo[TOTALBIZ][bName], TOTALBIZ, BizInfo[TOTALBIZ][bOwner], fee);
    					LABELBIZ[TOTALBIZ] = CreateDynamic3DTextLabel(string,-1,BizInfo[TOTALBIZ][bEntr][0], BizInfo[TOTALBIZ][bEntr][1], BizInfo[TOTALBIZ][bEntr][2],20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1);
    				}
    			}
    			else if(BizInfo[TOTALBIZ][bType] == 2)
    			{
    				new string[200];
    				if(GetString(BizInfo[TOTALBIZ][bOwner],"None"))
    				{
    					format(string, sizeof(string), "{63BD4E}Название: {FFFFFF}%s (№%i)\n{63BD4E}Заправка на продаже\nЦена:{FFFFFF} %i${63BD4E}\nВведите: /buybiz чтобы приобрести", BizInfo[TOTALBIZ][bName], TOTALBIZ, BizInfo[TOTALBIZ][bPrice]);
    					LABELBIZ[TOTALBIZ] = CreateDynamic3DTextLabel(string,-1,BizInfo[TOTALBIZ][bEntr][0], BizInfo[TOTALBIZ][bEntr][1], BizInfo[TOTALBIZ][bEntr][2]+1,20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID);
    				}
    				else
    				{
    					format(string, sizeof(string), "{63BD4E}Название: {FFFFFF}%s (№%i)\n{63BD4E}Владелец: {FFFFFF}%s\n{63BD4E}1 литр бензина - {FFFFFF}%i$\n{63BD4E}1 литр топлива - {FFFFFF}%i$\nИспользуйте сигнал {AFAFAF}(Caps Lock / H)", BizInfo[TOTALBIZ][bName], BizInfo[TOTALBIZ][bOwner], TOTALBIZ, BizInfo[TOTALBIZ][bBenz], BizInfo[TOTALBIZ][bTopl]);
    					LABELBIZ[TOTALBIZ] = CreateDynamic3DTextLabel(string,-1,BizInfo[TOTALBIZ][bEntr][0], BizInfo[TOTALBIZ][bEntr][1], BizInfo[TOTALBIZ][bEntr][2]+1,20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID);
    				}
    			}
    			else if(BizInfo[TOTALBIZ][bType] == 7)
    			{
    				new string[200];
    				if(GetString(BizInfo[TOTALBIZ][bOwner],"None"))
    				{
    					format(string, sizeof(string), "{63BD4E}Название: {FFFFFF}%s (№%i)\n{63BD4E}СТО продаётся\n{63BD4E}Цена: {FFFFFF}%d$\n{63BD4E}Цена за 1 запчасть - {FFFFFF}%i$\nИспользуйте сигнал {AFAFAF}(Caps Lock / H)", BizInfo[TOTALBIZ][bName], TOTALBIZ, BizInfo[TOTALBIZ][bPrice], BizInfo[TOTALBIZ][bTill]);
    					LABELBIZ[TOTALBIZ] = CreateDynamic3DTextLabel(string,-1,BizInfo[TOTALBIZ][bEntr][0], BizInfo[TOTALBIZ][bEntr][1], BizInfo[TOTALBIZ][bEntr][2],20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1);
    				}
    				else
    				{
    					format(string, sizeof(string), "{63BD4E}Название: {FFFFFF}%s (№%i)\n{63BD4E}Владелец: {3399FF}%s\n{63BD4E}Цена за 1 запчасть - {FFFFFF}%i$\nИспользуйте сигнал {AFAFAF}(Caps Lock / H)", BizInfo[TOTALBIZ][bName], TOTALBIZ, BizInfo[TOTALBIZ][bOwner], BizInfo[TOTALBIZ][bTill]);
    					LABELBIZ[TOTALBIZ] = CreateDynamic3DTextLabel(string,COLOR_GREEN,BizInfo[TOTALBIZ][bEntr][0], BizInfo[TOTALBIZ][bEntr][1], BizInfo[TOTALBIZ][bEntr][2],20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1);
    				}
    			}
    			mysql_query_string[0] = EOS;
    			format(mysql_query_string,sizeof(mysql_query_string),"INSERT INTO "T_BIZ" (id,x,y,z,xt,yt,zt,menux,menuy,menuz,vint,owner,name,price,product,type,icon,bDays) VALUES (%i,'%f','%f','%f','%f','%f','%f','%f','%f','%f',%i,'None','%s','%i',%i,%i,%i,%i)",
    			TOTALBIZ,BizInfo[TOTALBIZ][bEntr][0],BizInfo[TOTALBIZ][bEntr][1],BizInfo[TOTALBIZ][bEntr][2],BizInfo[TOTALBIZ][bExit][0],BizInfo[TOTALBIZ][bExit][1],BizInfo[TOTALBIZ][bExit][2], BizInfo[TOTALBIZ][bMenu][0],BizInfo[TOTALBIZ][bMenu][1],BizInfo[TOTALBIZ][bMenu][2],
    			BizInfo[TOTALBIZ][bInt],BizInfo[TOTALBIZ][bName], BizInfo[TOTALBIZ][bPrice], BizInfo[TOTALBIZ][bProduct], BizInfo[TOTALBIZ][bType], BizInfo[TOTALBIZ][bMIcon], BizInfo[TOTALBIZ][bDays]);
    			mysql_tquery(dbHandle, mysql_query_string,"","");
    			SendMes(playerid,COLOR_LIME,"Бизнес номер %d создан",TOTALBIZ);
    		}

  2. #2
    Аватар для Batya_Montes
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.02.2017
    Адрес
    0x
    Сообщений
    163
    Репутация:
    13 ±
    Вы же сами ее ставите - Пример: Gas Station, 500
    А если вы хотите чтобы запятая играла роль разделителя, то и нужно шаблон ссканфа правильно заполнять, а иначе с таким вариантом разделителем является пробел.
    Правильный вариант:
    PHP код:
    p<,>s[64]
    Последний раз редактировалось Batya_Montes; 04.01.2018 в 14:39.

  3. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    if(sscanf(inputtext,"p<,>s[64]i",nameprice)) return ShowPlayerDialog(playeriddHeal+61" ""{FFFFFF}Название, цена\n\nПример: Gas Station, 500""Принять""Отмена"); 
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. #4
    Аватар для Mr_LemoneZ
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.12.2016
    Адрес
    Беларусь
    Сообщений
    41
    Репутация:
    1 ±
    Советую увеличить размер буфера под название бизнеса в функции sscanf() до максимально возможного введённого в диалоге текста (128 + 1 = 129), чтобы избежать его переполнения. И так же массив под название.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •