• 05 Mai 2024, 12:22:20


Auteur Sujet: Nofall bike pb  (Lu 2403 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne [BGS]teck

  • *
  • Tueur
  • SA:MP online
  • Messages: 93
    • Voir le profil
    • SA:MP online
Nofall bike pb
« le: 16 Mars 2008, 00:58:15 »
Bonjour a tous voila j'ai fait un nofall bike m'est j'ai quelque probleme

forward FallBike(playerid);
new NoFallBike[MAX_PLAYERS]=0;

commande text
if(strcmp(cmdtext, "/nofall", true) == 0) {
if(NoFallBike[playerid]== 1){
SendClientMessage(playerid, 0xFFFFFFFF, "Le NoFallBike est déjà activé.");
}else{
SetTimerEx("FallBike", 1, 1, "i", playerid);
SendClientMessage(playerid, 0xFFFFFFFF, "Le NoFallBike est activé.");
}
return 1;
}

tout en bas du script
public FallBike(playerid){
new Vehicle=GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid,Vehicle,0);
return 0;
}

voila mon probleme et que je ne peut pu déscendre de ma moto et quand je fait aparaitre une ramp avec ctrl elle reste figé voila merci de vos réponces
[/url]

Hors ligne Asphalt

  • *
  • Criminel
  • Messages: 25
    • Voir le profil
Re : Nofall bike pb
« Réponse #1 le: 16 Mars 2008, 12:39:01 »
Oula ! Exécuter un timer de 1 ms n'est pas bon du tout :s (ça a tendance à faire ramer le serveur).

Essaye avec 200 ms, je pense que c'est suffisant.

Hors ligne UZI-I

  • BinaryIPL Manager
  • *
  • Grand Banditisme
  • http://www.yoa2n.fr
  • Messages: 825
    • Voir le profil
    • Yoa2n.fr
Re : Nofall bike pb
« Réponse #2 le: 16 Mars 2008, 13:21:56 »
Pas tellement lagger le serveur mais surtout ça bouffe la bande passante.
Sachant que le Packet envoyer pour mettre un joueur sur son vehicle doit prendre 3 Byte (1 Pour le Packet  ID, 1 Pour le PlayerID, 1 Pour le Vehicle ID).

3 Bytes * 200 Joueur : 600 Bytes par MS. La moitié n'est pas envoyer, les packet perdu. xD

Avant de mettre le joueur sur sa moto. Verifie si il n'est pas deja dessus au quel cas il sera inutile de le mettre dessus. Ce check ne prend pas de bande passante étant donné qu'il est effectuer Server Side.
En gros tu n'evera 1 Packet de 3 Bytes que quand quelqu'un tombe et ça fera plaisir a la bande passante :D

Hors ligne [BGS]teck

  • *
  • Tueur
  • SA:MP online
  • Messages: 93
    • Voir le profil
    • SA:MP online
Re : Nofall bike pb
« Réponse #3 le: 16 Mars 2008, 15:06:20 »
oui mes sa ne regles pas mon probleme que quand je déscend de ma moto le perssoange remonte dessu et les ramp reste figer can je la fait aparaitre !! :wall :wall
[/url]

Hors ligne Asphalt

  • *
  • Criminel
  • Messages: 25
    • Voir le profil
Re : Nofall bike pb
« Réponse #4 le: 16 Mars 2008, 17:08:01 »
UZI en mode maths xD

[BGS]teck > C'est normal qu'il remonte tout seul car c'est un timer qui le remet sur sa moto tout le temps étant donné que y'a aucune condition. Et si tu postais le code de tes rampes ? Car comme ça, sans rien, je vois pas :s

Hors ligne UZI-I

  • BinaryIPL Manager
  • *
  • Grand Banditisme
  • http://www.yoa2n.fr
  • Messages: 825
    • Voir le profil
    • Yoa2n.fr
Re : Nofall bike pb
« Réponse #5 le: 16 Mars 2008, 18:18:25 »
Pas en mode Math en mode 'Reflexion' lol

Pour le probleme. Fait que quand le joueur appuie sur la touche 'Sortir / entrer dans un vehicle' ca kill le timer.

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Nofall bike pb
« Réponse #6 le: 16 Mars 2008, 21:17:15 »
Bon, pour l'avoir fait sur Lalu je vais développer un peu (mais pas trop sinon, y'aura des clones de Lalu's Stunt partout).

L'idée du SetTimerEx est une bonne idée (c'est celle que j'avais eu au départ). Pourtant, je pense qu'il y a un bug dans SAMP qui fait que parfois, on ne peut plus arrêter un timer lancé par SetTimerEx. Et dans le cas du NoFall, le joueur sera indéfiniment remis sur sa moto (c'est ce qui est arrivé assez souvent sur Lalu's Stunt avec la première version du NoFall).
Donc, lance un timer global (SetTimer) dans OnGameModeInit et travaille avec des flags (drapeaux ou indicateurs) et un boucle sur les joueurs, c'est plus facilement contrôlable (même si c'est moins efficace que le SetTimerEx). Et pour ce timer global, 300 ou 400 ms sont emplement suffisantes.

