Shotyoudie Geplaatst: 21 februari 2010 Rapport Geplaatst: 21 februari 2010 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 Reageren
Megadreams Geplaatst: 21 februari 2010 Rapport Geplaatst: 21 februari 2010 (bewerkt) 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: 21 februari 2010 door megadreams Reageren
Recommended Posts
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.