-
Postów
866 -
Dołączył
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Wydarzenia
Odpowiedzi opublikowane przez XxMichałxX
-
-
Ostatnio sobie grzebałem i mi sie zachciało zrobic cos co generuje jakis kod z dozwolonych znakow, z tym że kod nie moze sie powtórzyc a jak sie wykorzysta wszystkie mozliwe kombinacje to ma przestac.. wszystko bym zrobił, tylko nie wiem jak zrobic z tym ze ma sprawdzac czy wszystkie kombinacje zostały wykorzystane.. napisałby ktoś przykładowy algorytm? :}
-
Czytałem sobie w dokumentacji i znalazłem takie cos jak Extensions (czy jakos tak) - Dodatki i było napisane ze mozna dodac plik dll itd do tego. To tak sobie myślałem, że możnaby wsadzić odrazu do tego 39dll.dll i sie nie męczyć?
Dałoby sie takie cos zrobic? Jak tak to powiedzcie jak + poda ktos linka do ExtensionsMaker ? :)
e: a dobra juz znalazlem (e. makera)
-
a do czego służy 'abs' ?
e: w dokumentacji:
abs(x)
Zwraca wartość bezwzględną x.
fajnie, tylko ze nie czaje. to co bez sensu to tak samo jakby mi zwróciło poprostu liczbe ktora podalem
-
GMLliczba=5
liczba2=7
liczba3=8
i teraz jak kodem sprawdzic ktora liczba jest najbardziej bliska zmiennej "liczba" ?
-
offtop:
a czy game_restart() działa jak game_end() i "game_start()" , czyli ze wyłącza i włącza aplikacje? Czy tylko resetuje .. to co jest w grze czy jakos tak..?
-
lol jak przeczytałem 'GPS' to myslalem ze sie bedzie szlo i bedzie jakas laska mówić: skręć w lewo skręć w prawo zawróc a tu ekran za myszką lata i jakieś szopy są oraz pare drzewek.. nie wiem po co to ma byc.. mi sie tylko przydalo do tego bo looknąłem jak zrobic ruszanie ekranu za myszką i za to 3+/5 ;P
-
nie pomoże chyba bo tam nie ma czegos takiego jak process_zmiennazwe :P
-
dobra juz wszystko jest ok
-
to moze uzyc if !wpis ?
e: ale nie dobra pozamienialem 0 na ''
-
no nie wiem ;p to nie cpp
-
a więc tak:
tworzę sobie tabele:
wpis[0-500] w create i kazdy wpis=0
i gdy chcę dodać wpis to mam taki kod:
GMLfor(i=0; i<500; i+=1){
if wpis=0 //jezeli wpis jest rowny zero czyli pusty
{
wpis=get_string('Podaj wartosc wpisu numer '+string(i),0)
break;
}
}
gdy chce dodac wpis 0 to wszystko git, ale gdy następny to:
___________________________________________ ERROR in action number 1 of Key Press Event for 2-key Key for object o_find: Error in code at line 3: if wpis[i]=0 at position 14: Cannot compare arguments.
dabljutief?
Zła nazwa tematu. Warn +1
gnysek
-
podaj błąd
edit: aha zagapiłem sie juz poprawiam
-
robisz skrypt sprawdz a w nim:
GMLargument2=string(argument2);if string_char_at(argument0,argument1)=argument2 return(string_char_at(argument0,argument1));
else return(false);
i teraz piszesz:
litera=sprawdz(wjakimstringu,najakiejpozycji,jakalitera)
jezeli bedzie taka litera w tej pozycji w danym stringu to litera bedzie rownac sie tej literze, natomiast jezeli nie, to litera bedzie rownac sie false
-
if !varible_exists = global.lvl
wut?
variable_exists zwraca bodajże true albo false no nie?
wytłumacz konkretniej o co ci chodzi bo nie czaje.
narazie zrozumiałem takei cos:
GML//uruchamiasz greglobal.pkt=registry_read_real('punktyzgry') //jak jest to ją czytasz
}
else
{
registry_write_real('punktyzgry',0) //jezeli nie to ją tworzysz
global.pkt=0 //oraz dajesz 0 dla global.pkt
}
//a gdy konczysz gre
registry_write_real('punktyzgry',global.pkt) //nadpisujesz</span></span>
o to ci chodzi?
-
Mario no widzisz. Nie rozumiesz podstaw to gadasz ze pelno bledow, a głównie dla ciebie zrobilem ten kurs bo chciałes sie za 39dll zabrac. Łatwo je poprawić.
Lepiej zrób kurs jak zrobić trojana w GMie, przynajmniej będzie to pierwszy takowy kurs dotyczący Gma... happy.gifDobry pomysł, tylko że to banalnie proste ;]
-
hm.. nie wiem czy ktos wyzej o tym napisal bo nie chce mi sie czytac ale tak:
jest pare rzeczy które trzeba poprawić, np nie pokazuje gdy ktos odszedl z gry lub gdy okno nie jesst aktywne to strasznie sie tnie.. nie wiem czy to tylk tak u mnie..
no ale ogólnie wypasione 4.5/5
-
ustaw sobie na roomie zawodników dwoch druzyn i na jakiegos jak klikniesz to get_integer podaj skilla i z jednej druzyny przelicza skilla, z drugiej - odejmuje mniejsze od drugiego i masz wynik meczu ;]
-
-
Wiem, że jest już dużo takich kursów, ale niektórzy nie potrafią znaleźć, więc dodam jeszcze jeden dla zwiększenia szans odnalezienia :P
No to tak:
1. Ściągamy 39dll.dll.
2. Importujemy skrypty do gm.
3. Zapisujemy gdzieś projekt i do tego folderu wkładamy 39dll.dll.
4. Inicjujemy bibliotekę:
GML//create:/*
Argument0: Jeżeli mamy w folderze z projektem 39dll.dll to dajemy 0, jak nie to ścieżkę do niego.
Argument1: True, jeżeli chcemy załadować funkcje socketów.
Argument2: True, jeżeli chcemy załadować "utilities".
No i ogółem to nam ładuje bibliotekę - inicjuje ją.
*/
5. Tworzenie serwera:
GML//create:Argument0: Port, na którym chcemy założyć serwer
Argument1: Maksymalna ilość ludzi na serwerze
Argument2: Tryb blokowania (zazwyczaj daje się true)
*/
//step:
nowygracz=tcpaccept(socket,1) //sprawdzamy czy ktoś doszedł
/*
Argument0: Id socketa, na którym nasłuchujemy.
Argument1: Tryb blokowania.
*/
if nowygracz //jezeli ktos doszedl
{
show_message('Ktos doszedl do gry!')
}
6. Podłączanie się do serwera:
GML//create:/*
Argument0: Adres ip serwera.
Argument1: Port serwera.
Argument2: Tryb blokowania.
*/
if serwer
{
show_message('Polaczyles sie!')
}
else
{
show_message('Nie udalo sie!')
game_end()
}
7. Funkcje transferu i inne:
writebyte() - wysyła bajt - uzywa sie przewaznie do naglowkow. - jest to liczba od 0 do 255
writeint() lub writeshort() - wysyla sie jakąś liczbe
writestring() - wysyla stringa
readbyte() - odbiera bajt
itd itp. tak jak powyzej tylko write na read zamienic.
w tej kolejnosci co sie wysyla to w tej sie odbiera np.
writestring('ziomek')
writestring('lolek')
to jak odbieramy:
readstring()
readstring()
najpierw odbierzemy ziomek potem lolek.
Przed wysłaniem trzeba wyczyścić bufor czyli:
clearbuffer()
A po wysyłaniu:
sendmessage(uchwyt)
w naszym przypadku jak byśmy wysyłali w kliencie to uchwyt byłby zmienną serwer.
Jak odbieramy to najlepiej sprawdzic czy w ogole ktos cos wyslal czyli:
var size;
size=receivemessage(uchwyt) <- w naszym przypadku w serwerze uchwyt to zmienna nowygracz
if size
{
//odbieramy np:
zmienna=readstring()
}
inaczej jak damy samo receivemessage i readstring() to bedzie zmienna pusta bo jak nikt nic nie wysle to pusto odbierze.
Teraz np jak chcemy zamknąć serwer to piszemy:
closesocket(uchwyt/idsocketa)
No i jest jeszcze baardzo duzo funkcji ale przeciez wszystkich nie będe wymienial :)
A teraz czas na przyklad:
Serwer:
Create:
GMLsocket=tcplisten(12000,2,1)if socket<=0
{
show_message('Nie udalo zalozyc sie serwera!')
game_end()
exit;
}
show_message('Udalo sie zalozyc serwer! Czekam na drugiego gracza..')
other=0
juzdoszedl=0
Step:
GMLif juzdoszedl=0{
var new;
new=tcpaccept(socket,1)
if new
{
other=new
show_message('Ktos doszedl do gry!')
juzdoszedl=1
}
}
else
{
if keyboard_check_pressed(vk_enter)
{
clearbuffer()
writestring(get_string('Podaj wiadomosc',0))
sendmessage(other)
}
var size;
size=receivemessage(other)
if size=0
{
show_message('Klient wyszedl z gry!')
game_end()
}
}
Klient:
Create:
GMLserwer=tcpconnect('127.0.0.1',12000,1)if serwer<=0
{
show_message('Nie moge sie polaczyc!')
game_end()
exit;
}
show_message('Polaczylem sie i czekam na wiadomosc od serwera...')
Step:
GMLvar size;size=receivemessage(serwer)
if size<0 exit;
if size=0
{
show_message('Serwer został wyłączony!')
game_end()
exit;
}
show_message(readstring())
No i to by było na tyle. Jak ktoś zauważy błędy bo pewnie są to piszcie zaraz poprawię :P I jak czegos brakuje dodam.
Pozdro!
-
czekaj zaraz ci napisze kurs i podam linka w edicie
-
no to draw_rectangle i na nim niech obliczy ile razy jest to mniejsze i wgle i niech rysuje kropy na oblcizonych x i y
-
nie czaję. jaką ty chcesz mapę? mapę polski czy co?
e: czy taką co jest w strategicznych grach? kwadrat taki i tam kropki jako obiekty? jak tak to zrób drugiego viewa moze i mu inna rozdzielczosc daj..
-
Czy da się jakoś wyczaić w GM-ie nazwę procesu który wykorzystuje dany port? +przy użyciu 39dll może się jakoś da?
-
mi sie wydaje że można by np punkty robić że punkty=100*0.2734902389048230234890 i potem draw punkty/0.[...]
czy jakos tak.
Zmiana sprite'a
w Pytania początkujących
Opublikowano
daj w step:
{
sprite_index=sprite_lewo
if place_free(x-4,y) x-=4
}
else if keyboard_check(vk_right)
{
sprite_index=sprite_prawo
if place_free(x+4,y) x+=4
}
else
{
sprite_index=sprite_stoi
}
cos w tym stylu