Wysłany: 2013-07-06, 14:00
Combacior
Wiek: 29 Na forum: 5796 dni Posty: 1516
Piwa : 2161
Wystarczy zmieni? nazw? pliku gracza na nowy nick, tutaj funkcyjka
Kod: stock frename(const oldname[], const newname[], bool:delold = true)
{
new File:x = fopen(oldname, io_read);
if(!x)
return false;
new File:x2 = fopen(newname, io_write);
if(!x2)
{
fclose(x);
return false;
}
new data[256], len = fblockread(x, data);
while(len)
{
fblockwrite(x2, data, len);
len = fblockread(x, data);
}
fclose(x);
fclose(x2);
if(delold)
fremove(oldname);
return true;
}
Do komendy na zmian? nicku dodaj taki kod - nietestowane
Kod: new oldfile[64], newfile[64];
format(oldfile, 64, "tutajsciezkadoplikugracza - do starego pliku");
format(newfile, 64, "sciezka do nowego pliku gracza");
frename(oldfile, newfile, true);
Ostatni argument w funkcji frename oznacza, czy ma usun?? stary plik - true: tak, false: nie
Wysłany: 2013-07-06, 14:30
akon823
Czekotubka :D
Wiek: 29 Na forum: 4816 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Okej dzi?ki nie ma error?w ale je?li ja mam ?cie?ke do pliku zapisan? jako nick gracza?:D To jak to teraz zamieni? bo jak da?em Kod:
to nic si? nie dzieje mo?e trzeba jako? inaczej tu przyk?adowe u?ycie
Kod: new Gracz1 [64];
new Gname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Gname,sizeof(Gname));
format(Gracz1,sizeof(Gracz1),"/Gracze/%s.txt",Gname);
dini_Create(Gracz1);
dini_Set(Gracz1,"Haslo",key);
dini_IntSet(Gracz1,"Kasa",30000);
dini_IntSet(Gracz1,"Punkty",2000);
dini_IntSet(Gracz1,"RangaAdmina",0);
dini_IntSet(Gracz1,"Dostarczenia",0);
dini_IntSet(Gracz1,"osiag1", 0);
dini_IntSet(Gracz1,"osiag2", 0);
dini_IntSet(Gracz1,"osiag3", 0);
dini_IntSet(Gracz1,"osiag4", 0);
dini_IntSet(Gracz1,"osiag4", 0);
Pomo?e kto? ?:D a kod w cmd dalem tak
Kod: CMD:nick(playerid, params[])
{
if (!params[0]) return SendClientMessage(playerid, -1, "Nie wpisa?e?(a?) pseudonimu...");
if (!(3 <= strlen (params) < MAX_PLAYER_NAME)) return SendClientMessage(playerid, -1, "Za kr?tki lub za d?ugi pseudonim...");
new bool:change = false;
for(new i = 0; i <= strlen(params); i++)
{
switch(params[i])
{
case 'a'..'z', 'A'..'Z', '0'..'9', '.', '=', '$', '[', ']', '(', ')', '@', '_': continue;
default:
{
change = false;
break;
}
}
}
if(!change)
{
new string[90];
format(string, sizeof(string), "Zmieniasz nick na %s", params);
SendClientMessage(playerid, -1, string);
SetPlayerName(playerid, params);
new oldfile[64], newfile[64];
format(oldfile, 64, "/Gracze/%s.txt");
format(newfile, 64, "/Gracze/%s.txt");
frename(oldfile, newfile, true);
}
else return SendClientMessage(playerid, -1, #Pseudonim nie m?g? zosta? zmieniony poniewa? zawiera? niedozwolone znaki!);
return 1;
}
stock frename(const oldname[], const newname[], bool:delold = true)
{
new File:x = fopen(oldname, io_read);
if(!x)
return false;
new File:x2 = fopen(newname, io_write);
if(!x2)
{
fclose(x);
return false;
}
new data[256], len = fblockread(x, data);
while(len)
{
fblockwrite(x2, data, len);
len = fblockread(x, data);
}
fclose(x);
fclose(x2);
if(delold)
fremove(oldname);
return true;
}
Wysłany: 2013-07-06, 14:43
Tey
Wiek: 31 Na forum: 4876 dni Posty: 155
Nick w MP: l0nger
Piwa : 280
?ap:
Kod:
CMD:nick(playerid, params[])
{
if (isnull(params)) return SendClientMessage(playerid, -1, "Nie wpisa?e?(a?) pseudonimu...");
if (!(3 <= strlen (params) < MAX_PLAYER_NAME)) return SendClientMessage(playerid, -1, "Za kr?tki lub za d?ugi pseudonim...");
new bool:change = false;
for(new i = strlen(params)-1; i>=0 i--)
{
switch(params[i])
{
case 'a'..'z', 'A'..'Z', '0'..'9', '.', '=', '$', '[', ']', '(', ')', '@', '_': continue;
default:
{
// jezeli ciag znakow ma inne znaki niz te wyzej wymienione
change = true;
break;
}
}
}
if(!change)
{
new
buffer[2][MAX_PLAYER_NAME+32], nick[24];
GetPlayerName(playerid, nick, 24); // pobieramy stary nick
if(SetPlayerName(playerid, params))
{
format(buffer[0], sizeof(buffer[0]), "Zmieniasz nick na %s", params);
SendClientMessage(playerid, -1, buffer[0]);
format(buffer[0], 64, "/Gracze/%s.txt", nick);
format(buffer[1], 64, "/Gracze/%s.txt", params);
frename(buffer[0], buffer[1], true);
}
}
else return SendClientMessage(playerid, -1, #Pseudonim nie m?g? zosta? zmieniony poniewa? zawiera? niedozwolone znaki!);
return 1;
}
Wysłany: 2013-07-06, 15:01
akon823
Czekotubka :D
Wiek: 29 Na forum: 4816 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Tey , Error?w za du?o
Kod: C:\Users\Remik\Desktop\Serwery\realserver\gamemodes\MapTruck.pwn(5612) : error 001: expected token: ";", but found "-identifier-"
C:\Users\Remik\Desktop\Serwery\realserver\gamemodes\MapTruck.pwn(5634) : error 001: expected token: "]", but found "-integer value-"
C:\Users\Remik\Desktop\Serwery\realserver\gamemodes\MapTruck.pwn(5634) : warning 215: expression has no effect
C:\Users\Remik\Desktop\Serwery\realserver\gamemodes\MapTruck.pwn(5634) : error 001: expected token: ";", but found "]"
C:\Users\Remik\Desktop\Serwery\realserver\gamemodes\MapTruck.pwn(5634) : error 029: invalid expression, assumed zero
C:\Users\Remik\Desktop\Serwery\realserver\gamemodes\MapTruck.pwn(5634) : fatal error 107: too many error messages on one line
linijki
5634
Kod: format(buffer[0], sizeof(buffer[0]), "Zmieniasz nick na %s", params);
5612
Kod: for(new i = strlen(params)-1; i>=0 i--)
Wysłany: 2013-07-06, 15:12
Tey
Wiek: 31 Na forum: 4876 dni Posty: 155
Nick w MP: l0nger
Piwa : 280
Hm, zapomnialem widocznie srednika, lap:
Kod:
CMD:nick(playerid, params[])
{
if (isnull(params)) return SendClientMessage(playerid, -1, "Nie wpisa?e?(a?) pseudonimu...");
if (!(3 <= strlen (params) < MAX_PLAYER_NAME)) return SendClientMessage(playerid, -1, "Za kr?tki lub za d?ugi pseudonim...");
new bool:change = false;
for(new i = strlen(params)-1; i>=0; i--)
{
switch(params[i])
{
case 'a'..'z', 'A'..'Z', '0'..'9', '.', '=', '$', '[', ']', '(', ')', '@', '_': continue;
default:
{
// jezeli ciag znakow ma inne znaki niz te wyzej wymienione
change = true;
break;
}
}
}
if(!change)
{
new
buffer[64], buffertemp[64], nick[24];
GetPlayerName(playerid, nick, 24); // pobieramy stary nick
if(SetPlayerName(playerid, params))
{
format(buffer, sizeof(buffer), "Zmieniasz nick na %s", params);
SendClientMessage(playerid, -1, buffer);
format(buffer, 64, "/Gracze/%s.txt", nick);
format(buffertemp, 64, "/Gracze/%s.txt", params);
frename(buffer, buffertemp, true);
}
}
else return SendClientMessage(playerid, -1, #Pseudonim nie m?g? zosta? zmieniony poniewa? zawiera? niedozwolone znaki!);
return 1;
}
Wysłany: 2013-07-06, 15:18
akon823
Czekotubka :D
Wiek: 29 Na forum: 4816 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Spoko dzi?ki dzia?a lecz to jest bez sensu bo powiedzmy ze mam nick Golas i jak wchodz? zmieniam na Ubrany wyjde i wejde to zn?w mam Golas i nowe konto musze tworzy? :> Ale browar za ch?ci
Wysłany: 2013-07-06, 21:45
Tey
Wiek: 31 Na forum: 4876 dni Posty: 155
Nick w MP: l0nger
Piwa : 280
Bo w kliencie SA-MP-a musisz zmienia? nick - w miejscu do tego przeznaczonym chyba wiesz o co chodzi.
Niestety, w SA-MP-ie tak jest i nic nie zrobisz.
SetPlayerName zmienia tylko nick gracza w ingame, wiec nie ingeruje w glowna zakladke klienta (mowa o tym panelu wyboru serwera)
Wysłany: 2013-07-06, 22:20
akon823
Czekotubka :D
Wiek: 29 Na forum: 4816 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Wiem w?a?nie i jest to lipne
Tagi: cb-radio :: inne
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: