Pierwszą rzeczą jaką musimy zrobić to napisać funkcję do obsługi zdarzenia playerCommand:
function onPlayerCommand(playerid, command) {
// kod
}
addEvent("playerCommand", onPlayerCommand);
playerid to id gracza, który wpisał komendę, a command to komenda.Przykładowo możemy zrobić sobie funkcje która daje nam 100% HP (w GTA4 100% to 200 punktów życia).
function onPlayerCommand(playerid, command) {
local cmd = split(command, " "); // funkcja split podzieli nam komendę na spacje
if(cmd[0] == "/givehealth") { // cmd[0] to pierwsze słowo które zostało wpisane w komendzie
setPlayerHealth(playerid, 200);
sendPlayerMessage(playerid, "You set your health to 100%");
return 1;
}
return 0;
}
addEvent("playerCommand", onPlayerCommand);
Jeśli ktoś nie rozumie jak działa funkcja split() to wytłumacze to na przykładzie:
Jak wpiszemy komende "/komenda tekst1 tekst2 12345" i gdy użyjemy kodu
local cmd = split(command, " ");To tablica cmd będzie zawierała następujące wartości:
cmd[0] = "/komenda"; cmd[1] = "tekst1"; cmd[2] = "tekst2"; cmd[3] = "12345";Mam nadzieję, że teraz już wszystko jest jasne. Ważne też jest, że te dane są zawsze typu string więc trzeba używać funkcji tointeger() oraz tofloat() jeśli chcemy mieć liczbę lub liczbę zmiennoprzecinkową.
Teraz pokażę, jak zrobić komendę z parametrami. Przykładowo będzie to komenda do teleportowania się do gracza.
function onPlayerCommand(playerid, command) {
local cmd = split(command, " ");
if(cmd[0] == "/goto") {
// sprawdzamy czy podano wymaganą ilość parametrów
if(cmd.len() != 2) {
sendPlayerMessage(playerid, "UŻYCIE: /goto [ID]");
return 1;
}
// sprawdzamy czy taki gracz jest na serwerze
if(!isPlayerConnected(cmd[1].tointeger()) {
sendPlayerMessage(playerid, "Taki gracz nie jest polaczony.");
return 1;
}
// pobieramy pozycje podanego gracza
local pos = getPlayerCoordinates(cmd[1].tointeger());
// ustawiamy pozycje gracza, który wpisał komendę
setPlayerCoordinates(playerid, pos[0], pos[1], pos[2]);
// wyświetlamy komunikaty
sendPlayerMessage(playerid, "Teleportowales sie do "+getPlayerName(cmd[1].tointeger()));
sendPlayerMessage(cmd[1].tointeger(), getPlayerName(playerid)+" teleportowal sie do ciebie.");
return 1;
}
return 0;
}
addEvent("playerCommand", onPlayerCommand);
Na koniec pokażę jeszcze jak zrobić komendę z parametrami, z tym że ostatnim parametrem będzie tekst ze spacjami (na przykładzie prywatnych wiadomości).
function onPlayerCommand(playerid, command) {
local cmd = split(command, " ");
if(cmd[0] == "/pm" || cmd[0] == "/pw" || cmd[0] == "/w") {
// sprawdzamy czy podano wymaganą ilość parametrów
if(cmd.len() < 3) {
sendPlayerMessage(playerid, "UŻYCIE: /pm [ID] [Tekst]");
return 1;
}
// sprawdzamy czy taki gracz jest na serwerze
if(!isPlayerConnected(cmd[1].tointeger()) {
sendPlayerMessage(playerid, "Taki gracz nie jest polaczony.");
return 1;
}
// ucinamy tekst na długość 1) nazwy komendy 2) id gracza 3) dwóch spacji
local text = command.slice(cmd[0].len() + cmd[1].len() + 2);
// wysyłamy wiadomość
sendPlayerMessage(cmd[1].tointeger(), "PM od " + getPlayerName(playerid) + " [" + playerid + "]: " + text);
sendPlayerMessage(playerid, "PM wyslane do " + getPlayerName(cmd[1].tointeger()) + " [" + cmd[1].tointeger() + "]: " + text);
return 1;
}
return 0;
}
addEvent("playerCommand", onPlayerCommand);


Pobierz San Andreas Multiplayer w najnowszej wersji stabilnej 0.3d R2.
Pobierz Multi Theft Auto w najnowszej wersji stabilnej 1.3.








