GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: GzupScripter le 30 Juin 2010, 23:24:55

Titre: [Aide] Probleme
Posté par: GzupScripter le 30 Juin 2010, 23:24:55
Bonjour,
J'ai fait un petit truc mais bon il est pas totalement fonctionnel.

Code: (pawn) [Sélectionner]
public VehicleRep(playerid)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(GetVehicleHealth(playerid) <= 25)
{
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
PlayerPlaySound(playerid, 1133, 1.0, 1.0, 1.0);
}
}
return 1;
}

J'aimerais que sa répare le vehicule seulement quand la vie de la voiture est a moins de 25. :)
Titre: Re : [Aide] Probleme
Posté par: cristab le 30 Juin 2010, 23:32:30
as tu un speedo ?


si oui moi je me sert de la var du santer du speedo est si en dessous de 300 je retablie a 1000

ps a 25 sa fait longtemps que la voiture a exploser elle explose a 180 il me semble
Titre: Re : [Aide] Probleme
Posté par: GzupScripter le 30 Juin 2010, 23:37:36
Donc si je met a 200 sa ira mais moi j'avais mis un timer de 3 secondes .. tous fonctionne mais le bruit se fait toujours entendre quand on conduit x)
Titre: Re : [Aide] Probleme
Posté par: cristab le 30 Juin 2010, 23:41:58
tu parle du bruit de poubelle que sa fait dans ce cas passe a 600
Titre: Re : [Aide] Probleme
Posté par: chneubeul le 30 Juin 2010, 23:53:25
Salut, tu met sa PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0); pour couper le son
Titre: Re : [Aide] Probleme
Posté par: GzupScripter le 01 Juillet 2010, 04:24:09
Mais je veux pas le coupé .. le truc c'est que mon if n'est pas lu (le deuxième IF)...
Titre: Re : [Aide] Probleme
Posté par: chneubeul le 01 Juillet 2010, 10:21:07
Ah, ben normal la santé est sur echelle de 1000 donc met à 250, je crois que c'est la limité pour la fumée noir, un coup et sa prend feux :)
Titre: Re : [Aide] Probleme
Posté par: GzupScripter le 02 Juillet 2010, 04:50:42
J'ai mis a 300 et rien ne fonctionne ..
Titre: Re : [Aide] Probleme
Posté par: chneubeul le 02 Juillet 2010, 11:17:04
Salut, verifie que tu charge bien la fonction au  moins et remet des printf voir ou sa merde stp, enleve le GetPlayerState aussi, car un véhicule pour qu'il explose le plus souvent faut qu'il y ai un conducteur ( dans le jeux biensur ^^)
Titre: Re : [Aide] Probleme
Posté par: GzupScripter le 02 Juillet 2010, 14:07:58
Laisse tombé j'ai pas besoins d'aide de toi .. Boulet  :blink :dry ..  :boulet
Titre: Re : [Aide] Probleme
Posté par: chneubeul le 02 Juillet 2010, 14:41:45
Calme ta joie, c'toi le boulet.. j'suis la pour t'aider, je t'aide et tu m'envoie chier, entre nous c'est toi qui a le plus à apprendre >.<
Titre: Re : [Aide] Probleme
Posté par: GzupScripter le 02 Juillet 2010, 14:45:50
Bah non , tu sais pas comment codé mon truc.. J'suis un ancien codeur PAWN (sa fait 1 an que j,ai arrêté ..) --'
Titre: Re : [Aide] Probleme
Posté par: chneubeul le 02 Juillet 2010, 15:14:04
J'te dis ce qui va pas donc stop ton p'tit jeux, j'vais pas te le coder à ta place, ton script c'est ton script nous on t'aide ok ? >< Abusé quoi desfois ya des boulets qui poste mais toi t'en ai le roi
Titre: Re : [Aide] Probleme
Posté par: Ssk le 02 Juillet 2010, 15:32:20
Plusieurs chose à voir,

