• 23 Avril 2025, 07:54:09


Auteur Sujet: Problème avec ce code.  (Lu 1190 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne ShaDowxx™

  • We are cats.
  • *
  • Grand Banditisme
  • Messages: 706
    • Voir le profil
Problème avec ce code.
« 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!)


Code: (pawn) [Sélectionner]

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é.

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Problème avec ce code.
« Réponse #1 le: 30 Octobre 2011, 10:49:43 »
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 ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne ShaDowxx™

  • We are cats.
  • *
  • Grand Banditisme
  • Messages: 706
    • Voir le profil
Re : Problème avec ce code.
« Réponse #2 le: 30 Octobre 2011, 13:17:06 »
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.

Hors ligne rapido

  • Pro-scripteur
  • *
  • Bandit
  • R@pido
  • Messages: 270
    • Voir le profil
Re : Problème avec ce code.
« Réponse #3 le: 30 Octobre 2011, 13:40:56 »
Dans
public OnPlayerStateChange(playerid, newstate, oldstate)Entre parenthèse ajoute
vehicleid
R@pid0
++

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Problème avec ce code.
« Réponse #4 le: 30 Octobre 2011, 14:01:06 »
@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.
« Modifié: 30 Octobre 2011, 14:03:21 par Xartrick »

Hors ligne rapido

  • Pro-scripteur
  • *
  • Bandit
  • R@pido
  • Messages: 270
    • Voir le profil
Re : Problème avec ce code.
« Réponse #5 le: 30 Octobre 2011, 14:27:25 »
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 ^^
« Modifié: 30 Octobre 2011, 14:31:57 par rapido »

Hors ligne ShaDowxx™

  • We are cats.
  • *
  • Grand Banditisme
  • Messages: 706
    • Voir le profil
Re : Problème avec ce code.
« Réponse #6 le: 30 Octobre 2011, 14:39:30 »
Vous ne savez pas comment je pourrais faire?

Hors ligne Sunaxx

  • *
  • Nouveau
  • Messages: 14
    • Voir le profil
Re : Problème avec ce code.
« Réponse #7 le: 30 Octobre 2011, 16:57:15 »
T'as qu'a creer une variable :

new vehicleid = GetPlayerVehicleID(playerid)

Hors ligne rapido

  • Pro-scripteur
  • *
  • Bandit
  • R@pido
  • Messages: 270
    • Voir le profil
Re : Problème avec ce code.
« Réponse #8 le: 30 Octobre 2011, 17:09:56 »
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 ^^

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Problème avec ce code.
« Réponse #9 le: 30 Octobre 2011, 17:49:13 »
Ce code n'est pas bon, il faut que tu test si le joueur monte en véhicule d'abord.



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Sunaxx

  • *
  • Nouveau
  • Messages: 14
    • Voir le profil
Re : Problème avec ce code.
« Réponse #10 le: 30 Octobre 2011, 18:18:58 »
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;
}

Hors ligne ShaDowxx™

  • We are cats.
  • *
  • Grand Banditisme
  • Messages: 706
    • Voir le profil
Re : Problème avec ce code.
« Réponse #11 le: 30 Octobre 2011, 18:37:15 »
Merci pour vos code, je vais essayer demain.

Cordialement

Hors ligne spiirou

  • *
  • L'avenir appartient à ceux qui se lèvent
  • Messages: 866
    • Voir le profil
Re : Problème avec ce code.
« Réponse #12 le: 30 Octobre 2011, 21:46:30 »
<?php

public OnPlayerStateChange(playeridnewstateoldstate)
{
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(playeridCOULEUR_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, on le vire !

Spiirou
++