Jump to content
  • 0

pomoc Zabití hráče ve vozidle


Apache

Dotaz

Zdravím, mohl by mi někdo poradit jak udělat, že když zničím vozidlo, ve kterém je nějaký hráč, tak mi to přičte zabití? ( Zabiti[playerid]++; )  

A další věc, jak zabránit hráči, aby kdykoli vystoupil z vozidla? Dělám to do svého gamemodu a patří to mezi hlavní věci, které ten mod "naplňují", tak prosím nějakou dobrou duši o pomoc :)

Link to comment
Share on other sites

12 odpovědí na tuto otázku

Recommended Posts

  • 0
to první když zničíš vozidlo a je tam hráč tak ti to přičtě dáš do publicu onplayerdeath 

 

    if(killerid != INVALID_PLAYER_ID) // když je id správné

    {

  if(IsPlayerInAnyVehicle(playerid)) { // když je ve vozidle ten hráč kterého zabil

   zabiti[killerid] ++; // přičtě zabití

   }

       

a to druhé

když hráč opustí auto onplayerleavevehicle tak zkus zjistit to auto přes getplayervehicle a pak zase putplayerinvehicle, mělo by to oboje fungovat ale nejsem si jistý jak to udělat lépe nebo také se to dá udělat přes onplayerstate což asi bude lepší když je řidič třeba

Edited by LaMaCZE
Link to comment
Share on other sites

  • 0

Děkuju moc :) s tím OnPlayerExitVehicle sem to udělal takhle:

new vozidlo = GetPlayerVehicleID(playerid);

PutPlayerInVehicle(playerid,vozidlo,0);

Bohužel nefunguje.. 

Link to comment
Share on other sites

  • 0

Děkuju moc :) s tím OnPlayerExitVehicle sem to udělal takhle:

new vozidlo = GetPlayerVehicleID(playerid);

PutPlayerInVehicle(playerid,vozidlo,0);

Bohužel nefunguje.. 

Hele tak to nevím jestli to nejde nic jiného mě nenapadá ale můžeš to zkusit přes onplayerstatechange což je lepší než onplayerentervehicle/onplayerleavevehicle protože to určí přímo třeba když používáš onplayerentervehicle tak to je jen když dá enter u vozidla ale nemusí nastoupit a zapne se to...

zkus

onplayerstatechange:

 

if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER) // když vystoupí
{

new vozidlo = GetPlayerVehicleID(playerid);

PutPlayerInVehicle(playerid,vozidlo,0);

}
 
Pokud nepůjde tak už nevím sorry
**EDIT:Možná už to bude chtít zjistit to id když třeba vlezl do toho auta :) a pak jen když vystoupí to použít
Edited by LaMaCZE
Link to comment
Share on other sites

  • 0

Tak tohle taky nejde.. ale díky že sis našel čas :)

V pohodě :) nevím ale jestli jsi si přečetl ten edit co jsem tam psal - Možná už to bude chtít zjistit to id když třeba vlezl do toho auta  :) a pak jen když vystoupí to použít , a to by mohlo jít :)

pokud jsi zkusil tak už nevím no

 

což je 

 

if(newstate == PLAYER_STATE_DRIVER && oldstate == PLAYER_STATE_ONFOOT) // jenom prohozené ONFOOT a DRIVER

{

new vozidlo = GetPlayerVehicleID(playerid);

}
 
potom to naopak s tím že ho to - putinvehicle
Edited by LaMaCZE
Link to comment
Share on other sites

  • 0

Myslíš něco jako že když hráč vstoupí do vozidla tak se nastaví třeba VeVozidle[playerid] = 1; a potom do OnPlayerExitVehicle

if(VeVozidle == 1)

{

new vozidlo = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, vozidlo, 0);

return 1;

}

 

??

Link to comment
Share on other sites

  • 0

new vozidlo;

GetPlayerVehicleID(vozidlo);

~> Proč? Proč by nemohl deklarovat lokálně proměnnou a přiřadit jí rovnou hodnotu id toho vozidla?

 

 

~> Ty nemusíš zjišťovat id toho vozidla, ve kterém je, které opouští. Callback ho už zná... stačí jenom:

PutPlayerInVehicle(playerid, vehicleid, 0);
Link to comment
Share on other sites

  • 0

Mohl by mi to někdo prosím vysvětlit? :d Sedím u toho už dvě hodiny.. Dokonce sem si nastavil timer, do OnPlayerExitVehicle který by mě měl hodit po 3 sekundách zpět do sedadla.. Mám tam globální proměnnou kterou používám tak nevím kde je problém..

 

new vozidlo; /*****/

public OnPlayerSpawn(playerid)
{
CZrustler[0] = CreateVehicle(476 ,307.4781, 2052.8440, 18.3455, 179.1676, -1, -1, 1);
SetPlayerPos(playerid, 307.4781, 2052.8440, 18.3455);
PutPlayerInVehicle(playerid, CZrustler[0], 0);
GetPlayerVehicleID(vozidlo); /*****/
PancerLetadlo(playerid);
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    SetTimer("ZpetDoVozidla",3000,false);
return 1;
}

forward ZpetDoVozidla(playerid, vehicleid);
public ZpetDoVozidla(playerid, vehicleid)
{
	PutPlayerInVehicle(playerid, vozidlo, 0);  /*****/
	return 1;
}

Link to comment
Share on other sites

  • 0

Vytvořil sis callback s parametry, takže nemůžeš použít SetTimer, ale SetTimerEx, který pracuje i s parametry. Navíc druhý parametr vehicleid je úplně zbytečný, protože ho nikde nevyužíváš (máš vytvořenou globální proměnnou). A nebo se jednoduše vykašli na globální proměnnou, nechej tam i ten parametr vehicleid a v OnPlayerExitVehicle mu předej jak playerid tak i vehicleid. ;)

 

Edit:

public OnPlayerSpawn(playerid)
{
    CZrustler[0] = CreateVehicle(476 ,307.4781, 2052.8440, 18.3455, 179.1676, -1, -1, 1);
    SetPlayerPos(playerid, 307.4781, 2052.8440, 18.3455);
    PutPlayerInVehicle(playerid, CZrustler[0], 0);
    PancerLetadlo(playerid);
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    SetTimerEx("ZpetDoVozidla",3000,false, "ii", playerid, vehicleid);
return 1;
}

forward ZpetDoVozidla(playerid, vehicleid);
public ZpetDoVozidla(playerid, vehicleid)
{
	PutPlayerInVehicle(playerid, vehicleid, 0);
	return 1;
}
Edited by GaRGoyLeS
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...