Записване на админ флагове в константа

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

Записване на админ флагове в константа

Мнение от deadlylord » 14 Май 2018, 11:20

Добър ден,

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

if(!(get_user_flags(id) & ADMIN_RESERVATION)) { // или някоя друга проверка
	new flags = read_flags("efijur")
	set_user_flags(id, flags)
}
Кода от по-горе ми позволява да сложа флагове на играч.
Тъй като искам при определени обстоятелства играча да губи флагове с remove_user_flags(id, flags).
Ако играча е админ с липващи флагове, той би изгубил целите си правата, вместо само липсващите му флагове.
Възможно ли е да се направи константа, в която да се съхраняват флаговете и какво реално трябва да се напише, за да се запазят в нея.

PS Знам, че е възможно да имам 10 проверки за притежание на флагове, но не мисля, че това е правилния начин!

Аватар
hackera457
Извън линия
Модератор
Модератор
Мнения: 768
Регистриран на: 01 Ное 2016, 09:46
Местоположение: София
Се отблагодари: 1 път
Получена благодарност: 124 пъти
Обратна връзка:

Записване на админ флагове в константа

Мнение от hackera457 » 14 Май 2018, 11:25

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

#define FLAGS  ADMIN_LEVEL_C | ADMIN_LEVEL_B
Моите плъгини

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

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


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

Записване на админ флагове в константа

Мнение от deadlylord » 14 Май 2018, 11:50

С define няма как да стане.
Начина на проверките е следния:
АКО няма KICK, дай му KICK и след това Махни KICK
Но защо да се прави, като може да има една променлива, на която да бъдат записани началните флаговете на човека и когато излезе от условието за безпланите права да му се сложат началните. По този начин кода ще е буквално 5 реда и ще е четим, а със 20-те проверки ходи го гледай
Последно промяна от deadlylord на 14 Май 2018, 12:20, променено общо 1 път.

Аватар
hackera457
Извън линия
Модератор
Модератор
Мнения: 768
Регистриран на: 01 Ное 2016, 09:46
Местоположение: София
Се отблагодари: 1 път
Получена благодарност: 124 пъти
Обратна връзка:

Записване на админ флагове в константа

Мнение от hackera457 » 14 Май 2018, 12:19

Ползвай Trie
Моите плъгини

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

#include <hambeer>

RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);

public GivePlayerBeer(Pl){
    if(!is_user_alive(Pl)){
        ham_give_beer(Pl, 5)
        client_print(Pl, print_chat, "Go Go Go"){
}  


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

Записване на админ флагове в константа

Мнение от deadlylord » 14 Май 2018, 12:22

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

	if(szString[0] == 0 ) {
		flags[id] = get_user_flags(id)
		get_flags(flags[id], szString, 32)
		ColorChat(id, TEAM_COLOR, "flagovete sa %s chestito", szString)
	}
Ами като цяло, проблема беше, че използвах flags[id], вместо szString, може да заключвате :)
Добре, че беше смирнофф да ми покаже кода на функцията и да ми кажа, че използването на ID е грешно при проверката

Всичко хубаво, но този код записва само на 1 човек флаговете, вместо на всичките нови играчи!

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

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

Кой е на линия

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