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

Wysłany: 2013-06-28, 15:55


matiosek70







Wiek: 29
Na forum: 5213 dni
Posty: 58

Piwa: 64

Respekt: 50

Witam zrobi?em system energi i mam problem taki ?e jak energia spada do 0 to nie zatrzymuje sie tylko leci -1, -2, -3 ... itd. Oraz gry gracz wbije na serwer ma 0 energi na start a chcia?bym ?eby mia? 700.

G?ra mapy:
Kod:

new E[MAX_PLAYERS];
new Text:energia[MAX_PLAYERS];


Textdraw
Kod:

for(new i=0;i<MAX_PLAYERS;i++)
{
energia[i] = TextDrawCreate(65.000000, 435.000000, "E:");
TextDrawBackgroundColor(energia[i], 255);
TextDrawFont(energia[i], 1);
TextDrawLetterSize(energia[i], 0.500000, 1.300000);
TextDrawColor(energia[i], -65281);
TextDrawSetOutline(energia[i], 1);
TextDrawSetProportional(energia[i], 1);
}


Ongamemodeinit
Kod:

SetTimer("Energia", 1000, true); //system energi
SetTimer("odejmije", 20000, true); //odejmuje e co 20 s
SetTimer("sprawdze", 1000, true); //sprawdza ilo?c e co 1 s


OnplayerConnect
Kod:

TextDrawShowForPlayer(i, energia[i]);


Callback na ?adowanie sie energi
Kod:

forward Energia();
public Energia()
{
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(i,50.0, 2252.4897,2486.6354,10.9908))
{
TextDrawShowForPlayer(i, plusik1[i]);
TextDrawShowForPlayer(i, plusik2[i]);
E[i]++;
}
else
{
TextDrawHideForPlayer(i, plusik1[i]);
TextDrawHideForPlayer(i, plusik2[i]);
}
}
}
return 1;
}


Oraz jeszcze formatowanie textdrawa i odejmowanie energi
Kod:

forward odejmije(playerid);
public odejmije(playerid)
{
E[playerid]--;
return 1;
}

forward sprawdze(playerid);
public sprawdze(playerid)
{
for(new i;i<MAX_PLAYERS;i++)
{
new string[300];
format(string, sizeof(string), "E: %d", E[i]);
TextDrawSetString(energia[i], string);
if(E[playerid] <= 50)
{
format(string, sizeof(string), "E: ~r~%d", E[i]);
TextDrawSetString(energia[i], string);
}
if(E[playerid] <= 0)
{
format(string, sizeof(string), "E: ~r~-");
TextDrawSetString(energia[i], string);
}
}
return 1;
}



Z g?ry thx za pomoc. Daje oczywi?cie respa i piwka ;D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-06-28, 16:16


xqz

otaku desu!






Wiek: 32
Na forum: 6406 dni
Posty: 723
Nick w MP: xqz

Piwa: 5465

Respekt: 418,6
Respekt: 418,6

Kod:


forward sprawdze();
public sprawdze()
{
for(new i;i<MAX_PLAYERS;i++)
{
if(E[i] > 0)
E[i]--;
new string[300];
format(string, sizeof(string), "E: %d", E[i]);
TextDrawSetString(energia[i], string);
if(E[playerid] <= 50)
{
format(string, sizeof(string), "E: ~r~%d", E[i]);
TextDrawSetString(energia[i], string);
}
if(E[playerid] <= 0)
{
format(string, sizeof(string), "E: ~r~-");
TextDrawSetString(energia[i], string);
}
}
return 1;
}



Timer sprawdze + energia mozna polaczyc bo oba wykonuja sie po sekundzie.



Po za tym, w OnPlayerConnect dodaj:
Kod:

E[playerid] = 700;


Ostatnio zmieniony przez xqz 2013-06-28, 17:00, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Tagi: energia
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






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