Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Въпроси и проблеми свързани с AMXModX.
Аватар
BoB1
Извън линия
Потребител
Потребител
Мнения: 17
Регистриран на: 05 Мар 2017, 11:43
Получена благодарност: 1 път

Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от BoB1 » 15 Апр 2017, 14:29

Заглавие/

Аватар
cgozzie
Извън линия
Потребител
Потребител
Мнения: 1319
Регистриран на: 13 Окт 2016, 22:10
Местоположение: Варна
Се отблагодари: 245 пъти
Получена благодарност: 43 пъти

Re: Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от cgozzie » 15 Апр 2017, 16:23

Аз се чудя и гадая какво искаш камо ли другите не предоставяш никаква нужна информация над което да се види и работи.
Изображение

Аватар
SmirnoffBG
Извън линия
Потребител
Потребител
Мнения: 267
Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:

Re: Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от SmirnoffBG » 15 Апр 2017, 17:15

Тъй като не си предоставил сма, мога само да ти кажа че нямаш проверка дали играча е жив преди да го зарази.
На някои ред(най вероятно веднага след започването ан фукцията която заразява) добави

Код за потвърждение: Избери целия код

 is_user_alive(id)
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015

Аватар
WaLkZ
Извън линия
Администратор
Администратор
Мнения: 799
Регистриран на: 05 Окт 2016, 21:13
Местоположение: Варна
Се отблагодари: 75 пъти
Получена благодарност: 227 пъти
Обратна връзка:

Re: Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от WaLkZ » 15 Апр 2017, 18:29

По-скоро, не дали е жив, а дали изобщо в сървъра. Проверката, която се добавя е:

Код за потвърждение: Избери целия код

// Infection bomb owner disconnected? (bugfix)
    if (!is_user_valid_connected(attacker))
    {
        // Get rid of the grenade
        engfunc(EngFunc_RemoveEntity, ent)
        return;
    } 

Код за потвърждение: Избери целия код

// Infection Bomb Explosion
infection_explode(ent)
{
    // Round ended (bugfix)
    if (g_endround) return;
    
    // Get origin
    static Float:originF[3]
    pev(ent, pev_origin, originF)
    
    // Make the explosion
    create_blast(originF)
    
    // Infection nade explode sound
    static sound[64]
    ArrayGetString(grenade_infect, random_num(0, ArraySize(grenade_infect) - 1), sound, charsmax(sound))
    emit_sound(ent, CHAN_WEAPON, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
    
    // Get attacker
    static attacker
    attacker = pev(ent, pev_owner)
    
    // Infection bomb owner disconnected? (bugfix)
    if (!is_user_valid_connected(attacker))
    {
        // Get rid of the grenade
        engfunc(EngFunc_RemoveEntity, ent)
        return;
    }
    
    ...
 

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от JustInCase » 15 Апр 2017, 18:32

Дайте нарпаво един фикснат Infection Bomb
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
WaLkZ
Извън линия
Администратор
Администратор
Мнения: 799
Регистриран на: 05 Окт 2016, 21:13
Местоположение: Варна
Се отблагодари: 75 пъти
Получена благодарност: 227 пъти
Обратна връзка:

Re: Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от WaLkZ » 15 Апр 2017, 18:33

Това, което съм дал, може да се намери в Fix5a

Аватар
SmirnoffBG
Извън линия
Потребител
Потребител
Мнения: 267
Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:

Re: Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от SmirnoffBG » 15 Апр 2017, 20:54

Само да добавя че в is_user_alive се проверява също дали е свързан в сървъра... а е ясно че за да бъде инфектиран трябва да е жив
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Re: Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от TheRedShoko » 15 Апр 2017, 21:37

Проблемът идва, когато infectora излезе, а не когато този, който ще се инфектира излезе.

Аватар
BoB1
Извън линия
Потребител
Потребител
Мнения: 17
Регистриран на: 05 Мар 2017, 11:43
Получена благодарност: 1 път

Re: Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от BoB1 » 16 Апр 2017, 16:17

благодаря WaLkZ

Аватар
BoB1
Извън линия
Потребител
Потребител
Мнения: 17
Регистриран на: 05 Мар 2017, 11:43
Получена благодарност: 1 път

Re: Fixed "[CS] Invalid Player" error when player disconnects after throwing an infection bomb

Мнение от BoB1 » 17 Апр 2017, 20:36

Къде точно се добавя кода?

Код за потвърждение: Избери целия код

// Infection bomb owner disconnected? (bugfix)
    if (!is_user_valid_connected(attacker))
    {
        // Get rid of the grenade
        engfunc(EngFunc_RemoveEntity, ent)
        return;
    } 
Тука

Код за потвърждение: Избери целия код

// Infection Bomb Explosion
infection_explode(ent)
{
	// Round ended (bugfix)
	if (g_endround) return;
	
	// Get origin
	static Float:originF[3]
	pev(ent, pev_origin, originF)
	
	// Make the explosion
	create_blast(originF)
	
	// Infection nade explode sound
	static sound[64]
	ArrayGetString(grenade_infect, random_num(0, ArraySize(grenade_infect) - 1), sound, charsmax(sound))
	emit_sound(ent, CHAN_WEAPON, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
	
	// Get attacker
	static attacker
	attacker = pev(ent, pev_owner)
	
	// Collisions
	static victim
	victim = -1
	
	while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, originF, NADE_EXPLOSION_RADIUS)) != 0)
	{
		// Only effect alive non-spawnprotected humans
		if (!is_user_valid_alive(victim) || g_zombie[victim] || g_nodamage[victim])
			continue;
		
		// Last human is killed
		if (fnGetHumans() == 1)
		{
			ExecuteHamB(Ham_Killed, victim, attacker, 0)
			continue;
		}
		
		// Infected victim's sound
		ArrayGetString(grenade_infect_player, random_num(0, ArraySize(grenade_infect_player) - 1), sound, charsmax(sound))
		emit_sound(victim, CHAN_VOICE, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
		
		// Turn into zombie
		zombieme(victim, attacker, 0, 1, 1, 0)
	}
	
	// Get rid of the grenade
	engfunc(EngFunc_RemoveEntity, ent)
}

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Поддръжка / Помощ”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта