Nederlandse Game Maker Community

Werken met Game Maker => Tutorials en Uitbreidingen => Topic gestart door: blackhawk op 14 Oktober 2007, 14:47:16



Titel: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 14 Oktober 2007, 14:47:16
De 39dll.dll tutorial!
Door Rob Quist
GM-versie: :gm6: geregistreerd of :gm7: Pro
Niveau: gevorderden

Ik heb een topdownshooter gemaakt vanuit het spelletje dat je met deze tutorial gaat maken.
Ik raad je ten zeerste aan eerst de tutorial te lezen, en daarna pas hiernaar te kijken:

http://www.game-maker.nl/forums/topic,29420.0 (http://www.game-maker.nl/forums/topic,29420.0)

(Dit is een online topdown shooter)

(http://files.dukesoft.nl/site/screenshots/shoot_em_up.jpg)

Deze volledige tutorial en al zijn benodigdheden zijn hier te downloaden:
Download volledige ZIP (http://projects.dukesoft.nl/39dllex/tutorial.zip)
Nieuwe links, als de vorige het niet (meer) doet:
http://updo.nl/file/661c8830uKkOV
http://easy-upload.nl/f/uKkOVynz
Nieuwere links:
http://lucb1e.com/gm/tuts/static_upload/blackhawk_39dll_example.zip
http://g2f.nl/8ox1mh

En hier kan je deze tutorial bekijken in een aparte pagina:
Klik (http://projects.dukesoft.nl/39dllex/tutorial.html)



Inhoud:
1 - Het Begin
    a. Inleiding
   b. Benodigdheden
   c. Basisuitleg
   d. Uitleg over tekens en overige in de text.
2 - Lets Start!
   a. Goed voorbereiden
    b. De Server opzetten
   c. De Client opzetten



Hoofdstuk 1
Het Begin

a. Inleiding

Zo. Dus je wilt een online game maken? Das eigenlijk heel makkelijk als je de basis hebt.
We gaan met deze tutorial een klein chat + loop exampletje maken met 1 grote server.
Oftuwel, we hebben 1 server, die 24 / 7 draait, waar de clients op kunnen inloggen en op kunnen spelen.

b. Benodigdheden

de 39dll.ddl (het bestand zélf)
gamemaker 6.0, 6.1 of 7.0 geregistreerd.
(In deze tutorial werk ik met Gm6.1)
Een goede kennis van GameMaker
Een goede kennis van GML
Een goede kennis van Engels
Een redelijke kennis van internet / ipadressen / pakketjes / poorten / sockets.

c. Basisuitleg

In 39dll.dll werk je met clients en servers.
Die communiceren via pakketjes die ze naar elkaar verzenden.
Deze pakketjes gaan via een protocool (tegenwoordig, vanaf win98 is het TCP/IP, en vroeger was dat UDP, en nog vroeger, in de middeleeuwen heette het POSTDUIF.)
een bepaalde poort uit (bij de server is dat voor TPC 12564, en voor UPD 12565. (maar UDP gaan we toch niet gebruiken))
en dan bij de client een bepaalde poort weer in (standaard is dat voor TPC 12564, en voor UPD 12565).
(http://projects.dukesoft.nl/39dllex/img01.jpg)
Byte    - Kan van 0 tot 255
String  - Is gewoon een "string". Een reeks letters en of cijfers dus.
Short   - kan inhoud bevatten van -32768 tot +32767
Ushort  - een Unsinged short. Dat betekend dat hij niet onder de 0 kan, dus dit is maximaal +65536
Integer - Kan inhoud bevatten van -2147483648 and +2147483647 (das een helehoop)
uInteger- een Unsinged integer. Die kan dus ook niet onder de 0. Maximaal kan hij dus +4294967296 aan.
float   - Een 4 bytes lang getal dat onder de 0 kan komen.
double  - Zelfde als float, maar dan met nog grotere getallen.
Het meeste wat ik gebruik is Byte, String en Integer.
Ik gebruik byte omdat dat sneller is dan integer. Als ik niet meer dan 255 nodig heb, gebruik ik byte.
Als er een variabel in komt dat de speler zelf kan weizigen, maak ik er uit voorzorg maar integer van.
In een pakketje kan van alles tegelijk zitten. Zoiets:
Code:
/-------Pakketje-------\
|          4   |byte
|        "Rob"         |string
|         32           |integer
|         48           |integer
|         8            |integer
\----------------------/
Dit zegt jou niets, maar je spel wel. Jij kan in je client dit programmeren:
GML:
writebyte(4) //Dit word het ID van het bericht, zodat de server  
             //kan zien wat hij uit het pakketje moet halen.
//In dit geval verzenden wij van alles (zie hieronder).
writestring(""+string(global.playername)+"",true) //Hierin verzenden wij de naam van de speler.
                                                  //In het komende spel verzenden we die maar 1
 //keer, maar dit is even om voor te doen.
                                             //True kan je beter altijd true laten, omdat
 //deze ervoor zorg dat je de lengte van de
 //string meezend. Aangezien wij hier meerdere
 //dingen in 1 pakket verzenden, is dit
 //noodzakelijk.
writeint(x) //Dit is de X positie van de speler
writeint(y) //Hmm... Wat zou dat zijn?
writeint(global.money) //Hier verzenden we de hoeveelheid geld van de speler.
Nu krijg je dus je
[4,"Rob",32,48,8]
verhaal.

(http://projects.dukesoft.nl/39dllex/img02.jpg)

Zo kan de server dus makkelijk uitlezen wát de client verzend.
We gaan hier later nog dieper op in.

d. Uitleg over tekens en overige in de text.

Hier even een aantal dingetjes over die in de text voorkomen.

***Iets tussen 3 sterretjes***
Hier staat gewoon even een simpele mededeling in.


Hoofdstuk 2.
Lets Start!

a. Goed Voorbereiden

Nou, wat ik altijd doe is:
Ik maak een standaard gm6 (of gmk-tje) waarin ik allerlij scripts en standaard dingen zet.
Dit gaan we in dit geval ook doen. Hier heb ik het bestand dat je moet hebben:
Download voleddige ZIP (http://projects.dukesoft.nl/39dllex/tutorial.zip)
Hierin staat dus:

*  Een GM6-je met allerlij scripts erin
*  De 39dll.dll zelf
*  Deze tutorial
*  Stap voor stap de editables die bij deze tutorial horen,
*  zodat je zeker weet dat je niets fout doet, of geen zin hebt
*  om de code te CTRL+C'en en dan te CTRL+V'en.
*  (je weet wel, de sneltoetsen voor kopieren en plakken ^.^)


Maak nu een nieuw game-maker project.
Merge alvast de gm6 die in de zip zat, dus standaard39dll.gm6.

Nou, dan zijn we er nu klaar voor... :)


b. De Server Opzetten

De server, daar draait het allemaal om. Deze vergaart en verzend data.
Allereerst, includen we de 39dll.dll. (zie hieronder)

Voor :gm6: of :gm7:
*  Klik op global game settings (onderin)    
*  Klik op de tab Include              
*  Klik op de Add knop                  
*  Selecteer de 39dll.dll uit de zip    
*  Klik op ok                            
*  Selecteer dan beide vinkjes  
   [] Overwrite existing files
   en
   [] Remove at game end
*  Dan klik je op OK.

(http://projects.dukesoft.nl/39dllex/img03.jpg)

Nu zal standaard de 39dll.dll bij je game zitten.
Dit werkt makkelijker ;)

Voor :gm8:
Het include-venster bevindt zich onder Resources > Included Files. De rest is hetzelfde.

Nou, dan beginnen we met een 'meester' object.
Die maakt global variabelen, laadt de DLL,
je weet wel. Dat soort dingen.
Maak het object 'obj_ubercontroller' aan.
Zet in de game start event dit script:

GML:
dllinit(0,true,true);

Dit is een functie uit de ge-mergde gm6.
Deze laadt de gehele 39dll.dll.
Het eerste argument is de naam van de DLL
Als deze een real is, doet hij de standaard (39dll.dll).
Je kan hier eventueel in de vorm van de string de naam
van je dll zetten. (als je 39dll.dll bijv. hernoemt)
De laatste twee staan voor of ze alle functies van de dll inladen.
In dit geval doe ik ze voor de zekerheid toch maar allebij ;)

Dan maken we een game end event waarin dit stuk code staat:
GML:
dllfree();
show_message("De server is gestopt.");
game_end();

De code dllfree() gooit de gelaadde dll weer uit het geheugen.
De rest spreekt voor zichzelf.

Nou, nu we de standaard hebben, gaan we terug naar de game start event.

Daar bewerken we de oude code, door dit toe te voegen:

GML:
global.tcppoort=12564; //Dit is de poort voor de TCP connectie. Die kan je het beste zo laten.
global.maxplayers=20; //Hier zeggen we alvast hoeveel spelers we maximaal in het spel willen hebben. In dit geval 20 :)
for(i=0; i < global.maxplayers; i+=1)
{
global.players[i] = -1;
}
//dit stukje code zal de array maken voor alle spelers. Kom ik later op terug.


//Hier openen we de TCP connectie door naar inkomende pakketjes te luisteren op poort global.tcppoort.
global.servertcp = tcplisten(global.tcppoort,10,1);
//arg0=De poort waar we naar luisteren
//arg1=Maximum aantal connecties op die poort vanaf deze PC (Kan je beter 10 laten)
//arg2=Blocking(0) mode of Non-Blocking(1) mode. Deze kan je ook het beste 1 laten.

//Nu gaan we kijken of die connectie goed is gegaan. Zoniet, klopt de poort niet.. Of de firewall.
//Of iets anders... :) Zoals dat je PC uit elkaar is geknald.
if (global.servertcp) then {
//De server startte!! :D YAY!
show_message("TCP socket geopend op poort "+string(global.tcppoort)+".");
}
else
{
//Als hij dat niet deed :'( dan sluiten de het luisteren, en stoppen de server.
closesocket(global.servertcp);
show_message("Kon de server niet starten op TCP connectie via poort "+string(global.tcppoort)+"!");
game_end();
exit;
}
global.maxplayers=20 //Hier leg ik later meer over uit.
for(i=0; i < global.maxplayers; i+=1)
{
global.players[i] = -1;
}

Maak nu ff snel een room aan en zet dit object erin.

Run nu je game maar eens. Als het goed is krijg je een firewall waarschuwing :D
Van Norton weet ik dat dat pokkeding gaat zeiken :@
maar van windows zelf weet ik het niet precies.. Maar waarschijnlijk zo'n blokkering opheffen dinges.

(http://projects.dukesoft.nl/39dllex/img04.jpg)

(jah, die tijd klopt.. Ik ga zo slapen :) )
***De gm6 totaan dit gedeelte heet 2bserv.gm6 Download (http://projects.dukesoft.nl/39dllex/2bserv.gm6)***


Nu gaan we even snel een systeempje maken waarmee we berichten en informatie
van de server snel kunnen uitlezen zónder show_message();.
Met de funcie show_message(); word het hele spel stilgelegd, en dus
worden er ook geen pakketjes ontvangen / verzonden.

Eerst maken we even een script (in de script map) die heet
showdatetime
Hierin zet je deze code:
GML:
return string(date_datetime_string(date_current_datetime()))
Dit is eingenlijk om dingen wat te versnellen tijdens het programmeren.
In plaats van string(date_datetime_string(date_current_datetime())) te typen,
typen we nu gewoon
showdatetime()

Dan maken we een script genaamd chat_initlines
Daarin zet je deze code:
GML:
{
  global.maxline = 20; //Deze kan je veranderen in hoe groot je scherm is. Ik houd het op 20
  for (i=0; i<global.maxline; i+=1)
  {
    global.line[i] = '';
    global.color[i] = c_black;
  }
}

Dan een script genaamd chat_addline
Daarin zet je deze code:

GML:
//argument0 = De lijn text
//argument1 = De kleur van de text
{
  for (i=0; i<global.maxline-1; i+=1)
  {
    global.line[i] = global.line[i+1];
    global.color[i] = global.color[i+1];
  }
    global.line[global.maxline-1] = argument0;
    global.color[global.maxline-1] = argument1;
}


Dan maken we het laatste script, genaamd  chat_drawlines
Daarin zet je deze code:
GML:
{
  var xxx,yyy;
  xxx = argument0;
  yyy = argument1;
  draw_set_font(fnt_chat);
  for (i=0; i<global.maxline; i+=1)
  {
    draw_set_color(global.color[i]);
    draw_text(xxx,yyy,global.line[i]);
    yyy += 18;
  }
}

Nu voeg je het font fnt_chat toe.
Lettertype:    Veranda
Lettergrootte: 8
Letteropmaak:  Dikgedrukt

Dat zal wel passen.

Nu gaan we naar de obj_ubercontroller, waarin we in de game start event dit lijntje code toevoegen:
GML:
chat_initlines();

Onthoud dat dit wel bovenaan moet! Dus boven of precies onder de dllinit(); code.

Nu moet je de regel zoeken van de
GML:
show_message("TCP socket geopend op poort "+string(global.tcppoort)+".");
Die vervangen we door:

GML:
chat_addline("TCP socket geopend op poort "+string(global.tcppoort)+".",c_red);


Dan maken we een draw event in de ubercontroller.
Daarin komt dit stukje code:
GML:
chat_drawlines(10,10);

Start nu de server maar eens :)

***De gm6 totaan dit gedeelte heet 2bserv2.gm6 Download (http://projects.dukesoft.nl/39dllex/2bserv2.gm6)***

Nou, nu gaan we ervoor zorgen dat de server kijkt wanneer iemand een connectie maakt met de server.
Dit doen we door in de step event te kijken naar connecties die gemaakt worden.
Daar heeft men dit script voor ontworpen:
GML:
tcpaccept(tcppoort,true);

Nou gaan we die erin zetten.
Maak je step-event, en zet er een code-blok in.

Daarin zet je:
GML:
var clientsocket, player;
Dit; dat maakt alvast de variabelen aan die we gaan gebruiken.

en dan dit, die naar de verbindingen zoekt:
GML:
clientsocket = tcpaccept(global.servertcp,true);
Deze kijkt dus naar verbindingen die binnenkomen op de tpc connectie die we eerder hebben gemaakt, genaamd global.servertcp, en noemt variabel clientsocket ernaar.

Dan maken we het zo, dat als er geen verbinding word gemaakt, we er ook niets mee proberen te gaan doen.
Dat doen we door dit simpele scriptje:
GML:
if (clientsocket <=0) exit;
die verlaat de step event als er geen connectie is gemaakt.

Dan gaan we alles synchroniseren in de server en de client.
GML:
setsync(clientsocket,0);

Wat we nu dus hebben:

GML:
var clientsocket, player;

clientsocket = tcpaccept(global.servertcp,true);
if (clientsocket <=0) exit;

setsync(clientsocket,0);

Dit is eigenlijk de basis :)

We denken vooruit, en zeggen dat het eerste wat de speler zal verzenden de gebruikersnaam is.

Oftuwel, we moeten dat pakketje uit elkaar halen.
Dan doen we dus op deze manier:

Eerst accepteren we het gehele pakketje:
GML:
receivemessage(clientsocket);

dan zetten we variabele name naar de string die in het pakketje word verzonden:

GML:
name = readstring();

Nu we dit weten, gaan we kijken of er genoeg ruimte is voor de spelers.
Dat doen we door te kijken hoeveel obj_client objecten er zijn.
Ik zal zometeen uitleggen hoe alles met obj_client werkt.

GML:
//Kijk of er ruimte over is
if (instance_number(obj_client) = global.maxplayers)
{
//En als er jammer genoeg geen ruimte is, sturen wij dit naar de client die probeert te joinen.
clearbuffer();
writebyte(2);
sendmessage(clientsocket);
exit;
}

Dit hele stuk zal ervoor zorgen dat er niet oneindig veel spelers zullen komen, maar maximaal wat jij hebt ingesteld.

Nu gaan we even wat toevoegen in de array van alle spelers:

GML:
//nu gaan we door de speler array zoeken of er een open plek is. In de speler array word het ID van de speler opgeslagen, in combinatie met het ID van de obj_client. (zometeen leg ik daar wat over uit).
for(i=0; i < global.players; i+=1)
{
//Dus, als we een lege (-1) vinden, stoppen we de loop.
if (global.players[i]==-1) break;
}

Nu gaan we de client vertellen dat hij in het spel zit, en gelijk zijn ID versturen.

GML:
//We sturen de speler die joinde het bericht dat hij erin is. Ook gelijk verzenden wij hem zijn ID.
clearbuffer();
writebyte(1);
writebyte(i);
sendmessage(clientsocket); //het bericht is verstuurd.

Nu weet de speler dat hij in het spel zit :)
Nu gaan we zorgen dat de server dit ook weet.

We hebben hier een aparte, maar overzichtelijke manier voor.
Voor elke speler hebben we obj_client.
Die is dus voor iedereen hetzelfde.
Een speler IS als het ware een obj_client.
Ze verschillen alleen van elkaar door middel van verschillende id's die wij hun geven.
Zo kunnen we van elk de x en y etc. achterhalen :)

GML:
//We maken de speler, obj_client
player = instance_create(0,0,obj_client);
//we zetten het speler id in de obj_client
player.pid = i;
//Nu geven wij de socket die word gebruikt voor de speler, aan de speler zelf. Dan weten we naar welk ip we pakketjes moeten sturen :)
player.tcp = clientsocket;
//We geven de speler hem zijn eigen gebruikersnaam
player.username = name;
//Dan zetten we de speler zelf in de globale array.
global.players[i] = player;

Nu zit het bij de client en de server goed.
Alleen, moeten we nu nog naar de andere spelers sturen dat iemand heeft gejoined.
Dit doen we door Message ID 3.
Zoals,
1 was   : Je bent in het spel
2 was   : Sorry, de server zit vol
3 is dus: Iemand anders is in het spel gekomen.
^^^^
Dit is allemaal client side, dus voor de client en niet voor de server.
Leg ik later meer over uit.
Nu verder naar het script:
GML:
//We versturen een simpel pakketje naar iedereen met het ID en de username van degene die joinde.
clearbuffer();
writebyte(3);
writebyte(i);
writestring(name,true);
with(obj_client)
{
if (id!=player)
{
sendmessage(tcp);
}
}
Nu weet de rest dat de client er is.
Alleen -> De client weet niet wie er allemaal al in zitten!

Dat doen we op dezelfde manier :)
GML:
//En dan zeggen we tegen de gene die net is gejoind, wie er allemaal al zijn.
with(obj_client)
{
if (id!=player)
{
clearbuffer();
writebyte(3);
writebyte(pid);
writestring(username,true);
sendmessage(clientsocket);
}
}

Nu gaan we de synchronisatie stoppen, omdat we klaar zijn met de gehele connectie.
Die word van obj_ubercontroller naar obj_client gezet.

GML:
//Zet de synchronisatie tussen server en client uit.
setsync(clientsocket,1);

//Zeg gelijk op de server dat er iemand bij is gekomen :)
chat_addline(name + " has joined.",c_black);

Nu is het hele server-sided script voor obj_ubercontroller klaar.
Als het goed is heb je nu dit:

GML:
var clientsocket, player;

clientsocket = tcpaccept(global.servertcp,true);
if (clientsocket <=0) exit;

setsync(clientsocket,0);

receivemessage(clientsocket);
name = readstring();

//Kijk of er ruimte over is
if (instance_number(obj_client) = global.maxplayers)
{
//En als er jammer genoeg geen ruimte is, sturen wij dit naar de client die probeert te joinen.
clearbuffer();
writebyte(2);
sendmessage(clientsocket);
exit;
}

//nu gaan we door de speler array zoeken of er een open plek is. In de speler array word het ID van de speler opgeslagen, in combinatie met het ID van de obj_client. (zometeen leg ik daar wat over uit).
for(i=0; i < global.players; i+=1)
{
//Dus, als we een lege (-1) vinden, stoppen we de loop.
if (global.players[i]==-1) break;
}

//We sturen de speler die joinde het bericht dat hij erin is. Ook gelijk verzenden wij hem zijn ID.
clearbuffer();
writebyte(1);
writebyte(i);
sendmessage(clientsocket); //het bericht is verstuurd.

//We maken de speler.
player = instance_create(0,0,obj_client);
//We slaan zijn id op in de client...
player.pid = i;
//We zeggen welk ip bij deze speler hoort. Dus waar hij naar moet luisteren / verzenden.
player.tcp = clientsocket;
//We zetten zijn gebruikersnaam in het object
player.username = name;
//En ook in de lijst :)
global.players[i] = player;

//We versturen een simpel pakketje naar iedereen met het ID en de username van degene die joinde.
clearbuffer();
writebyte(3);
writebyte(i);
writestring(name,true);
with(obj_client)
{
if (id!=player)
{
sendmessage(tcp);
}
}

//En dan zeggen we tegen de gene die net is gejoind, wie er allemaal al zijn.
with(obj_client)
{
if (id!=player)
{
clearbuffer();
writebyte(3);
writebyte(pid);
writestring(username,true);
sendmessage(clientsocket);
}
}

//Zet de synchronisatie tussen server en client uit.
setsync(clientsocket,1);

//Zeg gelijk op de server dat er iemand bij is gekomen :)
chat_addline(name + " has joined.",c_black);


***De gm6 totaan dit gedeelte heet 2bserv3.gm6 Download (http://projects.dukesoft.nl/39dllex/2bserv3.gm6)***

Oke, nu gaan we beginnen met obj_client.
Dus, we beginnen met een object aan te maken.
Noem deze obj_client.

Zet alvast maar in de destroy event dit neer:
GML:
//Stop het socket
closesocket(tcp);

Het is toch maar zo'n klein beetje ;)
Het spreekt voor zichzelf denk ik :)

Dan gaan we beginnen met het stuk code waar het allemaal om draait.

Maak maar alvast een step event aan bij obj_client.

We beginnen natuurlijk weer met aanmaken van variabelen.
GML:
//Maak de variabelen aan die we gaan gebruiken
var messagesize, messageid;

Daarna, gaan we kijken welke berichten er binnenkomen.
obj_ubercontroller zal alleen berichten met id 1 eruit filteren, dus gaan we hier kijken naar berichten met id 2 of hoger, aangezien 1 het hier toch nooit maakt.

GML:
//Kijk of er een pakketje binnenkomt
messagesize = receivemessage(tcp);
//Als er geen bericht is binnengekomen, stoppen we met dit scriptje.
if (messagesize <=0) break;
//En als er dus wel 1 is, gaan we kijken wát voor bericht er is binnen gekomen.
messageid = readbyte();
Dit spreekt weer voor zichzelf.
Hij kijkt of er pakketjes zijn gekomen,
zonee -> stoppen we met deze hele hap
zoja  -> Gaan we door, en kijken we gelijk wat voor pakketje werd verzonden, door dus het id uit te lezen.

Dit uitlezen doen we met een switch en cases.
Dit gaat zo:
GML:
//We beginnen met case 2, omdat obj_ubercontroller case 1 er al uit haalt.
switch(messageid)
{  
    case 2:
    //Dit is bericht id 2.
    //Deze leest zegmaar de belangrijkste dingen van de client, zoals de x, y en de direction
    var player, value;
    value = readbyte();
    //Nu weten we welk ID welke speler heeft, en gaan we de ontvangen data aan hem koppelen.
    player = global.players[value];
    player.x = readshort();
    player.y = readshort();
    player.direction = readshort();
    clearbuffer();
    //Nu gooien we de buffer weg, en maken ons klaar om dit pakketje 'door te sturen' naar de andere clients.
    writebyte(5);
    writebyte(value);
    writeshort(player.x);
    writeshort(player.y);
    writeshort(player.direction);
    with(obj_client)
    {
    sendmessage(tcp);
    }
    break;
    
    case 3:
    //bericht id 3, iemand is weggegaan. Wat vervelend!
    var playerid, username;
    playerid = readbyte();
    username = readstring();
    clearbuffer();
    //We sturen het weer door naar de anderen.
    writebyte(6);
    writebyte(playerid);
    writestring(username,true);
    with(obj_client)
    {
    sendmessage(tcp);
    }
    chat_addline(username + " heeft het spel verlaten.",c_black);
    with(global.players[playerid])
    {
    instance_destroy();
    //En we vernietigen de speler. Als dit niet gebeurt zal hij alleen maar stil blijven staan. Toevallig is dit dan ook zin 666 :)
    //(mensen die veel Men of War spelen kennen die bug in Men of War wel ;)
    }
    global.players[playerid] = -1;
    //We maken de spelerlijst weer vrij voor andere spelers.
    break;
    
    case 4:
    //:O we kregen een chat bericht van iemand binnen
    chatmessage = readstring();
    chat_addline(chatmessage,c_black);
    clearbuffer();
    writebyte(8)
    writestring(chatmessage,true);
    with(obj_client)
    {
        sendmessage(tcp);
    }
    break;
}
Het is even een hele lap text, maar ik zal hem even uitleggen:

We kijken welk id we binnen krijgen voor het pakketje.

Bijvoorbeeld, 2.
Dan gaan we naar case 2, waarin dit staat:

GML:
case 2:
    //Dit is bericht id 2.
    //Deze leest zegmaar de belangrijkste dingen van de client, zoals de x, y en de direction
    var player, value;
    value = readbyte();
    //Nu weten we welk ID welke speler heeft, en gaan we de ontvangen data aan hem koppelen.
    player = global.players[value];
    player.x = readshort();
    player.y = readshort();
    player.direction = readshort();
    clearbuffer();
    //Nu gooien we de buffer weg, en maken ons klaar om dit pakketje 'door te sturen' naar de andere clients.
    writebyte(5);
    writebyte(value);
    writeshort(player.x);
    writeshort(player.y);
    writeshort(player.direction);
    with(obj_client)
    {
    sendmessage(tcp);
    }
    break;
Hier plukken we het pakketje uit elkaar, gebruiken de data, en sturen hem weer door.
We krijgen dus de x, y en direction binnen van een speler.
Die geven we aan obj_client, (dus zichzelf) en dan sturen we hem door naar de andere clients :) (die smiley was toevallig net letter 22222 :P)

Nu werkt eigenlijk onze hele server al! :D
Zo simpel is dat!

Alleen: we gaan nog ff maken dat we kunnen chatten.
Zegmaar dat de server berichtjes kan sturen naar de spelers.
Dat gaat erg makkelijk, namelijk zo:

In de draw event van obj_ubercontroller zetten we dit erbij:
GML:
draw_set_color(c_black)
draw_text(10,430,"> " + string(keyboard_string) + "|");

in totaal staat er in de draw event dan
GML:
chat_drawlines(10,10);
draw_set_color(c_black)
draw_text(10,430,"> " + string(keyboard_string) + "|");

En we maken een KeyBoard Press enter event.
Dus zo eentje met een Rode pijl :)

Daarin zetten we een stuk code, namelijk:
GML:
//Eers kijken we of de server wel wat heeft ingetypt :P
if keyboard_string != ""
{
//Zoja, zetten we het chatbericht in de server zelf, zodat hij kan zien dat hij iets heeft verzonden.
chat_addline(keyboard_string,c_black);
//Dan gaan we het bericht verzenden naar de clients. We doen dit met bericht id 9, omdat de rest al in gebruik is.
clearbuffer();
writebyte(9);
writestring(keyboard_string,true);
with(obj_client)
{
    sendmessage(tcp);
}
//En we maken de keyboard string weer leeg.
keyboard_string = "";
}

Én, nu we clients hebben, moeten we aan hun vertellen dat de server stopt als we hem afsluiten.
Oftuwel, aan de game end van obj_ubercontroller, voeg je AAN DE BOVENKANT TOE:
GML:
//We vertellen tegen elke client dat we afsluiten.
clearbuffer();
writebyte(7);
with(obj_client)
{
sendmessage(tcp);
}

//Stop de socket
closesocket(global.servertcp);
zodat we nu hebben:

GML:
//We vertellen tegen elke client dat we afsluiten.
clearbuffer();
writebyte(7);
with(obj_client)
{
sendmessage(tcp);
}

//Stop de socket
closesocket(servertcp);

dllfree();
show_message("De server is gestopt.");
game_end();

Nou, dan is de server eigenlijk af :D



Wat we nu gedaan hebben:
We maakten een server die een poort voor zichzelf openzet, waardoor hij kijkt naar nieuwe connecties.
Als hij een connectie ziet, nemen we op wat er in het pakketje staat.
Daarna maken we de speler op de server, en laten hem communiceren met de client.
En de server kan nu chat berichten sturen naar de clients.

Dat was dat! :D

***De gm6 tot nu toe heet: Server.gm6 Download (http://projects.dukesoft.nl/39dllex/server.gm6)***

c. De Client Opzetten

Nou, nu gaan we beginnen met de client.
Dit is het meeste werk, omdat we hier het spel zelf in moeten zetten én het spel moeten maken.
Laten we beginnen met een simpel spelletje.
We maken een poppetje dat topdown kan rondlopen, en met muren waar hij niet doorheen kan.

Ik ga dit niet helemaal bespreken, omdat ik weet (eigenlijk hoop) dat je dit wel kan...

Ik heb ff snel een gm6-je voor je gemaakt.

***De gm6 totaan dit gedeelte heet 2cclient.gm6 Download (http://projects.dukesoft.nl/39dllex/2cclient.gm6)***

Nu gaan we beginnen met het spel online te maken.
Laten we weer, net als bij de server, beginnen met de standaard39dll.gm6 te mergen in het spel.

Nu maken we even snel alvast het chat-gedeelte voor de client. Werkt ongeveer het zelfde als de server maar niet helemaal.
Maak een font genaamd
fnt_chat
Daarin stellen we het volgende in:
Lettertype: Veranda
Lettergrootte: 8
Vetgedrukt

We maken nu even een script, genaamd
chat_initlines
daarin zet je deze code:
GML:
{
  global.maxline = 6; //Dit is nu 6. Een stuk korter, maar anders zit het door je hele spel heen.
  for (i=0; i<global.maxline; i+=1)
  {
    global.line[i] = '';
    global.color[i] = c_black;
  }
}

En je maakt een script genaamd
chat_addline

daarin zetten we dit:
GML:
//We voegen een stuk text toe aan de chat-dinges.
//argument0 = de text, argument1 = de kleur
{
  for (i=0; i<global.maxline-1; i+=1)
  {
    global.line[i] = global.line[i+1];
    global.color[i] = global.color[i+1];
  }
    global.line[global.maxline-1] = argument0;
    global.color[global.maxline-1] = argument1;
}

Dan, ten slotte nog 1 script, en dat noem je
chat_drawlines
Daarin komt dit:
GML:
//Drawt de chat-text op een bepaalde plek.
var colour;
colour = draw_get_color()
{
  var xxx,yyy;
  xxx = argument0;
  yyy = argument1;
  draw_set_font(fnt_chat);
  draw_set_halign(fa_left);
  for (i=0; i<global.maxline; i+=1)
  {
    draw_set_color(global.color[i]);
    draw_text(xxx,yyy,global.line[i]);
    yyy += 20;
  }
}
draw_set_color(colour)

Dan gaan we weer de tcp-poorten en connecties openen.

We maken een object, genaamd obj_ubercontroller.
We voegen er een game-start event aan toe.
Daarin zetten we een stuk code.
Dat gaat als volgt:
GML:
//We laden de DLL
dllinit(0,true,false);

//We laden net als bij de server het chat-gedoe
chat_initlines();

//We vragen nu om de gebruikersnaam van de speler.
global.username = get_string("Gebruikersnaam:","");

//En we vragen het IP dat de speler wilt joinen.
//Je kan dit ook zelf instellen.
//En, 127.0.0.1 óf localhost staat voor de lokale computer.
//Dus als je de server op deze pc draait en het spel ook, moet je ip 127.0.0.1 of localhost invoeren.
global.serverip = get_string("Server IP:","127.0.0.1");

//Hier stellen we de poort in.
//Moet hetzelfde zijn als bij de server! Anders lukt het niet!
global.serverport = 12564;

//Dit is erg belangrijk, dat het hetzelfde is als op de server.
//In elk geval niet kleiner! Anders loopt serieus ALLES door elkaar en gaat het ALLEMAAL fout. Bij de server en dus ook bij alle ander clients.
global.maxplayers=20;

Nu hebben we alles ingesteld. Nu gaan we maken dat de client een connectie
maakt met de server global.serverip via poort global.serverport
via het protocol TCP/IP.

GML:
//Hier leggen we de connectie... Althans, dat proberen we
global.clienttcp = tcpconnect(global.serverip,global.serverport,1);

//Want hier kijken we of alles goed is.
if (!tcpconnected(global.clienttcp))//Als hij goed is, geeft die functie FALSE terug.
    {
    //En is dat niet het geval, bijv. de server blokkeert deze verbinding, zeggen we dat het niet lukte.
    show_message("Kon geen verbinding maken met de server.");
game_end();
//en stoppen we het spel :)
    }
else
    {
    //En als dit niet het geval is, vertellen we dit aan de client.
    setnagle(global.clienttcp,1);
    chat_addline("Er is nu verbinging met "+string(global.serverip)+":"+string(global.serverport)+" via TCP/IP.",c_green);
    
    //Dan sturen we onze gebruikersnaam naar de server :)
    clearbuffer();
    writestring(global.username,true);
    sendmessage(global.clienttcp);
    }

Dan gaan we de rest nog even doen, zoals de spelerlijst aanmaken.
GML:
//We maken de spelerlijst
var i;
for(i=0;i<global.maxplayers;i+=1)
    {
    players[i] = -1;
    }

//We geven de speler een hartelijk welkom.
chat_addline(global.username+", hoi.",c_black);

//Beginnen met de ping te maken
deltatime = current_time;
ping = 0;

//Dit is de timeout-tijd.
//Dus als de speler voor langer dan 8 seconde geen reactie krijgt van de server, stopt het spel.
//Dit is in milliseconden.
timeout = 8000;
send=0
Maak een simpele room met één speler en één obj_ubercontroller. En misschien vool de lol wat muurtjes :)

Start hem nu maar eens!

HET WERKT!
Je hebt zojuist VIA TCP/IP de server laten weten dat er een speler heeft gejoint!
:D

***De gm6 totaan dit gedeelte heet 2cclient2.gm6 Download (http://projects.dukesoft.nl/39dllex/2cclient2.gm6)***

Alleen, je kan nog niet chatten, elkaar nog niet zien, en de server merkt het niet eens als je weggaat!
Dus eigenlijk gaat nu alles fout.
Daar gaan we wat aan doen :)

Maak bij obj_ubercontroller een draw event aan.
Zet daarin deze code:
GML:
//Zet de kleur alvast naar zwart
draw_set_color(c_black);

//Nu drawen we de chat :)
chat_drawlines(view_xview[0]+16,view_yview[0]+16);

//En nu de text, voor het chatten.
if send = true
    {
    draw_set_alpha(0.5)
    draw_set_color(c_black)
    draw_roundrect(view_xview[0]+16-2,view_yview[0]+144-2,view_xview[0]+16+string_width(keyboard_string)+5,view_yview[0]+144+15,0)
    draw_set_alpha(1)
    draw_set_color(c_white)
    draw_text(view_xview[0]+16,view_yview[0]+144,keyboard_string);
    draw_set_color(c_black)
    }
Dan hebben we dat..
Wat we nu nog even gaan doen, is de ping, de FPS en de gebruikersnamen boven de spelers.
We hebben al in ons hoofd dat het object voor de andere speler obj_player_other word.

Voeg bij het draw event dit toe:
GML:
//We drawen de ping
draw_text(view_xview[0]+544,view_yview[0]+16,"Ping: " + string(ping) + "ms");

//We drawen de FPS. (altijd handig :) )
draw_text(view_xview[0]+466,view_yview[0]+16,"FPS: " + string(fps));

//We drawen de gebruikersnaam boven de speler zelf.
draw_set_halign(fa_center);
draw_text(obj_speler.x-15,obj_speler.y-25,global.username);

//En we drawen de gebruikersnaam van een andere speler boven hem.
with(obj_player_other)
    {
    draw_text(self.x-15,self.y-25,username);
    }

Dan was dat de draw event :)

Nu over naar het belangrijkste gedeelte. (lol dit is toevallig zin 1000 :P )
De pakketjes!
We krijgen dus allerlij pakketjes van de server naar ons toegestuurd.
Dit met de message id's.
Die gaan we hier uit elkaar plukken.

Dat gaat als volgt.
Maak een step event aan in de obj_ubercontroller.
Zet daarin een script.
In dat script zetten we dit stukje code:

GML:

//We maken alvast geheugen vrij voor onze variabelen.
var messagesize, messageid;

//Nu gaan we kijken naar berichten die binnen komen.
while(1)
    {
    //We kijken of er een berichtje is.
    messagesize = receivemessage(global.clienttcp);
    
    //Als er geen bericht was, stoppen we met dit stuk code. (alles wat tussen de { en de } staat van de while(1).
    if (messagesize <= 0) break;
    
    //Als er wel een bericht binnenkwam, kijken we wat het bericht is.
    messageid = readbyte();
    
    //Nu zetten we de ping naar 0 omdat we een bericht van de server kregen.
    ping = 0;
    
    //En we gaan kijken wat de server ons probeert te verzenden.
    switch(messageid)
        {
        //Als het bericht id 1 is, doen we dit:
        case 1:
        //We slaan ons id op als het ID wat we van de server krijgen.
        global.myid = readbyte();
        obj_speler.alarm[0] = 1;
//Dit is het alarm van de speler.
//In dit alarm word elke keer de X en de Y en de andere dingen van de speler verzonden.
//Dit doe ik niet in de step van de speler, maar met een alarm, zodat we de interval-tijd kunnen beperken.
//Oftuwel, we hoeven niet elke keer de x en y te updaten. Dit kan ook wel eens per kwart seconde. Het ziet er haperender uit,
//maar er word vele malen minder data verzonden van en naar de server.

        //En we stoppen de switch.
        break;
    
        case 2:
        //Dit bericht krijgen we als de server vol is.
        show_message("Sorry! De server zit vol.");
        stop_spel_online();
//Kom ik zometeen op terug.
        break;
        
        case 3:
        //Er is een nieuwe speler. (het object maken)
        var userid, name, user;
        userid = readbyte();
        user = instance_create(obj_speler.xstart,obj_speler.ystart,obj_player_other);
        user.pid = userid;
        name = readstring();
        user.username = name;
        players[userid] = user;
        chat_addline(name + " is ingelogd.",c_black);
        break;
        
        case 4:
        //Er is een nieuwe speler. (het chat bericht)
        var name, userid;
        userid = readbyte();
        name = readstring();
        user = players[userid];
        user.username = name;
        chat_addline(name + " is ingelogd.",c_black);
        break;
        
        case 5:
        //Nu krijgen we de data van andere spelers binnen.
//Dit slaan we op in het corresponderende object van de client.
        value = readbyte();
        player = players[value];
        player.x = readshort();
        player.y = readshort();
        player.direction = readshort();
        break;
        
        case 6:
        //een speler verlaatte het spel.
        var playerid, username;
        playerid = readbyte();
        username = readstring();
        chat_addline(username + " is uitgelogd.",c_black);
        with(players[playerid])
            {
            instance_destroy();
            }
        players[playerid] = -1;
        break;
        
        case 7:
        //De server kapt ermee
        show_message("De server is gestopt.");
        game_end();
        break;
        
        case 8:
        //Een chat bericht
        chat_addline(readstring(),c_black);
        break;
        
        case 9:
        //Een chat bericht van de sevrer
        chat_addline("Server: " + readstring(),c_red);
        break;
        }
    }

//Als we geen bericht van de server kregen maken we de ping hoger.
ping += current_time - deltatime;
deltatime = current_time;
//Kijk of we ge timed-out zijn, bijv. als er geen verbinding meer is met de server.
if(ping > timeout)
{
show_message("Je bent ge-timed out.");
game_end();
}
Nou, nu zijn we grotendeels wel klaar :)
Alleen, je zag een script dat we nog niet hebben gemaakt.
Dit gaan we nu even doen :)
Maak een script aan genaamd
stop_spel_online
Zet daarin:
GML:
//Zeg tegen de server dat we weg zijn.
clearbuffer();
writebyte(3);
writebyte(global.myid);
writestring(global.username,true);
sendmessage(global.clienttcp);
show_message("Je hebt de server verlaten.");

//We stoppen de connectie en legen het geheugen van de DLL
closesocket(global.clienttcp);
dllfree();
//En we stoppen het spel.
game_end();
Dit zorgt ervoor dat als je spel ermee kapt, de server dat weet.

We gaan nu het chat-systeempje in de client bouwen.

Dat doen we als volgt:
Maak een event in obj_ubercontroller.
De key press enter event. (met het rode pijltje)

Zet daarin dit stukje code:
GML:
if send = true
    {
    //Kijk of de speler wel wat heeft ingetypt als hij wat wilt verzenden.
    if keyboard_string != ""
        {
        //Zoja, verzenden wij zijn bericht.
        clearbuffer();
        writebyte(4);
        writestring(global.username + ": " + keyboard_string,c_red);
        sendmessage(global.clienttcp);
        keyboard_string = "";
        }
    send = false
    exit;
    }
else
    {
    keyboard_string = ""
    send = true
    exit;
    }

Dan zijn we eigenlijk wel klaar met de ubercontroller...
Alleen nog een klein dingetje in obj_ubercontroller:
in de game_end event:
execute a script
en doe dan het script stop_spel_online.

Nu gaan we nog even snel alarm 0 in de speler instellen.
open object obj_speler en maak alarm 0 aan.
Zet daarin deze code:
GML:
//We sturen onze positie
clearbuffer();
writebyte(2);
writebyte(global.myid);
writeshort(x);
writeshort(y);
writeshort(direction);
sendmessage(global.clienttcp);

//En herhaal het :)
alarm[0] = 1;

Nu moeten we alleen nog obj_player_other maken.

Dit word erg gemakkelijk, omdat deze eigenlijk al volledig word bestuurd door de ubercontroller.

Maak dus nu het object genaamt obj_player_other aan.

Geef deze de sprite die hetzelfde is als die van je speler.
(in mijn geval het beertje :) )

En dan...

Ben je klaar :P

***De gm6 totaan dit gedeelte heet client.gm6 Download (http://projects.dukesoft.nl/39dllex/client.gm6)***


Nou, dan heb je nu je spel online gekregen, en afgemaakt!
Ik hoop dat je er wat van hebt geleerd :)
En als je een spel afmaakt, waarbij deze tutorial je heeft geholpen zou ik hem graag zien :D

En opbouwende kritiek is altijd handig :)

Bedankt voor het lezen,

Groetjes, Rob Quist.

Woorden: 5869
Letters: 39647
Uren: Hmm... ik denk 8 of 9 uurtjes?

En nu samengevat...
Door chris24 :)

(p.s. de objecten doen nog iets meer. Ik vat alleen het belangrijkste acties samen.)

In de server:

obj_ubercontroller zet de server op en logt spelers in het spel. En maakt een instantie van obj_client voor hem/haar.


obj_client is een 'stukje server' dat voor elke speler appart is ingericht. (klopt niet helemaal)

Er is voor iedere speler een apparte instantie van obj_client.

Iedere instantie ontvangt de gegevens van één speler; en verstuurd ze vervolgens naar alle spelers.
(voor de duidelijkheid had je obj_client denk ik beter obj_speler kunnen noemen; nu verward het met client.exe)



In de client:

obj_speler:

verzend zijn eigen positie e.d.

obj_ubercontroller:

ontvangt messages (cases).



Nu alle cases (verschillende 'pakjes')

van - naar;

client - server: (dit zijn dus de pakjes die de server ontvangt.)

1:Er connect iemand.
2:Het standaard pakketje; x, y, direction e.d.
3:Iemand gaat weg : '(
4:Er komt een chatbericht binnen.

server - client: (dit zijn dus de pakjes die de client(klant) ontvangt.)

1:Zijn ID
2:De server is vol (Dan heb je een goed spel Razz )
3:Nieuwe speler (object maken) Very Happy
4:Nieuwe speler. Het chatbericht.
5:Data (x, y, direction e.d.) van andere spelers.
6:Iemand gaat weg.
7:De server stopt.
8:Er komt een chatbericht binnen.
9:Er komt een chatbericht van de server binnen.



CONNECTEN EN IP GEBRUIK

Als je vanaf je eigen computer wil connecten naar je eigen computer (je hebt dan dus een server en een client draaien daar) dan moet je het ip 127.0.0.1 gebruiken, of 'localhost' (zonder '-jes).

Als je wil connecten van een PC naar een andere PC in je LAN, moet je je interne IP gebruiken. (Ziet er meestal zoiets uit: 192.168.1.102)
^^
Dat ip kan je vinden door dity te doen: START>Uitvoeren>cmd>ipconfig /all

Dan moet je een beetje klooien met de IP's die je daar ziet staan. (tenzij je je interne IP zowiezo al weet)

EN, als je naar een externe PC wilt connecten, moet je het externe IP van die PC gebruiken. (extern betekend niet in je LAN. Dus bijv. mijn PC met de jouwe)

Dan heb je ip's zoals 83.161.57.8 (de mijne), 82.142.34.7 etc.

Als je extern wilt gaan, moet je zorgen dat je eigen uitgaande firewall uit is, en de inkomende van de server uit is / goed is ingesteld, EN de poort 12564 (die je zelf kan instellen bij de server) open staat op je modem, indien je een modem hebt.


FAQ - Veel Gestelde Vragen

1. Hoe kan ik ervoor zorgen dat ik er zeker van kan zijn dat de fps altijd hoger is als die van mijn clients


1. Zorgen voor een snelle PC :)
2. Je pakketjes laten uitlezen in een while, dus niet in een step (dan kan je FPS zelfs 3 zijn)
3. Zorgen dat er niet teveel onnodige data word verzonden. (bijvoorbeeld kleuren van kleren, hoef je maar 1 x te verzenden, hoeft niet in de step:) )


2. Op welke manieren kan de fps van de server beïnvloed worden waardoor hij minder wordt?



1. Door veel connecties
2. Door veel programma's op de achtergrond.
3. DOOR EEN FIREWALL
4. Door veel dingen te tekenen in de server
5. Door niet economisch te programmeren.


3. Hoeveel clients kunnen er maximaal op een server waarbij de speler verzend wil het nog goed lopen.



Ligt echt aan je PC. Mijn PC kan er 2831 aan. Dan loopt hij vast :P (zelf getest.)


4. Is er een manier om het aantal pakketjes dat de speler binnen krijgt te beperken tot alleen wat bij hem in de buurt zit. Of maakt dit geen verschil?



Ja, kan je doen. Bij het doorsturen van pakketjes naar andere clients, kan je kijken of:
1. Ze in dezelfde room zitten
2. Ze minder dan 1000 pixels van elkaar verwijderd zijn (of zoiets, minder kan ook. Ligt aan je spel)


5. Is het erg als je een server hebt waarbij de internet verbinding wat traag is en er komt een met een hele snelle internet verbinding. Kan dat nadelige gevolgen hebben?


Nee, dat maakt niet uit. Alleen de snelheid van de server maakt uit, want die moet de pakketjes sturen naar anderen.
De andere met een snelle verbinding zal nooit meer dan een aantal pakketjes per seconde sturen, afhankelijk van het spel.


6. Kunnen ook mensen met een router ertussen de server joinen of is dit direct-internet?



Natuurlijk kan dat. Alleen, zoals je wel zal merken bij andere spellen, zoals Halo e.d., dat je eerst poorten moet open zetten bij een router. Das een nadeel, veel mensen snappen dat niet.


7. Is het mogelijk om meerdere servers te laten draaien die verbonden zijn met de clients om de connectie beter en sneller te laten verlopen? Of maakt dat niks uit?


Het beste is natuurlijk 1 server. Maar je kan makkelijk verschillende servers voor verschillende spellen laten draaien op verschillende poorten :)
8. Is het beter om die servers dan allemaal op een aparte pc te late draaien?
Eigenlijk wel, maar dat heeft niets met internetverbinding te maken, meer met de snelheid van de server-pc.

9. Is het handig als dan de meerdere servers een verschillende ip/internet verbinding hebben?


Lees hierboven maar :) Het zou niet moeten uitmaken, tenzij je provider gaat zeuren, daar valt niets tegen te doen. (behalve andere providers nemen, of je koopt gewoon een dedicated server. Kost wat geld, maar werkt echt super! (zie bijvoorbeeld het bedrijf Stratos, heb ik ook gehad.)



24-08-2011: Downloadlinks vernieuwd


Titel: Re: [Tut] Nederlandse tutorial over 39dll met comment en voorbeelden (nu met spel)
Bericht door: Marcoscosci op 2 Januari 2009, 11:52:41
Alle reacties zijn verwijderd uit dit topic, omdat het met 23 pagina's aardig uit de hand is gelopen.

Voortaan moeten vragen geplaatst worden bij gevorderden (http://www.game-maker.nl/forums/board,5.0). Vragen als "hoe moet ik de server instellen?" of "hoe verstuur ik pakketjes? Ik kom er niet uit." zijn niet meer toegestaan. Vraag jezelf ook af of je wel gevorderd genoeg bent om de tutorial te volgen. Heb je nog nooit met GML gewerkt dan is het af te raden om aan deze tutorial te beginnen.

Reacties als "ik zou dit anders uitleggen" of "misschien kun je dit beter anders aanpakken" zijn nog wel toegestaan.

Kortom:
- wil je wat vragen omdat je er niet uitkomt, dan kan dit bij gevorderden.
- wil je een suggestie voorstellen op de tekst in de tutorial dan kan dat gewoon in dit topic.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 2 Januari 2009, 13:39:51
positief en negatief.
Er stonden een aantal posts bij waaraan mensen 2 uur hebben gewerkt die een hoop vragen betantwoordden maar die zijn nu weg.. Jammer.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Marcoscosci op 6 Januari 2009, 12:27:39
Het is niet de bedoeling om vragen te stellen; dus ook niet over Hamachi IP-adressen. Vragen moeten bij gevorderden. Deze reacties heb ik dus ook weer verwijderd. De volgende keer volgen er waarschuwingen.

@ blackhawk
Die verwijderde posts zijn niet permanent weg. Ze staan nog ergens in een forum waar alleen moderators bij kunnen. Als je een aantal reacties terug wil dan moet je even in een PM aangeven welke. Dit geldt ook voor anderen die bepaalde reacties teruggeplaatst willen hebben.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Hedanito op 6 Januari 2009, 13:20:23
Ik vond het niet echt nodig om mijn reactie weg te halen waar toevallig ook wat over die hamachi IP in stond. Maar het was maar een kort voorstel dus ik typ het wel overnieuw ^^

Misschien kun je ook een extension maken zodat je niet steeds al die scripts hoeft te importeren.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 7 Januari 2009, 15:37:06
In ieder geval kun je de lagg veranderen door te kijken of de speler wel beweegt.

dus in dat alarm event eerst dit te zetten:

GML:
if x!=xprevious or y!=yprevious
{
//sturen
exit
}
else
{
ping=0
//verzenden met een nieuw message ID.
//want je moet altijd een pakketje ontvangen
}

En laat de server het weer terug sturen, als je gewoon een kleine variable stuurt, in plaats van 3 of meerdere heb je nooit een time-out.

Mischien dat je zoiets in je beginpost kan zetten.

EDIT

Of je verstuurt gewoon niks, maar je kan er een echte ping van maken als je wilt.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 12 Februari 2009, 10:04:11
Blackhawk zou nog een INI register/login, save/load systeem maken. (serversided).
Maar ik denk dat hij niet veel tijd heeft, dus heb ik 't gemaakt.

Ik weet alleen nog niet of ik t nou hier moet gaan posten, of een tut moet maken ofzo...
Want ik had het eigenlijk vóór iemand gemaakt.

Blackhawk moet t maar zeggen, ik zet er iig in de GMK comments bij.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: de-haas op 13 Maart 2009, 15:00:12
kan ik deze game ook ergens laden en niet een tut maar echt spelen?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 13 Maart 2009, 16:32:15
'T is een TUT. Geen spel.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: mastersem op 11 April 2009, 11:22:49
misschien zou je je tut moeten aanpassen naar simuleren.
zelfs als je bij het alarm event elke keer je x en y verstuurt, zal je delay krijgen, en dat wil je niet. dus je kan ook elke keer als je iets indrukt en los laat iets versturen. voorbeeld is:
GML:
if (keyboard_check(vk_left)) {
 clearbuffer();
 writebyte(11);
 writebyte(global.myid);
 writeshort(x);
 writeshort(y);
 with(obj_client) {
  if (id != player) {
   sendmessage(tcp);
  }
 }
}
en in de server:
GML:
case 11:
var player, value;
    value = readbyte();
    //Nu weten we welk ID welke speler heeft, en gaan we de ontvangen data aan hem koppelen.
    player = global.players[value];
    player.x = readshort();
    player.y = readshort();
    clearbuffer();
    //Nu gooien we de buffer weg, en maken ons klaar om dit pakketje 'door te sturen' naar de andere clients.
    writebyte(11);
    writebyte(value);
    writeshort(player.x);
    writeshort(player.y);
    with(obj_client)
    {
    sendmessage(tcp);
    }
en in de client weer deze opvangen en simuleren (ga ik niet doen hoor :O)

voor de rest super tut, bedankt ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: wargod1997 op 16 April 2009, 19:54:29
Bij mij krig ik steeds  een time-out terwijl ik de hele tijd wat doe.
Heeft dat mischien wat te maken met een router (denk het)
ps hoe kan je je poorten openen stond bij faqs


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 16 April 2009, 20:47:39
nee kan niet aan je router liggen, je ontvangt simpelweg geen pakketjes van de server.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: wargod1997 op 17 April 2009, 17:14:06
hoe kan ik dat dan verhelpen?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 17 April 2009, 18:19:48
Door de TUT goed te volgen ^^


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: wargod1997 op 18 April 2009, 13:21:34
heb ik gedaan zelfs de examples werken niet


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 19 April 2009, 18:07:00
Dat is onmogelijk x'D


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gaming Power op 26 April 2009, 08:01:02
Als ik het goed begrijp staat er in de FAQ dat als je een router hebt dat het niet werkt zonder dat je poorten open staan, klopt dat?

Maar bij bijv. Egg Online van G-maker-T (die ermee gekapt is) kon ik wel online spelen, terwijl ik toch een router heb waarvan de poorten niet open staan.

Dus: hoe zit dat nou? :?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 26 April 2009, 14:55:19
De host moet inkomende verbindingen toe laten, de client niet.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gaming Power op 27 April 2009, 08:12:17
De host moet inkomende verbindingen toe laten, de client niet.

dus? :?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 27 April 2009, 11:01:45
Ik was de host, jij niet.
Jij verbind naar mijn server, als mijn poorten niet openstaan, kom je er niet in. Als ze open staan kan ie dus een verbinding maken.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: deadmaker op 3 Mei 2009, 15:12:58
Heey,

Er zit een foutje in je tutorial als je hem goed leest bij de game_start event van de server staat er 2 keer
GML:
global.maxplayers = 20
for(i=0; i < global.maxplayers; i+=1){global.players[i] = -1;}

Maakt denk ik niets uit maar dan hou je het wat over zichtelijker

Deadmaker

Edit door Matrebatre: gelieve titel niet weg te doen


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Maarten Baert op 14 Mei 2009, 17:52:57
Hierboven een aantal berichten verwijderd.

Dit soort fouten kan je beter gewoon melden bij de maker. Stuur hem een PM. De kans is klein dat hij het hier nog leest, dit topic is al redelijk oud.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 27 Mei 2009, 10:41:49
haha :P
ik lees het inderdaad nu pas.
Iedereen is ineens wel bang om weer te reageren als de almachtige matrebatre weer is langskomt stormen in zo'n topic :P

Achjaa, dit is oud en ik ga er denk ik niet veel eer aan doen. hoogstens geef ik binnenkort de source van MoW1.4 weg, en ga ik verder aan Shoot 'm Up.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jasperdj op 30 Mei 2009, 11:53:09
Alleen ik vind 1 ding jammer, dat is dat wanneer een packet niet word verzonden( Bijv spel staat op pauze bij een client ) dat de server dan eerst wacht TOT hij kan worden verzonden.
Waardoor de synchronisatie van gehele server uit de hand kan lopen door één iemand.

Natuurlijk heb je daarom ook gemaakt, dat als je een tijdje niet met server connect je automatisch disconnect. Maar voor een MMORPG kan dit soms storend zijn lijkt mij :S .


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Laloeka op 1 Juni 2009, 10:18:52
Hhehe, ik ben niet bang voor de almachtige matrebatre ;)

Nee grapje,

ik had een idee om het lag-effect van andere spelers tegen te gaan op je eigen pc.

Je stuurt niet alleen de x en de y door, ook je speed en je direction. Het other-player-object beweegt gewoon door ookal stuurt de andere speler maar 5 keer per seconde zijn gegevens door.

Je kunt kleine stukjes software schrijven om de bewegingen te berekenen (voorspellen) en natuurlijk stoppen tegen muren enzo.

ik had hier eerst een example van gemaakt maar ik ben m kwijt :|

Misschien zou je dat kunnen verwerken in een nieuwe example (als je dat ooit nog gaat doen..)

In ieder geval een goede tip voor ervaren gebruikers die dit lag probleem herkennen (en er misschien geen raad me weren) :P

Een andere tip is om kogels en dingen die voor meerdere spelers gecheckt moeten worden door de server te laten doen. Anders hebben 2 spelers elkaar gekillt terwijl je een 1-step-kogel gebruikt (eentje die met een klik al raakt) omdat de spelers vertraging hebben (een paar millisec.) en dus bijde denken dat ze 'eerste' waren.
De server moet natuurlijk wel eerst alle informatie verzamelen voor hij gaat checken, anders heeft degene die het eerst zijn informatie gelezen heeft nog steeds voorrang..

Laloeka :D


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: max@ op 6 Juni 2009, 07:50:25
Pff... voor het eerst dat ik deze tut helemaal heb uitgelezen |8D
Vele keren haakte ik ergens af omdat ik het niet snapte...
Nu snapte ik het ook niet, maar ging ik door.
Bleek er aan het einde de oplossing te staan :|
Ik zou dit stukje, of in ieder geval dat laatste ergens bovenaan zetten:

Citaat
In de client:

obj_speler:

verzend zijn eigen positie e.d.

obj_ubercontroller:

ontvangt messages (cases).


Nu alle cases (verschillende 'pakjes')

van - naar;

client - server: (dit zijn dus de pakjes die de server ontvangt.)

1:Er connect iemand.
2:Het standaard pakketje; x, y, direction e.d.
3:Iemand gaat weg : '(
4:Er komt een chatbericht binnen.

server - client: (dit zijn dus de pakjes die de client(klant) ontvangt.)

1:Zijn ID
2:De server is vol (Dan heb je een goed spel :P)
3:Nieuwe speler (object maken) :D
4:Nieuwe speler. Het chatbericht.
5:Data (x, y, direction e.d.) van andere spelers.
6:Iemand gaat weg.
7:De server stopt.
8:Er komt een chatbericht binnen.
9:Er komt een chatbericht van de server binnen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: semmy op 7 Juni 2009, 15:31:54
Probleem opgelost


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Bjarno op 7 Juni 2009, 15:46:28
Wat doe je? Welke error geeft game maker? Geeft hij het ingame? Of geeft game maker zelf een error?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: semmy op 8 Juni 2009, 14:56:56
De error heb ik net opgelost, hij verwijderde die 39dll.dll telkens omdat ik het venster hierboven niet goed had ingevuld en daarom kreeg een error: geeft ongeldig beeld.

Edit:

Klopt de tut wel? Ik heb de tut-example, client.gm6, naar een vriend gestuurd om hem uit te testen en dan krijgt hij dit:
___________________________________________
ERROR in
action number 1
of Other Event: Game End
for object obj_ubercontroller:

In script stop_spel_online:
Error in code at line 4:
   writebyte(global.myid);


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Laloeka op 8 Juni 2009, 18:31:22
Je kunt het hele include gebeuren laten zitten. De executable file + de dll worden in totaal kleiner omdat de dll niet gecodeerd moet worden in de .exe.

Het is heel simpel:

In plaats van de dll te includen zet je heb gewoon in de .exe (.gmk | .gm6) map en run je de game.

Ergens in Room Start 1 en Game Start 2 (1 Client | 2 Server) staat het init script van de 39DLL. Zorg dat het path naar de dll goed ingestelt staat.

Laloeka :D


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: cartman123 op 8 Juni 2009, 22:17:16
Het werkt niet?!


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: semmy op 9 Juni 2009, 19:09:13
In deze codes staat soms iets van: writebyte(5); ik heb een uur zitten zoeken, maar ik kan het nergens terug vinden waarom die "5" moest versturen. Wat is het doel/de betekenis van deze 5? Is het misschien de naam van het pakketje?

Edit: ik heb het al gevonde, het is de naam/ID  :angel:
GML:
case 2:
    //Dit is bericht id 2.
    //Deze leest zegmaar de belangrijkste dingen van de client, zoals de x, y en de direction
    var player, value;
    value = readbyte();
    //Nu weten we welk ID welke speler heeft, en gaan we de ontvangen data aan hem koppelen.
    player = global.players[value];
    player.x = readshort();
    player.y = readshort();
    player.direction = readshort();
    clearbuffer();
    //Nu gooien we de buffer weg, en maken ons klaar om dit pakketje 'door te sturen' naar de andere clients.
    writebyte(5); //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    writebyte(value);
    writeshort(player.x);
    writeshort(player.y);
    writeshort(player.direction);
    with(obj_client)
    {
    sendmessage(tcp);
    }
    break;


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: mit1mit2 op 16 Juni 2009, 18:36:05
Ik gebruik :gm7: pro en daar ziet Global Game Settings -> Include -> add er wat anders uit. Nu doet het progama het niet en ben ik bang dat het hier aan ligt... Kan iemand mij uitleggen welke opties ik hier moet selecteren?

(Vanaf 2bserv2.gm6 gaat het fout)

(http://img189.imageshack.us/img189/1201/vraagw.png)

Zoals die op de afbeelding staat:

[X]
[ ]
[X]
[ ]

( )
( )
(X)
( )

[X]
[ ]
[X]
[X]

()
()
(X)
()

 :D


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: tidob1 op 16 Juni 2009, 19:26:49
@Semmy: Meestal wordt er vooraan ieder pakketje een byte geschreven (0-255). Die byte is er om het 'pakket-id' aan te geven, dus wat voor pakket het is. Is het bijvoorbeeld het bericht dat er een speler stopt? Of dat er juist een bij komt? Of juist dat er iemand schiet of doodgaat? Bijvoorbeeld:
0=er komt iemand bij
1=er gaat iemand weg
2=tekstbericht van iemand
3=er schiet iemand
4=server stopt
5=tekstbericht van server
Enz.


Trouwens, dit staat ook perfect uitgelegd in de tutorial. Ik snap dat het veel leeswerk is, deze tutorial, maar soms is het ook de moeite waard.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gaming Power op 16 Juni 2009, 20:02:50
Trouwens, dit staat ook perfect uitgelegd in de tutorial. Ik snap dat het veel leeswerk is, deze tutorial, maar soms is het ook de moeite waard.

Inderdaad.

Na 4x (over langere periode) lezen snap ik het nu eindelijk, JAHOE! |8D :P
Dat komt vooral omdat deze tut het zo goed uitlegt, anders had ik het nog niet gesnapt...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: size43 op 18 Juni 2009, 18:09:04
Bestaat er ook een gratis host waar je de server op kan zetten of moet het op je eigen computer?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gaming Power op 18 Juni 2009, 19:11:36
Bij mijn weten moet op een computer.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: mit1mit2 op 19 Juni 2009, 18:05:52
volgens mij kan het ook zonder maar weet niet hoe :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: superwauwie op 20 Juni 2009, 21:21:33
Bestaat er ook een gratis host waar je de server op kan zetten of moet het op je eigen computer?
Ik denk niet dat er een gratis host is. (Iemand moet dan voor jou zijn computer aan laten).
Of je kan op je eigen computer hosten. Ik host op mijn eigen pc, maar helaas niet 24/7.  :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 22 Juni 2009, 07:32:41
@Semmy: Meestal wordt er vooraan ieder pakketje een byte geschreven (0-255). Die byte is er om het 'pakket-id' aan te geven, dus wat voor pakket het is. Is het bijvoorbeeld het bericht dat er een speler stopt? Of dat er juist een bij komt? Of juist dat er iemand schiet of doodgaat? Bijvoorbeeld:
0=er komt iemand bij
1=er gaat iemand weg
2=tekstbericht van iemand
3=er schiet iemand
4=server stopt
5=tekstbericht van server
Enz.


Trouwens, dit staat ook perfect uitgelegd in de TUTORIAL. Ik snap dat het veel leeswerk is, deze tutorial, maar soms is het ook de moeite waard.

Wat ge-edit ;)

Het is een tut, kom hier niet met error defining an external function foutjes, want als je niet begrijpt wat dat is...

@semmy,

Om het nog precieser te zeggen:
De server leest als eerste een byte uit, dan switcht hij naar die byte, (die opgeslagen is in een variable) en kijkt wat hij verder moet doen. Werkt eigenlijk heel simpel :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: semmy op 22 Juni 2009, 16:52:36
@Semmy: Meestal wordt er vooraan ieder pakketje een byte geschreven (0-255). Die byte is er om het 'pakket-id' aan te geven, dus wat voor pakket het is. Is het bijvoorbeeld het bericht dat er een speler stopt? Of dat er juist een bij komt? Of juist dat er iemand schiet of doodgaat? Bijvoorbeeld:
0=er komt iemand bij
1=er gaat iemand weg
2=tekstbericht van iemand
3=er schiet iemand
4=server stopt
5=tekstbericht van server
Enz.


Trouwens, dit staat ook perfect uitgelegd in de tutorial. Ik snap dat het veel leeswerk is, deze tutorial, maar soms is het ook de moeite waard.

Je moet mijn reactie eerst lezen voordat je antwoord, in die reactie staat al: opgelost. Ik snap dat mijn reactie veel lees werk is voor somige, maar soms is het de moeite waard om het te lezen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 22 Juni 2009, 16:57:41
Ja, maar om het preciezer uit te leggen :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Doeke op 26 Juni 2009, 16:14:48
het werkt bij mij aleen lokaal ...  :(


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jasper games op 26 Juni 2009, 16:48:59
het werkt bij mij aleen lokaal ...  :(
Je hebt goeie IP ingevuld? poort opengezet?
De tut werkt namelijk helemaal.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: gm1999 op 24 Juli 2009, 11:11:30
de link werkt niet meer :'S


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 24 Juli 2009, 19:06:27
de link werkt niet meer :'S

Ohneeeeeeeee.... Dan moet je dus i.p.v. de example openen en de sprites veranderen zelfs de TUT volgen :O Dat komt niet vaak voor :(


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: mit1mit2 op 24 Juli 2009, 19:39:38
:P alleen de link van de standaard scripts ook niet dus dan wordt het moeilijk:P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Hfan op 24 Juli 2009, 19:58:01
Download 39dll op het Engelse GMC.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 25 Juli 2009, 00:09:57
Jezus ik faal weer ;(


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: iJoost op 25 Juli 2009, 12:34:09
Ik heb even een mirror gemaakt :p

http://jwvd.nl/tutorial.rar


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Bjarno op 25 Juli 2009, 16:22:14
Ik heb even een mirror gemaakt :p

http://jwvd.nl/tutorial.rar
Thanks, niet dat ik een online game ging maken maar ik was wel bezig met alles eens onder de loep te nemen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: hardbass op 17 Augustus 2009, 17:09:39
hallo,

ik heb een systeem bedacht voor meerdere levels.
die levels staan in een .ini
nu wil ik als de server dat level draait en de client dat level niet heeft dat de client het dan download van de server.
maar hoe moet ik zon file downloden van de server.

wat ik nog veel liever heb is dat de server alle levels online zet op mijn site als ze daar nog niet op staan en dat die client het level van die site download.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TrailMan op 20 September 2009, 18:13:56
hey

ik ben nou grondig de tut aan het lezen en hellemaal zelf aan het maken zonder het te downloaden maar nou komt hij hele tijd met een fout melding
deze:


___________________________________________
ERROR in
action number 1
of Other Event: Game Start
for object obj_ubercontroller:

Error defining an external function.


dus dacht oh komt door mij zelf dus download ik de gamemaker waar ik laats ben gebleven en die downloade ik in die tussenstop

dus ik druk op dat groene teken dat hij het spel afspeeld maar komt hij precies met hetzelfde fout aan deze:

___________________________________________
ERROR in
action number 1
of Other Event: Game Start
for object obj_ubercontroller:

Error defining an external function.


ik heb ook  :gm7:pro
kan iemand helpen


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gaming Power op 20 September 2009, 19:58:28
Hey,

Error defining an external function betekent dat de dll die je hebt geïnclude niet in dezelfde map staat als het spel...

Oplossing: Zet de 39dll in dezelfde map als de gmk (en later de exe). ;)

Groeten,
Gaming Power


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TrailMan op 21 September 2009, 12:33:17
wow, daar had ik ff niet aan gedacht bedankt man


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 21 September 2009, 18:16:44
De Tutorial volgens wijst je daar als eerst op ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TrailMan op 22 September 2009, 15:19:53
jha sorry een klein (beginners) slordigheidsfoutje


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 6 Oktober 2009, 12:48:28
hallo,

ik heb een systeem bedacht voor meerdere levels.
die levels staan in een .ini
nu wil ik als de server dat level draait en de client dat level niet heeft dat de client het dan download van de server.
maar hoe moet ik zon file downloden van de server.

wat ik nog veel liever heb is dat de server alle levels online zet op mijn site als ze daar nog niet op staan en dat die client het level van die site download.

Voor het uploaden van de .ini files naar je site heb je een andere dll nodig. (kom zo snel ff niet bij de naam)
De levels opslaan in een .ini bestand kan heel makkelijk.

Je kan ook gewoon in de server het level laden, en aan de clients vertellen waar en wat voor object er staat. (Dan moet je alleen geen levels maken die groter dan 200 objecten is)

In EWO doe ik eigenlijk hetzelfde, maar dan met de monsters, er is maar een object voor alle monsters, de server vertelt alleen hun sprite ID, lvl, hp en positie.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gaming Power op 6 Oktober 2009, 15:57:49
Voor het uploaden van de .ini files naar je site heb je een andere dll nodig. (kom zo snel ff niet bij de naam)
Bedoel je de GMftp of een andere FTP dll? ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 6 Oktober 2009, 21:20:58
Ja, ik heb het nooit gebruikt maar aan de naam te zien zal dat t zijn ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: generaallucas op 7 Oktober 2009, 10:29:30
wat is het verschil tussen 39dll en de normale multiplayer mogelijkheden van game maker?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gaming Power op 7 Oktober 2009, 15:55:30
wat is het verschil tussen 39dll en de normale multiplayer mogelijkheden van game maker?

39DLL is veeeeeeeeeeeeeel sneller en maakt ook gebruik van pakketten, zodat je (zoals bij MPLAY het geval is) niet voor elke x of y een nieuwe case moet maken... ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 13 December 2009, 19:14:37
Daarbij kan mplay volgens mij ook niet op Vista worden gebruikt, 39dll wel :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Maarten Baert op 13 December 2009, 20:35:52
En bovendien kan je met 39dll ook communiceren met vooraf vastgelegde protocols, zoals SQL, HTTP, FTP, ... zodat je ook verbindingen kan leggen met bestaande systemen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 15 December 2009, 15:26:41
Kortom, 39dll is gewoon stukken beter als al die andere :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gaming Power op 16 December 2009, 06:42:36
Kortom, 39dll is gewoon stukken beter als al die andere :)

Inderdaad! :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: MisterTimmy op 18 December 2009, 12:52:10
eum,...

Hoe kan je ervoor zorgen dat je zonder de verbidnign te verleizen naar een andere room kan ... ik heb ubercontroller eens perisent gemaakt maar dan krijg je na een tijdje time out en je ziet de andere speler die dan ook naar die room gaat niet meer ...

en als je van je game "start event" een room start event maakt moetje je je steeds opnieuw
aanmelden

Ik heb al eens hulp gevraagt maar er was 1iemand bereid om te helpen(g maker t) maar dat lutke niet...

Wat moet ik doen

Grtz Tim


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: maker-bart op 18 December 2009, 13:32:48
Je kan alleen degene zien die in dezelfde room is:

Als je van room switcht stuur je een variable van de room:
dus bijv:

GML:
room_goto_next()
writebyte(11)//Package verander naar laatste
writebyte(global.myid)
writebyte(room)



server:
GML:
case 11:
id2=readbyte()
vroom=readbyte()

clearbuffer()
writebyte(5)//Pas aan ;)
writebyte(id2)
writebyte(vroom)
with (obj_client)
{
sendmessage(tcp)
}
break;


Client weer:
GML:
case 5:
id2=readbyte()
vroom=readbyte()
with (obj_player_other)
{
if pid=id2 {
if vroom=room {
visible=true
}
else
{visible=false }
}
}

Zoiets, ik doe het nu uit mijn hoofd


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: MisterTimmy op 18 December 2009, 15:34:41
het werkte ,...
maar ik moet iets gedaan hebben waardoor het niet meer werkt :s

En nog een vraagje met server bedoel je de server of de server in de client?

en client bedoel ej de client of de client in de server?

Jah sorry dll is heel nieuw voor me ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: maker-bart op 18 December 2009, 15:36:50
Volgens BlackHawks tutorial:
Client.gm6=client
Server.gm6=server


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: MisterTimmy op 18 December 2009, 15:44:02
horen de casen dan eigenlijk niet zo te zijn

11=5 in me server heb ik er nammelijk geen 11:s

5=11 in me client heb ik ernammelijk11 :p

of ben ik nu fout?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: maker-bart op 19 December 2009, 15:00:55
Zoek het uit, ik nam maar een voorbeeld.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 29 December 2009, 10:31:52
ik blijf deze in mn lijstje houden


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 29 December 2009, 17:23:36
hee redblood, leuk projectje heb je nu.
Ik heb t nog leuker, hij haalt alle instellingen via het HTTP protocol uit een MySQL database.. Zo werkt Men of War nu. Werkt echt super! Alle wapen instellingen etc. worden online geladen ^_^


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 29 December 2009, 17:27:31
Moet je misschien eens een keer je closed beta uitgeven ^^


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 29 December 2009, 17:36:35
haha ja, ben druk geweest geld te maken de laatste tijd. Ik hoop snel weer effe te kunnen werken aan Men of War :D
C++ server is al bijna klaar, moet nog wapens etc. toevoegen. dan is het wel ongeveer klaar
:D


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: generaallucas op 1 Januari 2010, 19:56:10
hoeveel man kan er aan één server meedoen?

ik weet niet of dat in de tekst stond, maar ik kon het niet vinden in die waslijst van scripten.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 1 Januari 2010, 21:36:01
ligt aan de snelheid van de server, maar ij staat staat standaard op 20, kan wel n heel stuk omhoog, bij een goedgebouwd spel kan een comp met 1 server ±200 man aan. (moet je alleen geen oud schroot hebben :D )


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 1 Januari 2010, 23:47:26
Kan je voor mij ook ff wat geld maken =D Met de hand :P

OT: Schiet op xD Dat Halo Bloodgulch in M.o.W. owned :D


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaco-m op 3 Januari 2010, 14:07:39
he,
ben sinds kort weer een beetje aan het kloote met GM,
en ik kwam een niet afgemaakt project tegen waarbij ik deze tut heb gebruikt.
het probleem is dat ik niet helemaal snap hoe je een pakketje verzend waarinstaat waar de kogel die ik heb geschoten zich bevind en hoe de server dat doorstuurt etc.
zodat iedereen in de server de kogel ziet. en als ze geraakt worden moet ik een pakketje kunnen verzenden waarin staat dat ik dood ben en dat de server ook dat doorstuurt naar de client's. ik denk dat dit een beetje te hoog gegrepen is voor mij maar wil het alsnog graag proberen. heeft iemand een idee?
groeten jaco
Edit:
huh? wtf:P er heeft iemand op mijn server dingetje ingelogd onder de naam blackhawk maar dat moet niet kunnen want mijn poorten staan niet open:P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: niels15 op 9 Januari 2010, 11:15:34
Hoi is er ook gml dat je in de server ook de tijd ervoor komt te staan in de server?
Groeten Niels15


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gijs LS op 9 Januari 2010, 18:26:08
Dat kan ;)

GML:
script_addline("TCP socket geopend op port 1337." + " Datum en tijd: [" + string(current_day) + "-" + string(current_month) + "-" + string(current_year) + " " + string(current_hour) + ":" + string(current_minute) + ":" + string(current_second) + "]",c_black);

Bijvoorbeeld dat ;) Ik had eerst dat het bij elke script_addline komt maar het is afgeraden want als er veel mensen komen heb je dan heel veel lagg op een geven moment in de server. Ik zou het dus alleen bij de belangrijke dingen doen of alleen bij het opstarten van de server.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 9 Januari 2010, 19:21:22
Dat kan ;)

GML:
script_addline("TCP socket geopend op port 1337." + " Datum en tijd: [" + string(current_day) + "-" + string(current_month) + "-" + string(current_year) + " " + string(current_hour) + ":" + string(current_minute) + ":" + string(current_second) + "]",c_black);

Bijvoorbeeld dat ;) Ik had eerst dat het bij elke script_addline komt maar het is afgeraden want als er veel mensen komen heb je dan heel veel lagg op een geven moment in de server. Ik zou het dus alleen bij de belangrijke dingen doen of alleen bij het opstarten van de server.

Lag? Slecht geprogd dan want ik zie geen enkele reden waarom de tijd achter een chatlijntje zetten leid tot lag.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gijs LS op 10 Januari 2010, 11:04:37
Naja dat kwam omdat het in een chatlog werd opgeslagen, maar ik zie ook geen reden waarom je de tijd er bij wilt hebben zonder dat je het in een chatlog opslaat. In iedergeval als je het in een chatlog wilt opslaan kan je lagg krijgen met deze manier, je kan het wel slimmer aanpakken maar dat ga ik niet helemaal uitleggen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: avonta op 12 Januari 2010, 17:59:37
Dit werkt niet in gm :gm8: omdat je daar niet kan includen weet je hier een oplossing voor?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 12 Januari 2010, 18:28:36
Niet includen en gewoon in dezelfde map gooien?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: avonta op 12 Januari 2010, 19:12:56
maar dan heb je zo'n code die die niet herkent

EDIT:     Deze:
GML:
dllinit(0,true,true);


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 12 Januari 2010, 20:23:41
De scripts importeren ;)
En als je dat al gedaan hebt, de 0 in "39dll.dll" hernoemen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 27 Januari 2010, 14:41:00
werkt dit ook in 3d game ; firhst peron shooter? en ik heb een acount system kan ik de inlog naam dan ook gebruiken als "username" ?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 30 Januari 2010, 19:34:49
ik weet niet of dit nog word bijgewerkt, maar in jhe eerste stukkie script:
GML:
global.tcppoort=12564; //Dit is de poort voor de TCP connectie. Die kan je het beste zo laten.
global.maxplayers=20; //Hier zeggen we alvast hoeveel spelers we maximaal in het spel willen hebben. In dit geval 20 :)
for(i=0; i < global.maxplayers; i+=1)
{
global.players[i] = -1;
}
//dit stukje code zal de array maken voor alle spelers. Kom ik later op terug.


//Hier openen we de TCP connectie door naar inkomende pakketjes te luisteren op poort global.tcppoort.
global.servertcp = tcplisten(global.tcppoort,10,1);
//arg0=De poort waar we naar luisteren
//arg1=Maximum aantal connecties op die poort vanaf deze PC (Kan je beter 10 laten)
//arg2=Blocking(0) mode of Non-Blocking(1) mode. Deze kan je ook het beste 1 laten.

