Информация за SZ_GetSpace: overflow on player

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
sianbg
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 13 Ное 2017, 12:18
Получена благодарност: 1 път
Обратна връзка:

Информация за SZ_GetSpace: overflow on player

Мнение от sianbg » 20 Яну 2018, 13:32

Здравейте. Значи не знам темата дали е за тук, но искам да питам и някой неща свързани с програмирането на pawn. Значи в момента правя 1 плъгин, който сменя моделите на оръжията. Ползвам код от този урок - https://amxx-bg.info/forum/viewtopic.php?f=26&t=876

Искам да попитам има ли по-нов начин за смяна на скиновете от оръжията с reapi ? Ако може пример.
Да се върна и на грешката. Грешката прочетох и се оказва, че има прекалено много информация за единица време. Интересното е, че го прави само с кракната версия на играта. Първо играта крашваше при зареждането, после сложих rate стойности на сървъра и взе, че се свърза. След като се свърза и си пуснах доста ботове със скинове и клиента крашна. Повтарям със steam нямам проблеми, но искам да разбера защо е така. Значи сложил съм 6-7 скина на оръжията, които не са някакви големи, нямам дроп на фпс. Абе моделите изглеждат наред. Искам да попитам как мога да реша този проблем. От къде идва тази много информация ? От precache на модел ?

Сега тествах отново и с кракната версия си работи сега. Искам да попитам това ли е правилния начин за слагане на модели ? Бях чел, че максимума модели е 255, това вярно ли е ? Има ли някакъв начин да контролирам, колко информация пращам към клиента ?

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Информация за SZ_GetSpace: overflow on player

Мнение от OciXCrom » 20 Яну 2018, 16:30

По-скоро си направил нещо грешно в кода и затова изхвърля играчите. Надали ще стане заради смяна на модела. Начинът си е правилен и досега не съм виждал такъв проблем. Предостави кода ако искаш. Лимитът е 512 ресурси (модели, звуци, спрайтове, и тн) - ако го надминеш, сървърът няма изобщо да се пусне.

Аватар
sianbg
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 13 Ное 2017, 12:18
Получена благодарност: 1 път
Обратна връзка:

Информация за SZ_GetSpace: overflow on player

Мнение от sianbg » 20 Яну 2018, 16:40

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

#include <amxmodx> 
#include <engine> 
#include <fakemeta> 

new m4_VIEW_MODEL[]        = "models/newdmmode/skins/v_m4a1.mdl" 
new m4_PLAYER_MODEL[]        = "models/newdmmode/skins/p_m4a1.mdl" 

new ak_VIEW_MODEL[]        = "models/newdmmode/skins/v_ak47.mdl" 
new ak_PLAYER_MODEL[]        = "models/newdmmode/skins/p_ak47.mdl" 

new awp_VIEW_MODEL[]        = "models/newdmmode/skins/v_awp.mdl" 
new awp_PLAYER_MODEL[]        = "models/newdmmode/skins/p_awp.mdl" 

new knife_VIEW_MODEL[]        = "models/newdmmode/skins/v_knife.mdl" 
new knife_PLAYER_MODEL[]        = "models/newdmmode/skins/p_knife.mdl" 


new deagle_VIEW_MODEL[]        = "models/newdmmode/skins/v_deagle.mdl" 
new deagle_PLAYER_MODEL[]        = "models/newdmmode/skins/p_deagle.mdl" 

new famas_VIEW_MODEL[]        = "models/newdmmode/skins/v_famas.mdl" 
new famas_PLAYER_MODEL[]        = "models/newdmmode/skins/p_famas.mdl" 

new aug_VIEW_MODEL[]        = "models/newdmmode/skins/v_aug.mdl" 
new aug_PLAYER_MODEL[]        = "models/newdmmode/skins/p_aug.mdl" 

new PLUGIN_NAME[]    = "Custom Weapon Model" 
new PLUGIN_AUTHOR[]         = "Cheap_Suit" 
new PLUGIN_VERSION[]        = "1.0" 

public plugin_init() 
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)     
    register_event("CurWeapon", "Event_CurWeapon", "be","1=1")

} 

public plugin_precache() 
{    
    precache_model(m4_VIEW_MODEL)     
    precache_model(m4_PLAYER_MODEL) 
	precache_model(ak_VIEW_MODEL)     
    precache_model(ak_PLAYER_MODEL) 
	precache_model(awp_VIEW_MODEL)     
    precache_model(awp_PLAYER_MODEL) 
	precache_model(knife_VIEW_MODEL)     
    precache_model(knife_PLAYER_MODEL) 
	precache_model(deagle_VIEW_MODEL)     
    precache_model(deagle_PLAYER_MODEL) 
	precache_model(famas_PLAYER_MODEL)     
    precache_model(famas_VIEW_MODEL) 
	precache_model(aug_VIEW_MODEL)     
    precache_model(aug_PLAYER_MODEL) 
    
} 

