Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Pytanie dotyczące pluginu /kontoTak jak w tytule.


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 bolekx34

    Profesjonalista

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:161
  • GG:
  • Imię:HLDK
Offline

Napisano 09.01.2019 19:22

Czy da radę zrobić tak, że jak gracz już się zarejestruje w grze to nie bd musiał wpisywać haseł co mapę na początku rundy? Tylko jak wpiszę to raz. 

 

 

 

/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <ColorChat>
 
#define PREFIX "Nick Reservation System"
#define VERSION "v1.01"
 
// Ponizej mozesz ustawic wymagana flage dostepu do usuwania wszystkich hasel
// Domyslnie jest to flaga A, czyli "ADMIN_IMMUNITY"
#define ADMIN_FLAG ADMIN_IMMUNITY
 
 
// Tutaj zmieniamy flage do banowania. Oczywiscie standardowo "ADMIN_BAN"
#define ADMIN_BAN_FLAG ADMIN_BAN
 
 
//Tutaj podajesz adres swojego forum
#define FORUM "amxx.pl"
 
//=============================================================
 
new stale_haslo[33][51];
new ma_haslo[33];
new bool:wpisal[33];
 
new g_vault;
enum (*= 500)
{
TASK_MENU = 500,
TASK_MENU2,
TASK_KICK,
TASK_BAN
};
 
new haslo_gracza[33][51];
 
public plugin_init() 
{
register_plugin("N.R.S", VERSION, "Grzyboo");
 
register_clcmd("say /konto", "MenuGlowne")
register_clcmd("StworzHaslo", "ZalozHaslo", -1);
register_clcmd("Sprawdz", "SprawdzHaslo", -1);
 
register_concmd("ban_account", "AdminBanCmd", ADMIN_BAN_FLAG, "<nick> <haslo>");
 
register_menucmd(register_menuid("MenuStworz"), 1023, "Handle_MenuStworz");
register_menucmd(register_menuid("MenuWpisz"), 1023, "Handle_MenuWpisz");
register_menucmd(register_menuid("MenuGlowne"), 1023, "Handle_GlowneMenu");
register_menucmd(register_menuid("Choose"), 1023, "Handle_Choose");
 
g_vault = nvault_open("HaslaGraczy"); //Nie Zmieniaj, aby dzialalo usuwanie wszystkich hasel
}
 
public plugin_precache()
{
precache_sound("konto/boing.wav");
}
 
public MenuGlowne(id)
{
new gMenu[1028], len, keys;
 
new col1[3], col2[3], col3[3], col4[3];
 
col1 = ma_haslo[id] ? "\d" : "\r";
col2 = ma_haslo[id] ? "\r" : "\d";
 
col3 = ma_haslo[id] ? "\d" : "\w";
col4 = ma_haslo[id] ? "\w" : "\d";
 
len = format(gMenu[len], (sizeof gMenu - 1) - len, "[%s] \yMenu Glowne", PREFIX);
 
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n%s1. %sZaloz nowe konto na ten nick", col1, col3);
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n%s2. %sUsun Konto", col2, col4);
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n\r3. \wO kontach");
 
if(get_user_flags(id) & ADMIN_BAN_FLAG)
{
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n^n\rAdmin Menu:^n");
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n\r5.\yZbanuj Konto");
}
if(get_user_flags(id) & ADMIN_FLAG)
{
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n\r6.\yUsun Wszystkie Hasla");
}
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n^n\r0. \wWyjdz");
 
keys = (1<<0) | (1<<1) | (1<<2) | (1<<4) | (1<<5) | (1<<9);
 
show_menu(id, keys, gMenu, -1, "MenuGlowne");
}
public Handle_GlowneMenu(id, keys)
{
switch(keys+1)
{
case 1:
{
if(!ma_haslo[id])
{
client_cmd(id, "messagemode StworzHaslo");
client_cmd(id, "spk konto/boing.wav");
ColorChat(id, GREEN, "[%s] Teraz wpisz haslo dla siebie", PREFIX);
}
else ColorChat(id, GREEN, "[%s] Juz istnieje konto dla tego nicku!", PREFIX)
}
case 2: Choose(id);
 
case 3:
{
ColorChat(id, GREEN, "[%s %s stworzony przez Grzyboo]", PREFIX, VERSION);
ColorChat(id, GREEN, "Mozesz tu stworzyc haslo na swoj nick");
ColorChat(id, GREEN, "Wpisywanie hasla odbywa sie podczas gry, nie w konsoli!");
}
 
case 5:
{
if(get_user_flags(id) & ADMIN_BAN_FLAG)
show_motd(id, "banowanie.txt")
}
case 6:
{
if(get_user_flags(id) & ADMIN_FLAG)
{
delete_file("addons/amxmodx/data/vault/HaslaGraczy.vault")
delete_file("addons/amxmodx/data/vault/HaslaGraczy.journal")
ColorChat(id, GREEN, "[%s] Usunieto plik", PREFIX);
}
}
 
}
}
 
public Choose(id)
{
new gMenu[1028], len, keys;
 
len = format(gMenu[len], (sizeof gMenu - 1) - len, "\y[%s] \rCzy na pewno chcesz usunac konto?^n^n", PREFIX);
 
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n\r1. \yTak");
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n\r2. \wNie");
 
keys = (1<<0) | (1<<1);
 
show_menu(id, keys, gMenu, -1, "Choose");
}
public Handle_Choose(id, keys)
{
switch(keys+1)
{
case 1:
{
if(ma_haslo[id] && wpisal[id])
{
ma_haslo[id] = 0;
stale_haslo[id] = "";
ColorChat(id, GREEN, "[%s] Usuniete!", PREFIX)
}
 
else ColorChat(id, GREEN, "[%s] Musisz miec haslo i je wpisac najpierw!", PREFIX)
}
case 2: MenuGlowne(id);
}
}
 
public Wpisz(id)
{
client_cmd(id, "messagemode StworzHaslo");
ColorChat(id, GREEN, "[%s] Teraz wpisz haslo dla siebie", PREFIX)
}
 
public client_putinserver(id)
{
Wczytaj(id);
set_task(5.0, "TaskSpytaj", id + TASK_MENU);
wpisal[id] = false;
}
 
public client_disconnect(id)
{
Zapisz(id);
ma_haslo[id] = 0;
stale_haslo[id] = "";
wpisal[id] = false;
 
if(task_exists(id + TASK_KICK))
{
remove_task( id + TASK_KICK );
}
}
public ZalozHaslo(id)
{
static arg[51];
read_argv(1, arg, 50);
 
if ( !strlen(arg) )
{
client_print(id, print_chat, "Nie moze zostac puste! Wpisz jakas wartosc");
client_cmd(id, "messagemode StworzHaslo");
return PLUGIN_HANDLED;
}
 
format(haslo_gracza[id], 50, "%s", arg);
 
PokazMenuStworz(id);
 
return PLUGIN_HANDLED;
}
 
public PokazMenuStworz(id)
{
new gMenu[512], len, keys;
 
len = format(gMenu[len], (sizeof gMenu - 1) - len, "[%s] \yCzy chcesz zalozyc haslo dla nicku %s?", PREFIX, nazwa_gracza(id));
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n\rTej operacji nie da sie cofnac jesli zapomnisz hasla");
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n\wJezeli zaakceptujesz, to Twoje haslo bedzie: \y%s", haslo_gracza[id]);
 
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n^n^n\r8. \y Zaakceptuj to haslo");
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n\r9. \y Odrzuc haslo");
 
keys = (1<<7) | (1<<8);
 
show_menu(id, keys, gMenu, -1, "MenuStworz");
}
 
public Handle_MenuStworz(id, keys)
{
switch(keys+1)
{
case 8:
{
stale_haslo[id] = haslo_gracza[id];
ma_haslo[id] = 1;
wpisal[id] = true;
Zapisz(id);
ColorChat(id, GREEN, "^x01[%s] ^x04Twoje Haslo to ^x03%s", PREFIX, stale_haslo[id])
ColorChat(id, GREEN, "^x01[%s] ^x04Twoje Haslo to ^x03%s", PREFIX, stale_haslo[id])
ColorChat(id, GREEN, "^x01[%s] ^x04Twoje Haslo to ^x03%s", PREFIX, stale_haslo[id])
ColorChat(id, GREEN, "^x01[%s] ^x04Zapisz je, by nie zapomniec", PREFIX)
}
}
}
 
public TaskSpytaj(id)
{
id -= TASK_MENU;
 
if(ma_haslo[id]){
PokazMenuWpisz(id);
}
else{
MenuGlowne(id);
//ColorChat(id, GREEN, "^x01[%s] ^x04%s wpisz ^x03/konto^x04, aby utworzyc haslo na nick", PREFIX, nazwa_gracza(id));
}
 
set_task(10.0, "TaskSpytaj2", id + TASK_MENU2);
set_task(20.0, "KickPlayer", id + TASK_KICK);
}
 
public TaskSpytaj2(id) // Czasem za pozno wejdziemy i chowa nam sie
{ // mozliwosc wpisania hasla, dlatego jest ta funkcja...
id -= TASK_MENU2;
 
if(ma_haslo[id] && !wpisal[id])
PokazMenuWpisz(id);
}
 
public KickPlayer(id)
{
id -= TASK_KICK;
 
if(ma_haslo[id])
{
if(!wpisal[id])
{
console_cmd(id, "disconnect");
client_print(id, print_console, "||===========================================||");
client_print(id, print_console, "||[%s] Nie wpisales hasla i dostales kicka", PREFIX);
client_print(id, print_console, "||[%s] Przypomnij sobie haslo i wpisz je", PREFIX);
client_print(id, print_console, "||===========================================||");
}
}
}
 
