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

Wysłany: 2014-08-29, 10:10


kazami

Pawner/PTG






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

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
Witam mam taki problem zrobi?em system towar?w po??czony z MySql , i teraz mnie jedno dr?czy poniewaz gdy ktos wchodzi na serwer to lista towar?w jest pobierana z bazy danych i baza jest aktualizowana po wyjsciu gracza z serwera, ale gdy gracz wejdzie na serwer i b?dzie gra? i wejdzie drugi to baza b?dzie nie zaaktualizowana i ka?dy gracz b?dzie mia? inn? ilo?? dost?pnych towar?w :( I teraz pytanie czy mo?na da? zapytanie do bazy z aktualizacj? tej listy w OnPlayerUpdate ? Wtedy te zapytanie b?dzie ca?y czas si? wysy?a?o , czy to nie zaszkodzi serwerowi typu lagi czy co? takiego ?

Czekam na wasze wypowiedzi .

Z g?ry dzi?ki

Moje zapytanie przy OnPlayerSpawn
Pawn

new query[512];
    format(querysizeof(query), "SELECT `odziez`, `ksiazki`, `ryby`, `napoje`, `lekarstwa`, `jedzeniewpaczkach`, `smieci`, `alkohol`, `frytki`, `paliwo`, `ilosctowarow` FROM `towary`");
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row_format(query"|");
    sscanf(query"p<|>dddddddddddd",
    towar[odziez],
    towar[ksiazki],
    towar[ryby],
    towar[napoje],
    towar[lekarstwa],
    towar[jedzeniewpaczkach],
    towar[smieci],
    towar[alkohol],
    towar[frytki],
    towar[paliwo],
    towar[ilosctowarow]);
    mysql_free_result();


Ostatnio zmieniony przez kazami 2014-08-29, 10:35, w całości zmieniany 2 razy  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-29, 11:07


Combacior







Wiek: 29
Na forum: 5796 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
1. Nawet nie my?l o wykonywaniu jakichkolwiek zapyta? w OPU - sam lag i jest te? limit wysy?anych zapyta? robiony przez hosting (na serverproject taki limit wynosi 10000 na godzin?).

2. Robisz jaki? UPDATE tych towar?w? Bo je?li nie robisz UPDATE i warto?ci tych kolumn w bazie danych jest taka sama, to wystarczy tylko raz zrobi? SELECT. Poka? jakie dzia?a wykonujesz na tablicy towar

3. Polecam u?ywanie innych struktur sscanf podczas rozdzielania tekstu - zajmuje mniej miejsca i lepiej wygl?da

Kod:

mysql_fetch_row_format(query, " ");
sscanf(query, "a<i>[12]", towar);

//teraz ma?y opis:

a - array (ang. tablica)
<i> - jaki typ ma tablica (w tym przypadku integer - liczba)
[12] - ilo?? pobieranych argument?w


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-29, 11:15


kazami

Pawner/PTG






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

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
Operuj? tylko takimi zapytaniami

w OnPlayerDissconect

Pawn

new query[1024];
    format(querysizeof(query), "UPDATE `towary` SET odziez = %d, ksiazki = %d, ryby = %d, napoje = %d, lekarstwa = %d, jedzeniewpaczkach = %d, komputery = %d, smieci = %d, alkohol = %d, frytki = %d, paliwo = %d", 
    towar[odziez], towar[ksiazki], towar[ryby], towar[napoje], towar[lekarstwa], towar[jedzeniewpaczkach], towar[komputery], towar[smieci], towar[alkohol], towar[frytki], towar[paliwo]);
    mysql_query(query);
    mysql_free_result();    


i ten w onplayerspawn .

Teraz sam ju? nie wiem jak to zrobi? chc? aby z bazy danych by? pobierany towar i gracz ?eby mia? aktywn? list? towar?w w grze nabierz?co .

Bo potem je?li bym chcia? zrobi? na forum portal typu aktualna lista towar?w .

Hmm teraz si? tak zastanawiam jakbym zrobi? ten system na enum dla MAX_PLAYERS i da? towary , a potem drugi enum Serwer gdzie znajdowa?y by si? towary hmm

[ Dodano: 2014-08-29, 11:18 ]
a je?li bym tylko ten kod da? do timera

Pawn

new query[1024];
    format(querysizeof(query), "UPDATE `towary` SET odziez = %d, ksiazki = %d, ryby = %d, napoje = %d, lekarstwa = %d, jedzeniewpaczkach = %d, komputery = %d, smieci = %d, alkohol = %d, frytki = %d, paliwo = %d", 
    towar[odziez], towar[ksiazki], towar[ryby], towar[napoje], towar[lekarstwa], towar[jedzeniewpaczkach], towar[komputery], towar[smieci], towar[alkohol], towar[frytki], towar[paliwo]);
    mysql_query(query);
    mysql_free_result();    


to lista by by?a aktualizowana co ile? minut , a system towar?w i tak by dobrze dzia?a? , chyba :)

[ Dodano: 2014-08-29, 11:23 ]
hmm a m?g?bym da? timera co 5 minut kt?ry by aktualizowa? tylko list? w bazie danych ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-29, 13:25


Combacior







Wiek: 29
Na forum: 5796 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
1. Robisz jakie? dzia?ania na tablicy towar? Chodzi mi tutaj, czy co? w tej tablicy dodajesz/odejmujesz?

2. Nawet nie wiem co ma ta tablica przechowywa? - gracz mo?e do woli wykonywa? te zlecenia, czy ma jakie? limity?

3. Lista towar?w si? zmienia, czy ma ci?gle by? taka sama?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-29, 16:55


kazami

Pawner/PTG






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

Piwa: 43

Respekt: 76,3

Ostrzeżeń: 80%
1. Z tablicy odejmuj? towary czyli od zmiennej towaru -1.
2. Gracz wykonuje zlecenia gdy towar jest dostepny.
3. Lista towarow sie zmienia ( zmienia sie dostepnosc towaru z 3 na np. 1)

Problem rozwi?zany da?em timera kt?ry co 5min b?dzie aktualizowa? list? w bazie danych

Postaw piwo autorowi tego posta
 

 
Tagi: wczyt :: towaru :: mysql
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN 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