Witam i od razu przepraszam że ostatnio często o coś proszę
Proszę o napisanie skryptu który będzie losował dwie linijki po 6 liczb zakres to od 1 do 6. po czym z sumowanie liczb w każdym z rzędów i porównanie ich. Jeżeli pierwszy rząd wygra wo wyświetla się napis Wygrywasz, a jeżeli to suma drugiego jest większa to wyświetla Przegrywasz. Jeszcze nad pierwszą kolumną by był wyświetlany napis Twój rzut, a nad drugą Rzut przeciwnika.
Dodatkowa prośba
Gdyby można przypisać liczbą losującym 1,2,3,4,5,6 grafikę kości.
Rozumiem, że to ma wyglądać w ten sposób:
podchodzimy do gościa i po krótkiej rozmowie zaczynamy grę w kości. Następuje losowanie 6 kości przeciwnika i 6 naszych kości, po czym wyskakuje napis, czy przegraliśmy, czy wygraliśmy.
Czy chcesz, żeby kości wyświetliły się natychmiast, po pokazaniu się okienka, czy może w jakichś odstępach czasu
Czy kości mają mieć jakąś konkretną grafikę Jeśli tak, to wrzuć tu grafiki (lub przynajmniej podaj ich wymiary), jeśli nie, to stworzę je za pomocą "rysowania" w skrypcie.
Czy ma to być jedno okienko Na całym ekranie
Czy będziesz chciała dodać dźwięki rzutu kością lub na zakończenie losowania (sama ustalisz jakie)
Jeśli nie opiszesz tego dokładnie, to zrobię to po swojemu
Jeszcze jedno: nie wiem ile dokładnie zajmie mi robienie tego skryptu (ale nie jakoś strasznie długo ). Jak będę wiedzieć ile w przybliżeniu mi to zamie, to dam Ci znać
1. Może być w czasie podstawowego jednego Czekaj
2 Nie nie mam żadnej konkretnej grafiki
3 fajnie by było ale jeżeli będziesz miała z tym problemy to się nie kłopocz
4. Dźwięk rzutu kośćmi byłby fajny (tylko gdzie ja go znajdę :P)
Wszystkie kolorki będzie można sobie ustawić. Jak chcesz cokolwiek zmienić, to napisz. Mechaniki jeszcze nie zrobiłam. Jak widać skrypt w ciągu kilku najbliższych dni będziesz mieć
=begin
*****************************************************************************
* Gra w kości *
* Autor: Avara *
* Wersja: 1.0 *
* utimateam.pl *
********************************************************************************
Skrypt na jednorundową grę w kości z jednym przeciwnikiem. Każdy rzuca sześ-
cioma kośćmi, których liczba oczek jest sumowana. Ten kto uzyska wyższy wynik
wygrywa.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Wywoływanie skryptu ~
W zdarzeniu za pomocą polecenia "Script..." wpisujemy:
Kosci.new("IMIĘ PRZECIWNIKA", "NAZWA", NUMER)
IMIĘ PRZECIWNIKA - imię jakie ma mieć nasz przeciwnik;
NAZWA - nazwa pliku z twarzami w folderze "Graphics/Faces";
NUMER - numer twarzy od 0 do 7.
Przykład:
Kości.new("Ralph", "Actor1", 0)
Po wywołaniu skryptu najlepiej jest dać polecenie "Czekaj: 1"/"Wait: 1 frame".
Pozwoli to zapobiec błędom w odczytaniu kolejnych poleceń zdarzenia.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Wynik ~
Na koniec gry wynik jest zapisywany za pomocą ustalonej zmiennej. Dzięki temu
dalszy ciąg rozmowy może być zależny od wyniku gry. Znaczenie jej wartości:
0 - przegrana;
1 - wygrana;
2 - remis.
=end
module Avara # <- Nie ruszać!
module Gra_W_Kosci # <- Nie ruszać!
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ KONFIGURACJA ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ZMIENNA = 13 # Numer zmiennej, określającej wynik gry.
BGM_MAPA = true # Czy muzyka z mapy ma nadal grać podczas gry?
BGM = false # Czy chcesz ustawić własną muzykę?
# Gdy oba powyższe są na "false", podczas gry nie ma włączonej żadnej muzyki.
SE_KOSCI = 2 # 0 - brak dźwięków podczas rzucania kośćmi;
# 1 - dźwięk występuje tylko przy rzucie pierwszej kości;
# 2 - dźwięk przy pokazaniu się każdej kości.
SE_KONIEC = true # Czy ma być odgrywany dźwięk przy pokazaniu wyniku?
module Napisy # <- Nie ruszać!
RAZEM = "Razem: " # Napis przed sumą liczby oczek.
KOLEJ = "Rzuca " # Napis przed imieniem gracza, który właśnie rzuca.
WYGRANA = "WYGRAŁEŚ!" # Napis, gdy wygramy.
PRZEGRANA = "PRZEGRAŁEŚ!" # Napis, gdy przegramy.
REMIS = "REMIS!" # Napis, gdy nastąpi remis.
end # <- Nie ruszać!
module Kolory # <- Nie ruszać!
# Kolory przyjmują numery od 0 do 31, które można sprawdzić w pliku "Window",
# znajdującego się w folderze "Graphics/System" (kwadraciki w prawym dolnym rogu).
IMIONA = 3 # Kolor imion.
KOSCI = 4 # Kolor kości i kropek.
RAZEM = 3 # Kolor napisu przed sumą oczek.
SUMA = 0 # Kolor cyfr wyrażających sumę oczek.
KOLEJ = 0 # Kolor napisu określającego czyja jest kolej.
WYGRANA = 3 # Kolor napisu, gdy wygramy.
PRZEGRANA = 2 # Kolor napisu, gdy przegramy.
REMIS = 14 # Kolor napisu, gdy nastąpi remis.
end # <- Nie ruszać!
module Przerwy # <- Nie ruszać!
# Przerwy pomiędzy kolejnymi zdarzeniami. Długa następuje po pojawieniu się po
# wyświetleniu, kto rzuca, a przed pojawieniem się pierwszej kości oraz po wyś-
# wietleniu ostatniej z nich. W pozostałych miejscach następuje przerwa krótka.
# 1 sekunda = 60
DLUGA = 80
KROTKA = 30
end # <- Nie ruszać!
module Dzwieki # <- Nie ruszać!
# BGMy muszą być w folderze "Audio/BGM", zaś dźwięki SE w folderze "Audio/SE".
BGM = "Town4" # Nazwa BGMu, gdy mamy włączony własny BGM
# (patrz 35. linijka skryptu).
KOSCI = "Cursor" # Nazwa SE odgrywanego przy rzucie kośćmi (37. linijka).
WYGRANA = "Cat" # SE, gdy wygramy (patrz 40. linijka skryptu).
PRZEGRANA = "Cow" # SE, gdy przegramy (patrz 40. linijka skryptu).
REMIS = "Crow" # SE, gdy nastąpi remis (patrz 40. linijka skryptu).
GLOSNOSC_SE = 60 # Głośność wszystkich użytych tu SE.
GLOSNOSC_BGM = 60 # Głośność BGMa, gdy używamy własnego (35. linijka).
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ KONIEC KONFIGURACJI ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#~~~~~~~~~~ DALEJ NIE ZMIENIAĆ! CHYBA ŻE NA WŁASNĄ ODPOWIEDZIALNOŚĆ! ~~~~~~~~~~~
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
end
end
end
class Kosci
def initialize(imie, twarz_nazwa, twarz_nr)
$scene = Scene_Av_Gra_W_Kosci.new(imie, twarz_nazwa, twarz_nr)
end
end
def terminate
dispose_menu_background
@okno.dispose
end
def update
@czas += 1 unless @koniec == true
if @kolej
if @czas == DLUGA
Audio.se_play("Audio/SE/" + KOSCI, GLOSNOSC_SE) if
Avara::Gra_W_Kosci::SE_KOSCI >= 1
rzut; @kolej = false; @rzut = true
end
elsif @rzut
if @czas == KROTKA and @kosc != 6
Audio.se_play("Audio/SE/" + KOSCI, GLOSNOSC_SE) if
Avara::Gra_W_Kosci::SE_KOSCI == 2
rzut
elsif @czas == DLUGA and @kosc == 6
@rzut = false; @kosc = 0; @czas = 0
if @kto == 1; kolej
elsif @kto == 2; @wynik = true; end
end
elsif @wynik
if @czas == KROTKA
if @suma[1] > @suma[2]; wynik = 0; se = PRZEGRANA
elsif @suma[1] < @suma[2]; wynik = 1; se = WYGRANA
elsif @suma[1] == @suma[2]; wynik = 2; se = REMIS; end
$game_variables[Avara::Gra_W_Kosci::ZMIENNA] = wynik
@okno.wynik(wynik); @wynik = false; @koniec = true
Audio.se_play("Audio/SE/" + se, GLOSNOSC_SE) unless
Avara::Gra_W_Kosci::SE_KONIEC == false
end
elsif @koniec
if Input.trigger?(Input::C) or Input.trigger?(Input::B)
$scene = Scene_Map.new; $game_map.autoplay
end
else
if @czas == KROTKA; @czas = 0; kolej; end
end
end
def kolej
@kto += 1; @okno.kolej(@kto); @kolej = true
end
def rzut
@kosc += 1; ile = rand(6) + 1; @suma[@kto] += ile; @czas = 0
@okno.rysuj(@kto, @kosc, ile, @suma[@kto])
end
end
class Window_Av_Gra_W_Kosci < Window_Base
include Avara::Gra_W_Kosci
def initialize(x = 0, y = 0, width = 544, height = 416)
super(x, y, width, height)
end
def kosc(x, y)
self.contents.fill_rect(x, y, 50, 50, text_color(Kolory::KOSCI))
self.contents.clear_rect(x, y, 1, 1)
self.contents.clear_rect(x + 49, y, 1, 1)
self.contents.clear_rect(x, y + 49, 1, 1)
self.contents.clear_rect(x + 49, y + 49, 1, 1)
self.contents.clear_rect(x + 3, y + 2, 44, 46)
self.contents.clear_rect(x + 2, y + 3, 46, 44)
end
def rysuj(kto, kosc, ile, suma)
if kto == 1; y = 50; y_suma = 115 # Przeciwnik.
elsif kto == 2; y = 284; y_suma = 249; end # My.
if kosc == 1; x = 120
self.contents.font.color = text_color(Kolory::RAZEM)
self.contents.draw_text(0, y_suma, 256, 20, Napisy::RAZEM, 2)
elsif kosc == 2; x = 185
elsif kosc == 3; x = 250
elsif kosc == 4; x = 315
elsif kosc == 5; x = 380
elsif kosc == 6; x = 445; end
if ile == 1; kr = [7]
elsif ile == 2; kr = [1, 4]
elsif ile == 3; kr = [1, 7, 4]
elsif ile == 4; kr = [1, 2, 3, 4]
elsif ile == 5; kr = [1, 2, 7, 3, 4]
elsif ile == 6; kr = [1, 5, 3, 2, 6, 4]; end
kosc(x, y); kropki(x, y, kr)
self.contents.clear_rect(256, y_suma - 5, 256, 30)
self.contents.font.color = text_color(Kolory::SUMA)
self.contents.draw_text(256, y_suma, 256, 20, suma)
end
def kropki(xx, yy, kr)
for i in kr
x = xx + 2; y = yy + 2
if i == 1; x += 6; y += 6
elsif i == 2; x += 32; y += 6
elsif i == 3; x += 6; y += 32
elsif i == 4; x += 32; y += 32
elsif i == 5; x += 6; y += 19
elsif i == 6; x += 32; y += 19
elsif i == 7; x += 19; y += 19; end
kropka(x, y)
end
end
def kropka(x, y)
self.contents.fill_rect(x + 2, y, 4, 8, text_color(Kolory::KOSCI))
self.contents.fill_rect(x + 1, y + 1, 6, 6, text_color(Kolory::KOSCI))
self.contents.fill_rect(x, y + 2, 8, 4, text_color(Kolory::KOSCI))
end
def kolej(kto)
self.contents.clear_rect(0, 192 - 30, 512, 60)
if kto == 1; imie = @imie
elsif kto == 2; imie = $game_party.members[0].name; end
self.contents.font.size = 40
self.contents.font.color = text_color(Kolory::KOLEJ)
self.contents.draw_text(0, 192 - 20, 512, 40, Napisy::KOLEJ + imie.to_s, 1)
self.contents.font.size = 20
end
def wynik(wynik)
self.contents.clear_rect(0, 192 - 30, 512, 60)
if wynik == 0; tekst = Napisy::PRZEGRANA; kolor = Kolory::PRZEGRANA
elsif wynik == 1; tekst = Napisy::WYGRANA; kolor = Kolory::WYGRANA
elsif wynik == 2; tekst = Napisy::REMIS; kolor = Kolory::REMIS; end
self.contents.font.size = 40
self.contents.font.color = text_color(kolor)
self.contents.draw_text(0, 192 - 20, 512, 40, tekst, 1)
self.contents.font.size = 20
end
end
Jak będziesz chciała coś zmienić, to pisz. Mam nadzieję, że się spodoba
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 Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum