Skocz do zawartości
Tweekaz

[ROZWIĄZANY]MoveDynamicObject i pętla.

Rekomendowane odpowiedzi

Myślałem, że nigdy już nie napiszę w tym dziale pomocy, ale jednak... :(
O to kod:

 

    podnosniksalongielda = CreateDynamicObject(19426, 1024.26025, 1232.28271, 11.32550,   0.00000, 90.00000, 0.00000,0,0,-1,500,500);
    CreateDynamicObject(19426, 1024.26025, 1235.28271, 11.32550,   0.00000, 90.00000, 0.00000,0,0,-1,500,500);
    CreateDynamicObject(19426, 1020.76398, 1232.28271, 11.32550,   0.00000, 90.00000, 0.00000,0,0,-1,500,500);
    CreateDynamicObject(19426, 1020.76398, 1235.28271, 11.32550,   0.00000, 90.00000, 0.00000,0,0,-1,500,500);
    for(new podsalgielda; podsalgielda < 4; podsalgielda++)
    SetDynamicObjectMaterial(podnosniksalongielda+podsalgielda, 0,  6287, "pierc_law2", "bluemetal");
    return 1;
}

CMD:gpodnosnik(playerid)
{
    if(podnoskikgieldadol == true)
    {
        new Float:podnosnikpos[3];
        for(new podnosnikgielda; podnosnikgielda < 4; podnosnikgielda++)
        GetDynamicObjectPos(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2]);
        for(new podnosnikgielda; podnosnikgielda < 4; podnosnikgielda++)
        MoveDynamicObject(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2] - 4, 2.00);
        podnoskikgieldadol = false;
    }
    else
    {
        
     new Float:podnosnikpos[3];
        for(new podnosnikgielda; podnosnikgielda < 4; podnosnikgielda++)
        GetDynamicObjectPos(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2]);
        for(new podnosnikgielda; podnosnikgielda < 4; podnosnikgielda++)
        MoveDynamicObject(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2] + 4, 2.00);
        podnoskikgieldadol = true;
    }
    return 1;
}

    

 

 

 

No i tak jakby pobrało kordy tylko z jednego obiektu, a powinno z czterech i wtedy wszystkie 4 podnośniki przesuwają się w jedno miejsce, a chce żeby tylko wysokość sobie zmieniały każy osobny podnośnik

Edytowane przez Tweekaz

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
        for(new podnosnikgielda; podnosnikgielda < 4; podnosnikgielda++)
        GetDynamicObjectPos(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2]);

Pobiera Ci jedną pozycję, a zapętla się cztery razy. 

for(new podnosnikgielda; podnosnikgielda < 4; podnosnikgielda++)
        MoveDynamicObject(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2] - 4, 2.00);

Porusza ten sam obiekt (?) o tą samą pozycję przez cztery razy. 

Te pętle nie mają co inkrementować skoro są stałe wartości, stąd też wykonuje się cały czas to samo. Załóżmy że masz sprawdzić przy jakich drzwiach znajduję się Gracz, tyle że tych wszystkich drzwi masz aż 50. Jak sprawdzić? Puszczasz pętle, która sprawdza wszystkie drzwi czyli drzwi[i] --> i++. 

Edytowane przez Frank

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
for(new podnosnikgielda; podnosnikgielda < 4; podnosnikgielda++) {
        GetDynamicObjectPos(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2]);
        MoveDynamicObject(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2] - 4, 2.00);
}

W jednej pętli pobieraj i przesuwaj, inaczej masz tylko pozycje ostatniego obiektu. Post Franka zignoruj. Jest bez sensu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
2 godziny temu, bocian941 napisał:

for(new podnosnikgielda; podnosnikgielda < 4; podnosnikgielda++) {
        GetDynamicObjectPos(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2]);
        MoveDynamicObject(podnosniksalongielda+podnosnikgielda,podnosnikpos[0],podnosnikpos[1],podnosnikpos[2] - 4, 2.00);
}

W jednej pętli pobieraj i przesuwaj, inaczej masz tylko pozycje ostatniego obiektu. Post Franka zignoruj. Jest bez sensu.

Sam jesteś bez sensu, przecież są źle użyte pętle całość to chaos. 

Edytowane przez Frank

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
podnosniksalongielda = CreateDynamicObject(
CreateDynamicObject(
CreateDynamicObject(
CreateDynamicObject(

Naucz się czytać kod zanim zaczniesz zwracać ludziom uwagę, podnosniksalongielda to ID pierwszego obiektu, podnosniksalongielda+1 kolejnego, podnosniksalongielda+3 to ostatni. W pętli jako argument ID użyte jest podnosniksalongielda+podnosnikgielda czyli ID+0 do ID+3, że tobie trzeba tłumaczyć prosty kod.. Ps. proszę nie kompromituj się komentarzem, że tak jest źle a ty zrobił byś inaczej bo sposób jest całkiem dobry przyjmując, że obiekty od tej komendy nie są nigdy usuwane.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
35 minut temu, bocian941 napisał:

podnosniksalongielda = CreateDynamicObject(
CreateDynamicObject(
CreateDynamicObject(
CreateDynamicObject(

Naucz się czytać kod zanim zaczniesz zwracać ludziom uwagę, podnosniksalongielda to ID pierwszego obiektu, podnosniksalongielda+1 kolejnego, podnosniksalongielda+3 to ostatni. W pętli jako argument ID użyte jest podnosniksalongielda+podnosnikgielda czyli ID+0 do ID+3, że tobie trzeba tłumaczyć prosty kod.. Ps. proszę nie kompromituj się komentarzem, że tak jest źle a ty zrobił byś inaczej bo sposób jest całkiem dobry przyjmując, że obiekty od tej komendy nie są nigdy usuwane.

Faktycznie, masz rację więc zwracam honor. Nie jestem przyzwyczajony do takiego pierdolnika.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
3 godziny temu, Frank napisał:

Faktycznie, masz rację więc zwracam honor. Nie jestem przyzwyczajony do takiego pierdolnika.

To zacznij bo Twoje posty są podobnie bezsensowne jak użycie tego.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
18 minut temu, DaGaXeR napisał:

To zacznij bo Twoje posty są podobnie bezsensowne jak użycie tego.

Pomyliłem się, przyznałem rację. Skończ mnie nękać, bo w 'sensowności' postów jesteś za mną. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
5 godzin temu, bocian941 napisał:

podnosniksalongielda = CreateDynamicObject(
CreateDynamicObject(
CreateDynamicObject(
CreateDynamicObject(

Naucz się czytać kod zanim zaczniesz zwracać ludziom uwagę, podnosniksalongielda to ID pierwszego obiektu, podnosniksalongielda+1 kolejnego, podnosniksalongielda+3 to ostatni. W pętli jako argument ID użyte jest podnosniksalongielda+podnosnikgielda czyli ID+0 do ID+3, że tobie trzeba tłumaczyć prosty kod.. Ps. proszę nie kompromituj się komentarzem, że tak jest źle a ty zrobił byś inaczej bo sposób jest całkiem dobry przyjmując, że obiekty od tej komendy nie są nigdy usuwane.

Oczywiście wiesz że id obiektów w streamerze nie jest pokolei 1 2 3 ...
bo jak skasujemy obiekt id 2 to jego slot sie zwalnia dla kolejnego zbudowanego, tak wiec glupota jest podpisac jeden obiekt a reszte olać :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×