Dmitriy Makarov
Умник
Как в плане "Адекватности" будет активация через PVar, которая активирует другую активацию PVar и через эту активацию будет выполнять код, который находится рядом с первой активацией..
Думаю, что ничего не поняли.
Пытаюсь сделать команду /hi, которая будет выполняться через согласие "Y/N", но сталкиваюсь с проблемами, что один игрок не воспроизводит анимацию пожатия руки.
Думаю, что ничего не поняли.
Пытаюсь сделать команду /hi, которая будет выполняться через согласие "Y/N", но сталкиваюсь с проблемами, что один игрок не воспроизводит анимацию пожатия руки.
C++:
CMD:hi(playerid, params[])
{
// Тут всякие проверки
if(GetPVarInt(playerid, "sendask") > -1) return SCM(playerid, COLOR_GREY, "Вы уже делали кому-то предложение"); // Делаю проверку на то, что я не делал до этого другому предложение
if(GetPVarInt(params[0], "getask") > -1) return SCM(playerid, COLOR_GREY, "Игроку уже делают предложение"); // Делаю проверку на то, что игроку(params[0]) не делают предложение (руки и серда, хы)
SetPVarInt(playerid, "sendask", params[0]); // "Активирую" PVar sendask
SetPVarInt(params[0], "getask", playerid); // Тут тоже самое
SetPVarInt(params[0], "asktype", 2); // Это switch, код покажу ниже
new Float:x, Float:y, Float:z, Float:a;
GetPlayerFacingAngle(playerid, a); // Беру FacingAngle
GetPlayerPos(playerid, x, y, z); // Беру коорды
x = x + (1.0 * floatsin(-a, degrees)); // Тут крч я ТПхаю params[0] к себе перед собой. Шершняга помог
y = y + (1.0 * floatcos(-a, degrees)); // Тоже самое с Y
SetPlayerPos(params[0], x, y, z); // Меняю его коорды (ТПхаю перед собой)
SetPlayerFacingAngle(params[0], a + 180.0); // Поворачиваю его лицом к себе
new string[86];
format(string, sizeof(string), "%s пожал(а) руку %s", pInfo[playerid][pName], pInfo[params[0]][pName]);
ProxDetector(10.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
ApplyAnimation(playerid, "GANGS", "hndshkfa", 4.1, 0, 0, 0, 0, 0); // Воспроизвожу анимацию пожатия руки
ApplyAnimation(params[0], "GANGS", "hndshkfa", 4.1, 0, 0, 0, 0, 0); // Тут уже тот чел её воспроизводит
return 1;
}
C++:
// OnPlayerKeyStateChange
// Тут где-то действие на Y, N есть, но это не важно, важно действие на эти кнопки
switch(asktype)
{
// Тут case 1. Там другое действие совсем не относящее к команде /hi
case 2:
{
// И тут мне нужно, чтобы когда params[0] с команды /hi нажимал на Y
// Код с /hi выполнялся дальше, т.е этот код:
/*
new Float:x, Float:y, Float:z, Float:a;
GetPlayerFacingAngle(playerid, a);
GetPlayerPos(playerid, x, y, z);
x = x + (1.0 * floatsin(-a, degrees));
y = y + (1.0 * floatcos(-a, degrees));
SetPlayerPos(params[0], x, y, z);
SetPlayerFacingAngle(params[0], a + 180.0);
new string[86];
format(string, sizeof(string), "%s пожал(а) руку %s", pInfo[playerid][pName], pInfo[params[0]][pName]);
ProxDetector(10.0, playerid, string, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF, 0xDD90FFFF);
ApplyAnimation(playerid, "GANGS", "hndshkfa", 4.1, 0, 0, 0, 0, 0);
ApplyAnimation(params[0], "GANGS", "hndshkfa", 4.1, 0, 0, 0, 0, 0);
*/
// Пару дней уже пытаюсь представить это, никак не могу.
}
}
