GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: MK le 08 Avril 2010, 14:43:43
-
Voila, j'ai créer une nouvelle fonction Teleporter_joueur: (venant de syg)
TeleporterJoueur (playerid, Float:X, Float:Y, Float:Z, Float:Angle)
{
new vehicleid;
if (IsPlayerInAnyVehicle (playerid))
{
vehicleid = GetPlayerVehicleID(playerid);
SetPlayerPos (playerid, X, Y, Z);
SetVehiclePos (vehicleid, X, Y, Z);
SetVehicleZAngle (vehicleid, Angle);
PutPlayerInVehicle (playerid, vehicleid, 0);
SetCameraBehindPlayer (playerid);
}
else
{
SetPlayerPos (playerid, X, Y, Z);
SetCameraBehindPlayer (playerid);
}
}
pour ensuite créer une commande de téléportation a un interior:
if (strcmp("/hotring", cmdtext, true, 10) == 0)
{
SetPlayerInterior(playerid, 15);
msg(playerid, server, "* Server: Bienvenu aux hotrings!");
TeleporterJoueur (playerid, -1394.20, 987.62, 1032.96, 4.0);
return 1;
}
Et, voyant que cela marche impeccablement,
je voudrais, quand j'effectue la téléportation, être directement dans un véhicule.
mais je ne sais comment m'y prendre :/
merci de m'éclaircir!
-
Non pas vraiment Dizzy, ça n'a rien à voir.
Ton problème MK c'est que tu changes l'intérieur pour le joueur mais pas pour le véhicule.
Le mieux c'est de modifier ta fonction de téléport pour prendre en compte l'intérieur :
TeleporterJoueur (playerid, Float:X, Float:Y, Float:Z, Float:Angle, Interieur=0)
{
new vehicleid;
if (IsPlayerInAnyVehicle (playerid))
{
/* Si l'intérieur a changé */
if (Interior != GetPlayerInterior (playerid))
{
SetPlayerInterior (playerid, Interior);
LinkVehicleToInterior (playerVehicle, Interior);
}
vehicleid = GetPlayerVehicleID(playerid);
SetPlayerPos (playerid, X, Y, Z);
SetVehiclePos (vehicleid, X, Y, Z);
SetVehicleZAngle (vehicleid, Angle);
PutPlayerInVehicle (playerid, vehicleid, 0);
SetCameraBehindPlayer (playerid);
}
else
{
/* Si l'intérieur a changé */
if (Interior != GetPlayerInterior (playerid))
{
SetPlayerInterior (playerid, Interior);
LinkVehicleToInterior (playerVehicle, Interior);
}
SetPlayerPos (playerid, X, Y, Z);
SetCameraBehindPlayer (playerid);
}
}Avec cette fonction, si tu donnes pas l'intérieur, il sera mis à 0 par défaut. Tu n'as donc pas à retoucher ton script pour modifier tous les appels à cette fonction.
if (strcmp("/hotring", cmdtext, true, 10) == 0)
{
msg(playerid, server, "* Server: Bienvenu aux hotrings!");
TeleporterJoueur (playerid, -1394.20, 987.62, 1032.96, 4.0, 15);
return 1;
}
++
Syg
-
Merci 8)
-
Han , faut pas se fier à moi j'pense :(
J'suis qu'un débutant ><
On est tous passé par la.
Sauf Syg il a la science infuse xD
/me s'incline et dit " Ohhh Grand Syg maitre de pawno, fait que notre année de pawn soit bonne ^^
-
Han , faut pas se fier à moi j'pense :(
J'suis qu'un débutant ><
On est tous passé par la.
Sauf Syg il a la science infuse xD
/me s'incline et dit " Ohhh Grand Syg maitre de pawno, fait que notre année de pawn soit bonne ^^
Non, Syg il est passé par là aussi, sauf que c'était il y plus de 25 ans.
++
Syg
-
C'qui qui t'as appris ?
Le temps, la persévérance et la passion ensuite, j'en ai fait mon métier.
++
Syg
-
Pose moi ces questions en PM, on n'est pas dans ce topic pour parler de moi.
++
Syg