Jump to content

[TUT] DM Zones maken


Shotyoudie

Recommended Posts

Tutorial DM Zones maken

Door Shotyoudie

Introductie

Ik ga jullie uitleggen hoe je 1 of meerdere DM Zones maakt in je server op een manier dat als je in een DM Zone zit

je niet kan teleporteren en dat je wapens weggaan als je /exit doet.

Het is beter dat je DCMD Commands hebt die werken sneller en het is makkelijker met de DM Zone.

Klik Hier om naar de DCMD Tutorial te gaan.

Tutorial

Ten eerste een variabele maken zodat het script kan zien of je in een dm zone

zit of niet we gebruiken hier dm_zone.

dus dit moet bovenaan je script staan:

new dm_zone[MAX_PLAYERS];

ook gaan we een paar kleuren defineren(of andere kleuren die je wil):

#define COLOR_RED 0xFF0000AA
#define COLOR_GREEN 0x33FF33AA

Voor DCMD (als je dat nog niet hebt):

#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

Dan heb je de Commands hier voorbeeld:

het gewone command bv naar airportls:

dcmd_airportls(playerid, params[])
{
   #pragma unused params
   if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
   {
   SetVehiclePos(GetPlayerVehicleID(playerid), 1925.3805,-2247.5476,13.5469+5);
   }
   else
   {
   SetPlayerPos(playerid, 1925.3805,-2247.5476,13.5469+5);
   }
   new pname[MAX_PLAYER_NAME], string1[256];
   GetPlayerName(playerid, pname, sizeof(pname));
   format(string1, sizeof(string1), "%s is naar /airportls geteleporteerd.", pname);
   SendClientMessage(playerid,COLOR_GREEN, string1);
   return 1;
}

De teleport naar de DM Zone:

dcmd_dm(playerid,params[])
{
   #pragma unused params
   SetPlayerPos(playerid, -2513.6089,1544.5330,17.3281,269.4559);//coord van je DM Zone
   GivePlayerWeapon(playerid, 26,64); //Wapens geven
   GivePlayerWeapon(playerid, 28,264);
   GivePlayerWeapon(playerid, 30,264);
   new pname[MAX_PLAYER_NAME], string1[256];
   GetPlayerName(playerid, pname, sizeof(pname));
   format(string1, sizeof(string1), "%s heeft /DM gejoint!", pname);//Bericht dat iemand naar /dm is gegaan
   SendClientMessageToAll(COLOR_GREEN,string1);
   dm_zone[playerid] = 1; // naar true gezet zodat het script ziet dat je in een DM zone bent
   return 1;
}

Het /exit command:

dcmd_exit(playerid,params[])
{
   #pragma unused params
   if(dm_zone[playerid] == 1)//kijken of je wel in een DM Zone bent. Zo ja
   {
   ResetPlayerWeapons(playerid);//wapens resetten 
   dm_zone[playerid] = 0; //zet dm_zone naar false zodat je weer kan teleporteren
   SendClientMessage(playerid,COLOR_GREEN,"Je hebt de DM Zone verlaten");//bericht dat je de dm zone verlaten hebt
   }
   else//Zo nee
   {
   SendClientMessage(playerid,COLOR_RED,"Je bent niet in een DM Zone");//error dat je niet in een dm zone zit
   }
   return 1;
}

Deze 3 command hoeven niet OnPlayerCommandText.

Maar dit wel:

dcmd(exit, 4, cmdtext);
if(dm_zone[playerid] == 1) return SendClientMessage(playerid, COLOR_RED,"Je zit in een Dm Zone typ /exit om eruit te gaan");
dcmd(dm, 2, cmdtext);
dcmd(airportls, 9, cmdtext);

Uitleg per lijn:

Het Exit command. het is heel belangrijk dat je dit command als eerste hebt!

omdat je anders nooit uit een dm zone kan komen.

dcmd(exit, 4, cmdtext);

Kijken of je in een dm_zone zit. Zo ja: een berichtje dat je in een DM zone zit en /exit moet typen voordat je weer kan teleporteren

if(dm_zone[playerid] == 1) return SendClientMessage(playerid, COLOR_RED,"Je zit in een Dm Zone typ /exit om eruit te gaan");

Het dm en het gewoone teleport command. Het is hier belangrijk dat je deze ONDER de lijn moet zetten

die kijkt of je in een dm zone zit, Als je dat niet hebt kan je gewoon teleporteren met wapens en dat willen we niet.

als je nu een ander command hebt die je wel wil gebruiken als je in een dm zone zit. Zet je gewoon boven de lijn

die kijkt of je in een dm zone zit.

dcmd(dm, 2, cmdtext);
dcmd(airportls, 9, cmdtext);

Nu kan je zoveel dm zones maken als je wil als je maar in de teleport ernaar

dit hebt staan:

dm_zone[playerid] = 1;

Ik hoop dat ik jullie wat bijgeleert heb. Als je vragen hebt of dingen die ik nog kan aanpassen kan je dat in

dit topic vragen.

~Shotyoudie

Link to comment
Delen op andere websites

Persoonlijk ben ik van mening dat je eigenlijk meer voorbeelden geeft en gewoon codes dan uitleg erover te geven je kan over de commando's bijvoorbeeld extra uitleg geven hoe je erin checkt of je in een dm zone bent enzo ;) <BR><BR>EDIT: oke dat laatste deed je maar toch moet je meer uitleg over alles geven ;)

Bewerkt: door megadreams
Link to comment
Delen op andere websites

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...