←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Operacje na plikach

Zablokowany

  • +
  • -
Pittero - zdjęcie Pittero 10.10.2010

Witajcie, potrzebuje przykaldu pluginu ktory bedzie zapisywal STEAM ID gracza w pliku steamid.ini jesli gracz wpisze na say /zapisz
A i potrzebny tez mi przyklad wczytania tego np ktos wpisze /delete to pokaze mu "Twoj Steam id jest zapisany" lub nie jest jesli nie ma tego steam id w pliku.
Odpowiedz

  • +
  • -
Knopers - zdjęcie Knopers 10.10.2010

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

new const FileName[] = "steams.ini";
new FileDir[55];
public plugin_init()
{
register_plugin("FileChecker", "0.X", "Knopers");
register_concmd("say /zapisz","fnAddToFile");
register_concmd("say /delete","fnSearchInFile");

new ConfigDir[40];
get_configsdir(ConfigDir, 39);
formatex(FileDir, 54, "%s/%s", ConfigDir, FileName);
}
public fnSearchInFile(id)
{
new SID[64];
get_user_authid(id, SID, 63);
if(is_in_file(SID))
client_print(id, print_chat, "Twoje SteamID jest w pliku");
else
client_print(id, print_chat, "Twojego SteamID nie ma w pliku");
}
public fnAddToFile(id,level,cid)
{
new SID[64];
get_user_authid(id, SID, 63);
if(is_in_file(SID))
{
client_print(id, print_console, "Twoj SteamID jest juz w pliku!");
return PLUGIN_HANDLED;
}
write_file(FileDir, SID);
client_print(id, print_console, "SteamID Dodany !");
return PLUGIN_HANDLED;
}
is_in_file(SID[])
{
new sid[35], len;
for(new i = 0; read_file(FileDir, i, sid, 34, len); i++)
{
if(sid[0] == ';')
continue;
if(equal(SID, sid))
return true;
}
return false;
}
Odpowiedz

  • +
  • -
Pittero - zdjęcie Pittero 10.10.2010

Knopers, dzięki bardzo mialbym jeszcze prosbe czy moglbys zrobic usuwanie SID swojego po wpisaniu /usun i zeby te sid zapisywaly sie w formacie
sid1;
sid2;
dzięki bardzo :)
A co oznacza
if(sid[0] == ';')
continue;
Użytkownik Pittero edytował ten post 10.10.2010 15:13
Odpowiedz

  • +
  • -
grankee - zdjęcie grankee 11.10.2010

1. Nie widzę tu potrzeby includowania hamsandwich
2. Do czego to ma służyć? Bardziej optymalny byłby zapis np. nvault, ale pod warunkiem, że nie potrzebujesz tego czytać z pliku (czytać w sensie otworzyć plik i sprawdzić zawartość SIDów, a nie w sensie odczytu przez serwer)
Odpowiedz

  • +
  • -
Pittero - zdjęcie Pittero 11.10.2010

Potrzebuje tego przykladu do banowania/zakazywania graczom wejscia do TT.
Chodzi mi o zapis, usuniecie, sprawdzenie/wywolanie sid czy gdzies jest zapisane.
Menu dodam itd ale tej operacji na plikach nie rozumiem.
Odpowiedz

  • +
  • -
Knopers - zdjęcie Knopers 11.10.2010

To zrób na nvaulcie a co do ham grankee to zostało z innego mojego pluginu który miał prawie identyczny kod do tego :P
nvault
http://www.amxmodx.o...hp?go=inc&id=41
Odpowiedz

  • +
  • -
Pittero - zdjęcie Pittero 11.10.2010

A usuwanie z nvalut ?
Odpowiedz

  • +
  • -
Pittero - zdjęcie Pittero 12.10.2010

Napisze ktos przyklad na nvalut:P?

Dodano 12 październik 2010 - 12:22:
Napisze ktos przyklad na nvalut:P?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 12.10.2010


public wczytaj(id){

	new key[64],data[128]

	get_user_name(id,key,63);

	nvault_get(nvault,key,data,127);

	new fragi[64],dedy[64];

	replace_all(data, 127, "#", " ");

	parse(data,fragi,64,dedy,63);

}



public zapisz(id){

	new key[64],data[128]

	get_user_name(id,key,63);

	format(data,charsmax(data),"%i#%i",get_user_frags(id),get_user_deaths(id));

	nvault_set(nvault,key,data)

}
z jednego pluga
Odpowiedz

  • +
  • -
Pittero - zdjęcie Pittero 12.10.2010

DarkGL, a usuwanie?
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 12.10.2010

#include <amxmodx>
#include <amxmisc>
#include <nvault>

new nvault;
public plugin_init()
{
	register_plugin("FileChecker", "0.X", "Knopers");
	register_concmd("say /zapisz","fnAddToFile");
	register_concmd("say /delete","fnSearchInFile");
	register_clcmd("say /usun","fnUsun")
	nvault = nvault_open("steams")
}
public fnSearchInFile(id)
{
	new SID[64];
	get_user_authid(id, SID, 63)
	new string[64]
	nvault_get(nvault,SID,string)
	if(equal(string,SID))
		client_print(id, print_chat, "Twoje SteamID jest w pliku");
	else
		client_print(id, print_chat, "Twojego SteamID nie ma w pliku");
}
public fnAddToFile(id,level,cid)
{
	new SID[64];
	get_user_authid(id, SID, 63);
	new string[64]
	nvault_get(nvault,SID,string)
	if(equal(string,SID))
	{
		client_print(id, print_console, "Twoj SteamID jest juz w pliku!");
		return PLUGIN_HANDLED;
	}
	nvault_set(nvault,SID,SID);
	client_print(id, print_console, "SteamID Dodany !");
	return PLUGIN_HANDLED;
}
public usun(id){
	new SID[64];
	get_user_authid(id, SID, 63);
	nvault_remove(nvault,SID);
}
coś mi się wydaje że lepiej to można napisać
Odpowiedz

  • +
  • -
kyku - zdjęcie kyku 12.10.2010

ustaw fragi na 0 i zapisz..
Odpowiedz

  • +
  • -
Pittero - zdjęcie Pittero 13.10.2010

coś mi się wydaje że lepiej to można napisać

Co masz na mysli ??
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 13.10.2010

po prostu mam takie odczucie i coś mi mówi tak w głowie tylko nie wiem jak :F
kyku co się stanie bo jak coś złego to update pluga musze zrobić :F
Odpowiedz
Zablokowany