В теме 8 сообщений

1. Описание команды.

Данная команда позволяет отремонтировать транспортное средство (до 1000.0), в котором находится игрок, использующий данную команду.

2. Код команды.

Спойлер

if(!strcmp(cmd, "/fixveh", true))
{
	new vehicleid = GetPlayerVehicleID(playerid);
	if(vehicleid == 0)
		return SendClientMessage(playerid, -1, !"Вы не находитесь в транспортном средстве, поэтому не можете использовать эту команду.");
	RepairVehicle(vehicleid);
	SendClientMessage(playerid, -1, !"Транспортное средство успешно отремонтировано.");
	return 1;
}

 

Спойлер

CMD:fixveh(playerid)
{
	new vehicleid = GetPlayerVehicleID(playerid);
	if(vehicleid == 0)
		return SendClientMessage(playerid, -1, !"Вы не находитесь в транспортном средстве, поэтому не можете использовать эту команду.");
	RepairVehicle(vehicleid);
	SendClientMessage(playerid, -1, !"Транспортное средство успешно отремонтировано.");
	return 1;
}

 

3. Авторское право.

Автор данной команды неизвестен. Вырезана из игрового мода.

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


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

К сожалению, данное решение актуально не для всех модов. Большинство пользователей, вставивших эту команду в свой мод, лишь встретятся с ошибками, которые не смогут исправить... Пожалуйста, перед публикацией новых тем, продумайте этот момент, в противном случае последующие темы будем удалять. 

 

UPD: исправил данную команду, убрал лишние проверки.

Отредактировано пользователем odosenok

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


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

Отлично, подошло! мне нравиться плюсик :> с первого раза мало где найдёшь

Заметка от keyl , создано

Используйте кнопку "+" - чтобы поблагодарить автора. Устное предупреждение!

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


Ссылка на сообщение
Поделиться на другие сайты
CMD:fixveh(playerid)
{
	RepairVehicle(GetPlayerVehicleID(playerid));
        SCM(playerid, Color_Green, "Вы успешно отремонтировали машину!");
	return 1;
}

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


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

@Sokur228 а если игрок не находится в машине? Какое значение передаст GetPlayerVehicleID? Можно узнать?

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


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

@SCRIPTMAN Скриптман если игрок в машине то она чинится можно приписать else что игрок находится не в машине а если он не в машине то она не чинится"!!!

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


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

@Sokur228, так а в чем проблема исходного варианта? Если игрок не в автомобиле, тогда он не чинится. В автомобиле – чинится. К сожалению, учитывая количество багов в движке SAMP, нет гарантий, что функция RepairVehicle отреагирует адекватно, если ей передать невалидные значения. Почему бы просто не предусмотреть этот вопрос заранее? Тем более, что это всего лишь одна проверка, а не целый огород.

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


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

@Cawfee а она скорее всего и отреагирует неадекватно, в лучшем случае - ошибка, в худшем - краш, потому что ей будут пытаться присвоить мусорное значение

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

  • Похожий контент

    • От MrNARTI
      делал дополнение для организации что бы при повторном взятии авто не вводить /unfcar.
       
      код
       
      ошибки
       
      обьясните пожалуйста понятным языком даже для тупых пожалуйста)
    • От phizl
      Доброго времени суток, у меня в моде есть система заточки аксессуаров и она работает, все значения записываются, но по каким-то причинам увеличение урона не срабатывает. У меня есть инклуд weapon-config, до этого в нём не было перехвата функции, я его сделал и по идее дефолтные паблики OnPlayerGiveDamage и OnPlayerTakeDamage щас срабатывают. Буду очень благодарен любой помощи! (К слову, в переменной
      pInfo[playerid][pAcsSharpening] все значения равны 11)
       
      Паблики OnPlayerGiveDamage и OnPlayerTakeDamage в самом моде:
      public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart) {     new damage;     switch(pInfo[playerid][pAcsSharpening][2])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][2]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     switch(pInfo[playerid][pAcsSharpening][3])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][3]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     return 1; } public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) {     new nodamage;     if(pInfo[playerid][pAcsSharpening][1] != 0)     {         switch(pInfo[playerid][pAcsSharpening][1])         {             case 1..3: nodamage = 0;             case 4: nodamage = 2;             case 5: nodamage = 4;             case 6: nodamage = 5;             case 7: nodamage = 6;             case 8: nodamage = 8;             case 9: nodamage = 10;             case 10: nodamage = 12;             case 11,12: nodamage = 15;         }     }     if(pInfo[playerid][pAcsSharpening][4] != 0)     {         switch(pInfo[playerid][pAcsSharpening][4])         {             case 1..3: nodamage = 0;             case 4..11: nodamage = pInfo[playerid][pAcsSharpening][4]-2;             case 12: nodamage = 9;         }     }     new damage;     switch(pInfo[playerid][pAcsSharpening][2])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][2]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     switch(pInfo[playerid][pAcsSharpening][3])     {         case 0..3: damage = 0;         case 4..11: damage = pInfo[playerid][pAcsSharpening][3]-3;         case 12: damage = 8;     }     amount += (amount / 100) * damage;     if(pInfo[playerid][pAcsSharpening][1] == 0 && pInfo[playerid][pAcsSharpening][4] == 1 || pInfo[playerid][pAcsSharpening][4] == 0 && pInfo[playerid][pAcsSharpening][2] == 1) amount -= (amount / 100) * nodamage;     if(pInfo[playerid][pAcsSharpening][4] == 1 && pInfo[playerid][pAcsSharpening][2] == 1) amount -= (amount / 100)*nodamage*2;     return 1; }  
      Эти же паблики, но в weapon-config с моим перехватом (расположен внизу каждого паблика), мало ли как-то не так сделал