Block Nicknames

Тук е мястото да представите плъгин(и), написани от вас!
Post Reply
User avatar
RideeR
Сървър Отговорник
Сървър Отговорник
Posts: 19
Joined: 17 Mar 2015, 19:04
Skype: ЛС!
CS Nick: ^FacePalm :3
Favorite version: CS: 1.6

Block Nicknames

Post by RideeR »

Block Nicknames

Версия 1.0



Описание:
  • Това е плъгин, който блокира даден nickname от влизане в сървъра.

Инсталация:
  • Слагате плъгина в сървъра си.
  • В"configs" папката на сървъра ви ще се появи нов ини файл под името "block_nicks".
  • Добавете нежелания nickname на нов ред в този файл и при следващото зареждане на плъгина той ще бъде блокиран.

Изтегляне:
User avatar
LAWLIET
CS-GOLD Owner
CS-GOLD Owner
Posts: 116
Joined: 06 Nov 2010, 19:09
Skype: LawlietBG
CS Nick: LAWLIET
Favorite version: CS: 1.6
Steam Community ID: kaloian5
Location: В cs-bg.info
Contact:

Re: Block Nicknames

Post by LAWLIET »

Кода е добър като изключиме, че си забравил да destroy-неш array-a в plugin_end. :)
User avatar
OciXCrom
OciXCrom™ Official Profile
OciXCrom™ Official Profile
Posts: 585
Joined: 21 Mar 2013, 14:21
Skype: doctor.crom1234
CS Nick: OciXCrom
Favorite version: CS: 1.6
Steam Community ID: OciXCrom
Location: jb.iplay.bg:27015
Contact:

Re: Block Nicknames

Post by OciXCrom »

Code: Select all

szName[25], szNames[30], szLine[64]
Това няма никаква логика. Защо за едно и също нещо ползваш три различни размери, и то произволни числа? Името на един играч не може да надхвърля 32 символа, съответно всички тези трябва да са [32].
User avatar
RideeR
Сървър Отговорник
Сървър Отговорник
Posts: 19
Joined: 17 Mar 2015, 19:04
Skype: ЛС!
CS Nick: ^FacePalm :3
Favorite version: CS: 1.6

Re: Block Nicknames

Post by RideeR »

LAWLIET wrote:Кода е добър като изключиме, че си забравил да destroy-неш array-a в plugin_end. :)
Не е задължително, по принцип е автоматично.
OciXCrom wrote:

Code: Select all

szName[25], szNames[30], szLine[64]
Това няма никаква логика. Защо за едно и също нещо ползваш три различни размери, и то произволни числа? Името на един играч не може да надхвърля 32 символа, съответно всички тези трябва да са [32].

Code: Select all

new szName[25], szNames[30]
Това е кодът ми.Ако си погледнал szName е за символите, а szNames е стринг за array-а.

Code: Select all

ArrayGetString(g_szNames, i, szNames, charsmax(szNames))
Погледни хубаво кода и пак пиши :wink: [/b]
User avatar
OciXCrom
OciXCrom™ Official Profile
OciXCrom™ Official Profile
Posts: 585
Joined: 21 Mar 2013, 14:21
Skype: doctor.crom1234
CS Nick: OciXCrom
Favorite version: CS: 1.6
Steam Community ID: OciXCrom
Location: jb.iplay.bg:27015
Contact:

Re: Block Nicknames

Post by OciXCrom »

За какви символи става дума?! Всички strings вършат една и съща функция, а именно държат име на играч, съответно всички трябва да имат еднакъв размер, именно 32.

szLine[64] - това се ползва за един ред от файла. Щом в един ред се слага един никнейм, който има максимум 32 символа, останалите 32 от това 64 са неизползваеми.
szNames[30] - когато играч влезне в сървъра, никовете биват копирани в този масив. Ако във файла е въведен никнейм, който има 32 символа, същият няма да бъде блокиран, тъй като последните 2 символа няма да бъдат прочетени.
szName[25] - това е името на играча. Ако то надхвърля 25 символа, последните 7 отново няма да бъдат прочетени от плъгина, тъй като името му бива "съкратено" в самия код.

Code: Select all

if (equal(szName, szNames)) 
По този начин достатъчно е играчът да смени големината на една буква в името си за да може да влезне в сървъра. Ползвай equali.
B7W wrote:Не е задължително, по принцип е автоматично.
Силно препоръчително е, тъй като е възможно автоматичното destroy-ване да не успее.
AlliedMods.net wrote:All handles should be cleaned automatically, but depending on context this may fail. Also, it is considered good practice to free anything you used.

Code: Select all

server_cmd("kick #%d ^"You are not allowed to this server!^"", szID) 
on this server, а не to.
User avatar
RideeR
Сървър Отговорник
Сървър Отговорник
Posts: 19
Joined: 17 Mar 2015, 19:04
Skype: ЛС!
CS Nick: ^FacePalm :3
Favorite version: CS: 1.6

Re: Block Nicknames

Post by RideeR »

