-
Sziasztok hogy lehet azt megcsinalni hogy tankal spawnoljon le az emberke es ne tudjon kiszalni?
-
#include <a_samp>
new Tank[MAX_PLAYERS];
public OnPlayerSpawn(playerid)
{
new Float:X,Float:Y,Float:Z,Float:Angle;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,Angle);
Tank[playerid] = CreateVehicle(432, X,Y,Z,Angle, 0, 1, 60);
PutPlayerInVehicle(playerid,Tank[playerid],0);
for(new i=0; i < MAX_PLAYERS; i++)
{
if(i == playerid) continue;
SetVehicleParamsForPlayer(Tank[playerid],i,0,1);
}
return 1;
}
Nem én írtam!
-
nem rossz de a kiszállást nem oldottad meg!
Szerintem az bõven jó hogyha már ha ki szeretne szállni az illetõ akkor megöli a szerver
Ehhez ez a függvényt használd: OnPlayerExitVehicle
A kocsi felismeréséhez használd ezt:
if(vehicleid == 432)//Itt ellenõrizzük abba a kocsiba ül-e hisz nem szeretnénk hogy minden kocsiból ha kiszáll meghaljon :)
Teljes kód:
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(vehicleid == 432)
{
//Ide hogy mi történjen
}
return 1;
}
Remélem segítettem ha valami nem megy dobj Privát üzenetet
-
nem rossz de a kiszállást nem oldottad meg!
Szerintem az bõven jó hogyha már ha ki szeretne szállni az illetõ akkor megöli a szerver
Ehhez ez a függvényt használd: OnPlayerExitVehicle
A kocsi felismeréséhez használd ezt:
if(vehicleid == 432)//Itt ellenõrizzük abba a kocsiba ül-e hisz nem szeretnénk hogy minden kocsiból ha kiszáll meghaljon :)
Teljes kód:
public OnPlayerExitVehicle(playerid, vehicleid)
{
if(vehicleid == 432)
{
//Ide hogy mi történjen
}
return 1;
}
Remélem segítettem ha valami nem megy dobj Privát üzenetet
Ez se rossz, de nem ezt akarta ;)
Mivel .. gondolom.. egy \"World Of Tanks\"-es gm-rõl van szó, ezért KI SE LEHESSEN szállni.. nem hogy kiszáll és megöli.. bár, ezzel megoldható (a te kódoddal) hogy ha kiszáll, visszadobja...
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i,0,1);
Teljes megoldás tehát:
[pawn]
public OnPlayerSpawn(playerid)
{
new Float:X,Float:Y,Float:Z,Float:Angle;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,Angle);//Hely lekérés
Tank[playerid] = CreateVehicle(432, X,Y,Z,Angle, 0, 1, 60);
PutPlayerInVehicle(playerid,Tank[playerid],0); //Kocsiba tevés
SetVehicleParamsForPlayer(Tank[playerid],i,0,1);//Ajtók zárása
return 1;
}[/pawn]
-
Az ajtók zárása nem oldja meg a problémát, mert ki lehet szállni, de be nem. Én úgy oldanám meg, hogy spawnoláskor egy változóba elmentem a játékos tank azonosítóját. Tehát..
new jatekostank[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
jatekostank[playerid] = 0;
return 1;
}
public OnPlayerSpawn(playerid)
{
new Float:X,Float:Y,Float:Z,Float:Angle;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,Angle);//Hely lekérés
jatekostank[playerid] = CreateVehicle(432, X,Y,Z,Angle, 0, 1, 60);
PutPlayerInVehicle(playerid,jatekostank[playerid],0);
return 1;
}
// és most jön az ellenõrzés, hogy a játékos benne van-e a tankban
public OnPlayerUpdate(playerid)
{
if(jatekostank[playerid] != 0 && !IsPlayerInVehicle(playerid, jatekostank[playerid]))
{
PutPlayerInVehicle(playerid,jatekostank[playerid],0);
SendClientMessage(playerid, -1, \"MARADJ A TANKBAN!\");
}
return 1;
}
-
Koszonom sracok :D