- Ta fonction est-elle bien appelé ?
- Un timer de 3 secondes, normalement c'est suffisant, mais essaie avec plus court ^^
Titre: Re : [Aide] Probleme
Posté par: GzupScripter le 02 Juillet 2010, 16:39:30
J'ai un timer de 3 sec si je le met a plus petit le problème restera .. Il faut que mon 2e If soit déclaré je crois sinon bah faudrais refaire la fonction --'  :wall
Titre: Re : [Aide] Probleme
Posté par: Syg le 02 Juillet 2010, 16:56:42
Tout d'abord, il serait de bon ton de ne pas envoyer bouler les gens qui essaient de t'aider sinon tu risques de ne plus avoir d'aide et de te faire sanctionner.

Sinon, pour ton problème, lorsque la santé du véhicule est à 250, le véhicule brule et va irrémédiablement exploser.
Tu nous a montré la fonction qui remet la vie du véhicule à 1000 lorsque celle-ci passe en dessous de 25 (qu'il faudra remplacer par 250).
Par contre, j'aimerais bien voir à quel endroit tu appelles cette fonction.

++
Syg
Titre: Re : [Aide] Probleme
Posté par: chneubeul le 02 Juillet 2010, 16:59:17
Re syg,
Citer
(qu'il faudra remplacer par 250)
Il a essayer à 300

Citer
j'aimerais bien voir à quel endroit tu appelles cette fonction
On lui demande depuis le débuts.

Titre: Re : [Aide] Probleme
Posté par: Syg le 02 Juillet 2010, 17:11:48
Oui je sais chneubeul, c'était juste pour le rappeler.

Mais pour son problème, je vois bien le coup où sa fonction est appelé dans un timer sans que playerid ne soit renseigné.
Donc il est impératif qu'il nous donne la ligne où il appelle (directement ou indirectement) la fonction.
Sinon, et ben, tant pis pour lui.

++
Syg
Titre: Re : [Aide] Probleme
Posté par: chneubeul le 02 Juillet 2010, 18:00:40
Ben ouais j'pense aussi il a pas du mettre un settimerex

Sam.
Titre: Re : [Aide] Probleme
Posté par: GzupScripter le 02 Juillet 2010, 20:19:17
Mes Forwards:
Code: (pawn) [Sélectionner]
forward VehicleRep(playerid);
forward VehicleRepTimer(playerid);

Ma ligne de SetTimer:
Code: (pawn) [Sélectionner]
SetTimer("VehicleRepTimer",3000,1);
Public du Timer:
Code: (pawn) [Sélectionner]
public VehicleRepTimer(playerid)
{
VehicleRep(playerid);
return 1;
}

Public de réparation:
Code: (pawn) [Sélectionner]
public VehicleRep(playerid)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(GetVehicleHealth(playerid) <= 350)
{
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
//PlayerPlaySound(playerid, 1133, 1.0, 1.0, 1.0);
}
}
return 1;
}


Avec se script, le véhicule se répare tous les 3 secondes mais peu importe la vie du vehicule..
Titre: Re : [Aide] Probleme
Posté par: chneubeul le 02 Juillet 2010, 20:29:24
Pourquoi l'utilisation d'un public pour charger un autre ? Pourquoi l'utilisation de SetTimer ?

Supprime ce public la public VehicleRepTimer(playerid)

puis met se timer la  SetTimerEx("VehicleRep",3000,0,"i",playerid);

Le boulet veut encore bien t'aider donc refais plus jamais sa !!!
Titre: Re : [Aide] Probleme
Posté par: Syg le 02 Juillet 2010, 23:47:50
Premièrement, suis les conseils de chneubeul.

Ensuite, regarde la ligne suivante et réfléchis :
if(GetVehicleHealth(playerid) <= 350)
NB : J'ai mis en gras les parties importantes. Y'a rien qui te choque ?

++
Syg
Titre: Re : [Aide] Probleme
Posté par: GzupScripter le 03 Juillet 2010, 01:03:25
Tkt , j'ai essayé avec vehicleid mais toujours non fonctionnel :(
Titre: Re : [Aide] Probleme
Posté par: chneubeul le 03 Juillet 2010, 13:04:25
Oui c'est mieux je trouve :)