tryp
Умник
Добрый день фурмочане хочу представить вам команду,создание объекта через игру!(без лимита)
ну начнем
ко всем new
начало добавляем в public OnPlayerCommandText(playerid, cmdtext[])
ну и добавил удаление этих объектов public OnPlayerCommandText(playerid, cmdtext[])
и создаем сам DevLog(string)
P.S добавил 2 команды создание 1 команда создает и после рестарта удаляется 2 создает и не удаляется после рестарта(кроме команды /do)
ну начнем
ко всем new
PHP:
new tmpobj = 0;
new objectss[MAX_OBJECTSX];
new objcount;
new LastObj[MAX_PLAYERS];
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;
}
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;
}
}
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);
}
Последнее редактирование:
