Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2016-04-01, 21:12


Szymon9910911







Wiek: 25
Na forum: 4137 dni
Posty: 251
Nick w MP: Tetral [you]

Piwa: 9

Respekt: 70

Witam mam problem z funkcj? offline chce np da? range offline to to nie zmienia :/ tera kod
Kod:

if(dialogid == Id-dialogu)
{
if(response == 1)
{
if(IsNumeric(inputtext))
{
new zapis[42], id = strval(inputtext);
format(zapis, sizeof(zapis), KONTA, PlayerName(id));
dfile_Open(zapis);
dfile_WriteInt("Ranga", 5);
PlayerInfo[id][Ranga] = dfile_ReadInt("Ranga");
PlayerInfo[id][Ranga] = 5;
dfile_SaveFile();
dfile_CloseFile();
}
else if(inputtext)
{
new zapis[42], id = strval(inputtext);
format(zapis, sizeof(zapis), KONTA, PlayerName(id));
if(dfile_FileExists(zapis))
{
format(zapis, sizeof(zapis), KONTA, PlayerName(id));
dfile_Open(zapis);
dfile_WriteInt("Ranga", 5);
PlayerInfo[id][Ranga] = 5;
PlayerInfo[id][Ranga] = dfile_ReadInt("Ranga");
dfile_SaveFile();
dfile_CloseFile();
}
else SendClientMessage(playerid, 0xA50000FF, ">>>Dany nick nie istnieje.<<<");
}
}
}
no kod niby dzia?a ale offline chyba spierdzieli?em :/

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-02, 08:17


Iggy

#admin






Wiek: 26
Na forum: 4596 dni
Posty: 3469
Nick w MP: Iggy

Piwa: 1716

Respekt: 915
Respekt: 915Respekt: 915


   Administrator: Admin ma zawsze rację | REGULAMIN FORUM | REKLAMA/VIP | .
Szymon9910911, Ty chcesz do pliku zapisywa? jak gracz wyjdzie rang? "offline" czy jak? Bo szczerze m?wi?c to nie wiem do czego to potrzebne.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-02, 19:02


Szymon9910911







Wiek: 25
Na forum: 4137 dni
Posty: 251
Nick w MP: Tetral [you]

Piwa: 9

Respekt: 70

Ju? t?umacze. Po wpisaniu np /dajlidera wyskoczy dialog w kt?rym wyskoczy spis frakcji to klikasz frakcje kt?rej chcesz nada? lidra to wyskoczy potem dialog w kt?rym mam wpisa? id osoby kt?rej chce nada? lidera i je?li warunek zgadza si? z tym ?e jest takie id to ma zadzia?a? a je?li gracza nie ma na serwerze to ma wpisa? Nick wtedy z folderu z osobami ma znalezdz ten nick otworzy? i nada? lidera po czym po wejsciu na serwer gracz ju? ma lidera. Mam nadzieje ?e ju? kumasz :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-02, 20:00


Iggy

#admin






Wiek: 26
Na forum: 4596 dni
Posty: 3469
Nick w MP: Iggy

Piwa: 1716

Respekt: 915
Respekt: 915Respekt: 915


   Administrator: Admin ma zawsze rację | REGULAMIN FORUM | REKLAMA/VIP | .
Szymon9910911, to ju? lepiej zrobi? tak, ?e lider przy dodawaniu b?dzie mia? dwie opcje. 1 - gracz, kt?remu chcesz nada? lidera ma by? online, 2 - gracz jest offline.

Tworzysz komend? na dodawanie do frakcji (sprawdzasz czy gracz jest adminem je?eli Ci to potrzebne itd.). P??niej gdy wszystko si? zgadza, wy?wietlasz GUI z dwoma opcjami. 1 - dodaj lidera online, 2 - dodaj lidera online. P??niej ju? w OnDialogResponse ustawiasz co ma si? dzia?, gdy gracz wybierze kt?r?? z opcji. Je?eli 1 - wy?wietlasz DIALOG_STYLE_INPUT, a nast?pnie sprawdzasz ponownie w OnDialogResponse czy inputtext, bo to na nim b?dziesz operowa? wtedy jest r?wny ID graczu, kt?ry jest na serwerze, je?eli nie to przerywasz kod itd. W drugim wypadku, tak?e w OnDialogResponse wy?wietlasz kolejny DIALOG_STYLE_INPUT, a p??niej ponownie w OnDialogReponse sprawdzasz, czy wpisany tekst, tj. inputtext jest taki sam jak nick gracza w pliku, jak nie to mo?esz ponownie wy?wietli? gui z napisem, ?e nie ma takiego konta itd.

Specjalnie nie dawa?em Ci gotowca, poniewa? jak dam Ci tu gotowy kod to nic si? nie nauczysz i b?dziesz mia? kolejne problemy z kodem. ;)

PS: Pisz chocia? w poprzednich tematach, ?e ju? wszystko dzia?a czy tam co?, bo nie wiem czy ju? sobie poradzi?e? czy nie i czy zamyka? temat.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-02, 20:07


Szymon9910911







Wiek: 25
Na forum: 4137 dni
Posty: 251
Nick w MP: Tetral [you]

Piwa: 9

Respekt: 70

A soory ten z prawkiem mo?esz zamkn??. Mam pytanie co do sprawdzania czy text to nick gracza to mam zrobi? tak ?e sformatowa? gdzie jest gracz i potem if(inputtext == ZAPIS Gracza )?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-02, 20:27


Iggy

#admin






Wiek: 26
Na forum: 4596 dni
Posty: 3469
Nick w MP: Iggy

Piwa: 1716

Respekt: 915
Respekt: 915Respekt: 915


   Administrator: Admin ma zawsze rację | REGULAMIN FORUM | REKLAMA/VIP | .
Pawn
 if(strlen(inputtext) == PlayerName(playerid))
     return SendClientMessage(playerid, -1"Wpisany tekst jest taki sam jak Tw?j nick.");


To Ci powinno pom?c.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-02, 20:45


Szymon9910911







Wiek: 25
Na forum: 4137 dni
Posty: 251
Nick w MP: Tetral [you]

Piwa: 9

Respekt: 70

A takie pytanie odno?ne definicji bo nwm czy czasem gma nie za?miecam
Kod:

#define RANGA 21
#define IDDONADANIARANGI 22
#define IDDONADANIARANGI1 23
#define IDDONADANIARANGI2 24
#define IDDONADANIARANGI3 25
#define IDDONADANIARANGI4 26
#define IDDONADANIARANGI5 27
#define IDDONADANIARANGI6 28
#define IDDONADANIARANGI7 29
#define IDDONADANIARANGI8 30
#define DajRange1 66
#define ZabierzRange1 67
#define DajRange2 68
#define ZabierzRange2 69
#define DajRange3 90
#define ZabierzRange3 91
#define DajRange4 92
#define ZabierzRange4 93
#define DajRange5 94
#define ZabierzRange5 95
#define DajRange6 96
#define ZabierzRange6 97
#define DajRange7 98
#define ZabierzRange7 99
#define DajRange8 100
#define ZabierzRange8 101
#define DajRangeOnline 102
to jest robione poprawnie ? bo nie jestem pewien xD

[ Dodano: 2016-04-02, 20:46 ]
co do pomocy to rozumiem ?e to jest pobrana nazwa gracza o warto?ci playerid tak ? to dac PlayerName(zapis konta) ? :D xD

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-03, 07:57


kazami

Pawner/PTG






Wiek: 27
Na forum: 4596 dni
Posty: 405
Nick w MP: adi888

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
"Iggy" napisał/a:

Pawn
 if(strlen(inputtext) == PlayerName(playerid))
     return SendClientMessage(playerid, -1"Wpisany tekst jest taki sam jak Tw?j nick.");


To Ci powinno pom?c.


OMFG, strlen liczy znaki przecie? to bezsens !

Jak ju? chcesz pom?c to r?b to umiej?tnie.

Pawn