//Nu gaan we kijken of die connectie goed is gegaan. Zoniet, klopt de poort niet.. Of de firewall.
//Of iets anders... :) Zoals dat je PC uit elkaar is geknald.
if (global.servertcp) then {
//De server startte!! :D YAY!
show_message("TCP socket geopend op poort "+string(global.tcppoort)+".");
}
else
{
//Als hij dat niet deed :'( dan sluiten de het luisteren, en stoppen de server.
closesocket(global.servertcp);
show_message("Kon de server niet starten op TCP connectie via poort "+string(global.tcppoort)+"!");
game_end();
exit;
}
global.maxplayers=20 //Hier leg ik later meer over uit.
for(i=0; i < global.maxplayers; i+=1)
{
global.players[i] = -1;
}

staat
GML:
global.maxplayers=20 //Hier leg ik later meer over uit.
for(i=0; i < global.maxplayers; i+=1)
{
global.players[i] = -1;
}
er aan het begin  en eind in.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 3 Februari 2010, 18:48:32
Ohja, das stom. Zie ik nu pas :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 4 Februari 2010, 07:17:06
werkt dit ook in 3d game ; firhst peron shooter? en ik heb een acount system kan ik de inlog naam dan ook gebruiken als "username" ?



Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: gm1999 op 4 Februari 2010, 11:46:42
tuurlijk werkt dat.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 4 Februari 2010, 15:01:36
oke, maar hoe?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Hfan op 4 Februari 2010, 15:07:43
Als jij nou zelf eens ging programmeren en de code begint te snappen. Niemand gaat hier online inbouwen in jouw first person shooter, dat zal je gewoon zelf moeten doen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 4 Februari 2010, 15:18:47
oke


Titel: pdf
Bericht door: 36gianni36 op 13 Februari 2010, 10:46:55
Voor mensen die het willen ik heb het in pdf gezet http://easy-upload.nl/f/hO5lNL2u (http://easy-upload.nl/f/hO5lNL2u) ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 15 Februari 2010, 18:53:24
hoe verzend je hierbij in 3d de coordinaten enz?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Hfan op 15 Februari 2010, 20:15:04
GML:
clearbuffer();
writebyte( 100);
writeshort( x);
writeshort( y);
writeshort( z);
sendmessage( global.clienttcp);

Niets anders dan in 2D.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 16 Februari 2010, 08:32:29
alles word zwart

ik heb in room_play

-ubercontroler
-obj_player
-obj_muur
-obj_overlay

maar als ik de game start
dan vul ik naam en ip en dan druk ik op enter en dan zie ik alles zwart
hoe kan dit?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 16 Februari 2010, 10:18:23
Zou dat misschien kunnen komen omdat je geen server aan hebt staan ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 16 Februari 2010, 11:40:20
hij doet het al.

edit

is het ook mogelijk om acount gegevens te sturen zoals ww.
en die dan op de pc van de server op te slaan en als de client zig inlogt dat ze dan worden opgehaalt.
als dit mogelijk is zou iemand mij dan ff kunnen uitleggen hoe ik kom er zelf niet helemaal uit.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Gijs LS op 17 Februari 2010, 17:51:34
Zodat je de wachtwoorden in de server van andere mensen kan lezen?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: marcoo op 17 Februari 2010, 17:55:39
hij doet het al.

edit

is het ook mogelijk om acount gegevens te sturen zoals ww.
en die dan op de pc van de server op te slaan en als de client zig inlogt dat ze dan worden opgehaalt.
als dit mogelijk is zou iemand mij dan ff kunnen uitleggen hoe ik kom er zelf niet helemaal uit.
ik kan het je uitleggen, maar voor vragen zijn apparte subfora gemaakt (beginners en gevorderden)

marcoo


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 17 Februari 2010, 18:15:07
ik kan het je uitleggen, maar voor vragen zijn apparte subfora gemaakt (beginners en gevorderden)

oke, ik heb ff een topic gemaakt over die vraag
http://www.game-maker.nl/forums/topic,50171.0


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: robin0van0der0vliet op 20 Februari 2010, 08:01:44
kan ik met deze example ook met iemand spelen uit een andere stad


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 20 Februari 2010, 08:06:12
ja, dan moet je je poort voorwarden en dan verander je bij obj_ubercontroller bij het game start effent

GML:
global.serverip = get_string("Server IP:","127.0.0.1");
naar
GML:
global.serverip = get_string("Server IP:","je eigen ip");


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: robin0van0der0vliet op 20 Februari 2010, 08:11:26
hoe moet je de port forwarden


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 20 Februari 2010, 09:38:57
ga naar menu start > uitvoeren typ daar cmd en dan enter of oke en dan krijg je z'n schermpje waar een paar dingetjes instaan dan typ je ipconfig dan krijg je zoiets van ip adressen neem de standaart gateway typ die in de urlbalk van je browsen en druk op enter dan komt er als het goed is z'n schermpje waar je kunt inloggen, log daar in met je router gegevens en druk op enter en open dan een poort.

en nu mijn vraag,

ik gebruik deze tut ook maar dan voor 3d third person maar als ik de server en de 2 clients start zie ik alleen de sprite van het andere poppetje op de grond hoe zorg ik ervoor dat je het model van het anderpoppetje ziet ik heb al wat geprobeert met
GML:
readshort(z);
enz. maar het wil niet lukken


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: maker-bart op 20 Februari 2010, 11:53:11
Je hebt in 3D geen sprites, maar models..

z=readshort();, niet readshort(z);


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 20 Februari 2010, 15:31:51
ja die bedoel ik en ik wist ook allang dat je in 3d modellen hebt maar hoe moet je die verzenden met 39dll


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: maker-bart op 20 Februari 2010, 20:35:11
Die moet je niet verzenden, als het goed is heb je het model al. Je moet dus alleen obj_player_other maken, met het model in draw event


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 20 Februari 2010, 21:59:53
 bedankt het is gelukt 8)



én nog een vraagje.

over dat maxplayers gedeelte waar hij zegt dat hij dat op 20 houd.

maar wat moet je invullen zodat je oneindig spelers kan?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: robin0van0der0vliet op 23 Februari 2010, 15:32:39
@ jaapi   doe gewoon 99999999999999999999999999999999999.......  maxplayers je krijgt denk ik niet meer spelers dan dit


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 23 Februari 2010, 15:38:23
dan geeft die een error chat_line nogwat


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Avickum op 23 Februari 2010, 18:34:24
Mn moeder zegt dat als je multiplayer games maakt en jouw computer als server gebruikt de leden op jouw computer kunnen komen en je bankrekeningen etc kunnen bekijken..

Is dit waar en hoe kun je dit het best beveiligingen..?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: debeste95 op 23 Februari 2010, 19:08:16
Mn moeder zegt dat als je multiplayer games maakt en jouw computer als server gebruikt de leden op jouw computer kunnen komen en je bankrekeningen etc kunnen bekijken..

Is dit waar en hoe kun je dit het best beveiligingen..?
da's echt bullshit, typisch zo'n verhaal van ouders die bang worden dat ze in je pc kunnen... heeft mijn vader ook weleens. over het algemeen, als je je poorten openzet en je hebt een beetje een fatsoenlijke virusscanner, gebeurt er niks...
bovendien, dat emt dat bankrekening is wel héél vergezocht. zolang je netjes altijd op uitloggen drukt als je gaat internetbankieren, is er echt niks aan de hand  ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Avickum op 23 Februari 2010, 20:17:44
tmag nog niet.. :(


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 23 Februari 2010, 21:07:54
www.google.nl heeft ook z'n ports openstaan, een heleboel, ik vraag me af of ik de rekeningen leeg kan rippen :D
Oh btw, www.jouwbank.nl heeft ook een heleboel ports openstaan, i'm rich xD
Denk je nou echt dat dit mogelijk is ;)?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Avickum op 23 Februari 2010, 21:44:40
ik niet maar mn ouders wel :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 23 Februari 2010, 23:30:26
Doet/heeft je moeder een ICT opleiding (gedaan)?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 23 Februari 2010, 23:32:17
he, gmt, jij rond dit uur?
srry was wel ff erg off-topic


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 24 Februari 2010, 08:39:39
Mn moeder zegt dat als je multiplayer games maakt en jouw computer als server gebruikt de leden op jouw computer kunnen komen en je bankrekeningen etc kunnen bekijken..

Is dit waar en hoe kun je dit het best beveiligingen..?

dat gebeurt niet zomaar, en als ze echt niet willen dat je je poorten open zet, koop dan een 2dehans pctje en gebruik die als zerver en verder voor niks.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: BlueMoonProductions op 24 Februari 2010, 18:18:41
Ik snap dat 'servergedoe' niet helemaal(dit gaat trouwens over de Tut, niet wat hierboven staat).

Als je die codes gebruikt, welke pc wordt dan de server? Iedereen heeft toch dezelfde game? En hoe werkt zoiets nou? Stel mn pc staat uit dan heeft ie toch ook geen verbinding etc.?

En kan er miss meer uitleg komen over hoe je dit nou in een spel toepast, bijv. met kogels?

Citaat van: jaapi
én nog een vraagje.

over dat maxplayers gedeelte waar hij zegt dat hij dat op 20 houd.

maar wat moet je invullen zodat je oneindig spelers kan?
Je zou gewoon alles kunnen weglaten wat daar mee te maken heeft.. :angel:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: XXLazyprod op 24 Februari 2010, 18:25:18
de server is het meeting point van alle data van de clients.
Alle clients sturen "post" naar de server waar de server ze sorteerd en weer verder stuurt (ja TNT xD) maar om de server te kunnen gebruiken moet hij wel aanstaan ik bedoel een postsorteercentrum moet ook open zijn... de clients zijn de mensen die briefen sturen.

Ik hoop dat ik je hiermee help?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: StefanJanssen op 24 Februari 2010, 18:52:46
je legt het door elkaar uit.



-De mensen (wij dus) sturen brieven.
-de TNT sorteert het in een grote ruimte (die zondag gesloten is)
-daarna gaan bezorgers op pad om de post rond te brengen.
-daarna beantwoorden we de brief
nu is het rijtje weer rond

via internet gaat het zo:


-clients (het deel van het spel wat je moet geven aan anderen) sturen pakketjes
-dan komt het bij de server binnen en word het gesorteerd (als de server dicht is kan het niet)
-dan stuurt de server het weer naar de clients.
-de clients sturen weer wat nieuws



(zo kun je de stappen makkelijk vergelijken)
@XXlazyproduct:
Handig om het te vergelijken met TNT (niet het dynamiet mag ik hopen :P)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: BlueMoonProductions op 24 Februari 2010, 19:44:44
Tja, die server zou dus mijn pc moeten zijn? Maar zoals ik al vroeg, alle 'games' hebben dezelfde code erin.

Maar zo'n server, hoe werkt dat? Kan ik gewoon aan de hand van deze tut een game maken? Wordt mijn pc dan de server? Moet die dan altijd aanstaan(vast niet hoop ik.. :?)
Sorry als ik een beetje domme vragen stel, ik heb totaal 0,0 ervaring met servers en gedoe enzo.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Avickum op 24 Februari 2010, 19:45:31
IK mag eindelijk een multiplayer game maken (de server op onze oude laptop en een heel nieuw netwerkverbinding XD)

Maar hoe maak je hier een registratiesysteem bij? Want steeds opnieuw beginnen is niet echt leuwk..


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 24 Februari 2010, 21:07:17
IK mag eindelijk een multiplayer game maken (de server op onze oude laptop en een heel nieuw netwerkverbinding XD)

Maar hoe maak je hier een registratiesysteem bij? Want steeds opnieuw beginnen is niet echt leuwk..

met ini's en variables


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: XXLazyprod op 24 Februari 2010, 22:52:30
g-maker-t heeft een example met een ini registratie systeem
met ini's gemaakt in resources volgens mij

@bluemoon
als je de example download staan daar een aantal gmktjes een aantal servers en een aantal cliebts aks je de server start en 2 clients en het ip 127.0.0.1invoerd moet er in de server staan dat je verbinding hebt ik denk dan dat je het wel snapt

ik heb dit op mijn Htc hd2 getypt sorry voor eventuele fouten

Mvg Harm


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: StefanJanssen op 25 Februari 2010, 08:24:53
Tja, die server zou dus mijn pc moeten zijn? Maar zoals ik al vroeg, alle 'games' hebben dezelfde code erin.

Maar zo'n server, hoe werkt dat? Kan ik gewoon aan de hand van deze tut een game maken? Wordt mijn pc dan de server? Moet die dan altijd aanstaan(vast niet hoop ik.. :?)
Sorry als ik een beetje domme vragen stel, ik heb totaal 0,0 ervaring met servers en gedoe enzo.

je kunt de server ook meegeven en dat als de server offline is dat ze die moeten runnen om de server online te zetten. als je server uitstaat kunnen anderen niet spelen. dus al moet hij 24 uur per dag join-baar zijn moet je dus inderdaad de server aan laten staan
IK mag eindelijk een multiplayer game maken (de server op onze oude laptop en een heel nieuw netwerkverbinding XD)

Maar hoe maak je hier een registratiesysteem bij? Want steeds opnieuw beginnen is niet echt leuwk..
Er stond dat ik ergens in de tutorial (of ergens bij de reacties) dat je PC wel snel moet zijn omdat de server anders te traag is.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Avickum op 25 Februari 2010, 19:14:09
onze oude laptop is nog wel snel hoowr, met oud bedoel ik gwn dat et onze vorige is :p khad miss ook 'vorige' moeten zeggen,

maar kan iemand een aansluitende tut maken over hoe je je hierbij kunt registreren en dat de data word opgeslagen in INI files want ik heb er nog nooit mee gewerkt.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: BlueMoonProductions op 25 Februari 2010, 19:19:22
je kunt de server ook meegeven en dat als de server offline is dat ze die moeten runnen om de server online te zetten. als je server uitstaat kunnen anderen niet spelen. dus al moet hij 24 uur per dag join-baar zijn moet je dus inderdaad de server aan laten

Ik bedoel dus, wordt MIJN COMPUTER de SERVER, want elke GAME bevat dezelfde CODES. Of moet ik iets speciaals doen om een server aan te maken?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: XXLazyprod op 26 Februari 2010, 09:32:29
@Avickum

Sigh kun je niet ff zoeken ?
2 minuten http://www.game-maker.nl/forums/topic,38363.0

@BlueMoonProductions

Tja als je nou eens doet wat wij zeggen? start eens 2 clients op en 1 server uit de example!?
dan kom je er wel achter!!!


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 26 Februari 2010, 09:37:28
ff een vraagje kennen jullie het proggramma xampp daar mee kan je zelf hosten (downloads)
maar kan je die ook gebruiken zodat je je poorten niet hoeft te opennen


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: avonta op 26 Februari 2010, 09:49:52
ff een vraagje kennen jullie het proggramma xampp daar mee kan je zelf hosten (downloads)
maar kan je die ook gebruiken zodat je je poorten niet hoeft te opennen
nee, Alleen in je eigen netwerk (dus de computers die in je router zitten)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 26 Februari 2010, 10:44:14
ohw, oke


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Avickum op 27 Februari 2010, 22:04:50
Als je naar een andere room gaat krijg je een error.
Als je ipv "Game Start" dan "Create" gebruikt moet je weer alles opnieuw invullen.

Hoe zorg je ervoor dat je gewoon door kunt spelen als je naar een andere room gaat?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: roypowerr op 3 Maart 2010, 18:57:44
De downloadlink van de 9dll bestanden enz doet het niet bij mij.....


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: StefanJanssen op 4 Maart 2010, 15:29:17
bij mij wel


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: semmy op 6 Maart 2010, 16:00:17
Met welk script is die 39dll gemaakt? Met C++?
Edit: uit betrouwbare bronnen heb ik vernomen dat de 39dll met C is gemaakt.  :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: nickyoso op 8 Maart 2010, 21:14:17
Hallo,

Ik heb even een vraagje, sorry als die al eerder is gesteld maar had liever niet zo'n zin om 10 pagina's door te zoeken als het al was gevraagd.

Ik ben bezig met een browser based game te maken en nu is mijn vraag:
Als ik dit programma in een web browser run, en als ik dan de server start, draait de server dan op de webhost waar ik dit programma op heb staan of op mijn computer?
alvast bedankt.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: BlueMoonProductions op 14 Maart 2010, 11:38:25
Goed, ik heb nu de server af.
Maar ik kan maar niet vinden hoe je de positie van de text en het maximale aantal regels kan veranderen.

Welke scripts zorgen daar voor?
Kan iemand me vertellen hoe:
-ik zorg dat er maximaal 10 regels text ofzo zijn,
-ik de positie van de tekst kan bepalen

alvast bedankt


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: semmy op 14 Maart 2010, 16:34:03
In deze tutorial gaat het niet echt om de chat, maar het online gedeelte en het werken met de 39dll. Als het chat script van Blackhawk niet snapt raad ik je aan je eigen chat script te maken.
Om de x en y van de plaats waar je de chat drawt te bepalen moet je even het script openen het draw script, daar staan wat xxen en yyen die je kan aanpassen ;)

Edit:
Gebruik dit script als functie: chat_drawlines(x,y)
GML:
{
  var xxx,yyy;
  xxx = argument0; //hier word de x bepaald
  yyy = argument1; //hier word de y bepaald
  draw_set_font(fnt_chat);
  for (i=0; i<global.maxline; i+=1)
  {
    draw_set_color(global.color[i]);
    draw_text(xxx,yyy,global.line[i]);
    yyy += 18;
  }
}


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Colin-Star op 14 Maart 2010, 18:35:56
___________________________________________
ERROR in
action number 1
of Other Event: Game Start
for object obj_ubercontroller:

Error defining an external function.


krijg ik alleen maar ? ik heb alle stappen goed gevolgd maar hij werkt niet op een andere com?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Divine Studio op 14 Maart 2010, 18:37:28
___________________________________________
ERROR in
action number 1
of Other Event: Game Start
for object obj_ubercontroller:

Error defining an external function.


krijg ik alleen maar ? ik heb alle stappen goed gevolgd maar hij werkt niet op een andere com?
de 39dll.dll moet indezelfde map zitten als de .exe.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Steino op 15 Maart 2010, 15:39:04
@colinstar
die error had ik ook, http://www.game-maker.nl/forums/topic,51222.msg337963#msg337963 daar wordt het wel goed genoeg uitgelegd

voor de rest, kan iemand mij vertellen wat het script setnagle() precies doet? bij client.exe en game start event.
EDIT:
en wat doet het script setsync(clientsocket,0)?

bedankt ;)
Stein


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 15 Maart 2010, 19:46:27
setsinc weet ik
die zet de synchronysatie met de client aan
dus aluwel dat als de client writeshort doet hij t kan ontvangen met readshort


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Steino op 18 Maart 2010, 15:48:45
@redblood
er is dat geen sendmessage(global.clienttcp) meer nodig ofzow? want als dat wel zo is dan moet je dus eigelijk gewoon nogsteeds pakketjes sturen en ontvangen en maakt het dus niets uit?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 18 Maart 2010, 18:33:51
ah, nee zo werkt het nie.
het is zegmaar alsof setsinc er een kabeltje tussen legt waarover je met sendmessage kan gaan lopen versturen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Steino op 22 Maart 2010, 16:35:44
en dat werkt dan sneller ofzo? want anders zie ik het verschil niet echt met zonder setsync?

aan alle andere mensen die dit lezen, ik vraag me nog steeds af wat het script setnagle doet :D


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ChrisCompany op 22 Maart 2010, 19:22:59
setsinc weet ik
die zet de synchronysatie met de client aan
dus aluwel dat als de client writeshort doet hij t kan ontvangen met readshort

Nee, want aan het eind van het event waar je de connectie legt zet je het ook weer uit. Dus dan zou je dat kabeltje weer weg halen..

setnagle is een algoritme die ervoor zorgt dat je bericht geëncrypt wordt als je hem stuurt als het goed is.. zoiets las ik in de help file van 39dll. die kan je dus ook uitzetten/weglaten maar dan zijn je berichten dus niet beveiligd.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Steino op 27 Maart 2010, 12:32:57
oke dankjewel voor de uitleg ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 4 April 2010, 17:35:45
for(i=0; i < global.maxplayers; i+=1)
{
global.players = -1;
}

sytaat er nog steeds 2x in


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 12 April 2010, 15:53:56
beste blackhawk
zou je er mischien iets kunnen inzetten over autos, je hebt een speler je loopt tegen een auto en dan stap je in de auto. die auto moeten de andere spelers zien rijden


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: BlueMoonProductions op 12 April 2010, 17:33:13
Dan maak je toch gewoon een nieuwe message id die doorstuurt dat je in de auto bent gestapt :angel:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 12 April 2010, 17:34:48
maar ik krijg de auto ook alleen maar te zien bij de eerste client


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: BlueMoonProductions op 12 April 2010, 17:39:33
Dan heb je iets niet helemaal goed gedaan bij het doorsturen.

(maar vraag het niet aan mij ik weet er ook niet zo veel van)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 12 April 2010, 18:43:14
moet je wel gaan ontvangen en verwerken he :P
in de ubercontroller draw staat ergens iets om t object te drawen.
doe daar iets van if player.car=1{draw car}else{draw player}


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 13 April 2010, 13:56:19
op welke manier weet de player_other waar hij moet worden gedrawd?

wand ik wil graag weten dat als ik een auto in de server heb staan en die verzend de positie
hoe ik die auto dan laat in de client


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Hfan op 13 April 2010, 14:08:13
Je verstuurt de x en de y van de auto naar de client en je laat de client op die plek een auto aanmaken.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 13 April 2010, 14:20:25
Je verstuurt de x en de y van de auto naar de client en je laat de client op die plek een auto aanmaken.
dat versturen lukt wel
maar dat 2e niet


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Hfan op 13 April 2010, 14:24:11
GML:
var xx, yy;
xx := readbyte();
yy := readbyte();
instance_create( xx, yy, obj_auto);

En jij denkt klaar te zijn voor Online?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 13 April 2010, 14:48:23
GML:
var xx, yy;
xx := readbyte();
yy := readbyte();
instance_create( xx, yy, obj_auto);

En jij denkt klaar te zijn voor Online?
[/gml] bedankt,

ik denk dat ik het wel kan leren


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Hfan op 13 April 2010, 14:50:45
Probeer dan eens zelf het uit te denken in plaats van elke keer iets te vragen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jaapi op 13 April 2010, 15:23:28
voor mijn auto heb ik nu

versend code:
GML:
writebyte(9);
writeshort(auto.x);
writeshort(auto.y);
writeshort(direction);

ondvangen code:
GML:
switch(noone)
{
case 9:
x = readshort(auto.x);
y = readshort(auto.y);
direction = readshort(obj_muur.direction);
break;
}


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 13 Mei 2010, 20:38:51
for(i=0; i < global.maxplayers; i+=1)
{
global.players = -1;
}
staat er nog steeds 2 keer
ow enne,
Nu gaan we nog even snel alarm 0 in de speler instellen.
open object obj_speler en maak alarm 0 aan.
Zet daarin deze code:
die is dus nog niet aangemaakt he ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: tommiesmee op 17 Mei 2010, 17:05:43
mooie tut,
erg handig,
maar zou je hem misschien kunnen updaten?
(of heb ik gewoon een oude versie van de DLL?)

ik loop vast bij
GML:
receivemessage(clientsocket);
want ik heb daarbij andere argumenten:
GML:
receivemessage(sock, bytes, buffer);

verder erg bruikbaar (tenminste, tot waar ik het gedaan heb dan :D )


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: pinda op 29 Mei 2010, 10:29:23
Ik ben begonnen met deze tutorial door te lezen en te verwerken in mijn game. Er is alleen één probleem. Het eerste probleem is dat de include functie niet in de game maker 8 game settings zit. Dit blijkt dus te kloppen, zie pagina 6 dit topic, alleen nu zit ik met nog een probleem. De codes dllinit en dllfree werken ook niet in game maker 8. Klopt dat?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 29 Mei 2010, 10:38:26
Je moet gwn gm8 openen, en dan op recources bovenaan klikken en dan staat daar in het uitklap menu helemaal onderaan included files. Daar moet je op klikken.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: pinda op 29 Mei 2010, 10:40:34
Bedankt voor je reactie. Ik heb nu de 39dll.dll file toegevoegd, maar nog steeds klopt er iets niet met die 2 codes. Zijn deze in Game maker 8 anders of horen ze toch te kloppen?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 29 Mei 2010, 13:32:04
Ik heb deze tut gevolgd, maar hij werkte niet. Toen heb ik de standaard example's geprobeerd. Dat deed ik zo:

1: Server op mn pc opstarten
2: Client op mn pc opstarten en inloggen
3: Op een andere pc client opstarten en inloggen

Als ik nu op die andere pc wou inloggen stond er kan niet met server verbinden.

Hoe kan dit?

Daantjuh0001


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: maker-bart op 29 Mei 2010, 14:41:45
Voordat je een vraag gaat stellen, zoek dan eerst even rond op het forum.

Mogelijkheid 1:
Je hebt het verkeerde IP-adres ingevuld. Voor externe ip adressen, kijk op:
http://dhost.info/bartemis/myip.php

Mogelijkheid 2:
Je hebt je poort niet geforward:
http://portforward.com/


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 29 Mei 2010, 14:45:53
Allebij gedaan


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: egbert1999 op 30 Mei 2010, 19:42:56
Error
___________________________________________
ERROR in
action number 1
of Other Event: Game Start
for object obj_ubercontroller:

Error defining an external function.

                                                                           
Ik gebruik  :gm8: pro


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 30 Mei 2010, 19:43:41
zet de dll in hetzelfde mapje


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Aswatie op 7 Juni 2010, 16:11:31
ik heb een vraag.Hoe kan je doen ofzo dat er maar 50 spelers ofzo in de server kunnen


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Janoot op 7 Juni 2010, 18:19:36
Volgens mij door bij de variable
GML:
global.maxplayers=
50 in te voeren...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Martin Beentjes op 26 Juni 2010, 11:16:32
Via Hamachi is wel handig als je niet mag(of wil) port forwarden. Ikzelf doe dat niet, dus moet ik gwn met Hamachi blijven werken.. Opzich gewoon bij het spel de setup van Hamachi voegen en een handleiding hoe je connect..

Verder een super tutorial. Ik had hem nodig voor een vriend van me.
Alleen is de code voor  :gm8: anders? (Enigste vraagje)

Mvg, Martin


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: gm1999 op 26 Juni 2010, 11:20:41
Volgensmij is de code hetzelfde. Ik loop zelf vast zodra ik de naam moet ontvangen van de speler. Dan loopt de server vast, en reageert niet meer.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: egbert1999 op 2 Juli 2010, 13:03:49
Soms werkt het chatten niet meer!
Hoe kan dat?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: StefanJanssen op 2 Juli 2010, 13:16:26
wees is iets duidelijker


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: egbert1999 op 2 Juli 2010, 13:33:11
Ik snap het al,
Je moet eerst enter in drukken en dan wat in typen  ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 2 Juli 2010, 14:21:29
Ik snap het al,
Je moet eerst enter in drukken en dan wat in typen  ;)

En wanneer komt de MMORPG?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: StefanJanssen op 2 Juli 2010, 14:47:28
hoezo MMORPG>>>??

@egbert1999

had je de tut wel doorgelezen??? daar staat het in/


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 3 Juli 2010, 14:08:48
hoezo MMORPG>>>??

@egbert1999

had je de tut wel doorgelezen??? daar staat het in/

Mwah meestal komt er dan gelijk een "MMORPG" die óf niet verbind, óf vreselijk lagged. Waarna de vragen volgen hoe je kunt zien wat ieder "aanheeft" of hoe je moet schieten.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: egbert1999 op 3 Juli 2010, 15:39:15
heus niet,
Ik ga het testen met 2 pc's, en de rest ik  vind ik wel wat op,


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 3 Juli 2010, 16:13:34
Ik ben in ieder geval benieuwd ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: egbert1999 op 3 Juli 2010, 16:44:08
Ik heb de server al uit gebrijd
GM8 kan niet mergen dus bouw ik de game opnieuw


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 4 Juli 2010, 14:09:10
Daarom zit er in GM8 een mooiere functie genaamd "Export resources..." :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: egbert1999 op 4 Juli 2010, 14:13:31
Weet ik,
Mijn vorige versie was *kuche* slecht
dus ben ik nu overnieuw begonnen, ik ga dus weer heropbouwen rond de tut


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 4 Juli 2010, 14:14:53
Nou, veel succes dan maar :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: bi0hazard op 13 Juli 2010, 12:42:08
Ik kan bij het begin al niet verder.
Er mist een deeltje bij mijn  :gm8: Pro denk ik:

er staat:

'Global Game Settings' waarin dit staat: Graphics - Resolution - Other - Loading - Errors - Info

Waar is mijn 'Include'???


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 13 Juli 2010, 12:47:40
In :gm8: zit het onder Resources>Included Files ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: bi0hazard op 13 Juli 2010, 12:52:18
Okej Bedankt  :D

EDIT: Hoe kan ik de dll inladen? Bij resources gebeurt er helemaal niks, en als ik de eerste code invul, krijgt hij een error:
GML:
dllinit(0,true,true);

Error:
GML:
Unknown function or script: dllinit

dit bewijst dus dat hij de dll niet heeft geladen... :?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 13 Juli 2010, 13:43:34
Je hoeft niet meer te includen , je zet de DLL in dezelfde map en het init script lost het wel op :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: bi0hazard op 13 Juli 2010, 14:42:00
Oke, maar nu dit: in heb hem geinclude voordat ik dit las, en nu is mijn dll gevlogen? weg dus  :?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 13 Juli 2010, 14:44:51
Welke gebruik je? De nieuwe of de oude?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: bi0hazard op 13 Juli 2010, 14:45:37
 :gm8:

EDIT: Oh ik zie mijn fout al... Het is gelukt hoor :D
        EDIT: Kan iemand misschien een example sturen van een object die multiplay is gemaakt? het lukt me niet zo erg namelijk. als ik met 2 spelers inlog, zie ik maar 1 object en er staan ook nog eens oneindig objecten in de spawnplaats


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 15 Juli 2010, 16:41:50
Inderdaad, Het lukt mij ook niet helemaal om een object via netwerk of intenet te laten bewegen of überhaut te kunnen zien. Een example zou wel handig zijn  :angel:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Bjarno op 15 Juli 2010, 17:36:22
Hallo GameeMaker en welkom op het forum....

Als er problemen zijn ivm de tutorial mag je ze hier stellen, vragen over de 39dll.dll zelf moeten bij beginners of gevorderden ;) (als je bericht bedoelt was als een vraag). Laat dan in ieder geval ook zien wat jij gedaan hebt met evt je code's of een gmk (van zowel de server als de client).

Verder als je een beetje gelezen had heeft deze tutorial een example (het staat zelfs in de titel).


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 15 Juli 2010, 20:29:00
Ik heb gezien dat de tutorial een example bevat, maar ik kan echt geen enkel wijs maken uit de bergen codes die er staan. Ik heb tot nu toe dit in mijn step event:
GML:
       case 3:
        //Er is een nieuwe speler. (het object maken)
        var userid, name, user;
        userid = readbyte();
        user = instance_create(starjet_speler.xstart,starjet_speler.ystart,starjet_other);
        user.pid = userid;
        name = readstring();
        user.kills=readint();
        user.deaths=readint();
        user.username = name;
        user.hp=3000;
        players[userid] = user;
        chat_addline(name + " doet mee.",c_black);
        break;

maar er staan ook hier nu oneindig objecten in de spawnplek.
Net als bij bi0hazard dus


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: StefanJanssen op 15 Juli 2010, 22:04:34
wat je eigenlijk moet doen is:

CLIENT: informatie verzenden naar server
SERVER: informatie ontvangen en doorzenden naar CLIENTS
CLIENT: informatie ontvangen en gebruiken


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: bytterman op 20 Juli 2010, 18:15:20
Ik heb  :gm8: pro en bij mij staat include er niet bij.

(http://easy-upload.nl/f/XXopsmq9.png) (http://easy-upload.nl/f/XXopsmq9)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: gm1999 op 20 Juli 2010, 18:29:33
Het staat bij Recorces>Include(in de menubalk)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Jolie op 21 Juli 2010, 07:04:05
Ik wil een tutorial maken die bannen met 39dll uitleg, en ik wil dit example ombouwen. Is dit auteursrechtelijk toegestaan? (Ik heb blackhawk een pm gestuurd, maar hij reageerd niet)
Ik heb de tutorial al klaarstaan maar ik moet eerst toestemming hebben of hoeft dat niet?
daantjuuh had ook een 39dll tut gemaakt volgens mij....

Jolie


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: XXLazyprod op 21 Juli 2010, 07:25:48
39-DLL is niet van Blackhawk maar een Opensource DLL voor Gm,
dus je mag het gewoon maken!
(voor zover ik weet) Correct me if im wrong!


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Jolie op 21 Juli 2010, 07:39:14
Maar ik wil het example van blackhawk ombouwen, dan herkent iedereen het example en is het makkelijker aanpassen. Anders moet ik zelf een loop/chat example maken, dat niemand herkent, en dan let niemand meer op het ban stukje.

En btw, 39dll is gemaakt door 39ster. Maar die zit op het andere gmc


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: tidob1 op 21 Juli 2010, 09:19:18
Er zijn al een stuk of 50 mensen die deze tutorial letterlijk hebben overgenomen, er eigen sprites bij hebben gezet en het een eigen spel hebben genoemd, en die zijn ook niet in de problemen gekomen. ;)

Verder kan het natuurlijk dat blackhawk op vakantie is, de laatste keer dat hij online was was 6 dagen geleden.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Jolie op 21 Juli 2010, 19:46:33
Ik doe wel grote credits in het example.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 2 Augustus 2010, 07:46:54
net terug van mijn 2 weken Frankrijk  :angel:
Meteen weer begonnen aan mijn projectje.
Heeft er echt niemand een example met een sprite die naar de clients word verstuurd?
Dit zou heel wat makkelijker werken.


alvast bedankt, :)
GameeMaker


EDIT: Oeeeh DOM DOM DOM! Er zit inderdaad al een example met sprite bij!

Maar ik heb hiermee toch nog even een vraag, want de client verstuurd de x,y en direction, maar als hij dat inleest blijft de sprite gewoon zonder angle bewegen? kan iemand me hiermee helpen?
hij leest de direction gewoon niet, terwijl de x en y gewoon verwerkt worden.

Ik heb gewoon de code die gemaakt was bij deze tut gebruikt.
Maar hier is het toch nog een keer:

GML:
//Hiermee leest ubercontroller de variabelen in:
        case 5:
        value = readbyte();
        player = players[value];
        player.x = readshort();
        player.y = readshort();
        player.direction = readshort();
        break;
GML:
//En hiermee word het verstuurd vanuit mijn object:
clearbuffer();
writebyte(2);
writebyte(global.myid);
writeshort(x);
writeshort(y);
writeshort(direction);
sendmessage(global.clienttcp);
alarm[0] = 1;


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: wauwie1 op 14 Augustus 2010, 21:58:39
Het werkt niet :S. sinds het 2sberv.gm6 stuk werkt  het niet. De examples ook niet :S. Kun je me helpen?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: maker-bart op 14 Augustus 2010, 22:52:51
Je kunt nu wel zeggen: "HET WERKT NIET!! HELP ME!!". Maar we kunnen je niet helpen als je niet wat meer informatie geeft. Wat werkt er niet? Wat gebeurt er wel?

Geef ons dus wat meer informatie.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: wauwie1 op 15 Augustus 2010, 12:54:08
Je kunt nu wel zeggen: "HET WERKT NIET!! HELP ME!!". Maar we kunnen je niet helpen als je niet wat meer informatie geeft. Wat werkt er niet? Wat gebeurt er wel?

Geef ons dus wat meer informatie.


Sorry je hebt gelijk :(

Nou als ik op run game klik krijg ik dit:

Error creating stan-alone: Cannot find valid runner data.



Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: gm1999 op 15 Augustus 2010, 13:09:13
anders maak je hem gewoon zelf?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Aswatie op 2 September 2010, 19:37:54
Ik heb je example gevolgd en heb het in mijn game gedaan.Maar hoe kan je als je in het spel verandert in obj_player_2 dat mensen online het ook zien


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 2 September 2010, 20:19:48
Ik heb je example gevolgd en heb het in mijn game gedaan.
En dan nog de tutorial volgen en het allemaal snappen :)
Maar hoe kan je als je in het spel verandert in obj_player_2 dat mensen online het ook zien
Zie het bovenstaande, als je het hele systeem zou snappen zou je het namelijk wel op kunnen lossen. Het idee is: dat ook verzenden :D!

Het hele idee is dat het opgebouwd is in verschillende cases, je kunt hier bijvoorbeeld om het makkelijk te houden een hele nieuwe case voor aanmaken. Deze stel je dan ook bij de server in dat hij dit doorstuurt. Vervolgens bij de clients die het ontvangen zorg je dat het id van de speler ook bekend is en dan verander je de sprite van die instantie. Het is trouwens sowieso beter om de sprite te veranderen dan het hele object, maar je kunt ook het object veranderen als je dat liever zou hebben ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 2 September 2010, 21:12:51
En waarom zou je in obj_player_2 veranderen? Klinkt als een animatie oplossing of een collision systeempje? In ieder geval, het is faal.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 3 September 2010, 14:22:52
Hey Coders, Game makers, etc etc!
Ik ben weer terug bij Game Maker.(Ja ik ben weg geweest, vanwege de vakantie :P)
Ik heb een vraagje:

Is het mogelijk om het IP adres van de spelers in te laden?
Bijvoorbeeld als iemand het spel ingaat, krijg je op de server te zien:

GameeMaker has connected with 127.0.0.1

Iets dat hierop lijkt.
Oke Alvast Bedankt,

Mvg,
GameeMaker


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 3 September 2010, 14:41:45
tcpip()
GML:
//Returns the ip that the socket is connected to.
//Argument 0 = socket id.
return external_call(global._SokL, argument0);


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 3 September 2010, 14:53:32
dan krijg ik: 1660
dat had ik namelijk al geprobeerd.
Kan dit komen door mijn router?

EDIT: Dit is mijn code:
GML:
chat_addline(name + " has joined with "+string(tcpip),c_black);

1165 nu.

als ik dit doe:

GML:
chat_addline(name + " has joined with "+string(tcpip()),c_black);

staat er niks.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 15 September 2010, 18:35:47
dan krijg ik: 1660
dat had ik namelijk al geprobeerd.
Kan dit komen door mijn router?

EDIT: Dit is mijn code:
GML:
chat_addline(name + " has joined with "+string(tcpip),c_black);

1165 nu.

als ik dit doe:

GML:
chat_addline(name + " has joined with "+string(tcpip()),c_black);

staat er niks.

//Argument 0 = socket id.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 15 September 2010, 20:55:38
idd argument 0 vergeten.
(en ik zou has joined from ip doen.)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: turbodevin op 16 September 2010, 20:36:11
Hoe moet je nou precies die ports forwarden? Heb van alles geprobeerd, maar om er niet aan uit...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dennisvdz op 16 September 2010, 20:46:02
port-forward.com

En als je het nog niet snapt, ga dan even bij je ouders zeuren over hoe je router werkt. Wij hebben jou router niet dus we kunnen je er lastig bij helpen.

SLA DE STATIC IP STAP NIET OVER.

En als je geen Engels kan, ook niet hier zeuren, vraag je ouders maar. Je hebt grote kans dat je een wachtwoord voor je router nodig hebt dus dat maakt niet uit.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: turbodevin op 17 September 2010, 10:57:08
Synchronisatie is niet erg goed... Als we met >5 personen op de server zijn, heeft hij een lag van 3 seconden :(


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 17 September 2010, 13:18:21
Synchronisatie is niet erg goed... Als we met >5 personen op de server zijn, heeft hij een lag van 3 seconden :(

Dat is omdat Blackhawk zo slim was de positie en beweging van de speler 30x per seconde te versturen. Als je dit aanpast, door bijvoorbeeld te versturen welke knop een speler indrukt, en de beweging client-side aanpakt, heb je totaal geen lag.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: turbodevin op 17 September 2010, 14:18:56
is het niet makkelijker om alleen te sturen als x != xprevious?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 17 September 2010, 15:07:19
Dat is een optie.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 17 September 2010, 16:17:29
dan gaat de ping wel omhoog, maar da's natuurlijk simpel te fixen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 18 September 2010, 16:22:04
Die time-out zou je eigenlijk serversided moeten regelen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 19 September 2010, 04:39:15
En clientside.
wat ik altijd doe is een ping in de server van max 10 sec, en in de client van max 8 sec.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 19 September 2010, 11:24:33
En als je dan 10seconden stilstaat, lang chatbericht typen bijvoorbeeld :eyes:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 19 September 2010, 12:47:37
En als je dan 10seconden stilstaat, lang chatbericht typen bijvoorbeeld :eyes:
Zorg dus dat de server checkt of de verbinding nog bestaat.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: turbodevin op 23 September 2010, 09:15:21
Is het bij de chat mogelijk om een whisper functie te maken, ik ben hier een tijdje mee bezig geweest maar kom er niet aan uit.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 23 September 2010, 18:08:48
Is het bij de chat mogelijk om een whisper functie te maken, ik ben hier een tijdje mee bezig geweest maar kom er niet aan uit.
Je kunt toch een playerid of playernaam toevoegen bij de verzonden tekst? Iedereen ontvangt het dan wel, maar dan voeg je het alleen toe aan de chatlines als de naam of het id wat je hebt overeen komt met de verzonden naam of het id :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 23 September 2010, 18:10:54
Is het bij de chat mogelijk om een whisper functie te maken, ik ben hier een tijdje mee bezig geweest maar kom er niet aan uit.
Ik zou van het pakketje writebyte(Whisper?); writestring(keyboard_str); maken, dan dat ook zo op de server uitlezen en doorsturen naar iedereen, en dan bij de client kijk je gewoon if(readbyte()){whisper(readstring());}else{say(readstring());}


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 24 September 2010, 06:09:21
Ik zou van het pakketje writebyte(Whisper?); writestring(keyboard_str); maken, dan dat ook zo op de server uitlezen en doorsturen naar iedereen, en dan bij de client kijk je gewoon if(readbyte()){whisper(readstring());}else{say(readstring());}
oke, dit bericht is wel heel erg...
ik zou van het chat-pakketje ipv alleen writestring maken:
GML:
writebyte(whisper?)
writestring(keyboard_string,1)
als je dan in de client dit doet:
GML:
var whisper;
whisper=readbyte()
if whisper!=-1{//er word gefluisterd
    if whisper=global.myid{
        chat_addline(readstring(),c_grey)
    }
}else{
    chat_addline(readstring(),c_black)
}


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 24 September 2010, 22:27:49
oke, dit bericht is wel heel erg...
Online is ook niet voor newbs he :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 26 September 2010, 18:00:05
nee, maar het is wel lastig, en als je bericht dan ook nog niet te begrijpen is, ...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Bjarno op 26 September 2010, 18:24:34
dan gaat de ping wel omhoog, maar da's natuurlijk simpel te fixen.
Door om de drie seconden een gewone complete update van de speler zijn positie te geven ;)

Die time-out zou je eigenlijk serversided moeten regelen.
& client-side ;) Want als de verbinding wegvalt moet zowel de server als de client dit weten ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 26 September 2010, 19:28:15
nee, maar het is wel lastig, en als je bericht dan ook nog niet te begrijpen is, ...
hmnja ok ik had inderdaad ook niet heel erg veel tijd om die post te schrijven :angel:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 7 Oktober 2010, 15:06:54
Kan iemand mij uitleggen hoe je het ip kan uitlezen van degene die op je server komt?

Bijvoorbeeld, als een client het ip 127.0.0.1 heeft en connect dat er dan in de server komt te staan: client connected with 127.0.0.1

Ik hoef alleen te weten hoe je aan het ip komt, de rest kan ik zelf maken.
Bedankt!


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 7 Oktober 2010, 15:49:46
Kan iemand mij uitleggen hoe je het ip kan uitlezen van degene die op je server komt?
Je kunt met een netread dll een php pagina laten lezen die het ip van de client echot. Dus een pagina als watismijnip.nl, myipadress.com of whatismyip.com... Maar een simpele PHP pagina zonder dit alles, is vele malen sneller ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 7 Oktober 2010, 15:51:29
je kan ook gewoon simpel tcpip(socket) gebruiken...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 7 Oktober 2010, 15:58:56
Redblood, leg uit?

*edit: Alsjeblieft? :D

*edit2: Je bedoelt dit zeker?

tcpip(clientsocket)

als je dit doet, dan krijg je zomaar een code, die steeds anders is als je opnieuw connect.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 7 Oktober 2010, 16:14:36
in de server doen he, bij mij werkt het.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 7 Oktober 2010, 16:17:05
in de server bij ubercontroller staat dit in de step event:

GML:
chat_addline(string(tcpip(clientsocket)) +" was on the banned list.",c_orange)

dan krijg ik de ene keer 1136, dan 1144, en dan weer wat anders.

Edit: Het werkt! :D

Dankje!


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: turbodevin op 9 Oktober 2010, 11:50:45
Ik ben bezig met een whisper functie, en heb hem bijna af. Er is alleen een probleempje.
Hij kijkt of de naam die opgegeven is om naar te versturen (whisper_name_other) gebruikt word door een obj_player_other. Dit heb ik op deze manier geprobeerd, maar dat lukt niet, want dan probeert hij dat maar bij een instance, en kan ik dus maar naar één iemand whisperen.

Mijn vraag is dus, hoe kan ik dit stuk code hieronder veranderen zodat hij echt kijkt of er iemand de opgegeven naam gebruikt.

