Jump to content

[Tutorial]Objects


Recommended Posts

  • Reacties 59
  • Created
  • Laatste reactie

Top Posters In This Topic

  • opacool6

    13

  • Sandra

    9

  • Ymosky

    5

  • Donwell

    5

Top Posters In This Topic

Geplaatst: (bewerkt)

Als je het hele tutorial had door gelezen.

dan zou je het misscihen weten:

Objecten toevoegen:

Nu weet je hoe je spawnplaatsen moet maken voor players en voor voertuigen.

Nu ga ik proberen je uit te leggen hoe je objecten kan toevoegen aan de map.

Je kan 1 simpel object toevoegen, maar je kan ook een uitgebreid eiland maken.

Er is genoeg keus, gta-sa heeft namelijk ongeveer 18.000 verschillende objecten!!

Let op: Je kan maximaal 150 objecten toevoegen, als je er meer hebt, kan je spel crashen!!

Oke, objecten toevoegen gaat bijna volgens hetzelfde principe als voertuigen & players.

Je gebruikt de volgende funcie:

 CreateObject(id, x, y, z, x-rotatie, y-rotatie, z-rotatie);

Om achter het id van een bepaald object te komen, kan je het beste een map-editor downloaden.

Je weet inmiddels hoe je de coördinaten kan krijgen, dus verdere uitleg heeft deze functie niet nodig.

dit is stukje voor object's

Bewerkt: door Nomis3
  • 4 weken later...
Geplaatst:
waar Download ik C++

Uhm... correct me if im wrong, maar volgens mij is C++ een programmeertaal en geen programma?

Geplaatst: (bewerkt)

Pawn is een versimpelde versie van C++ of in ieder geval een soort afgeleide, vandaar dat hij denkt dat het C++ is ;) Pawno kun je downloaden op de site van SA-mp, het zit gewoon bij het server-bestand inbegrepen.

Bewerkt: door VWO-er
  • 1 maand later...
Geplaatst: (bewerkt)

Ik heb een klein probleempje. Ik heb de tutorial helemaal gevolgd, en ik heb een jail proberen te maken om vervelende mensen in op te sluiten.

Nadat ik een open en close functie had gemaakt, en de nieuwe positie had aangegeven en gecompiled had ik geen problemen, maar nadat ik in mijn servertje zat, en de jail opende, ging de deur wel naar de juiste plek, maar eenmaal daar aangekomen verdween hij.

Ook als ik de close functie gebruik komt hij niet terug ( Waarschijnlijk omdat de deur op de een of andere manier verwijdert is.

Hier zijn de stukken uit het script waar het om gaat:

#include <a_samp>

new jail;

public OnGameModeInit()
{
CreateObject(980, 2532.701904, 1562.008789, 59.579155, 0.0000, 0.0000, 0.0000);
CreateObject(980, 2532.702148, 1567.604980, 59.678333, 0.0000, 0.0000, 0.0000);
CreateObject(971, 2538.437012, 1564.597534, 60.489395, 0.0000, 0.0000, 269.7592);
CreateObject(971, 2527.009033, 1564.669800, 60.412468, 0.0000, 0.8594, 268.8997);
jail = CreateObject(980, 2532.731689, 1564.857666, 56.718033, 91.1002, 0.0000, 359.1406);
CreateObject(980, 2532.651123, 1564.852417, 62.458084, 269.7592, 0.8594, 0.0000);
}

public OnPlayerCommandTest(playerid, cmdtext[])
{
if (strcmp("/openjail", cmdtext, true, 10) == 0)
{
	MoveObject(jail, 2521.057129, 1565.022461, 56.718033, 3);
	SendClientMessage(playerid, 0xFFFFFFAA, "It's Suicide Time.");
	return 1;
}

if (strcmp("/closejail", cmdtext, true, 10) == 0)
{
	MoveObject(jail, 2527.009033, 1564.669800, 56.718033, 3);
	SendClientMessage(playerid, 0xFFFFFFAA, "Jail is Closed.");
	return 1;
}
}

Bewerkt: door Cloud
  • 1 year later...
Geplaatst:

Hoe maak je nou precies iets op Clantag? (bijv. [LSP]) Ik had al iets geprobeert van if(!strfind(playername, "[LSP]", true)) en dan had ik er }else{ aan geadd met

SendClientMessage(playerid, 0xFF0000AA, "You aren't a part of the Cop Team!"); en nu steeds als ik [LSP] aan men naam add komt dat er steeds te staan :S. Zou iemand mij hiermee kunnen helpen aub/?

Geplaatst:

Je kan ook zoiets als dit proberen:

if(!strcmp(playername, "[LSP]", true, 5) // 5 zodat hij niet verder kijkt dan de 1e 5 karakters van de string.
{
    // Hij heeft [LSP] voor zijn naam staan.
}
else
{
    // Hij heeft NIET [LSP] voor zijn naam staan.
}

Geplaatst:

Je kan ook zoiets als dit proberen:

if(!strcmp(playername, "[LSP]", true, 5) // 5 zodat hij niet verder kijkt dan de 1e 5 karakters van de string.
{
    // Hij heeft [LSP] voor zijn naam staan.
}
else
{
    // Hij heeft NIET [LSP] voor zijn naam staan.
}

maar het is tog strfind?

Geplaatst:

Je kan ook zoiets als dit proberen:

if(!strcmp(playername, "[LSP]", true, 5) // 5 zodat hij niet verder kijkt dan de 1e 5 karakters van de string.
{
    // Hij heeft [LSP] voor zijn naam staan.
}
else
{
    // Hij heeft NIET [LSP] voor zijn naam staan.
}

maar het is tog strfind?

Strcmp vergelijkt (delen) van strings met elkaar. Deze code zorgt ervoor dat hij de eerste 5 karakters met elkaar vergelijkt. Maar dat het niet werkt vind ik vaag. Het werkt bij mij namelijk wel. Kunnen wij de volledige code zien die je voor dat stukje vergelijkt? (Staat er ook GetPlayerName in bijvoorbeeld?)

Geplaatst:

Er zit een foutje in de tut

er staat

-Om de poort te verschuiven langs de X-as, dan verhoog je de 2486.0:

MoveObject(Poort, 2495.0, -1667.0, 13.0, 3);

-Om de poort te verschuiven langs de Y-as, dan verhoog je de -1667.0:

MoveObject(Poort, 2486.0, -1660.0, 13.0, 3);

-Om de poort te verschuiven langs de X-as, dan verhoog je de 13.0:

MoveObject(Poort, 2486.0, -1667.0, 20.0, 3);

maar dat moet zijn

-Om de poort te verschuiven langs de X-as, dan verhoog je de 2486.0:

MoveObject(Poort, 2495.0, -1667.0, 13.0, 3);

-Om de poort te verschuiven langs de Y-as, dan verhoog je de -1667.0:

MoveObject(Poort, 2486.0, -1660.0, 13.0, 3);

-Om de poort te verschuiven langs de Z-as, dan verhoog je de 13.0:

MoveObject(Poort, 2486.0, -1667.0, 20.0, 3);

>>> Door Sandra: Thnx, fixed<<<

  • 6 maanden later...
Geplaatst: (bewerkt)

Ik zet hier ook nog wel even bij hoe je streamed objects moved (in dit geval MidoStream).

De functies:

/* CreateStreamObject(modelid,Float:xpos,Float:ypos,Float:zpos,Float:xrot,Float:yrot,Float:zrot,Float:viewdist) - Maakt een nieuw stream object aan.
DestroyStreamObject(id) - Verwijderd een stream object.
GetStreamObjectPos(id,&Float:xpos,&Float:ypos,&Float:zpos) - Vraagt de positie van het streamed object op.
GetStreamObjectRot(id,&Float:xrot,&Float:yrot,&Float:zrot) - Vraagt de rotatie van het streamed object op.
SetStreamObjectPos(id,Float:xpos,Float:ypos,Float:zpos) - Veranderd de positie van een streamed object.
SetStreamObjectRot(id,Float:xrot,Float:yrot,Float:zrot) - Veranderd de rotatie van een streamed object.
AttachStreamObjectToPlayer(id,playerid,Float:xoff,Float:yoff,Float:zoff,Float:xrot,Float:yrot,Float:zrot) - Maakt een object vast aan een speler.
MoveStreamObject(id,Float:movx,Float:movy,Float:movz,Float:speed) - Verplaatst een streamed object.
MidoStreamDisconnect(playerid) - Dit zinnetje moet in je GameMode onder OnPlayerDisconnect. */

CreateStreamObject(modelid,Float:xpos,Float:ypos,Float:zpos,Float:xrot,Float:yrot,Float:zrot,Float:viewdist);

Je maps kan je simpel weg converten naar MidoStream objects bijvoorbeeld met deze converter: http://gtamap.delux-host.com/converter/

Je zet de CreateStreamObject gewoon onder OnFilterScriptInit.

Voor de rest gaat bijna alles hetzelfde alleen met commands gaat het zo:

new poort;
poort = CreateStreamObject(974, 2486.0, -1667.0, 13.0, 0.0, 0.0, 0.0, 500); // Dit is dezelfde positie als die Sandra gebruikt maar dan in CreateStreamObject.

   if(!strcmp("/open", cmdtext, true, 10))
{
       if(IsPlayerInRangeOfPoint(playerid, 10.0, 1577.283081, -1624.715820, 13.421875)) 
       {
    [b]MoveStreamObject[/b](poort, 1577.283081, -1624.715820, 13.421875, 2);
    SendClientMessage(playerid, 0xFFFFFFAA,"De poort is geopend.");
    return 1;
}

De functies spreken voor de rest voor zich.

Download:

http://solidfiles.com/d/4x9O/

Hier kan je de MidoStream downloaden je moet alleen nog wel een paar zinnetjes toevoegen.

Zoek op: forward Core_CreateStreamObject(modelid2,Float:xpos2,Float:ypos2,Float:zpos2,Float:xrot2,Float:yrot2,Float:zrot2,Float:viewdist2);

En zet dit boven dat zinnetje: #define CreateStreamObject Core_CreateStreamObject

Zoek op: forward Core_MoveStreamObject(id2,Float:movx2,Float:movy2,Float:movz2,Float:speed2);

En zet dit boven dat zinnetje: #define MoveStreamObject Core_MoveStreamObject

Bewerkt: door Melvin980

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.

×
×
  • Create New...