Заявка за "Become an Admin"
Re: Заявка за "Become an Admin"
JustInCase, плъгинът нещо не работи както трябва. При излизане от сървъра не помни убийствата. Дава ми, че имам 0 убийства.
-
JustInCase
Извън линия - Потребител
- Мнения: 582
- Регистриран на: 14 Окт 2016, 23:31
- Се отблагодари: 4 пъти
- Получена благодарност: 15 пъти
Re: Заявка за "Become an Admin"
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
#include <playedTime>
#include <nvault>
#include <colorchat>
#define PLUGIN "Become Admin"
#define VERSION "1.0"
#define AUTHOR "Just In Case @ amxx-bg.info/forum"
new g_iAVault, g_iKVault
new bool:IsAdmin[33]
new szChatCommands[][] = {
"say /ba", "say_team /ba",
"say ba", "say_team ba"
}
new Points [ 33 ]
new Kills, Minutes, iMenuTitle, Flags
new iKills, iMinutes
new szFlags[ 30 ]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
Kills = register_cvar("ba_kills", "2000")
iKills = get_pcvar_num(Kills)
Minutes = register_cvar("ba_minutes", "5000")
iMinutes = get_pcvar_num(Minutes)
iMenuTitle = register_cvar("ba_menutitle", "EXAMPLE")
Flags = register_cvar("ba_flags", "bcejp")
get_pcvar_string(Flags, szFlags, charsmax(szFlags))
for ( new i = 0; i < sizeof( szChatCommands ); i++ )
register_concmd(szChatCommands[ i ], "ShowMenu")
register_event ( "DeathMsg", "eDeath", "a" );
g_iAVault = nvault_open("Become Admin - Admins")
}
public client_disconnect(id)
{
UseVault(id, 0)
}
public client_connect(id)
{
IsAdmin[ id ] = false
}
public client_putinserver(id)
{
if(is_user_admin(id))
IsAdmin[ id ] = true
UseVault(id, 1)
}
public ShowMenu(id)
{
new Title[ 128 ], Item1[128], Item2[128], Item1a[128], Item2a[128]
new gKills = Points[ id ]
new gMinutes = get_user_ptime(id)
formatex(Title, 127, "%s", GetMenuName())
formatex(Item1, 127, "\wImate izigrani \r[ \y%i \r] \wminuti", gMinutes)
formatex(Item2, 127, "\wImate napraveni \r[ \y%i \r] \wubiistva", gKills)
formatex(Item1a, 127, "\wImate izigrani \r[ \y%i \r] \wminuti \y[ IZPULNENO ]", iMinutes)
formatex(Item2a, 127, "\wImate napraveni \r[ \y%i \r] \wminuti \y[ IZPULNENO ]", iKills)
new menu = menu_create(Title, "BA_menu_handler")
if(gMinutes < iMinutes)
menu_additem(menu, Item1)
else
menu_additem(menu, Item1a)
if(gKills < iKills)
menu_additem(menu, Item2)
else
menu_additem(menu, Item2a)
if(gKills > iKills && gMinutes > iMinutes)
{
if(IsAdmin[ id ] == true)
{
menu_addtext(menu, "^n\r --------------------^n")
menu_additem(menu, "\dStani ADMIN", "", 1)
}
else
{
menu_addtext(menu, "^n\r --------------------^n")
menu_additem(menu, "\yStani ADMIN")
}
}
menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
menu_display(id, menu, 0)
}
public BA_menu_handler(id, menu, item)
{
switch ( item )
{
case 2:
{
if(is_user_admin(id))
{
ColorChat(id, RED, "^4[ BA ] ^1Nqma kak da stanesh ^3ADMIN ^1dva puti")
return PLUGIN_HANDLED
}
new gKills = Points[ id ]
new gMinutes = get_user_ptime(id)
if(gKills > iKills && gMinutes > iMinutes)
{
set_user_flags(id, read_flags(szFlags), 0)
ColorChat(id, RED, "^4[ BA ] ^1Pozdravleniq ^4!^1!^4! ^1Ti toku shto stana ^3ADMIN")
UseVault(id, 0)
IsAdmin[ id ] = true
}
}
}
menu_destroy( menu );
return PLUGIN_HANDLED;
}
public eDeath ( )
{
new Killer = read_data ( 1 );
new Victim = read_data ( 2 );
if ( Killer == Victim )
return PLUGIN_HANDLED;
Points [ Killer ] += 1;
return PLUGIN_CONTINUE;
}
UseVault(id, iType) {
new szName[32], szData[16]
get_user_name(id, szName, charsmax(szName))
switch(iType)
{
case 0:
{
str_to_num(Points [ id ])
formatex(szData, charsmax(szData), "%i", Points[ id ])
nvault_set(g_iAVault, szName, szData)
}
case 1:
{
nvault_get(g_iAVault, szName, flags, szData, charsmax(szData))
//replace_all(szData, charsmax(szData), "|", " ")
new szArg[30]
parse(szData, szArg, charsmax(szArg))
Points[ id ] = str_to_num(szArg)
}
}
}
stock GetMenuName()
{
new String[128]
get_pcvar_string(iMenuTitle, String, charsmax(String))
return String
}
MANSION - HNS : 45.144.155.99:27026
ONLINE
ONLINE
-
hackera457
Извън линия - Потребител
- Мнения: 768
- Регистриран на: 01 Ное 2016, 09:46
- Местоположение: София
- Се отблагодари: 1 път
- Получена благодарност: 124 пъти
- Обратна връзка:
Re: Заявка за "Become an Admin"
Релииза моя скоро ще е готов. Става по-бавно, защото имам и други странични задачи. И моя релииз е със съвсем различна логика. Това, което мога за кажа е, че за запис се използва функциите за работа със файлове fopen, fget, fprintf() и т.н за да запишеш в users.ini, а времето можеш да го запишеш в nvault. И да си направиш едно мислещо entity, което да проверяваш дали е дошло времето за изтриване и да му махаш флаговетеJustInCase написа:hackera457 написа:За да се премахват админите автоматично, трява да се слага време, когато да изтичат правата. Другия вариант е да се запазват в users.ini и да си ги триеш ръчно
Ще чакаме release-а на твоята версия тогава . Наистина не знам как да го направя да се записват в user.ini Единствения начин за който се сетих е този с NVault-a.
Моите плъгини
Код за потвърждение: Избери целия код
#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"){
}
Re: Заявка за "Become an Admin"
Тази тема е решение на моята. Благодаря на участвалите! Специални благодарности на hackera457 !
viewtopic.php?f=21&p=3634&sid=136fe8a34 ... e338#p3634
viewtopic.php?f=21&p=3634&sid=136fe8a34 ... e338#p3634
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 1 Отговори
- 851 Преглеждания
-
Последно мнение от Midnight1337
-
- 2 Отговори
- 1394 Преглеждания
-
Последно мнение от Fatall
-
- 13 Отговори
- 3516 Преглеждания
-
Последно мнение от K!lLAlL
-
- 0 Отговори
- 1154 Преглеждания
-
Последно мнение от Fatall
-
- 0 Отговори
- 1064 Преглеждания
-
Последно мнение от Fatall
-
- 8 Отговори
- 2958 Преглеждания
-
Последно мнение от OciXCrom
-
- 4 Отговори
- 1685 Преглеждания
-
Последно мнение от AfterLife
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 22 госта