JÁRMÛ EGY ADOTT SZEMÉLY SZÁMÁRA
Íme még egy TuT, melyben bemutatom, hogyan kell jármûvet készíteni, kizárólag egy adott személy számára.
Elõször is, egy változót kell létrehoznunk a szkript elején:
new Daniel; // a megnevezés nem számít, bármi lehet, de késõbb is azt használd
A második lépés a jármû lerakása a játékmódba. Keressétek meg az OnGameModeInit()-et és azon belül a meglévõ AddStaticVehicle(...)-ek alá (ha vannak) rakjátok be a jármûvet:
Daniel= AddStaticVehicle(...)
hogy a szerver tudja, ez az a jármû, melybe csak az adott személy szállhat bele. Ha nem ismeritek az AddStaticVehicle(...)-ot, látogassatok el ide:
http://wiki.sa-mp.com/wiki/AddStaticVehicle Daniel = AddStaticVehicle(451,1890.1632,1989.1708,13.4920,179.9223,6,6); // ez egy Turismo lesz az LV parkolóban
Most jön az összetettebb rész, OnPlayerStateChange használtával ellenõrizzük, hogy a játékos beült-e a jármûbe:
public OnPlayerStateChange(playerid, newstate, oldstate) {
new PlayerName[24];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
if(newstate == PLAYER_STATE_DRIVER) {
new Vehicle = GetPlayerVehicleID(playerid);
if(Vehicle == Daniel) {
if(strcmp(PlayerName,\"Daniel_Klaic\",true)){ // ellenõrizzük, hogy a játékos neve az-e, mint akinek a jármûvet készítettük
RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
SendClientMessage(playerid, 0x33AA33AA, \"Ez a jármû Daniel_Klaic tulajdona!\"); // üzenetet dobunk neki
}
}
}
return 1;
}
Ez lenne az egész! Ha minden úgy csináltatok, mint én, a jármûvet csak Daniel_Klaic vezetheti. Itt van, hogyan kéne, hogy kinézzen:
//a szkript elején:
new Daniel;
//az OnGameModeInit()-en vagy az OnFilterScriptInit()-en belül:
Daniel = AddStaticVehicle(451,1890.1632,1989.1708,13.4920,179.9223,6,6);
//OnPlayerStateChange
public OnPlayerStateChange(playerid, newstate, oldstate) {
new PlayerName[24];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
if(newstate == PLAYER_STATE_DRIVER) {
new Vehicle = GetPlayerVehicleID(playerid);
if(Vehicle == Daniel) {
if(strcmp(PlayerName,\"Daniel_Klaic\",true)){ // ellenõrizzük, hogy a játékos neve az-e, mint akinek a jármûvet készítettük
RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
SendClientMessage(playerid, 0x33AA33AA, \"Ez a jármû Daniel_Klaic tulajdona!\"); // üzenetet dobunk neki
}
}
}
return 1;
}
Remélem segítettem, ha valamit nem értetek, kérdezzetek lent!
Írta: [WebeR]SoaD123 (http://balkan-samp.com/forum/index.php?topic=8137.0)
Fordította: Y2K (2010. augusztus 1.)
Faxa grt xd
Szép. Nagyon jól jöhet sokaknak, mint nekem is. :)
Szép lett
Megy a lájk
Lenne egy kérdésem! Hogy kell megcsinálni több ilyet egy módba?
Úgy értem hogy lenne egy kocsi nekem [Hardy kocsija]
meg pl legye [Anonym kocsija] az h ne csak 1 névre szóló kocsi legyen hanem több is..
Na ezt jól megfogalmaztam xd Magyarul tömören: Hogy lehet több névre szóló kocsit létrehozni?
if(strcmp(PlayerName, \"Hardy\", true) || strcmp(PlayerName, \"Freddy\", true) || strcmp(PlayerName, \"Cookie\", true))
-> Ha a neved nem Hardy vagy Freddy vagy Cookie.
Nem úgy gondoltam hogy 1 jármûre...
Jelen pillanatban így néz ki, de szerveren nem mûködik.:
public OnGameModeInit()
{
//Admin cars
Hardy = SetVehicleNumberPlate(AddStaticVehicle(562,2351.9514,1405.0309,42.4802,89.4359,0,0), \"HaRdY =]\");
Maxi = SetVehicleNumberPlate(AddStaticVehicle(562,2351.8137,1412.0685,42.4790,88.3261,2,2), \"Maxi =]\");
ReXxX = SetVehicleNumberPlate(AddStaticVehicle(562,2352.0625,1408.6031,42.4797,90.5892,1,1), \"ReXxX =]\");
public OnPlayerStateChange(playerid, newstate, oldstate) {
new PlayerName[24];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
if(newstate == PLAYER_STATE_DRIVER) {
new Vehicle = GetPlayerVehicleID(playerid);
if(Vehicle == Hardy) {
if(strcmp(PlayerName,\"e[X]tazy.HaRdY=]\",true)){ // ellenõrizzük, hogy a játékos neve az-e
RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
SendClientMessage(playerid, 0x33AA33AA, \"Ezt a jármûvet csak HaRdY vezetheti!\");
}
}
return 1;
}
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
if(newstate == PLAYER_STATE_DRIVER) {
new Vehicle = GetPlayerVehicleID(playerid);
if(Vehicle == Maxi) {
if(strcmp(PlayerName,\"e[X]tazy.Maxi=]\",true)){ // ellenõrizzük, hogy a játékos neve az-e
RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
SendClientMessage(playerid, 0x33AA33AA, \"Ezt a jármûvet csak Maxi vezetheti!\");
}
}
return 1;
}
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
if(newstate == PLAYER_STATE_DRIVER) {
new Vehicle = GetPlayerVehicleID(playerid);
if(Vehicle == Durex) {
if(strcmp(PlayerName,\"e[X]tazy.duReXxX=]\",true)){ // ellenõrizzük, hogy a játékos neve az-e
RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
SendClientMessage(playerid, 0x33AA33AA, \"Ezt a jármûvet csak duReXxX vezetheti!\");
}
}
}
return 1;
}
E: A rendszámok mûködnek, csak az nem hogy hiába nem én vagyok Maxi vagy ReXxX ugyan úgy tudom vezetni..
Nem úgy gondoltam hogy 1 jármûre...
Jelen pillanatban így néz ki, de szerveren nem mûködik.:
public OnGameModeInit()
{
//Admin cars
Hardy = SetVehicleNumberPlate(AddStaticVehicle(562,2351.9514,1405.0309,42.4802,89.4359,0,0), \"HaRdY =]\");
Maxi = SetVehicleNumberPlate(AddStaticVehicle(562,2351.8137,1412.0685,42.4790,88.3261,2,2), \"Maxi =]\");
ReXxX = SetVehicleNumberPlate(AddStaticVehicle(562,2352.0625,1408.6031,42.4797,90.5892,1,1), \"ReXxX =]\");
public OnPlayerStateChange(playerid, newstate, oldstate) {
new PlayerName[24];
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
if(newstate == PLAYER_STATE_DRIVER) {
new Vehicle = GetPlayerVehicleID(playerid);
if(Vehicle == Hardy) {
if(strcmp(PlayerName,\"e[X]tazy.HaRdY=]\",true)){ // ellenõrizzük, hogy a játékos neve az-e
RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
SendClientMessage(playerid, 0x33AA33AA, \"Ezt a jármûvet csak HaRdY vezetheti!\");
}
}
return 1;
}
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
if(newstate == PLAYER_STATE_DRIVER) {
new Vehicle = GetPlayerVehicleID(playerid);
if(Vehicle == Maxi) {
if(strcmp(PlayerName,\"e[X]tazy.Maxi=]\",true)){ // ellenõrizzük, hogy a játékos neve az-e
RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
SendClientMessage(playerid, 0x33AA33AA, \"Ezt a jármûvet csak Maxi vezetheti!\");
}
}
return 1;
}
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
if(newstate == PLAYER_STATE_DRIVER) {
new Vehicle = GetPlayerVehicleID(playerid);
if(Vehicle == Durex) {
if(strcmp(PlayerName,\"e[X]tazy.duReXxX=]\",true)){ // ellenõrizzük, hogy a játékos neve az-e
RemovePlayerFromVehicle(playerid); // ha nem õ az, kidobjuk a jármûbõl
SendClientMessage(playerid, 0x33AA33AA, \"Ezt a jármûvet csak duReXxX vezetheti!\");
}
}
}
return 1;
}
E: A rendszámok mûködnek, csak az nem hogy hiába nem én vagyok Maxi vagy ReXxX ugyan úgy tudom vezetni..
Mód elejére:
new Hardy;
new Maxi;
new ReXxX;
OnGameModeInit alá:
Hardy = AddStaticVehicle(562,2351.9514,1405.0309,42.4802,89.4359,0,0);
Maxi = AddStaticVehicle(562,2351.8137,1412.0685,42.4790,88.3261,2,2);
ReXxX = AddStaticVehicle(562,2352.0625,1408.6031,42.4797,90.5892,1,1);
Majd:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new pName[24];
GetPlayerName(playerid, pName, 24);
if(newstate == PLAYER_STATE_DRIVER)
{
if(GetPlayerVehicleID(playerid) == Hardy)
{
if(strcmp(pName, \"Hardy\", true))
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, -1, \"Nem a tiéd az autó\");
}
}
else if(GetPlayerVehicleID(playerid) == Maxi)
{
if(strcmp(pName, \"Maxi\", true))
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, -1, \"Nem a tiéd az autó\");
}
}
else if(GetPlayerVehicleID(playerid) == ReXxX)
{
if(strcmp(pName, \"ReXxX\", true))
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, -1, \"Nem a tiéd az autó\");
}
}
}
return 1;
}
fajin lett!Grat.
Jó lett
Tökéletes, nekem is segített, hibátlan! Gratulálok :)!