Просмотр полной версии : [Вопрос] Авто починка
BaBuIIIkaDrifteR
24.02.2015, 07:30
Сделал авто починку автомобиля при врезании. Все работает и чинит когда врезаешься. Но если перевернуть автомобиль он загорится и взорвется! Почему он не чиниться?
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new Float:health;
GetVehicleHealth(GetPlayerVehicleID(playerid),health);
if(health > 250.0) SetVehicleHealth(vehicleid, 1000.0);
RepairVehicle(vehicleid);//äàííàÿ Ôóíêèÿ ÷èíèò àâòîìîáèëü
return 1;
}
Сделал авто починку автомобиля при врезании. Все работает и чинит когда врезаешься. Но если перевернуть автомобиль он загорится и взорвется! Почему он не чиниться?
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new Float:health;
GetVehicleHealth(GetPlayerVehicleID(playerid),health);
if(health > 250.0) SetVehicleHealth(vehicleid, 1000.0);
RepairVehicle(vehicleid);//äàííàÿ Ôóíêèÿ ÷èíèò àâòîìîáèëü
return 1;
}
Может функцию лучше тыкнуть в 1-секундный тамер? Там уж точно должно работать,наверное.
Данный паблик вызывается тогда, когда что-либо в транспорте разбивается, например помялась дверь, сломалась фара. Делайте в таймере восстановление.
BaBuIIIkaDrifteR
24.02.2015, 18:27
Данный паблик вызывается тогда, когда что-либо в транспорте разбивается, например помялась дверь, сломалась фара. Делайте в таймере восстановление.
Сделал в OnPlayerUpdate, теперь машина чиниться даже когда не врезаешься.
new Float:health;
GetVehicleHealth(GetPlayerVehicleID(playerid),health);
if(health > 250.0) SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
RepairVehicle(GetPlayerVehicleID(playerid));
Нужно проверять со старыми данными. Если текущее количество здоровья больше чем старое, то чините.
BaBuIIIkaDrifteR
24.02.2015, 19:11
Нужно проверять со старыми данными. Если текущее количество здоровья больше чем старое, то чините.
Это как О_о
Mazzilla
24.02.2015, 20:03
new Float: vehicle_health[MAX_VEHICLES]; // к глобальным
/* В таймер */
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new Float: vehicle_health_now, vehicleid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vehicleid, vehicle_health_now);
if(vehicle_health_now > vehicle_health[vehicleid])
{
SetVehicleHealth(vehicleid, 1000.0);
RepairVehicle(vehicleid);
}
GetVehicleHealth(vehicleid, vehicle_health[vehicleid]);
}
Сделал в OnPlayerUpdate, теперь машина чиниться даже когда не врезаешься.
new Float:health;
GetVehicleHealth(GetPlayerVehicleID(playerid),health)
RepairVehicle(GetPlayerVehicleID(playerid));
Хм? Что? if(health > 250.0) SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
Если значение health(1000), больше значение 250, то здровье машины изменяется на 1000. (health)
Ты просто сделал GM Car, а не авто починку.
BaBuIIIkaDrifteR
25.02.2015, 00:45
Хм? Что? if(health > 250.0) SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
Если значение health(1000), больше значение 250, то здровье машины изменяется на 1000. (health)
Ты просто сделал GM Car, а не авто починку.
Ну епта мне инодо и ГМ кар и автопочинку. LOoooooooooooOl
- - - Добавлено - - -
new Float:health;
GetVehicleHealth(GetPlayerVehicleID(playerid),health);
if(health < 999.0) SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
RepairVehicle(GetPlayerVehicleID(playerid));
Попробуй так, Бабушка Дрифтер :D
BaBuIIIkaDrifteR
25.02.2015, 01:18
- - - Добавлено - - -
new Float:health;
GetVehicleHealth(GetPlayerVehicleID(playerid),health);
if(health < 999.0) SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
RepairVehicle(GetPlayerVehicleID(playerid));
Попробуй так, Бабушка Дрифтер :D
Выш уже способ дали
BaBuIIIkaDrifteR
25.02.2015, 22:05
new Float: vehicle_health[MAX_VEHICLES]; // к глобальным
/* В таймер */
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new Float: vehicle_health_now, vehicleid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vehicleid, vehicle_health_now);
if(vehicle_health_now > vehicle_health[vehicleid])
{
SetVehicleHealth(vehicleid, 1000.0);
RepairVehicle(vehicleid);
}
GetVehicleHealth(vehicleid, vehicle_health[vehicleid]);
}
Не работает даже в односекундном паблике.
Вот смотри полный мой паблик.
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
if(RepairCar[playerid] == 1)//Проверяем включена автопочинка или выключена
{
RepairVehicle(vehicleid);//данная Функия чинит автомобиль
if(Shini[playerid] == 0)//Проверяем спущенны шины или накачены.
{
new Panels,Doors,Lights,Tires;
GetVehicleDamageStatus(vehicleid,Panels,Doors,Lights,Tires);
UpdateVehicleDamageStatus(vehicleid,Panels,Doors,Lights,0101);
}
if(DriftPointsNow[playerid] > 0 && Player[playerid][pCrash] < 1)//Доп.возможности (AntiCraser)
{
GivePlayerMoneyED(playerid, 0);
Player[playerid][pDrift] += 0;
PlayerTextDrawShow(playerid, CrashA);//Выводим на экран надпись краш при ударе автомобиля
PlayerTextDrawSetString(playerid, drifting, " ");//Обновляем текст драв дрифт счечика на 0
DriftPointsNow[playerid] = 0;
TrueScore[playerid] = 0;
TrueX[playerid] = 1;
if(Player[playerid][pDriftX5] > 0) TrueX[playerid] = 5;//Доп.возможности (Множетель дрифта x5)
rtime[playerid] = -1;
}
}
return 1;
}
Это система связана и она одна
Код пользователя 'Mazzilla' полностью рабочий, у себя проблему ищите. Неверно создаёте таймер возможно.
Воспользуйся моим вариантом =)
BaBuIIIkaDrifteR
02.03.2015, 23:07
Код пользователя 'Mazzilla' полностью рабочий, у себя проблему ищите. Неверно создаёте таймер возможно.
Вы не поняли код работает но когда я начинаю набирать очки при дрифте этот же паблик вызывается каждую секунду и мне не дается возможность набрать очки они сбрасываются потому как автомобиль чиниться
Код на сброс дрифт-очков выложите.
BaBuIIIkaDrifteR
02.03.2015, 23:35
Код на сброс дрифт-очков выложите.
if(DriftPointsNow[playerid] > 0 && Player[playerid][pCrash] < 1)//Доп.возможности (AntiCraser)
{
GivePlayerMoneyED(playerid, 0);
Player[playerid][pDrift] += 0;
PlayerTextDrawShow(playerid, CrashA);//Выводим на экран надпись краш при ударе автомобиля
PlayerTextDrawSetString(playerid, drifting, " ");//Обновляем текст драв дрифт счечика на 0
DriftPointsNow[playerid] = 0;
TrueScore[playerid] = 0;
TrueX[playerid] = 1;
if(Player[playerid][pDriftX5] > 0) TrueX[playerid] = 5;//Доп.возможности (Множетель дрифта x5)
rtime[playerid] = -1;
}
Так же вот весь код авто починки и связанных функций
if(RepairCar[playerid] == 1)//Проверяем включена автопочинка или выключена
{
RepairVehicle(vehicleid);//данная Функия чинит автомобиль
if(Shini[playerid] == 0)//Проверяем спущенны шины или накачены.
{
new Panels,Doors,Lights,Tires;
GetVehicleDamageStatus(vehicleid,Panels,Doors,Lights,Tires);
UpdateVehicleDamageStatus(vehicleid,Panels,Doors,Lights,0101);
}
if(DriftPointsNow[playerid] > 0 && Player[playerid][pCrash] < 1)//Доп.возможности (AntiCraser)
{
GivePlayerMoneyED(playerid, 0);
Player[playerid][pDrift] += 0;
PlayerTextDrawShow(playerid, CrashA);//Выводим на экран надпись краш при ударе автомобиля
PlayerTextDrawSetString(playerid, drifting, " ");//Обновляем текст драв дрифт счечика на 0
DriftPointsNow[playerid] = 0;
TrueScore[playerid] = 0;
TrueX[playerid] = 1;
if(Player[playerid][pDriftX5] > 0) TrueX[playerid] = 5;//Доп.возможности (Множетель дрифта x5)
rtime[playerid] = -1;
}
}
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot