Knife Shop v3.0 - UPDATE
- DukMeN
- Потребител
- Posts: 30
- Joined: 07 Mar 2011, 19:43
- Skype: iliqn_906
- CS Nick: Smiley
- Favorite version: CS: 1.6
- Location: в форума
- Contact:
Knife Shop v3.0 - UPDATE
Плъгин: Knife Shop
Версия: 3.0
Автор: Dr.Small а.к.а DukMeN- аз
Описание:
Този плъгин е като HideNSeek Shop-а само, че е предназначен за Knife сървъри, но може да го използвате и в обикновени.
Команди за играчите:
say /shop
say /knifeshop
say shop
say knifeshop
CVAR команди (въвеждат се в server.cfg или в amxx.cfg):
knifeshop_he_cost - Наглася колко да струва HE гранатата
knifeshop_flash_cost - Наглася колко да струва Флашката
knifeshop_gravity_cost - Наглася колко да струва Гравитацията
knifeshop_health_cost - Наглася колко да струва Кръвта
knifeshop_armor_cost - Наглася колко да струва Бронежилетката
knifeshop_speed_cost - Наглася колко да струва Бързината
knifeshop_godmode_cost - Наглася колко да струва Безсмъртието
knifeshop_silent_cost - Наглася колко да струва Тихото вървене
knifeshop_awp_cost - Наглася колко да струва AWP-то
knifeshop_deagle_cost - Наглася колко да струва Deagle-то
knifeshop_noclip_cost - Наглася колко да струва Преминаването през стени
knifeshop_camo_cost - Наглася колко да струва Камуфлажа
knifeshop_gravity_time - Наглася колко секунди да трае Гравитацията (default: 10)
knifeshop_speed_time - Наглася колко секунди да трае Бързината (default: 20)
knifeshop_godmode_time - Наглася колко секунди да трае Безсмъртие (default: 12)
knifeshop_silent_time - Наглася колко секунди да трае Тихото вървене (default: 30)
knifeshop_noclip_time - Наглася колко секунди да трае Преминаването през стени (default: 7)
knifeshop_camo_time - Наглася колко секунди да трае Камуфлажа (default: 15)
knifeshop_ammount_hp - Наглася колко кръв да дава след купуването и (default: 115)
knifeshop_ammount_armor - Наглася колко Бронежилетка да дава след купуването и (default: 60)
knifeshop_awp_ammo - Наглася колко патрона да дава на AWP-то след купуването му (default: 1)
knifeshop_deagle_ammo - Наглася колко патрона да дава на Deagle-то след купуването му (default: 1)
New Cvar:
knifeshop_hud_color - Цвета на съобщението от снимката по-долу (default: "255 255 0")
Команди:
knifeshop_give_points - използва се за да дадете точка(и) на някой играч
knifeshop_remove_points - използва се за да премахнете точка(и) от някой играч
ChangeLog:
Версия: 2.6: - Първа версия
Версия 2.7:
- Cvar-ите са сменени с Pcvars
- премахнати две библиотеки <amxmisc> и <fakemeta_util>
- премахнат итем Invisible, защотото правеше проблеми.
Версия 2.8:
- премахнат e event-а DeathMsg, защото го използвах за ресване на покупките когато играчът умре, но сега когато играча се spaw-не, тогава се ресват покупките.
Версия 2.9:
- вече shop-а не използва парите от играта а точки който се трупат когато убиете някого. Точките се запазват при излизане на играча. Точките се запазват по nick
- Добавени команди за даване и премахване на точки. Командите са за админи с флаг за rcon.
- Добавено HUD съобщение което стой постоянно долу в ляво и показва колко точки имате.
- При нормално убийство дава 1 точка, а при headshot - 2 точки.
Версия 3.0: Оптимизиране на плъгина
Ето снимка да видите как изглежда съобщението:
http://prikachi.com/images.php?images/256/7358256I.jpg
Благодарности на:
Flickercho
Това е всичко. Дано ви хареса. Ако има бъг с плъгина или пък имате някаква идея да се добави нещо пишете!
Версия: 3.0
Автор: Dr.Small а.к.а DukMeN- аз
Описание:
Този плъгин е като HideNSeek Shop-а само, че е предназначен за Knife сървъри, но може да го използвате и в обикновени.
Команди за играчите:
say /shop
say /knifeshop
say shop
say knifeshop
CVAR команди (въвеждат се в server.cfg или в amxx.cfg):
knifeshop_he_cost - Наглася колко да струва HE гранатата
knifeshop_flash_cost - Наглася колко да струва Флашката
knifeshop_gravity_cost - Наглася колко да струва Гравитацията
knifeshop_health_cost - Наглася колко да струва Кръвта
knifeshop_armor_cost - Наглася колко да струва Бронежилетката
knifeshop_speed_cost - Наглася колко да струва Бързината
knifeshop_godmode_cost - Наглася колко да струва Безсмъртието
knifeshop_silent_cost - Наглася колко да струва Тихото вървене
knifeshop_awp_cost - Наглася колко да струва AWP-то
knifeshop_deagle_cost - Наглася колко да струва Deagle-то
knifeshop_noclip_cost - Наглася колко да струва Преминаването през стени
knifeshop_camo_cost - Наглася колко да струва Камуфлажа
knifeshop_gravity_time - Наглася колко секунди да трае Гравитацията (default: 10)
knifeshop_speed_time - Наглася колко секунди да трае Бързината (default: 20)
knifeshop_godmode_time - Наглася колко секунди да трае Безсмъртие (default: 12)
knifeshop_silent_time - Наглася колко секунди да трае Тихото вървене (default: 30)
knifeshop_noclip_time - Наглася колко секунди да трае Преминаването през стени (default: 7)
knifeshop_camo_time - Наглася колко секунди да трае Камуфлажа (default: 15)
knifeshop_ammount_hp - Наглася колко кръв да дава след купуването и (default: 115)
knifeshop_ammount_armor - Наглася колко Бронежилетка да дава след купуването и (default: 60)
knifeshop_awp_ammo - Наглася колко патрона да дава на AWP-то след купуването му (default: 1)
knifeshop_deagle_ammo - Наглася колко патрона да дава на Deagle-то след купуването му (default: 1)
New Cvar:
knifeshop_hud_color - Цвета на съобщението от снимката по-долу (default: "255 255 0")
Команди:
knifeshop_give_points - използва се за да дадете точка(и) на някой играч
knifeshop_remove_points - използва се за да премахнете точка(и) от някой играч
ChangeLog:
Версия: 2.6: - Първа версия
Версия 2.7:
- Cvar-ите са сменени с Pcvars
- премахнати две библиотеки <amxmisc> и <fakemeta_util>
- премахнат итем Invisible, защотото правеше проблеми.
Версия 2.8:
- премахнат e event-а DeathMsg, защото го използвах за ресване на покупките когато играчът умре, но сега когато играча се spaw-не, тогава се ресват покупките.
Версия 2.9:
- вече shop-а не използва парите от играта а точки който се трупат когато убиете някого. Точките се запазват при излизане на играча. Точките се запазват по nick
- Добавени команди за даване и премахване на точки. Командите са за админи с флаг за rcon.
- Добавено HUD съобщение което стой постоянно долу в ляво и показва колко точки имате.
- При нормално убийство дава 1 точка, а при headshot - 2 точки.
Версия 3.0: Оптимизиране на плъгина
Ето снимка да видите как изглежда съобщението:
http://prikachi.com/images.php?images/256/7358256I.jpg
Благодарности на:
Flickercho
Това е всичко. Дано ви хареса. Ако има бъг с плъгина или пък имате някаква идея да се добави нещо пишете!
- Attachments
-
- Knife Shop v3.0.rar
- (30.68 KiB) Downloaded 1246 times
-
- Knife Shop 2.8.rar
- (20.98 KiB) Downloaded 798 times
Last edited by DukMeN on 29 May 2014, 21:10, edited 7 times in total.
- SpeeDeeR
- Потребител
- Posts: 41
- Joined: 13 Feb 2011, 22:07
- CS Nick: SpeeD
- Favorite version: CS: 1.6
- Steam Community ID: 76561198045340386
- Location: Русе
- Contact:
Re: Knife Shop
Използвай pcvar. Многократно по-бърз е.
========================================================================;
Двата евента са глобални, а ти правиш това
Те не предават конкретен индекс, предполагам е от недоглеждане.
========================================================================;
В същинското меню вместо да декларираш 2 променливи 13 пъти, за всеки 'case', които да присвояват едно и също, ги декларирай в началото. Ако не си разбрал, това са променливите за пари и стойността на покупката.
=======================================================================;
Няма смисъл да създаваш променливи, които да присвояват стойности, ако ги ползваш само веднъж.
========================================================================;
Защо си включил 'fakemeta_util' и 'fun' след като и двете правят еднакви неща. На практика ти включваш модул, който всъщност не ползваш, а е по-бърз от include-а.
========================================================================;
Не мисля, че видях място, където ресваш покупките в началото/края на рунда, а само когато играчът умре. Ами, ако не е умрял?
Също така, не мисля че има смисъл да ресваш покупките, когато човек излезе и влезе. Те така или иначе вече са реснати, когато е излязъл и стойността на променливата за въпросния индекс на играча вече е занулена.
========================================================================;
Няма смисъл да задължаваш хората да заредят звуците, които си използвал, повторно. Те са включени в играта и вече са заредени.
========================================================================;
========================================================================;
Code: Select all
register_logevent("EventRoundStart", 2, "1=Round_Start");
register_event("DeathMsg", "EventDeath", "a");
Code: Select all
public EventRoundStart(id)
public EventDeath(id)
========================================================================;
В същинското меню вместо да декларираш 2 променливи 13 пъти, за всеки 'case', които да присвояват едно и също, ги декларирай в началото. Ако не си разбрал, това са променливите за пари и стойността на покупката.
=======================================================================;
Няма смисъл да създаваш променливи, които да присвояват стойности, ако ги ползваш само веднъж.
========================================================================;
Защо си включил 'fakemeta_util' и 'fun' след като и двете правят еднакви неща. На практика ти включваш модул, който всъщност не ползваш, а е по-бърз от include-а.
========================================================================;
Не мисля, че видях място, където ресваш покупките в началото/края на рунда, а само когато играчът умре. Ами, ако не е умрял?
Също така, не мисля че има смисъл да ресваш покупките, когато човек излезе и влезе. Те така или иначе вече са реснати, когато е излязъл и стойността на променливата за въпросния индекс на играча вече е занулена.
========================================================================;
Няма смисъл да задължаваш хората да заредят звуците, които си използвал, повторно. Те са включени в играта и вече са заредени.
========================================================================;
- Schwarzenegger
- Потребител
- Posts: 21
- Joined: 12 Sep 2011, 17:30
- Skype: Linux.MoD
- CS Nick: Schwarzenegger`
- Favorite version: CS: 1.6
- Location: Бургас
- Contact:
Re: Knife Shop
- Ще може ли да направиш снимка на как изглежда ?
- DukMeN
- Потребител
- Posts: 30
- Joined: 07 Mar 2011, 19:43
- Skype: iliqn_906
- CS Nick: Smiley
- Favorite version: CS: 1.6
- Location: в форума
- Contact:
Re: Knife Shop
Страница 1:
http://prikachi.com/images/808/4006808p.jpg
Страница 2:
http://prikachi.com/images/811/4006811q.jpg
Снимките са от новата версия: v2.7
П.П. Там отгоре на менюто дето пише, че е 2.6 версия е оправено сега е с 2.7
http://prikachi.com/images/808/4006808p.jpg
Страница 2:
http://prikachi.com/images/811/4006811q.jpg
Снимките са от новата версия: v2.7
П.П. Там отгоре на менюто дето пише, че е 2.6 версия е оправено сега е с 2.7
- Wicked-
- Потребител
- Posts: 121
- Joined: 22 Feb 2010, 14:02
- Skype: wicked9511
- CS Nick: Wicked
- Favorite version: CS: 1.6
- Location: Варна
Re: Knife Shop v2.7 - UPDATE
Супер си е и става и за Deathrun shop
- lexa
- Потребител
- Posts: 114
- Joined: 30 Aug 2011, 12:48
- CS Nick: LexaPPTB
- Favorite version: CS: 1.6
Re: Knife Shop v2.7 - UPDATE
Има ли някой които го ползва ? и доволни ли сте ?
- PhotoKiller
- Потребител
- Posts: 89
- Joined: 31 Jan 2014, 17:09
- Favorite version: CS: 1.6
- Location: Русе
- Contact:
Re: Knife Shop v2.7 - UPDATE
ние го използваме за нашия knife сервер. И да много е хубав плъгинаlexa wrote:Има ли някой които го ползва ? и доволни ли сте ?
- DukMeN
- Потребител
- Posts: 30
- Joined: 07 Mar 2011, 19:43
- Skype: iliqn_906
- CS Nick: Smiley
- Favorite version: CS: 1.6
- Location: в форума
- Contact:
Re: Knife Shop v2.9 - UPDATE
Нова версия!
- Flickercho
- Потребител
- Posts: 288
- Joined: 25 Dec 2013, 18:51
- Skype: -none-
- CS Nick: zEx |Flick3rR ;]]*
- Favorite version: CS: 1.6
- Location: Стара Загора, На покрива на 7-ми блок, кв. Железник
Re: Knife Shop v2.9 - UPDATE
По кода могат да се направят някой оптимизации, но като заначало мисля да съобщя за грешките, които ще предизвикват ерори в логовете.
1. Във функцията на Ham_Spawn трябва да се сложи проверка дали играчът е жив, защото иначе ще дава грешки от сорта на: "Invalid player id 9" и функциите ще блокират - bool-овете няма да се рестартират.
Най лесно е така:
2. Същият метод трябва да се използва и във DeathMsg, където обаче не трябва да е за жив играч, а за свързан. Т.е., !is_user_connected(id)
ЕДИТ: 3. Освен това си забравил в тасковете да зададеш повечето bool-ове на false.
EДИТ: 4. Излишно е да се запазват на всяко убийство точките на жертвата, тъй като това изхабява много ресурси и причинява лаг.
ЕДИТ: 5. Излишно е да се извършват едни и същи функции при смърт и при спаун, понеже когато умреш, винаги ще се спауннеш, така че е по-добре да останат функциите само при спаун.
Оптимизации:
1. Най-излишното нещо, което виждам в кода, е проверката дали играчът е жив при избора на всеки един елемент. Много по-eфективно ще е, ако просто добавиш проверката (която е една и съща за всеки итъм) във функцията, където се създава самото меню, и не позволиш отварянето му, ако играчът не е жив.
2. Също не виждам смисъл във bool-овете за гранатите и другите неща като цяло, които могат да бъдат изчерпвани/изгубвани. И ако идеята да се използват един път на spawn, тогава съобщението не би трябвало да е "You already have this item". И относно гранатите специално, бива да се премахне този bool и да се замени с проверката "user_has_weapon(id, CSW_HEGRENADE)" (примерно), и ако играчът има съответното оръжие, да изписва даденото съобщение.
3. И сега нещо по-маловажно: просто няма смисъл да се добавя един и същи префикс във всяко едно отделно съобщение, когато можеш да зададеш константа или просто да използваш #define за него. Така ще се променя много по-лесно и удобно за потребителите, които желаят да поставят произволен префикс. Давам пример:
И след това, да кажем това съобщение:
ще изглежда така:
1. Във функцията на Ham_Spawn трябва да се сложи проверка дали играчът е жив, защото иначе ще дава грешки от сорта на: "Invalid player id 9" и функциите ще блокират - bool-овете няма да се рестартират.
Най лесно е така:
Code: Select all
if(!is_user_alive(id)) return PLUGIN_HANDLED
ЕДИТ: 3. Освен това си забравил в тасковете да зададеш повечето bool-ове на false.
EДИТ: 4. Излишно е да се запазват на всяко убийство точките на жертвата, тъй като това изхабява много ресурси и причинява лаг.
ЕДИТ: 5. Излишно е да се извършват едни и същи функции при смърт и при спаун, понеже когато умреш, винаги ще се спауннеш, така че е по-добре да останат функциите само при спаун.
Оптимизации:
1. Най-излишното нещо, което виждам в кода, е проверката дали играчът е жив при избора на всеки един елемент. Много по-eфективно ще е, ако просто добавиш проверката (която е една и съща за всеки итъм) във функцията, където се създава самото меню, и не позволиш отварянето му, ако играчът не е жив.
2. Също не виждам смисъл във bool-овете за гранатите и другите неща като цяло, които могат да бъдат изчерпвани/изгубвани. И ако идеята да се използват един път на spawn, тогава съобщението не би трябвало да е "You already have this item". И относно гранатите специално, бива да се премахне този bool и да се замени с проверката "user_has_weapon(id, CSW_HEGRENADE)" (примерно), и ако играчът има съответното оръжие, да изписва даденото съобщение.
3. И сега нещо по-маловажно: просто няма смисъл да се добавя един и същи префикс във всяко едно отделно съобщение, когато можеш да зададеш константа или просто да използваш #define за него. Така ще се променя много по-лесно и удобно за потребителите, които желаят да поставят произволен префикс. Давам пример:
Code: Select all
new const Prefix[] = {"[Knife Shop]"}
Code: Select all
ColorChat( 0, TEAM_COLOR, "[Knife Shop]^1 You allready have this item!" );
Code: Select all
ColorChat( 0, TEAM_COLOR, "%s^1 You allready have this item!", Prefix );
Last edited by Flickercho on 29 May 2014, 20:12, edited 1 time in total.
- KiLLeR.
- Потребител
- Posts: 173
- Joined: 06 Mar 2011, 22:46
- Skype: ЛС
- CS Nick: KiLLeR ;]]
- Favorite version: CS: Global Offensive
- Steam Community ID: killer__________
- Location: Тук-там!?!
Re: Knife Shop v2.9 - UPDATE
Тук си в грешка, никакви ресурси няма да се изхабят и още по малко да се причинява какъвто и да било лаг. Дори както го е направил той е по добре, защото ако примерно си играл 20-30 минути с някакъв ник, събрал си X точки и си смениш ника по време на игра, на първоначалния ник няма да се запази нищо. Може много лесно да тестваш казаното от мен, влзени с някакъв ник и събери малко точки, след това си смени ника по време на игра, излез от сървъра и след това влез отново, но с първоначалния ник на който си събрал точките и сам се увери какъв ще е резултата. Това всичко може да стане само ако функцията за запазване на точки се извика само при disconnect. И искам да подчертая че тези неща не ги говоря просто наизуст, всичко казано е от личен опит.Flickercho wrote:EДИТ: 4. Излишно е да се запазват на всяко убийство точките на жертвата, тъй като това изхабява много ресурси и причинява лаг.
- Flickercho
- Потребител
- Posts: 288
- Joined: 25 Dec 2013, 18:51
- Skype: -none-
- CS Nick: zEx |Flick3rR ;]]*
- Favorite version: CS: 1.6
- Location: Стара Загора, На покрива на 7-ми блок, кв. Железник
Re: Knife Shop v2.9 - UPDATE
Запазването по никнейм е така, по принцип е по-добре (много) да се запазват по AuthID, тъй като това с никовете е голяма кражба. И аз говоря от опит, но това важи за запазване по AuthID, защото можеш и името да си смениш. Грешката е моя.
- KiLLeR.
- Потребител
- Posts: 173
- Joined: 06 Mar 2011, 22:46
- Skype: ЛС
- CS Nick: KiLLeR ;]]
- Favorite version: CS: Global Offensive
- Steam Community ID: killer__________
- Location: Тук-там!?!
Re: Knife Shop v3.0 - UPDATE
А да, пропуснал съм да кажа че горе описания проблем важи само за запазване по ник.
- Wicked-
- Потребител
- Posts: 121
- Joined: 22 Feb 2010, 14:02
- Skype: wicked9511
- CS Nick: Wicked
- Favorite version: CS: 1.6
- Location: Варна
Re: Knife Shop v3.0 - UPDATE
Когато използвате плъгин, който запазва точки по ник слагате този плъгин задължително: http://cs-bg.info/plugin/91/
Иначе може да има злоупотреби. Ето какво става когато смениш ника си по време на игра:
1. Влизаш в сървъра с ник "Player" и имаш там едни 200 точки, които са ти запазени по него ник.
2. Сменяш си ника по време на игра с "Player2" и тези 200 точки се копират на другия ник.
3. Излизаш от сървъра с ник "Player2" и тези 200 точки се запазват на ник "Player2".
=> Вече "Player" и "Player2" никовете имат записани по 200 точки. И така може някой да реши, като събере много точки, да направи няколко ника с тях точки и да си ги ползва по-нататък или да ги даде на някой друг.
Иначе може да има злоупотреби. Ето какво става когато смениш ника си по време на игра:
1. Влизаш в сървъра с ник "Player" и имаш там едни 200 точки, които са ти запазени по него ник.
2. Сменяш си ника по време на игра с "Player2" и тези 200 точки се копират на другия ник.
3. Излизаш от сървъра с ник "Player2" и тези 200 точки се запазват на ник "Player2".
=> Вече "Player" и "Player2" никовете имат записани по 200 точки. И така може някой да реши, като събере много точки, да направи няколко ника с тях точки и да си ги ползва по-нататък или да ги даде на някой друг.
- Flickercho
- Потребител
- Posts: 288
- Joined: 25 Dec 2013, 18:51
- Skype: -none-
- CS Nick: zEx |Flick3rR ;]]*
- Favorite version: CS: 1.6
- Location: Стара Загора, На покрива на 7-ми блок, кв. Железник
Re: Knife Shop v3.0 - UPDATE
Toчно това имах предвид и затова предпочитам запазването по AuthID.Wicked- wrote:Когато използвате плъгин, който запазва точки по ник слагате този плъгин задължително: http://cs-bg.info/plugin/91/
Иначе може да има злоупотреби. Ето какво става когато смениш ника си по време на игра:
1. Влизаш в сървъра с ник "Player" и имаш там едни 200 точки, които са ти запазени по него ник.
2. Сменяш си ника по време на игра с "Player2" и тези 200 точки се копират на другия ник.
3. Излизаш от сървъра с ник "Player2" и тези 200 точки се запазват на ник "Player2".
=> Вече "Player" и "Player2" никовете имат записани по 200 точки. И така може някой да реши, като събере много точки, да направи няколко ника с тях точки и да си ги ползва по-нататък или да ги даде на някой друг.
- Wicked-
- Потребител
- Posts: 121
- Joined: 22 Feb 2010, 14:02
- Skype: wicked9511
- CS Nick: Wicked
- Favorite version: CS: 1.6
- Location: Варна
Re: Knife Shop v3.0 - UPDATE
Запазването по AuthID също не е препоръчително ако в сървъра могат да влизат и non-steam играчи. Най-добре е по ник + плъгина даден по-горе или по IP.