Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 
Polski Portal COLOBOTa
COLOBOT Polish Portal

Programy - Uatrakcyjnianie misji

Abadon - 14-11-2008, 14:56
Temat postu: Uatrakcyjnianie misji
Myśl o stworzeniu takiego tematu zaimponował mnie jedem ciekawy błąd w Colobocie.
Otuż odkryłem to chyba z dwa miesiące temu, że z robota można zrobić KRÓLOWĄ OBCYCH. Tak tak to prawda można to zrobić w taki sposób: otuż by się zbytnio nie przemenczyć skopiować program królowej z jednej misji na Nowej Ziemi. Następnie wczytać misję swobodną ,tak jak ja na krystalii i wprowadzić program królowej do robota (najlepiej do osłaniacza gdy chcemy mrówki produkować). Wcześniej musimy program trochę zmodyfikować (no pare tam szegułów). Wybrać jakiejś miejsce i zacząć zabawę. UWAGA jest jedno zastrzeżenie kiedy produkujemy np 100 i więcej królówek lub innych obcych to lepiej nie zapisujcie misji bo wam nie odpali za drugim razem. Gra też może trochę się zacinać (oczywiście ta misja tylko). Jak macie jakieś inne sposoby na uatrakcyjnianie misj to możecie tu je wpisywać wraz z programami.B)B)B)

Abadon - 14-11-2008, 14:59
Temat postu: RE: Uatrakcyjnianie misji
Oto program na tworzenie królówek

extern void object::Produce( )
{
point path[7];
int i;
float r;

errmode(0); // ne stoppe pas si erreur
ipf(10); // 10 instructions / second
while ( ismovie() != 0 ) wait(1);

path[0].x = cmdline(0);
path[0].y = cmdline(1);
path[1].x = cmdline(2);
path[1].y = cmdline(3);
path[2].x = cmdline(4);
path[2].y = cmdline(5);
path[3].x = cmdline(6);
path[3].y = cmdline(7);
path[4].x = cmdline(8);
path[4].y = cmdline(9);
path[5].x = cmdline(10);
path[5].y = cmdline(11);
path[6].x = cmdline(12);
path[6].y = cmdline(13);

i = 1;
while ( true )
{
goto(path[i%7]);

if ( rand() < 0.2 ) // attaqueuse 1x / 5
{
produce(position, orientation, AlienQueen, "antattsw.txt");
}
else
{
if ( AlienCount() < 88 )
{
r = rand();
if( r < 0.3 )
{
produce(position, orientation, AlienQueen, "antt41.txt");
}
if( r >= 0.6 )
{
produce(position, orientation, AlienQueen, "antt42.txt");
}
if( r < 0.6 and r >= 0.3 )
{
produce(position, orientation, AlienQueen, "antt43.txt");
}
}
}
i ++;
}
}

int object::AlienCount()
{
object item;
int total = 0;
int i = 0;


}

Piter - 14-11-2008, 15:48
Temat postu: RE: Uatrakcyjnianie misji
jezu skąd go wytrzasnąłeś:o
DeiDara - 14-11-2008, 17:33
Temat postu: RE: Uatrakcyjnianie misji
nie umniesz czytać :o :o:o:o:o to z nowej ziemi. wystarczy tylko zmodyfikować czyli jak to Abadon wykrzyczał
COLOBOT - 14-11-2008, 17:41
Temat postu: RE: Uatrakcyjnianie misji
Ja kiedyś bawiłem się funkcją produce (odpowiedzialną za produkowanie mrówek) i w pewnym momencie pojawiał mi się błąd "za dużo obiektów". Podobno w wersji 1.8 COLOBOTa liczba możliwych obiektów na mapie została zwiększona, jednak nie jest tak duża, żeby nie dało się jej wykorzystać.

Piter - 14-11-2008, 17:48
Temat postu: RE: Uatrakcyjnianie misji
aha nie musisz się aż tak drzeć na mnie.
DeiDara - 14-11-2008, 18:34
Temat postu: RE: Uatrakcyjnianie misji
przecież tu nie ma głosu.
Abadon - 14-11-2008, 20:55
Temat postu: RE: Uatrakcyjnianie misji
COLOBOT ma rację. Zapomniałem dodać do uwag.
adiblol - 14-11-2008, 21:38
Temat postu: RE: Uatrakcyjnianie misji
Hmm co do błędu ze zbyt dużą liczbą obiektów to kiedyś przez to nie przeszedłem jednej misji z zestawu Jinx. (chociaż wcale nie było ich dużo... zdaje mi się że po zapisaniu wyszło jakieś 300 linijek). Czy to oznacza że jest limit do 255? Jeśli tak to Colobot jest *$#%^@*&$%

A może zabrakło pamięci w komputerze?

COLOBOT - 14-11-2008, 22:48
Temat postu: RE: Uatrakcyjnianie misji
Wydaje mi się, że kiedyś czytałem o 8 tysiącach, ale nie jestem pewien. Pewien jestem natomiast tego, że szperacz na kołach (albo inny robot) w jednej z misji treningowych ma zaimplementowanie szukanie obiektów o numerach od 1 do 10000, tak więc powinno to być te około 8-10 tysięcy.
Abadon - 17-11-2008, 19:28
Temat postu: RE: Uatrakcyjnianie misji
A oto kolejny program zaczerpnięty z mogyfikacji programu produce. Słurzy on do tworzenia różnych objektów jak ruda tytanu ,tytan itp.
W miejsce wpisz objekt można wpisać np. TNT ,TitanumOre ,BlackBox ,NuclarCell ,PowelCell ,KeyA ,KeyB nawet Mine (fajnie to wygląda) itp.
Proponuję skopiować ten program ,bo gdy samemu się pisze to występuje błąd. Nie pamiętam kiedy na to wpadłem ,ale w moim zasobie programów znajdowało się to. Program ten działa trochę dziwnie ,możemy kierować robotem i naciskamy przycisk srzałki (no wiecie która ,ta od włąnczania programu) i strarzamy 1 objekt.

extern void object::Nowy()
{

produce(position, orientation, WPISZ OBJEKT, "antattsw.22");

adiblol - 17-11-2008, 20:32
Temat postu: RE: Uatrakcyjnianie misji
Produce to znana funkcja w CBot... wiele jest o niej w internecie.

Dokładniej:
produce(position, orientation, TitaniumOre, "" ) ;
Pod wytłuszczony fragment podstaw kategorię.
Ostatni parametr nie jest konieczny, jest to program, ale działa tylko dla Obcych.

Dodam że jeśli tworzymy Obcych to się tworzą jaja.

DemoLisH - 17-11-2008, 20:48
Temat postu: RE: Uatrakcyjnianie misji
a tak wlasciwie to do czego sluzy funkcja ismovie??? bo juz ja kilka razy widzialem, a w pomocy colobota jej nie ma bo jest ona uzywana chyba tylko u obcych(tak mysle)
Abadon - 17-11-2008, 21:30
Temat postu: RE: Uatrakcyjnianie misji
Adiblol ten ostatni program który przedstawiłem działa też na robotach.

Dodam też nformację:
Niekoniecznie gdy tworzy się robaki w colobocie np. królowa obcych-to tworzą się jaja z których się obcy rodzą ,w tym prypadku królowa jest ona tak wielka że jaja pozostają.

COLOBOT - 19-11-2008, 02:37
Temat postu: RE: Uatrakcyjnianie misji
Cytat:
DemoLisH napisał/a:
a tak wlasciwie to do czego sluzy funkcja ismovie??? bo juz ja kilka razy widzialem, a w pomocy colobota jej nie ma bo jest ona uzywana chyba tylko u obcych(tak mysle)

ismovie() zwraca wartość true, jeśli jest aktywna scenka lądowania na planecie. Jest to uzasadnione, ponieważ bez tego mrówki nie czekałyby, aż statek wyląduje, a atakowałyby go od razu, nawet wtedy, gdy gracz nie "dorwie" się jeszcze do sterowania.

DeiDara - 01-02-2009, 14:45
Temat postu: RE: Uatrakcyjnianie misji
Przepraszam że będę musiał odświeżyć ten temat ale mam dziwny błąd jak bawiłem się produce na oferni (nie wiem jak się pisze) to jak zrobiłem produce TNT to mi wyskoczyła wiadomośc że misja wykonana <LOL2> Dotego działo się to w swobodnej grze.
Może ktoś napisać czym jest to spowodowane??

COLOBOT - 01-02-2009, 14:54
Temat postu: RE: Uatrakcyjnianie misji
Warunek wygrania misji w swobodnej grze jest taki, że na planecie musi być minimum jedna sztuka TNT. Produkując ją spełniłeś warunki zakończenia misji i dlatego ci pokazuje, że misja jest ukończona (było chyba o tym gdzieś na forum).
adiblol - 01-02-2009, 18:23
Temat postu: RE: Uatrakcyjnianie misji
aby tego uniknąć zmien w ostatniej linijce w pliku misji "min=1" na "min=9999"
fly - 08-03-2009, 16:47

Kod:
extern void object::Produce( )
{
    point   path[7];
    int     i;
    float   r;

    errmode(0);  // ne stoppe pas si erreur
    ipf(10);     // 10 instructions / second
    while ( ismovie() != 0 )  wait(1);

    path[0].x = cmdline(0);
    path[0].y = cmdline(1);
    path[1].x = cmdline(2);
    path[1].y = cmdline(3);
    path[2].x = cmdline(4);
    path[2].y = cmdline(5);
    path[3].x = cmdline(6);
    path[3].y = cmdline(7);
    path[4].x = cmdline(8);
    path[4].y = cmdline(9);
    path[5].x = cmdline(10);
    path[5].y = cmdline(11);
    path[6].x = cmdline(12);
    path[6].y = cmdline(13);

    i = 1;
    while ( true )
    {
        goto(path[i%7]);

        if ( rand() < 0.2 )  // attaqueuse 1x / 5
        {
            produce(position, orientation, AlienAnt, "antattsw.txt");
        }
        else
        {
            if ( AlienCount() < 10 )
            {
                r = rand();
                if( r < 0.3 )
                {
                    produce(position, orientation, AlienAnt, "antt41.txt");
                }
                if( r >= 0.6 )
                {
                    produce(position, orientation, AlienAnt, "antt42.txt");
                }
                if( r < 0.6 and r >= 0.3 )
                {
                    produce(position, orientation, AlienAnt, "antt43.txt");
                }
            }
        }
        i ++;
    }
}

int object::AlienCount()
{
    object  item;
    int     total = 0;
    int     i = 0;

    while ( true )
    {
        item = retobject(i++);
        if ( item == null )  return total;

        if ( item.category == AlienAnt )
        {
            total ++;
        }
    }
}

Nie lepiej tak?

DeiDara - 08-03-2009, 17:37

wow też umniem sciągnąć program z królówki na nowej ziemi
bbiidduull - 08-03-2009, 17:43

Albo na końcu tam gdzie pisze TNT napisz inną nazwe np. "hgdtnt" :D
adiblol - 08-03-2009, 19:53

Albo coś czego i tak się nigdy nie wytworzy, np. MegaStalk5 (jeśli swobodna gra nie jest na Tropice) albo Quartz1 (jeśli swobodna gra nie jest na Krystalii)
colobotwymiiata - 08-03-2009, 20:11

albo Home..... chyba nie ma tego nigdzie
adiblol - 08-03-2009, 20:51

colobotwymiiata napisał/a:
albo Home..... chyba nie ma tego nigdzie

co racja to racja :)

fly - 09-03-2009, 18:11

Albo Mine wtedy mamy MineTank xD. Ja wpisałem TNT w swobodnej grze i miałem Win :P .
colobotwymiiata - 09-03-2009, 19:34

fly napisał/a:
Albo Mine wtedy mamy MineTank xD.
Mine też się da wyprodukować :P
fly napisał/a:
Ja wpisałem TNT w swobodnej grze i miałem Win

Ale skapa...

fly - 09-03-2009, 19:55

Da się wyprodukowac rzeczy do zbierania, Mine, Wrogów ale nie budynki i nie roboty ;(.
colobotwymiiata - 09-03-2009, 20:26

fly napisał/a:
Da się wyprodukowac rzeczy do zbierania, Mine, Wrogów ale nie budynki i nie roboty ;(.

No to właśnie o tym mówię :roll:


Powered by phpBB modified by Przemo & WRIM © 2003 phpBB Group