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

Wysłany: 2017-01-20, 23:49


Lisiek







Wiek: 27
Na forum: 3424 dni
Posty: 3
Nick w MP: Lisiek



Respekt: 50

Cze??!
Od 2 dni nie mog? upora? si? z pewnym problemem. Mianowicie - Chc? zrobi? odczytywanie koloru frakcji z pliki (dini_Get) - kt?re zrobi?em w nast?puj?cy spos?b:

Kod:

new fors[100];
for(new i; i < MAX_GZ_TEAMS; i++)
{
format(fors, sizeof(fors), "/Frakcje/%i.txt", i);
if(dini_Exists(fors))
{
strmid(Fraction[i][fcolor], dini_Get(fors, "fcolor"), false, strlen(dini_Get(fors, "fcolor")));
}
}


Tablica Fraction:
Kod:

enum DaneFrakcji
{
fcolor,
fonline
}
new Fraction[MAX_GZ_TEAMS][DaneFrakcji];


Wszystko niby cacy, tyko Gdy chc? pokaza? GangZone dla graczy w OnPlayerConnect:

Kod:

for (new i=0;i < GangZones; i++)
{
new string2[256];
format(string2,sizeof(string2),"ZonaID%d",i);
GangZone[i][Owner_team] = dini_Int("Zony.ini", string2);
GangZoneShowForPlayer(playerid, GangZone[ i ][ Zone_id ], Fraction[GangZone[i][Owner_team]][fcolor]);
}

To niestety GangZone dalej s? "przezroczyste" i nie maj? koloru. :/

Tutaj jeszcze tabela GangZone:
Kod:

new statyzony[200];
enum DaneZony
{
Zone_id = 0,
Owner_team,
Float:MinX,
Float:MinY,
Float:MaxX,
Float:MaxY
}
new GangZone[MAX_GANGZONES][DaneZony], GangZones;


Wie kto? jak to zrobi?? Z tego co mi si? wydaje - w GangZoneShowForPlayer kolor nie mo?e by? zmienn? typu string - bo nie odczytuje go wtedy, ale mog? si? myli?.. Za wszelk? pomoc b?d? wdzi?czny! :)

//Edit
Da si? mo?e zrobi? aby zmienna by?a odczytywana tak jak Zdefiniowany "tekst"? Tak jakbym da? #define COLOR_F1 0xFFFFFF55?

//Edit2
Dodam ?e przy /gzsc normalnie kolor GangZone si? zmienia, jednak tam zdefiniowa?em kolor w komendzie, nie jest odczytywany z zmiennej.

Kod:

dcmd_gzsc(playerid, params[])
{
new idf;
if(sscanf(params, "d", idf))
{
SendClientMessage(playerid, COLOR_GRAY, "NIET!");
}
else
{
GangZoneHideForPlayer(playerid, GetPlayerGangZone(playerid));
GangZoneShowForPlayer(playerid, GetPlayerGangZone(playerid), 0xFFFFFFFF);
}
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 13:21


BartusBartus







Wiek: 26
Na forum: 3516 dni
Posty: 78
Nick w MP: BartusBartus



Respekt: 50

Cze??. Mam ten sam problem i nie umiem go rozwi?za?.
http://gtao.pl/gang-zone-vt108632.htm

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 14:56


WWilk1







Wiek: 30
Na forum: 4700 dni
Posty: 116
Nick w MP: eep.Wilk

Piwa: 147

Respekt: 130
Respekt: 130

Wczytujesz liczbe(integer), a w ko?cu GangZoneShowForPlayer potrzebuje koloru RGBA. Z tego co pami?tam to te n?dzne dini nie ma funkcji do odczytu i zapisu koloru RGBA lub HEX.

Mo?esz zrobi? sobie w kodzie tablice z kolorami i dana liczba b?dzie indexem tej tablicy.

http://pastebin.com/nDpm6VZu

I np. GangZoneShowForPlayer(playerid, GetPlayerGangZone(playerid), PlayerColors[2]);

PlayerColors[2] zwr?ci kod 0xDC143CFF
PlayerColors[0] zwr?ci kod 0x1874CDFF

Nie jestem pewien czy ten spos?b zadzia?a.
Pami?tam ?e kiedy? by?y jakie? funkcje zmieniaj?ce string na RGBA i odwrotnie jak chcesz zapisywa? kod RGBA do pliku to poszukaj po necie.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 16:06


BartusBartus







Wiek: 26
Na forum: 3516 dni
Posty: 78
Nick w MP: BartusBartus



Respekt: 50

"WWilk1" napisał/a:

Wczytujesz liczbe(integer), a w ko?cu GangZoneShowForPlayer potrzebuje koloru RGBA. Z tego co pami?tam to te n?dzne dini nie ma funkcji do odczytu i zapisu koloru RGBA lub HEX.

Mo?esz zrobi? sobie w kodzie tablice z kolorami i dana liczba b?dzie indexem tej tablicy.

http://pastebin.com/nDpm6VZu

I np. GangZoneShowForPlayer(playerid, GetPlayerGangZone(playerid), PlayerColors[2]);

PlayerColors[2] zwr?ci kod 0xDC143CFF
PlayerColors[0] zwr?ci kod 0x1874CDFF

Nie jestem pewien czy ten spos?b zadzia?a.
Pami?tam ?e kiedy? by?y jakie? funkcje zmieniaj?ce string na RGBA i odwrotnie jak chcesz zapisywa? kod RGBA do pliku to poszukaj po necie.


M?g?by? spojrze? tutaj?
http://gtao.pl/gang-zone-vt108632.htm

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 16:54


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Problem le?y przy wczytywaniu.

Kod:

new fors[100];
for(new i; i < MAX_GZ_TEAMS; i++)
{
format(fors, sizeof(fors), "/Frakcje/%i.txt", i);
if(dini_Exists(fors))
{
strmid(Fraction[i][fcolor], dini_Get(fors, "fcolor"), false, strlen(dini_Get(fors, "fcolor")));
}
}


Kolor jest liczb?, a u?ywasz funkcji strmid do jego wczytania. Powinno by? dini_Int, zale?y jak zapisujesz ten kolor.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 18:25


Lisiek







Wiek: 27
Na forum: 3424 dni
Posty: 3
Nick w MP: Lisiek



Respekt: 50

"Combacior" napisał/a:

Problem le?y przy wczytywaniu.

Kod:

new fors[100];
for(new i; i < MAX_GZ_TEAMS; i++)
{
format(fors, sizeof(fors), "/Frakcje/%i.txt", i);
if(dini_Exists(fors))
{
strmid(Fraction[i][fcolor], dini_Get(fors, "fcolor"), false, strlen(dini_Get(fors, "fcolor")));
}
}


Kolor jest liczb?, a u?ywasz funkcji strmid do jego wczytania. Powinno by? dini_Int, zale?y jak zapisujesz ten kolor.


Hmm.. Kolor np w pliku 1.txt jest tak zapisany:
fcolor=0x009EEDAA

To jak? Mam go zapisa? przez IntSet i odczyta? przez Int? O.o

[ Dodano: 2017-01-21, 18:46 ]
"WWilk1" napisał/a:

Wczytujesz liczbe(integer), a w ko?cu GangZoneShowForPlayer potrzebuje koloru RGBA. Z tego co pami?tam to te n?dzne dini nie ma funkcji do odczytu i zapisu koloru RGBA lub HEX.

Mo?esz zrobi? sobie w kodzie tablice z kolorami i dana liczba b?dzie indexem tej tablicy.

http://pastebin.com/nDpm6VZu

I np. GangZoneShowForPlayer(playerid, GetPlayerGangZone(playerid), PlayerColors[2]);

PlayerColors[2] zwr?ci kod 0xDC143CFF
PlayerColors[0] zwr?ci kod 0x1874CDFF

Nie jestem pewien czy ten spos?b zadzia?a.
Pami?tam ?e kiedy? by?y jakie? funkcje zmieniaj?ce string na RGBA i odwrotnie jak chcesz zapisywa? kod RGBA do pliku to poszukaj po necie.


Hmm.. Dzieki wielkie za wypowied?. S?uchaj - a nie wiesz mo?e za pomoc? jakiego include m?g?bym zapisywa? takowe "RGBA"? :/

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-21, 21:58


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Ju? masz go zapisanego w postaci 0xRGBA, tylko pytanie brzmi po co? Tylko problemy sobie robisz. Kolor jest liczb?, kolor bia?y (0xFFFFFFFF) to liczba -1, mo?na go zapisa? w postaci liczby. Kolor jako integer zapisujesz normalnie

Kod:

dini_IntSet(file, "colour", 0xDC143CFF);


Kolor jako string w postaci RGBA zapisuje si? nieco inaczej

Kod:

new s[8 + 1];
format(s, sizeof s, "%08x", 0xDC143CFF);
dini_Set(file, "colour", s);


Dawno tego nie robi?em, ale powinno dzia?a?. P??niej przy wczytywaniu u?ywasz funkcji dini_Get + ta funkcja

Kod:

stock HexToInt(string[])
{
if(!string[0]) return 0;
new cur = 1, res = 0;
for(new i = strlen(string); i > 0; i--)
{
res += cur * (string[i - 1] - ((string[i - 1] < 58) ? (48) : (55)));
cur = cur * 16;
}
return res;
}


Postaw piwo autorowi tego posta
 

 
Tagi: kolor :: gangzone :: dini_get
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