SA-MP Forums Archive
Некорректный спавн некоторых машин после взрыва - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Некорректный спавн некоторых машин после взрыва (/showthread.php?tid=173239)



Некорректный спавн некоторых машин после взрыва - Feel_Life - 01.09.2010

Думаю многие сталкивались с такой проблемкой.. Некоторые машины после взрыва не спавнятся.. а стоят на том месте где взорвались. И для каждого вновь подъезжающего игрока взрываются как бы снова, а для тех кто и так стоял рядом с не взрываются.
Иной раз создается впечатление что едешь по минному полю..

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

Code:
public OnVehicleDeath(vehicleid)
{
	vehTrunk[vehicleid][vehTrunkCounter[vehicleid]] = '\0';
	vehTrunkAmmo[vehicleid][vehTrunkCounter[vehicleid]] = '\0';
	vehTrunkCounter[vehicleid]--;
	SaveTrunk();
	SetVehicleToRespawn(vehicleid);
}
И все равно вот недавно заметил что часть машин не хотят нормально топать на место. Как решить эту проблемку? Сэпасибо


Re: Некорректный спавн некоторых машин после взрыва - Romanius - 02.09.2010

при создании машины используй AddStaticVehicleEx


Re: Некорректный спавн некоторых машин после взрыва - Feel_Life - 02.09.2010

Все машины мода AddStaticVehicleEx. Чуть больше 1000 машин всего. Замечал подобное не только у себя, но и на других серверах..


Re: Некорректный спавн некоторых машин после взрыва - DANGER1979 - 02.09.2010

Что вызывает смерть машины?
Про какие именно машины идет речь? Прицепы, самалёты, лодки? Это проверено на всех машинах?
Ни разу такого не замечал.

Возможно проблема в вашем сценарии. Проверьте, может в таймере вы ставите машинам 100 здоровья. Обычно новички все считают что у машин максимально 100 здоровья как у персов.


Re: Некорректный спавн некоторых машин после взрыва - Feel_Life - 02.09.2010

Нет, я уже не новичок.. И прекрасно понимаю что здоровья 1000.. У меня на админское тв /dl вписано давненько уже xDDD

Машины абсолютно разные.. речь идет именно о машинах на которых можно передвигаться самостоятельно. Буллеты, премьеры итд..
Быть может это зависит от количества транспорта.. не знаю. Но вот факт налицо - если получится даже скрин выложу ситуации.. Хотя выкладывать то нечего.. Просто игрок например ехал на машине с 300хп, врезался, взорвался. Он зареспавнился, машина осталась.. Каждый кто поедет через место взрыва машины будет как бы вновь наблюдать взрыв машины.. но уже пустой. И потом будет видеть лишь обугленный остов, который отказывается исчезать. Я такое даже на ГВ видел. И не только я.


Re: Некорректный спавн некоторых машин после взрыва - dimonml - 02.09.2010

да описанное выше поведение имеет место быть, но, вроде, по таймауту машинка все равно будет зареспавлена как пустая, самим сампом


Re: Некорректный спавн некоторых машин после взрыва - DANGER1979 - 02.09.2010

У меня 794 машин. Попробуй уменьши их до 699 и проверь. Может проблема в новых стримерах тачек.
Также выложи код как ты спаунишь машины


Re: Некорректный спавн некоторых машин после взрыва - Feel_Life - 02.09.2010

Quote:
Originally Posted by dimonml
View Post
да описанное выше поведение имеет место быть, но, вроде, по таймауту машинка все равно будет зареспавлена как пустая, самим сампом
Так то оно так, да вот только если таймер выставлен высокий, например 2 раза в сутки спавн.. Машинка не заспавнится пока он не сработает.
А так как игроки просили отменить спавн машин таймером через какое то время, то вот я теперь ищу как иначе исправить этот косяк. Можно конечно вернуть все обратно.. Просто даже если выставить таймер пониже - все равно какое то время машина будет находится в баговом состоянии.


