Skocz do zawartości
Pawelkk

komenda /stats

Rekomendowane odpowiedzi

witam a wiec mam juz system zapisu do pliku gdzie w Gracze/Nick z gry mam rozne dane. 
Wyglada to tak:

 

//Tablice i Enumy
enum DaneGracza
{
	bool:Zalogowany,
	bool:Lowi,
	cammovcount,
	Panellvpd,
	Panelum,
	Panellvm,
	Panellvn,
	Paneltc,
	Frakcja,
	Virtual,
	Wiek,
	Miasto,
	Urzadid,
	Sklepid,
	Plec,
	wybralrybe,
	ZagSek,
	ZagMin,
	ZagGodz,
	ZagDni
}

oraz stocki na dole 


 

stock Register(playerid,haslo[])
{
	new string[500];
	new Gname[MAX_PLAYER_NAME];
	GetPlayerName(playerid, Gname, sizeof(Gname));
	format(string, sizeof(string), "/Gracze/%s.ini",Gname);
	dini_Create(string);
	//
	
	dini_Set(string, "Haslo",haslo);
	dini_IntSet(string, "Kasa", KASAGRACZASTART);
	dini_IntSet(string, "Miasto", 0);
stock WczytajGracza(playerid)
{
	new string[500];
	new Gname[MAX_PLAYER_NAME];
	GetPlayerName(playerid, Gname, sizeof(Gname));
	format(string, sizeof(string), "/Gracze/%s.ini",Gname);
	//
	
	ResetPlayerMoney(playerid);
	GivePlayerMoney(playerid, dini_Int(string, "Kasa"));
	SetPlayerScore(playerid, dini_Int(string, "Punkty"));
	Gracz[playerid][Miasto] = dini_Int(string, "Miasto");




Mam tez komende stats:
 

dcmd_stats(playerid,params[])
{
 
    SendClientMessage(playerid, COLOR_GREEN, "Twoje miasto to: Kasa na koncie: Frakcja:");
}





No i teraz problem, jak to ujac i napisac aby tam gdzie sie wpisuje tresc tekstu w sendclientmassage pokazywala sie wartosc z tych kodow co podalem wyzej???


chodzi o    SendClientMessage(playerid, COLOR_GREEN, "TUTAJ POKAZE SIE WIEK KTORY SIE ZAPISAL W STOCKU CZY TAM DANYCH GRACZA:");

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

format() ?

str[256];

format(str, ........)

SendClientMessage(playerid, COLOR_GREEN, str);  (???)

nie do końca zrozumiałem o co ci chodzi
 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Oto zeby po wpisaniu /stats na czacie pokazala sie wartosc np wieku - zapisana przy rejestracji.

Jesli mogl bys str i .... dokladniej napisac wedlug tych kodow co podalem. Nie zrozumiem inaczej.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
CMD:stats(playerid, params[])
{
     new string[124];
     format(string, sizeof(string), "Twój wiek to: %d", Gracz[playerid][Wiek]);
     SendClientMessage(playerid, -1, string);
     return 1;
}
Edytowane przez Nortal

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
new str[256];
format(str, sizeof(str), "Miasto: %s   Wiek: %s lat", Gracz[playerid][Miasto], Gracz[playerid][Wiek]);

SendClientMessage(playerid, COLOR_GREEN, str);

podałem ci jak to powinno wyglądać reszta sam rozkmiń

 

@up pierwszy byłeś xD

Edytowane przez SZajbuS

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dziekuje! Oto mi chodzilo!



emmmm a da się jeszcze jakoś zmienić tu wartości na wyrazy?  w sesie zeby zamiast 1 bylo napisane emzczyzna a zamiast 2 to kobieta.

i tak dalej i tak dalej

Edytowane przez Pawelkk

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Można zrobić na kilka sposobów.
Łatwiejszy to utworzenie nowego stringu i w zależności od warunku zapisać w nim odpowiedni ciąg znaków np.

new plecgracza[10];
if(Gracz[playerid][Plec] == 1)
{
format(plecgracza, sizeof(plecgracza), "Mężczyzna");
}
else if(Gracz[playerid][Plec] == 2)
{
format(plecgracza, sizeof(plecgracza), "Kobieta");
}

Drugi sposób to operator trójargumentowy dla mnie wydaje się on trudniejszy.

format(str, sizeof(str), "%s", (Gracz[playerid][Plec]) ? ("Mężczyzna") : ("Kobieta")
Edytowane przez Cliff32

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A ja ci pokaże takie coś:
 

#define STATS_KASA 0
#define STATS_PKT 1
#define STATS_MIASTO 2 //Dodawaj tak itp.

stock GetPlayerStats(playerid, stats)
{
    switch(stats)
    {
        case STATS_KASA: return GetPlayerMoney(playerid)
        case STATS_PKT: return GetPlayerScore(playerid);
        case STATS_MIASTO: return Gracz[playerid][Miasto];
        
    }
    return 1;
}

Teraz wystarczy użyć komendę:
 

CMD:stats(playerid, params[])
{
    new str[128], miasto[20];
    if(GetPlayerStats(playerid, STATS_MIASTO) == 1) { miasto="Los Santos"; }
    else if(GetPlayerStats(playerid, STATS_MIASTO) == 2) { miasto="Las Venturas"; }
    else if(GetPlayerStats(playerid, STATS_MIASTO) == 3) { miasto="San fierro"; } //Dodaj sobie jak chcesz ;D
    SendClientMessage(playerid, -1, "Twoje staty:");
    format(str, sizeof(str), ">>> Masz %d $", GetPlayerStats(playerid, STATS_KASA));
    SendClientMessage(playerid, -1, str);
    format(str, sizeof(str), ">>> Masz %d pkt", GetPlayerStats(playerid, STATS_PKT));
    SendClientMessage(playerid, -1, str);
    format(str, sizeof(str), ">>> Pochodzisz z %s", miasto);
    SendClientMessage(playerid, -1, str);
    return 1;
}
Edytowane przez Vortex

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×