GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 25 Avril 2010, 12:26:10

Titre: Bloquer un joueur en l'air
Posté par: scott1 le 25 Avril 2010, 12:26:10
Bonjour a toutes et a tous,
j'ai besoin de votre aide, j'ai un soucis, j'aimerai bloquer un joueur a une position, au dessus du sol, mais il tompe, j'aiessayé

SetPlayerPos(i, 1228.5,-1265.1,140.8);
        TogglePlayerControllable(i, 0);

Mais ça ne fonctionne pas, le joueur tombe a chaque fois.

Merci de votre aide
Titre: Re : Bloquer un joueur en l'air
Posté par: BuBuNo le 25 Avril 2010, 12:31:08
Petetre faire un timer je pense  :-[

SetTimer("Freeze",1000,true);

Freeze()
{
 for(new i=0;i<MAX_PLAYERS;i++)
 {
   if(TACONDITION[i] > 0)
  {
    SetPlayerPos(i, 1228.5,-1265.1,140.8);
    TogglePlayerControllable(i, 0);
   }
  }
}

Voila après je ne sait pas si ces vraiment sa mais bon moi ces comme sa que j'aurais fait  :-[

EDIT : Je me posait la question si en mettant de cette maniere sa ne marcherais pas
                                TogglePlayerControllable(i, 0);
                                SetPlayerPos(i, 1228.5,-1265.1,140.8);
Titre: Re : Bloquer un joueur en l'air
Posté par: Soravani le 25 Avril 2010, 14:39:22
Salut,
Le timer est inutile, ce pendant faut mettre d'abord comme quoi il est freeze, et ensuite la position ^^
( Comme ce qu'il à dit master-bru )
Titre: Re : Bloquer un joueur en l'air
Posté par: scott1 le 25 Avril 2010, 17:45:56
ça ne fonctionne pas :s
Titre: Re : Bloquer un joueur en l'air
Posté par: Soravani le 25 Avril 2010, 19:34:35
Peu être que ... essaie voir   TogglePlayerControllable(i, 1);

Je sais que ca unfreeze normalement, mais ont sais jamais...
Titre: Re : Bloquer un joueur en l'air
Posté par: BuBuNo le 25 Avril 2010, 19:36:26
1 = Qu'il peut bouger ;)
Titre: Re : Bloquer un joueur en l'air
Posté par: scott1 le 26 Avril 2010, 01:27:38
si je met un s'est sur il vont tomber comme des piece xD
Titre: Re : Bloquer un joueur en l'air
Posté par: BuBuNo le 26 Avril 2010, 18:43:41
Moi j'ai le contraire sur mon systeme de course xD je voudrais que le gars tombe mais j'y arrive pas xD
Titre: Re : Bloquer un joueur en l'air
Posté par: scott1 le 26 Avril 2010, 20:42:00
Quelqu'un à une solution?
Titre: Re : Bloquer un joueur en l'air
Posté par: Lychaos le 26 Avril 2010, 20:46:59
Comme la dit Master bru, j'aurais mit TogglePlayerControllable(playa, 0); et ensuite le teleport, c'est le seul moyen a ma connaissance
Titre: Re : Bloquer un joueur en l'air
Posté par: Ssk le 26 Avril 2010, 21:44:03
Tien j'ai codé un petit FS qui doit normalement le faire ( enfin je crois j'ai pas testé )

#include <a_samp>

new IsFreezed[MAX_PLAYERS];
new Float:FreezedAt[MAX_PLAYERS][4];



public OnPlayerConnect(playerid)
{
IsFreezed[playerid] = 0;
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
IsFreezed[playerid] = 0;
return 1;
}

public OnPlayerUpdate(playerid)
{
if(IsFreezed[playerid] == 1)
{
    SetPlayerPos(playerid,FreezedAt[playerid][0],FreezedAt[playerid][1],FreezedAt[playerid][2]);
    SetPlayerFacingAngle(playerid,FreezedAt[playerid][3]);
    SetPlayerVelocity(playerid,0,0,0.02);
}
}

forward FreezePlayerAt(playerid,Float:x,Float:y,Float:z,Float:angle);
public FreezePlayerAt(playerid,Float:x,Float:y,Float:z,Float:angle)
{
    FreezedAt[playerid][0] = x,FreezedAt[playerid][1] = y,FreezedAt[playerid][2] = z,FreezedAt[playerid][3] = angle;
    IsFreezed[playerid] = 1;
}

forward Unfreeze(playerid);
public Unfreeze(playerid)
{
    IsFreezed[playerid] = 0;
}

Tu a juste a faire
FreezePlayerAt(playerid,avec ici les coordones x,y,z et l'angle);

et pour defreeze le joueur tu fait

Unfreeze(playerid);

l'avantage ici est que le joueur peut bougé sa caméra =)
Titre: Re : Bloquer un joueur en l'air
Posté par: Ssk le 26 Avril 2010, 22:46:02
justement c'est fait exprès =)


Mais sinon tu peut te débrouillé pour le mettre en timer ( sinon elle est appelé des que le joueur est a nouveau sync etc ... donc pas des milliers de fois en quelque secondes x))
Titre: Re : Bloquer un joueur en l'air
Posté par: scott1 le 27 Avril 2010, 00:20:33
Pour un bête tuto s'est gros xD

Double post
Beug résolut, j'avais un toggle...1 un peux plus loin que je n'avais aps vu.


Aaaaah les belges xD  :boulet :jesors :dejadehors