ik maak deze tutorial voor de beginners en omdat ik het leuk vind om mensen te helpen. Ik ga jullie uitleggen hoe je wat simpelere commands maakt, maar ik zal ook wat commands voor gevorderde uitleggen. Als je nog nooit gescipt hebt zou ik --hier-- kijken.
Het eerste command wat ik zal behandelen klinkt in het begin nutteloos, we gaan namelijk als iemand '/my-first- command' typt een tekstje laten verschijnen. Je denkt wat ik al dacht dat je denkt: Wat kan je hier nou mee , zo'n command is eigenlijk het meest gebruikte soort command(denk aan '/help' en '/commands').
Eerst zoeken we het OnPlayerCommandText-callback op. Je weet hoe dat moet. Daar maak je altijd je commands! Dus daar gaan we beginnen een command aan te maken .
Een paar kleuren, in de tut die ik aan het begin van deze tut heb gegeven staat wat dit inhoud. Maar met dit doet het command nog steeds niets, dit moet veranderen vind ik. Dit gaan we doen met 'SendClientMessage(playerid, kleur, "het bericht");'. We gaan iemand dit bericht verzenden: 'Je eerste command werkt!'.
if(strcmp("/my-first-command", cmdtext, true) == 0)
{
SendClientMessage(playerid, COLOR_GREEN, "Je eerste command werkt!"); // Eerst staat er playerid, dat moet er gewoon staan
// dan staat er 'COLOR_GREEN' de kleur groen, die we net gefineerd hebben, de tekst word in het groen weergegeven.
// dan staat er "Je eerste command werkt" dat is de tekst die verzonden moet worden.
return 1;
}
Ik denk dat iedereen dit wel snapt, heb je nogsteeds vragen, PM me dan!
Nu gaan we al een iets moeilijker command maken, we gaan namelijk het statement 'else' gebruiken, we gaan if midden in een command zetten, we gaan een command maken voor alleen rcon admins..
We beginnen net als net met een stukje om een command aan te geven.
Er zal nu weer weinig gebeuren, nu gaan we aangeven dat iemand admin moet zijn, dit doen we zo:
if(strcmp("/my admin-first-command", cmdtext, true) == 0)
{
if(IsPlayerAdmin(playerid) == 1) // vraagt of de speler admin is.
{
}
return 1;
}
We gaan nu jezelf 100% health geven, dit doen we met: SetPlayerHealth(playerid, 100); dus dan krijg je dit:
if(strcmp("/my-admin-first-command", cmdtext, true) == 0)
{
if(IsPlayerAdmin(playerid) == 1) // vraagt of de speler admin is.
{
SetPlayerHealth(playerid, 100); // geeft player 100 health
}
return 1;
}
Dit moet denk ik ook nog te snappen zijn, we geven iemand 100 health. We gaan jezelf er ook nog eens 10000 dollar bij geven . Dit gaan we doen met: GivePlayerMoney(playerid, 10000);.
Dan heb je dus dit:
if(strcmp("/my-admin-first-command", cmdtext, true) == 0)
{
if(IsPlayerAdmin(playerid) == 1) // vraagt of de speler admin is.
{
SetPlayerHealth(playerid, 100); // geeft player 100 health
GivePlayerMoney(playerid, 10000); // geeft player 10000 dollar
}
return 1;
}
Dit is ook te snappen, maar als je nou ook nog eens wapens en armour wilt? Dan moet je dit doen:
if(strcmp("/my-admin-first-command", cmdtext, true) == 0)
{
if(IsPlayerAdmin(playerid) == 1) // vraagt of de speler admin is.
{
SetPlayerHealth(playerid, 100); // geeft player 100 health
GivePlayerMoney(playerid, 10000); // geeft player 10000 dollar
SetPlayerArmour(playerid, 100); // dit geeft de player 100 armour
GivePlayerWeapon(playerid, 26, 999); // dit is hem vertaalt: GivePlayerWeapon(playerid, weapon id*, ammo);
}
return 1;
}
*Hiervoor heb je een link nodig, namelijk de weapon ID's --De Link!--
Nu hebben we gedaan wat er gebeurt als iemand is ingelogt met rcon admin, maar wat moet er gebeuren als iemand geen rcon admin is? We geven iemand een text, daarin zetten we: 'Je moet eerst inloggen met rcon admin(/rcon login [je ingestelde pw].'.
if(strcmp("/my-admin-first-command", cmdtext, true) == 0)
{
if(IsPlayerAdmin(playerid) == 1) // vraagt of de speler admin is.
{
SetPlayerHealth(playerid, 100); // geeft player 100 health
GivePlayerMoney(playerid, 10000); // geeft player 10000 dollar
SetPlayerArmour(playerid, 100); // dit geeft de player 100 armour
GivePlayerWeapon(playerid, 26, 999); // dit is hem vertaalt: GivePlayerWeapons(playerid, weapon id, ammo);
}
else // wat er gebeurt als 'IsPlayerAdmin(playerid) == 1' niet zo is.
{
SendClientMessage(playerid, COLOR_RED, "Je moet eerst inloggen met rcon admin(/rcon login [je ingestelde pw]"); // en als je niet weet hoe je moet inloggen met rcon moet je dit doen: /rcon login [je ingestelde pw]
}
return 1;
}
En dat is alweer een command, heb je vragen PM me . Het command wat we nu gaan maken is eigenlijk hetzelfde, we gaan nu een auto fixen, het command noemen we '/fix'.
if(strcmp("/fix", cmdtext, true) == 0)
{
if(IsPlayerInAnyVehicle(playerid) == 1) // dit vraagt of iemand wel in een vehicle zit..
{
}
return 1;
}
Nu gebeurt er helemaal niets als iemand niet in een auto zit. Daarvoor gebruiken we else weer. Kijk zo:
if(strcmp("/fix", cmdtext, true) == 0)
{
if(IsPlayerInAnyVehicle(playerid) == 1) // dit vraagt of iemand wel in een vehicle zit..
{
new vehicleidis;
vehicleidis = GetPlayerVehicleID(playerid);
SetVehicleHealth(vehicleidis, 1000.0); // ondleed ziet hij er zo uit: SetVehicleHealth(vehicleid[word opgevraagt], het aantal heatlh);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Je zit niet in een voertuig!");
}
return 1;
}
Weer met een simpele SendClientMessage, kom je er niet uit? PM me dan maar je kan natuurlijk ook posten. Nu gaan we beginnen met een command waarbij iemand een stukje extra erbij moet zetten, dit commando word weer voor admins, dit komt er allemaal in:
- Naam is: /car
- Iemand moet het car ID invoeren
- Als dat niet gedaan is komt er een tekstje
- Als iemand een ongeldig ID heeft ingevoert lukt het ook niet.
- Als alles goed werkt dan tja krijgt hij een auto, daar word diegene gelijk in de auto gepropt.
Eerst zeggen we dat er nieuwe variabelen moeten worden gemaakt: zet dit boven je command!
new cmd[256],tmp[256],idx;
cmd = strtok(cmdtext,idx);
Daarbij moet je ook wat onderaan je script zetten namelijk dit:
new cmd[256],tmp[256],idx;
cmd = strtok(cmdtext,idx);
if(strcmp("/car", cmd, true) == 0) // let op cmd houd strtok(cmdtext,idx); in dus dat kan er ook staan, we maken er cmd van want je gebruikt het vaker!
{
return 1;
}
Je kan het ook anders doen maar ik raad je dit aan!
Nu gaan we opvragen of er wel wat is ingevult, want dan kan er natuurlijk geen car ingevult worden.
new cmd[256],tmp[256],idx;
cmd = strtok(cmdtext,idx);
if(strcmp("/car", cmd, true) == 0) // let op cmd houd strtok(cmdtext,idx); in dus dat kan er ook staan, we maken er cmd van want je gebruikt het vaker!
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) // die '!' betekend 'als dat niet zo is'
{
SendClientMessage(playerid, COLOR_RED, "USAGE: /car [400-609]");
}
return 1;
}
Nu word er nog geen car gespawned als je het goed doet, maar nu nog een paar dingen die fout kunnen gaan:
new cmd[256],tmp[256],idx;
cmd = strtok(cmdtext,idx);
if(strcmp("/car", cmd, true) == 0) // let op cmd houd strtok(cmdtext,idx); in dus dat kan er ook staan, we maken er cmd van want je gebruikt het vaker!
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) // die '!' betekend 'als dat niet zo is'
{
SendClientMessage(playerid, COLOR_RED, "USAGE: /car [400-609]");
}
else
{
if(IsPlayerInAnyVehicle(playerid) == 1) // Als iemand al in een voertuig zit
{
SendClientMessage(playerid, COLOR_RED, "You are already in a vehicle");
}
else
{
new car;
car = strval(tmp); // car controleerd wat er is ingevult.
if(car < 400 || car > 609) // || staat voor or, hier word opgevraagt of het wel de bestaande car ID's zijn
{
SendClientMessage(playerid, COLOR_RED, "USAGE: /car [400-609]");
}
}
}
return 1;
}
Dit zijn volgens mij alle dingen die fout kunnen gaan. Ik denk dat je dit moet snappen, anders pm je maar .
Nu gaan we een lastig stukje coderen, het spawnen van de vehicle, dat doen we zo:
new cmd[256],tmp[256],idx;
cmd = strtok(cmdtext,idx);
if(strcmp("/car", cmd, true) == 0) // let op cmd houd strtok(cmdtext,idx); in dus dat kan er ook staan, we maken er cmd van want je gebruikt het vaker!
{
tmp = strtok(cmdtext, idx);
if(IsPlayerAdmin(playerid) == 0)
{
SendClientMessage(playerid, COLOR_RED, "You need to be an admin for this"); // oeps deze vergeten..
}
else
{
if(!strlen(tmp)) // die '!' betekend 'als dat niet zo is'
{
SendClientMessage(playerid, COLOR_RED, "USAGE: /car [400-609]");
}
else
{
if(IsPlayerInAnyVehicle(playerid) == 1) // Als iemand al in een voertuig zit
{
SendClientMessage(playerid, COLOR_RED, "You are already in a vehicle");
}
else
{
new car;
car = strval(tmp); // car controleerd wat er is ingevult.
if(car < 400 || car > 609) // || staat voor or, hier word opgevraagt of het wel de bestaande car ID's zijn
{
SendClientMessage(playerid, COLOR_RED, "USAGE: /car [400-609]");
}
else
{
new Float:x,Float:y,Float:z,Float:a; // de plaatsen die opgevraagt gaan worden..
GetPlayerPos(playerid,x,y,z); // het verkrijgen van de dingen
GetPlayerFacingAngle(playerid,a); // vragen waar de speler heenkijkt
new newcar; // een nieuwe variabele
newcar = CreateVehicle(car,x,y,z,a,-1,-1,240000); // wat de var newcar inhoud, dus dit:
// CreateVehicle(vehicleid[ingevult na het command],x plaats, y plaats, z plaats, kijkrichting, kleur, kleur, en nog een getal);
PutPlayerInVehicle(playerid,newcar,0); // stop de speler in de auto die we hebben aangemaakt
SendClientMessage(playerid,COLOR_GREEN, "Je commando is succesvol verwerkt, je zit nu in een wagen.."); // en een message weergeven
}
}
}
}
return 1;
}
En nu moet ik stoppen, dus ik ga morgen verder met: Een paar dingen die ik niet heb gebruikt, maar die je vast en zeker een keer gaat gebruiken. Ik hoop dat ik het goed heb uitgelegt en het is mijn eerste tut :$
Hey,
ik maak deze tutorial voor de beginners en omdat ik het leuk vind om mensen te helpen. Ik ga jullie uitleggen hoe je wat simpelere commands maakt, maar ik zal ook wat commands voor gevorderde uitleggen. Als je nog nooit gescipt hebt zou ik --hier-- kijken.
Het eerste command wat ik zal behandelen klinkt in het begin nutteloos, we gaan namelijk als iemand '/my-first- command' typt een tekstje laten verschijnen. Je denkt wat ik al dacht dat je denkt: Wat kan je hier nou mee
, zo'n command is eigenlijk het meest gebruikte soort command(denk aan '/help' en '/commands').
Eerst zoeken we het OnPlayerCommandText-callback op. Je weet hoe dat moet. Daar maak je altijd je commands! Dus daar gaan we beginnen een command aan te maken
.
We beginnen met:
Hiermee geven we aan dat '/my-first-command' bestaat, nu gebeurt er nog helemaal niks, eerst zetten we onder de includes:
Een paar kleuren, in de tut die ik aan het begin van deze tut heb gegeven staat wat dit inhoud. Maar met dit doet het command nog steeds niets, dit moet veranderen vind ik. Dit gaan we doen met 'SendClientMessage(playerid, kleur, "het bericht");'. We gaan iemand dit bericht verzenden: 'Je eerste command werkt!'.
Ik denk dat iedereen dit wel snapt, heb je nogsteeds vragen, PM me dan!
Nu gaan we al een iets moeilijker command maken, we gaan namelijk het statement 'else' gebruiken, we gaan if midden in een command zetten, we gaan een command maken voor alleen rcon admins..
We beginnen net als net met een stukje om een command aan te geven.
Er zal nu weer weinig gebeuren, nu gaan we aangeven dat iemand admin moet zijn, dit doen we zo:
We gaan nu jezelf 100% health geven, dit doen we met: SetPlayerHealth(playerid, 100); dus dan krijg je dit:
Dit moet denk ik ook nog te snappen zijn, we geven iemand 100 health. We gaan jezelf er ook nog eens 10000 dollar bij geven
. Dit gaan we doen met: GivePlayerMoney(playerid, 10000);.
Dan heb je dus dit:
Dit is ook te snappen, maar als je nou ook nog eens wapens en armour wilt? Dan moet je dit doen:
*Hiervoor heb je een link nodig, namelijk de weapon ID's --De Link!--
Nu hebben we gedaan wat er gebeurt als iemand is ingelogt met rcon admin, maar wat moet er gebeuren als iemand geen rcon admin is? We geven iemand een text, daarin zetten we: 'Je moet eerst inloggen met rcon admin(/rcon login [je ingestelde pw].'.
En dat is alweer een command, heb je vragen PM me
. Het command wat we nu gaan maken is eigenlijk hetzelfde, we gaan nu een auto fixen, het command noemen we '/fix'.
Nu gebeurt er helemaal niets als iemand niet in een auto zit. Daarvoor gebruiken we else weer. Kijk zo:
Weer met een simpele SendClientMessage, kom je er niet uit? PM me dan maar
je kan natuurlijk ook posten. Nu gaan we beginnen met een command waarbij iemand een stukje extra erbij moet zetten, dit commando word weer voor admins, dit komt er allemaal in:
- Naam is: /car
- Iemand moet het car ID invoeren
- Als dat niet gedaan is komt er een tekstje
- Als iemand een ongeldig ID heeft ingevoert lukt het ook niet.
- Als alles goed werkt dan tja krijgt hij een auto, daar word diegene gelijk in de auto gepropt.
Eerst zeggen we dat er nieuwe variabelen moeten worden gemaakt: zet dit boven je command!
Daarbij moet je ook wat onderaan je script zetten namelijk dit:
Dat valt niet veel aan te snappen, dit moet er gewoon staan.
Nu gaan we het command maken je zal denken dat dit moet maar dit is fout!:
Dat is dus fout! Zo moet het wel:
Je kan het ook anders doen maar ik raad je dit aan!
Nu gaan we opvragen of er wel wat is ingevult, want dan kan er natuurlijk geen car ingevult worden.
Nu word er nog geen car gespawned als je het goed doet, maar nu nog een paar dingen die fout kunnen gaan:
Dit zijn volgens mij alle dingen die fout kunnen gaan. Ik denk dat je dit moet snappen, anders pm je maar
.
Nu gaan we een lastig stukje coderen, het spawnen van de vehicle, dat doen we zo:
En nu moet ik stoppen, dus ik ga morgen verder met: Een paar dingen die ik niet heb gebruikt, maar die je vast en zeker een keer gaat gebruiken. Ik hoop dat ik het goed heb uitgelegt en het is mijn eerste tut
:$
W.I.P.
Bewerkt: door nick5556