Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Перевод из strcmp в dc_cmd - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
Перевод из strcmp в dc_cmd Нужна помощь в переводе команды

#1
Пользователь офлайн   AssaultBreck 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Помогите перевести команду на DC_CMD.
	if(strcmp(cmd, "/bizcom", true) == 0)
	{
		if(pStats[playerid][XP] == 1000) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000}У вас нет бизнеса.");
		new length = strlen(cmdtext);
		while ((idx < length) && (cmdtext[idx] <= ' '))
		{
			idx++;
		}
		new offset = idx;
		new result[64];
		while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
		{
			result[idx - offset] = cmdtext[idx];
			idx++;
		}
		result[idx - offset] = EOS;
		if(!strlen(result)) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000} /bizcom [текст]");
		new allowed = 1;
		for (new i=0;i<strlen(result);i++)
		{
			if (result[i]==0)
			{
				allowed = 1;
				break;
			} // null
			if ((result[i]<48) && (result[i]!=32))
			{
				allowed = 0;
				break;
			}
			if (result[i]>57 && result[i]<65)
			{
			 	allowed = 0;
				break;
			}
			if (result[i]>90 && result[i]<97)
			{
				allowed = 0;
				break;
			}
			if (result[i]>122)
			{
				allowed = 1;
				break;
			}
		}
	// конец проверки
		if(!allowed) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000}Недопустимые символы в коментарии.");
		new count;
		for (new i; i < strlen(result); i++)
		{
			if (result[i] >= '0' && result[i] <= '9')
			{
				count++;
				if(count == 4) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000}Вашем коментари слишком много цифр {0000ff}(подозрение на рекламу)");
			}
		}
		if(strlen(result) > 30) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000}В коментарии допустимо минимум 30 букв.");
		new h;
		h = pStats[playerid][XP];
		format(BizzInfo[h][kommen], 60, (result));
		new strstr[256];
		format(strstr,sizeof(strstr),"{1E90FF}Бизнес номер: {87CEEB}%d\n{1E90FF}Название: {87CEFA}%s\n{1E90FF}Владелец: {87CEFA}%s\n{1E90FF}Коментарий: {87CEFA}%s",h,BizzInfo[h][Name],BizzInfo[h][Owner]
, BizzInfo[h][kommen]);
		UpdateDynamic3DTextLabelText(bbb[h],0x45D14DFF, strstr);
		format(GlobalInfo, 256, "{9C44FD}..::| Теперь коментарий вашего бизнеса ''{FFFFFF}%s{9C44FD}'' |::..", BizzInfo[h][kommen]);
		SCM(playerid, admin2, GlobalInfo);
		new str[256];
		new str2[60];
		format(str,256,"%f,%f,%f,%s,%d,%d,%d,%s,%d,%s,%d",
		BizzInfo[h][poox],
		BizzInfo[h][pooy],
		BizzInfo[h][pooz],
		BizzInfo[h][Owner],
		BizzInfo[h][Coast],
		BizzInfo[h][dohod],
		BizzInfo[h][virtuall],
		BizzInfo[h][Name],
		BizzInfo[h][cuplen],
		BizzInfo[h][kommen],
		BizzInfo[h][interr]);
		format(str2,60,"%i",h);
		dini_Set("BuyAll/Bizz.ini",str2,str);
		return 1;
	}


Про ужасную размерность в 256 ячеек знаю, потому вычту нужное кол-во.

Сообщение отредактировал AssaultBreck: 15 Май 2018 - 22:14

0

#2
Пользователь офлайн   sql!te 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
	CMD:bizcom(playerid)
	{
		if(pStats[playerid][XP] == 1000) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000}У вас нет бизнеса.");
		new length = strlen(cmdtext);
		while ((idx < length) && (cmdtext[idx] <= ' '))
		{
			idx++;
		}
		new offset = idx;
		new result[64];
		while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
		{
			result[idx - offset] = cmdtext[idx];
			idx++;
		}
		result[idx - offset] = EOS;
		if(!strlen(result)) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000} /bizcom [текст]");
		new allowed = 1;
		for (new i=0;i<strlen(result);i++)
		{
			if (result[i]==0)
			{
				allowed = 1;
				break;
			} // null
			if ((result[i]<48) && (result[i]!=32))
			{
				allowed = 0;
				break;
			}
			if (result[i]>57 && result[i]<65)
			{
			 	allowed = 0;
				break;
			}
			if (result[i]>90 && result[i]<97)
			{
				allowed = 0;
				break;
			}
			if (result[i]>122)
			{
				allowed = 1;
				break;
			}
		}
	// конец проверки
		if(!allowed) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000}Недопустимые символы в коментарии.");
		new count;
		for (new i; i < strlen(result); i++)
		{
			if (result[i] >= '0' && result[i] <= '9')
			{
				count++;
				if(count == 4) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000}Вашем коментари слишком много цифр {0000ff}(подозрение на рекламу)");
			}
		}
		if(strlen(result) > 30) return SCM(playerid, -1, !"[СЕРВЕР]: {ff0000}В коментарии допустимо минимум 30 букв.");
		new h;
		h = pStats[playerid][XP];
		format(BizzInfo[h][kommen], 60, (result));
		new strstr[256];
		format(strstr,sizeof(strstr),"{1E90FF}Бизнес номер: {87CEEB}%d\n{1E90FF}Название: {87CEFA}%s\n{1E90FF}Владелец: {87CEFA}%s\n{1E90FF}Коментарий: {87CEFA}%s",h,BizzInfo[h][Name],BizzInfo[h][Owner]

, BizzInfo[h][kommen]);
		UpdateDynamic3DTextLabelText(bbb[h],0x45D14DFF, strstr);
		format(GlobalInfo, 256, "{9C44FD}..::| Теперь коментарий вашего бизнеса ''{FFFFFF}%s{9C44FD}'' |::..", BizzInfo[h][kommen]);
		SCM(playerid, admin2, GlobalInfo);
		new str[256];
		new str2[60];
		format(str,256,"%f,%f,%f,%s,%d,%d,%d,%s,%d,%s,%d",
		BizzInfo[h][poox],
		BizzInfo[h][pooy],
		BizzInfo[h][pooz],
		BizzInfo[h][Owner],
		BizzInfo[h][Coast],
		BizzInfo[h][dohod],
		BizzInfo[h][virtuall],
		BizzInfo[h][Name],
		BizzInfo[h][cuplen],
		BizzInfo[h][kommen],
		BizzInfo[h][interr]);
		format(str2,60,"%i",h);
		dini_Set("BuyAll/Bizz.ini",str2,str);
		return 1;
	}


1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей