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

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
[N]eXuS
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 16 Мар 2018, 04:52

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

Мнение от [N]eXuS » 26 Мар 2018, 21:14

За това трябва трябва да има инклуда cstrike

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

cs_set_user_bpammo(id, CSW_DEAGLE, 20) // Ще даде + 20 крушума на дигъла
cs_set_user_bpammo(id, CSW_HEGRENADE, 5) // Ще даде + 5 гранати 
Така и за другите оражия

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

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

Мнение от OciXCrom » 26 Мар 2018, 21:33

[N]eXuS написа: 26 Мар 2018, 18:58 За да ти даде тази грешка демек cstrike не е активна предполагам компилираш с amxx studio за това cstrike не ти се активира auto влес в cstrike/addons/amxmodx/configs/modules.ini и трябва да ти е така

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

fun
engine
fakemeta
geoip
sockets
regex
nvault
cstrike
csx
hamsandwich
Не говори глупости. Тези неща нямат АБСОЛЮТНО НИЩО ОБЩО с компилирането на плъгини.

Казах ти в другата тема, че или трябва да е new iTeam = get_user_team или new CsTeams:iTeam = cs_get_user_team, а ти си комбинирал двете.

Скоростта се променя при смяна на оръжие, тъй че трябва да я обновяваш всеки път когато играчът си смени оръжието, тоест CurWeapon евента, както си го направил.

Можеш да видиш всички оръжия тук - https://wiki.alliedmods.net/Cs_weapons_information
Проверката за админ ти е правилна - get_user_flags, както си я задал. Относно кода за curweapon както си го направил, скоростта ще бъде еднаква на всяко оръжие което смениш - нож, пистолет, калашник и т.н. А за даване на ak47 трябва да стане така -

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

give_item("ak47")
cs_set_bpammo(id, CSW_AK47, 90)
Wtf? o_O

Аватар
[N]eXuS
Извън линия
Потребител
Потребител
Мнения: 163
Регистриран на: 16 Мар 2018, 04:52

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

Мнение от [N]eXuS » 26 Мар 2018, 22:18

Fr0sTt написа: 26 Мар 2018, 18:07 Проверката за админ ти е правилна - get_user_flags, както си я задал. Относно кода за curweapon както си го направил, скоростта ще бъде еднаква на всяко оръжие което смениш - нож, пистолет, калашник и т.н. А за даване на ak47 трябва да стане така -

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

give_item("ak47")
cs_set_bpammo(id, CSW_AK47, 90)
Относно това кога да получaват екстрите, можеш да ги добавиш при спаун, и ако искаш да ги дава, ако играчът е жив правиш проверка с is_user_alive(id)


Трябва да е

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

give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90) // 90 демек ще дъде 90 крушуму + сегашните 

Аватар
Fr0sTt
Извън линия
Потребител
Потребител
Мнения: 138
Регистриран на: 16 Фев 2018, 19:11

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

Мнение от Fr0sTt » 26 Мар 2018, 22:20

Да, видях, че съм забравил weapon_ 😁 и втората функция не е точна, защото ги писах набързо, но нищо случва се.

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

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

Мнение от gadinkata » 26 Мар 2018, 23:32

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

give_item(id, "weapon_ak47")
cs_set_user_bpammo(id, CSW_AK47, 90) // 90 демек ще дъде 90 крушуму + сегашните 
Къде бил ключа от бараката,а аз слагах всякакви неща и нищо,освен това,че при всеки нов мап посред зависи от оръжието ми се добавя по 1 пълнител,за авп 10 за амка калашник по 30.По късно ще си задам следващия въпрос

Добавено преди 36 минути 10 секунди:
Последния ми въпрос към този плъгин е,как да задам админа с определен флаг,след като умре да се прероди веднага,незнам дали ще може да е на всякаде,без много писане,или ще си бъде в базата има две функция spawn(id) и native cs_user_spawn(player);
Ето го и готовия до сега код:

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

/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

#define ADMIN_FLAG ADMIN_KICK
#define MAXSPEED 1000.0
#define HP 255
#define BRONQ 500

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	RegisterHam(Ham_Spawn, "player", "Player_Spawn", true)
	register_event("CurWeapon", "OnChangeWeapon", "be", "1=1")
}

public Player_Spawn(id)
{
	if(get_user_flags(id) & ADMIN_FLAG && is_user_alive(id))
	{
		
		give_item(id, "weapon_m4a1")
		cs_set_user_bpammo(id, CSW_M4A1, 90)
		
		give_item(id, "weapon_ak47")
		cs_set_user_bpammo(id, CSW_AK47, 90)
		
		give_item(id, "weapon_awp")
		cs_set_user_bpammo(id, CSW_AWP, 90)
		
		give_item(id, "weapon_deagle")
		cs_set_user_bpammo(id, CSW_DEAGLE, 35)
		
		give_item(id, "weapon_hegrenade")
		cs_set_user_bpammo(id, CSW_HEGRENADE, 5)
		
		give_item(id, "weapon_flashbang")
		cs_set_user_bpammo(id, CSW_FLASHBANG, 5)
		
		give_item(id, "weapon_c4")
		
		cs_get_user_plant(id)
		cs_set_user_plant(id, 1, 1)
		cs_get_user_defuse(id)
		cs_set_user_defuse(id, 1, 0, 160, 0)
		cs_set_user_money(id,16000,0)

		set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 0)
		set_user_footsteps(id, 1)
		set_user_armor(id, BRONQ)
		set_user_health(id, HP)
		
	}
}

public OnChangeWeapon(id)
{
	if(get_user_flags(id) & ADMIN_FLAG && is_user_alive(id))
	{
		set_user_maxspeed(id, MAXSPEED)
	}
}

Да оточня пак,в тоя плугин да се добави прераждане на админа след като умре и да му се дадът пак същите неща :)
Това искам да разуча сега прераждането :)Благодаря

Аватар
deadlylord
Извън линия
Потребител
Потребител
Мнения: 572
Регистриран на: 04 Апр 2017, 16:35
Местоположение: Бургас, България
Получена благодарност: 2 пъти
Обратна връзка:

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

Мнение от deadlylord » 27 Мар 2018, 06:18

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

public plugin_init()
{
	RegisterHam(Ham_Killed, "player", "adminRespawn") // регистираме евента с име на фунцията "adminRespawn"
}

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

public adminRespawn(id) // създаваме функцията
{
	if(get_user_flags(id) & ADMIN_FLAG) // проверка за флаг
	{
		ExecuteHamB(Ham_CS_RoundRespawn, id) // възраждаме човека и автоматично ще му даде нещата от public Player_Spawn(id)
	}
}

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

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

Мнение от OciXCrom » 27 Мар 2018, 15:52

RegisterHam(Ham_Killed, "player", "adminRespawn", 1) - без това "1" евентът ще се извика преди играчът да е умрял.

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

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

Мнение от gadinkata » 28 Мар 2018, 00:01

Пичове много ви благодаря,всичко до сега дето направих работи добре,но преди да продължа с следващият въпрос,искам да преговорим до тук написаното,т.е това което неми е ясно от части:

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

RegisterHam(Ham_Spawn, "player", "Player_Spawn", true)
//1.RegisterHam
//2. Ham_Spawn неми е ясно/може ли да се напише друга дума примерно Ad_Prerajdane
//3.player неми е ясно/може ли да се напише друга дума примерно Ad_Prerajdane
//4.Player_Spawn това разбирам е фукнцията която ще изпълним определения код
//5.true дали е истина,ни каква истина,по какъв начин да определя какво точно трябва да напиша тук

RegisterHam(Ham_Killed, "player", "adminRespawn", 1)
//1.RegisterHam
//2. Ham_Killed неми е ясно/може ли да се напише друга дума примерно Ad_Prerajdane
//3.player неми е ясно/може ли да се напише друга дума примерно Ad_Prerajdane
//4.adminRespawn това разбирам е фукнцията която ще изпълним определения код
//5.1 ако е едно е активирано...в горния случай е true леко объркване...виждал съм и зададени flag"a,b,ce"

register_event("CurWeapon", "OnChangeWeapon", "be", "1=1")
//По същия начин като горните кой доми са променливи,флаговете четох според зависи дали искаш да се отнася за жив играч за хюман и т/н
set_task(1.0, "DisplayCurrentMessage", .flags = "b")
	set_task(float(MSG_SWITCH * 60), "SetNextMessage", .flags = "b")

с тези код какво изисквам да се извърши в сървъра да регистрира нещо си.

До сега изчучавах проверката за админ,предложете други срещани проверки дали играч е жив това е една дали има определен брой убийства до момента if else проверка

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

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

Мнение от OciXCrom » 28 Мар 2018, 00:36

//2. Ham_Spawn неми е ясно/може ли да се напише друга дума примерно Ad_Prerajdane
Не, това е дефинирана константа (функция/евент) и трябва да е точно така написано. Ако напишеш Ad_Prerajdane или еди какво си, плъгинът как ще знае за какво става дума? Затова е хубаво да ползваш някакъв highlighter, който авоматично ще оцветява константите (примерно този за Notepad++). Можеш да намериш всички функции/евенти на hamsandwich тук - http://amxx-bg.info/forum/api/ham_const/__raw
//3.player неми е ясно/може ли да се напише друга дума примерно Ad_Prerajdane
Не, това е classname за entity-то за което ще се извика функцията. В този случай ползваме "player", тъй като classname-ът на играчите е "player", съответно функцията ще се извика само при прераждане на играч, а не на някое друго entity.
//5.true дали е истина,ни каква истина,по какъв начин да определя какво точно трябва да напиша тук
Просто погледни синтаксиса на RegisterHam функцията - http://amxx-bg.info/forum/api/hamsandwich/RegisterHam
Четвъртият параметър означава дали функцията да се извика ПРЕДИ (0 или false) или СЛЕД (1 или true) действието. В случая ползваме 1 или true, тъй като искаме функцията да се извика СЛЕД като играчът се е преродил. Ако сложим 0, играчът все още ще е мъртъв когато се извика и няма да можем да му дадем никакви екстри.
//5.1 ако е едно е активирано...в горния случай е true леко объркване...виждал съм и зададени flag"a,b,ce"
Няма никакви флагове при RegisterHam. Флагове може да се добавят когато ползваме register_event. Има различни флагове за всеки един евент. Можеш да намериш списъка с евенти и аргументите им тук - https://wiki.alliedmods.net/Half-life_1_game_events

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

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

Мнение от gadinkata » 28 Мар 2018, 01:07

Мерси много,полезен урок,нали все пак трябва да се започне от някъде :)може да не е от основата,но пак е нещо

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

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

Кой е на линия

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