Re: Некорректный спавн некоторых машин после взрыва - toneysix - 02.09.2010

Деиствительно, наблюдал подобные вещи на различных серверах, однако, как заметили другие скриптеры, у многих такого косяка не наблюдается, нужно узнать истинную причину появления данного казуса.


Re: Некорректный спавн некоторых машин после взрыва - Feel_Life - 02.09.2010

Quote:
Originally Posted by toneysix
View Post
Деиствительно, наблюдал подобные вещи на различных серверах, однако, как заметили другие скриптеры, у многих такого косяка не наблюдается, нужно узнать истинную причину появления данного казуса.
Предлагаешь очередную тему в баги добавить? "ответа не ждите"


Re: Некорректный спавн некоторых машин после взрыва - Stepashka - 02.09.2010

А ничего нет в OnVehicleDeath(vehicleid, killerid) ?


Re: Некорректный спавн некоторых машин после взрыва - Feel_Life - 02.09.2010

public OnVehicleDeath(vehicleid, killerid)

у меня в мод не вписан, только

public OnVehicleDeath(vehicleid).. то что в первом посте.


Re: Некорректный спавн некоторых машин после взрыва - Stepashka - 02.09.2010

А что в SaveTrunk(); ?


Re: Некорректный спавн некоторых машин после взрыва - Feel_Life - 02.09.2010

Ничего особенного.

Code:
public SaveTrunk()
{
	new idx;
	new File: file2;
	idx = 1;
	while (idx < sizeof(CarInfo))
	{
		new coordsstring[256];
		format(coordsstring, sizeof(coordsstring), "%i,%i,%i,%i,%i,%i,%i,%i,%i,%f\n",
		vehTrunk[idx][1],
		vehTrunkAmmo[idx][1],
		vehTrunk[idx][2],
		vehTrunkAmmo[idx][2],
		vehTrunk[idx][3],
		vehTrunkAmmo[idx][3],
		vehTrunk[idx][4],
		vehTrunkAmmo[idx][4],
		vehTrunkCounter[idx],
		vehTrunkArmour[idx]);
		if(idx == 1)
		{
			file2 = fopen("trunk.cfg", io_write);
		}
		else
		{
			file2 = fopen("trunk.cfg", io_append);
		}
		fwrite(file2, coordsstring);
		idx++;
		fclose(file2);
	}
	return 1;
}
Кстати деш машины выглядит чуть иначе.. я старый дал.. Тут я вписал обнуление тюнинга для некоторых авто..
Обнуление загрузки машины и багажника. Но это не должно влиять на спавн же.. Ведь тогда бы это распространялось на все машины а не случайные.. За сутки бывает до 15 машин с разными айди.. Иной раз вообще не бывает


Code:
public OnVehicleDeath(vehicleid)
{
	PlayerHaul[vehicleid][pLoad] = 0;
	vehTrunk[vehicleid][vehTrunkCounter[vehicleid]] = '\0';
	vehTrunkAmmo[vehicleid][vehTrunkCounter[vehicleid]] = '\0';
	vehTrunkCounter[vehicleid]--;
	SaveTrunk();
	if(vehicleid > 235 && vehicleid < 696||vehicleid >= 921 && vehicleid <= 940)
	{
 	CarsInfo[vehicleid][cSpoiler] = 0;
	CarsInfo[vehicleid][cHood] = 0;
	CarsInfo[vehicleid][cSideskirt] = 0;
	CarsInfo[vehicleid][cNitro] = 0;
	CarsInfo[vehicleid][cLamps] = 0;
	CarsInfo[vehicleid][cExhaust] = 0;
	CarsInfo[vehicleid][cWheels] = 0;
	CarsInfo[vehicleid][cRoof] = 0;
	CarsInfo[vehicleid][cStereo] = 0;
	CarsInfo[vehicleid][cHydraulics] = 0;
	CarsInfo[vehicleid][cBullbar] = 0;
	CarsInfo[vehicleid][cRearBullbars] = 0;
	CarsInfo[vehicleid][cFrontSign] = 0;
	CarsInfo[vehicleid][cFrontBullbars] = 0;
	CarsInfo[vehicleid][cFrontBumper] = 0;
	CarsInfo[vehicleid][cRearBumper] = 0;
	CarsInfo[vehicleid][cVents] = 0;
	CarsInfo[vehicleid][cPaintJob] = -1;
	OnPropUpdate();
	}
	SetVehicleToRespawn(vehicleid);
}