OciXCrom wrote:За какви символи става дума?! Всички strings вършат една и съща функция, а именно държат име на играч, съответно всички трябва да имат еднакъв размер, именно 32.

szLine[64] - това се ползва за един ред от файла. Щом в един ред се слага един никнейм, който има максимум 32 символа, останалите 32 от това 64 са неизползваеми.
szNames[30] - когато играч влезне в сървъра, никовете биват копирани в този масив. Ако във файла е въведен никнейм, който има 32 символа, същият няма да бъде блокиран, тъй като последните 2 символа няма да бъдат прочетени.
szName[25] - това е името на играча. Ако то надхвърля 25 символа, последните 7 отново няма да бъдат прочетени от плъгина, тъй като името му бива "съкратено" в самия код.

Code: Select all

if (equal(szName, szNames))
По този начин достатъчно е играчът да смени големината на една буква в името си за да може да влезне в сървъра. Ползвай equali.
B7W wrote:Не е задължително, по принцип е автоматично.
Силно препоръчително е, тъй като е възможно автоматичното destroy-ване да не успее.
AlliedMods.net wrote:All handles should be cleaned automatically, but depending on context this may fail. Also, it is considered good practice to free anything you used.

Code: Select all

server_cmd("kick #%d ^"You are not allowed to this server!^"", szID)
on this server, а не to.
Съгласен съм за стринговете, но плъгинът не прави проблеми, тествах всичко, а съобщението, което си поправил, е примерно :)
User avatar
OciXCrom
OciXCrom™ Official Profile
OciXCrom™ Official Profile
Posts: 585
Joined: 21 Mar 2013, 14:21
Skype: doctor.crom1234
CS Nick: OciXCrom
Favorite version: CS: 1.6
Steam Community ID: OciXCrom
Location: jb.iplay.bg:27015
Contact:

Re: Block Nicknames

Post by OciXCrom »

Тествай с по-дълъг ник и ще видиш проблема. Няма нужда от тестове, проблемът се вижда в самия код. Просто ги направи 32 и няма да има проблеми.
User avatar
LAWLIET
CS-GOLD Owner
CS-GOLD Owner
Posts: 116
Joined: 06 Nov 2010, 19:09
Skype: LawlietBG
CS Nick: LAWLIET
Favorite version: CS: 1.6
Steam Community ID: kaloian5
Location: В cs-bg.info
Contact:

Re: Block Nicknames

Post by LAWLIET »

В алиедмодс ако тръгнеш да го пускаш ще ти направят проблем за това :)
User avatar
KiLLeR.
Потребител
Потребител
Posts: 173
Joined: 06 Mar 2011, 22:46
Skype: ЛС
CS Nick: KiLLeR ;]]
Favorite version: CS: Global Offensive
Steam Community ID: killer__________
Location: Тук-там!?!

Re: Block Nicknames

Post by KiLLeR. »

LAWLIET wrote:В алиедмодс ако тръгнеш да го пускаш ще ти направят проблем за това :)
Като гледам има още боб да изяде, преди да тръгне да пуска там плъгини.

А това:

Code: Select all

new szID = get_user_userid(id)
server_cmd("kick #%d ^"You are not allowed to this server!^"", szID) 
Можеше просто ето така:

Code: Select all

server_cmd("kick #%d ^"You are not allowed to this server!^"", get_user_userid(id));
User avatar
RideeR
Сървър Отговорник
Сървър Отговорник
Posts: 19
Joined: 17 Mar 2015, 19:04
Skype: ЛС!
CS Nick: ^FacePalm :3
Favorite version: CS: 1.6

Re: Block Nicknames

Post by RideeR »

KiLLeR. wrote:
LAWLIET wrote:В алиедмодс ако тръгнеш да го пускаш ще ти направят проблем за това :)
Като гледам има още боб да изяде, преди да тръгне да пуска там плъгини.

А това:

Code: Select all

new szID = get_user_userid(id)
server_cmd("kick #%d ^"You are not allowed to this server!^"", szID)
Можеше просто ето така:

Code: Select all

server_cmd("kick #%d ^"You are not allowed to this server!^"", get_user_userid(id)); 
Кaкво пречи променливaтa? :D
User avatar
OciXCrom
OciXCrom™ Official Profile
OciXCrom™ Official Profile
Posts: 585
Joined: 21 Mar 2013, 14:21
Skype: doctor.crom1234
CS Nick: OciXCrom
Favorite version: CS: 1.6
Steam Community ID: OciXCrom
Location: jb.iplay.bg:27015
Contact:

Re: Block Nicknames

Post by OciXCrom »

Не пречи, но не е правилно да се добавят променливи за неща, които се ползват само един път.
User avatar
RideeR
Сървър Отговорник
Сървър Отговорник
Posts: 19
Joined: 17 Mar 2015, 19:04
Skype: ЛС!
CS Nick: ^FacePalm :3
Favorite version: CS: 1.6

Re: Block Nicknames

Post by RideeR »

Добре време е дa спрем дa спaмим, скоро ще нaпрaвя новa версия и ще изчистя всички грешки :)
Post Reply

Return to “Ваши плъгини”