GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ShaDowxx™ le 30 Octobre 2011, 10:33:11
-
Bonjour à tous.
Aujourd'hui, j'ai fais une petite recherche (et oui je sais faire des recherches moi :P) sur le Forum officiel de SA-MP dans la section française et je suis tombé sur ça. (Je dis encore merci à la personne qui a uploadé le code!)
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(GetVehicleModel(vehicleid) == 588)
{
new pskin = GetPlayerSkin(playerid);
if(pskin == 217)
{
return 1;
}
else
{
SendClientMessage(playerid, COULEUR_ROUGE, "Vous ne pouvez pas voler un Hotdog!");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
return 0;
}
Dans ce code le "RemovePlayerFromVehicle(playerid);" ne fonctionne pas et je ne sais pas pourquoi. Pouvez-vous m'aider? Merci d'avance!
PS: Sa serait aussi génial si vous pouvez me donner l'animation qui montre que la voiture est bloqué.
-
Il faut utiliser ce code la dans OnPlayerStateChange, vu que OnPlayerEnterVehicle est appelé avant que le joueur ne monte dans le véhicule donc tu ne peux pas le faire descendre du véhicule vu qu'il n'est pas dedans ^^
-
Le compilateur me fais une erreur.
C:\Users\J\Downloads\SA-MP Serveur\gamemodes\***.pwn(196) : error 017: undefined symbol "vehicleid"
Je dois faire quoi, je ne sais pas où le mettre, aidez moi s'il vous plaît.
-
Dans
public OnPlayerStateChange(playerid, newstate, oldstate)
Entre parenthèse ajoute
vehicleid
R@pid0
++
-
@rapido: Il est interdit d'ajouter ou de retirer des variables d'entrées d'une fonction qui est appelé d'une façon que tu ne peut contrôler.
En d'autres termes, les fonctions évènementielles ne doivent pas être modifier.
- Tu ne peux pas ajouter/retirer de variable.
- Tu ne peux pas modifier son nom.
- Tu peux modifier le nom des variables d'entrées.
-
Ah , exact j'avez pas remarquer , j'avez une petite pensez que cela marcherez mais exact une erreur affiche ^^
C:\Users\*******\Desktop\All\Pawno\pawno\test.pwn(109) : error 025: function heading differs from prototype
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Exact merci tous de même de me l'avoir dit ^^
-
Vous ne savez pas comment je pourrais faire?
-
T'as qu'a creer une variable :
new vehicleid = GetPlayerVehicleID(playerid)
-
Exact tu à raison je vient de test , si tu le mes comme ceci
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehicleid) == 588)
{
new pskin = GetPlayerSkin(playerid);
if(pskin == 217)
{
return 1;
}
else
{
SendClientMessage(playerid, COULEUR_ROUGE, "Vous ne pouvez pas voler un Hotdog!");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
return 1;
}
Bonne idée Sunaxx ^^
-
Ce code n'est pas bon, il faut que tu test si le joueur monte en véhicule d'abord.
-
Comme ça non? :
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid,vehicleid))
{
if(GetVehicleModel(vehicleid) == 588)
{
new pskin = GetPlayerSkin(playerid);
if(pskin == 217)
{
return 1;
}
else
{
SendClientMessage(playerid, COLOR_A1, "Vous ne pouvez pas voler un Hotdog!");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
}
return 1;
}
-
Merci pour vos code, je vais essayer demain.
Cordialement
-
<?php
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER) // Si le joueur est maintenant conducteur
{
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 588) // Qu'il conduit un Hotdog
{
if(GetPlayerSkin(playerid) != 217) // Qu'il n'a pas le skin 217
{
SendClientMessage(playerid, COULEUR_ROUGE, "Vous ne pouvez pas voler un Hotdog!"); // On l'averti
RemovePlayerFromVehicle(playerid); // ..et le vire !
}
}
}
return 1;
}
En gros ca se resume comme ca :
- Si le joueur entre dans un hot dog avec un skin different de celui-ci (http://wiki.sa-mp.com/wiki/Image:Skin_217.png), on le vire !
Spiirou
++