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

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Публикувай отговор
Аватар
mi0
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 517
Регистриран на: 09 Дек 2016, 22:02
Се отблагодари: 97 пъти
Получена благодарност: 108 пъти
Обратна връзка:

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

Мнение от mi0 » 17 Юни 2020, 06:03

Бъркаш.
Това не са параметри -
g_iWeapon[Weapons[TwoParameturs]
Това е масив, като в скобите [] е стойност, сочеща към адрес, който съдържа това, което ти трябва.
Не мога да разбера, какво имаш предвид под "константа с две скоби".
cs_set_user_bpammo изисква 3 аргумента, а не масив, съответно - не, не може да ги добавиш заедно.

Енумерациите не са нищо сериозно, те просто помагат за "подредбата" на кода. След компилирането, масива изглежда съвсем обикновен.

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

new g_iWeapons[2][34] = // 2 - 2 елемента в първото измерение, 34 - 32 wName + 1 wGuns + 1 wBullet
        {
                119, 101, 97, 112, 111, 110, 95, 109, 52, 97, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 90
                // 119 - w 101 - e 97 - a 112 - p 111 - o 110 - n 95 - _ 109 - m 52 - 4 97 - a 49 - 1
                // "weapon_m4a1"
                // останалите нули запълват празното пространство до последните 2 елемента, за да можем да инициализираме и тях
                // http://www.asciitable.com/
        },
        {
                119, 101, 97, 112, 111, 110, 95, 97, 107, 52, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 90
        }
}
Ето и как се използва по-надолу в кода

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

                        give_item(id, g_iWeapons[i][0])
                        cs_set_user_bpammo(id, g_iWeapons[i][32], g_iWeapons[i][33])
Това е декомпилиран код. Използвах този tool.
They call me kurdokoleno
Catch Mod - 93.123.18.38:27018

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

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

Мнение от gadinkata » 17 Юни 2020, 09:00

Да това ми е доста ясно, просто си мислех, че когато има const test [] [] [] { { {1,2,3,3}}} че можеш да присвойиш всичките стойности е най вътрешните стойности в 1,а не да присвояваш, пак всяко 1,2,3,4 по отделно, за това исках някъв прост пример за констатна с три скоби която да ползва enum за да видя как присвоява взима и наистина е лесно за подреждане, благодаря ти

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 222
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 4 пъти
Получена благодарност: 9 пъти

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

Мнение от atmax » 17 Юни 2020, 17:53

Тъй като ми хареса идеята за безкрайни патрони на определени оръжия реших да го направя, може би някой ще го използва :Д

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

#include <amxmodx>
#include <cstrike>
#include <fun>

enum _:Weapons
{
	wName[32],
	wGuns,
	wBullet
}

new const g_iWeapons[][Weapons] =
{
	{"weapon_m4a1",  CSW_M4A1, 90},
	{"weapon_ak47",  CSW_AK47, 90}
}

public plugin_init()
{
	register_plugin("[SW]Infinite ammo", "1.0", "aTmAx")
	register_event("CurWeapon", "event_CurWeapon", "be", "1=1")
}

public event_CurWeapon(id)
{
	if(is_user_alive(id))
	{
		new clip, ammo;
		new w = get_user_weapon(id, clip, ammo)
		if(w == CSW_C4 || w == CSW_KNIFE)
		{
			return PLUGIN_CONTINUE;
		}
		else if(w == CSW_HEGRENADE || w == CSW_FLASHBANG || w == CSW_SMOKEGRENADE)
		{
			return PLUGIN_CONTINUE;
		}
		else if(clip == 0)
		{
			new weapon[32]
			get_weaponname(w, weapon, 31)
			for(new i; i < sizeof(g_iWeapons); i++)
			{
				if(weapon[i] == g_iWeapons[i][wName])
				{
					cs_set_user_bpammo(id, g_iWeapons[i][wGuns], g_iWeapons[i][wBullet])
				}
				if(weapon[i] == g_iWeapons[i++][wName])
				{
					cs_set_user_bpammo(id, g_iWeapons[i][wGuns], g_iWeapons[i][wBullet])
				}
			}
		}
	}
	return PLUGIN_CONTINUE;
}

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

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

Мнение от JackEyedJones » 17 Юни 2020, 19:13

Така настройваш винаги патроните за зареждане да са 90 или по default на самото оръжие. Инак Connor е написал безкрайните патрони за стрелба. wasted 15 mins of your life. :coffee:

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 222
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 4 пъти
Получена благодарност: 9 пъти

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

Мнение от atmax » 17 Юни 2020, 19:45

Знам кой го е написал, аз го дадох за пример + че той го е написал за всички както казах реших да изпълня идеята на gadinkata

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

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

Мнение от gadinkata » 29 Юни 2020, 23:18

Някой,ако може да даде малко инфо за read_data,примери за какво се ползват как се ползват,защо в някой плъгина има read_data(1) (3) (5) ,а 2 и 4 ги няма и също така за това message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id) sreenFade за какво и къде се ползва как действа и т.н

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

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

Мнение от OciXCrom » 30 Юни 2020, 01:01

Когато ползваш register_event. Тук има списък с всички евенти и данните които можеш да получиш с read_data - https://wiki.alliedmods.net/Half-Life_1_Game_Events

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

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

Кой е на линия

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