Witam serdecznie, otóż pobrałem plugin który tworzy hasła dla graczy i zapisuje je w users.ini, nie było by z tym kłopotu gdyby on nie zapisywałby ich w postaci ciągłej tzn. jeden użytkownik i od razu drugi itd itd. Chodzi mi o to aby każdy kolejny użytkownik swoje hasło miał zapisywane w nowej linijce w users.ini, gdyż czasami kumulacja haseł w jednej linijce powoduje crash .
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <colorchat>
#define PLUGIN "Simple Account Maker"
#define VERSION "1.0"
#define AUTHOR "G[o]Q"
#define Keys (1<<0)|(1<<1)
#define Keysheadmenu (1<<0)|(1<<1)|(1<<2)|(1<<4)|(1<<9)
#define Keysadmin (1<<0)|(1<<1)|(1<<2)|(1<<9) // Keys: 1230
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_menucmd(register_menuid("admin"), Keysadmin, "Pressedadmin")
register_menucmd(register_menuid("headmenu"), Keysheadmenu, "Pressedheadmenu")
register_menucmd(register_menuid("delete"), Keys, "Presseddelete")
register_menucmd(register_menuid("edit"), Keys, "Pressededit")
register_concmd("haslo","rejestruj",-1," ");
register_concmd("usun","usun_one",ADMIN_IMMUNITY," ");
register_clcmd("say /konto","Showheadmenu")
set_task(300.0,"pokaz",0,_,_,"b")
}
public rejestruj(id,level,cid){
new haslo[32];
read_argv(1, haslo, 31);
if (sprawdz(id)) istnieje(id)
else create(id,haslo)
return PLUGIN_HANDLED
}
public mesmode(id){
if (!sprawdz(id))
console_cmd(id,"messagemode haslo")
else ColorChat(id, TEAM_COLOR,"[SAM]^x04 Konto dla tego nicku juz istnieje !!!")
return PLUGIN_HANDLED;
}
public sprawdz(id){
new name[32];
new linijka=0,text[128],chars
static configdir[64],plik[128]
new nick[32]
get_user_name(id,name,31)
get_configsdir(configdir,63)
formatex(plik,127,"%s/users.ini",configdir)
do{
linijka = read_file(plik,linijka,text,127,chars)
if((text[0]==';') || !chars) continue
parse(text, nick,31)
if (equali(name,nick)) return 1
}
while(linijka!=0)
return 0
}
public istnieje(id){
ColorChat(id, TEAM_COLOR,"[SAM]^x04 Konto dla tego nicku juz istnieje !!!")
return PLUGIN_HANDLED
}
public usun(id){
new name[32],text[128],chars ,nick[32]
new linijka=0
static configdir[64],plik[128]
get_user_name(id,name,31)
get_configsdir(configdir,63)
formatex(plik,127,"%s/users.ini",configdir)
do{
linijka = read_file(plik,linijka,text,127,chars)
if((text[0]==';') || !chars) continue
parse(text, nick,31)
if (equali(name,nick)) break
}
while(linijka!=0)
write_file(plik,"",linijka-1)
return PLUGIN_CONTINUE
}
public create(id,pass[32]){
new wpis[128]
new nick[32];
static configdir[64],plik[128]
get_user_name(id,nick,31)
if (equal(pass,"")) return PLUGIN_HANDLED
format(wpis,127,"^"%s^" ^"%s^" ^"z^" ^"a^"",nick,pass)
get_configsdir(configdir,63)
formatex(plik,127,"%s/users.ini",configdir)
write_file(plik,wpis,-1)
ColorChat(id, GREEN,"[SAM]^x03 HASLO ZOSTALO ZAPISANE")
ColorChat(id, GREEN,"[SAM]^x01 HASLO:^x04 %s",pass)
ColorChat(id, GREEN,"[SAM]^x01 Aby wejsc na server wpisz w consoli:^x03 setinfo _pw ^"^x04%s^x03^"",pass)
client_print(id,print_console,"~*~ HASLO ZOSTALO ZAPISANE")
client_print(id,print_console,"~*~ HASLO :%s",pass)
client_print(id,print_console,"~*~ Aby wejsc na server wpisz w consoli: setinfo _pw ^"%s^"",pass)
return PLUGIN_CONTINUE
}
public edytuj(id){
usun(id)
mesmode(id)
}
public pokaz(){
ColorChat(0, TEAM_COLOR,"[SAM]^x04 Nie chcesz aby ktos gral na twoim nicku? zaloz konto wpisujac: ^x03 /konto")
}
public Showdelete(id) {
if (!sprawdz(id)){
ColorChat(id, TEAM_COLOR,"[SAM]^x04 Konto dla tego nicku nie istnieje !!!")
return PLUGIN_HANDLED
}
else show_menu(id, Keys, "\rCzy na pewno chcesz usunac ?^n\w1: \rTAK^n\w2: NIE^n", -1, "delete")
return PLUGIN_CONTINUE
}
public Presseddelete(id, key) {
if (key==0){
usun(id)
ColorChat(id, TEAM_COLOR,"[SAM]^x04 Rezerwacja zostala usunieta !!!")
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
public Showedit(id) {
if (!sprawdz(id)){
ColorChat(id,TEAM_COLOR,"[SAM]^x04 Konto dla tego nicku nie istnieje !!!")
return PLUGIN_HANDLED
}
else show_menu(id, Keys, "\rCzy na pewno chcesz zmienic haslo?^n\w1: \rTAK^n\w2: NIE^n", -1, "edit")
return PLUGIN_CONTINUE
}
public Pressededit(id, key) {
if (key==0){
edytuj(id)
ColorChat(id, TEAM_COLOR,"[SAM]^x04 Wpis zostal zaktualizowany !!!")
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}
public Showheadmenu(id) {
new name[32]
new menutext[256]
get_user_name(id,name,31)
new keyss=(get_user_flags(id)&ADMIN_IMMUNITY)?((1<<0)|(1<<1)|(1<<2)|(1<<4)|(1<<9)):((1<<0)|(1<<1)|(1<<2)|(1<<9))
format(menutext,255,"\rMenu \y(konto %s)\r:^n\y1: \w Dodaj rezerwacje^n\y2: \w Usun rezerwacje^n\y3: \w Edytuj rezerwacje^n^n%s5: \w Menu Admina^n^n^n^n\y0:\w Wyjscie",name,(get_user_flags(id)& ADMIN_IMMUNITY)?"\y":"\d" )
show_menu(id, keyss,menutext, -1, "headmenu")
}
public Pressedheadmenu(id, key) {
switch (key) {
case 0: { // 1
mesmode(id)
}
case 1: { // 2
Showdelete(id)
}
case 2: { // 3
Showedit(id)
}
case 4:{
Showadmin(id)
}
}
}
public usun_all(id){
new text[128],chars ,nick[32],haslo[32],flagi[32],flagi2[32]
new linijka=0
static configdir[64],plik[128]
get_configsdir(configdir,63)
formatex(plik,127,"%s/users.ini",configdir)
do{
linijka = read_file(plik,linijka,text,127,chars)
if((text[0]==';') || !chars) continue
parse(text, nick,31,haslo,31,flagi,31,flagi2,31)
if (equali(flagi,"z")) write_file(plik,"",linijka-1)
}
while(linijka!=0)
return PLUGIN_CONTINUE
}
public sprawdz2(name[]){
new linijka=0,text[128],chars
static configdir[64],plik[128]
new nick[32]
get_configsdir(configdir,63)
formatex(plik,127,"%s/users.ini",configdir)
do{
linijka = read_file(plik,linijka,text,127,chars)
if((text[0]==';') || !chars) continue
parse(text, nick,31)
if (equali(name,nick)) return 1
}
while(linijka!=0)
return 0
}
public usun_one(id,level,cid){
new name[32];
read_argv(1, name, 31);
if (!sprawdz2(name)){
ColorChat(id, TEAM_COLOR,"[SAM]^x04 Konto dla tego nicku nie istnieje !!!")
return PLUGIN_HANDLED
}
usun_1(id,name)
return PLUGIN_HANDLED
}
public mesdel(id){
console_cmd(id,"messagemode usun")
return PLUGIN_HANDLED;
}
public usun_1(id,name[32]){
new text[128],chars ,nick[32]
new linijka=0
static configdir[64],plik[128]
get_configsdir(configdir,63)
formatex(plik,127,"%s/users.ini",configdir)
do{
linijka = read_file(plik,linijka,text,127,chars)
if((text[0]==';') || !chars) continue
parse(text, nick,31)
if (equal(name,nick)){
write_file(plik,"",linijka-1)
break
}
}
while(linijka!=0)
ColorChat(id, TEAM_COLOR,"[SAM]^x04 Konto dla tego nicku zostalo usuniete !!!")
}
public poka_all(id){
new text[128],chars ,nick[32],haslo[32],flagi[32],flagi2[32],spis[1024]
new linijka=0
static configdir[64],plik[128]
get_configsdir(configdir,63)
format(plik,127,"%s/users.ini",configdir)
format(spis,1023,"<html><body background=^"http://amxx.pl/uploads/images/amxx.pl-1271592209-U6279.png^">")
format(spis,1023,"%s <center><table border=^"1^" style=^"margin: auto; border-style: solid; border-color: black; border-width: 1px; border-collapse: collapse^"><tbody><tr>",spis)
format(spis,1023,"%s <td width=^" 200^" style=^"background-color: blue; color: white; text-align: center^">Nick</td>",spis)
format(spis,1023,"%s <td width=^" 200^" style=^"background-color: blue; color: white; text-align: center^">Haslo</td>",spis)
format(spis,1023,"%s <td width=^" 200^" style=^"background-color: blue; color: white; text-align: center^">Flagi</td></tr>",spis)
do{
linijka = read_file(plik,linijka,text,127,chars)
if((text[0]==';') || !chars) continue
parse(text, nick,31,haslo,31,flagi,31,flagi2,31)
if (equal(flagi,"z")&&linijka!=0){
format(spis,1023,"%s <tr> <td style=^"color: white; text-align: center^">%s</td>",spis,nick)
format(spis,1023,"%s <td style=^"color: white; text-align: center^">%s</td><td style=^"color: white; text-align: center^">%s</td></tr>",spis,haslo,flagi)
}
}
while(linijka!=0)
format(spis,1023,"%s </tbody> </table></center></body><html>",spis)
show_motd(id,spis,"KONTA GRACZY")
return PLUGIN_CONTINUE
}
public Showadmin(id) {
show_menu(id, Keysadmin, "\rMenu admina:^n\y1: \wUsun wszystkie rezerwacje^n\y2: \wUsun jedna rezerwacje^n\y3: \wPokaz wszystkie rezerwacje^n\y^n^n^n^n0: W\wyjscie^n", -1, "admin") // Display menu
}
public Pressedadmin(id, key) {
switch (key) {
case 0: { // 1
usun_all(id)
}
case 1: { // 2
mesdel(id)
}
case 2: { // 3
poka_all(id)
}
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
Bardzo proszę o modyfikacje tego oto pluginu.
Dziękuje bardzo
FAT1M


Dodatki SourceMod