if(!strcmp(inputtext,PlayerName(playerid),true))
return SendClientMessage(playerid, -1"Wpisany tekst jest taki sam jak Tw?j nick);


[ Komentarz dodany przez: Iggy: 2016-04-03, 09:44 ]
Ojojoj, ka?demu si? mo?e zdarzy? ma?y b??d, przynajmniej ja staram si? pomaga? ca?y czas//Iggy.

Ostatnio zmieniony przez kazami 2016-04-03, 09:27, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-03, 09:00


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Ty za to natomiast jeste? ?wietnym "pawnerem" jak to masz napisane w tytule pod nickiem. Dobrze, ?e ja nie mam ?adnego tytu?u, przynajmniej nikt na mnie nie szczeka jak ja na innych.

Co do tematu, nie jest to wcale takie trudne. Chocia? kod jest troch? pogmatwany, wystarczy troch? logiki. Je?li gracz w dialogu wpisze same cyfry, np. 23, 1, 52 to zapewne chodzi mu o jakiego? gracza online. Je?li poda jak?? liter?, to zapewne chodzi mu o gracza offline.

Kod:

if(IsNumeric(inputtext)) //gracz podal liczbe
{
new actionid = strval(inputtext);
//sprawdzasz, czy gracz o podanym id jest na serwerze
//sprawdzasz, czy jest juz w jakiejs frakcji czy co tam innego
//pobierasz nick gracza i zapisujesz w pliku range
}
else //gracz podal jakies literki
{
//sprawdzasz, czy plik gracza o nicku zawartym w inputtext istnieje
//jesli istnieje, zapisujesz w pliku range
}


To taki pseudo kod. Musisz wzi?? pod uwag?, ?e w GUI kto? mo?e wpisa? nick gracza, kt?ry jest online, wi?c przy opcji offline musisz zrobi? p?tl? na wszystkich graczy i sprawdza?, czy podany nick jest na serwerze, bo je?li tego nie zrobisz, to ranga zostanie zapisana do pliku, ale na serwerze temu graczowi ranga si? nie zmieni.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-04, 21:14


Szymon9910911







Wiek: 25
Na forum: 4137 dni
Posty: 251
Nick w MP: Tetral [you]

Piwa: 9

Respekt: 70

dobra tak mniej wiecej czy to
Kod:

if(dialogid == NADAJ_ZALOZYCIELA_OFFLINE)
{
if(!strcmp(inputtext,PlayerName(playerid),true))
{
new NickGracza[MAX_PLAYER_NAME];
new Gracze[64];
GetPlayerName(playerid, NickGracza, sizeof(NickGracza));
format(Gracze, sizeof(Gracze), KONTA, NickGracza);
if(dfile_FileExists(Gracze))
{
//new id = strval(inputtext);
new Wiadomoscdoplayerid[100];
dfile_Open(Gracze);
PlayerInfo[Gracze][Ranga] = 8;
dfile_WriteInt("Ranga", 8);
dfile_SaveFile();
dfile_CloseFile();
format(Wiadomoscdoplayerid, sizeof(Wiadomoscdoplayerid), "{910000}Nada?e? za?o?yciela graczowi : {787878}%s", NickGracza2);
SendClientMessage(playerid, 0x787878FF, Wiadomoscdoplayerid);
}
}
else
{
SendClientMessage(playerid, 0xCD0000FF, "Musisz wpisa? Nick osoby kt?rej chcesz nada? rang?!");
}
}
jest dobrze ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-05, 10:22


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Dlaczego si? pytasz, zamiast sprawdzi? w grze? Sam by? zauwa?y?, ?e co? nie dzia?a, bo:

1. Warunek strcmp przepu?ci tylko nick gracza, kt?ry wpisze sw?j nick - wszystkie inne odrzuci, bo taki zrobi?e? warunek.
2. Za pomoc? funkcji GetPlayerName pobierasz nick gracza, kt?ry wykonuje operacje w GUI, ale po co, skoro chcesz zmieni? rang? graczowi, kt?rego nick jest zawarty w tablicy inputtext?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-04-05, 11:13


Szymon9910911







Wiek: 25
Na forum: 4137 dni
Posty: 251
Nick w MP: Tetral [you]

Piwa: 9

Respekt: 70

To ma to wygl?da? w ten spos?b ?
Kod:

if(dialogid == NADAJ_ZALOZYCIELA_OFFLINE)
{
if(!strcmp(inputtext,PlayerName(playerid),true))
{
SendClientMessage(playerid, 0xCD0000FF, "Musisz wpisa? Nick osoby kt?rej chcesz nada? rang?!");
}
else
{
/*new NickGracza[MAX_PLAYER_NAME];
new Gracze[64];
GetPlayerName(playerid, NickGracza, sizeof(NickGracza));
format(Gracze, sizeof(Gracze), KONTA, NickGracza);*/
if(dfile_FileExists(inputtext))
{
//new id = strval(inputtext);
new Wiadomoscdoplayerid[100];
dfile_Open(inputtext);
//PlayerInfo[id][Ranga] = 8;
dfile_WriteInt("Ranga", 8);
dfile_SaveFile();
dfile_CloseFile();
format(Wiadomoscdoplayerid, sizeof(Wiadomoscdoplayerid), "{910000}Nada?e? za?o?yciela graczowi : {787878}%s", inputtext);
SendClientMessage(playerid, 0x787878FF, Wiadomoscdoplayerid);
}
else SendClientMessage(playerid, 0xCD0000FF, "dany gracz nie istnieje!");
}
}
co? w tym stylu ?

[ Dodano: 2016-04-05, 11:26 ]
dzi?kuje za pomoc. Zrobi?em ju?. znalaz?em b??d. Jeszcze raz thx lec? piwka i repki

Postaw piwo autorowi tego posta
 

 
Tagi: offline
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Offline Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku