Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Создание объекта в игре

Статус
В этой теме нельзя размещать новые ответы.

tryp

Умник
Добрый день фурмочане хочу представить вам команду,создание объекта через игру!(без лимита)
ну начнем
ко всем new
PHP:
new tmpobj = 0;
new objectss[MAX_OBJECTSX];
new objcount;
new LastObj[MAX_PLAYERS];
начало добавляем в public OnPlayerCommandText(playerid, cmdtext[])
PHP:
	new cmdlength = strlen(cmd);
if(strcmp(cmd, "/co", true,3) == 0 && cmdlength==3)
	{
	    if(IsPlayerConnected(playerid))
	    {
	     if (PlayerInfo[playerid][pAdmin] < 2)
	     {
			    SendClientMessage(playerid, COLOR_GRAD1, " Вы не можете использовать эту команду!");
			    return 1;
	     }
			new objid,aX,aY,aZ;new Float:X,Float:Y,Float:Z;
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /co [ID] [угол поворота X] [угол поворота Y] [угол поворота Z] [x] [y] [z]");
				return 1;
			}
            if (IsValidObject(tmpobj))
			DestroyObject(tmpobj);
			objid= strval(tmp);
			//углы поворота
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){aX=0;}	else aX = strval(tmp);
			if(aX <0||aX > 360){ SendClientMessage(playerid, COLOR_GRAD1, " Угол поворота от 0 до 360!"); return 1; }
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){aY=0;} else aY = strval(tmp);
			if(aY <0||aY > 360){ SendClientMessage(playerid, COLOR_GRAD1, " Угол поворота от 0 до 360!"); return 1; }
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){aZ=0;} else aZ = strval(tmp);
			if(aZ <0||aZ > 360){ SendClientMessage(playerid, COLOR_GRAD1, " Угол поворота от 0 до 360!"); return 1; }
			//координаты объекта
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){X=0;} else X = floatstr(tmp);
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){Y=0;} else Y = floatstr(tmp);
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){Z=0;} else Z = floatstr(tmp);
			if(X==0.0 || Y==0.0 || Z==0.0)
			{
				GetPlayerPos(playerid, X,Y,Z);
				X++;Y++;Z--;
			}
			//его создание
			tmpobj =CreateObject(objid, X, Y, Z, aX, aY, aZ);
			format(string, sizeof(string), " Обьект %d поставлен.Модель:[%d] Координаты:[%.1f][%.1f][%.1f] Повороты:[%d][%d][%d]", tmpobj,objid,X,Y,Z,aX,aY,aZ);
			SendClientMessage(playerid, COLOR_GREY, string);
			format(string, sizeof(string)," Команда павн: CreateObject(%d, %.1f, %.1f, %.1f, %d, %d, %d);",objid,X,Y,Z,aX,aY,aZ);
			printf("Admin created object.%s",string);//печатаем параметры для удобного копированиия в pawn
			DevLog(string);
		}
		return 1;
	}
		if(strcmp(cmd, "/co1", true,3) == 0 && cmdlength==3)
	{
	    if(IsPlayerConnected(playerid))
	    {
	     if (PlayerInfo[playerid][pAdmin] < 2)
	     {
			    SendClientMessage(playerid, COLOR_GRAD1, " Вы не можете использовать эту команду!");
			    return 1;
	     }
			new objid,aX,aY,aZ;new Float:X,Float:Y,Float:Z;
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp))
			{
				SendClientMessage(playerid, COLOR_GRAD2, " Используйте: /co [ID] [угол поворота X] [угол поворота Y] [угол поворота Z] [x] [y] [z]");
				return 1;
			}
            if (IsValidObject(tmpobj))
			//DestroyObject(tmpobj);
			objid= strval(tmp);
			//углы поворота
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){aX=0;}	else aX = strval(tmp);
			if(aX <0||aX > 360){ SendClientMessage(playerid, COLOR_GRAD1, " Угол поворота от 0 до 360!"); return 1; }
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){aY=0;} else aY = strval(tmp);
			if(aY <0||aY > 360){ SendClientMessage(playerid, COLOR_GRAD1, " Угол поворота от 0 до 360!"); return 1; }
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){aZ=0;} else aZ = strval(tmp);
			if(aZ <0||aZ > 360){ SendClientMessage(playerid, COLOR_GRAD1, " Угол поворота от 0 до 360!"); return 1; }
			//координаты объекта
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){X=0;} else X = floatstr(tmp);
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){Y=0;} else Y = floatstr(tmp);
			tmp = strtok(cmdtext, idx);
			if(!strlen(tmp)){Z=0;} else Z = floatstr(tmp);
			if(X==0.0 || Y==0.0 || Z==0.0)
			{
				GetPlayerPos(playerid, X,Y,Z);
				X++;Y++;Z--;
			}
			//его создание
			tmpobj =CreateObject(objid, X, Y, Z, aX, aY, aZ);
			format(string, sizeof(string), " Обьект %d поставлен.Модель:[%d] Координаты:[%.1f][%.1f][%.1f] Повороты:[%d][%d][%d]", tmpobj,objid,X,Y,Z,aX,aY,aZ);
			SendClientMessage(playerid, COLOR_GREY, string);
			format(string, sizeof(string)," Команда павн: CreateObject(%d, %.1f, %.1f, %.1f, %d, %d, %d);",objid,X,Y,Z,aX,aY,aZ);
			printf("Admin created object.%s",string);//печатаем параметры для удобного копированиия в pawn
			DevLog(string);
		}
		return 1;
	}
ну и добавил удаление этих объектов public OnPlayerCommandText(playerid, cmdtext[])
PHP:
	if(strcmp(cmd,"/do", true) == 0)
	{
            if(PlayerInfo[playerid][pAdmin] > 4)
			{
            	tmp = strtok(cmdtext, idx);
				if(!strlen(tmp))
				{
					SendClientMessage(playerid, COLOR_GRAD2, "Подсказка: /deleteobject [ID]");
					return 1;
				}
				new id;
				id = strval(tmp);
				if(IsPlayerConnected(playerid))
	    		{
					if(IsValidObject(objectss[id]))
					{
						DestroyObject(objectss[id]);
						SendClientMessage(playerid, COLOR_GRAD2, "Обьект убран");
						objcount--;
					}
					return 1;
				}
				return 1;
			}
			else
			{
				SendClientMessage(playerid, COLOR_GREY, "Вы не Строитель/Эвент-мастер/Администратор");
	            return 1;
   			}
	}
и создаем сам DevLog(string)
PHP:
DevLog(string[])
{
	new entry[IO_STRING];
	format(entry, sizeof(entry), "%s\n",string);
	new File:hFile;
	hFile = fopen("logs/dev.log", io_append);
	fwrite(hFile, entry);
	fclose(hFile);
}
P.S добавил 2 команды создание 1 команда создает и после рестарта удаляется 2 создает и не удаляется после рестарта(кроме команды /do)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу