Начинаещи въпроси свързани с направата на плъгини

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Начинаещи въпроси свързани с направата на плъгини

Мнение от gadinkata » 29 Мар 2018, 00:41

Следващата ми тема за размисъл ми е spec бот,знам има такива плугини,но като незнам какво се пише в тях,бих желал да се опитам да си напиша сам :)Ако мислите,чее е нещо не е кой знае колко сложно,кажете с какво се започва,какви библиотеки, преди plugin_init какви променливи масиви се пишат и т.н по етапно,да ми бъде предоставяна информацията.И още нещо въпросните ботове да не се добавят при влизане и излизане на играч или чрез cvars,един вид,пишеш въпросния код да има примерно 3 бота постоянно,няма нищо,че ще заемат част от слотовете 3 броя,с пускането на сървъра въпросните 3 бота да са там в спектаторите...:)

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

Начинаещи въпроси свързани с направата на плъгини

Мнение от OciXCrom » 30 Мар 2018, 20:07

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

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Начинаещи въпроси свързани с направата на плъгини

Мнение от gadinkata » 31 Мар 2018, 02:08

Тогава да да получаваш кръв примерно всяка секунда:примерно лимита на кръвта е 100 като някой ти вземе 20,да почне да ти се пълни на всяка секунда с по 1 и т.н

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

Начинаещи въпроси свързани с направата на плъгини

Мнение от OciXCrom » 31 Мар 2018, 15:09

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

#include <amxmodx>
#include <fun>

// Задаваме някакво уникално id за таска.
#define TASK_HEALTH 334455

// Задаваме максималното количество на кръв.
#define MAX_HEALTH 100

// Задаваме колко кръв ще получава през секунда.
#define HEALTH_PER_SECOND 1

// Задаваме през колко секунди ще получава кръвта.
#define HEALTH_FREQ 1.0

public plugin_init()
	register_plugin("Health Regen", "1.0", "OciXCrom")

public client_putinserver(id)
{
	// При влизане в съръвра, на играча му задаваме повтарящ се таск, ползвайки уникалното id за таска
	// което зададохме в TASK_HEALTH, плюс id-то на играча, за таскът да има различно id за всеки играч.
	set_task(HEALTH_FREQ, "regenerate_health", id + TASK_HEALTH, .flags = "b")
}

public client_disconnect(id)
{
	// Премахваме таска когато играчът излезне.
	remove_task(id + TASK_HEALTH)
}

public regenerate_health(id)
{
	// Получаваме id-то на играча като извадим id-то на таска от него.
	// Този код е равен на id = id - TASK_HEALTH
	id -= TASK_HEALTH
	
	// Ако играчът е мъртъв, не изпълняваме кода.
	if(!is_user_alive(id))
		return
		
	// Взимаме кръвта на играча.
	new iHealth = get_user_health(id)
	
	// Ако кръвта на играча е по-голяма или равна на 100, не изпълняваме кода.
	if(iHealth >= MAX_HEALTH)
		return
		
	// Задаваме +1 към кръвта с iHealth + HEALTH_PER_SECOND.
	// С функцията clamp ограничаваме новата стойност за кръвта да не надмине MAX_HEALTH, тоест 100.
	set_user_health(id, clamp(iHealth + HEALTH_PER_SECOND, .max = MAX_HEALTH))
}

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Начинаещи въпроси свързани с направата на плъгини

Мнение от gadinkata » 31 Мар 2018, 21:31

това е за всички играчи,а за админ с определен флаг,как трябва да стане

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

Начинаещи въпроси свързани с направата на плъгини

Мнение от mi0 » 31 Мар 2018, 23:09

Преди

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

if(!is_user_alive(id))
		return
Добавяме

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

	
	//Проверяваме дали играча има Ban Flag-a(ADMIN_BAN), ако го няма изпълнява return, което връща
	if(~get_user_flags(id) & ADMIN_BAN)
		return
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

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

Начинаещи въпроси свързани с направата на плъгини

Мнение от OciXCrom » 01 Апр 2018, 00:27

Сложил си някакъв странен символ вместо ~.

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

Начинаещи въпроси свързани с направата на плъгини

Мнение от mi0 » 01 Апр 2018, 00:33

Този странен символ ми излиза, като цъкна копчето.
Извинявам се.
aka kurdokoleno
Catch Mod - 87.121.112.232:27021

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Начинаещи въпроси свързани с направата на плъгини

Мнение от gadinkata » 01 Апр 2018, 04:57

Благодаря за отделеното време,тъй като ще заминавам за чужбина,бих желал темата да ми бъде временно заключена :)

Аватар
gadinkata
Извън линия
Потребител
Потребител
Мнения: 259
Регистриран на: 21 Мар 2018, 12:33
Местоположение: Враца
Се отблагодари: 25 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Начинаещи въпроси свързани с направата на плъгини

Мнение от gadinkata » 15 Ное 2019, 11:30

[AMXX] Run time error 10 (plugin "joco_model.amxx") (native "TrieSetCell") - debug not enabled! [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
Това ми излиза в лог файла за грешките,като добавя debug в plugin.ini неми излиза нищо в лог файла

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


#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

enum _:ModelsInfo
{
	Flag,
	CTModel[32],
	TModel[32]
}

new const g_eModels[][ModelsInfo] =
{
	{ ADMIN_LEVEL_A, "/// Блокиран текст/линк [НЕЖЕЛАН САЙТ] ///_owner_ct", "/// Блокиран текст/линк [НЕЖЕЛАН САЙТ] ///_owner_t" },
	{ ADMIN_LEVEL_B, "/// Блокиран текст/линк [НЕЖЕЛАН САЙТ] ///_adm_ct", "/// Блокиран текст/линк [НЕЖЕЛАН САЙТ] ///_adm_t" }
}

new Trie:g_tModels

public plugin_init()
{
	register_plugin("Multiple Player Models", "1.0", "OciXCrom")
	RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn", 1)
	g_tModels = TrieCreate()
}

public plugin_end()
	TrieDestroy(g_tModels)

public plugin_precache()
{
	for(new i; i < sizeof(g_eModels); i++)
	{
		precache_player_model(g_eModels[i][CTModel])
		precache_player_model(g_eModels[i][TModel])
	}
}

public OnPlayerSpawn(id)
{
	if(is_user_alive(id))
	{
		static bool:bMatch, iFlags, i
		bMatch = false
		
		for(iFlags = get_user_flags(id), i = 0; i < sizeof(g_eModels); i++)
		{
			if(iFlags & g_eModels[i][Flag])
			{
				switch(cs_get_user_team(id))
				{
					case CS_TEAM_CT: cs_set_user_model(id, g_eModels[i][CTModel])
					case CS_TEAM_T: cs_set_user_model(id, g_eModels[i][TModel])
				}
				
				bMatch = true
				break
			}
		}
		
		if(!bMatch)
		{
			static szModel[32]
			cs_get_user_model(id, szModel, charsmax(szModel))
			
			if(TrieKeyExists(g_tModels, szModel))
				cs_reset_user_model(id)
		}
	}
}

precache_player_model(szModel[])
{
	TrieSetCell(g_tModels, szModel, 1)
	
	static szFile[128]
	formatex(szFile, charsmax(szFile), "models/player/%s/%s.mdl", szModel, szModel)
	precache_model(szFile)
	replace(szFile, charsmax(szFile), ".mdl", "T.mdl")
	
	if(file_exists(szFile))
		precache_model(szFile)
}

Последно промяна от OciXCrom на 15 Ное 2019, 14:35, променено общо 1 път.
Причина: Слагай кодовете в [code] таг за да може да се селектира цялото поле.

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

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

Кой е на линия

Потребители разглеждащи този форум: Bing [Bot] и 10 госта