GML:
if (obj_player_other.username==whisper_name_other){

Mvg Devin


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: beginnergm op 9 Oktober 2010, 11:56:22
Heeft iemand de example nog? :P

Dan kan ik kijken voor een ban systeem. :P :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: turbodevin op 9 Oktober 2010, 15:34:23
Het is al opgelost :D

Heb het vervangen door:
GML:
with (obj_player_other){
    if (self.username==whisper_name_other){
       used=1;
    }
}
if (used=1){
   chat_addline(whisper_message,make_color_rgb(0,153,255));
}


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: JMG-Arts op 9 Oktober 2010, 16:05:43
deze tutorial heeft me heel veel geholpen

als mijn game klaar wil ik het wel laten zien


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: maanu40 op 27 Oktober 2010, 12:21:00
Ehm.. Als je de dll wilt plaatsen moet je naar de include tab in global game settings. In gm8 is die tab er niet. Enig idee hoe je dit wel moet doen? :|


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: beginnergm op 27 Oktober 2010, 12:38:42
Bij resources. ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 27 Oktober 2010, 17:50:23
Ehm.. Als je de dll wilt plaatsen moet je naar de include tab in global game settings. In gm8 is die tab er niet. Enig idee hoe je dit wel moet doen? :|
Shift+ctrl+L :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: beginnergm op 27 Oktober 2010, 17:51:54
Shift+ctrl+L :)
kan ook :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Robbe-H op 24 December 2010, 14:03:26
Werkt dit ook voor  :gm8: ?
Het loopt bij mij telkens vast :(
Hij weet blijkbaar niet wat dllinit wil zeggen


GML:
___________________________________________
FATAL ERROR in
action number 1
of Other Event: Game Start
for object meester:

COMPILATION ERROR in code action
Error in code at line 1:
   dllinit(0,true,true);
  ^
at position 1: Unknown function or script: dllinit

of heb ik gewoon een domme fout gemaakt?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 24 December 2010, 14:59:16
Heb je de scripts wel geïmporteerd? Er zal wel ergens een *.gml bestand zijn die je kunt importeren en anders moet je in GM8 eerst de example openen en dan daarin Scripts>Export doen zodat ze allemaal in je spel gezet kunnen worden :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 24 December 2010, 19:09:34
Ik wil niet vervelend doen, maar als je zo'n error niet zelf kan oplossen denk ik niet dat je met online moet gaan beginnen :angel:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Robbe-H op 8 Januari 2011, 11:16:12
ok, maar toch bedankt :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Official-neosoft op 8 Januari 2011, 22:17:03
ik heb dat wanneer je stilstaat: var_moving = 0
en wanneer je beweegt: var_moving = 1

dit werkt gewoon goed, speler verandert van sprite (moving=1 heeft loop animatie, moving=0 stilstaan)

maar bij andere spelers zie ik dit niet, ze blijven bij dezelfde sprite. hoe doe ik dit met het gebruik van de var_moving ?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 8 Januari 2011, 22:28:53
En je stuurt het wel door? Dat is namelijk best wel essentieel. Wat je ook zou kunnen doen, is niet werken met 'var_moving' maar in 'obj_other' (ofzo) controleren of zijn geüpdate positie anders is dan zijn vorige, dan moet hij namelijk animeren :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Official-neosoft op 8 Januari 2011, 23:08:38
nou khad dan in dat alarm (waarin je je gegevens verstuurd) gezet van var_moving

en in de server dat ie t leest en doorstuurt

en dan in de client, het drawen van de andere character:
if var_moving =0{
//draw stilstaand
}
if var_moving=1{
//draw animatie
}

maar dat werkte niet


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 9 Januari 2011, 01:41:51
Dus je hebt het in de client een case (of nouja, het getal) gegeven voor verzenden, bij de server die case voor ontvangen? Dan heb je een case (nouja, weer het getal) voor bij de server voor te verzenden, en bij de client die case voor het ontvangen? Als je dat allemaal hebt zou de variabele gewoon geüpdate moeten worden. Dus zorg ervoor dat je geen van deze stappen bent vergeten:
- Nummer (A) toekennen, misschien heb je al een standaard nummer voor dit soort variabelen.
- Zorgen zodra A ontvangen wordt, var_moving wordt uitgelezen in de server en wordt verzonden onder een ander casenummer (B)
- Zorgen zodra B ontvangen wordt, var_moving uit te lezen en aan de goede player te verbinden, en dus in die instantie de variabele aan te passen.

Anders, in debug kijken of hij überhaupt wel ontvangen wordt bij de client, zoniet, bij de server, zoniet, überhaupt wel verzonden wordt bij de speler zelf (eerste client)..?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Official-neosoft op 9 Januari 2011, 14:16:23
ik had er geloof ik geen cijfer aan toegekend (case).
Ik deed gewoon dat Readshort(); en Writeshort(); met dan var_moving


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 9 Januari 2011, 14:25:08
Maar 'gewoon' ergens random in je gmk is niet goed genoeg :P Als je nou eens vertelt waar je het precies hebt gedaan? Want je kunt het best plaatsen onder hetzelfde getal waarmee je de positie update en dergelijke, maar dan moet je het wel ook in de goede volgorde weer uitlezen en doorsturen :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Official-neosoft op 9 Januari 2011, 14:43:56
kzal straks editen, ik had namelijk (omdat het niet werkte) de codes weer weggehaald xD
was ook experimenteren, kijken of t werkte als ik t zo deed xD (eigenlijk wordt me hele project een experiment, kvind meestal online slecht :P)

EDIT:
Client:
Obj_ubercontroller:
Step event:
Code:
case 5:
        //Nu krijgen we de data van andere spelers binnen.
//Dit slaan we op in het corresponderende object van de client.
        value = readbyte();
        player = players[value];
        player.x = readshort();
        player.y = readshort();
        player.direction = readshort();
        player.var_moving = readshort();
        break;
[/code
Draw event:
Code:
//En we drawen de gebruikersnaam van een andere speler boven hem.
with(obj_player_other)
    {
    draw_text(self.x-15,self.y-25,username);
    //draws the other player's parts
if var_moving=0{
    draw_sprite_ext(spr_player_hand_l,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_body,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_ring,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_head,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_hand_r,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    }
    if var_moving=1{
    draw_sprite_ext(spr_player_hand_l_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_body_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_ring_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_head_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_hand_r_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    }
    }

obj_speler:
Create event:
Code:
sprite_index = spr_player_body
var_hp = 100
var_moving = 0

alarm 0:
Code:
//We sturen onze positie
clearbuffer();
writebyte(2);
writebyte(global.myid);
writeshort(x);
writeshort(y);
writeshort(direction);
writeshort(var_moving);
sendmessage(global.clienttcp);

//En herhaal het :)
alarm[0] = 2;

Draw event:
Code:
if var_moving = 0{
draw_sprite_ext(spr_player_hand_l,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
draw_sprite_ext(spr_player_body,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
draw_sprite_ext(spr_player_ring,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
draw_sprite_ext(spr_player_head,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
draw_sprite_ext(spr_player_hand_r,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
}
if var_moving = 1{
draw_sprite_ext(spr_player_hand_l_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
draw_sprite_ext(spr_player_body_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
draw_sprite_ext(spr_player_ring_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
draw_sprite_ext(spr_player_head_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
draw_sprite_ext(spr_player_hand_r_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
}

Step event: heeft alle bewegingscodes. wanneer hij beweegt is var_moving=1, anders var_moving=0

Server:
Obj_client:
Step event:
Code:
    case 2:
    //Dit is bericht id 2.
    //Deze leest zegmaar de belangrijkste dingen van de client, zoals de x, y en de direction
    var player, value;
    value = readbyte();
    //Nu weten we welk ID welke speler heeft, en gaan we de ontvangen data aan hem koppelen.
    player = global.players[value];
    player.x = readshort();
    player.y = readshort();
    player.direction = readshort();
    player.var_moving = readshort();
    clearbuffer();
    //Nu gooien we de buffer weg, en maken ons klaar om dit pakketje 'door te sturen' naar de andere clients.
    writebyte(5);
    writebyte(value);
    writeshort(player.x);
    writeshort(player.y);
    writeshort(player.direction);
    writeshort(player.var_moving);
    with(obj_client)
    {
    sendmessage(tcp);
    }

Dat is het geloof ik wel


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dvdtv op 9 Januari 2011, 15:37:46
Ik zal je codeshier ff aanpassen ik edit het zo:
ubercontroler
Code:
case 5:
        //Nu krijgen we de data van andere spelers binnen.
//Dit slaan we op in het corresponderende object van de client.
        value = readbyte();
        player = players[value];
        player.x = readshort();
        player.y = readshort();
        player.direction = readshort();
        player.var_moving = readshort();
        break;



obj_player_other create event:
GML:
var_moving = 0;

draw event:
GML:
if var_moving=0{
    draw_sprite_ext(spr_player_hand_l,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_body,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_ring,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_head,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_hand_r,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    }
    if var_moving=1{
    draw_sprite_ext(spr_player_hand_l_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_body_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_ring_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_head_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    draw_sprite_ext(spr_player_hand_r_move,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha)
    }

in de darw event van je ubercontroller niks veranderen gewoon de code uit de tut laten staan. Als je namelijk iets op de other wilt drawen moet je het aan hem koppelen.

De rest van je codes kloppen.

Dus let nog is op datj e bij de ubercontroller de draw event zo laat staan zodat hij alleen de naam er van draw verder moetje de draw events gewoon n het obj_player_other object zetten


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Official-neosoft op 9 Januari 2011, 16:49:46
Oh thanks, het werkt :D


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dvdtv op 9 Januari 2011, 17:53:57
Oké alsjeblieft ;) Voor meer vragen kan je wel pmen hoor ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Wout91 op 13 Januari 2011, 19:56:13
heeft iemand de standaat code's? ik kan de download link niet gebruiken. ik heb al verder gezocht maar ik kon geen werkende link vinden.
(ik heb dat ik iets van xvid moet downloaden, instaleren, en dan kan ik er nog niksmee)

maar als iemand die code's heeft kan die dat dan via updo, mediafire, easy-upload,of een andere uploadsite uploaden?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 13 Januari 2011, 20:00:54
Je moet gewoon wachten totdat je rechts bovenin beeld ziet staan: "Skip this ad", dan klik je daarop en dan download je het bestand. Belachelijk dat het via zo'n site gaat, maarja..


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Wout91 op 13 Januari 2011, 20:04:50
sorry ik had het nog niet gezien. (ik kijk altijd eerst naar de text: download en klik daarop...)

edit:

ik kom nu met het probleem:
*  Klik op global game settings (onderin)   
*  Klik op de tab Include             
*  Klik op de Add knop                   
*  Selecteer de 39dll.dll uit de zip     
*  Klik op ok                           
*  Selecteer dan beide vinkjes 
   [] Overwrite existing files
   en
   [] Remove at game end
*  Dan klik je op OK.


dat staat er dus bij mij niet licht dit er aan dat gm8 dat zelf al doet? of staat het ergens anders


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 13 Januari 2011, 20:37:05
Bij GM8 is het:
Resources>Included Files


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 14 Januari 2011, 03:15:10
Je moet gewoon wachten totdat je rechts bovenin beeld ziet staan: "Skip this ad", dan klik je daarop en dan download je het bestand. Belachelijk dat het via zo'n site gaat, maarja..
Oh ik dacht dat de download dood was, net zo'n site als willhostforfood nu. Maar adblock uitschakelen hielp inderdaad lol.
Reupload: http://easy-upload.nl/f/uKkOVynz
http://updo.nl/file/661c8830uKkOV


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TriLobyte op 18 Januari 2011, 18:36:16
Door om de drie seconden een gewone complete update van de speler zijn positie te geven ;)

dit was het antwoord op de vraag waarom de ping heel snel omhoog liep,
maar het helpt mij niet echt heel erg ...
hoe verhelp ik dit...? want ik heb een server en 1 client en die server hoeft toch niets te sturen naar de client?


mvg,


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Wout91 op 18 Januari 2011, 18:45:13
(ik had dit ook met de ping)

maar je zou kunnen doen dat de server elke 30 seconden een bericht stuurt dat de ping naar 0.

oftopic:
(zou iemand ff die link in mijn handtekening kunnen testen? en dan een pm sturen? link geupdated)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TriLobyte op 18 Januari 2011, 18:52:24
(ik had dit ook met de ping)

maar je zou kunnen doen dat de server elke 30 seconden een bericht stuurt dat de ping naar 0.
en hoe zou ik dat moeten doen :P?
alarm in server  uber controller en dan ...?

mvg,


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Wout91 op 18 Januari 2011, 19:05:02
in de server:

obj_ubercontroller:
GML:
//game start event
alarm[1] = room_speed*60 //dan kom je op 1 minuut uit en andere alarms kan ook

//alarm[1] event
clearbuffer()
writebyte(20) // ik doe ff hoog getal dan weet ik zeker dat die vrij is(naja niet helemaal zeker)
with (obj_client){
 sendmessage(tcp)
}
alarm[1] = room_speed*60
dit is al de server kant en dan voor het ontvangen aan de client kant:
GML:
//step
case 20: // in het message ontvangstuk moet je case 20 toevoeggen en daarin staat:
 ping = 0
break;

ik hoop dat dit werkt


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TriLobyte op 18 Januari 2011, 19:06:01
in de server:

obj_ubercontroller:
GML:
//game start event
alarm[1] = room_speed*60 //dan kom je op 1 minuut uit en andere alarms kan ook

//alarm[1] event
clearbuffer()
writebyte(20) // ik doe ff hoog getal dan weet ik zeker dat die vrij is(naja niet helemaal zeker)
with (obj_client){
 sendmessage(tcp)
}
alarm[1] = room_speed*60
dit is al de server kant en dan voor het ontvangen aan de client kant:
GML:
//step
case 20: // in het message ontvangstuk moet je case 20 toevoeggen en daarin staat:
 ping = 0
break;

ik hoop dat dit werkt

ik zal even kijken , k edit zo ....

btw ik hoef ping niet op 0 te zetten want al sik een message ontvang zet hij die al op 0 vóór de switch van case 20: in dit geval

edit: nou ik zag dat ik room_speed*60 even moest aan passen want dat is iets te lang als je max ping 8000 is, ik heb dus room_speed*6 gedaan en dat werkt perfect ;)

bedankt!


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: The RuneSnake op 20 Januari 2011, 18:58:03
het werkt super , maar waar zijn die 50 scripts voor?

TR


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TriLobyte op 20 Januari 2011, 19:03:06
het werkt super , maar waar zijn die 50 scripts voor?

TR
die gebruikt de dll, heb je ze geteld ofzo xD


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 20 Januari 2011, 19:04:20
het werkt super , maar waar zijn die 50 scripts voor?
Om alle functies in de DLL aan te roepen misschien?
Of verwacht jij een functie hier_mijn_gmk_maak_er_een_online_spel_van(c_bedankt)...

Het zijn gewoon alle mogelijke functies die in de DLL zitten en die moeten door Game Maker aangeroepen worden. Het zit je toch niet in de weg? En anders maak je er een GEX van, dan zit je er niet meer mee :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: wessoo op 23 Januari 2011, 09:58:22
Welke port moet eigenlijk open?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 23 Januari 2011, 10:28:28
Welke port moet eigenlijk open?
Ehm, degene die gebruikt gaat worden voor de server..? Dus in het geval van de example is dat: 12564.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 23 Januari 2011, 11:10:28
Volgensmij kan dit topic beter gesloten, teveel newbs die het toch proberen zonder er ook maar iets van te snappen... :angel:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Simon B. op 23 Januari 2011, 19:02:07
Weet iemand hoe ik de snelheid kan verbeteren want de client lagt al onder 36/40 fps en de server vanaf 2 connecties. Ik moet jammer genoeg ook de directie van de speler doorsturen :/


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 23 Januari 2011, 19:03:29
Weet iemand hoe ik de snelheid kan verbeteren want de client lagt al onder 36/40 fps en de server vanaf 2 connecties. Ik moet jammer genoeg ook de directie van de speler doorsturen :/

Ja, gebruik TVNGine (http://vannorde.com/TVNGine.php).


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Simon B. op 23 Januari 2011, 19:24:42
Inlogsystemen gaan niet via de server maar via de website. Het is nog niet uitgebracht dus ben ik er niet veel mee.

[Probleem opgelost]
Nieuw probleem:
Wat kan je het best gebruiken om een direction met door te sturen? (0-360)



Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 23 Januari 2011, 19:36:45
Deel het door 2, rond het af en stuur een byte? Precies genoeg lijkt me :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Simon B. op 23 Januari 2011, 19:42:02
Deel het door 2, rond het af en stuur een byte? Precies genoeg lijkt me :)
Bedankt :D
Goede tip, weet je ook hoe ik het beste een sprimg doorstuur? :P (0-9)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 23 Januari 2011, 19:44:15
Byte is het kleinste wat kan, dus daar zou ik dan ook een byte van maken.

Beter zou zijn meerdere dingen samenvoegen, maar ach zolang duurt het nou ook niet om een paar bytes extra door te sturen :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Simon B. op 23 Januari 2011, 19:47:03
De server en clients lagde vooral doordat ik alle clients op deze computer runde. Ik ga de server wat zuiniger maken. Dan kan ik verder naar het doorsturen van data naar de clients :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 23 Januari 2011, 20:45:07
Inlogsystemen gaan niet via de server maar via de website. Het is nog niet uitgebracht dus ben ik er niet veel mee.

[Probleem opgelost]
Nieuw probleem:
Wat kan je het best gebruiken om een direction met door te sturen? (0-360)



Wacht, TVNGine is not niet uitgebracht? Ik moet even die tekst verwijderen van mijn site, dankje :)

ps. De downloads staan onderaan de pagina :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: BlueMoonProductions op 24 Januari 2011, 10:02:44
Het is sowieso een goed idee om zelf een engine te schrijven ipv deze over te nemen. Pakketjes uitlezen in een while loop zorgt er voor dat er meerdere pakketjes per step worden uitgelezen > minder lag, en gewoon de positie van de speler om de 3 seconden updaten ipv elke step, en keypresses doorsturen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Simon B. op 24 Januari 2011, 15:15:16
Het is sowieso een goed idee om zelf een engine te schrijven ipv deze over te nemen. Pakketjes uitlezen in een while loop zorgt er voor dat er meerdere pakketjes per step worden uitgelezen > minder lag, en gewoon de positie van de speler om de 3 seconden updaten ipv elke step, en keypresses doorsturen.
Bedankt, ik heb nu een bug ondekt, ik had exit in plaats van break getypt :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: niels15 op 30 Januari 2011, 14:09:30
Hallo,

Ik wil mijn server niet van localhost draaien maar van mijn ip

Welke ip moet ik dan hebben mijn interne ip of externe ip?
En moet ik hem alleen veranderen in de client in ubercontrol (game start event)

of moet ik ergens anders in de server of in de client ook nog wat veranderen?



Niels15



OFFTOPIC:

300ste bericht van dit topic XD


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 30 Januari 2011, 14:13:57
Welke ip moet ik dan hebben mijn interne ip of externe ip?
En moet ik hem alleen veranderen in de client in ubercontrol (game start event)

of moet ik ergens anders in de server of in de client ook nog wat veranderen?
Je hoeft in je server en client niks te veranderen, op jouw computer blijf je gewoon verbinden met localhost.

Computers binnen hetzelfde netwerk (bij jou thuis dus) moeten het interne ip gebruiken.

Computers daarbuiten (vrienden, andere forum gebruikers die niet ook bij jou thuis zitten (lol)) het externe ip. Let op dat het externe alleen werkt als op je router de port geforward is. Zoekfunctie hoe je dat doet.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: niels15 op 30 Januari 2011, 14:17:21
Ok thanx hij doet het


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: goodboy op 11 Februari 2011, 16:28:29
b. De Server Opzetten

De server, daar draait het allemaal om. Deze vergaart en verzend data.
Allereerst, includen we de 39dll.dll. (zie hieronder)
                                 
*  Klik op global game settings (onderin)   
*  Klik op de tab Include             
*  Klik op de Add knop                   
*  Selecteer de 39dll.dll uit de zip     
*  Klik op ok                           
*  Selecteer dan beide vinkjes 
   [] Overwrite existing files
   en
   [] Remove at game end
*  Dan klik je op OK


ik kan dat Include tab je niet vinden gerbuik trouwens gm8, waar kan ik het dan doen?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 11 Februari 2011, 16:31:35
ik kan dat Include tab je niet vinden gerbuik trouwens gm8, waar kan ik het dan doen?
Resources > Included Files

Dit is al echt de honderdste keer dat ik dit typ, misschien moet het er eens een keer bijgezet worden xD


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: goodboy op 11 Februari 2011, 16:45:22
Resources > Included Files

Dit is al echt de honderdste keer dat ik dit typ, misschien moet het er eens een keer bijgezet worden xD
ok bedankt, ik heb een error (komt zeker weer door mij)

Error Creating Stand-Alone: Cannot find the required dlls


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Maarten Baert op 12 Februari 2011, 00:22:25
Moderatie: Ik heb hierboven een aantal berichten verwijderd. Er is niks mis met vragen stellen, en antwoorden in de aard van 'denk eens logisch na' helpen echt niet.

ok bedankt, ik heb een error (komt zeker weer door mij)

Error Creating Stand-Alone: Cannot find the required dlls
Dit betekent dat de DLL die je ge-include hebt niet meer bestaat. Dat kan gebeuren als je de DLL die je wilde includen in dezelfde map als het spel plaatst, want dan wordt die bij het afsluiten van het spel verwijderd. Als dat het geval was moet je de DLL opnieuw downloaden en op een andere plaats opslaan (bijvoorbeeld in een map in Mijn Documenten, daar verzamel ik alle DLL's die ik download). Je kan ook kiezen om de temp directory te gebruiken in plaats van de working directory, dan heb je dit probleem niet meer maar moet je wel het initialisatiescript van 39dll aanpassen.

Edit: Vervolg staat in dit topic (http://www.game-maker.nl/forums/topic,63638.0). Het bleek uiteindelijk toch iets anders te zijn.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: The RuneSnake op 13 Februari 2011, 11:52:48
Sorry , maar 39dll is niet veilig , te simpel om te kopieeren en te moeilijk voor beginners.
Ik ga 49dll schrijven , op basis van de dll 39dll.dll.
Dit word o.a veranderd:
-Alle send en read scripts krijgen nederlandse , duidelijke namen.
-Upc of hoe dat ook heet word verwijderd en tcp word verbinding.
-Server veranderd in een hoofd client , die ook gewoon mee kan spelen.
-Er komt een standart moderator systeem in , wat controleerd via een mysql database.
-Er word via de server gecontroleerd of de client wel echt bij de server hoort.
-Alle scripts die niet in de game worden gebruikt , worden verwijderd.

TR


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Ruud Verbeek op 13 Februari 2011, 11:59:58
Sorry , maar 39dll is niet veilig , te simpel om te kopieeren en te moeilijk voor beginners.
Ik ga 49dll schrijven , op basis van de dll 39dll.dll.
Dit word o.a veranderd:
-Alle send en read scripts krijgen nederlandse , duidelijke namen.
-Upc of hoe dat ook heet word verwijderd en tcp word verbinding.
-Server veranderd in een hoofd client , die ook gewoon mee kan spelen.
-Er komt een standart moderator systeem in , wat controleerd via een mysql database.
-Er word via de server gecontroleerd of de client wel echt bij de server hoort.
-Alle scripts die niet in de game worden gebruikt , worden verwijderd.

TR

Ben benieuwd :eyes:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 13 Februari 2011, 12:01:44
Sorry , maar 39dll is niet veilig , te simpel om te kopieeren en te moeilijk voor beginners.
Lol? Ze moeten gewoon ook een eigen verificatie schrijven als ze het veiliger willen maken, zodat je niet met andere gmks in kunt loggen. En te moeilijk voor beginners? Beginners moeten van de 39dll af blijven, en trouwens, de HTTP DLL V2 is al honderd maal eenvoudiger, dus als je daar gewoon een goede tutorial bij maakt, oh wacht! Die bestaat al!

Ik ga 49dll schrijven , op basis van de dll 39dll.dll.
Lol? Je gaat alleen scripts veranderen. Dat noem ik niet '49dll schrijven' dat noem ik 'probeert scripts te schrijven die het gebruik van de 39dll moet bevorderen'. Zoals er al een script in zit 'stop_spel_online()', of iets in die trant. Niet nodig dus, want dat behoor je zelf te kunnen als je gevorderd genoeg bent voor het gebruik van de 39dll.

Dit word o.a veranderd:
Zozo, ben benieuwd ...

-Alle send en read scripts krijgen nederlandse , duidelijke namen.
Nee, handig, stel je voor, je moet alles in het Engels programmeren, dat is wel héél ingewikkeld. Maak dan ook scripts voor alle functies in GML in het Nederlands. Want een stuk code als:
GML:
if (speler_heeft_account() == true){
  instance_create(..);
}else{
  show_message("Je kunt niet inloggen");
}
Is wel lekker duidelijk natuurlijk, zo twee talen gemixt...

-Upc of hoe dat ook heet word verwijderd en tcp word verbinding.
Er is al een TCP/IP verbinding. Die gebruikt iedereen al die de tutorial ript . . .

-Server veranderd in een hoofd client , die ook gewoon mee kan spelen.
Dit maakt het alleen maar trager, dus een slecht idee.

-Er komt een standart moderator systeem in , wat controleerd via een mysql database.
Dat soort scripts bestaan al in Tutorials en Uitbreidingen en dan moet iedereen dus die jouw '49dll samenraapsel' wil gebruiken, gelijk ook een webserver gaan gebruiken met SQL? Nee, dat maakt het begrijpelijker voor beginners xD!

-Er word via de server gecontroleerd of de client wel echt bij de server hoort.
Sterkte. 100% hackbaar.

-Alle scripts die niet in de game worden gebruikt , worden verwijderd.
Lol? Hoe wil je dat realiseren?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: The RuneSnake op 13 Februari 2011, 12:15:45
Nou , ik verander writebyte in verstuurpakket.
En readbyte in leespakket.
Veel makkelijker , zo kan je in een script zonder // dingen al zien waar dan ongeveer over gaat.
En dat doe ik met veel meer codes.

Er staan wel 100 scripts , floatbyte , dubblebyte noem maar op.
Waar worden deze gebruikt?
Wel ermee zal ik zeggen , lijd alleen maar af.

TR


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 13 Februari 2011, 12:22:01
Nou , ik verander writebyte in verstuurpakket.
En readbyte in leespakket.
Veel makkelijker , zo kan je in een script zonder // dingen al zien waar dan ongeveer over gaat.
En dan verdient het het naampje '49' ? Hoe moeilijk kan het zijn om 'writebyte' te vertalen naar 'schrijf byte'? Want 'verstuurpakket' is een verkeerde vertaling. Als je het vertaalt, vertaal het dan correct! Maar het wordt er alleen maar onduidelijker op.

En dat doe ik met veel meer codes.
Jeej, en dan mogen wij zeker al die beginners op het forum weer eens gaan helpen met allemaal vragen met onbekende scripts? Nee, handig ... Je zorgt alleen maar voor een kloof tussen de mensen die het snappen en de mensen die het willen leren, zo kunnen wij hen niet helpen en leren zij het nooit. Behalve engines rippen :P

Er staan wel 100 scripts , floatbyte , dubblebyte noem maar op.
Waar worden deze gebruikt?
Ehm, om je engine te verbeteren? Je kunt vaak een betere manier vinden om je data te verzenden. Zo hoeft er minder data verzonden te worden en wordt je engine sneller en heb je minder lag bij je clients. Het verwijderen van deze scripts zorgt alleen maar voor minder ontwikkeling tot het maken van een efficiënte engine. Wat jij dus blijkbaar wél van plan bent, maar dan haal je dít juist weg omdat je zelf het nut niet ziet. Is niet zo slim, want als iemand wel slim genoeg is een efficiënte engine te willen schrijven . . . Oh wacht, dan downloadt hij gewoon deze tutorial :) Nvm ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: StefanJanssen op 13 Februari 2011, 12:23:01
Nou , ik verander writebyte in verstuurpakket.
En readbyte in leespakket.
Veel makkelijker , zo kan je in een script zonder // dingen al zien waar dan ongeveer over gaat.
En dat doe ik met veel meer codes.

Er staan wel 100 scripts , floatbyte , dubblebyte noem maar op.
Waar worden deze gebruikt?
Wel ermee zal ik zeggen , lijd alleen maar af.

TR
zo te horen heb je er geen verstand van...

Readbyte = Lees byte (lijkt me logisch
floatbyte is een andere hoeveelheid die je kan versturen
ff op wikipedia zoeken


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Janoot op 13 Februari 2011, 12:25:35
Nou , ik verander writebyte in verstuurpakket.
En readbyte in leespakket.
Veel makkelijker , zo kan je in een script zonder // dingen al zien waar dan ongeveer over gaat.
En dat doe ik met veel meer codes.

Er staan wel 100 scripts , floatbyte , dubblebyte noem maar op.
Waar worden deze gebruikt?
Wel ermee zal ik zeggen , lijd alleen maar af.

TR
Ehmm, leespakket? In het algemeen is het een pakket, maar zo niet.
Als je het al gaat veranderen moet je readbyte, leesnummer en writestring, schrijftekst noemen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TriLobyte op 13 Februari 2011, 13:09:43
Sorry , maar 39dll is niet veilig , te simpel om te kopieeren en te moeilijk voor beginners.
Ik ga 49dll schrijven , op basis van de dll 39dll.dll.
Dit word o.a veranderd:
-Alle send en read scripts krijgen nederlandse , duidelijke namen.
-Upc of hoe dat ook heet word verwijderd en tcp word verbinding.
-Server veranderd in een hoofd client , die ook gewoon mee kan spelen.
-Er komt een standart moderator systeem in , wat controleerd via een mysql database.
-Er word via de server gecontroleerd of de client wel echt bij de server hoort.
-Alle scripts die niet in de game worden gebruikt , worden verwijderd.

als je er nou ook een nieuwe tutorial bij maakt voor gm 8 zou dat wel vet zijn!
want deze is hier en daar een beetje veroudert ...

mvg,


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 13 Februari 2011, 13:41:30
Sorry , maar 39dll is niet veilig , te simpel om te kopieeren en te moeilijk voor beginners.
Ik ga 49dll schrijven , op basis van de dll 39dll.dll.
Dit word o.a veranderd:
-Alle send en read scripts krijgen nederlandse , duidelijke namen.
-Upc of hoe dat ook heet word verwijderd en tcp word verbinding.
-Server veranderd in een hoofd client , die ook gewoon mee kan spelen.
-Er komt een standart moderator systeem in , wat controleerd via een mysql database.
-Er word via de server gecontroleerd of de client wel echt bij de server hoort.
-Alle scripts die niet in de game worden gebruikt , worden verwijderd.
Laat ik het kort houden, je verspilt alleen je eigen tijd...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Official-neosoft op 13 Februari 2011, 16:00:06
nee joh, laat het hem proberen :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: boelensman1 op 13 Februari 2011, 16:08:04
Mijn commentaar:
-Alle send en read scripts krijgen nederlandse , duidelijke namen.
De namen die je voorstelde maakte de boel er iig niet veel duidelijker op, maar op zich is dit een goed idee voor de minder gevorderden onder ons.
-Upc of hoe dat ook heet word verwijderd en tcp word verbinding.
UCP is juist essentieel bij alles wat snel moet zijn, zoals bijv. shooters. Dat laatste stuk snap ik niet helemaal, je kunt nu ook al kiezen voor TCP, de meeste shooters doen het bijde. UDP voor de snelle pakketen, en TCP voor bijv. de chat.
-Server veranderd in een hoofd client , die ook gewoon mee kan spelen.
Wat heeft dit in hemelsnaam met de DLL die je gebruikt te maken? Dit is gewoon de code, en wat als je wel een centrale server wil? Bijvoorbeeld om een serverlijst te maken? Of om bijvoorbeeld de stats bij te houden?
-Er komt een standart moderator systeem in , wat controleerd via een mysql database.
De enige manier (zover ik dit weet) om dit zonder PHP te doen, en PHP zou niet in de dll zelf zitten, is om de GMSQL dll te herschrijven en gigantisch te versnellen (dat connecten duurt echt uren). Dit zou erg prettig zijn!
-Er word via de server gecontroleerd of de client wel echt bij de server hoort.
Zou dit niet alleen maar voor heel veel overhead zorgen? Ik bedoel, hoe vaak gebeurt het nu dat een gm-spel geprobeerd word te hacken?
-Alle scripts die niet in de game worden gebruikt , worden verwijderd.
Hoe wil je dit gaan aanpakken (nog afgezien van de vraag of je dit uberhaubt handig zou zijn). Hoe wil je een dll of script laten checken of een script word gebruikt?


Welke taal wil je die DLL eigenlijk in gaan schrijven? Ik vraag me namelijk een beetje af of je wel de benodigde kennis hebt.

Maar igg, veel succes!


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Martin Beentjes op 25 Februari 2011, 19:34:40
Zeer interessante tutorial, ik heb het nodig voor een spel wat ik maak voor GMW #28. Is deze dll gemaakt door Blackhawk of door iemand anders?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Jolie op 25 Februari 2011, 19:38:21
Het is gemaakt door 39ster. (Toepasselijke naam :P)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Naud1234 op 25 Februari 2011, 21:29:48
Het is gemaakt door 39ster. (Toepasselijke naam :P)
Ja. Dat betekent ook dat 49.dll nergens op slaat, want 39 was niet de 39e versie van de dll ofzo, maar gewoon een deel van de nickname van de maker. :P Therunesnake kan zijn dll wel Therune.dll noemen. (Omdat 39ster ook het laatste deel wegliet. :P)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 26 Februari 2011, 15:28:17
Niet veilig genoeg?

Dat ligt helemaal aan jezelf hoor, maarja.

TheRuneSnake; ik denk niet dat jij genoeg kennis hebt, sorry. Daarbij komt dat je argumenten waardeloos zijn.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 3 April 2011, 22:37:06
Oke, misschien een erg rare vraag, maar hoe maak ik een socket voor UDP?
of kan ik hiervoor gewoon tcplisten gebruiken?
geintje, udpconnect dus :p


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: The Thriforce op 24 April 2011, 22:52:53
Zet alsjeblieft die server is in een while (1) loopje dat breakt als er geen berichten meer zijn, nu maken een heleboel mensen die deze tut volgen die fout en dat is echt een grote fout.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 25 April 2011, 02:25:46
Blackhawk is allang niet meer actief, zal het hem eens op MSN vertellen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 25 April 2011, 09:23:19
Zou wel lame zijn als hij het doet, toen ik aantal verbeteringen postte op zijn forum (waar deze tut ook stond) werd mijn post simpelweg verwijderd... Misschien dat een moderator hier beter naar kan kijken


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 25 April 2011, 21:40:21
Beetje een dood doenertje is het :l

Ik ben het eens met Lucb1e, plaats jij a.u.b. je verbeteringen enz. en laat een mod het aanpassen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Huisje123 op 3 Mei 2011, 18:58:26
ik heb hulp nodig,

ik maak een game waarbij spelers een block in de wereld kunnen plaatsen (zoals minecraft ja)
maar hoe laat ik dat object verschijnen bij de andere clients.
ik heb 39.dll al werkend en kan andere spelers wel zien.

alvast bedankt,
bas


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: The RuneSnake op 3 Mei 2011, 19:16:14
Sorry , als beginner kan je beter niet aan 39dll beginnen.
Anders lees je even de tut op de eerste post en kopieer je het example niet.

TR


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Huisje123 op 3 Mei 2011, 19:22:41
Sorry , als beginner kan je beter niet aan 39dll beginnen.
Anders lees je even de tut op de eerste post en kopieer je het example niet.

TR
ik ben geen beginner
was aleen mijn oude acount kwijd dus heb een nieuwe aangemaakt

snap aleen de 39.dll niet goed


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blacksmid op 3 Mei 2011, 20:36:49
Het idee is dat je alles moet doen door berichtjes te sturen naar de andere clients. Wat je dus het best kunt doen is een berichtje sturen dat er op x,y een blok is gemaakt, en dan in de receive loop maak je een blokje aan als hij dat bericht binnen krijgt.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: niels15 op 3 Mei 2011, 21:43:51
@Blacksmid en Huisje123

Even een kleine aanvulling op het bericht van blacksmid
Naast de x en de y as zou je ook nog de z as moeten versturen ;)

Trouwens werk je met je spel mt d3d?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 3 Mei 2011, 22:18:33
@Blacksmid en Huisje123

Even een kleine aanvulling op het bericht van blacksmid
Naast de x en de y as zou je ook nog de z as moeten versturen ;)

Trouwens werk je met je spel mt d3d?
Waar heeft hij gezegd dat het 3d is?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Wout91 op 4 Mei 2011, 00:49:56
ik heb hulp nodig,

ik maak een game waarbij spelers een block in de wereld kunnen plaatsen (zoals minecraft ja)
maar hoe laat ik dat object verschijnen bij de andere clients.
ik heb 39.dll al werkend en kan andere spelers wel zien.

alvast bedankt,
bas
Dat is 3d maar ik weet niet of zijn spel ook 3d is...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: niels15 op 4 Mei 2011, 07:12:38
Owja XD nouja het was ook laat.
Maar als je spel 3D is wil je dan zeggen welke 3D je gebruikt?

En als he 2D is hoeft het niet ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dvdtv op 4 Mei 2011, 10:18:28
dat is niet zo moeilijk niels:
zorg dat als je het aanmaakt je een bericht verzend met de x de y en de z en welk blokje het is ;)

als je dan in de server dit doorsttur naa iedereen ;)

En dan laat je bij iedereen op deze

x en y en z het soort blok maken als de gene deed ;)

groetjes, Dennis


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Huisje123 op 4 Mei 2011, 10:19:24
Owja XD nouja het was ook laat.
Maar als je spel 3D is wil je dan zeggen welke 3D je gebruikt?

En als he 2D is hoeft het niet ;)

ik maak het 2d om verschilende redenen en zou graag een soort van tutorial hebben voor het toevoegen van paketen en versturen enzo...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: niels15 op 4 Mei 2011, 12:27:30
dat is niet zo moeilijk niels:
zorg dat als je het aanmaakt je een bericht verzend met de x de y en de z en welk blokje het is ;)

als je dan in de server dit doorsttur naa iedereen ;)

En dan laat je bij iedereen op deze

x en y en z het soort blok maken als de gene deed ;)

groetjes, Dennis

Ik zeg toch niet dat het moeilijk is? Je moet alleeb de basis van 39dll weten ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Huisje123 op 4 Mei 2011, 12:42:52
als het alemaal zo makelijk is kan iemand toch wel uitleggen hoe ik dit doe?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 4 Mei 2011, 12:54:52
nee, want dat heeft blackhawk al heel duidelijk voor je gedaan.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Huisje123 op 4 Mei 2011, 13:42:30
nee, want dat heeft blackhawk al heel duidelijk voor je gedaan.

nee dee hij niet

wat hij uitlegde was wel duidelijk maar hoe voeg ik meer toe....


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 4 Mei 2011, 13:46:25
kijk nog eens goed naar
GML:
writebyte(4) //Dit word het ID van het bericht, zodat de server 
             //kan zien wat hij uit het pakketje moet halen.
//In dit geval verzenden wij van alles (zie hieronder).
writestring(""+string(global.playername)+"",true) //Hierin verzenden wij de naam van de speler.
                                                  //In het komende spel verzenden we die maar 1
 //keer, maar dit is even om voor te doen.
                                             //True kan je beter altijd true laten, omdat
 //deze ervoor zorg dat je de lengte van de
 //string meezend. Aangezien wij hier meerdere
 //dingen in 1 pakket verzenden, is dit
 //noodzakelijk.
writeint(x) //Dit is de X positie van de speler
writeint(y) //Hmm... Wat zou dat zijn?
writeint(global.money) //Hier verzenden we de hoeveelheid geld van de speler.
Meer writeint's zijn altijd mogelijk, en daarna ontvang je ze met, zoek zelf maar :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Huisje123 op 4 Mei 2011, 14:40:29
kijk nog eens goed naar
(snip)
Meer writeint's zijn altijd mogelijk, en daarna ontvang je ze met, zoek zelf maar :P
dat snap ik maar ik krijg het niet werkend!


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 4 Mei 2011, 15:13:36
ik maak het 2d om verschilende redenen en zou graag een soort van tutorial hebben voor het toevoegen van paketen en versturen enzo...
Tutorial over het sturen van pakketjes (http://www.game-maker.nl/forums/topic,46739.0)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 4 Mei 2011, 15:15:56
Tutorial over het sturen van pakketjes (http://www.game-maker.nl/forums/topic,46739.0)

Gebruik & leer, maar kopieer met mate :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Huisje123 op 4 Mei 2011, 16:13:48
Tutorial over het sturen van pakketjes (http://www.game-maker.nl/forums/topic,46739.0)

ok dat hielp de data verstuurt nu.

maar op een of andere manier klopt dit niet:
    
        case 51:

        ID=readbyte();
        var_x=readshort();
        var_y=readshort();
        instance_create(var_x,var_y,obj_dirt)
        
        break;

dat zou toch de x en y moeten zijn die net ontvangen is????

(als ik er vaste x en y invoer bv: 50,25 werkt het wel)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 4 Mei 2011, 16:57:44
Hoe verstuur je het, hoe ontvang je het in de server?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Huisje123 op 4 Mei 2011, 17:16:42
Hoe verstuur je het, hoe ontvang je het in de server?
op de manier die in de tutorial staat.

in de server is het de goede x en y


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 4 Mei 2011, 18:31:32
... geef gewoon de directe codes die je gebruikt heb.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 4 Mei 2011, 18:35:48
Of ga niet voor de verandering een tutorial-topic onder lopen spammen maar maak gewoon een eigen topic aan...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Huisje123 op 4 Mei 2011, 18:36:20
... geef gewoon de directe codes die je gebruikt heb.
heb je personal msg gestuurt met de code
wil deze topic niet spammen ^^


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 8 Mei 2011, 16:55:55
Vindt ik ook. En, hier kun je hele mooie dingen mee doen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 8 Mei 2011, 19:29:31
Ja daar waren we allemaal al achter.

UPC is voor internet, tv en bellen.
TCP/IP is al de standaard verbinding.
'Alles wat niet gebruikt wordt' ^^


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: debeste95 op 10 Mei 2011, 19:29:06
Wow, dat dit topic na een jaar niet kijken, nog zo hoog staat.. :P Compleet waard, IMO. Na het lezen en veel testen dankzij deze tutorial, in combinatie tot de 3D tutorial hier op het forum, heb ik het 3D + online gedeelte al zó onder de knie, dat ik zonder veel moeite en online 3D spelletje heb. Natuurlijk nog geen waardig spel, maar het is puur herhalen en blijven testen, en je zal dit zeer snel onder knie hebben, Gewéldige tutorial ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 10 Mei 2011, 20:30:17
Compleet waard? Er zitten designfouten in de engine, blackhawk update zijn links niet, en hij negeert alle commentaar compleet (de enige reactie die ik kreeg op opbouwende kritiek op een eigen forum van hem waar dit ook stond, was dat mijn reactie verwijderd werd).


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: niels15 op 10 Mei 2011, 20:36:38
Blafkhawk reageert niet meer omdat hij denk ik niet meer online komt? Want in zijn profiel staat laatst online: 12 november.

Niels15


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 10 Mei 2011, 20:48:11
(de enige reactie die ik kreeg op opbouwende kritiek op een eigen forum van hem waar dit ook stond, was dat mijn reactie verwijderd werd).
Wel degelijk actief, maar oost-indisch doof.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: niels15 op 10 Mei 2011, 20:50:15
Op dat ndere forum wel maar hier niet. Wel raar dat hij tips verwijderd had hij die fout dan ook nog aangepast?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 10 Mei 2011, 21:02:57
Je bedoelt dat onderste deel? Zal toen nog wel actief geweest zijn. Downloadlink is volgensmij door matrebatre gedaan
Citaat
« Laatste verandering: 01 Maart 2011, 09:55:21 door Matrebatre »


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: debeste95 op 11 Mei 2011, 07:20:12
Compleet waard? Er zitten designfouten in de engine, blackhawk update zijn links niet, en hij negeert alle commentaar compleet (de enige reactie die ik kreeg op opbouwende kritiek op een eigen forum van hem waar dit ook stond, was dat mijn reactie verwijderd werd).
Luc.. Ik heb met doorzetting en een greintje nadenken mijn kennis over 39DLL bemachtigd. Ik denk dan ook dat je, of je het nou begrijpt of niet, blij moet zijn met zo'n goede tutorial. Als je het na vaak lezen nog niet zou snappen, en je per se díe bepaalde example nodig hebt (Die er overigens ook genoeg staan op het GMC), je duidelijk geen 39DLL zou moeten proberen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 11 Mei 2011, 07:50:33
Toch lijkt het mij handiger als een example gewoon goed werkt. Maar je hebt gelijk dat het hiermee zou moeten lukken, misschien ben ik wat te perfectionistisch.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: The Thriforce op 11 Mei 2011, 20:30:34
Nou, sorry hoor, maar dat de server maar 1 berichtje per step ontvangt is gewoon 1 grote faal.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: The RuneSnake op 12 Mei 2011, 15:11:02
Waarom sluiten jullie dit topic niet?
De tut klopt niet , http dll 2 is vele malen sneller en veel makkelijker te begrijpen.
Het example is ook rommel , het gaat erg sloom.

TR


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 12 Mei 2011, 15:32:33
Waarom sluiten jullie dit topic niet?
De tut klopt niet , http dll 2 is vele malen sneller en veel makkelijker te begrijpen.
Het example is ook rommel , het gaat erg sloom.

TR

Die is niet sneller.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 12 Mei 2011, 16:27:30
Maar wel betrouwbaarder:
Bij de HTTP DLL 2 is de bufferbug die wel in de 39DLL zit er niet, dus in dat opzicht lijkt hij me beter. Verder kun je er ook gelijk HTTP requests en dergelijke mee doen, zodat je dingen als inlogsystemen gemakkelijk kunt maken. Al die kracht, in één DLL. Ook geen downloaddll meer nodig voor een autoupdater, kan allemaal met die ene DLL :D!

Geweldig klinkt dat toch? En zelf vind ik het nog begrijpelijk ook, het is over het algemeen hetzelfde als de 39DLL. Je kunt dezelfde structuur maken voor het verzenden, doorsturen en ontvangen van data ;)!

Maar buiten dat ben ik het eigenlijk wel oneens met therunesnake. De tutorial is zeker goed genoeg, alleen het kan inderdaad beter.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 19 Mei 2011, 14:10:30
maarehm deze tut is uit 2008 ofzo? echt lang geleden in elk geval.
Als ik de tijd / zin ervoor zou hebben zou ik hem opnieuw schrijven (met name omdat ik nu wel wat meer weet van 39DLL )

Maar thats not gonna happen i guess.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 19 Mei 2011, 14:14:33
Maar thats not gonna happen i guess.
En gewoon iets simpels als een whileloop toevoegen voor het ontvangen van alle verzonden berichten? Zo'n kleine aanpassing kun je toch wel toevoegen? Dat is niet al te veel werk en helpt de mensen die de tutorial volgen ook nog eens met het correct leren hoe het werkt.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 19 Mei 2011, 14:23:01
Eigenlijk zou ik compleet opnieuw moeten beginnen. Deze structuur is niet geheel logisch namelijk... Een goeie basis zodat de lag 0,0 is en de hackbaarheid tegen 0,0 aan zit


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: martiener1 op 19 Mei 2011, 14:25:24
Misschien wil iemand je wel helpen, dan is het in eenkeer een stuk minder werk.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 19 Mei 2011, 14:27:06
Niemand die je tegenhoudt om compleet opnieuw te beginnen. Alleen als je in een eerdere post aangeeft dat je daar niet echt zin in hebt, dan zijn kleine aanpassingen misschien een betere optie.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 23 Mei 2011, 14:53:57
En het is slechts een tutorial. Dat betekend dat je hiervan kan leren hoe het werkt en zelf dus iets mooiers maakt. Probleem is dat mensen hier een tutorial zien als -> download GMK -> bewerk sprites -> wil iets extra's -> snap het niet -> *** tutorial -> *** spel

Een paar hier snappen het wel en die leren via de TUTORIAL hoe de 39DLL werkt en maken hun eigen game :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 23 Mei 2011, 15:54:55
Maar een notitie dat het verstandig kan zijn om een while-loop erin te zetten om zo alle pakketjes in één step binnen te halen in plaats van verspreid over verschillende steps, kan toch geen kwaad? Daar zou het juist een tutorial voor moeten zijn, die moet je leren hoe je dingen 'goed' moet doen. Halfbakken werk behoort eigenlijk niet in een tutorial, want dan leer je het niet goed na het doornemen ervan.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 24 Mei 2011, 08:23:17
Die while loop zit er toch in of zie ik dat verkeerd?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 24 Mei 2011, 08:25:13
Dat zie je verkeerd. Probeer je client/server example eens uit met 2 clients en spam 20 chatberichten ofzo. Je zult zien dat er steeds meer vertraging in zit, en als ik me niet vergis mist er in de server een while (anders is het in de client).


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: The Thriforce op 24 Mei 2011, 14:52:55
Die while loop zit er toch in of zie ik dat verkeerd?
Die while loop zit alleen in de client, niet in de server.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 24 Mei 2011, 20:38:40
Eigenlijk zou ik compleet opnieuw moeten beginnen. Deze structuur is niet geheel logisch namelijk... Een goeie basis zodat de lag 0,0 is en de hackbaarheid tegen 0,0 aan zit
Ik denk haast dat je dan beter een nieuwe tut voor http2dll zou kunnen maken, aangezien je daar veel meer mee kan en het hetzelfde werkt. (alleen andere scriptnamen)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: niels15 op 24 Mei 2011, 21:27:43
Waarom de tut die in december 2010 geplaatst van http2.dll nog een keer overschrijven?

Ik denk eerder dat deze er meer aan toe is ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Longblood op 24 Mei 2011, 22:51:22
Ik heb nog een server en client met een while-loop in de server, waar de uitlog bug van is opgelost (ga ik vanuit althans), bij het uitvallen van de server eerst geprobeerd wordt opnieuw verbinding te maken voordat een error weergegeven wordt en een betere opmaak van codes (zonder commentaar, engels objectnamen en variabelen, Nederlandse teksten: Je bent succesvol ingelogd etc.), als men daar nog interresse voor heeft, dan plaats ik een link :) (Ben ze nog aan het verbeteren)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 25 Mei 2011, 06:19:36
Tuurlijk!
Daardoor komt die uitlog bug!
De client verstuurd dat ie is uitgelogd, maar als de server nog een lading berichten open heeft staan duurt het een poosje voordat dezen verwerkt zijn, en dan is de client al afgesloten en de verbinding foetsie.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Longblood op 25 Mei 2011, 09:50:21
Idd, ik heb dat dus zo opgelost:
1. de client stuurt naar de server dat hij wil uitloggen
2. de server ontvangt dit bericht en meld het aan de andere clients
3. de server stuurt een bericht terug naar de client die wil uitloggen (een bevestiging)
4. als de bevestiging is aangekomen sluit hij af.

Ik zal een zipje posten in de edit :)

Edit: http://www.speedyshare.com/files/28634233/client_server.zip
Hoop dat jullie er wat aan hebben ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 25 Mei 2011, 10:09:17
Of je laat de server checken wie er nog verbonden is.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 25 Mei 2011, 12:38:53
Jah ik denk dat ik toch maar eens een gruwelijke engine ga schrijven voor HTTP2, met auto-updater, antilag, antihack, inlog / registreer mogelijkheden, en dat soort shit


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 25 Mei 2011, 15:13:06
Wat ik dan zou doen is er een OS wip van maken ipv een tut.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 26 Mei 2011, 10:31:19
@redblood, een OS in gamemaker? :eyes:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blacksmid op 26 Mei 2011, 12:25:02
De tutorial overnieuw maken is een goed idee, maar waarom wil iedereen in een keer met http dll2 gaan werken?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 26 Mei 2011, 13:20:20
Omdat dat blijkbaar makkelijker is.

Ik zeg nog steeds, doe gewoon een beetje moeite als je online games wilt maken.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 26 Mei 2011, 16:02:40
En omdat het beter is (zit een bug die 39dll wel heeft niet in), zoekfunctie voor welke bug.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 26 Mei 2011, 16:20:45
@redblood, een OS in gamemaker? :eyes:
bedoel Open Source, os is idd iets heel anders :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 26 Mei 2011, 20:55:18
Nee dan zou ik toch gaan voor een tutorial, dat is de eerste plek waar ik zou zoeken ("hmm een tutorial over antihack, laat ik eens tussen niet-afgemaakte games gaan zoeken" :P).


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 27 Mei 2011, 14:48:37
Hallo allemaal,

Kan iemand me kort vertellen hoe ik ervoor zorg dat Gamemaker de dll en scripts pas inlaad in een tweede room?
Dat er in de eerste room een Button staat, die je doorstuurt naar room 2 als je er op klikt?
Als je gamemaker de ubercontroller niet vanaf het begin van het spel laat uitvoeren,
krijg je errors met het drawen, omdat gamemaker de "Game Start" events alleen maar bij het begin van het spel uitvoert.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 27 Mei 2011, 15:08:25
Je geeft antwoord op je eigen vraag nu.

Ze worden in een game-start event uitgevoerd, verander dat dus.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 27 Mei 2011, 21:04:04
Maar als ik het in bijvoorbeeld het create event zet, begint hij met het draw event. De draw event staat wel onderaan in de lijst. Ik krijg meteen errors met het drawen, met bijvoorbeeld dat hij variabelen niet kan vinden.
Ik zal het morgen wel nog een keer opnieuw proberen.
Toch bedankt  :eyes:


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 28 Mei 2011, 02:00:18
Komop man,

Je geeft weer antwoord op je eigen probleem.


'Met bijvoorbeeld dat hij variabelen niet kan vinden' ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 28 Mei 2011, 12:24:31
Ik heb het opnieuw geprobeerd, maar Gamemaker blijft met deze error komen:
Code:
___________________________________________
ERROR in
action number 1
of Draw Event
for object obj_ubercontroller:

Error in code at line 27:
   draw_text(obj_speler.x-15,obj_speler.y-25,global.username);
                        ^
at position 23: Unknown variable x

Wat kan ik dan doen om dit te voorkomen?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 28 Mei 2011, 12:28:57
Zorgen dat obj_player bestaat zodra dat wordt uitgevoerd, of dus voordat je het uitvoert controleren of obj_player wel bestaat


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: GameeMaker op 28 Mei 2011, 12:37:38
Ok, ik heb in de step event het stukje bijgeschreven dat de "Obj_speler" moet bestaan. Als deze niet bestaat, geeft het een message terug.

De client geeft na het inloggen ook de message terug, dus ik ga ervan uit dat er geen speler wordt gemaakt bij de "ubercontroller". Ik zal kijken of ik het in de create event kan plaatsen :)

Bedankt  :eyes:

EDIT: Hmpf, nu maakt hij de object aan in de client, en sta ook in het spel, maar de ping loopt meteen op naar 8000, en krijg timeout message...
krijgt hij geen informatie van de server meer?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: mori op 30 Juni 2011, 15:14:41
ik heb een beetje een hekel aan DLL dus ik zocht naar een .gex, ik heb wel iets gevonden maar ik weet niet of het de goede is.
download link (http://updo.nl/file/5c74c7e2.zip)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Maartenz op 30 Juni 2011, 15:25:35
Als je een gex wil kan je beter HTTP DLL 2 gebruiken. Die is met de zoekmachine wel te vinden.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: mori op 30 Juni 2011, 15:27:40
wat is sneller 39dll of HTTP DLL 2? en makkelijker te begrijpen?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Maartenz op 30 Juni 2011, 15:30:09
HTTP DLL 2 is sneller en werkt volgensmij het zelfde.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blacksmid op 30 Juni 2011, 20:51:04
Zover ik weet zijn ze bijde even snel hoor.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 30 Juni 2011, 21:25:44
39dll is net een klein tikkie langzamer, merk je niks van. Het grootste verschil is dat 39dll meer is gemaakt om games te maken, en http2dll is meer om gewoon data mee te versturen. Daardoor is http2dll makkelijker te begrijpen als je vanaf de grond af aan opbouwt, en 39dll als je een example aanpast (vind ik).
Verder een voordeel met http2dll is dat je geen andere dll nodig hebt als je een autoupdater wilt inbouwen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: mori op 30 Juni 2011, 23:04:33
online multyplay is toch alleen data verzenden naar de server van wat je doet en data ontvangen wat de anderen doen, of ben ik nou dom?

ik vroeg het voor mijn priemgetallen vinder dus dat is alleen maar data dus ik ga HTTP DLL 2 gebruiken, nog bedankt voor de info.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Wout91 op 3 Juli 2011, 19:13:17
Verder een voordeel met http2dll is dat je geen andere dll nodig hebt als je een autoupdater wilt inbouwen.

Met de nieuwste versie van 39dll (op gmtoolbox) heeft 39ster er een download script bijgedaan.  ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 3 Juli 2011, 22:52:53
39dll is net een klein tikkie langzamer, merk je niks van. Het grootste verschil is dat 39dll meer is gemaakt om games te maken, en http2dll is meer om gewoon data mee te versturen. Daardoor is http2dll makkelijker te begrijpen als je vanaf de grond af aan opbouwt, en 39dll als je een example aanpast (vind ik).
Verder een voordeel met http2dll is dat je geen andere dll nodig hebt als je een autoupdater wilt inbouwen.

39dll is sneller dan http2dll als het gaat om multiplayer van client->server->client.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: mori op 3 Juli 2011, 22:54:59
miss leer ik ze allebij ;b


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: roseslayer op 4 Juli 2011, 10:54:04
moet je alle codes nu in de gmk van standaard39dll aanpassen of niet?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: mori op 4 Juli 2011, 10:57:24
volgens mij niet want als ik het goed heb laden die de 39dll functie's zodat je ze kunt toepassen in je game


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: roseslayer op 4 Juli 2011, 11:08:38
moet je dan alles kopieren en plakken in de server of staat alles er al in als je het programma download plus alle functies?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: thoot-je op 4 Juli 2011, 15:04:11
als je dat soort vragen stelt is het misschien maar beter niet te beginnen met 39dll


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: redblood op 6 Juli 2011, 11:31:08
ik zie niet waarom niet, tooth-je, en @roseslayer, download gewoon de zip en kijk eens wat erin zit.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 6 Juli 2011, 14:47:40
Laat me één ding zeggen:
Er aan beginnen is de beste manier om het leren, want je zult zien hoe moeilijk het is in het begin. Ik heb in het begin de tutorial gevolgd, dat ging totaal niet :P Daarna gewerkt in de examples. Het kwartje moet gewoon vallen, het is pure logica. En als je weet hoe je er overweg mee moet is het leuk :)

Ik zeg: Downloaden die zip, openen die GMK's, probeer het te begrijpen en bouw er iets nieuws in :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: pinda_kaas op 2 Augustus 2011, 16:20:45
Ehh als ik de Dll include in gm8 en dan de script gebuik dan geef gm een error van script bestaat niet etc.
Hoe komt dat?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 2 Augustus 2011, 16:33:28
Ligt aan de instellingen bij het geïnclude bestand, en aan de geïmporteerde scripts, en de bestandsnaam van het geïnclude bestand, de letterlijke foutmelding, etcetera. Met de informatie die jij geeft, kunnen we slechts speculeren wat het probleem zou kunnen zijn.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: pinda_kaas op 2 Augustus 2011, 16:47:37
Ligt aan de instellingen bij het geïnclude bestand, en aan de geïmporteerde scripts, en de bestandsnaam van het geïnclude bestand, de letterlijke foutmelding, etcetera. Met de informatie die jij geeft, kunnen we slechts speculeren wat het probleem zou kunnen zijn.
Hij geeft geen error alleen als ik in de texteditor het volgende typ:
GML:
writeint
dan zegt hij onder in unkown fucntie or script


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 2 Augustus 2011, 16:50:12
En je hebt alle scripts uit de example geëxporteerd en vervolgens weer geïmporteerd in je eigen spel?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: pinda_kaas op 2 Augustus 2011, 17:02:28
Ja alles...
Maar ik ga hem nog eens een paar keer includen enzo...


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 2 Augustus 2011, 17:03:31
Het gaat bij de scripts om het importeren hè, dus dat ze onder de map Scripts komen te staan. Niet includen zodat ze bij Included Files komen te staan. Dat dat even duidelijk is ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 3 Augustus 2011, 18:14:31
+ Je hoeft de dll niet in de included list te hebben. Het wordt extern ingeladen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: ericlegomeer op 3 Augustus 2011, 18:16:08
+ Je hoeft de dll niet in de included list te hebben. Het wordt extern ingeladen.
Dan moet hij wel in de gamemap staan, als hij niet in de gamemap staat, dan moet hij geïnclude worden zodat het spel hem automatisch bij het starten van het spel in de gamemap zet ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 3 Augustus 2011, 18:17:44
Dat klopt :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Hermen op 10 December 2011, 18:01:05
Hey,

Ik weet niet of dit topic nog actief is, maar dit is echt super handig, zit supermakkelijk in elkaar door de .dll en is echt makkelijke te begrijpen.
Ik loop alleen met 1 ding vast, wat eigenlijk komt niet door deze dll maar door gamemaker.
Je hebt de algemene procedure voor het verlaten van de server multiplayerleaveiets. Het probleem is dat als er geen server aanstaat. Dat er dan geen Global.MyId bestaat. Ik heb met simpele boolean switches dit proberen te verhelpen. maar dan kom ik in de knoop met de rest van de logica. ik krijg geen error maar het spel draait opeens wel. Je krijgt dan een timeout want je bent niet connected naar de server; dat is natuurlijk logisch.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 10 December 2011, 19:24:27
Ik snap je niet 100% denk ik. Maar je kunt in het create event van je controller gewoon
GML:
global.myid = -1;
zetten.

-edit-
Oh wacht je krijgt geen errors.

Als er geen server is, is het toch logisch dat je een time-out krijgt?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Hermen op 10 December 2011, 19:51:38
Nou de logica werkte niet helemaal maar ik heb het opgelost. en het gaat niet om de timeout het gaat om een runtime error.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 10 December 2011, 19:59:25
Nou de logica werkte niet helemaal maar ik heb het opgelost. en het gaat niet om de timeout het gaat om een runtime error.
Als je denkt dat de oplossing nog nuttig zou kunnen zijn voor anderen is het misschien handig om deze ook te posten hier :)

Overigens, nog welkom op het forum! ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: smokebombx op 11 December 2011, 19:30:40
WOW echt een geweldige tutorial! Echt bedankt man!  |8D

Ik heb alleen wel een klein foutje gevonden wat nogal grote gevolgen heeft voor een spel. In het server.gm6 bestand (niet die van de game) bij object client in de step event staat:

GML:
//Kijk of er een pakketje binnenkomt
messagesize = receivemessage(tcp);
//Als er geen bericht is binnengekomen, stoppen we met dit scriptje.
if (messagesize <=0) break;

Hier ben je  1 regeltje vergeten.

GML:
//Kijk of er een pakketje binnenkomt
while (true) {
messagesize = receivemessage(tcp);
//Als er geen bericht is binnengekomen, stoppen we met dit scriptje.
if (messagesize <=0) break;

En natuurlijk een accolade (dit ding }  :)) helemaal aan het eind van het script.

Zonder dit regeltje ontstaat er door te praten toenemende lag.
Ik hoop dat je het een keertje aanpast, want dan is hij echt helemaal PERFECT!  ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 11 December 2011, 21:13:16
Goed gevonden smokebombx, maar die bug is inmiddels 100x gereport en blackhawk lijkt er niks meer om te geven... :/


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: smoothcriminal op 11 December 2011, 21:14:28
Of hij heeft geen tijd om het te editen?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 11 December 2011, 21:20:01
Hij heeft tijd om een nieuwe website voor GM:HTML5 op te zetten lijkt het. Je zou denken dat een regel code toevoegen niet zoveel werk is...

Overigens heb ik de bug maanden gelden op een eigen forum van hem ook gereport (hij had de tutorial daarheen gekopiëerd), samen met nog wat verbeterideeën. Die post heeft hij toen simpelweg verwijderd en er is verder niks mee gedaan. Zeker dat hij het zo druk heeft dat hij in geen maanden een gaatje kan vinden om dit even aan te passen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: digidi op 11 Januari 2012, 20:46:39
Goeie tut
maar heb een vraag je

Ik heb een speler en wil dat die een garnaat kan gooien
De andere spelers zien hem niet  :?
(ik heb de example van Rob Quist AKA BlackHawk gebruikt)
Dit zijn de codes:


Dit is in de client.exe als je rechtermuis klikt in de speler
GML:
var b;
b=instance_create(x,y,obj_grenade)
b.direction=point_direction(x,y,mouse_x,mouse_y)
b.speed=15
gx=b.x
gy=b.y
gdir=b.direction
clearbuffer();
writebyte(9);
writeint(gx);
writeint(gy);
writeint(gdir);
sendmessage(global.clienttcp);


Dit staat in server.exe in ubercontroller
GML:
case 9:
gx=readint();
gy=readint();
gdir=readint();
clearbuffer();

writebyte(17);
writeint(gx);
writeint(gy);
writeint(gdir);
with(obj_client)
{
    sendmessage(tcp);
}
break;


Dit staat in client.exe in ubercontroller
GML:
  case 17:
var g;
gx = readint()
gy = readint()
gdir = readint()
g=instance_create(gx,gy,obj_grenade);
g.direction=gdir
break;

Weet iemand wat er fout gaat of wat er nog bij moet??
Alvast dank


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: LostWarrior op 11 Januari 2012, 22:40:04
je moet de sprite die hij heeft ook versturen (niet de sprite_index want dat geeft problemen) en die dan bij de andere spelers drawen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 11 Januari 2012, 23:03:37
Dat is dus niet waar.
De scripts zien er prima uit. Zet eens in het create event van de granaat een show_message o.i.d.?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: digidi op 12 Januari 2012, 10:36:40
Sprites hoef je toch niet te versturen want als het pakketje aankomt bij de andere clients, wordt obj_grenade aangemaakt met de sprite
of moet dat toch

G-Maker-T dat is een goeie ga het straks testen ;)

Edit

de andere clients krijgen de message ook dus de grenade wordt wel doorgezonden maar is nog onzichtbaar


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dvdtv op 12 Januari 2012, 15:21:43
nee maar deze code is raar

GML:
var b;
b=instance_create(x,y,obj_grenade)
b.direction=point_direction(x,y,mouse_x,mouse_y)
b.speed=15
gx=b.x
gy=b.y
gdir=b.direction
clearbuffer();
writebyte(9);
writeint(gx);
writeint(gy);
writeint(gdir);
sendmessage(global.clienttcp);

waarom zo veel.

waarom doe je niet zo iets:
left pressed:
GML:
clearbuffer();
writebyte(9);
writeint(x);
writeint(y);
writeint(dir);
sendmessage(global.clienttcp);

server
GML:
case 9:
var xx, yy, dir;
xx=readint();
yy=readint();
dir=readint();
clearbuffer();

writebyte(17);
writeint(xx);
writeint(yy);
writeint(dir);
with(obj_client)
{
    sendmessage(tcp);
}
break;

client:
GML:
  case 17:
var xx, yy, dir;
xx = readint()
yy= readint()
dir = readint()
i=instance_create(xx,yy,obj_grenade);
i.direction=dir
i.speed = 15
break;

Nu verzend je veel minder. + bij iedereen word tegelijk de kogel gecreate. En iedereen ziet het zelfde?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 12 Januari 2012, 15:26:23
Merk ook op dat als jij een granaat gooit en je maakt hem voor jouw al client-side aan, hij dubbel wordt aangemaakt omdat het pakketje bij jou ook nog aan komt.
Zorg dat de granaat even zijn x, y coördinaten in een message laat zien zodat je zeker weet dat ie ook op de goede plek wordt aangemaakt. Ook zet je de speed na je het pakketje ontvangt niet op 15, terwijl je dat wel bij het gooien doet.
Als dit allemaal niet werkt moet je i.p.v. ints even shorts gaan proberen.

En nee, als obj_granaat standaard een sprite_index heeft hoef je het niet te versturen.

En dan nog een misschien wat domme vraag die je jezelf moet stellen: Staat visible aangevinkt in het object? Ik neem aan van wel aangezien je zei 'dat anderen hem niet zien'. Daar haal ik uit dat jij de granaat wel ziet.

@Dvdtv;

Je verzend niks minder hoor ^^


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dvdtv op 12 Januari 2012, 16:49:13
@Dvdtv;

Je verzend niks minder hoor ^^

daar heb je gelijk in, Zag ik ook later. maar je krijgt zo niet de dubbel graneet. Plus niet dat je bij de ene al ontploft en bij de ander niet. En je hebt niet deze rare vars die je verwijst naar elkaar...

GML:
var b;
b=instance_create(x,y,obj_grenade)
b.direction=point_direction(x,y,mouse_x,mouse_y)
b.speed=15
gx=b.x
gy=b.y
gdir=b.direction
clearbuffer();
writebyte(9);
writeint(gx);
writeint(gy);
writeint(gdir);
sendmessage(global.clienttcp);

want waarom zet je hier eerst nog naar gx enzo?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: LostWarrior op 12 Januari 2012, 18:19:59
Merk ook op dat als jij een granaat gooit en je maakt hem voor jouw al client-side aan, hij dubbel wordt aangemaakt omdat het pakketje bij jou ook nog aan komt.

Dit had ik ook maar dan voor kogels. Dit heb ik opgelost door de username van de speler die het stuurt mee te sturen. Als je als client dan een pakketje van een kogel aanmaken ontvangt checkt hij eerst of het jou username is, en zoniet dan maakt hij de kogel.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 12 Januari 2012, 18:30:43
Dit had ik ook maar dan voor kogels. Dit heb ik opgelost door de username van de speler die het stuurt mee te sturen. Als je als client dan een pakketje van een kogel aanmaken ontvangt checkt hij eerst of het jou username is, en zoniet dan maakt hij de kogel.

Dat moet je dus echt niet doen!
Dat kost alleen maar te veel verkeer.
Stuur de username niet mee, en creëer de kogel niet client sided, maar alleen bij het ontvangen van het pakketje.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: digidi op 12 Januari 2012, 19:01:01
ik heb de speed van de grenade bij het create event gezet en nu werkt het :D
Thanks iedereen! :)

Maar idd de garnaat gooi je dubbel :(


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dvdtv op 12 Januari 2012, 21:05:17
Doe het zoals i kzei ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 15 Januari 2012, 22:58:20
Hij heeft tijd om een nieuwe website voor GM:HTML5 op te zetten lijkt het. Je zou denken dat een regel code toevoegen niet zoveel werk is...

Overigens heb ik de bug maanden gelden op een eigen forum van hem ook gereport (hij had de tutorial daarheen gekopiëerd), samen met nog wat verbeterideeën. Die post heeft hij toen simpelweg verwijderd en er is verder niks mee gedaan. Zeker dat hij het zo druk heeft dat hij in geen maanden een gaatje kan vinden om dit even aan te passen.

Sorry, het spijt me heel erg.

Even een paar redenen:
1. Ik ben niet meer zoveel actief met Game Maker
2. Ik heb game maker 6.1 niet meer (dus krijgen jullie geen .gm6 maar een .gmk als ik het zou aanpassen)
3. Ik heb het inderdaad heel druk met andere dingen
4. Als het zo simpel is, waarom doe je het zelf dan niet even?
5. Ik kijk bijna nooit meer op dit forum.
6. Dit example is bijna 3 of 4 jaar oud
7. Welke post heb ik verwijderd als ik vragen mag?
8. De keren dat ik hier kijk ga ik niet alle posts doorlezen in dit topic. Volgensmij is het het meest bekeken / meest gereageerde topic op game-maker.nl ooit. (er zijn een tijd terug al 30 pagina's aan reacties verwijderd door een mod)
9. Heel misschien gooi ik ooit de code van Shoot 'm Up nog eens online.
10. Wees blij dat er uberhaubt een example is :) Volgensmij heb ik er honderden mensen mee geholpen.

Groetjes,

Rob


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dvdtv op 16 Januari 2012, 05:58:38
Sorry, het spijt me heel erg.

Even een paar redenen:
1. Ik ben niet meer zoveel actief met Game Maker
2. Ik heb game maker 6.1 niet meer (dus krijgen jullie geen .gm6 maar een .gmk als ik het zou aanpassen)
3. Ik heb het inderdaad heel druk met andere dingen
4. Als het zo simpel is, waarom doe je het zelf dan niet even?
5. Ik kijk bijna nooit meer op dit forum.
6. Dit example is bijna 3 of 4 jaar oud
7. Welke post heb ik verwijderd als ik vragen mag?
8. De keren dat ik hier kijk ga ik niet alle posts doorlezen in dit topic. Volgensmij is het het meest bekeken / meest gereageerde topic op game-maker.nl ooit. (er zijn een tijd terug al 30 pagina's aan reacties verwijderd door een mod)
9. Heel misschien gooi ik ooit de code van Shoot 'm Up nog eens online.
10. Wees blij dat er uberhaubt een example is :) Volgensmij heb ik er honderden mensen mee geholpen.

Groetjes,

Rob

Idd je hebt er heel veel mensen mee geholpen ja. Maar wie weet als we het als forum op kunnen lossen de problemen dan kunnen we dat door een mode hier neer laten zetten. ;)_


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 16 Januari 2012, 13:50:20
7. Welke post heb ik verwijderd als ik vragen mag?
Weet ik veel welk forum ik jaren geleden constructieve kritiek op geplaatst heb, was het niet iets als DukeForum ofzo? Iig daar was je admin en had je de tutorial ook geplaatst, aangezien je hier al tijden niet meer gereageerd had, had ik mijn reactie daar maar gepost. Een paar dagen later was het volgensmij verwijderd met een forward naar een nieuw forum o.i.d. en mijn post was niet gekopiëerd daarheen.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: bennie321 op 16 Januari 2012, 16:11:42
heey, ik heb dit uitgeprobeert, en ik loop vast bij deze tut :( ik heb het opgestart en wil nu connecten, maar dan krijg ik een bericht van dat de server offline is. Doe ik iets verkeerd?

PS: het is uitgepakt + staat allemaal in 1 mapje ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 16 Januari 2012, 16:15:16
@Bennie; Het is uitgepakt? Bedoel je dat je de example hebt uitgepakt?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: bennie321 op 16 Januari 2012, 17:03:02
@Bennie; Het is uitgepakt? Bedoel je dat je de example hebt uitgepakt?

ja, alles staat gewoonin een mapje op bureau blad :) maar hij blijf zeggen dat ik geen verbinding kan maken :S terwijl ik server en client heb geopend :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 16 Januari 2012, 18:00:07
Vaag, ip goed ingestelt enzo?
Moet wel want het is de example ^^


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 16 Januari 2012, 18:32:55
Weet ik veel welk forum ik jaren geleden constructieve kritiek op geplaatst heb, was het niet iets als DukeForum ofzo? Iig daar was je admin en had je de tutorial ook geplaatst, aangezien je hier al tijden niet meer gereageerd had, had ik mijn reactie daar maar gepost. Een paar dagen later was het volgensmij verwijderd met een forward naar een nieuw forum o.i.d. en mijn post was niet gekopiëerd daarheen.

Dat zou kunnen.. Die heb ik iets van 3 jaar geleden offline gehaald ja. Verhuisd naar www.programmerslounge.nl . Als je de tijd kunt vinden, plaats de post eventjes opnieuw, en ik zal kijken of ik een nieuwe GMK online kan zetten.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 16 Januari 2012, 20:22:32
Hooi

Ik ben nu ook met deze DLL bezig, maar ik heb een probleem. Ik bouw mijn engine helemaal zelf, vanaf de grond. Nou zit ik met het probleem, dat het spel soms vastloopt. Het is niet groot, alleen de benodigde dingen voor een movement engine zitten erin.

Ik heb een windows 7 pc, en bij de example die ik dan toch maar even had gedownload om te checken of het daarbij ook was, liep hij ook vast. Iemand een idee?

Mvg, Daantjuh001


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 16 Januari 2012, 23:16:34
Het spel loopt echt compleet vast?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 17 Januari 2012, 06:26:04
Hmm, nou heb ik volgens mij het idee dat dit alleen gebeurd als een client de server joint, dan slaan ze beiden vast, ook in de example. Compleet ja.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Jolie op 17 Januari 2012, 06:44:34
Dan blijft er denk ik ergens een loopje steken.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 17 Januari 2012, 11:41:40
Dat gok ik ook ja, als er een player joint wordt er in de example geloopt door global.players tot ie een lege plek vind.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 17 Januari 2012, 13:31:44
Hm, daar zeg je me wat. Die global.players. Erm, ik snapte het al niet echt, kan iemand dat misschien uitleggen, waar die voor is? Ik gok voor de idcounter?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 17 Januari 2012, 14:14:06
global.players is de array waarin alle client objecten in bijgehouden worden d.m.v. een id.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 17 Januari 2012, 14:30:25
Dus 'k zou ook gewoon een IDcounter maken, want ik wil toch geen maxplayers :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 17 Januari 2012, 14:38:10
Ja maar je wilt toch de spelers bij kunnen houden?
Kwa positie enz.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 17 Januari 2012, 14:40:54
Eh, ja, das waar. Erm, de perm, even denken...
Kan je op msn komen? ^^


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 17 Januari 2012, 15:16:54
Voor de rest;

Daantjuhs probleem is opgelost :)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dvdtv op 17 Januari 2012, 16:02:57
Ebn wat was er aan de hand?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 17 Januari 2012, 16:47:50
global.maxplayers=0 ? :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TimVN op 17 Januari 2012, 17:01:07
Nee, hij gebruikte 39dll.dll V1 scripts met de 39dll V2.5 versie ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: blackhawk op 17 Januari 2012, 21:41:04
Ahja.. Moet ik ook vertellen dat je voor dit example de 21kb versie moet hebben en niet de 42kb :P


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: jochem1996 op 6 Maart 2012, 18:41:20
Ik heb er een Server-side AI aan toegevoegd en een video ervan geupload op youtube.
Je krijgt credits in de description.

http://www.youtube.com/watch?v=AUJ8G4RcAmQ&feature=channel_video_title

^link naar video^


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: iMakeAction op 15 September 2012, 15:27:55
 :gm8:
Bij mij werkt het niet...
Bij de client, in het draw event van de ubercontroller staat helemaal onderaan dat het de namen van de andere spelers boven hun hoofd moet drawen:
GML:
with(obj_player_other)
    {
    draw_text(self.x-15,self.y-25,username);
    }
Maaarrr... variable 'username' is onbekend.
En verder als er een tweede persoon joined staat er in zijn chat dat die eerdere persoon joined terwijl hij dus al in het spel zat... (step event, ubercontroller)
Heeft hiermee te maken denk ik:
GML:
        case 3:
        //Er is een nieuwe speler. (het object maken)
        var userid, name, user;
        userid = readbyte();
        user = instance_create(obj_speler.xstart,obj_speler.ystart,obj_player_other);
        user.pid = userid;
        name = readstring();
        user.username = name;
        players[userid] = user;
        break;
       
        case 4:
        //Er is een nieuwe speler. (het chat bericht)
        var name, userid;
        userid = readbyte();
        name = readstring();
        user = players[userid];
        user.username = name;
        chat_addline(name + " joined the game.",c_yellow);
        break;

 - Jeroen


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: dvdtv op 25 Oktober 2012, 17:03:23
:gm8:
Bij mij werkt het niet...
Bij de client, in het draw event van de ubercontroller staat helemaal onderaan dat het de namen van de andere spelers boven hun hoofd moet drawen:
GML:
with(obj_player_other)
    {
    draw_text(self.x-15,self.y-25,username);
    }
Maaarrr... variable 'username' is onbekend.
En verder als er een tweede persoon joined staat er in zijn chat dat die eerdere persoon joined terwijl hij dus al in het spel zat... (step event, ubercontroller)
Heeft hiermee te maken denk ik:
GML:
        case 3:
        //Er is een nieuwe speler. (het object maken)
        var userid, name, user;
        userid = readbyte();
        user = instance_create(obj_speler.xstart,obj_speler.ystart,obj_player_other);
        user.pid = userid;
        name = readstring();
        user.username = name;
        players[userid] = user;
        break;
       
        case 4:
        //Er is een nieuwe speler. (het chat bericht)
        var name, userid;
        userid = readbyte();
        name = readstring();
        user = players[userid];
        user.username = name;
        chat_addline(name + " joined the game.",c_yellow);
        break;

 - Jeroen

Maak je wel goed een player_other aan? En staat er in je room wel een normale player en niet een extra other?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TriLobyte op 11 November 2012, 14:27:50
Zou het een idee zijn als iemand deze tutorial een keertje bijwerkt?
Alle links zijn out dated. Ik heb zelf onvoldoende kennis om dit te doen.

Bij voorbaat dank.

Met vriendelijke groet,


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 11 November 2012, 18:22:49
39dll is zelf redelijk outdated. Ik zie niet echt waarom het geüpdate zou moeten worden.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: Daantjuh001 op 12 November 2012, 16:38:58
Hmm, 'k zou wel een nieuwe tutorial of iig een example hierover willen maken, maar eh, ik vindt idd wat Luc zegt, en dat demotiveerd me.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: lucb1e op 12 November 2012, 16:51:32
Je kan altijd voor httpdll2 gaan ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: TriLobyte op 18 November 2012, 14:04:06
39dll is zelf redelijk outdated. Ik zie niet echt waarom het geüpdate zou moeten worden.
Je kan altijd voor httpdll2 gaan ;)

Bedankt, ik was hier niet van op de hoogte!


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: yellyfish op 11 Juli 2013, 00:30:44
Sorry dat ik reageer ondanks dat er in dit topic al een lange tijd niet is gereageerd maar ik snap iets niet.
Bij bijvoorbeeld deze code:
GML:
//En dan zeggen we tegen de gene die net is gejoind, wie er allemaal al zijn.
with(obj_client)
{
if (id!=player)
{
clearbuffer();
writebyte(3);
writebyte(pid);
writestring(username,true);
sendmessage(clientsocket);
}
}

Deze code wordt dus vanuit obj_client verstuurd, maar de variabele username, clientsocket enz. zijn variabeles die worden gebruikt in obj_ubercontroller. Ik krijg nu dus een error dat deze variabelen niet bestaan.

Nog een vraag, is het verstandig om alle gegevens van spelers zoals de gebruikersnamen en wachtwoorden in een .ini bestand op te slaan? Want ik weet niet precies hoe je dat allemaal via een webhost kan doen, en het lijkt me nogal omslachtig om als een speler wilt weten welke items iemand bezit(bijvoorbeeld) gegevens van een database van internet te moeten gaan halen.

Bedankt!

Yelly


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: chiel99 op 11 Juli 2013, 08:12:24
Zowieso is het slimmer om voor httpdll2 te gaan denk ik, mijn mening.
En je wilt gegevens opslaan in een ini?????
Dat kan toch niet hoe kan de speler die joined dan dingen uit de ini downloaden van iemand anders?

Mvg,


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: size43 op 11 Juli 2013, 08:27:28
Zowieso is het slimmer om voor httpdll2 te gaan denk ik, mijn mening.
Yup. 39dll is (dit geeft de maker zelfs toe) niet zo goed geprogrammeerd. De HTTP DLL 2 is veel beter.

En je wilt gegevens opslaan in een ini?????
Dat kan toch niet hoe kan de speler die joined dan dingen uit de ini downloaden van iemand anders?

Mvg,
Je kunt ook INI's op de server opslaan :)

Sorry dat ik reageer ondanks dat er in dit topic al een lange tijd niet is gereageerd maar ik snap iets niet.
Bij bijvoorbeeld deze code:
GML:
//En dan zeggen we tegen de gene die net is gejoind, wie er allemaal al zijn.
with(obj_client)
{
if (id!=player)
{
clearbuffer();
writebyte(3);
writebyte(pid);
writestring(username,true);
sendmessage(clientsocket);
}
}
Volgensmij is dat een foutje en moet clientsocket eigelijk tcp zijn ;)

Nog een vraag, is het verstandig om alle gegevens van spelers zoals de gebruikersnamen en wachtwoorden in een .ini bestand op te slaan? Want ik weet niet precies hoe je dat allemaal via een webhost kan doen, en het lijkt me nogal omslachtig om als een speler wilt weten welke items iemand bezit(bijvoorbeeld) gegevens van een database van internet te moeten gaan halen.
Als je het met GM maakt, dat lijkt een INI of ander tekst-gebaseerd systeem het beste. (misschien een aparte INI voor iedere speler?) Een database ofzo gaan gebruiken maakt de server waarschijnlijk alleen maar slomer.

Merk wel op: sla wachtwoorden nooit onversleuteld op! Maak gebruik van md5 of sha256/512 om de wachtwoorden op te slaan. Je wilt het niet hebben dat jij, of misschien zelfs iemand anders zomaar de wachtwoorden kan bekijken ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: yellyfish op 11 Juli 2013, 10:21:46
Volgensmij is dat een foutje en moet clientsocket eigelijk tcp zijn ;)
Als je het met GM maakt, dat lijkt een INI of ander tekst-gebaseerd systeem het beste. (misschien een aparte INI voor iedere speler?) Een database ofzo gaan gebruiken maakt de server waarschijnlijk alleen maar slomer.
Oh foutje dus? Ik krijg namelijk ook de error dat player niet bestaat

En ik las ergens dat via ini werken het spel freezed klopt dat? Ik wil niet dat de client gaat laggen omdat de server iets in een ini bestand schrijft.

Kost het veel moeite/tijd om gegevens uit een online database te halenb

En is httpddl2 gewoon 39dll maar dan met wat extra functies zoals met een webhost communiceren?


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: size43 op 12 Juli 2013, 11:14:03
Oh foutje dus? Ik krijg namelijk ook de error dat player niet bestaat
Ik zou de bijgeleverde example even downloaden, en kijken hoe het daarin staat :)

En ik las ergens dat via ini werken het spel freezed klopt dat? Ik wil niet dat de client gaat laggen omdat de server iets in een ini bestand schrijft.
Correct. Hetzelfde gebeurt met databases. GameMaker games worden uitgevoerd als single-threaded programma's. Wat dat wil zeggen, is dat alles één voor één wordt uitgevoerd. Dus als jij iets naar een INI schrijft, dan "wacht" de game als het ware tot dat gedaan is, en gaat dan pas verder met de rest van de code. Nu is die wachttijd waarschijnlijk nog geen milliseconde, dus daar zou ik me geen zorgen over maken.

Bij een database is die wachttijd wat langer, aangezien er data moet worden verzonden over een socket.

Kost het veel moeite/tijd om gegevens uit een online database te halen
Ja, zowel als de hoeveelheid programmeerwerk als de snelheid van je game.

En is httpddl2 gewoon 39dll maar dan met wat extra functies zoals met een webhost communiceren?
onder andere. Het werkt ook gewoon beter, aangezien de 39dll een bug had waardoor soms niet alle data die je wou verzenden ook daadwerkelijk werd verzonden, geloof ik. ;)


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: The Thriforce op 12 Juli 2013, 19:53:32
Het werkt ook gewoon beter, aangezien de 39dll een bug had waardoor soms niet alle data die je wou verzenden ook daadwerkelijk werd verzonden, geloof ik. ;)
De bug in 39dll was hoe hij om ging met de maximale grootte van de buffer, als bij de 39dll je pakketje groter werd dan de maximale buffergrootte werd er gewoon een deel van de data weggegooid. De http 2 dll stuurt het gewoon in meerdere buffers.


Titel: Re: [Tut] Nederlandse tutorial over 39dll (inclusief example)
Bericht door: yellyfish op 12 Juli 2013, 20:29:32
Het lukt mij niet gegevens van een webhost te halen, kan iemand mij misschien helpen?
Zie -> topic in beginners forum

http://www.game-maker.nl/forums/topic,79941.0


Bedankt!


www.game-maker.nl © 2003, 2007 Nederlandse Game Maker Community