CMD:health(playerid, params[])
{
new giveplayerid;
new giveplayer[MAX_PLAYER_NAME];
new string[128];
if(sscanf(params, \"u\", giveplayerid)) return SendClientMessage(playerid, SZINKOD, \"Használat: /health [Játékos]\"); // u = Játékos (ez megegyezik a giveplayerid változóval)
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, SZINKOD, \"Érvénytelen Játékos ID\"); // Ha a beírt játékos id je nem létezik
GetPlayerName(playerid, giveplayer, sizeof(giveplayer)); // Lekérdezzük a játékos nevét
format(string, sizeof(string), \"Feltöltötted %s életét!\", giveplayer); // Formázzuk a sztringet és megadjuk a szöveget
SendClientMessage(playerid, SZINKOD, string); // Kiírjuk a szöveget
SetPlayerHealth(giveplayerid, 100); // Feltöltjük az általunk beírt játékosnak az életét 100-ra
return 1;
}
Szerintem ha az alapokat tudod akkor nem okoz nehézséget. :)
Ha kérdésed van írj.
Ha jól értettem így van az hogy csak neki tegye meg az üzenetet
#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <colors>
CMD:uzenet(playerid,params[])
{
new giveplayerid;
if(sscanf(params, \"u\", giveplayerid)) return SendClientMessage(playerid, COLOR_RED, \"Használat: /uzenet [Játékos]\");
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, \"Érvénytelen Játékos ID\");
SendClientMessage(giveplayerid,COLOR_RED,\"Végre hajtották rajtad az /uzenet parancsot\");
return 1;
}
Ha jól értettem így van az hogy csak neki tegye meg az üzenetet
#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <colors>
CMD:uzenet(playerid,params[])
{
new giveplayerid;
if(sscanf(params, \"u\", giveplayerid)) return SendClientMessage(playerid, COLOR_RED, \"Használat: /uzenet [Játékos]\");
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, \"Érvénytelen Játékos ID\");
SendClientMessage(giveplayerid,COLOR_RED,\"Végre hajtották rajtad az /uzenet parancsot\");
return 1;
}
Nem ártana a COLOR_RED definíciója :
#define COLOR_RED 0xff0000AA
Ha jól értettem így van az hogy csak neki tegye meg az üzenetet
#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <colors>
CMD:uzenet(playerid,params[])
{
new giveplayerid;
if(sscanf(params, \"u\", giveplayerid)) return SendClientMessage(playerid, COLOR_RED, \"Használat: /uzenet [Játékos]\");
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_RED, \"Érvénytelen Játékos ID\");
SendClientMessage(giveplayerid,COLOR_RED,\"Végre hajtották rajtad az /uzenet parancsot\");
return 1;
}
Igen, így van, viszont ez csak azt írja ki amit a szkript tartalmaz (tehát a giveplayerid játékos nevét nem, se az üzenetet)
Nem.
SendClientMessage- üzenetet küld
playerid - aki beírta a parancsot
színkód- egyértelmû..
\"üzenet\" - dettó
létre kell hozni egy giveplayer változót (lehet más is a neve) amit a játékos nevének a kiírására fogunk használni, és még egy változót amit a mi nevünknek a kiírására használunk (pName pl.)
new giveplayer[MAX_PLAYER_NAME];
new pName[MAX_PLAYER_NAME]
Majd a késõbbiekben \"tudatni\" a móddal hogy a giveplayer az annak a neve akinek beírtad az idjét (giveplayer = giveplayerid azonosítója)
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
ezután formázni kell a stringet (amit kiír a szerver) hogy tudjuk használni, majd megadjuk a szöveget és hogy hol írja ki a játékos nevét/üzenetet.
format(string, sizeof(string), \"%s üzenetet küldött neked.\", pName);
Ezután megadjuk hogy írja ki a szerver.
SendClientMessage(giveplayerid, SZINKOD, string);
SendClientMessage - kiír egy üzenetet
giveplayerid - annak a játékosnak akinek beírtad az azonosítóját
string - azt írja ki amit fentebb megadtunk
Így csak azt írja ki a másik játékosnak hogy: \"Mokus üzenetet küldött neked.\"
Ha azt szeretnénk hogy nekünk is kiírja akkor 3 függvényt megismétlünk kicsit másképp.
GetPlayerName(playerid, pName, sizeof(pName));
Egyenlõvé tesszük a nevedet a pName változóval.
format(str, sizeof(str), \"Üzenetet küldtél %s-nak/nek.\", giveplayer);
Formázzuk a sztringet hogy tudjuk használni
Megadjuk az üzenetet.
giveplayer - a %s annak a neve akinek az üzenetet küldtük.
Viszont üzenetet még mindig nem küld neki, ezért a parancsot így csináljuk:
new uzenet[128];
if(sscanf(params, \"us\", giveplayerid, uzenet)) return SendClientMessage(playerid, SZINKOD, \"Használat: /pm [iD] [Üzenet]\");
\"us\" - u = játékos, s = üzenet (nem szó!)
u = giveplayerid-vel
s = uzenet-tel
Lejjebb pedig értelemszerûen így kell:
format(str, sizeof(str), \"Üzenetet küldtél %s-nak/nek, üzenet: %s\", giveplayer, uzenet);
format(str, sizeof(str), \"%s üzenetet küldött neked, üzenet: %s\", pName, uzenet);
Készen így néz ki:
CMD:pm(playerid, params[])
{
new giveplayerid;
new giveplayer[MAX_PLAYER_NAME];
new pName[MAX_PLAYER_NAME];
new uzenet[128];
new string[128];
if(sscanf(params, \"us\", giveplayerid, uzenet)) return SendClientMessage(playerid, 0xAAAAAA, \"Használat: /pm [iD] [Üzenet]\");
if(giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xAAAAAA, \"Érvénytelen ID\");
GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
format(str, sizeof(str), \"Üzenetet küldtél %s-nak/nek, üzenet: %s\", giveplayer, uzenet);
SendClientMessage(playerid, 0xAAAAAA, string);
GetPlayerName(giveplayerid, pName, sizeof(pName));
format(str, sizeof(str), \"%s üzenetet küldött neked, üzenet: %s\", pName, uzenet);
SendClientMessage(giveplayerid, 0xAAAAAA, string);
return 1;
}