Re: Некорректный спавн некоторых машин после взрыва - Diman777 - 18.12.2016

Вот прошло 6 лет, и проблема походу осталась актуальна, но у меня сервер же CR и версия 0.3e (2012 года выпуска).
Иногда стал замечать, что тачки горят. Спавнятся - и тут же горят.
Раньше такого не замечал, после последнего вчерашнего обновления (работа таксиста) началась эта фигня.

В OnVehicleDead ничего особенного, вот собственно код, больше в паблике ничего нет:
PHP Code:
DeadTaxi(vehicleid)
{
    if (
GetVehicleModel(vehicleid) == 438)
    {
        for (new 
taxiidtaxiid MAX_PLAYERStaxiid++)
        {
            if (
taxi_save_dvehid[taxiid] == vehicleid)
            {
                if (
IsPlayerTaxi(taxiid))
                {
                    
FinishedWorkTaxi(taxiid3);
                    
ResetDataTaxi(taxiid);
                    break;
                }
            }
        }
    }

В FinishedWorkTaxi там чисто сообщения для чата, а в ResetDataTaxi сбрасывания данных:
PHP Code:
ResetDataTaxi(taxiid)
{
    
taxi_check_count{taxiid} = 0;
    
KillTimer(taxi_check_in_veh_timerid[taxiid]);
    
Update3DTextLabelText(taxi_text3d_id[taxiid], 0xffff00ff" ");
    for (new 
clientidclientid MAX_PLAYERSclientid++)
    {
        if (
IsValidDynamicMapIcon(taxi_icon_id[taxiid][clientid]))
        {
            
DestroyDynamicMapIcon(taxi_icon_id[taxiid][clientid]);
            
taxi_icon_id[taxiid][clientid] = -1;
        }
        
// if (IsValidDynamicCP(taxi_cp_id[taxiid][clientid]))
        // {
            // DestroyDynamicCP(taxi_cp_id[taxiid][clientid]);
            // taxi_cp_id[taxiid][clientid] = -1;
        // }
    
}
    
KillTimer(taxi_counter_time_timerid[taxiid]);
    
taxi_counter_time_timerid[taxiid] = -1;
    
taxi_time_work[taxiid] = 0;
    
taxi_money_client[taxiid] = 0;
    
taxi_save_dvehid[taxiid] = INVALID_VEHICLE_ID;

Лимит тачек не превышен (~ 120 моделей, ~ 500 транспорта), может читак засел, вообщем посмотрим как дальше дела пойдут.


Re: Некорректный спавн некоторых машин после взрыва - Mcc - 18.12.2016

Твои закорючки здесь не при чем. Удаляй транспорт и создавай заново.


Re: Некорректный спавн некоторых машин после взрыва - Bombo - 18.12.2016

Не пробовал, но, возможно, такой вариант сработает. Как известно, авто с уровнем HP ниже 300 начинает гореть. Получается, что у всех "остовов" HP должен быть ниже 300. Т.о. по таймеру (скажем, раз в минуту) можно отправлять на респавн все авто с таким уровнем.


Re: Некорректный спавн некоторых машин после взрыва - Diman777 - 18.12.2016

Оба предложенных варианта стоит явно попробывать


Re: Некорректный спавн некоторых машин после взрыва - White_116 - 18.12.2016

Удалить и создать. Понять и простить...