• 06 Juin 2026, 01:07:53


Auteur Sujet: Alarm  (Lu 5066 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Alarm
« Réponse #15 le: 24 Novembre 2011, 07:53:06 »
Cette fonction n'existe pas nativement sous SA-MP, il faut la coder soit même ^^



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

Hors ligne Ashley11

  • C++ user
  • *
  • Bandit
  • Messages: 260
    • Voir le profil
Re : Alarm
« Réponse #16 le: 24 Novembre 2011, 12:38:40 »
Je suis d'accord, elle n'est pas par default, mais l'include "uf.inc" permet de rajouter certaines Fonction complémentaire  ;)

http://wiki.sa-mp.com/wiki/Useful_Callbacks#Useful_Callbacks_.28uf.inc.29

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Alarm
« Réponse #17 le: 24 Novembre 2011, 17:47:50 »
Elle n'est donc pas native, c'est bien ce qui est dit !
C'est toujours un bon exercice d'écrire des fonctions, après, libre à toi de la faire, c'est simplement pour t'améliorer.

Hors ligne Ashley11

  • C++ user
  • *
  • Bandit
  • Messages: 260
    • Voir le profil
Re : Alarm
« Réponse #18 le: 24 Novembre 2011, 18:38:55 »
Bon voilà mon code, sa ne marche toujours pas :

EDIT : L'erreur doit venir de pName !

forward AlarmON(playerid)
public AlarmON(playerid)
{
    new vehid = GetPlayerVehicleID(playerid);
    new proprio[MAX_PLAYER_NAME];
proprio = VehicleInfo[vehid][vOwner];
    new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));

if(IsPlayerConnected(playerid))
{
   if(!strcmp(pName, VehicleInfo[vehid][vOwner], true)
   {
  if(IsAnOwnableCar(vehid))
{
if(VehicleInfo[vehid][vAlarm] == 1)
{
SendClientMessage(GetPlayerID(proprio), COLOR_RED, ".:[ALARM]:.Votre Voiture est en train de se faire voler !");
SendClientMessage(playerid, COLOR_RED, ".:[ALARM]:. Vous tentez de voler une voiture de niveau 1 !");
}
if(VehicleInfo[vehid][vAlarm] == 2)
{
SendClientMessage(GetPlayerID(proprio), COLOR_RED, ".:[ALARM]:.Votre Voiture est en train de se faire voler !");
SendClientMessage(playerid, COLOR_RED, ".:[ALARM]:. Vous tentez de voler une voiture de niveau 2 !");
PlayAlarmSound(vehid, 30.0, 30000);
}
}
return 1;
}
}
return 1;
}
« Modifié: 24 Novembre 2011, 18:49:50 par Ashley11 »

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Alarm
« Réponse #19 le: 24 Novembre 2011, 19:02:08 »
L'erreur vient surtout du fait que tu as oublié de fermer les parenthèse ici

if(!strcmp(pName, VehicleInfo[vehid][vOwner], true)



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

Hors ligne Karting06

  • *
  • Grand Banditisme
  • Messages: 650
    • Voir le profil
Re : Alarm
« Réponse #20 le: 24 Novembre 2011, 19:20:46 »
Pour l'alarme, pourquoi est-ce que tu n'utilises pas l'alarme de 0.3c ?

Hors ligne Ashley11

  • C++ user
  • *
  • Bandit
  • Messages: 260
    • Voir le profil
Re : Alarm
« Réponse #21 le: 24 Novembre 2011, 19:29:27 »
J'ai jamais essayé...


Sinon personne peut m'aider pour mon code ?
« Modifié: 24 Novembre 2011, 22:25:20 par Ashley11 »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Alarm
« Réponse #22 le: 25 Novembre 2011, 20:02:05 »
Tu n'as pas lu le message de Ssk !

Hors ligne Ashley11

  • C++ user
  • *
  • Bandit
  • Messages: 260
    • Voir le profil
Re : Alarm
« Réponse #23 le: 25 Novembre 2011, 22:48:49 »
Sisi, mais celà viens pas de ça...

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Alarm
« Réponse #24 le: 26 Novembre 2011, 16:28:05 »
Renvoi nous le code que tu as sous les yeux en ce moment.

Hors ligne Ashley11

  • C++ user
  • *
  • Bandit
  • Messages: 260
    • Voir le profil
Re : Alarm
« Réponse #25 le: 26 Novembre 2011, 18:00:03 »
forward AlarmON(playerid)
public AlarmON(playerid)
{
    new vehid = GetPlayerVehicleID(playerid);
    new proprio[MAX_PLAYER_NAME];
proprio = VehicleInfo[vehid][vOwner];
    new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));

if(IsPlayerConnected(playerid))
{
    if(!strcmp(pName, proprio, false))
    {
    if(IsAnOwnableCar(vehid))
{
if(VehicleInfo[vehid][vAlarm] == 1)
{
SendClientMessage(GetPlayerID(proprio), COLOR_RED, ".:[ALARM]:.Votre Voiture est en train de se faire voler !");
SendClientMessage(playerid, COLOR_RED, ".:[ALARM]:. Vous tentez de voler une voiture de niveau 1 !");
}
if(VehicleInfo[vehid][vAlarm] == 2)
{
SendClientMessage(GetPlayerID(proprio), COLOR_RED, ".:[ALARM]:.Votre Voiture est en train de se faire voler !");
SendClientMessage(playerid, COLOR_RED, ".:[ALARM]:. Vous tentez de voler une voiture de niveau 2 !");
PlayAlarmSound(vehid, 30.0, 30000);
}
}
}
}
return 1;
}

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Alarm
« Réponse #26 le: 26 Novembre 2011, 19:35:28 »
J'ai changé un peu le code pour qu'il soit plus compréhensible, mais pratiquement rien ne change, tu peux donc l'utiliser tel-quelle.
Pour savoir d'où vient le problème, j'ai posé des lignes de debugs à des emplacements statégiques, dit nous se qu'il en sort.


forward AlarmON(playerid)

public AlarmON(playerid)
{
printf("CALL:      AlarmOn(%i)", playerid);

new iVehicleID              = GetPlayerVehicleID(playerid);
new sOwner[MAX_PLAYER_NAME] = VehicleInfo[iVehicleID][vOwner];
new iOwner                  = GetPlayerID(sOwner);
new sName[MAX_PLAYER_NAME];

GetPlayerName(playerid, sName, sizeof(sName));

printf("VARIABLE:  iVehicleID: %i", iVehicleID);
printf("VARIABLE:  sOwner:     %s", sOwner);
printf("VARIABLE:  iOwner:     %i", iOwner);
printf("VARIABLE:  sName:      %s", sName);

if (IsPlayerConnected(playerid))
{
printf("CONDITION: %i is connected", playerid);

if (!(strcmp(sName, sOwner, false)))
{
printf("CONDITION: %s = %s", sName, sOwner);

if (IsAnOwnableCar(iVehicleID))
{
printf("CONDITION: %i is ownable", iVehicleID);
printf("VARIABLE:  %i alarm level.", VehicleInfo[iVehicleID][vAlarm]);

if (VehicleInfo[iVehicleID][vAlarm] == 1)
{
SendClientMessage(iOwner, COLOR_RED, ".:[ALARM]:.Votre Voiture est en train de se faire voler !");
SendClientMessage(playerid, COLOR_RED, ".:[ALARM]:. Vous tentez de voler une voiture de niveau 1 !");
}
else if (VehicleInfo[iVehicleID][vAlarm] == 2)
{
SendClientMessage(iOwner, COLOR_RED, ".:[ALARM]:.Votre Voiture est en train de se faire voler !");
SendClientMessage(playerid, COLOR_RED, ".:[ALARM]:. Vous tentez de voler une voiture de niveau 2 !");
PlayAlarmSound(iVehicleID, 30.0, 30000);
}
}
else
{
printf("CONDITION: %i isn't ownable", iVehicleID);
}
}
else
{
printf("CONDITION: %s != %s", sName, sOwner);
}
}
else
{
printf("CONDITION: %i is connected", playerid);
}

printf("END:       AlarmON");

return 1;
}

Hors ligne Ashley11

  • C++ user
  • *
  • Bandit
  • Messages: 260
    • Voir le profil
Re : Alarm
« Réponse #27 le: 26 Novembre 2011, 20:37:47 »
Citer
[20:35:27] CALL:      AlarmOn(0)
[20:35:27] VARIABLE:  iVehicleID: 0
[20:35:27] VARIABLE:  sOwner:     Pt˜¼à(Lp”¸Ü
[20:35:27] VARIABLE:  iOwner:     -1
[20:35:27] VARIABLE:  sName:      aSh_smith
[20:35:27] CONDITION: 0 is connected
[20:35:27] CONDITION: aSh_smith != Pt˜¼à(Lp”¸Ü
[20:35:27] END:       AlarmON

Celà dit, je comprend pas pourquoi VehInfo[pid][vOwner] ne vaut pas aSh_smith ! j'avais pourtant déjà essayer un print la derniere fois et elle me retourner bien mon nom...


EDIT : Si on entre dans la 2ème boucle c'est que sName != sOwner et non le contraire, de même pour le "else"
« Modifié: 26 Novembre 2011, 20:48:46 par Ashley11 »

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Alarm
« Réponse #28 le: 26 Novembre 2011, 20:50:08 »
Tu vois d'où vient le problème je pense.
La variable VehicleInfo[iVehicleID][vOwner] ne doit pas être une chaîne de caractère.
Pour voir ce quelle contient, remplace la ligne ...


printf("VARIABLE:  sOwner:     %s", sOwner);
... par ...

printf("VARIABLE:  sOwner:     %i", sOwner);
... et montre moi le résultat.

Hors ligne Ashley11

  • C++ user
  • *
  • Bandit
  • Messages: 260
    • Voir le profil
Re : Alarm
« Réponse #29 le: 26 Novembre 2011, 21:02:40 »
En effet.. sa retourne un integer, je comprend plus  :-\