GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Lucifer le 16 Juillet 2010, 18:46:28
-
Bonjour à tous !
Je fais ce post comme fait pas certains membres de la communauté pour vous demander plusieurs petites chose.
Si cela est interdit, dites le moi tous de suite :).
- J'aimerais savoir, si, avec le système de maisons et bizzs standard du GF de Fear, on peut utiliser plusieurs fois le même intérieur ? Si non, comment faire ? Ajouter un hWorld (VirtualWorld ?).
- Comment çà ce fait que sa me freeze quand je monte dans une voiture qui m'appartient pas, qui appartient à une faction ou autre ?
- Où est-ce qu'on change le système de marche, la façon comme on cour ?
- Comment faire pour que quand je suis civil et que je tire avec le sdpistol, sa affiche pas " Tu n'es par Flic / ARmée....etc " ??
Code Tazer avec pistolet :
if((newkeys & KEY_FIRE) && GetPlayerWeapon(playerid) == 23)
{
if(IsPlayerConnected(playerid))
{
if(gTeam[playerid] == 2 || IsACop(playerid))
{
if(IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_GREY, " Ne peut pas l'utiliser étant dans la Voiture !");
return 1;
}
new suspect = GetClosestPlayer(playerid);
if(IsPlayerConnected(suspect))
{
if(PlayerCuffed[suspect] > 0)
{
SendClientMessage(playerid, COLOR_GREY, " Joueur déja menotté !");
return 1;
}
if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
{
if(gTeam[suspect] == 2)
{
SendClientMessage(playerid, COLOR_GREY, " Tu ne peu tazer un Flic / FBI / Army !");
return 1;
}
if(IsPlayerInAnyVehicle(suspect))
{
SendClientMessage(playerid, COLOR_GREY, " le suspect est dans une Voiture, le sortir d'abord !");
return 1;
}
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Vous avez été tazé par %s pendant 8 secondes.", sendername);
SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Vous tazé %s pour 8 secondes.", giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* %s tire avec son Tazer sur %s et le taze, Aie ça pique.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
GameTextForPlayer(suspect, "~r~Tazer", 2500, 3);
TogglePlayerControllable(suspect, 0);
PlayerCuffed[suspect] = 1;
PlayerCuffedTime[suspect] = 8;
}
else
{
SendClientMessage(playerid, COLOR_GREY, " personne pres de vous !");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Tu n'es pas un policier / FBI / Army !");
}
}//not connected
return 1;
}
Merci de me donner un coup de main :)
-
J'ai pas trop compris ce que tu voulais dire.... :-\ :-[
J'aimerais savoir si c'étais possible de faire de façon à ce que un joueur étant pas flic puisse tirer sans que sa affiche qui l'es pas flic
-
Bonjour, Pour répondre à tes questions :
-[1]- Je suis désolé de te décevoir mais tu ne peut pas remettre 2 fois le même intérieur, même en changeant le monde virtuel les positions d'entré et sortie reste pareil :(
-[2]- Ajoute la fonction TogglePlayerControllable dans la callback OnPlayerExitVehicle comme ceci :
public OnPlayerExitVehicle(playerid, vehicleid)
{
TogglePlayerControllable(playerid, 1);
-[3]- Cette question à déjà été poser plusieurs fois sur ce forum, une recherche ne fait pas de mal : http://www.gtaonline.fr/forums/index.php?action=search (http://www.gtaonline.fr/forums/index.php?action=search)
-[4]- Se reporter à la réponse de Dizzy !
:-X D0os-Nox :laugh
-
Oui mais sa veut dire qu'un civil peut pas utiliser un sdpistol ? :-
Double post
Merci bien mais il y es déjà :
public OnPlayerExitVehicle(playerid, vehicleid)
{
LastHealth[playerid] = NULL;
LastSpeed[playerid] = NULL;
new string[256];
new nomjoueur[MAX_PLAYER_NAME];
TogglePlayerControllable(playerid, 1);
for(new xx=0; xx<MAX_PLAYERS; xx++)
{
if(GetPlayerState(xx) == PLAYER_STATE_SPECTATING && gSpectateID[xx] == playerid && gSpectateType[xx] == ADMIN_SPEC_TYPE_VEHICLE)
{
TogglePlayerSpectating(xx, 1);
PlayerSpectatePlayer(xx, playerid);
gSpectateType[xx] = ADMIN_SPEC_TYPE_PLAYER;
}
}
if(IsPlayerInAnyVehicle(playerid) == 1 && ceinture[playerid] == 1)
{
GetPlayerName(playerid, nomjoueur, sizeof(nomjoueur));
SendClientMessage(playerid, COLOR_WHITE, "Vous avez retiré votre ceinture automatiquement !");
format(string, sizeof(string), "* %s descends et retire sa ceinture de sécuritée.", nomjoueur);
ceinture[playerid] = 0;
}
else if(IsPlayerInAnyVehicle(playerid) == 1 && ceinture[playerid] == 0)
{
ceinture[playerid] = 0;
return 1;
}
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 30.0, 5000);
printf("%s", string);
new playa;
TogglePlayerControllable(playa, 1);
TogglePlayerControllable(playerid,1);
new Vehicle = GetPlayerVehicleID(playerid);
VehicleStarted[Vehicle] = 0;
if (pizzajob[playerid] == 1)
{
SendClientMessage(playerid,COLOR_RED,"Vous annulé votre livraison de Pizza");
pizzajob[playerid] = 0;
gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
DisablePlayerCheckpoint(playerid);
return 1;
}
/*if(IsPlayerConnected(playerid))
{
for(new i = 0; i < sizeof(CarInfo); i++)
{
if(CarAutolock[vehicleid] == 1)
{
for(new j = 0; j < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(j))
{
SetVehicleParamsForPlayer(vehicleid,j,0,1);
GameTextForPlayer(playerid,"~w~Car~n~~r~Autolocked",2500,3);
return 1;
}
}
}
}
}*/
/*if(TMMissionActive == 1)
{
DisablePlayerRaceCheckpoint(playerid);
TMMissionActive = 0;
SendClientMessage(playerid, RED, "Vous avez quitter le vehicule,mission annulé.");
}
return 1;
}*/
//-----------------------------[ Début Système de gestion de véhicules (Gveh) ]----------------------------------------------------------------------------------------
if(PompeEssence[playerid] != 255)
{
KillTimer(TimerEssence[playerid]);
PompeEssence[playerid] = 255;
SendClientMessage(playerid,COL_GREEN,"Vous êtes sortit du vehicule pendant le pleins!");
}
if(TableauActive[playerid] == 1 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
TableauActive[playerid] = 6;
for(new b=0;b<sizeof(BarreVieVeh);b++)
{
TextDrawHideForPlayer(playerid,BarreVieVeh[b]);
}
}
//-----------------------------[ Fin Système de gestion de véhicules (Gveh) ]----------------------------------------------------------------------------------------
return 1;
}
-
RE : Remarque la fonction est utilisé 3 fois dans la même callbacks regarde :
TogglePlayerControllable(playerid, 1);
TogglePlayerControllable(playa, 1);
TogglePlayerControllable(playerid,1);
Donc, 1 suffit largement, sinon il y à des risque de bug ...
:-[ D0os-Nox :ohmy
-
Ok ok, merci bien et pour le problème de freeze de véhicule ?
-
Bonjour, Pour répondre à tes questions :
-[1]- Je suis désolé de te décevoir mais tu ne peut pas remettre 2 fois le même intérieur, même en changeant le monde virtuel les positions d'entré et sortie reste pareil :(
-[2]- Ajoute la fonction TogglePlayerControllable dans la callback OnPlayerExitVehicle comme ceci :
public OnPlayerExitVehicle(playerid, vehicleid)
{
TogglePlayerControllable(playerid, 1);
-[3]- Cette question à déjà été poser plusieurs fois sur ce forum, une recherche ne fait pas de mal : http://www.gtaonline.fr/forums/index.php?action=search (http://www.gtaonline.fr/forums/index.php?action=search)
-[4]- Se reporter à la réponse de Dizzy !
:-X D0os-Nox :laugh
Il me semble que ta reponse est deja ete citer :)
-
C'est bon là ? :-[
public OnPlayerExitVehicle(playerid, vehicleid)
{
LastHealth[playerid] = NULL;
LastSpeed[playerid] = NULL;
new string[256];
new nomjoueur[MAX_PLAYER_NAME];
TogglePlayerControllable(playerid, 1);
for(new xx=0; xx<MAX_PLAYERS; xx++)
{
if(GetPlayerState(xx) == PLAYER_STATE_SPECTATING && gSpectateID[xx] == playerid && gSpectateType[xx] == ADMIN_SPEC_TYPE_VEHICLE)
{
TogglePlayerSpectating(xx, 1);
PlayerSpectatePlayer(xx, playerid);
gSpectateType[xx] = ADMIN_SPEC_TYPE_PLAYER;
}
}
if(IsPlayerInAnyVehicle(playerid) == 1 && ceinture[playerid] == 1)
{
GetPlayerName(playerid, nomjoueur, sizeof(nomjoueur));
SendClientMessage(playerid, COLOR_WHITE, "Vous avez retiré votre ceinture automatiquement !");
format(string, sizeof(string), "* %s descends et retire sa ceinture de sécuritée.", nomjoueur);
ceinture[playerid] = 0;
}
else if(IsPlayerInAnyVehicle(playerid) == 1 && ceinture[playerid] == 0)
{
ceinture[playerid] = 0;
return 1;
}
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 30.0, 5000);
printf("%s", string);
new playa;
TogglePlayerControllable(playa, 1);
TogglePlayerControllable(playerid,1);
new Vehicle = GetPlayerVehicleID(playerid);
VehicleStarted[Vehicle] = 0;
if (pizzajob[playerid] == 1)
{
SendClientMessage(playerid,COLOR_RED,"Vous annulé votre livraison de Pizza");
pizzajob[playerid] = 0;
gPlayerCheckpointStatus[playerid] = CHECKPOINT_NONE;
DisablePlayerCheckpoint(playerid);
return 1;
}
/*if(IsPlayerConnected(playerid))
{
for(new i = 0; i < sizeof(CarInfo); i++)
{
if(CarAutolock[vehicleid] == 1)
{
for(new j = 0; j < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(j))
{
SetVehicleParamsForPlayer(vehicleid,j,0,1);
GameTextForPlayer(playerid,"~w~Car~n~~r~Autolocked",2500,3);
return 1;
}
}
}
}
}*/
/*if(TMMissionActive == 1)
{
DisablePlayerRaceCheckpoint(playerid);
TMMissionActive = 0;
SendClientMessage(playerid, RED, "Vous avez quitter le vehicule,mission annulé.");
}
return 1;
}*/
//-----------------------------[ Début Système de gestion de véhicules (Gveh) ]----------------------------------------------------------------------------------------
if(PompeEssence[playerid] != 255)
{
KillTimer(TimerEssence[playerid]);
PompeEssence[playerid] = 255;
SendClientMessage(playerid,COL_GREEN,"Vous êtes sortit du vehicule pendant le pleins!");
}
if(TableauActive[playerid] == 1 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
TableauActive[playerid] = 6;
for(new b=0;b<sizeof(BarreVieVeh);b++)
{
TextDrawHideForPlayer(playerid,BarreVieVeh[b]);
}
}
//-----------------------------[ Fin Système de gestion de véhicules (Gveh) ]----------------------------------------------------------------------------------------
return 1;
}