Szerző Téma: ID megadása nem értem  (Megtekintve 894 alkalommal)

Nem elérhető Mokus

  • 608
    • Profil megtekintése
ID megadása nem értem
« Dátum: 2012. október 14. - 23:12:12 »
0 Show voters
Sziasztok nem értem hogy kell azt hogy a megadott idnek tegye azt amit akarunk PL:/asd id nekem teljesen mindegy mit csinál a játékosnak csak értsem hogy van ez hogy a megadott idnek hajtsa végre elõre is köszönöm

ID megadása nem értem
« Válasz #1 Dátum: 2012. október 14. - 23:56:24 »
0 Show voters

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.

Nem elérhető Mokus

  • 608
    • Profil megtekintése
ID megadása nem értem
« Válasz #2 Dátum: 2012. október 15. - 07:30:59 »
0 Show voters
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;
}
« Utoljára szerkesztve: 2012. október 15. - 07:36:11 írta Mokus »

Nem elérhető b1s

  • 2212
  • Faszidegbénulás
    • Profil megtekintése
ID megadása nem értem
« Válasz #3 Dátum: 2012. október 15. - 12:28:44 »
0 Show voters
Idézetet írta: Mokus date=1350279059\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28639\" data-ipsquote-contentclass=\"forums_Topic
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

ID megadása nem értem
« Válasz #4 Dátum: 2012. október 15. - 12:42:18 »
0 Show voters
Idézetet írta: Mokus date=1350279059\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"28639\" data-ipsquote-contentclass=\"forums_Topic
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 elérhető Mokus

  • 608
    • Profil megtekintése
ID megadása nem értem
« Válasz #5 Dátum: 2012. október 15. - 14:07:00 »
0 Show voters
Szal ezt az üzenetet neki ki fogja írni de a nevét nem vagy hogy értitek?

ID megadása nem értem
« Válasz #6 Dátum: 2012. október 15. - 16:01:25 »
+1 Show voters
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;
}

Nem elérhető Mokus

  • 608
    • Profil megtekintése
ID megadása nem értem
« Válasz #7 Dátum: 2012. október 15. - 20:29:47 »
0 Show voters
Köszönöm zárok egy egy teljes tutorial megy a respect

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal