В теме 22 сообщения

Данная система подойдет как для Дрифт так и РП модов. Так как возгорание машины для РП модов как-то не очень :(

В конец мода:

forward autochinilka();
public autochinilka()
{
        for(new playerid=0; playerid<MAX_PLAYERS; playerid++)
        {
            if (!IsPlayerInAnyVehicle(playerid) || GetPlayerState(playerid) != PLAYER_STATE_DRIVER) continue;
            new Float:HPMASHINI;
            GetVehicleHealth(GetPlayerVehicleID(playerid), HPMASHINI);
            if (HPMASHINI < 300) SetVehicleHealth(GetPlayerVehicleID(playerid), 350);
        }
        return 1;
}

В паблик OnVehicleDamageStatusUpdate:

autochinilka();

 

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


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

У меня нету OnVehicleDamageStatusUpdate:

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


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

Я правильно понимаю, что данная штука не даёт машине возгораться, но и двигаться? 

Типо просто дым, а чтобы машина ехала её следует починить уже другой кмд?

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


Ссылка на сообщение
Поделиться на другие сайты
  В 9/2/2017 в 16:54, DEST сказал:

Данная система подойдет как для Дрифт так и РП модов. Так как возгорание машины для РП модов как-то не очень :(

В конец мода:

forward autochinilka();
public autochinilka()
{
        for(new playerid=0; playerid<MAX_PLAYERS; playerid++)
        {
            if (!IsPlayerInAnyVehicle(playerid) || GetPlayerState(playerid) != PLAYER_STATE_DRIVER) continue;
            new Float:HPMASHINI;
            GetVehicleHealth(GetPlayerVehicleID(playerid), HPMASHINI);
            if (HPMASHINI < 300) SetVehicleHealth(GetPlayerVehicleID(playerid), 350);
        }
        return 1;
}

В паблик OnVehicleDamageStatusUpdate:

autochinilka();

 

Читать далее...  

Не фурычит,всё как надо стоит,скомпилировалось без проблем - но на сервере не пашет.

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


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

@Lelouch посмотрите в моде, есть ли античит на ХП машины, возможно он меняет его обратно, поищите по 

  В 9/2/2017 в 16:54, DEST сказал:

SetVehicleHealth

Читать далее...  

в моде

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


Ссылка на сообщение
Поделиться на другие сайты
  В 1/3/2022 в 17:14, DEST сказал:

@Lelouch посмотрите в моде, есть ли античит на ХП машины, возможно он меняет его обратно, поищите по 

в моде

Читать далее...  

Есть такое:

		if(IsPlayerInAnyVehicle(i))
		{
		    GetVehicleHealth(GetPlayerVehicleID(i), hp);
		    if(VEHICLE[GetPlayerVehicleID(i)][vHealth] < hp) {
			    if(GetPVarInt(i,"playerUsePaynSpray") == 0) SetVehicleHealth(GetPlayerVehicleID(i),VEHICLE[GetPlayerVehicleID(i)][vHealth]);
				if(GetPVarInt(i,"playerUsePaynSpray") != 0 && GetPlayerState(i) == PLAYER_STATE_DRIVER) {
				    setVehicleHealth(GetPlayerVehicleID(i),1000.0);
				    SetPVarInt(i,"playerUsePaynSpray",0);
				}
			}
			else VEHICLE[GetPlayerVehicleID(i)][vHealth] = hp;
			if(hp < 100)
			{
				zavodis[i] = 0;
				GetVehicleParamsEx(GetPlayerVehicleID(i),engine,lights,alarm,doors,bonnet,boot,objective);
				SetVehicleParamsEx(GetPlayerVehicleID(i),0,0,alarm,doors,bonnet,boot,objective);
			}
		}

 

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


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

@Lelouch тогда после вызова SetVehicleHealth нужно еще менять и внутреннюю переменную ХП машины 

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


Ссылка на сообщение
Поделиться на другие сайты
  В 1/3/2022 в 18:31, DEST сказал:

@Lelouch тогда после вызова SetVehicleHealth нужно еще менять и внутреннюю переменную ХП машины 

Читать далее...  

К примеру как? Можешь переделать код ?

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


Ссылка на сообщение
Поделиться на другие сайты
if (HPMASHINI < 300) SetVehicleHealth(GetPlayerVehicleID(playerid), 350);

заменить на 

 

if (HPMASHINI < 300) 
{
    SetVehicleHealth(GetPlayerVehicleID(playerid), 350);  
    VEHICLE[GetPlayerVehicleID(i)][vHealth] = 350;

}

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

 

  открыть спойлер

И тогда вместо самого первого указанного кода, можно будет просто вызвать: 

if (HPMASHINI < 300SetVehicleHealthAndStore(GetPlayerVehicleID(playerid), 350);

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


Ссылка на сообщение
Поделиться на другие сайты
  В 1/3/2022 в 18:50, DEST сказал:
if (HPMASHINI < 300) SetVehicleHealth(GetPlayerVehicleID(playerid), 350);

заменить на 

 

if (HPMASHINI < 300) 
{
    SetVehicleHealth(GetPlayerVehicleID(playerid), 350);  
    VEHICLE[GetPlayerVehicleID(i)][vHealth] = 350;

}

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

 

  открыть спойлер

И тогда вместо самого первого указанного кода, можно будет просто вызвать: 

if (HPMASHINI < 300SetVehicleHealthAndStore(GetPlayerVehicleID(playerid), 350);

Читать далее...  

Чёт я не понял ничего почти,Можешь по понятней чуток сделать что бы не загаралась тачка,что бы уровень её HP не падал меньше ну 300,тип что бы при ХП 300 она проста заглушилась без возможности завестись.

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


Ссылка на сообщение
Поделиться на другие сайты
  В 1/3/2022 в 19:14, Lelouch сказал:

Чёт я не понял ничего почти,Можешь по понятней чуток сделать что бы не загаралась тачка,что бы уровень её HP не падал меньше ну 300,тип что бы при ХП 300 она проста заглушилась без возможности завестись.

Читать далее...  

Покажите enum (VEHICLE).

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


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

В Плане ? У меня нету enum Vehicle

  В 1/3/2022 в 20:02, LoX_1337 сказал:

Покажите enum (VEHICLE).

Читать далее...  

 

Я чёт там сам подшаманил,и терь если хп ниже 300 то он ставит 300 хп + глушит авто, НО,что-то пытается и чинит его на 1000 потом обратно сбрасывает на 300 и опять касарь и опять трактористы,хз че делать.

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


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

@Lelouch Суть системы в том, что когда срабатывает коллбэк OnVehicleDamageStatusUpdate вызывается функция autochinilka(), в которой у каждого игрока проверяется ХП машины (если он в машине) и если оно меньше 300 (именно с этого уровня начинается возгорание ТС), то система назад ставит на 300 и оно будет просто дымить.

В принципе, из того что я описал, становится понятно что система реализована не совсем корректно. Если в коллбэк OnVehicleDamageStatusUpdate итак приходит vehicleid, то незачем проверять ХП машины у всех игроков. С учетом этого, можно немного переделать и упростить систему. 

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


Ссылка на сообщение
Поделиться на другие сайты
  В 1/3/2022 в 21:01, DEST сказал:

@Lelouch Суть системы в том, что когда срабатывает коллбэк OnVehicleDamageStatusUpdate вызывается функция autochinilka(), в которой у каждого игрока проверяется ХП машины (если он в машине) и если оно меньше 300 (именно с этого уровня начинается возгорание ТС), то система назад ставит на 300 и оно будет просто дымить.

В принципе, из того что я описал, становится понятно что система реализована не совсем корректно. Если в коллбэк OnVehicleDamageStatusUpdate итак приходит vehicleid, то незачем проверять ХП машины у всех игроков. С учетом этого, можно немного переделать и упростить систему. 

Читать далее...  

Ваще не шарю если честно. Спасибо за помощь. Надо найти человека по опытнее что согласится бесплатно исправить эту проблему.

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


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

@Lelouch, а почему бы не попробовать разобраться бесплатно вместе со участниками портала? Правда желательно создать новую тему, дабы не забивать уже текущую.

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


Ссылка на сообщение
Поделиться на другие сайты
  В 1/4/2022 в 14:57, Снеговик сказал:

@Lelouch, а почему бы не попробовать разобраться бесплатно вместе со участниками портала? Правда желательно создать новую тему, дабы не забивать уже текущую.

Читать далее...  

Ну не знаю,я могу чёт накосачить или ещё что,если честно я не давно скажем так опять начал скриптить,после перерыва в год с чем-то,сижу скажем так реабилитируюсь по не многу.
Насчёт темы - окей. Создам новую с просьбой о помощи.

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


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

вставляю и просто прекращается работа павно комплитер...

Может нужны какие-то скобки по типу "}" перед ним?

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


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

@Admin666, покажите всю функцию, в которую вы добавили эту строку.

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


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

Ребят какой это язык?

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


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

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


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

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


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

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

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

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

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


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

Войти

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


Войти

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

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

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

    • Dev_Persona
      От Dev_Persona
      Приветствую всех, у меня возник такой вопрос:
       
      - хочу изменить базовую регистрацию в админке в крмп, на Болле сложную то-есть, сейчас изначально пароль от админки может быть только из цифр, хотелось бы узнать как можно было бы сделать что бы можно было использовать и цифры и буквы, вот код:
       
      case DIALOG_ADMIN_REG:
         {
          if(!response) return FixKick(playerid);
       
          if(strval(inputtext) < 100000 || strval(inputtext) > 999999) return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен быть из 6 цифр.\n", "Готово", "");
                   SetPlayerData(playerid, P_APASS, strval(inputtext));
       
                   UpdatePlayerDatabaseInt(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));
       
                   AdminAuthorization(playerid);
         }
    • MetaLife Online
      От MetaLife Online
      Приветствую! Код мода не отпровляет данные на БД все правильно подключенно и написанно(копировал с phpmyadmin) но данные не отпровляет. но с БД на сервер приходит сообщение 
       
      new MySQL:dbHandle; new MySQL:dbHandle; #define Host "127.0.0.1" #define User "root" #define DataBase "metalife" #define Password_SQL "" dbHandle = mysql_connect(Host,User,Password_SQL, DataBase);     if(mysql_errno())     {         printf("Подключение к базе данных %s не удалось.",DataBase); // %s означает строку. То есть будет выводить название базы данных которое указано в #define DataBase     }     else     {         printf("Подключение к базе данных %s успешно",DataBase);     }     format(query, sizeof(query), "INSERT INTO `Users`(`Nick`, `Password`, `Gender`, `Skin`) VALUES ('%s','%s','%d','%d')",player_name, player_info[playerid][P_PASS], player_info[playerid][P_GENDER], player_info[playerid][P_SKIN]);     mysql_tquery(dbHandle, query); SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team [15:34:54] weburl = "www.sa-mp.com"  (string) [15:34:54]  [15:34:54] Server Plugins [15:34:54] -------------- [15:34:54]  Loading plugin: mysql [15:34:55]  >> plugin.mysql: R41-4 successfully loaded. [15:34:55]   Loaded. [15:34:55]  Loaded 1 plugins. [15:34:55]  [15:34:55] Filterscripts [15:34:55] --------------- [15:34:55]   Loaded 0 filterscripts. [15:34:55] Подключение к базе данных metalife успешно [15:34:55]  ---------------------------------- [15:34:55]  MetaLife Online [15:34:55] ---------------------------------- [15:34:55] Number of vehicle models: 1 При Регестрации не опровляються данные (фото)
      Но если записать рукой данные (фото 2)  
      выполняеться эта эта функция(фото 3(чат) и код )
      forward CheckAccountFromMySql(playerid); public CheckAccountFromMySql(playerid) {     new str[256];     if(cache_num_rows() == 0)     {         new player_name[MAX_PLAYER_NAME + 1];         GetPlayerName(playerid, player_name, MAX_PLAYER_NAME);         format(str, sizeof(str), " {ffffff}Добро пожаловать!\n Аккаунта с таким ником %s нет\nДля Регестрации придумайте и введите пароль в поле ниже!", player_name);         SPD(playerid, DLG_REG, DSP, "Регестрация", str, "Войти", "Выйти");     }     else     {         SCM(playerid, color_green, "Вы  зарегестрырованы!");     }     return 1; } // выполняеться else  ошибу и варнинги mysql
      [15:47:39] [WARNING] mysql_connect: no password specified (C:\Project\Metalife\gamemodes\MetaLife.pwn:92) dbHandle = mysql_connect(Host,User,Password_SQL, DataBase); // 92 строка