Voorlopig ff de laatste tutorial. Dan vind ik dat ik genoeg gedaan heb voor jullie.
Na vele pm-berichten met vragen hoe je meerdere checkpoints en adminarea moet maken, heb ik toch maar besloten nog 1 keer tijd te maken om voor jullie een tutorial te maken.
Tis wel een korte ditkeer.
CheckPoints Streamen:
De fucties die ik gebruik zijn gemaakt door [GM]The_Don en komen uit het script: 'lvdmod[1]'
Ik leg alleen uit hoe je er zelf checkpoints aan toevoegd.
Eerst voeg je onderaan het script de volgende 3 functies toe:
Als je nu zelf een checkpoint wilt toevoegen voeg je onder die bovenstaande defines gewoon een nieuwe regel toe met: #define <naamcheckpoint> <getal 1 verhogen>
Vervolgens moeten we de gebieden aangeven waarin de checkpoints zichbaar zijn.
Het is {x_min, y_min, x_max, y_max}
new Float:checkCoords[MAX_POINTS][4] = {
{-36.5483, -57.9948, -17.2655, -49.2967}, //bank
{1894.6128, 1445.3431, 2084.9739, 1637.8186}, //piratenschip
{1925.1511, 968.2358, 2019.0715, 1067.4276} //dragon casino
//als je checkpoints wilt toevoegen, zet je een komma achter de laatste coordinaten en voeg je hier een extra regel onder zonder komma erachter.
};
Dan moeten we de coördinaten van de checkpoints zelf bepalen:
Het is {x, y, z}
new Float:checkpoints[MAX_POINTS][3] = {
{-22.2549, -55.6575, 1003.5469},
{2000.3132, 1538.6012, 13.5859},
{1989.0619, 1005.5241, 994.4688}
//als je checkpoints wilt toevoegen, zet je een komma achter de laatste coordinaten en voeg je hier een extra regel onder zonder komma.
};
Dan moeten we nog de namen van de checkpoints in een array zetten:
new checkpointType[MAX_POINTS] = {
CP_BANK,
CP_PIRATE,
CP_DRAGON
//als je checkpoints wilt toevoegen, zet je een komma achter de laatste coordinaten en voeg je hier de naam van die nieuwe checkpoint onder zonder komma.
};
Nou, als je het gelukt is om deze codes in je script te zetten zonder errors, kan je je server ingaan.
En dan zullen de checkpoints op hun plaats staan.
Hoe zorg je er nou voor dat je alleen een bepaald commando kan gebruiken als je in een bepaalde checkpoint staat?
Je hoeft dan maar 1 regel toe te voegen aan het commando:
Je kan alleen teleporteren met het commando /teleport als je in de checkpoint op het piratenschip staat:
if (strcmp("/teleport", cmdtext, true, 10) == 0)
{
if(IsPlayerInCheckpoint(playerid) && getCheckpointType(playerid) == CP_PIRATE)
{
SetPlayerPos(playerid, -2300.6008, -1650.3129, 483.7031);
SendClientMessage(playerid, 0x00FF00, "Je bent nu naar Mount Chiliad geteleporteerd!");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Je moet in de checkpoint van het PiratenSchip staan!");
}
return 1;
}
Of gebruik bij in de OnPlayerEnterCheckpoint callback:
public OnPlayerEnterCheckpoint(playerid)
{
if(getCheckpointType(playerid) == CP_PIRATE)
{
SetPlayerPos(playerid, -2300.6008, -1650.3129, 483.7031);
SendClientMessage(playerid, 0x00FF00, "Je bent nu naar Mount Chiliad geteleporteerd!");
return 1;
}
return 1;
}
Tot zover de checkpoints nu vlug een voorbeeld voor een admin area:
AdminArea:
Deze functie heeft ook een IsPlayerInArea functie nodig, maar omdat ik geen zin heb om de fuctie die ik had voor de adminarea aan te passen, gebruik ik maar ff een andere IsPlayerInArea functie:
IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx && x < maxx && y > miny && y < maxy) return 1;
return 0;
}
En zet eronder:
public AdminArea(playerid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if (IsPlayerInArea(i,97.5436, 285.1614, 1798.8602, 1940.8845) == 1)
{
if (!IsPlayerAdmin(i))
{
//Doe hier je ding met je slachtoffer
}
}
}
}
return 1;
}
Klik >>hier<< voor een script met de bovenstaande codes samengevoegd.
Tutorial Checkpoints+AdminArea
Gemaakt door Sandra18[NL]
Andere Tutorials van mij:
>>Objecten<<
>>Menu's<<
>>Account-systeem<<
Voorlopig ff de laatste tutorial. Dan vind ik dat ik genoeg gedaan heb voor jullie.
Na vele pm-berichten met vragen hoe je meerdere checkpoints en adminarea moet maken, heb ik toch maar besloten nog 1 keer tijd te maken om voor jullie een tutorial te maken.
Tis wel een korte ditkeer.
CheckPoints Streamen:
De fucties die ik gebruik zijn gemaakt door [GM]The_Don en komen uit het script: 'lvdmod[1]'
Ik leg alleen uit hoe je er zelf checkpoints aan toevoegd.
Eerst voeg je onderaan het script de volgende 3 functies toe:
Dan voeg je dit bovenaan het script (wel onder de includes):
En bij OnGameModeInit():
Van de bovenstaande functies moet je afblijven.
Nu komen de codes die je zelf moet aanpassen afhankelijk van je eigen wensen:
Als voorbeeld maken we 3 checkpoints in de gamemode:
- Op het piratenschip
- In de bank (24/7 winkels)
- In het 4-dragons-casino
Wat nu allemaal volgt voeg je ook bovenaan het script toe. (maar wel onder de codes die hierboven staan en bovenaan het script moeten:
Eerst moeten we een 'define' maken die aangeeft hoeveel checkpoints er moeten zijn:
Als je een 4e checkpoint wilt maken, verander je die '3' in een '4'
Vervolgens moeten we namen voor de checkpoints verzinnen.
Als je nu zelf een checkpoint wilt toevoegen voeg je onder die bovenstaande defines gewoon een nieuwe regel toe met: #define <naamcheckpoint> <getal 1 verhogen>
Vervolgens moeten we de gebieden aangeven waarin de checkpoints zichbaar zijn.
Het is {x_min, y_min, x_max, y_max}
Dan moeten we de coördinaten van de checkpoints zelf bepalen:
Het is {x, y, z}
Dan moeten we nog de namen van de checkpoints in een array zetten:
Nou, als je het gelukt is om deze codes in je script te zetten zonder errors, kan je je server ingaan.
En dan zullen de checkpoints op hun plaats staan.
Hoe zorg je er nou voor dat je alleen een bepaald commando kan gebruiken als je in een bepaalde checkpoint staat?
Je hoeft dan maar 1 regel toe te voegen aan het commando:
Voorbeeld:
Je kan alleen teleporteren met het commando /teleport als je in de checkpoint op het piratenschip staat:
Of gebruik bij in de OnPlayerEnterCheckpoint callback:
Tot zover de checkpoints nu vlug een voorbeeld voor een admin area:
AdminArea:
Deze functie heeft ook een IsPlayerInArea functie nodig, maar omdat ik geen zin heb om de fuctie die ik had voor de adminarea aan te passen, gebruik ik maar ff een andere IsPlayerInArea functie:
Zet dit bovenaan je script:
Zet dit bij OnGameModeInit:
Zet dit onderaan je script:
En zet eronder:
Klik >>hier<< voor een script met de bovenstaande codes samengevoegd.
Veel plezier ermee.
Grtz Sandra
Bewerkt: door Sandra18[NL]