[ARHIIV] mängumeistrid
Pole sisse logitud. [Logi sisse ]
Mine lehekülje algusesse
Prinditav versioon | Telli teema e-mailile | Lisa lemmikutesse  
 Lehekülgi:  1  2
Kasulikke skripte
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 22.7.2009 14:22 Tsiteeri
Kasulikke skripte



Siia teemasse siis kasulikke skripte.
http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
valter
1


Liitunud: 19.1.2005
Postitusi: 1553
[EEMAL]




postitati 22.7.2009 14:29 Tsiteeri





COLLISION SEINAGA
    if x>other.x x+=1;
    if y>other.y y+=1;
    if x if y

__________________________________

MUUSIKA SÜSTEEM
mängib, muusikaid järjest, lõputult.
create:

    mus[0]=argument0;
    mus[1]=argument1;
    mus[2]=argument2;
    mus[3]=argument3;
    mus[4]=argument4;
    nr=0 //mitmes muusika
    musnr=4 //mitu muusikat on
    sound_play(mus[musnr]);
    alarm[0]=30


alarm0:

    if !sound_isplaying(mus[nr]){
    nr+=1
    if nr>musnr nr=0
    sound_play(mus[nr]);
    }
    alarm[0]=30


__________________________________

KINNINE RUUM
ilma et oleks vaja levelite äärtesse seinu panna
Add Event>Other>Intersect Boundary:

    x=xprevious;
    y=yprevious;


__________________________________

SÜGAVUS
Mida kõrgemal object, seda taga pool ta on, mida madalamal, siis eespool
    depth = -y;


__________________________________

MÄNGU AEG GMLI SISESTAMINE
    execute_string(get_string('Sisesta GML',''));





Custom randomi script;

    //gives a random number
    return 4;





tegelase sprite muutmine vastavalt suunale. 8-erinevat spritet

Create:

    spr[0]=Char1_r; //right
    spr[1]=Char1_ur; //up right jne..
    spr[2]=Char1_u;
    spr[3]=Char1_ul;
    spr[4]=Char1_l;
    spr[5]=Char1_dl;
    spr[6]=Char1_d;
    spr[7]=Char1_dr;
    spr[8]=Char1_r; //sama mis spr[0]

Step:

    sprite_index=spr[round(direction/45)];




http://www.dmgamez.pri.ee/GRONGO1/uss_walk.gif
Ralli I: dm11Veresaun III: dm11<br>Emo1: icedude, valter8bit I: võistlus kestabAktsioon III (2009): -<br>Aasta mäng 2009: Pilvemees, valter<br>Vabateema II: valter
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 23.7.2009 15:03 Tsiteeri


Custom randomi script;

//gives a random number
return 4;
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Longbow9
Level 2
Avatar

Liitunud: 22.8.2009
Postitusi: 39
[EEMAL]




postitati 23.8.2009 13:19 Tsiteeri


kuhu see kinnise ruumi oma tuleb sisestada? see oleks mu projektile lihtsam
jou kui viitsid siis klika!!

üli äge lehekülg vaata ka!!!!

Vaata kasutaja profiili Saada kasutajale e-mail Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
Crypton

Avatar

Liitunud: 18.12.2005
Postitusi: 1604
[EEMAL]




postitati 23.8.2009 13:46 Tsiteeri


Lugeda võiks mitu korda:

KINNINE RUUM
ilma et oleks vaja levelite äärtesse seinu panna
Add Event>Other>Intersect Boundary:


x=xprevious;
y=yprevious;

Maze I: CryptonRalli III: Crypton<br>
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
Longbow9
Level 2
Avatar

Liitunud: 22.8.2009
Postitusi: 39
[EEMAL]




postitati 24.8.2009 09:38 Tsiteeri


ah jaaa. Ma olen nii narr.:irw:
jou kui viitsid siis klika!!

üli äge lehekülg vaata ka!!!!

Vaata kasutaja profiili Saada kasutajale e-mail Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
veka8
^^
Avatar

Liitunud: 19.7.2006
Postitusi: 1096
[EEMAL]




postitati 22.11.2009 19:35 Tsiteeri


Tsitaat:
Tsitaat: valter
Siia teemasse siis kasulikke skripte.


Skripte saab lisada ja vaadata ka siin - stopb.planet.ee, valides ülalt menüüst GMaker ! Meeldivat sirvimist!


stopb leht küll õige ei tundu
Vabateema I: veka&pets
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
jyri1234
Level 9
Avatar

Liitunud: 16.1.2008
Postitusi: 542
[EEMAL]




postitati 22.11.2009 19:51 Tsiteeri


Ta vanasti oli õige.
_________________________________
Eestikeelsed tasuta PHP õpetused - php.ee
PHP Manuaal - php.net
Jõulu 2008 III: Jyri1234<br>
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
veka8
^^
Avatar

Liitunud: 19.7.2006
Postitusi: 1096
[EEMAL]




postitati 22.11.2009 20:09 Tsiteeri


ok võtsin ära enam ju pole...
Vabateema I: veka&pets
Vaata kasutaja profiili Saada kasutajale e-mail Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 26.11.2010 22:32 Tsiteeri


Modulo

Mida teeb?

x mod y väljastab x/y jäägi.

Ehk siis:
* 64 mod 32 = 0, sest 64 jagub 32-ga täpselt ja jääki ei ole.
* 65 mod 32 = 1, sest 32 läheb 65 sisse 2 korda (64) ja järgi jääb 1, ja see ei jagu täpselt 32-ga
* 67 mod 32 = 3, sest 32 läheb 65 sisse 2 korda (64) ja järgi jääb 3, sest see ei jagu 32-ga
* 95 mod 32 on 31, sest -- peaksid isegi aru saama. 31 ei jagu 32-ga täpselt.
* 96 mod 32 on jälle 0, sest täpselt 3 korda läheb ja jääki ei jää


Milleks vaja?

Võtame lihtsa asja: snappimise. Näiteks tahame, et mäng joonistaks 32x32 ruudu ja snapiks selle hiire kohale 32x32 ruudustiku järgi. Pole midagi lihtsamat:

a = mouse_x - (mouse_x mod 32);
b = mouse_y - (mouse_x mod 32);
draw_rectangle(a,b,a+32,b+32,true);

Ehk siis võtame mouse_x-i, jagame 32-ga, ja niipalju kui üle jäi jääki, lahutame ära.

Muidugi võib teha ka nii:
a = floor(mouse_x/32)*32;
b = floor(mouse_y/32)*32;
draw_rectangle(a,b,a+32,b+32,true);

See on täiesti teine lähenemine: me ei lahuta jääki, vaid lihtsalt ümardame selle ära täisarvuni.

Aga on olukordi, kus modulo on palju lihtsam ja otstarbekam kasutada. Isomeetrilise mootoriga jännates oli vaja isomeetria järgi snappida, aga lisada ka suvaline offset ja teha kindlaks, et see sobib iga kord 32 laiusesse.

Näiteks 1000. Ma ei tea peast, kas see jagub 32ga!
Võib ju võta kalkulaatori ja hakata korrutama, et leida lähim sobiv X. Aga lihtsam on kirjutada

x = 1000 - (1000 mod 32)

ja ma ei pea üldse pead vaevama. Modulo teeb töö ise ära.

A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 27.11.2010 00:24 Tsiteeri


Modulot saab üldse igasugu lahedateks asjadeks, ka pseudojuhuslike arvude genereerimiseks kasutada. Samuti nt, kui oleks vaja mingis tsüklis peale iga 10. iteratsiooni mingi teksti väljastada, siis iteraatori moduleerime 100ga:

for (i==0,i<=1000,i++){
//teemidagi
if (i%10==0){
printf("möödas %i iteratsiooni",i);
}
}

Aa ja debiilne on see, et GM ei tunnista seda, et % on sama, mis mod.

http://i47.tinypic.com/x0w83p.gif
Moonwalk
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
h0lx
Kohalik sitapea
Avatar

Liitunud: 10.4.2006
Postitusi: 1826
[EEMAL]




postitati 9.12.2010 02:00 Tsiteeri


Kood:

// v2ljastab esimese ja teise integeri vahelise suvalise integeri
// soovitatav on programmi k2ivitamisel seedida random nt ajaga.
int random(int begin,int end){
return (begin + (rand() % (end-begin+1)));
}

http://i47.tinypic.com/x0w83p.gif
Moonwalk
Platform II: -DMI-; H0lx&jorssJõulumäng I: h0lx&jorss
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 22.12.2010 14:34 Tsiteeri


Viimane kasulik MODi kasutus oli, kui tahtsin sprite panna vilkuma, nagu telekamängudes peale pihta saamist:

create:
time = 0; //teeme suvamuutuja "aeg" stepide loendamiseks

draw:
time += 1; //lisab "aega"

if (time = 3200) time = 0; // kontroll selleks, et muutuja "üle pea" ei kasvaks. maksimumväärtus aga võib kasvõi 2 olla, 3200 on suvaline.

if (time mod 2) = 0 //joonista sprite ainult siis kui on paarisarvuline step
draw_sprite(blablabla)

A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 23.12.2010 15:24 Tsiteeri


Hardi @bytez kunagi leiutas:

a = !a

Teeb sama, mis

if (a == true) a = false
else a = true
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Zimonak
Level 4
Avatar

