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

Wysłany: 2015-02-05, 11:01


Avira15







Wiek: 33
Na forum: 4921 dni
Posty: 34



Respekt: 50

Witam!

Nie dziala timer dla zmniejszania glodu dla gracza powyzej id 0, tylko dla id 0 dziala. Czytalem mnostwo tematow, ale zaden mi nie pomogl, dlatego pisze tutaj.

Posiadam timer w "OnGameModeInit":

Kod:

SetTimer("wezglod", 10000, true);


Oraz funkcje:

Kod:

forward wezglod(playerid);
public wezglod(playerid)
{
Gracz[playerid][glod] = Gracz[playerid][glod] - 2;
Gracz[playerid][zmeczenie] = Gracz[playerid][zmeczenie] - 1;
return 1;

}


Po zmianie timera na:

Kod:

SetTimerEx("wezglod", 10000, true, "i", playerid);


Wyrzuca blad ze nie ma zdefinowanego playerid. Wrzucilem timer do "OnPlayerConnect". Ju? nie wyrzuca warningow przy konwertowaniu, lecz nadal nie zabiera zarcia, tylko dla id 0. Macie pomysl jak to naprawic ?

Dla kazdego stawiam piwka !

Z gory dzieki

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-05, 11:22


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

SetTimer, kt?ry dajesz nie uwzgl?dnia ID gracza wi?kszego ni? zero.

Kod:

forward wezglod();
public wezglod()
{
for(new i=0;i<MAX_PLAYERS;i++) {
if(!IsPlayerConnected(i)) continue;
Gracz[i][glod] = Gracz[i][glod] - 2;
Gracz[i][zmeczenie] = Gracz[i][zmeczenie] - 1;
}
return 1;
}


+ ofc zostaw;

Kod:

SetTimer("wezglod", 10000, true);


[ Dodano: 2015-02-05, 11:24 ]
"Avira15" napisał/a:

lecz nadal nie zabiera zarcia, tylko dla id 0. Macie pomysl jak to naprawic ?


Poza tym, w kodzie nic nie ma o ustawieniu HP gracza, jedynie ustawianie warto?ci zmiennych.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-05, 11:33


Avira15







Wiek: 33
Na forum: 4921 dni
Posty: 34



Respekt: 50

Dodalem to co pisales lecz nadal nie odejmuje. Zauwazylem przy okazji pewna rzecz, ze jesli do tego timera dodalem wysylanie wiadomosci to wiadomosc ladnie wysyla dla id 1 i id 0 ale nie odejmuje wiec pewnie cos nie tak z tym odejmowaniem glodu ? No ale w takim razie dlaczego na id 0 dziala a id 1 niezbyt ?

Leci piwo ! i czekam na dalsza pomoc, wielkie dzieki !

Kod:

Poza tym, w kodzie nic nie ma o ustawieniu HP gracza, jedynie ustawianie warto?ci zmiennych.


Jest ze gdy zmienna glod dla gracza spadnie do 0 to automatycznie zabija, o to chodzi ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-05, 11:43


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Avira15, ale co Ty odejmujesz? ?ycie? Czy masz dodatkowy pasek g?odu? Je?li masz dodatkowy pasek g?odu to pewnie u?ywasz progressbara, wtedy w timerze musisz go aktualizowa?. Je?li chodzi o ?ycie gracza, to u?yj GetPlayerHealth a p??niej SetPlayerHealth

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-05, 11:49


Avira15







Wiek: 33
Na forum: 4921 dni
Posty: 34



Respekt: 50

Posiadam oddzielny pasek glodu, w textdrawie. Moglbys mniej wiecej nakierowac mnie jak to mialoby wygladacc ??

Otrzymujesz piwko

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-05, 11:53


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Poka? kod od tego textdrawu 8-)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-05, 11:54


Avira15







Wiek: 33
Na forum: 4921 dni
Posty: 34



Respekt: 50

Aktualizowac tz cos takiego masz na mysl ?

forward odswiezania

Kod:

forward Odswiez(playerid);
public Odswiez(playerid)
{new ss[256];
new s2[256];
format(ss, sizeof(ss), "%d%", Gracz[playerid][glod]);
format(s2, sizeof(s2), "%d%", Gracz[playerid][zmeczenie]);
TextDrawSetString(Glodz[playerid][0], ss);
TextDrawSetString(Glodz[playerid][1], s2);

if(Gracz[playerid][glod] <= 0)
{
SetPlayerHealth(playerid, 0);
}
if(Gracz[playerid][zmeczenie] <= 5)
{
SetPlayerDrunkLevel(playerid, 50000);
}
/*if(Gracz[playerid][zmeczenie] >= 6)
{
SetPlayerDrunkLevel(playerid, 0);
}*/
if(Gracz[playerid][zmeczenie] > 100)
{
Gracz[playerid][zmeczenie] = 99;
}
if(Gracz[playerid][glod] > 100)
{
Gracz[playerid][glod] = 100;
}
return 1;
}


Oraz timer:

Cytat:

SetTimer("Odswiez", 100, true);


To miales na mysli ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-05, 11:58


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Nie potrzebnie osobno, dodaj ten kod w tym co odejmuje, czyli tak by to wygl?dalo:

Kod:



forward wezglod();
public wezglod()
{
for(new i=0;i<MAX_PLAYERS;i++) {
if(!IsPlayerConnected(i)) continue;
Gracz[i][glod] = Gracz[i][glod] - 2;
Gracz[i][zmeczenie] = Gracz[i][zmeczenie] - 1;


new ss[10];
new s2[10];
format(ss, sizeof(ss), "%d", Gracz[i][glod]);
format(s2, sizeof(s2), "%d", Gracz[i][zmeczenie]);
TextDrawSetString(Glodz[i][0], ss);
TextDrawSetString(Glodz[i][1], s2);

if(Gracz[i][glod] <= 0)
{
SetPlayerHealth(i, 0);
}
if(Gracz[i][zmeczenie] <= 5)
{
SetPlayerDrunkLevel(i, 50000);
}
/*if(Gracz[i][zmeczenie] >= 6)
{
SetPlayerDrunkLevel(i, 0);
}*/
if(Gracz[i][zmeczenie] > 100)
{
Gracz[i][zmeczenie] = 99;
}
if(Gracz[i][glod] > 100)
{
Gracz[i][glod] = 100;
}
}
return 1;
}


I za du?e tablice, na co 256 znak?w do maks 4 znak?w? A no i %, chyba nie obs?uguje tego znaku w sampie

A ten forward i SetTimer usu? co da?e? wy?ej ;P

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-05, 12:10


Avira15







Wiek: 33
Na forum: 4921 dni
Posty: 34



Respekt: 50

Dziala, jestem Ci winen ogrome piwo !

Wielkie dzieki !

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-02-05, 12:15


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Prosze ;p

[clo]

Postaw piwo autorowi tego posta
 

 
Tagi: settimer :: dziala :: tylko :: dla
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