Pour la suite, UZI-I t'as donné une partie de la solution.
Enfin, pour que le joueur puisse descendre de sa moto, utilise la fonction GetPlayerKeys.

++
Syg
Courtesy of GtaManiac

Hors ligne [BGS]teck

  • *
  • Tueur
  • SA:MP online
  • Messages: 93
    • Voir le profil
    • SA:MP online
Re : Nofall bike pb
« Réponse #7 le: 17 Mars 2008, 17:48:26 »
Bonjour merci de votre aide mais j'ai encore un ou deux souci voici le code
new keys, enter, playerid;
if(strcmp(cmdtext, "/nofall", true) == 0) {
if(NoFallBike[playerid]== 1){
SendClientMessage(playerid, 0xFFFFFFFF, "Le NoFallBike est déjà activé.");
}else{
SendClientMessage(playerid, 0xFFFFFFFF, "Le NoFallBike est activé.");
GetPlayerKeys(playerid, keys, enter);
}
return 1;
}

C:\serv 1\[FR]StuntX08\gamemodes\stuntlandteckto27.pwn(839) : warning 219: local variable "playerid" shadows a variable at a preceding level
C:\serv 1\[FR]StuntX08\gamemodes\stuntlandteckto27.pwn(845) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


2 Warnings.
merci de votre aide a tous
[/url]

Hors ligne yoyo17

  • *
  • Tueur en série
  • Messages: 217
    • Voir le profil
Re : Nofall bike pb
« Réponse #8 le: 17 Mars 2008, 23:16:21 »
new keys, enter;
if(strcmp(cmdtext, "/nofall", true) == 0) {
if(NoFallBike[playerid]== 1){
SendClientMessage(playerid, 0xFFFFFFFF, "Le NoFallBike est déjà activé.");
}else{
SendClientMessage(playerid, 0xFFFFFFFF, "Le NoFallBike est activé.");
GetPlayerKeys(playerid, keys, enter);
}
return 1;
}

Met ceci est donne ta ligne 845 stp.

Cordialement, yoyo17.

Hors ligne [BGS]teck

  • *
  • Tueur
  • SA:MP online
  • Messages: 93
    • Voir le profil
    • SA:MP online
Re : Nofall bike pb
« Réponse #9 le: 18 Mars 2008, 07:29:36 »
voici la ligne 845
GetPlayerKeys(playerid, keys, enter);
et j'ai 1 warning

C:\serv 1\[FR]StuntX08\gamemodes\stuntlandteckto27.pwn(845) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Warning.
[/url]

Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : Nofall bike pb
« Réponse #10 le: 18 Mars 2008, 10:25:14 »
A mon avis, a la place de "enter" tu doit mettre la key qui lui correspond ;)

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne [BGS]teck

  • *
  • Tueur
  • SA:MP online
  • Messages: 93
    • Voir le profil
    • SA:MP online
Re : Nofall bike pb
« Réponse #11 le: 18 Mars 2008, 15:56:24 »
Bonjour native et ces quoi la key qui corespond a la touche entrer et sortir
« Modifié: 18 Mars 2008, 22:15:12 par [BGS]teck »
[/url]

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Nofall bike pb
« Réponse #12 le: 18 Mars 2008, 16:03:13 »
c'est la : KEY_ACTION qui correspond à l'ID 1 ;)

++
R@f

Hors ligne [BGS]teck

  • *
  • Tueur
  • SA:MP online
  • Messages: 93
    • Voir le profil
    • SA:MP online
Re : Nofall bike pb
« Réponse #13 le: 18 Mars 2008, 20:18:40 »
Bonjour raf j'ai toujour un probleme voisi le code ::
new keys;
if(strcmp(cmdtext, "/nofall", true) == 0) {
if(NoFallBike[playerid]== 1){
SendClientMessage(playerid, 0xFFFFFFFF, "Le NoFallBike est déjà activé.");
}else{
SendClientMessage(playerid, 0xFFFFFFFF, "Le NoFallBike est activé.");
GetPlayerKeys(playerid, keys,1);
}
return 1;
}

C:\serv 1\[FR]StuntX08\gamemodes\stuntlandteckto27.pwn(845) : error 035: argument type mismatch (argument 3)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

merci de votre aide

[/url]

Hors ligne R@f

  • *
  • GTAOnline Addict
  • Messages: 4655
    • Voir le profil
Re : Nofall bike pb
« Réponse #14 le: 18 Mars 2008, 20:33:05 »
à quoi te sert le GetPlayerKeys dans ta commande ?

++
R@f