public Event_CurWeapon(id) 
{     
    // Може да не работи с други модове като (war3ft и др.)
    new weaponID = read_data(2) 
    
    // Проверка ако оръжието не е AK позволяваме на плъгина да продължи
    if(weaponID == CSW_AK47)
    {
		
		// С този ред слагаме VIEW модела (Този който виждаме в ръката си)
		entity_set_string(id, EV_SZ_viewmodel, ak_VIEW_MODEL)  
		
		// С този ред слагаме PLAYER модела(Този който виждаме в ръцете на другите играчи)
		entity_set_string(id, EV_SZ_weaponmodel, ak_PLAYER_MODEL)         
    } else if (weaponID == CSW_M4A1) {
		// С този ред слагаме VIEW модела (Този който виждаме в ръката си)
		entity_set_string(id, EV_SZ_viewmodel, m4_VIEW_MODEL)  
		
		// С този ред слагаме PLAYER модела(Този който виждаме в ръцете на другите играчи)
		entity_set_string(id, EV_SZ_weaponmodel, m4_PLAYER_MODEL) 
	} else if (weaponID == CSW_AWP) {
		// С този ред слагаме VIEW модела (Този който виждаме в ръката си)
		entity_set_string(id, EV_SZ_viewmodel, awp_VIEW_MODEL)  
		
		// С този ред слагаме PLAYER модела(Този който виждаме в ръцете на другите играчи)
		entity_set_string(id, EV_SZ_weaponmodel, awp_PLAYER_MODEL) 
	} else if (weaponID == CSW_KNIFE) {
		entity_set_string(id, EV_SZ_viewmodel, knife_VIEW_MODEL)  
		
		// С този ред слагаме PLAYER модела(Този който виждаме в ръцете на другите играчи)
		entity_set_string(id, EV_SZ_weaponmodel, knife_PLAYER_MODEL) 
	} else if (weaponID == CSW_AUG) {
		entity_set_string(id, EV_SZ_viewmodel, aug_VIEW_MODEL)  
		
		// С този ред слагаме PLAYER модела(Този който виждаме в ръцете на другите играчи)
		entity_set_string(id, EV_SZ_weaponmodel, aug_PLAYER_MODEL) 
	} else if (weaponID == CSW_DEAGLE) {
		entity_set_string(id, EV_SZ_viewmodel, deagle_VIEW_MODEL)  
		
		// С този ред слагаме PLAYER модела(Този който виждаме в ръцете на другите играчи)
		entity_set_string(id, EV_SZ_weaponmodel, deagle_PLAYER_MODEL) 
	} else if (weaponID == CSW_FAMAS) {
		entity_set_string(id, EV_SZ_viewmodel, famas_VIEW_MODEL)  
		
		// С този ред слагаме PLAYER модела(Този който виждаме в ръцете на другите играчи)
		entity_set_string(id, EV_SZ_weaponmodel, famas_PLAYER_MODEL) 
	}	
    return PLUGIN_CONTINUE 
}

Знам, че има много по-добри начини да се напише, но ми е важно само да работи. Не знам дали if else или switch каква разлика имат в бързината. При други езици няма голяма разлика и затова набързо го нахвърлих :D Сега не ми прави проблеми. Беше еднократно. Може би защото лаптопа ми е натоварен или steam-a и кракната игра се бъгясват понякога.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Информация за SZ_GetSpace: overflow on player

Мнение от OciXCrom » 20 Яну 2018, 16:47

Не виждам никакъв проблем в кода, не би трябвало да създава проблеми. Иначе по-бързо е ако ползваш switch:

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

switch(read_data(2))
{
	case CSW_M4A1:
	{
		// modelite...
	}
	case CSW_AK47:
	{
		// modelite...
	}
}
Аз лично бих ползвал fakemeta метода, вместо engine, който ползваш ти, обаче не би трябвало да има разлика:

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

entity_set_string(id, EV_SZ_weaponmodel, "p_model")
entity_set_string(id, EV_SZ_viewmodel, "v_model")
=>

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

set_pev(id, pev_weaponmodel2, "p_model")
set_pev(id, pev_viewmodel2, "v_model")

Аватар
sianbg
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 13 Ное 2017, 12:18
Получена благодарност: 1 път
Обратна връзка:

Информация за SZ_GetSpace: overflow on player

Мнение от sianbg » 20 Яну 2018, 17:33

Направих го така. Някакви съвети да ми дадеш какви модели да избира така, че да няма дроп на фпс ?

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Информация за SZ_GetSpace: overflow on player

Мнение от OciXCrom » 20 Яну 2018, 19:34

Не знам как точно можеш да провериш това, обаче аз лично тествам ФПС–то като задам същия модел на 32 бота - ако се намали - не ползвам модела. По принцип това се отнася за модели конвертирани от CS:GO или други игри, особено за модели за играчите. За модели за оръжията лично никога не съм имал проблеми с ФПС.

Аватар
sianbg
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 13 Ное 2017, 12:18
Получена благодарност: 1 път
Обратна връзка:

Информация за SZ_GetSpace: overflow on player

Мнение от sianbg » 21 Яну 2018, 00:35

Благодаря. Ще трябва да се занимавам да тествам явно. Ще потърся някакъв tool да симулирам :D

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

Обратно към “Помощ в скриптирането”

Кой е на линия

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