GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: garderer le 17 Avril 2008, 10:56:21
-
Bonjour je voudrai un peut d'aide svp :-[ :
Je voudrai que sur toute la carte on voit les joueurs de sa team (sur toute la carte).
J'aimerai que ont voit sur la carte les pseudos des enemies au bout d'une distance de (10 mettres).
Il y'a trois team dans le sript :
TEAM_ATTACK 1
TEAM_DEFENCE 2
TEAM_FOLLE 3
Si vous pourriez m'aidez pouriez vous up quelque chose je ne sait pas utiliser playerinarea et je ne peut pas le tester c'est quelq'un d'autre qui le fait etant donné que que je suis pas sur mon pc pendant 1 moi.
-
Salut !!
Pour tes speudos sur la minicarte je ne pense pas que se soit possible, ou alors j'aimerais bien savoir comment faire aussi ;)
-
Je pense pas non plus que les pseudos sur carte soit possible, parceque dans le jeu en solo il n'y a pas de texte sur la carte.
-
Vous n'avez pas comprit j'ai du male formuler:
J'aimerai que sur la mini carte on voit des point Orange ceux de notre equipe et quand on va vers un enemie on voit un point rouge sur la minicarte quand on et proche de lui (environ dix métre je pense que c'est largement possible)
Quelqu'un pourait au moin me donner quelque chose que sur la mini carte on voit les joueur de son equipe juste
merci
-
Alors la c'est possible ^^. Si je me souvient bien, il faut utiliser le ProxDetector. Qui definira une zone autour du personnage, tu insere l'affichage des "icone map" dans le if du ProxDetector et ca devrait marcher.
Je vais essayer de trouver le public ProxDetector tu le modifiera comme tu veut ;).
EDIT: je l'ai retrouvé mais c'est celui du GodFather, le public et fait pour les message par distance :s. Si tu le veut comme meme pour essayer de le modif demande moi le.
-
Bonjour, J'ai pas fais de nouveau sujet parce que cest pour la minicarte ....
Voila, Jei créé un serveur de stunt et jai placer un check point de teleportation....
Le probleme, cest qu'il saffiche en permanence SUR LA CARTE ... Est ce qu'il y a un truc qui peu faire qu'on le vois que a une certaine distance...
Est ce qu'il faut le faire ac le proxdetector ??
Merci
-
Je pense que oui, que le checkpoint s'active uniquement quand le joueur entre dans la zone du checkpoint.
-
Mais quel code il faut metre ????
-
Je vais essayer d'adapter parceque c'est pas si simple en fait avec le ProxDetector.
-
Mais comment faire alors ? pcq j'aimeré qu'on voit le point rouge du checkpoint que quand on est a 10 mettre ou carément l'enlever .... cest possible de l'enlever ??
-
Tu peut faire un systeme avec PlayerToPoint:
if(PlayerToPoint(25.0/*ca c'est la zone autour du checkpoint pour l'afficher*/,playerid, x, y, z /*de ton check point*/))
{
SetPlayerCheckpoint(playerid, x, y, z, taille);
return 1;
}
-
if(PlayerToPoint(25.0, playerid, x, y, z)) <<< Je laisse 25.0 ?? et je met quoi a la place de x, y, z ????
{
SetPlayerCheckpoint(playerid, x, y, z, taille); <<< La aussi je met quoi a la place de x, y, z ??
return 1;
}
++
nikko
-
x , y , z
c'est le float x , y , z
exemple 200.250 , 300.100 , 400.500
-
je pense que tu laisse et tu met dans le public dans lequel ce code est placé
new Float X, Float Y, Float Z;
-
Salut,
25.0 c'est la zone ou le code va s'activer. Donc tu met en fonction de la taille que tu veut qu'il s'affiche. Fait un test 50.0.
x, y, z c'est la position du centre du playertopoint donc tu met les "float" de ton checkpoint.
Exemple avec des données au hasard:
Si ton Checkpoint est :
SetPlayerCheckpoint(playerid, 2000.0, 2000.0, 2000.0, 6.0);
Pour faire une zone autour de ton checkpoint pour l'affichage tu fait:
if(PlayerToPoint(50.0, playerid, 2000.0, 2000.0, 2000.0)); pour le "50.0" c'est la taille de la zone d'affichage, en fonction des test, tu augmentera/diminuera a ta guise pour qu'il s'affiche quand tu veut.
Pour supprimer le checkpoint quand on sort de la zone je suis pas trop sur de comment faire faut que je fasse des tests (et oui encore des test mais j'aime pas donner des infos éronné).
Voila ++
-
Oui mais lui c'est sur des persos donc ce ne sont pas des coordonnées fixes...
-
Re.
Donc je vais tester si ca marche mais ce code la:
if(PlayerToPoint(25.0, playerid, -152.3, 257.65, -4586.4))
{
SetPlayerCheckpoint(playerid, -152.3, 257.65, -4586.4, 4);
return 1;
}
Je le met ou ???
++
nikko
-
Oui mais lui c'est sur des persos donc ce ne sont pas des coordonnées fixes...
Oui mais ce n'est pas un detecteur de Position joueur, mais une zone ou l'on rentre dedans pour activer quelque chose.
Pour nikkocz:
forward checkpoint(playerid);
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
public OnGameModeInit()
{
SetTimer("checkpoint",200,1);
return 1;
}
public checkpoint(playerid)
{
if(PlayerToPoint(50.0, playerid, 2039.7375,1342.7982,10.6719))
{
SetPlayerCheckpoint(playerid, 2039.7375,1342.7982,10.6719, 4);
}
else
{
DisablePlayerCheckpoint(playerid);
}
}
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
//printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
Bon, c'est vraiment du basique de chez basique. Je ne vais quand pas faire tous ton mode ^^. Donc voila a quoi ca ressemble, le timer je l'ai pris pour eviter de devoir activer par commande. les position tu les changera comme tu veut, faudra que tu fasse pas mal de variable parceque ca va te détruire tous les checkpoints des joueurs si il ne sont pas dans la zone. La taille 50.0 je l'a trouve un peu petite donc fais tes propres essai et tu verra le meilleur pour toi.
Les positions qui sont definit sont au spawn de base quand on creer un GM (Las Venturas). Le public et le forward PlayerToPoint c'est au cas ou tu ne les aurais pas.
++
-
Super ca marche mais quand tu dit de creer des variable ??? Moi jfais pas faire ca encore :(
++
nikko
-
Par exemple a chaque fois que tu creera un nouveau checkpoint tu devra mettre une variable et dans le public du timer mettre:
public checkpoint(playerid)
{
if("nom de la variable"[playerid] == 0)
{
if(PlayerToPoint(50.0, playerid, 2039.7375,1342.7982,10.6719))
{
SetPlayerCheckpoint(playerid, 2039.7375,1342.7982,10.6719, 4);
}
else
{
DisablePlayerCheckpoint(playerid);
}
}
}
En fait a chaque checkpoint créé tu mettra:
SetPlayerCheckpoint . . .
"nom de la variable"[playerid] = 1;
return 1;
comme ca si il y a une course avec des checkpoints, il ne s'enleveront pas.
-
Nn mais jen est pas besoin, c'été juste un check point sur ma map stunt. Merci quand meme
++
nikko
-
Salut,
Je vien de tester le truc ac plusiseurs personne sur le serv et ya certaines personne, le point s'affiche sr la carte, et d'autre nn..!
Compren pas du tout la ..... ???
++
nikko
-
Est-ce qu'il rentre chacun dans la zone?
-
NN, Tout a l'heure, j n'était pas dans la zone, une autre personne non plus et lui voyait le point sur sa carte mais moi nn.... ???
++
nikko
-
C'est normal, le checkpoint est affiché pour la personne qui rentre dans la zone, comme tu l'as demandé. Tous le monde doit etre dans la zone si il veulent le checkpoint
-
Voila, j'ai une question qui concerne aussi la minimap: Est-ce qu'il serai possible de l'enlever (je ne parle pas de masquer les ICON :) )?
-
Voila, j'ai une question qui concerne aussi la minimap: Est-ce qu'il serai possible de l'enlever (je ne parle pas de masquer les ICON :) )?
J'pense pas.
-
Salut,
Feldbrau je croi que tu n'a pas compris le petit soucis.
Le truc, cest qu'a certaines personnes (Je parle quand on est pas dans la zone) le point s'affiche quand meme sur la carte. Moi je ne le voyait pas, mais une autre personne le voyait pourtant (sans etre dans la zone).
++
nikko
-
C'est bizarre, soit il t'a mito ^^ soit il n'etait pas dans la zone c'est pas possible autrement ^^. Le checkpoint est definit pour le joueur donc c'est pas possible. A moins qu'il ait activé un autre checkpoint definit dans ton mode.
-
Nn il ma pas mito il n'a pas que ca a faire ^^ moi aussi je trouve bizzar mais tkt pas je n'en mourai pas pour ca ;)
++
nikko
-
Desactive tous les checkpoints sauf celui que je t'ai fais et réessaye, ca devrait marcher. Ensuite tu regarde tous tes checkpoint pour voir comment il se lance ... Je suis quasi sur qu'il a activé un autre checkpoint.
++
-
Il n'y a pas d'autre check point Mdr.
On est bien clair que je doit laisser le Check1 = Createcheckpoint(...............); dans le spawn du player ?? Ou je doit lenlever ?
++
nikko
-
Non pas du tout ^^.
Je n'ai jamais dit de mettre ceci dans le spawn. Tu met seulement SetTimer("checkpoint",200,1); dans ongamemodeinit c'est tous ;)
-
MAis apré moi j'ai mi des actions dans le Oneplayerentercheckpoint.....
Voila tout ce que jai mi:
new Check1; <<< en haut
Check1 = SetPlayerCheckpoint(playerid, 1439.8232,-2504.5081,13.5547, 4); <<< oneplayerspawn
public OnPlayerEnterCheckpoint(playerid)
{
if (Check1){ // Si le joueur est dans le CheckPoint définis :
if(IsPlayerInAnyVehicle(playerid)) {
new Float:X;
new Float:Y;
new Float:Z;
new VehicleID;
GetPlayerPos(playerid, X, Y, Z);
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID, 1206.806885, -2496.227783, 219.106369);
GameTextForPlayer(playerid,"~g~Vous etes a road",3000,3);
} else {
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, 1206.806885, -2496.227783, 219.106369);
GameTextForPlayer(playerid,"~g~Vous etes a road",3000,3);
}
return 1;
}
+ Tes truc.
Quest ce que je doit enlever/rajouter ???
++
nikko
-
Quest ce que je doit enlever/rajouter ???
Check1 = SetPlayerCheckpoint(playerid, 1439.8232,-2504.5081,13.5547, 4); <<< oneplayerspawn
++ ^^
-
Oui mais si j'enleve ca, la commande ne marche plus en bah, donc faut enlever aussi le "if(check1.....);" je pense.
++
nikko
-
public checkpoint(playerid)
{
if(PlayerToPoint(50.0, playerid, 2039.7375,1342.7982,10.6719))
{
Check1 = SetPlayerCheckpoint(playerid, 2039.7375,1342.7982,10.6719, 4);
}
else
{
DisablePlayerCheckpoint(playerid);
}
}
C'est le dedans que tu le definit ;)
-
Donc j'enleve le check1 = create.......
Et je met ca ??? Et je rajoute la commande dedant ?
++
nikko
-
Tu n'ajoute rien dedans tu enleve le setplayercheckpoint dans onplayerspawn et tu met check1 = Set... dans le public checkpoint, se que tu a mis de onplayerenter.... tu le laisse puisque check1 est definit par le public.
-
Ok merciii
++
nikko