Liitunud: 23.1.2007
Postitusi: 112
[EEMAL]




postitati 24.12.2010 20:12 Tsiteeri


Menüü nuppude jaoks:

if position_meeting(mouse_x,mouse_y,self)
{image_index=1}
else
{image_index=0};

//Vahetab pilti, kui hiir on peal, muidu tavaline.

YoYogames'i kasulikud scriptid: http://gmc.yoyogames.com/...



_

...
Veresaun II: Zimonak
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 28.1.2011 20:12 Tsiteeri


show_message("bla")
sound_play(klikkimise_heli);

Saad panna nii, et message boxis OK vajutades tuleb ka klikkimishääl (h) Sama asi show_question, show_message_ext, get_string, get_integer-ga.
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 31.1.2011 19:00 Tsiteeri


Üks suhteliselt lamp meetod suvalise instantsi valimiseks.

/*
suvalineinstants(object);

returnib suvalise selle objekti instantsi id.
-1 kui seda instantsi pole
Kui mitu instantsi on üksteise peal siis returnib selle, mis tekkis esimesena (vist).
Kui objektid ei asu ruumi piires siis ei pruugi töötada normaalselt.
*/

if (!instance_exists(argument0))
{
return -1;
}

return (instance_nearest(random(room_width),random(room_height),argument0))
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 12.3.2011 13:56 Tsiteeri


Leiab arvu, mitu korda tuleks view suuremalt joonistada. Suuremaks/väiksemaks venitamise kordajad tulevad täpsusega 0.5, ehk: 0.5; 1; 1.5; 2; 2.5 jne. Seega peaks view vähem uduseks ja koledaks minema kui lihtsalt "keep aspect ratio" optionsites pannes.

view_wport ja view_hport tuleb iseseisvalt saadud arvuga läbi korrutada kõigil viewdel.

Tsitaat:

// leia_sobiv_zoom(suurim view laius, suurim view k6rgus);
// leiab resokordaja väärtuse, millega korrutatakse viewde suurused läbi, et nad oleksid sobivalt
// scaletud. returnib kordaja väärtuse (ala 1 või 1.5 või 2)

var w, h;
w = display_get_width();
h = display_get_height();

return 0.5 * floor(min( w / argument0, h / argument1) / 0.5);

Lamps and Megarace - multiplayer strateegia

You've got the boomin' system But it's blasting out doo-doo
You think it's chocolate milk But it's watered down yoo-hoo
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Pilvemees
Moderator
Avatar

Liitunud: 28.7.2007
Postitusi: 791
[EEMAL]




postitati 26.3.2011 10:00 Tsiteeri


Kui tekstis on rohkem sümboleid kui sinu antud muutujas siis lühendab teksti ja lisab lõppu 3 punkti.


loika = 5
tekst = 'teretereteteetetet'
if (string_length(tekst) >= loika)
tekst=string_copy(tekst,0,loika)+'...'

Näide:
Ennem oli teksti väärtuseks: teretereteteetetet
Nüüd näeb su muutuja välja selline: teret...

EDIT: 3 punkti jäid tõesti lisamata.

http://mangulooja.dragon.ee/lahinguatid/lahinguatid.gifhttp://mangulooja.dragon.ee/lembitu/lembitu_sig.pnghttp://mangulooja.dragon.ee/sigs/kindlus_sig.jpghttp://mangulooja.dragon.ee/keskaeg/sig.png
Aasta mäng 2009: Pilvemees, valter<br>
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
Zimonak
Level 4
Avatar

Liitunud: 23.1.2007
Postitusi: 112
[EEMAL]




postitati 26.3.2011 10:24 Tsiteeri


Tsitaat:
Tsitaat: Pilvemees
if (string_length(tekst) >= loika)
tekst=string_copy(tekst,0,loika)

Näide:
Nüüd näeb su muutuja välja selline: teret...


Kolm punkti on lisamata: •••  

tekst=string_copy(tekst,0,loika)+'...' ;

...
Veresaun II: Zimonak
Vaata kasutaja profiili Külasta kasutaja kodulehte Otsi kasutaja postitusi Saada privaatsõnum
batoonike



Liitunud: 2.4.2005
Postitusi: 378
[EEMAL]




postitati 9.4.2011 16:05 Tsiteeri


// Arvutab muutuja märgi (vbla GM funktsioon selleks olemas isegi?)
// Näiteks hspeediga

m2rk = hspeed / abs(hspeed);

//Nii saad teha üldistusi olukordades, kus muidu peaks if-else tegema

//Ala:
if (hspeed > 0)
kuuli_hspeed = 20;
else
kuuli_hspeed = -20;


//selle asemel paned
if !(hspeed == 0)
kuuli_hspeed = 20 * hspeed / abs(hspeed);
else
kuuli_hspeed = -20;

Ok see on halb näide aga kui sul on vaja kahe muutuja märki kontrollida, siis tuleks teha 4 IF-i. Niimoodi märki arvestades saab vähemate IF-dega hakkama. Kui muutujaid on rohkem siis läheb aina paremaks.

Lamps and Megarace - multiplayer strateegia

You've got the boomin' system But it's blasting out doo-doo
You think it's chocolate milk But it's watered down yoo-hoo
Aktsioon III: batoonike<br>Kambakas II: batoonike, whitepower1, tenno11
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
normann
Level 15
Avatar

Liitunud: 28.4.2006
Postitusi: 1528
[EEMAL]




postitati 17.4.2011 19:54 Tsiteeri


Stringi muutmine nii mitme väärtusega arrayks, kui stringis numbreid.

Kood:

string = "0123456789";

pikkus = string_length(string);
array[pikkus] = 0;
mitmes_indeks = 0;

repeat(pikkus){
array[mitmes_indeks] = real(string_copy(string,mitmes_indeks,1));
mitmes_indeks += 1;
}



Pmst see kood võtab stringi "0123456789" ja teeb 10 arrayd selle stringi numbrite järgi:

array[0] = 0;
array[1] = 1;
array[2] = 2;
array[3] = 3;
...
array[9] = 9;

väga lihtne muuta ka nt 2 numbri kaupa võtma, lihtsalt muudad ~3 numbrit.

Vaata kasutaja profiili Saada kasutajale e-mail Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 26.4.2011 13:14 Tsiteeri


a + ((b-a)/c * point_distance(x,y,mouse_x,mouse_y)

Mis see on? Muudab midagi hiire kaugusel. b on maksimum, a on miinumväärtus, c on kaugus hiirest.
Segane?

image_alpha = .05 + (.95/128 * point_distance(x,y,mouse_x,mouse_y)

On mul TD puudele pandud. See teeb nii, et kui hiir on puule lähemal kui 128 pikslit (c), hakkab puu muutuma läbipaistvamaks. Kui hiir on päris puu peal, on puu läbipaistvus 0.5 ( a ), sest .95/128*128 = 0.95.
On teada, et image alpha saab olla vahemikus 0 kuni 1. Ma päris läbipaistvaks ei taha
0.5 ( a ) + .95 ( b ) annavad kokku maksimumläbipaistvuseks 1 ehk täielikult läbipaistev... See on seotud minimaalse kaugusega kust läbipaistmine toimima hakkab ehk 128 pikslit ( c ).

E: faking smileyd
____________________

A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
InCreator
baksjor!
Avatar

Liitunud: 18.12.2005
Postitusi: 1230
[EEMAL]




postitati 26.4.2011 13:17 Tsiteeri


Tsitaat:
Tsitaat: batoonike
// Arvutab muutuja märgi (vbla GM funktsioon selleks olemas isegi?)
// Näiteks hspeediga

m2rk = hspeed / abs(hspeed);

//Nii saad teha üldistusi olukordades, kus muidu peaks if-else tegema

//Ala:
if (hspeed > 0)
kuuli_hspeed = 20;
else
kuuli_hspeed = -20;


//selle asemel paned
if !(hspeed == 0)
kuuli_hspeed = 20 * hspeed / abs(hspeed);
else
kuuli_hspeed = -20;

Ok see on halb näide aga kui sul on vaja kahe muutuja märki kontrollida, siis tuleks teha 4 IF-i. Niimoodi märki arvestades saab vähemate IF-dega hakkama. Kui muutujaid on rohkem siis läheb aina paremaks.


RTFM, jose
http://www.indrek.org/i/singjose.png

A window is technically a wallhack.
Emo2: InCreator
Vaata kasutaja profiili Otsi kasutaja postitusi Saada privaatsõnum
oskarvalk
Level 3
Avatar

Liitunud: 21.2.2011
Postitusi: 59
[EEMAL]




postitati 26.4.2011 13:58 Tsiteeri


Kas nii oleks võimalik, et kinnises ruumis saab ka hüpata ilma seinu panemata? Koletised võiksid ka ruumi äärest põrgata...

Vaata kasutaja profiili Saada kasutajale e-mail Otsi kasutaja postitusi Saada privaatsõnum Vaata kasutaja MSN-i
 Lehekülgi:  1  2

Hetkel loevad seda teemat:
Mitte ühtegi - 1 külaline

Mine lehekülje lõppu





Foorumi algbaas põhineb XMB mootoril, modifitseeritud Valter Pundi poolt
Kodulehekülg on tehtud Valter Pundi poolt vpundi ät gmail punkt komm