GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: kikite02 le 06 Avril 2008, 14:48:33

Titre: Dans une zone
Posté par: kikite02 le 06 Avril 2008, 14:48:33
Bonjour a tous

pour les voitures c'est removeplayerfromvehicle

mais dans une zone ?

comment faire pour que le player ne depasse pas certaine zone ?

pour qu'il soit ejecter comme les voitures ?
Titre: Re : Dans une zone
Posté par: jonjon le 08 Avril 2008, 20:02:56
Il faut que tu utilise

Code: (pawn) [Sélectionner]
SetPlayerWorldBounds(playerid, Float:x_max, Float:x_min, Float:y_max, Float:y_min);
Titre: Re : Dans une zone
Posté par: kikite02 le 09 Avril 2008, 17:20:49
Est il se passera quoi a cette zone ?
Titre: Re : Dans une zone
Posté par: Nip le 09 Avril 2008, 18:36:26
si je pence bien

ça va créé un mur invisible autour de ta zone (suis pas sur)

+
Titre: Re : Dans une zone
Posté par: kikite02 le 10 Avril 2008, 17:25:13
C'est ce que je voulais merci !

est pour enlever cette protection ? une commands inverse :)
Titre: Re : Dans une zone
Posté par: jonjon le 10 Avril 2008, 19:29:22
Pour enlever cette protection tu utilise :

SetPlayerWorldBounds(playerid, 20000.0000,-20000.0000,20000.0000,-20000.0000);

Tu ne modifi pas ce que j'ai mit en rouge, c'est les coordonées qu'il faut mettre dans le SetPlayerWorldBounds pour désactiver la protection.
Titre: Re : Dans une zone
Posté par: kikite02 le 10 Avril 2008, 19:45:47
Oua t'est un pro :)

merci bien

est un dernier truks :) comment mettre un message ? quand on arrive dans cette zone svp
Titre: Re : Dans une zone
Posté par: MultiGamers le 10 Avril 2008, 19:50:12
On ne peut pas mettre de message (Il aura un text par default en anglais qui sera la...) Sinon faut tout coder nous même.  ;)
Titre: Re : Dans une zone
Posté par: kikite02 le 10 Avril 2008, 19:53:54
Merci :)

sinon vous auriez un exemple ?

car dans mon gm j'ai peur de erreurs etc


edit : Cela ne marche pas

comment faire ?
Titre: Re : Dans une zone
Posté par: jonjon le 10 Avril 2008, 20:30:27
Met dans le pastebin la commande où tu a mit le SetPlayerWorldBounds stp.
Titre: Re : Dans une zone
Posté par: kikite02 le 10 Avril 2008, 20:37:42
Ha il marche dans le playerSpawn mais les joueurs nage :(

tu peux me preparer la commandes ? pour que je voit a peut prés comment faire pour bloker un endroit a tout le monde
Titre: Re : Dans une zone
Posté par: jonjon le 10 Avril 2008, 20:41:36
le SetPlayerWorldBounds tu veus le mettre dans une commande ?
Titre: Re : Dans une zone
Posté par: kikite02 le 10 Avril 2008, 23:21:27
Je ne sais pas

car je veut juste que personne ne puisse aller dans cette zone ! tant que je n'ai pas fini certaine chose :(

a 'laide ! help !
Titre: Re : Dans une zone
Posté par: jonjon le 10 Avril 2008, 23:51:08
Tout d'abord tu défini ta zone en x_max, x_min, y_max, y_min.
Ensuite tu remplace au bon endroit :

SetPlayerWorldBounds(playerid, Float:x_max, Float:x_min, Float:y_max, Float:y_min);

Pour terminer tu met le SetPlayerWorldBounds dans public OnGameModeInit()
Titre: Re : Dans une zone
Posté par: kikite02 le 11 Avril 2008, 17:44:25
probléme de playerid ! help plz
Titre: Re : Dans une zone
Posté par: jonjon le 11 Avril 2008, 22:18:12
Tu dit problème de playerid sans donner l'erreur donne l'erreur et on règle ça.
Titre: Re : Dans une zone
Posté par: kikite02 le 11 Avril 2008, 22:41:57
C:\DOCUME~1\ééé\Bureau\SERVER~1\GAMEMO~1\ééé2.pwn(231) : error 017: undefined symbol "playerid"
C:\DOCUME~1\ééé\Bureau\SERVER~1\GAMEMO~1\ééé2.pwn(233) : error 017: undefined symbol "playerid"



    SetPlayerWorldBounds(playerid, 1716.6462, -1625.5944, 20.2061, 179.4309);

    SetPlayerWorldBounds(playerid, 1728.2798, -1625.6500, 20.2118, 179.1175);
Titre: Re : Dans une zone
Posté par: Franky™ le 11 Avril 2008, 23:08:04
Salut,

Donne nous la ligne 231 et 233 pour bien voir l'erreur car comme ca on ne pourra pas t'aider

Coridalement Franky Patou
Titre: Re : Dans une zone
Posté par: [StAfF]MaN le 12 Avril 2008, 00:16:51
il la fait, il a juste a ajouter au début de sa fonction :


new playerid;

^^
Titre: Re : Dans une zone
Posté par: kikite02 le 12 Avril 2008, 09:18:36
toujour des erreurs
Titre: Re : Re : Dans une zone
Posté par: jonjon le 12 Avril 2008, 13:35:06
toujour des erreurs

Donne toujours les erreurs car on n'est pas devin...  :dry
Titre: Re : Dans une zone
Posté par: kikite02 le 12 Avril 2008, 22:48:32
elle sont marquer en plusieur fois !!! regarde ce que j'ai marquer avant
Titre: Re : Dans une zone
Posté par: jonjon le 12 Avril 2008, 22:55:21
mAn a dit qu'il fallait juste rajouter new playerid;
Titre: Re : Dans une zone
Posté par: Franky™ le 13 Avril 2008, 00:17:26
Oui, ou tu a mis t'es SetPlayerWorldBounds(playerid, 1716.6462, -1625.5944, 20.2061, 179.4309); tu doit aussi mettre au debut
new playerid;

Cordialement
Titre: Re : Dans une zone
Posté par: feldbrau le 13 Avril 2008, 00:22:53
Salut,

Un new playerid; seulement ne marchera pas. IL faut que se "new" définisse quelque chose non? Essaye avec:
    for(new i=0;i<MAX_PLAYERS;i++)
   {
             Setworld...(i, x, y, z, "az");
        }
        return 1;

Tu peut modifier le "I" mais c'est pas important ;).

En esperant ne pas t'indiquer le mauvais chemin ^^.

++
 
Titre: Re : Re : Dans une zone
Posté par: jonjon le 13 Avril 2008, 01:04:00
Salut,

Un new playerid; seulement ne marchera pas. IL faut que se "new" définisse quelque chose non? Essaye avec:
    for(new i=0;i<MAX_PLAYERS;i++)
   {
             Setworld...(i, x, y, z, "az");
        }
        return 1;

Tu peut modifier le "I" mais c'est pas important ;).

En esperant ne pas t'indiquer le mauvais chemin ^^.

++
 

Pourquoi tu veut qu'il fasse une boucle ?
Titre: Re : Dans une zone
Posté par: GTK_dadou le 13 Avril 2008, 02:32:37
Bonjour

IL est préférable de utilisée le SetPlayerWorldBounds dans Public OnPlayerSpawn(playerid) {
Parce que dans le public OnGameModeInit() le playerid n'est pas déclarée alors que dans Public OnPlayerSpawn(playerid) {
Il est déclarée. donc pas besoin de new playerid; ou de boucle ou je sais pas quoi !!!

Voici le code:
Public OnPlayerSpawn(playerid)
{

SetPlayerWorldBounds(playerid, Float:x_max, Float:x_min, Float:y_max, Float:y_min);

return 1;
}

Moi c'est comme sa que je procède, j'espère que sa vous aidera Bon journée   :happy

++ Dadou
Titre: Re : Dans une zone
Posté par: feldbrau le 13 Avril 2008, 02:36:59
Tous simplement parceque dans le forward/public GameModeInit il n'y a pas le playerid de definit. La si tu met juste: new playerid; , c'est comme si tu metais new riendutout; playerid n'est pas definit (cf: erreur de compile = undefined symbol "playerid") alors comment veut-tu que le playerid definissent le(s) joueur(s)? la se que vous avez mis n'est rien d'autre qu'une variable qui sert a rien. A moins d'aller dans l'include et de modifier le forward gamemodeinit je voit pas comment tu peut definir le joueur autrement qu'avec le "for". A moins qu'il fasse une activation au niveau du spawn mais de la facon que tu a repondut pour moi c'est un déclenchement au modeinit.
Citer
Tout d'abord tu défini ta zone en x_max, x_min, y_max, y_min.
Ensuite tu remplace au bon endroit :

SetPlayerWorldBounds(playerid, Float:x_max, Float:x_min, Float:y_max, Float:y_min);

Pour terminer tu met le SetPlayerWorldBounds dans public OnGameModeInit()

EDIT: arf on m'a devancé ^^ mais ca me rassure, ca confirme se que je disait :).
Titre: Re : Dans une zone
Posté par: kikite02 le 14 Avril 2008, 01:07:37
Quand j'ai mis dans playerspawn les joueurs volé