public PokazMenuWpisz(id)
{
new gMenu[512], len, keys;
 
len = format(gMenu[len], (sizeof gMenu - 1) - len, "[%s]^n\yWpisz haslo dla nicku %s", PREFIX, nazwa_gracza(id));
 
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n^n\r1. \yWpisz haslo");
len += format(gMenu[len], (sizeof gMenu - 1) - len, "^n\r2. \wNie znam hasla");
 
keys = (1<<0) | (1<<1);
 
show_menu(id, keys, gMenu, -1, "MenuWpisz");
}
 
public Handle_MenuWpisz(id, keys)
{
switch(keys+1)
{
case 1: 
{
CmdSprawdzHaslo(id);
}
case 2:
{
set_task(5.0, "KickPlayer", id + TASK_KICK);
}
}
}
public CmdSprawdzHaslo(id)
{
client_cmd(id, "messagemode Sprawdz");
client_cmd(id, "spk konto/boing.wav");
ColorChat(id, GREEN, "[%s] Wpisz Swoje haslo", PREFIX);
}
 
public SprawdzHaslo(id)
{
static arg[51];
read_argv(1, arg, 50);
 
if ( !strlen(arg) )
{
client_print(id, print_chat, "Nie moze zostac puste! Wpisz jakas wartosc");
client_cmd(id, "messagemode Sprawdz");
return PLUGIN_HANDLED;
}
 
if(equal(stale_haslo[id], arg))
{
wpisal[id] = true;
ColorChat(id, GREEN, "[%s] Wpisales dobre haslo", PREFIX)
}
else
{
client_print(id, print_chat, "Wpisales zle haslo, sprobuj jeszcze raz!");
client_cmd(id, "messagemode Sprawdz");
}
 
return PLUGIN_HANDLED;
}
 
public Zapisz(id)
{
new vaultkey[64], vaultdata[256];
 
format(vaultkey,63,"%s-haslo", nazwa_gracza(id));
format(vaultdata,255,"%s#%d", stale_haslo[id], ma_haslo[id]);
nvault_set(g_vault, vaultkey, vaultdata);
return PLUGIN_CONTINUE;
}
 
public Wczytaj(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-haslo", nazwa_gracza(id));
format(vaultdata,255,"%s#%d#", stale_haslo[id], ma_haslo[id]);
nvault_get(g_vault, vaultkey, vaultdata, 255);
 
replace_all(vaultdata, 255, "#", " ");
 
new haslo[51], ma[5];
 
parse(vaultdata, haslo, 50, ma, 4);
 
ma_haslo[id] = str_to_num(ma);
format(stale_haslo[id], 50, "%s", haslo)
 
return PLUGIN_CONTINUE;
}
 
 
stock nazwa_gracza(id)
{
new name[35];
get_user_name(id, name, 34);
 
return name;
}
 
public AdminBanCmd(id, level, cid)
{
if( !cmd_access(id, level, cid, 3) ) return PLUGIN_HANDLED;
static arg[35], arg2[51];
read_argv(1, arg, sizeof(arg) - 1);
 
new target = cmd_target(id, arg, CMDTARGET_NO_BOTS);
if( !target ) return PLUGIN_HANDLED;
 
read_argv(2, arg2, sizeof(arg2) - 1);
 
format(stale_haslo[target], 50, "%s", arg2);
ma_haslo[target] = 1;
Zapisz(target);
 
set_task(5.0, "TaskBanPlayer", target + TASK_BAN);
 
set_hudmessage(0, 255, 0, 0.1, 0.29, 0, 6.0, 12.0)
show_hudmessage(0, "Gracz %s zostal zbanowany^nAdmin: %s^nCzas: Permanentnie^nBana mozesz wyjasnic na: %s", nazwa_gracza(target), nazwa_gracza(id), FORUM)
 
log_amx("%s zbanowal %s na konto. Haslo to [%s]", nazwa_gracza(id), nazwa_gracza(target), arg);
return PLUGIN_HANDLED;
}
 
public TaskBanPlayer(id)
{
id -= TASK_BAN;
 
console_cmd(id, "disconnect");
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
 

  • +
  • -
  • 0

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 09.01.2019 22:19

Wstaw kod jako załącznik


  • +
  • -
  • 0

#3 faken

    Profesjonalista

  • Użytkownik

Reputacja: 35
Życzliwy

  • Postów:192
  • Lokalizacja:Warszawa
Offline

Napisano 10.01.2019 09:26

Plugin jest zbugowany, każdy może wejść na konto jakie chce np. konto jest założone na nick bolekx34, ustawiasz sobie nick Bolekx34 (większa literka) i mozesz zmienic haslo bez podawania po wejsciu na serwer.


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych