Перейти к содержанию
Авторизация  
MAXDELAET

Что не так?

Рекомендуемые сообщения

MAXDELAET

Здравствуйте, уже второй день не могу решить проблему. Написал команду для прикрепления объекта к машине,

но возникла проблема, в игре ничего не происходит. Помогите пожалуйста, заранее спасибо.

new attachobj;
CMD:attach(playerid, params[])
{
	new Float:x, Float:y, Float:z;
    IsAdmin(ADM_CHIEF);
	if(sscanf(params,"fff",x,y,z)) return SendClientMessage(playerid, 0xFFFFFFAA, ""CMD_PREF"/attach [id car] [id object] [x] [y] [z]");
	attachobj = CreateObject(params[1], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
	AttachObjectToVehicle(attachobj, params[0], x, y, z, 0.0, 0.0, 0.0);
	return 1;
}
CMD:unattach(playerid, params[])
{
    IsAdmin(ADM_CHIEF);
    DestroyObject(attachobj);
	return true;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Alonso

 

 


if(sscanf(params,"fff",x,y,z)) return SendClientMessage(playerid, 0xFFFFFFAA, ""CMD_PREF"/attach [id car] [id object] [x] [y] [z]");

замени на

if(sscanf(params,"iifff",params[0], params[1], x,y,z)) return SendClientMessage(playerid, 0xFFFFFFAA, ""CMD_PREF"/attach [id car] [id object] [x] [y] [z]");
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MAXDELAET

 

 


if(sscanf(params,"iifff",params[0], params[1], x,y,z)) return SendClientMessage(playerid, 0xFFFFFFAA, ""CMD_PREF"/attach [id car] [id object] [x] [y] [z]");
чудо не произошло

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Rips

Вопрос, почему ты используешь глобальную переменную если ее нужно сделать MAX_VEHILES?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MAXDELAET

, учту, но не решает ошибку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
фучжинейк

Перед return 1; добавить: 

printf("%d - attachobj, %d - vehicleid, %f, %f, %f - xyz", attachobj, vehicleid, x, y, z);

После вызовите команду с введенными параметрами и скиньте логи. 

Изменено пользователем фучжинейк

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MAXDELAET

 

 


printf("%d - attachobj, %d - vehicleid, %f, %f, %f - xyz", attachobj, vehicleid, x, y, z);

65535 - attachobj, 266 - vehicleid, -0.008399, -0.024499, 0.849300 - xyz

Вводил - /attach 266 19419 -0.0084 -0.0245 0.8493

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MAXDELAET

Я выяснил одно, то что ID объекта не в зависимости какой я ставлю, он автоматом как-то в 65535 переделывается.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

CMD:attach(playerid, params[])
{
new Float:x, Float:y, Float:z;
IsAdmin(ADM_CHIEF);
if(sscanf(params,"iifff",params[0], params[1], x,y,z)) return SendClientMessage(playerid, 0xFFFFFFAA, ""CMD_PREF"/attach [id car] [id object] [x] [y] [z]");
new attachobj;
attachobj = CreateObject(params[1], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
AttachObjectToVehicle(attachobj, params[0], x, y, z, 0.0, 0.0, 0.0);
return 1;
}
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MAXDELAET

@SCRIPTMAN,ok, спасибо большое. А как тогда сделать удаление мигалок если переменная не глобальная? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN
CMD:unattach(playerid, params[])
{
    IsAdmin(ADM_CHIEF);
    DestroyObject(attachobj);
    return true;
}
CMD:attach(playerid, params[])
{
	new Float:x, Float:y, Float:z;
        IsAdmin(ADM_CHIEF);
	if(sscanf(params,"iifff",params[0], params[1], x,y,z)) return SendClientMessage(playerid, 0xFFFFFFAA, ""CMD_PREF"/attach [id car] [id object] [x] [y] [z]");
	attachobj = CreateObject(params[1], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
	AttachObjectToVehicle(attachobj, params[0], x, y, z, 0.0, 0.0, 0.0);
	return 1;
}

а к переменным попробуй все же: new attachobj;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
MAXDELAET

@SCRIPTMAN,получается старая фигня, ид предмета непонятно какое 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SCRIPTMAN

@MAXDELAET,тогда так: 

CMD:attach(playerid, params[])
{
	new Float:x, Float:y, Float:z;
        IsAdmin(ADM_CHIEF);
	if(sscanf(params,"iifff",params[0], params[1], x,y,z)) return SendClientMessage(playerid, 0xFFFFFFAA, ""CMD_PREF"/attach [id car] [id object] [x] [y] [z]");
        new attachobj;
	attachobj = CreateObject(params[1], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
	AttachObjectToVehicle(attachobj, params[0], x, y, z, 0.0, 0.0, 0.0);
        SetPVarInt(playerid, "idobject", attachobj);
	return 1;
}
CMD:unattach(playerid, params[])
{
    new object = GetPVarInt(playerid, "idobject");    
    IsAdmin(ADM_CHIEF);
    DestroyObject(object);
    return true;
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.