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

Wysłany: 2016-12-30, 12:34


Mac







Wiek: 28
Na forum: 4136 dni
Posty: 133
Nick w MP: Mac

Piwa: 27

Respekt: 130
Respekt: 130

Cze??,

pr?buje stworzy? komendy /showid /hideid do ukazywania ID obiekt?w (na obiekcie label). Korzystam ze streamera Incognito i tutaj si? pojawia problem, gdy? ci??ko jest okre?li? rozmiar zmiennej do zapisywania id stworzonego labela gdy? tych obiekt?w mog? by? tysi?ce. Aktualnie mam tak? komend?:

Pawn

new Text3D:object_label[5000];
CMD:showid(playeridparams[])
{
    if(IsPlayerAdmin(playerid) || PlayerData[playerid][admin])
    {
        new string[12], objectid 0;
        for(new numnum Streamer_GetUpperBound(STREAMER_TYPE_OBJECT); num++)
        {
            if(!IsValidDynamicObject(num)) continue;
            if(!Streamer_GetIntData(STREAMER_TYPE_OBJECTnumE_STREAMER_EXTRA_ID)) continue;

            new Float:pos[3];
            Streamer_GetFloatData(STREAMER_TYPE_OBJECTnumE_STREAMER_Xpos[0]);
            Streamer_GetFloatData(STREAMER_TYPE_OBJECTnumE_STREAMER_Ypos[1]);
            Streamer_GetFloatData(STREAMER_TYPE_OBJECTnumE_STREAMER_Zpos[2]);

            format(stringsizeof(string), "ID: %d"num);
            object_label[objectid] = CreateDynamic3DTextLabel(string, -1,  pos[0], pos[1], pos[2], 5.0);
            objectid++;
            //Streamer_SetIntData(STREAMER_TYPE_OBJECT, num, E_STREAMER_COLOR, object_label); Pr?bowa?em nawet zapisywa? id labelu do E_STREAMER_COLOR, lecz wyskakuje b??d tag mismatch
            //objectid++;
        }
    }
    return 1;
}


Wszystko by by?o dobrze, gdyby nie fakt, ?e kiedy? tych obiekt?w mo?e by? wi?cej ni? 5000. Ma kto? pomys? jak to rozwi?za??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-12-30, 12:56


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
W polu E_STREAMER_EXTRA_ID mo?esz zapisa? ca?? tablic? danych, czyli wi?cej ni? jedn? rzecz.

Kod:

Streamer_AppendArrayData(STREAMER_TYPE_OBJECT, objectid, E_STREAMER_EXTRA_ID, costam);
labelid = CreateDynamic3DTextLabel(...);
Streamer_AppendArrayData(STREAMER_TYPE_OBJECT, objectid, E_STREAMER_EXTRA_ID, labelid);

//dalej
new jakasTablica[2]; //tutaj zmien sobie rozmiar, zalezy ile informacji ma byc przechowywane
if(!Streamer_GetArrayData(STREAMER_TYPE_OBJECT, objectid, E_STREAMER_EXTRA_ID, jakasTablica)) continue;

new labelid = jakasTablica[1];
...


Pseudo-kod, popraw sobie.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-12-30, 13:05


Mac







Wiek: 28
Na forum: 4136 dni
Posty: 133
Nick w MP: Mac

Piwa: 27

Respekt: 130
Respekt: 130

Niestety, nie da si? zapisa? do tego id labelu, m?j kod:
Pawn

CMD:showid(playeridparams[])
{
    if(IsPlayerAdmin(playerid) || PlayerData[playerid][admin])
    {
        new string[12];
        for(new numnum Streamer_GetUpperBound(STREAMER_TYPE_OBJECT); num++)
        {
            if(!IsValidDynamicObject(num)) continue;
            if(!Streamer_GetIntData(STREAMER_TYPE_OBJECTnumE_STREAMER_EXTRA_ID)) continue;

            new Float:pos[3];
            Streamer_GetFloatData(STREAMER_TYPE_OBJECTnumE_STREAMER_Xpos[0]);
            Streamer_GetFloatData(STREAMER_TYPE_OBJECTnumE_STREAMER_Ypos[1]);
            Streamer_GetFloatData(STREAMER_TYPE_OBJECTnumE_STREAMER_Zpos[2]);

            format(stringsizeof(string), "ID: %d"num);
            new Text3D:labelid CreateDynamic3DTextLabel(string, -1,  pos[0], pos[1], pos[2], 5.0);
            Streamer_AppendArrayData(STREAMER_TYPE_OBJECTnumE_STREAMER_EXTRA_IDlabelid);
            //Streamer_SetIntData(STREAMER_TYPE_OBJECT, num, E_STREAMER_COLOR, object_label);
            //object_++;
        }
    }
    return 1;
}


I b??d...
Kod:


C:\Users\Konrad\Desktop\Serwer\gamemodes\mapa.pwn(16058) : warning 213: tag mismatch


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-12-30, 13:14


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Kod:

new Text3D:labelid = CreateDynamic3DTextLabel(string, -1, pos[0], pos[1], pos[2], 5.0);
Streamer_AppendArrayData(STREAMER_TYPE_OBJECT, num, E_STREAMER_EXTRA_ID, _:labelid);


Aczkolwiek nie wiem, czy dobrze to ID zostanie zwr?cone. Jak nie spos?b wy?ej, to ten

Kod:

enum e_Enum
{
liczba,
Text3D:label
}
new abc[e_Enum];
abc[label] = CreateDynamic3DTextLabel(string, -1, pos[0], pos[1], pos[2], 5.0);
Streamer_SetArrayData(STREAMER_TYPE_OBJECT, num, E_STREAMER_EXTRA_ID, abc);


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-12-30, 13:51


Mac







Wiek: 28
Na forum: 4136 dni
Posty: 133
Nick w MP: Mac

Piwa: 27

Respekt: 130
Respekt: 130

Dzi?ki, na razie pierwszy spos?b dzia?a. Lecz jeszcze jeden problem, tym razem z usuni?ciem labela danego obiektu. Przy usuni?ciu obiektu i w??czonych labelach (/showid) chcia?bym aby label obiektu te? znikn??, lecz to cholerne tag mismath..

Kod:
Pawn

new values[2];
Streamer_GetArrayData(STREAMER_TYPE_OBJECTobjectidE_STREAMER_EXTRA_IDvalues);
DestroyDynamic3DTextLabel(values[1]); // tutaj b??d pr?bowa?em nawet wpisywa?, _:values[1] ale to nic nie da?o...
DestroyDynamicObject(objectid);


Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-12-30, 14:07


WWilk1







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

Piwa: 147

Respekt: 130
Respekt: 130

warning 213: tag mismatch dlatego Ci wyskakuje, bo definiujesz zmienn? bez Text3D: dodaj do tworzonej zmiennej. Przyk?ad new Text3D:values[2];

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-12-30, 14:12


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Podczas zapisu usuwasz ten tag poprzez u?ycie _: wi?c teraz trzeba ten tag doda?

Kod:

DestroyDynamic3DTextLabel(Text3D:values[1]);


Takie troch? kombinowanie, dlatego moim zdaniem, lepiej by?oby skorzysta? z tego sposobu z enum'em.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-12-30, 14:18


Mac







Wiek: 28
Na forum: 4136 dni
Posty: 133
Nick w MP: Mac

Piwa: 27

Respekt: 130
Respekt: 130

Kombinowane, ale jak to m?wi? - najwa?niejsze, ?e dzia?a. :E Dzi?ki jeszcze raz! Temat mo?na zamkn??, dalej my?l?, ?e sobie poradz?. :D

My?la?em, ?e w E_STREAMER_EXTRA_ID, mo?na zapisa? tylko jedn? warto??. :D

Postaw piwo autorowi tego posta
 

 
Tagi: komenda :: ukazująca :: obiektów
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