Skocz do zawartości
  • 0

Matematyka/kowal


black26

Pytanie

Obserwacje:

Witam. Problem mam z działaniem skryptu. Mówiąc konkretnie napisałem jakiś czas temu skrypt na ulepszanie itemów (jak w metinie +1,+2,+3 itp.) z dodatkiem poziomów dobry normalny rzadki itp. I dotąd nie było niespodzianek. Wiec czas był aby opis przedmiotu ("obrona: 50" przykładowo) nie był tylko opisem a czemuś służył. Wiec na start zrobiłem coś .. takiego: 

on damage:
    set {lasta::%attacker%} to 0
    loop {@max} times:
        if {_cyferka5::%attacker%} is not set:
            set {_cyferka5::%attacker%} to {@max}
        if lore of attacker's tool contains "&7Atak: &c%{_cyferka5::%attacker%}%":
            set damage to damage-{_cyferka5::%attacker%}
            set {lasta::%attacker%} to damage+{_cyferka5::%attacker%}
            stop
        set {_cyferka5::%attacker%} to {_cyferka5::%attacker%}-1

Przy czym @max to liczba 500. Popełniłem co prawda błąd logiczny, bo jeśli atakujący miał 29 ataku a ofiara 30 to nie zabierało ofierze hp. (set damage to damage-{_cyferka5::%attacker%}). Ale matematyka w skrypcie działała sprawdzanie itemu itp. Wszystko było sprawne. Wiec postanowiłem zrobić dzielenie zamiast odejmowania, i tu jest problem. po zmienieniu na (set damage to damage/{_cyferka5::%attacker%}) atakujacy w moich zamiarach mający 30 ataku atakując ofiarę z 5 obrony powinno wykonać 29:5=6 i odebrać 5 hp ofierze. Zmieniłem tylko znak -/:. Postanowiliśmy znowu przetestować. Atak 30 a ofiara z obroną 30. Wynik: co dziwne ofierze nie spadło hp. 2 podejście atakujący 30 atak ofiara 3 obrony. Wynik: 0 obrażeń (czyli to samo co wcześniej). 3. Podejście ofiara bez obrony atakujący 35 atak. Wynik: To samo co wcześniej.

Pytania/problemy:

1. Czy problemem może być ze liczby otrzymane są niecałkowite?

2. Jakie błędy ewentualnie popełniłem.

3. Czy da się to skrócić/zoptymalizować i jak naprawić

Dodatkowo:

Na konsoli brak błędów, podczas robienia reload skryptu także.

Odnośnik do komentarza
https://skript.pl/temat/17697-matematykakowal/
Udostępnij na innych stronach

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

  • 0

Ogólnie w twoim skrypcie nie widzę tego systemu obrony o którym wspominasz (chyba, że mówisz o domyślnej obronie w MC). Widzę natomiast

damage-{jakaśtam zmienna na ogół większa od maksymalnych obrażeń} -> Przecież to zmniejsza zadawane obrażenia - max obr. na dobrą sprawę to diamentowy topór +sharpness V, a to jest jedynie ok. 12 obrażeń(12-30? Chcesz uleczyć przeciwnika? XD). Na co ty liczysz? :v 

 

Przede wszystkim:
 

on damage:
    set {lasta::%attacker%} to 0
    set {_cyferka5::%attacker%} to {@max}
    loop {@max} times:
        if lore of attacker's tool contains "&7Atak: &c%{_cyferka5::%attacker%}%":
            set damage to damage-{_cyferka5::%attacker%}
            set {lasta::%attacker%} to damage+{_cyferka5::%attacker%}
            stop
        set {_cyferka5::%attacker%} to {_cyferka5::%attacker%}-1

Chyba, że po prostu ja czegoś nie rozumiem, więc proszę o logiczne wyjaśnienie. Teraz po krótce

 

1. Skrypt powinien sam zaokrąglać; jeśli jednak tego nie robi, to może to być problem

2. Czekam

3. Choćby wyrzucenie tego (set {_cyf...}), co zrobiłem wyżej.

Odnośnik do komentarza
https://skript.pl/temat/17697-matematykakowal/#findComment-121037
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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