GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Nip le 30 Juin 2007, 02:56:53
-
Bonjour a tous et a toutes
je vous explique mon probléme
1 cop ma donnée ceci et ma dit que c'est 1 scriptpour le compteur de vitesse
Le script:
#define SLOTS 100 // you may want to change this... [MAX_PLAYERS] dosnt work... don't know why!
// Save the player positions in an enum
enum SavePlayerPosEnum {
Float:LastX,
Float:LastY,
Float:LastZ
}
new SavePlayerPos[SLOTS][SavePlayerPosEnum];
new SpeedMode = 0; // 0 for KPH, 1 for MPH
new UpdateSeconds = 1; // How frequent do you want it to be updated?
// Put this timer somewhere in your OnGameModeInit
SetTimer("UpdateSpeed", UpdateSeconds*1000, 1);
// Aight, create the main function
public UpdateSpeed(){
new Float:x,Float:y,Float:z;
new Float:distance,value,string[256];
for(new i=0; i<SLOTS; i++){
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i)){
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[LastZ])),2));
// Distance: meters in the last second
value = floatround(distance * 3600);
if(UpdateSeconds > 1){
value = floatround(value / UpdateSeconds);
}
// meters an hour
if(SpeedMode){
format(string,sizeof(string),"~r~%d MPH",floatround(value/1600));
GameTextForPlayer(i, string, 1100, 5);
}
else{
format(string,sizeof(string),"~r~%d KPH",floatround(value/1000));
GameTextForPlayer(i, string, 1100, 5);
}
SavePlayerPos[LastX] = x;
SavePlayerPos[LastY] = y;
SavePlayerPos[LastZ] = z;
} // End is-player-connected
} // End for-loop
} // eind UpdateSpeed function
mais moi aucune idée ou je doit placer ça (le script du compteur de vitesse)
SVP si vous serait m'aidée je vous en serait tres reconaissent
PS:c'est mon premier post si j'ai fait un truc de mal ou quoi n'hesité pas a le me dire
deso pour les faute d'ortho
:D :D :DMerci :D :D :DD'avance :D :D :D
-
Re
je sait vous n'ete pas mais domestique ni autres je dit ça pcq jai deja vuesr d'autre sujet XD
Vous ne savez vraiment pas m'aidée stp
Merci d'avance
-
C'est très simple :
Le premières lignes, tu les mets en haut de ton script, en dehors de toute fonction.
La ligne SetTimer("UpdateSpeed", UpdateSeconds*1000, 1); tu la mets à la fin de la fonction OnGameModeInit
et tu mets la fonction UpdateSpeed à la fin de ton script et le tour est joué.
Note : Ne post pas de code dans le forum, il y a le pastebin pour ça :
http://www.gtaonline.fr/forums/index.php/topic,1098.0.html
++
-
ok Merci super
Vous ne s'avez pas ou on place le script du verrouillage de port?
voila le script
-
Pour tes bouts de script de verrouillage/déverrouillage, il faut les placer dans la fonction OnPlayerCommandText, l'un à la suite de l'autre, puisque c'est de commandes.
++
-
ok merci a ous pour vos reponces :jesors :jesors :jesors
-
salut
j'ai le meme script pour le compteur de vitesse mon prob ces qu'il s'affiche au milieu de l'ecrant (pas tres fun!)
j'ai bon chercher comment mettre celui-ci en bas de l'ecran je ne trouve pas :wall
si quelqu'un sais comment faire merci d'avance de m'aider
a bientot :)
-
Tu remplaces le 5 par des 6 dans les appels à la fonction GameTextForPlayer (dernier paramètre).
Ton texte apparaitra en haut de l'écran, c'est mieux qu'au milieu.
Par contre, pas possible, avec cette fonction, de mettre le texte en bas.
Voici la référence pour cette fonction :
http://wiki.sa-mp.com/wiki/Scripting_Functions#GameTextForPlayer
Sinon, tu peux toujours t'amuser avec les TextDraw.
++
-
super grand merci ca fonctione :D
pk super je n'ai jamais eu de reponse si vite sur un forum :)
++
-
si c'est possible regarder sur mon server
-
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1009) : warning 235: public function lacks forward declaration (symbol "UpdateSpeed")
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1015) : warning 213: tag mismatch
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1015) : error 035: argument type mismatch (argument 2)
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1018) : warning 217: loose indentation
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1030) : warning 217: loose indentation
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1030) : warning 213: tag mismatch
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1030) : error 033: array must be indexed (variable "SavePlayerPos")
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1031) : warning 213: tag mismatch
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1031) : error 033: array must be indexed (variable "SavePlayerPos")
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1032) : warning 213: tag mismatch
C:\PROGRA~1\ROCKST~1\GTASAN~1\GAMEMO~1\scs\lvdm.pwn(1032) : error 033: array must be indexed (variable "SavePlayerPos")
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
il me dit sa a Moi :-\
-
(((Posté par: Nip
si c'est possible regarder sur mon server ))) ;D
comment tu as fait nip stp j'ai bon changer tout les codes du script
je n'arrive pas a le mettre en dessous
repond moi stp
merci d'avance ;)
-
euh moi j'arrivai pas 1 cop me la fait cor merci a lui
-
Glock, il n'est pas possible de déterminer tes erreurs parce qu'on a pas le script.
Le compilateur ne donne que des numéros de lignes et si on ne voit pas la ligne qui correspond, c'est très difficile de dire ce qu'il y de pas correct.
Poste ton script dans le PASTEBIN : http://www.gtaonline.fr/forums/index.php/topic,1098.0.html
(C'est facile, pas cher, ...)
++