Ashley11
Hors ligne
Tueur en série

Messages: 192
|
 |
« le: 23 Novembre 2011 à 17:42:59 » |
|
Bonsoir, J'ai besoin de votre aide pour scripter une sorte "d'alarme" mais evidement, une fois en jeux CELA NE MARCHE PAS ! J'appelle la fonction dans "OnPlayerEnterVehicle"  forward AlarmON(playerid) public AlarmON(playerid) { new vehid = GetPlayerVehicleID(playerid); new proprio = VehicleInfo[vehid][vOwner]; if(IsPlayerConnected(playerid)) { if(!proprio) { if(IsAnOwnableCar(vehid)) { if(VehicleInfo[vehid][vAlarm] == 1) { SendClientMessage(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(playerid, 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; } Merci d'avance
|
|
|
|
|
Journalisée
|
|
|
|
Gilux
Hors ligne
GTAOnline Addict

Messages: 1296
|
 |
« Répondre #1 le: 23 Novembre 2011 à 18:04:16 » |
|
Salut, Tu peux poster le code de PlayAlarmSound ?
++
|
|
|
|
|
Journalisée
|
|
|
|
Ashley11
Hors ligne
Tueur en série

Messages: 192
|
 |
« Répondre #2 le: 23 Novembre 2011 à 18:06:29 » |
|
C'est une fonction sur U2C, elle ne viens pas de moi  public PlayAlarmSound(vehicleid, Float:radi, time) { for(new i=0; i<MAX_PLAYERS;i++) { if(ProxDetectorV(Float:radi, i, vehicleid)) { AlarmTime[i] = SetTimerEx("ReapitingAlarm", 1000, false, "d", i, Float:radi, vehicleid); SetTimerEx("StopingAlarm", time, false, "d", i); vehaS[i] = vehicleid; roda[i] = radi; return 1; } } return 0; }
|
|
|
|
|
Journalisée
|
|
|
|
Gilux
Hors ligne
GTAOnline Addict

Messages: 1296
|
 |
« Répondre #3 le: 23 Novembre 2011 à 18:12:12 » |
|
On y est presque... Il me faut ReapitingAlarm et StopingAlarm, c'est sûrement de là que doit venir le problème  ++
|
|
|
|
|
Journalisée
|
|
|
|
Ashley11
Hors ligne
Tueur en série

Messages: 192
|
 |
« Répondre #4 le: 23 Novembre 2011 à 18:30:46 » |
|
Y'en a pas... Le soucis et que j'ai aucune erreur lors de la compile 
|
|
|
|
|
Journalisée
|
|
|
|
Gilux
Hors ligne
GTAOnline Addict

Messages: 1296
|
 |
« Répondre #5 le: 23 Novembre 2011 à 18:38:27 » |
|
Elle n'est pas dans une include ? Elle est forcément quelque part, sinon tu aurais des erreurs étant donné que c'est un timer  Au pire cherche les "forward" pour la trouver plus vite  ++
|
|
|
|
|
Journalisée
|
|
|
|
Ashley11
Hors ligne
Tueur en série

Messages: 192
|
 |
« Répondre #6 le: 23 Novembre 2011 à 18:51:50 » |
|
Je vais passer pour un con  , mais je ne l'ai pas trouver, même dans les includes..
|
|
|
|
|
Journalisée
|
|
|
|
Ssk
Développeur d'Open SA-MP
Hors ligne
Sous-admin
GTAOnline Legend

Open-SA-MP - Unlimited Experience
Messages: 3727
 
|
 |
« Répondre #7 le: 23 Novembre 2011 à 18:56:43 » |
|
j'ai pas l'impression que le problème viens de la fonction alarme mais plutôt de cette condition. if(!proprio)
|
|
|
|
|
Journalisée
|
|
|
|
Ashley11
Hors ligne
Tueur en série

Messages: 192
|
 |
« Répondre #8 le: 23 Novembre 2011 à 20:00:18 » |
|
Tu pense que ça viens de là ?
car sinon je test avec ça : if(strcmp(pNane, VehicleInfo[vehid][vOwner], true) == 0)
|
|
|
|
|
Journalisée
|
|
|
|
Xartrick
Hors ligne
Moderateur
GTAOnline Addict

C & Pawn Programmer
Messages: 1206
|
 |
« Répondre #9 le: 23 Novembre 2011 à 20:02:52 » |
|
Que vaut VehicleInfo[vehid][vOwner] ? Pour commencer, trouve son type (string, integer, float, ...) et en fonction de cela, tu utilise la fonction format avec le symbole de formatage adapté.
|
|
|
|
|
Journalisée
|
|
|
|
Ashley11
Hors ligne
Tueur en série

Messages: 192
|
 |
« Répondre #10 le: 23 Novembre 2011 à 20:10:07 » |
|
Elle vaut string, elle retourne le nom du propriétaire.
|
|
|
|
|
Journalisée
|
|
|
|
Xartrick
Hors ligne
Moderateur
GTAOnline Addict

C & Pawn Programmer
Messages: 1206
|
 |
« Répondre #11 le: 23 Novembre 2011 à 20:15:27 » |
|
Donc, le test est bon mais pas la variable qui reçoit la valeur !new proprio[MAX_PLAYER_NAME] = VehicleInfo[vehid][vOwner];
|
|
|
|
|
Journalisée
|
|
|
|
Ashley11
Hors ligne
Tueur en série

Messages: 192
|
 |
« Répondre #12 le: 23 Novembre 2011 à 20:58:25 » |
|
Exacte, pas encore la main avec le pawn  Merci en tout cas. EDIT : Enfaite, vous auriez du m'alarmer (c'est le cas de le dire !) SendClientMessage(); prend en parametre un ID et non un string. Là sa devient un peu plus compliquer...
|
|
|
|
« Dernière édition: 23 Novembre 2011 à 21:18:21 par Ashley11 »
|
Journalisée
|
|
|
|
Xartrick
Hors ligne
Moderateur
GTAOnline Addict

C & Pawn Programmer
Messages: 1206
|
 |
« Répondre #13 le: 23 Novembre 2011 à 21:41:46 » |
|
Effectivement, il faut que tu vérifie si le joueur est connecter pour commencer, et si c'est le cas, retourner son indice.
Ce qui donne ceci.Fonction Début | _GetPlayerIndexByName | sUsername[] Boucle Début | i < MAX_PLAYERS Condition Début | Si i est connecté Appel Fonction | Récupération du pseudo du joueur qui porte l'indice i Appel Fonction | Comparaison de sUsername est du pseudo trouvé précédemment Condition Debut | Si les pseudos correspondes Retour | i Condition Fin Condition Fin Boucle Fin Retour | -1 Fonction Fin Si tu n'arrives pas à former un code fonctionnel après maintes fois, je l'ai envoyé ici: codes/scripts utiles. Mais essaye quand même de créer ton code avec ce que je t'ai donné.
|
|
|
|
« Dernière édition: 23 Novembre 2011 à 21:45:42 par Xartrick »
|
Journalisée
|
|
|
|
Ashley11
Hors ligne
Tueur en série

Messages: 192
|
 |
« Répondre #14 le: 23 Novembre 2011 à 22:03:41 » |
|
GetPlayerID() en gros ? 
|
|
|
|
|
Journalisée
|
|
|
|
|