Back Stab Counter v1.0
Правила на форума
ИНФОРМАЦИЯ: В този раздел най-вероятно няма да намерите много теми (възможно е и да е напълно празен), тъй като новите теми се местят в https://amxx-bg.info/viewforum.php?f=21 или https://amxx-bg.info/viewforum.php?f=22, зависимо от качеството им.
ИНФОРМАЦИЯ: В този раздел най-вероятно няма да намерите много теми (възможно е и да е напълно празен), тъй като новите теми се местят в https://amxx-bg.info/viewforum.php?f=21 или https://amxx-bg.info/viewforum.php?f=22, зависимо от качеството им.
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Back Stab Counter v1.0
Име на плъгина : Back Stab Counter
Версия : 1.0
Автор : Just In Case ( аз )
Описание:
Плъгина отброява на всеки играч убийствата/умиранията в гръб.
CVARs
amx_bsc_savetype"1" --- С този квар определяте начина на запазване на данните
| 1 за НИК |2 за IP | 3 за Steam ID (не препоръчвам 3-тия вариант
amx_bsc_stats "1" --- Това е кварът който изключва/включва /statsback командата
amx_bsc_menuinfo "2" --- Кварът с който настройвате как да показва информацията на даден играч (ако горния квар е 1)
| 1 за ЧАТ | 2 отваря друго меню с информацията
Чат команди
/checkback - Показва вашите убийства/умирания в гръб.
/statsback - Отваря менюто с играчите в сървъра
Благодарности на @TheRedShoko.
Версия : 1.0
Автор : Just In Case ( аз )
Описание:
Плъгина отброява на всеки играч убийствата/умиранията в гръб.
CVARs
amx_bsc_savetype"1" --- С този квар определяте начина на запазване на данните
| 1 за НИК |2 за IP | 3 за Steam ID (не препоръчвам 3-тия вариант
amx_bsc_stats "1" --- Това е кварът който изключва/включва /statsback командата
amx_bsc_menuinfo "2" --- Кварът с който настройвате как да показва информацията на даден играч (ако горния квар е 1)
| 1 за ЧАТ | 2 отваря друго меню с информацията
Чат команди
/checkback - Показва вашите убийства/умирания в гръб.
/statsback - Отваря менюто с играчите в сървъра
Благодарности на @TheRedShoko.
- Прикачени файлове
-
- hit_back_count.sma
- (5.5 KiB) Свалено 231 пъти
- hit_back_count.sma
- (5.5 KiB) Свалено 231 пъти
Последно промяна от JustInCase на 24 Фев 2017, 19:45, променено общо 3 пъти.
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
hackera457
Извън линия - Потребител
- Мнения: 768
- Регистриран на: 01 Ное 2016, 09:46
- Местоположение: София
- Се отблагодари: 1 път
- Получена благодарност: 124 пъти
- Обратна връзка:
Re: Back Stab Counter v1.0 [ UNTESTED ]
Така при преглеждането на плъгина ми изглежда точно, но ето какво бих те посъветвал:
Трябва да стане
Сравни твоя код и моя код и виж къде си допуснал грешката. Грешката е, че там където запазваш си сложил
А трябва да е над parse(), защото така както си го дал като реплейсваш с празни във файла ще стане мазало, а функцията няма да ти парсва правилно и ще се чудиш защо не ти зарежда Kills и Deads
Иначе Браво, други забележки нямам
- * static вместо new - само на няколко места си го ползвал, а има още къде да се замени
* ShowCounts( id ) трябва да има return PLUGIN_HANDLED /отговора на въпроса оставам ти да се сетиш/
Код за потвърждение: Избери целия код
UseVault(id, iType) {
new szKey[32], szData[16]
switch ( get_pcvar_num( g_iSaveType ) )
{
case 0: return
case 1: get_user_name(id, szKey, charsmax(szKey))
case 2: get_user_ip(id, szKey, charsmax(szKey), 1)
case 3: get_user_authid(id, szKey, charsmax(szKey))
}
switch(iType)
{
case 0:
{
formatex(szData, charsmax(szData), "%i | %i", g_iBackStabKills[ id ], g_iBackStabDeaths[ id ])
replace_all(szData, charsmax(szData), "|", " ")
nvault_set(g_iVault, szKey, szData)
}
case 1:
{
nvault_get(g_iVault, szKey, szData, charsmax(szData))
new szArg[2][8]
parse(szData, szArg[0], charsmax(szArg[]), szArg[1], charsmax(szArg[]))
g_iBackStabKills[ id ] = str_to_num(szArg[0])
g_iBackStabDeaths[ id ] = str_to_num(szArg[1])
}
}
}
Код за потвърждение: Избери целия код
UseVault(id,iType)
{
static szVaultKey[64], szVaultData[128], szBackStabKills[10], szBackStabDeaths[10]
switch(get_pcvar_num( g_iSaveType ))
{
case 0: return
case 1: get_user_name(id,szVaultKey, sizeof szVaultKey -1)
case 2: get_user_ip(id,szVaultKey, sizeof szVaultKey -1);
case 3: get_user_authid(id,szVaultKey, sizeof szVaultKey -1)
}
switch(iType)
{
case 0:
{
formatex(szVaultData, sizeof szVaultData -1,"%i | %i",g_iBackStabKills[ id ], g_iBackStabDeaths[ id ])
nvault_set(g_iVault, szVaultKey, szVaultData)
}
case 1:
{
nvault_get(g_iVault, szVaultKey, szVaultData, sizeof szVaultData -1)
replace_all(szVaultData, sizeof szVaultData,"|", " ")
parse(szVaultData, szBackStabKills[10], sizeof szBackStabKills -1, szBackStabDeaths, sizeof szBackStabDeaths -1)
g_iBackStabKills[id] = str_to_num(szBackStabKills)
g_iBackStabDeaths[id] = str_to_num(szBackStabDeaths)
}
}
}
Код за потвърждение: Избери целия код
replace_all(szData, charsmax(szData), "|", " ")
Иначе Браво, други забележки нямам
Моите плъгини
Код за потвърждение: Избери целия код
#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"){
}
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: Back Stab Counter v1.0 [ UNTESTED ]
Благодаря ще го ъпдейтна по-късно
Винаги ли трябва да се ползва static вместо new ? Където е възможно разбира се.
Винаги ли трябва да се ползва static вместо new ? Където е възможно разбира се.
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
hackera457
Извън линия - Потребител
- Мнения: 768
- Регистриран на: 01 Ное 2016, 09:46
- Местоположение: София
- Се отблагодари: 1 път
- Получена благодарност: 124 пъти
- Обратна връзка:
Re: Back Stab Counter v1.0 [ UNTESTED ]
Препоръчително е,обяснявал съм защо, но пак ще го повтора докато го научите
Когато ползваш new знаеш, че се заделя някакво блокче в паметта с ключ и стойност. Името на ключа на това блокче е името на променливата. При всяко извикване на функцията ще се създава все ново и ново блокче в паметта и така при по-голям код със множество цикли и т.н ще дойде момент, когато паметта ще се напълни и при викане няма да има място където да се създаде това блокче. Това явление се нарича "Препълване на буфера" (Buffer Overflow).
Когато дефинираш дадена променлива като static то тя се създвава веднъж и се ползва локално /само във самата функция, ако опита да се достъпи от другаде няма да стане/ и колкото пъти се извика функцията, тя променя само стойността си, а не се създава наново. С други думи - променлива дефинирана като статична се създава веднъж при първото извикване на функцията и после си променя стойността при всяко повторно извикване
Когато ползваш new знаеш, че се заделя някакво блокче в паметта с ключ и стойност. Името на ключа на това блокче е името на променливата. При всяко извикване на функцията ще се създава все ново и ново блокче в паметта и така при по-голям код със множество цикли и т.н ще дойде момент, когато паметта ще се напълни и при викане няма да има място където да се създаде това блокче. Това явление се нарича "Препълване на буфера" (Buffer Overflow).
Когато дефинираш дадена променлива като static то тя се създвава веднъж и се ползва локално /само във самата функция, ако опита да се достъпи от другаде няма да стане/ и колкото пъти се извика функцията, тя променя само стойността си, а не се създава наново. С други думи - променлива дефинирана като статична се създава веднъж при първото извикване на функцията и после си променя стойността при всяко повторно извикване
Моите плъгини
Код за потвърждение: Избери целия код
#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"){
}
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: Back Stab Counter v1.0 [ UNTESTED ]
Благодаря за обяснението всичко е оправено !
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
TheRedShoko
Извън линия - Модератор
- Мнения: 1016
- Регистриран на: 06 Окт 2016, 07:42
- Местоположение: Бургас
- Се отблагодари: 5 пъти
- Получена благодарност: 84 пъти
Re: Back Stab Counter v1.0
Имам една забележка - допускаш грешки при именуването на функции (както си започнал, изкарай го до края, а не едното да е PascalCase, другото с долни_черти, а третото - Смесено_ПоТози_Начин), това дразни до известна степен. Същото е положението и при скобите, когато го правиш
изкарай го по този начин до края. Същото важи и за
Ако за един ред не слагаш { }, то спазвай го на всякъде, а не:
Тествал ли си плъгина? Струва ми се, че може да направи проблем при зареждането от базата, заради разстоянието между placeholders
Код за потвърждение: Избери целия код
SomeMethod() {
}
Код за потвърждение: Избери целия код
SomeMethod()
{
}
Код за потвърждение: Избери целия код
case 1:
{
SubMenu( id, iPlayer )
}
case 2:
ColorChat(id, RED, "^4[BSC] ^3%s ^1have ^4%i ^1BS Kills and ^4%i ^1BS Deaths", szName, g_iBackStabKills[ iPlayer], g_iBackStabDeaths[ iPlayer ])
Код за потвърждение: Избери целия код
%i | %i
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: Back Stab Counter v1.0
Плъгина не е тестван.
Това с скобите при Const, Bool, или функции, които нямат public отпред се пише точно на реда в който е дефинирана самата функция защото при натискане на ctrl + I (Indenting Code) в AMXX Studio подрежда кода както трябва иначе се получават разминавания(примера по долу). Това е причината поради, която съм го направил така.
За това с разстоянието си прав оправих го !
Това с скобите при Const, Bool, или функции, които нямат public отпред се пише точно на реда в който е дефинирана самата функция защото при натискане на ctrl + I (Indenting Code) в AMXX Studio подрежда кода както трябва иначе се получават разминавания(примера по долу). Това е причината поради, която съм го направил така.
Код за потвърждение: Избери целия код
Loose identation on line 23123(пример)
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
TheRedShoko
Извън линия - Модератор
- Мнения: 1016
- Регистриран на: 06 Окт 2016, 07:42
- Местоположение: Бургас
- Се отблагодари: 5 пъти
- Получена благодарност: 84 пъти
Re: Back Stab Counter v1.0
Това е въпрос на стил на писане на код, а не на правила. Правилно е да го пишеш по 1 начин, а не по няколко различни. Колкото до подреждането на кода в AMXX Studio - не бих му вярвал, не мога да кажа, че съм особено доволен от начина, по който подрежда кода, още повече, че ако сложиш някой напълно прецакан код, ще го направи още по-зле. Loose identation се получава, при различни ситуации. Предполагам, че при теб е било от това, че при начало на ред си смесил разстояния (многобройни space) и табулации. Не се вижда това, но хвърля warning.
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 5 Отговори
- 3022 Преглеждания
-
Последно мнение от Scorpions95
-
- 19 Отговори
- 6170 Преглеждания
-
Последно мнение от OciXCrom
-
- 13 Отговори
- 4550 Преглеждания
-
Последно мнение от USA_CA
-
- 4 Отговори
- 3360 Преглеждания
-
Последно мнение от botlike
-
- 0 Отговори
- 1304 Преглеждания
-
Последно мнение от YankoNL
-
- 4 Отговори
- 1685 Преглеждания
-
Последно мнение от Scorpions95
-
- 1 Отговори
- 178 Преглеждания
-
Последно мнение от ChillX
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 15 госта