Jump to content
  • 0

pomoc [HELP]Zamknutí auta jen pro hráče


MiNiX

Dotaz

Zdarek :d. Potřebuju poradit. Mám takové auto u kterého chci aby do nej mohl vlézt jen admin ?. Povedlo se mi to ale fungovalo to tak že to hráče vyhodilo z auta teprv když do něj vlezl.. Chci aby do toho auta vubec nevlezl, prostě kdyby u toho auta stál a chtěl do něj vlízt tak by to nic neudělalo. :d. Napadla mně funkce SetVehicleParamsForPlayer. Tak jsem si o tom našel něco na wikině ale tomu co tam je tak vubec nerozumim :d. Mohl by mi někdo teda vysvětlit jak ta funkce funguje (Jestli by to tou funkcí šlo udělat to zamčení pro hráče) ?.

Link to comment
Share on other sites

10 odpovědí na tuto otázku

Recommended Posts

  • 0

Išlo, ale je to na prd.
Auto sa efektivne zamknúť nedá nikdy, čo viem z vlastnych skusenosti a s Loseitom (soby tu nemáme) a obzvlášť neefektívne je to u setvehparams..
Jediný spôsob je aj na OnPlayerEnterVehicle aj OnPlayerStateChanged skontrolovať či je v aute a či nie a portnúť ho na jeho vlastnú pozíciu (to ho vyhodí z auta).

Link to comment
Share on other sites

  • 0

ŘÍKAM ŽE TO TAKHLE MAM.. v OnPlayerUpdate mám 

if(IsPlayerInAnyVehicle(playerid))
{
if(GetPlayerVehicleID(playerid) == neznicauto)
{
if(!IsPlayerAdmin(playerid))
{
ClearAnimations(playerid);
SendClientMessage(playerid, COLOR_RED, "Nemùžeš nastoupit do panzer auta protože nejsi admin");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
}

Z auta ho to vyhodí až když si sednul... A tím pádem mi teda chceš říct že to nejde ?

a mimochodem v OnPlayerEnterVehicle to nejde, to je totiž časovej úsek když do toho auta nasedá.. a zjistit ID auta se dá až když v nom sedíš takže to nejde. Možná kdyby se dalo zjistit nějak ID auta na dálku tak už bych si poradil. Ale v pawnu je na zjištění ID vozidla jen funkce GetPlayerVehicleID... Aspon myslím.

Link to comment
Share on other sites

  • 0

1.) ŘÍKAM ŽE JINAK TO NENI BEZPEČNY :d.
2.) Nemáš to tak ako som povedal..


Namiesto RemovePlayerFromVehicle najprv zisti pozíciu hráča a potom ho na ňu teleportni.
A to isté vytvor aj v OnPlayerEnterVehicle.


Ak však chceš vedieť detailne jak to SetVParams funguje, tak ono tá procedúra nastaví premenné vozidla na hodnoty, ktoré zadáš do parametrov.
Ak zadáš alarm na zapnutý, tak auto začne pípať napríklad.

Link to comment
Share on other sites

  • 0

-_- Jako dík za pomoc.. Ale kolikrát mám říkat že to v OnPlayerEnterVehicle nejde !... OnPlayerEnterVehicle je časovej úsek když do toho vozidla nasedáš. A zjistit ID auta se dá až když v tom autě sedíš takže v Publicu OnPlayerEnterVehicle nic nezmužu. A mimochodem ta funkce SetVehicleParamsForPlayer, Já vím jak funguje. Já chtěl vědět proč tam na wikině je ten cyklus u toho a ty další věci, moje chyba sorry to jsem tam nahoru nenapsal.. A když bych to udělal tím způsobem jak si říkal že bych to skusil z tou souřadnicí tak ho to z toho auta taky vykopne až když si do něj sedne a to já nechci. Takže asi nic no.

Link to comment
Share on other sites

  • 0

0.) Nepoučuj, keď sa pýtaš.
1.) Môžeš to hovoriť kolkokrát chceš, keď je to blbosť.. Načo by to tam bolo keby to nefungovalo? :think:
2.) Na wiki som pozer SetVehParamsEx, SetVehParamsFoRPlayer a ani v jednom žiadne cykly niesu, ani žiadne iné veci. Daj link na tú tvoju wiki.
3.) Tá predposledná veta čo si napísal nemá zmysel.. Vyskúšaj si to OnPlayerEnterVeh a uvidíš, že to tak ide.

Link to comment
Share on other sites

  • 0

OnPlayerEnterVehicle

This callback is called when a player starts to enter a vehicle, meaning the player is not in vehicle yet at the time this callback is called.

 

vehicleid = ID of the vehicle the player is attempting to enter.

 

Takže GetPos, SetPos a čau

Link to comment
Share on other sites

  • 0
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == 5){
TogglePlayerControllable(playerid,1); //unfreeze hráče - zruší se mu všechny animace vč. nastupování
}
return 1;
}
Link to comment
Share on other sites

  • 0

Čo na tom cykle je take nepochopitelne?
Funkcia SVPFP určuje parametre vozidla pre hráča, takže cyklom tie parametre určí každému hráčovi :facepalm:.

Link to comment
Share on other sites

  • 0

Já jsem debílek... Já jsem tam měl špatnou podmínku 

if(GetPlayerVehicleID(playerid) == neznicauto)//<---------------------------- Tady.
{
if(!IsPlayerAdmin(playerid))
{
new Float:x;
new Float:y;
new Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, x, y, z);
SendClientMessage(playerid, COLOR_RED, "Nemužeš nastoupit do pancerauta, nejsi admin");
return 1;
}
}

Takže to mám takhle a to už mi funguje

if(vehicleid == neznicauto)<--------------------------------------- Dobře.
{
if(!IsPlayerAdmin(playerid))
{
new Float:x;
new Float:y;
new Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, x, y, z);
SendClientMessage(playerid, COLOR_RED, "Nemužeš nastoupit do pancerauta, nejsi admin");
return 1;
}
}

Kdyby jste mi to řekli hned že tam má být vehicleid místo GetPlayerVehicleID :DD. To ale nevadí, Dík moc všem za ochotu :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...