Zbroja, która ponosi uszkodzenia w trakcie walki 25738 106

O temacie

Autor pawbuj

Zaczęty 25.03.2013 roku

Wyświetleń 25738

Odpowiedzi 106

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
przeglądałem perception.d i znalazłem tylko :

Npc_PercEnable   (self, PERC_ASSESSDAMAGE , ZS_ReactToDamage

    );

źle szukam?

nie ma tam definicji perc_assessdamage, stąd mniemałem, że odpowiedzią był zs_reacttodamage.

dałem tam nast. perception w perception.d dla hero, ale nic. chyba nie ma znaczeniu , że jeden perc odnosi się dla hero, kolejny dla self.

Npc_PercEnable   (hero, PERC_ASSESSDAMAGE , ZS_ReactToDamage

    );
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Perceptiona dla hero zbindowałeś poprawnie. Właśnie tak ta to działa. Podajesz komu, jaki perception i na jaką funkcję przekierować. Możesz tam dać nową, własną funkcję, niekoniecznie ZS_ReactToDamage która jest po prostu domyślnie używaną w tym przypadku.

Z drugiej strony wcześniej szukałeś źle. Nie szukaj w konkretnym pliku, ale we wszystkich w scripts/content. Użyć do tego możesz np Notepada++ czy Total Commandera albo chyba nawet Gothic Sourcera. Szukanie w jednym pliku to za mało, skoro przecież nie wiesz w którym szukać.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Perceptiona dla hero zbindowałeś poprawnie. Właśnie tak ta to działa. Podajesz komu, jaki perception i na jaką funkcję przekierować. Możesz tam dać nową, własną funkcję, niekoniecznie ZS_ReactToDamage która jest po prostu domyślnie używaną w tym przypadku.

Z drugiej strony wcześniej szukałeś źle. Nie szukaj w konkretnym pliku, ale we wszystkich w scripts/content. Użyć do tego możesz np Notepada++ czy Total Commandera albo chyba nawet Gothic Sourcera. Szukanie w jednym pliku to za mało, skoro przecież nie wiesz w którym szukać.
dałem nowy perception i funkcję ,który wyglada nastepująco 9jednak nadal jak mnie tłuką to nic się nie wyświetla:

może dlatego , że jest to fragment funkcji GuardPerception (),dodałem to nawet do InitPerceptions() i na razie nic.
{func void ZS_ReactToHeroDamage ()
{
PrintDebugNpc (PD_ZS_FRAME, "ZS_ReactToHeroDamage" );
PrintGlobals (PD_ZS_CHECK);
C_ZSInit();
CheckArmor ();
};
Npc_PercEnable   (hero, PERC_ASSESSDAMAGE , ZS_ReactToHeroDamage     );
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Eeee... co? Nie rozumiem w końcu co zrobiłeś. Twoja funkcja może wyglądać przykładowo tak:
func void blablabla ()
{
print ("trafiono bohatera");
};
W skrypcie pc_hero dodaj:
Npc_PercEnable (self, PERC_ASSESSDAMAGE, blablabla);Ewentualnie możesz dać to w startupie, ale wtedy musisz zamienić self na hero.

To wszystko jest bardzo proste. Z tego co widzę próbujesz na siłę kombinować z tym czego do końca nie rozumiesz i przez to niepotrzebnie komplikujesz.

Cały ten modding wyglądałby zupełnie inaczej jakby była jakaś podstawowa ogólna dokumentacja skryptów. Szkoda że nie zajmowałem się nimi 10 lat temu to bym jakąś machną gdybym był wówczas w stanie je samemu w pełni zrozumieć :lol2:

ZAWSZE kiedy przychodzi ci na myśl użycie ticktocka "czekającego" na jakieś wydarzenie ciągle sprawdzając związany z nim warunek, najpierw sprawdzaj tą listę: http://themodders.org/index.php?/topic/13208-inicjowanie-funkcji/ ;p

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Eeee... co? Nie rozumiem w końcu co zrobiłeś. Twoja funkcja może wyglądać przykładowo tak:
func void blablabla ()
{
print ("trafiono bohatera");
};
W skrypcie pc_hero dodaj:
Npc_PercEnable (self, PERC_ASSESSDAMAGE, blablabla);Ewentualnie możesz dać to w startupie, ale wtedy musisz zamienić self na hero.

To wszystko jest bardzo proste. Z tego co widzę próbujesz na siłę kombinować z tym czego do końca nie rozumiesz i przez to niepotrzebnie komplikujesz.

Cały ten modding wyglądałby zupełnie inaczej jakby była jakaś podstawowa ogólna dokumentacja skryptów. Szkoda że nie zajmowałem się nimi 10 lat temu to bym jakąś machną gdybym był wówczas w stanie je samemu w pełni zrozumieć :lol2:

ZAWSZE kiedy przychodzi ci na myśl użycie ticktocka "czekającego" na jakieś wydarzenie ciągle sprawdzając związany z nim warunek, najpierw sprawdzaj tą listę: http://themodders.org/index.php?/topic/13208-inicjowanie-funkcji/ ;p

dzieki Av, że pomogłeś.

mozesz jednak spróbowac zastosować to u siebie? reparsuję skrypty i niestety wbrew logice efektu nie ma. dodam,że jeżeli inny npc otrzyma obrażenie to działa. dodałem to w startupie jak i pliku pc_hero.d i nic.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Nie, nie tykałem Gothica kijem już od lat i nie mam zamiaru do tego wracać.
Nie mam pojęcia dlaczego nie działa. Perceptiony miałyby nie działać z postacią gracza? Wtedy nie działałyby na niego np żadne z "magicznych mieczy", które korzystają przecież właśnie z perc_assesdamage (nawet jeśli nie jest to wprost napisane w tutorialach).

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Nie, nie tykałem Gothica kijem już od lat i nie mam zamiaru do tego wracać.
Nie mam pojęcia dlaczego nie działa. Perceptiony miałyby nie działać z postacią gracza? Wtedy nie działałyby na niego np żadne z "magicznych mieczy", które korzystają przecież właśnie z perc_assesdamage (nawet jeśli nie jest to wprost napisane w tutorialach).
ok trudno, może ktoś inny będzie miał możliwość sprawdzenia tego,

powiem także, że w Gothic Wielka Wojna takze zastosowoano zużycie broni (poprzez zs_reacttodmagae) i pancerza. Jednak pancerz bohatera zużywał się poprzez czasowe odliczanie (tick tock), a nie bezpośrednio uderzenia. Czyżby także mieli problem z perceptionem bohatera?
 

gothic1210
  • Gość
Nie, nie tykałem Gothica kijem już od lat i nie mam zamiaru do tego wracać.
Nie mam pojęcia dlaczego nie działa. Perceptiony miałyby nie działać z postacią gracza? Wtedy nie działałyby na niego np żadne z "magicznych mieczy", które korzystają przecież właśnie z perc_assesdamage (nawet jeśli nie jest to wprost napisane w tutorialach).
ok trudno, może ktoś inny będzie miał możliwość sprawdzenia tego,

powiem także, że w Gothic Wielka Wojna takze zastosowoano zużycie broni (poprzez zs_reacttodmagae) i pancerza. Jednak pancerz bohatera zużywał się poprzez czasowe odliczanie (tick tock), a nie bezpośrednio uderzenia. Czyżby także mieli problem z perceptionem bohatera?
Pawbuj sposób Avallacha działa na 100%. Sprawdzany.
Proszę:


EDIT: Jaką proponujecie sensowną wartość tego weight?  ;d
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Ja tam nie robiłbym tego na weight tylko wprost zmieniał parametry obrony i ich wyświetlacz, to już kwestia inwencji twórczej. Pawbuj chciał koniecznie jako oddzielną wartość więc po prostu zaproponowałem użycie tego bo jest akurat wolnym intem.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Gothic,
aktywawołeś perceptiona dla hero w pc_hero.d i dałeś to do zs_reactodamage? jeśli to nie tajemnica, mozesz napisać jak to zrobiłeś?

myśle,że do 500, weight robię na zmiennej losowej, wtedy nie wiesz na ile ci ta zbroja wystarczy. to samo weaponów.
 

gothic1210
  • Gość
Gothic,
aktywawołeś perceptiona dla hero w pc_hero.d i dałeś to do zs_reactodamage? jeśli to nie tajemnica, mozesz napisać jak to zrobiłeś?

myśle,że do 500, weight robię na zmiennej losowej, wtedy nie wiesz na ile ci ta zbroja wystarczy. to samo weaponów.
Nie wiem co to jest zs_reactodamage, ale zrobiłem to tak:
oto mój plik PC_Hero
func void armor_zuzycie ()
{
var c_item zbroja;
zbroja = Npc_GetEquippedArmor(hero);

zbroja.weight = zbroja.weight - 1;
PrintScreen (ConcatStrings ("Pozostało: ", IntToString(zbroja.weight)),10,12,"FONT_OLD_10_WHITE.TGA",3);
PrintScreen     ("Zbroja traci wartość!", -1,-1,"FONT_OLD_10_WHITE.TGA",4);     //dla testu
print ("trafiono bohatera");
};

INSTANCE PC_Hero(NPC_DEFAULT)

{
//-------- primary data --------
name = "Nieznany";
Npctype = NPCTYPE_MAIN;
guild = GIL_NONE;
level = 0;
voice = 15;
id = 0;

//------------------------------
exp = 0;
exp_next = 500;
lp = 0;
//------------------------------

//--------- abilities --------
attribute[ATR_STRENGTH] = 5;    
attribute[ATR_DEXTERITY] = 5;    
attribute[ATR_MANA_MAX] = 5;
attribute[ATR_MANA] = 5;
attribute[ATR_HITPOINTS_MAX]= 40;    
attribute[ATR_HITPOINTS] = 28;    

//-------- visuals --------
// animations
Mdl_SetVisual (self,"HUMANS.MDS");
// Body-Mesh Body-Tex Skin-Color Head-MMS     Head-Tex Teeth-Tex Armor-Tex
Mdl_SetVisualBody (self,"hum_body_Naked0", 5, 1, "Hum_Head_Pony", 9, 0, -1);
Npc_PercEnable (self, PERC_ASSESSDAMAGE, armor_zuzycie);
//-------------------------
CreateInvItem (self, ItWr_Fire_Letter_01);
CreateInvItem (self, ItFoLoaf);
CreateInvItem (self, ZdolnosciLowieckie);
};

Print jak widać się wyświetla, ale nie zrobiłem jeszcze odejmowania. Z tym weight jest dużo roboty, bo do każdej zbroi trzeba dopisać weight = x a trochę sporo tego jest. Ja wykorzystam sposób Avallacha, bo wcześniej na niego nie wpadłem. Ty jak chcesz robić  ztym weight to możesz jeszcze coś takiego dopisać w skrypcie zbroi:
TEXT[0] = "Zużycie"; COUNT[0] = weight;
 

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Gothic,
aktywawołeś perceptiona dla hero w pc_hero.d i dałeś to do zs_reactodamage? jeśli to nie tajemnica, mozesz napisać jak to zrobiłeś?

myśle,że do 500, weight robię na zmiennej losowej, wtedy nie wiesz na ile ci ta zbroja wystarczy. to samo weaponów.
Nie wiem co to jest zs_reactodamage, ale zrobiłem to tak:
oto mój plik PC_Hero
func void armor_zuzycie ()
{
var c_item zbroja;
zbroja = Npc_GetEquippedArmor(hero);

zbroja.weight = zbroja.weight - 1;
PrintScreen (ConcatStrings ("Pozostało: ", IntToString(zbroja.weight)),10,12,"FONT_OLD_10_WHITE.TGA",3);
PrintScreen     ("Zbroja traci wartość!", -1,-1,"FONT_OLD_10_WHITE.TGA",4);     //dla testu
print ("trafiono bohatera");
};

INSTANCE PC_Hero(NPC_DEFAULT)

{
//-------- primary data --------
name = "Nieznany";
Npctype = NPCTYPE_MAIN;
guild = GIL_NONE;
level = 0;
voice = 15;
id = 0;

//------------------------------
exp = 0;
exp_next = 500;
lp = 0;
//------------------------------

//--------- abilities --------
attribute[ATR_STRENGTH] = 5;    
attribute[ATR_DEXTERITY] = 5;    
attribute[ATR_MANA_MAX] = 5;
attribute[ATR_MANA] = 5;
attribute[ATR_HITPOINTS_MAX]= 40;    
attribute[ATR_HITPOINTS] = 28;    

//-------- visuals --------
// animations
Mdl_SetVisual (self,"HUMANS.MDS");
// Body-Mesh Body-Tex Skin-Color Head-MMS     Head-Tex Teeth-Tex Armor-Tex
Mdl_SetVisualBody (self,"hum_body_Naked0", 5, 1, "Hum_Head_Pony", 9, 0, -1);
Npc_PercEnable (self, PERC_ASSESSDAMAGE, armor_zuzycie);
//-------------------------
CreateInvItem (self, ItWr_Fire_Letter_01);
CreateInvItem (self, ItFoLoaf);
CreateInvItem (self, ZdolnosciLowieckie);
};

Print jak widać się wyświetla, ale nie zrobiłem jeszcze odejmowania. Z tym weight jest dużo roboty, bo do każdej zbroi trzeba dopisać weight = x a trochę sporo tego jest. Ja wykorzystam sposób Avallacha, bo wcześniej na niego nie wpadłem. Ty jak chcesz robić  ztym weight to możesz jeszcze coś takiego dopisać w skrypcie zbroi:
TEXT[0] = "Zużycie"; COUNT[0] = weight;
teraz wiem co było spieprzone. po prosu  w innym miejscu w skryptach miałem kolejne nadpisanie co do perc_assessdamage.

dzięki za fatygę  i pomoc - Av i gothic. teraz działa jak trzeba.
 

gothic1210
  • Gość
A ja mam jeszcze jedno pytanie. Napisałem tę funkcję tak:
func void armor_zuzycie ()
{
var c_item zbroja;
zbroja = Npc_GetEquippedArmor(hero);
print ("trafiono bohatera");
zbroja.protection [PROT_EDGE] = zbroja.protection [PROT_EDGE] - 1;
PrintScreen (ConcatStrings ("Zużycie: ", IntToString(zbroja.protection [PROT_EDGE])),10,12,"FONT_OLD_10_WHITE.TGA",3);
if (zbroja.protection [PROT_EDGE] == 1)
{
AI_UnequipArmor  (hero);
Print ("Zbroja zniszczona!");
};
};
Wszystko się wyświetla, zbroja się zdejmuje, ale mimo wszystko w ekwipunku dalej pisze: ochrona przed bronią 70. Zauważyłem też, że zbroja mimo wszystko chroni tak samo (lol?) nawet jak ją zdejmiemy (topielec zadawał i 1 punkt obrażeń). Sprawdziłem to także na walce z NPC, bo myślałem, że może PROT_EDGE jest tylko do broni, ale dalej nie działa jak powinno.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Po pierwsze, nie trzeba ręcznie dopisywać do każdej zbroi "Zużycie". Opisy można (i w przypadku zmiennych trzeba) modyfikować w runtime. Przykładowo
zbroja.text[0]="Zużycie:";
zbroja.protection [PROT_EDGE] -= 1;
hero.protection [PROT_EDGE] -= 1;
zbroja.count[0]=zbroja.protection [PROT_EDGE];
W skrypcie danego potwora sprawdź jakiego rodzaju obrażenia zadaje. Jeśli jest zapotrzebowanie to jak będę na pc mogę zrobić o tym krótki tutek.
Co do tego że chroni tak samo nawet po zdjęciu, to chyba jest to związane z tym jak Gothic obsługuje zbroje. Trzeba dodatkowo ręcznie aktualizować ochronę u gracza.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Av,

jakie inne perceptiony twoim zdaniem są przydatne dla hero?

czy mozna poprzez perceptiony wywołać funkcje jeżeli np. patrzymy na obiekt (npc, mob) ?
 

gothic1210
  • Gość
Po pierwsze, nie trzeba ręcznie dopisywać do każdej zbroi "Zużycie". Opisy można (i w przypadku zmiennych trzeba) modyfikować w runtime. Przykładowo
zbroja.text[0]="Zużycie:";
zbroja.protection [PROT_EDGE] -= 1;
hero.protection [PROT_EDGE] -= 1;
zbroja.count[0]=zbroja.protection [PROT_EDGE];
W skrypcie danego potwora sprawdź jakiego rodzaju obrażenia zadaje. Jeśli jest zapotrzebowanie to jak będę na pc mogę zrobić o tym krótki tutek.
Co do tego że chroni tak samo nawet po zdjęciu, to chyba jest to związane z tym jak Gothic obsługuje zbroje. Trzeba dodatkowo ręcznie aktualizować ochronę u gracza.
Jak masz chęć napisać taki tutorial to napisz, bo na pewno się przyda.
A co do moich problemów to skrypt wygląda teraz tak:
func void armor_zuzycie ()
{
var c_item zbroja;
zbroja = Npc_GetEquippedArmor(hero);
print ("trafiono bohatera");

//odejmowanie
if (zbroja.protection [PROT_EDGE] > 1)
{
zbroja.protection [PROT_EDGE] = zbroja.protection [PROT_EDGE] - 1;
hero.protection [PROT_EDGE] = hero.protection [PROT_EDGE] - 1;
};
if (zbroja.protection [PROT_BLUNT] > 1)
{
zbroja.protection [PROT_BLUNT] = zbroja.protection [PROT_BLUNT] - 1;
hero.protection [PROT_BLUNT] = hero.protection [PROT_BLUNT] - 1;
};
if (zbroja.protection [PROT_POINT] > 1)
{
zbroja.protection [PROT_POINT] = zbroja.protection [PROT_POINT] - 1;
hero.protection [PROT_POINT] = hero.protection [PROT_POINT] - 1;
};
if (zbroja.protection [PROT_FIRE] > 1)
{
zbroja.protection [PROT_FIRE] = zbroja.protection [PROT_FIRE] - 1;
hero.protection [PROT_FIRE] = hero.protection [PROT_FIRE] - 1;
};
if (zbroja.protection [PROT_MAGIC] > 1)
{
zbroja.protection [PROT_MAGIC] = zbroja.protection [PROT_MAGIC] - 1;
hero.protection [PROT_MAGIC] = hero.protection [PROT_MAGIC] - 1;
};
PrintScreen (ConcatStrings ("Zużycie pancerza: ", IntToString(zbroja.protection [PROT_EDGE])),2,91,"Font_Old_10_White_Hi.TGA",3);
//opis
zbroja.text[0]="Zużycie:";
//zbroja.protection [PROT_EDGE] -= 1;
//hero.protection [PROT_EDGE] -= 1;
zbroja.count[0]=zbroja.protection [PROT_EDGE];
if (zbroja.protection [PROT_EDGE] == 1) || (zbroja.protection [PROT_BLUNT] == 1)
{
AI_UnequipArmor  (hero);
Print ("Zbroja zniszczona!");
};
};
Jest wszystko ok, tylko nie działa na drugiej zbroi. A wcześniej działało. Zrobiłem mały test i gdy mi się zużył pancerz wpisałem kod na inny i zaatakowałem innego przeciwnika (krwiopijce  damagetype                   =   DAM_EDGE;). Wtedy nie pojawiało się w ogóle nic (nawet print o trafieniu). Tak jakby to Npc_PercEnable (self, PERC_ASSESSDAMAGE, armor_zuzycie); nagle przestało działać.
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Tutaj jest lista perceptionów i innych wywoływaczy. Polecam. http://themodders.org/index.php?/topic/13208-inicjowanie-funkcji/

W razie gdyby nie było takiego jakiego potrzebujecie, dzięki LeGo zawsze można robić bezpośrednie hooki do silnika, z tym że to już troszeczkę trudniejsze niż korzystanie z gotowych rozwiązań. W ten sposób można zrobić właśnie wywoływanie przy popatrzeniu się na obiekt (w ten sposób działa kolorowanie nazw przeciwników z LeGo, także wystarczyłoby skopiować odpowiednią linijkę kodu, banał). Z perceptionów jest jeden który uruchamia się po kliknięciu na npc, a jest to... perc_assesstalk, używany normalnie do rozpoczęcia rozmowy (ale zamiast tego można nim wywoływać inne, ciekawsze rzeczy u wybranego npc).

Gothic1210, perception nie może tak po prostu przestać działać. Za to jak mówi sama jego nazwa, aktywuje się tylko jeśli naprawdę są zadawane obrażenia. Może w tym tkwi problem? Zbyt mała ilość obrażeń od atakującego / za duża obrona atakowanego mogłyby sprawiać że po prostu do prawdziwego zranienia nie dochodzi.

pawbuj

pawbuj

Użytkownicy
posty1625
Propsy135
ProfesjaSkrypter
  • Użytkownicy
Tutaj jest lista perceptionów i innych wywoływaczy. Polecam. http://themodders.org/index.php?/topic/13208-inicjowanie-funkcji/

W razie gdyby nie było takiego jakiego potrzebujecie, dzięki LeGo zawsze można robić bezpośrednie hooki do silnika, z tym że to już troszeczkę trudniejsze niż korzystanie z gotowych rozwiązań. W ten sposób można zrobić właśnie wywoływanie przy popatrzeniu się na obiekt (w ten sposób działa kolorowanie nazw przeciwników z LeGo, także wystarczyłoby skopiować odpowiednią linijkę kodu, banał). Z perceptionów jest jeden który uruchamia się po kliknięciu na npc, a jest to... perc_assesstalk, używany normalnie do rozpoczęcia rozmowy (ale zamiast tego można nim wywoływać inne, ciekawsze rzeczy u wybranego npc).

Av, ja moduję G1. z tego co wiem Lego nie działa dla tej platformy.

tematem kolorków dla NPC ze względu na attitude zajmowałem się długo, ale w G1 nie słyszałem , aby komus zeczywiście się udało.

perc_assesstalk to fajny pomysł, jdnak czy wtedy nie będziemy mieli problemu z rozpoczynaniem dialogów?
 

inż. Avallach

inż. Avallach

Administrator
posty7661
Propsy5239
NagrodyV
ProfesjaProgramista
  • Administrator
Perceptiony można ustawiać dla każdego npc oddzielnie i w razie potrzeby modyfikować w trakcie gry. Także problemu żadnego nie ma. W G2NK bodajże tak działa zabijanie przyzwanych bestii, po prostu się na nie klika, ale zamiast wywoływania dialogu są zabijane. Jeśli hooki z LeGo są nie do przerobienia na g1 to rzeczywiście jest problem, zostają tylko te metody z mojego tutoriala o wywoływaniu funkcji. Frame trigger zawsze jest ostatecznością.

gothic1210
  • Gość
Na razie problem z posta #36 zniknął. Wracając do tego Npc_PercEnable (self, PERC_ASSESSDAMAGE, armor_zuzycie); to czy nie można by wykorzystać tego do zrobienia plam krwi jak w Dziedzictwie? Chyba Ikarus ma funkcję wyświetlającą teksturę na ekranie (ja się nie tykam Ikarusa, ale pawbuj mógłbś coś takiego zrobić).

EDIT: Ha! Znalazłem buga. Gdy blokujemy uderzenie przeciwnika wskaźnik zużycia zaczyna zapieprzać w dół jak licznik w Porsche na prostej (tyle że tam leci do góry :D  ). Myślałem, że gdy blokujemy to nie otrzymujemy jako takich obrażeń. Da się to jakoś naprawić?
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry