Skocz do zawartości
  • 0

Wypadanie połowy itemów po śmierci - błąd


Pytanie

W dniu 5.11.2020 o 02:06, xAxee napisał:

on death of player:
    loop drops:
        chance of 50%:
            add loop-value to player
            remove loop-value from drops

 

Witam mam problem, ten skrypt mi nie działa, itemy nie zostają w ekwipunku.

Nieaktywny

Wydzielam do nowego tematu.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/
Udostępnij na innych stronach

17 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Koniecznie powiedz jaki błąd otrzymujesz.

No i tak na logikę, wydaje mi się, że loop value powinieneś zamienić w listę, czy inną zmienną (ja nie w temacie skriptu)

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287018
Udostępnij na innych stronach

  • 0
4 godziny temu, Szami992 napisał:

Witam mam problem, ten skrypt mi nie działa, itemy nie zostają w ekwipunku.

e eventach 'on damage' oraz 'on death' nie używamy 'player' tylko 'victim' oraz 'attacker'

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287024
Udostępnij na innych stronach

  • 0
4 godziny temu, Szami992 napisał:

Witam mam problem, ten skrypt mi nie działa, itemy nie zostają w ekwipunku.

Na początek to w ogóle wyjaśnij co ty próbujesz osiągnąć tym kodem.

EDIT:

@PanMaruda Zamieścił 'player' w evencie, więc skrypt zadziała. W tym wypadku 'player' to 'victim'.

Szczerze o dziwo i bez tego by zadziałało.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287025
Udostępnij na innych stronach

  • 0
3 minuty temu, Kormic napisał:

Na początek to w ogóle wyjaśnij co ty próbujesz osiągnąć tym kodem.

Chce osiągnąć aby po śmierci gracza, zostawała mu  połowa itemów w ekwipunku, a druga wypadała na ziemie.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287026
Udostępnij na innych stronach

  • 0
7 minut temu, Szami992 napisał:

Chce osiągnąć aby po śmierci gracza, zostawała mu  połowa itemów w ekwipunku, a druga wypadała na ziemie.

50% nie oznacza połowę, a 50% szans na usunięcie danego przedmiotu z listy dropów. Na twoim miejscu zrobiłbym to tak:

  • sprawdzasz czy lista 'drops' jest ustawiona (is set)
  • sprawdzasz rozmiar listy 'drops' i dzielisz ją przez 2 oraz wynik zaokrąglasz z pomocą funkcji round() lub floor(), to już zależy tylko i wyłącznie od ciebie (ja bym wybrał floor())
  • używamy pętli 'loop x times', gdzie x to wyżej zaokrąglony wynik
  • usuwamy losowy element z listy 'drops', czyli 'remove (random element out of drops) from drops'

I tyle.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287027
Udostępnij na innych stronach

  • 0
2 godziny temu, Kormic napisał:

50% nie oznacza połowę, a 50% szans na usunięcie danego przedmiotu z listy dropów. Na twoim miejscu zrobiłbym to tak:

  • sprawdzasz czy lista 'drops' jest ustawiona (is set)
  • sprawdzasz rozmiar listy 'drops' i dzielisz ją przez 2 oraz wynik zaokrąglasz z pomocą funkcji round() lub floor(), to już zależy tylko i wyłącznie od ciebie (ja bym wybrał floor())
  • używamy pętli 'loop x times', gdzie x to wyżej zaokrąglony wynik
  • usuwamy losowy element z listy 'drops', czyli 'remove (random element out of drops) from drops'

I tyle.

A pomógłbyś to napisać ?

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287056
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

A czego nie rozumiesz?

Od niedawna próbuje coś pisać tylko że za wiele nie potrafię, więc mniej więcej wiem o co chodzi tylko nie wiem jak to całe napisać. Będę wdzięczny jak byś początek napisał a resztę mogę spróbować sam.

 

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287059
Udostępnij na innych stronach

  • 0
2 minuty temu, Szami992 napisał:

Od niedawna próbuje coś pisać tylko że za wiele nie potrafię, więc mniej więcej wiem o co chodzi tylko nie wiem jak to całe napisać. Będę wdzięczny jak byś początek napisał a resztę mogę spróbować sam.

 

Nie no, tak nie będzie. Nie będę ci pisał kodu.

Podaj dokładnie gdzie się gubisz, a ja ci to wyjaśnię tak przystępnie jak to tylko możliwe. Musisz też samemu wykazać inicjatywę, ja za ciebie tego nie zrobię.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287060
Udostępnij na innych stronach

  • 0
12 minut temu, Kormic napisał:

Nie no, tak nie będzie. Nie będę ci pisał kodu.

Podaj dokładnie gdzie się gubisz, a ja ci to wyjaśnię tak przystępnie jak to tylko możliwe. Musisz też samemu wykazać inicjatywę, ja za ciebie tego nie zrobię.

To jakbyś mógł pomóc z tą listą, resztę chyba ogarnę.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287064
Udostępnij na innych stronach

  • 0
1 minutę temu, Szami992 napisał:

To jakbyś mógł pomóc z tą listą, resztę chyba ogarnę.

Lista 'drops' to jest to samo co użyłeś w twoim skrypcie. Mogę dodać, że rozmiar jej sprawdzisz poprzez 'size of drops'.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287065
Udostępnij na innych stronach

  • 0
3 godziny temu, Kormic napisał:

Lista 'drops' to jest to samo co użyłeś w twoim skrypcie. Mogę dodać, że rozmiar jej sprawdzisz poprzez 'size of drops'.

takie coś ?

on death of player:
    {_drops::*}
    set size of {_drops::*}

 

Edytowane przez xNightix_
Nieaktywny

Umieszczam kod w code.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287101
Udostępnij na innych stronach

  • 0
12 minut temu, Szami992 napisał:

takie coś ?


on death of player:
    {_drops::*}
    set size of {_drops::*} to drop

 

Nie, nie. Użyj po prostu 'drops', nie twórz nowej listy, gdyż wpływanie na nią i tak nie zmieni w ogóle dropu.

Druga linijka w ogóle nie ma sensu.

Jeżeli nie odnajdujesz się w tym, poszukaj poradników do Skripta, pełno ich jest, każdy to wyjaśnił na swój własny sposób. Następnie zabierz się za to i zrób to.

Edytowane przez xNightix_
Nieaktywny

Naprawiam cytat.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287102
Udostępnij na innych stronach

  • 0
14 godzin temu, Kormic napisał:

Nie, nie. Użyj po prostu 'drops', nie twórz nowej listy, gdyż wpływanie na nią i tak nie zmieni w ogóle dropu.

Druga linijka w ogóle nie ma sensu.

Jeżeli nie odnajdujesz się w tym, poszukaj poradników do Skripta, pełno ich jest, każdy to wyjaśnił na swój własny sposób. Następnie zabierz się za to i zrób to.

Teraz okej czy dalej źle ?

on death of player:
    drops:
    set size of drops to {zmienna}
    set {wynik} to {zmienna} / 2
    floor({wynik})

 

Edytowane przez xNightix_
Nieaktywny

Umieszczam kod w code.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287175
Udostępnij na innych stronach

  • 0
1 godzinę temu, Szami992 napisał:

Teraz okej czy dalej źle ?

Dalej źle. Druga linijka jest całkowicie zbędna, a w dodatku błędna.

Poza tym ty nie masz ustawiać rozmiaru listy 'drops' na {zmienna}, która i tak jest nieustawiona, a masz zapisać w {zmienna} rozmiar listy 'drops'.

Powinieneś użyć tutaj w tym skrypcie lokalnej zmiennej (czyli {_zmienna}, podłoga na początku nazwy robi różnicę, gdyż zmienna się czyści po wykonaniu kodu).

Powinieneś również ustawić '{wynik}' jako 'floor({wynik})'.

Później zapętlasz sobie i resztę potrzebnych rzeczy masz w moim drugim poście.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287219
Udostępnij na innych stronach

  • 0
11 godzin temu, Kormic napisał:

Dalej źle. Druga linijka jest całkowicie zbędna, a w dodatku błędna.

Poza tym ty nie masz ustawiać rozmiaru listy 'drops' na {zmienna}, która i tak jest nieustawiona, a masz zapisać w {zmienna} rozmiar listy 'drops'.

Powinieneś użyć tutaj w tym skrypcie lokalnej zmiennej (czyli {_zmienna}, podłoga na początku nazwy robi różnicę, gdyż zmienna się czyści po wykonaniu kodu).

Powinieneś również ustawić '{wynik}' jako 'floor({wynik})'.

Później zapętlasz sobie i resztę potrzebnych rzeczy masz w moim drugim poście.

Tu powinno być lepiej tylko jest jeden problem to działa ale ta połowa itemków znika a nie zostaje w ekwipunku.

on death of player:
    loop floor(size of drops / 2) times:
        remove random element out of drops

 

Nieaktywny

Umieszczam kod w code.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287429
Udostępnij na innych stronach

  • 0
1 minutę temu, Szami992 napisał:

Tu powinno być lepiej tylko jest jeden problem to działa ale ta połowa itemków znika a nie zostaje w ekwipunku.

on death of player:
    loop floor(size of drops / 2) times:
        remove random element out of drops

Zobacz mój drugi post, tam masz poprawną linijkę.

Jeżeli to nie zadziała (a zapewne nie zadziała), zrobimy to inaczej.

Dodawaj usuwany przedmiot z 'drops' do jakiejś listy globalnej (np. {deathDrops::%victim%::*}).

Następnie w evencie 'on respawn' sprawdzaj czy ta lista jest ustawiona. Jeżeli jest, zapętlasz ją (loop {deathDrops::%player%::*}) i dajesz 'loop-value' graczowi.

Odnośnik do komentarza
https://skript.pl/temat/45554-wypadanie-po%C5%82owy-item%C3%B3w-po-%C5%9Bmierci-b%C5%82%C4%85d/#findComment-287446
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...