find_ent_by_class за намиране на оръжие на земята

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
thurinven
Извън линия
Потребител
Потребител
Мнения: 31
Регистриран на: 16 Окт 2019, 10:46
Се отблагодари: 4 пъти
Получена благодарност: 5 пъти

find_ent_by_class за намиране на оръжие на земята

Мнение от thurinven » 16 Окт 2019, 11:30

Здравейте,

Искам да премахна едно AWP от земята на картата de_rats_1337.
Тъй като съм много нов в скриптирането, наскоро четох доста и открих, че тези оръжия, които са на земята (като на fy_ картите) всъщност са "тип" entity.
Открих два начина за взимане на такива - (cs_)find_ent_by_class функцията и fakemeta forward към FM_Spawn.

В една друга тема бях видял използване на find_ent_by_class в plugin_init - това за de_rats_1337 връща 0, въпреки, че аз виждам awp-то на земята. Разбирането ми е, че трябва да върне индекса на позицията на ентитито в списъка със заредени ентитита или 0. Извиквам го така weaponIndex = find_ent_by_class(-1, "weapon_awp")

Опитах също в FM_Spawn forward-а да изпринтя всички ентитита, които се появяват - закачих се за това в plugin_precache.
Отново не открих нищо свързано с awp.

Започвам да се замислям това awp на земята дали всъщност е ентити или нещо друго.
Ако имате препоръки, ще се радвам да ги чуя. :)

Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 534
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 120 пъти
Обратна връзка:

find_ent_by_class за намиране на оръжие на земята

Мнение от mi0 » 16 Окт 2019, 12:22

Разбира се, че е ентити. Както и стените, кашоните, общо взето почти всичко. Препоръката ми е, в plugin_cfg да махнеш "weaponbox" и "armoury_entity", като така махаш всички Weapon/Armor Entity-та от мапа. Можеш и да Hook-неш Spawn-а на AWP-то и да го махаш или блокираш.
Последно промяна от mi0 на 16 Окт 2019, 19:58, променено общо 1 път.
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Аватар
JackEyedJones
Извън линия
Потребител
Потребител
Мнения: 399
Регистриран на: 10 Сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 4 пъти
Получена благодарност: 69 пъти
Обратна връзка:

find_ent_by_class за намиране на оръжие на земята

Мнение от JackEyedJones » 16 Окт 2019, 19:51

mi0 написа: 16 Окт 2019, 12:22 Разбира се, че е ентити. Както и стените, кашоните, общо взето почти всичко. Препоръката ми е, в plugin_cfg да махнеш "weaponbox" и "armoury_entity", като така махаш всички Weapon/Armor Entity-та от мапа. Можеш и да Hook-неш Spawn-а на AWP-то и да го махаш или блокира.
Демек не е разбрал нищо.

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

#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>

new const g_szEntities[][] = { "player_weaponstrip", "game_player_equip", "armoury_entity", "weaponbox" }

public plugin_cfg()
{
	for(new i, iEnt = -1; i < sizeof(g_szEntities); i++)
	{
		iEnt = -1
		
		while((iEnt = find_ent_by_class(iEnt, g_szEntities[i])))
		{
			if(is_valid_ent(iEnt))
				remove_entity(iEnt)
		}
	}
}
Дано се автора се поупъти от извадката тук. :dtm:

plugin_precache - Принуждава играта на играча да сваля ресурсите които са за самия плъгин. То няма и нищо общо с оръжията.
FM_Spawn e клиентска функция подобна на Hamsandwich Ham_Spawn която я извиква всеки играч при прераждането. Така ще създадеш адски товар ако е 32/32. Тоест на всеки играч от тези 32-ма, по една проверка на мапа. Прай' сметка.

Аватар
thurinven
Извън линия
Потребител
Потребител
Мнения: 31
Регистриран на: 16 Окт 2019, 10:46
Се отблагодари: 4 пъти
Получена благодарност: 5 пъти

find_ent_by_class за намиране на оръжие на земята

Мнение от thurinven » 16 Окт 2019, 20:07

Отговорът е, че в този случай awp-то е наистина от клас armoury_entity

Разбрах какво иска да каже mi0, не е толкова неясно :)

Кодът за FM_Spawn в plugin_precache го намерих някъде из alliedmodders и реших да го пробвам. Сложих го първо в plugin_init, но регистрирайки го там, не се извика нито веднъж - затова последвах автора на оригиналната статия.

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

Благодаря и на двама ви.

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

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

Кой е на линия

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