• 09 Juillet 2025, 14:50:42


Auteur Sujet: Créer un point "Info" pour /entrer dans un batiement  (Lu 2849 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Créer un point "Info" pour /entrer dans un batiement
« le: 16 Octobre 2010, 11:31:01 »


Bonjour, je suis à la recherche de la phrase permettant de mettre un point "Info" devant un batiement pour que quand on aille dessus, on puisse faire /entrer er donc aller dans le batiement ..
Je n'ai rien trouvé sur Wiki SAMP car je ne savais pas comment s'appelait la commande... si vous pourriez m'aider, .....



« Modifié: 16 Octobre 2010, 11:33:47 par John_Montavedro »

Hors ligne vardanega

  • *
  • Tueur en série
  • http://vvardanega.wordpress.com (mon blogue)
  • Messages: 155
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #1 le: 16 Octobre 2010, 11:37:56 »
Bonjour, je pense que vous parler des pickups ?

Si c'est pour ce pickup:



rendez vous ici:  http://wiki.sa-mp.com/wiki/AddStaticPickup

Vinc



Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #2 le: 16 Octobre 2010, 11:45:40 »
Je test de suite, merci d'avance!  :king

Double post
Au "SetPlayerPos" je remplace par "SetPlayerVirtualWorld" ?

ps : Désolé double post
« Modifié: 16 Octobre 2010, 11:55:46 par John_Montavedro »

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #3 le: 16 Octobre 2010, 11:55:55 »
Imaginons ma position est : 363.3236,2476.9944,16.4844Je fais donc,
new pickup ;
   pickup = CreatePickup 363.3236,2476.9944,16.4844;

public OnPlayerPickUpPickup(playerid,pickupid)
{
if(pickupid == pickup)
{
SetPlayerPos(playerid, 363.3236,2476.9944,16.4844);
return 1;
}
if(strcmp(cmdtext,"/entrer",true) == 0)
{
 if(IsPlayerInRangeOfPoint(playerid,363.3236,2476.9944,16.4844,radius)
{
 SetPlayerVirtualWorld(playerid, 316.524993,-167.706985,999.593750);//X, Y, Z de l'interieur
return 1;
}
}


Citer
Cela dépend , mais si tu veux le mettre dans un interior faut faire un SetPlayerPos et un SetPlayerInterior
Mais les deux auront donc le même X, Y, Z alors
« Modifié: 16 Octobre 2010, 11:57:50 par John_Montavedro »

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #4 le: 16 Octobre 2010, 12:06:50 »
Imaginons ma position est : 363.3236,2476.9944,16.4844Je fais donc,
new pickup ;
   pickup = CreatePickup 363.3236,2476.9944,16.4844;

public OnPlayerPickUpPickup(playerid,pickupid)
{
if(pickupid == pickup)
{
SetPlayerPos(playerid, 363.3236,2476.9944,16.4844);
return 1;
}
if(strcmp(cmdtext,"/entrer",true) == 0)
{
 if(IsPlayerInRangeOfPoint(playerid,363.3236,2476.9944,16.4844,radius)
{
 SetPlayerVirtualWorld(playerid, 6);//X, Y, Z de l'interieur
return 1;
}
}


Citer
Cela dépend , mais si tu veux le mettre dans un interior faut faire un SetPlayerPos et un SetPlayerInterior
Mais les deux auront donc le même X, Y, Z alors


Mais dans les id des interieurs, y'en a qui ont la même id :o sinon c'est mieux?

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #5 le: 16 Octobre 2010, 12:41:58 »
new pickup = CreatePickup( 1318, 2,363.3236, 2476.9944, 16.4844);
    if(pickupid == pickup)
{
SetPlayerPos(playerid, 316.524993,-167.706985,999.593750);
SetPlayerInterior(playerid, 6);
return 1;
}

Double post
Marche pas  ???
« Modifié: 16 Octobre 2010, 12:46:32 par John_Montavedro »

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #6 le: 16 Octobre 2010, 13:25:11 »
Bah si je le met dans la callback de OneGameModeInit, dans OnPlayerPickUpPickup le "pickup" n'est pas reconnu :s

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #7 le: 16 Octobre 2010, 13:35:56 »
Je l'ai mis dans les 2 callback et sa marcheeeeeeeeee :)

Double post
Par contre, que veut dire "radius", par quoi le remplacer?

Double post
Les cmds ne marchent plus, ni /kill ni /entrer :s

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/kill", true, 3) ==0)
{
SetPlayerHealth(playerid, 0);
SendClientMessage(playerid, couleur_alert, "** Attention : tu es mort suite à ta commande /kill **");
return 1;
}
if(strcmp(cmdtext,"/entrer",true) == 0)
{
  if(IsPlayerInRangeOfPoint(playerid,7.0,363.3236,2476.9944,16.4844)
)
  SendClientMessage(playerid, couleur_dire, "Bar des terroristes");
return 1;
}
return 1;
}
« Modifié: 16 Octobre 2010, 14:02:17 par John_Montavedro »

Hors ligne Katou76

  • *
  • Tueur en série
  • Messages: 107
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #8 le: 16 Octobre 2010, 14:27:11 »
Pour créer un pickup:

Tu va dans OnGameModeInit.

Tu ajoute cette ligne:

AddStaticPickup(1239, 2, PosX, PosY,PosZ);
Ton Pickup est créer, maintenant si tu veut ajouter une commande pour que sa téléporte le joueur:

Tu va dans OnPlayerCommandText

Tu ajoute:

if(strcmp(cmd," /entrer", true) == 0)
{
       if(IsPlayerConnected(playerid))
       {
               if(PlayerToPoint(5.0,playerid, PosX,PosY,Poz)) // C'est les même positions que ton pickup (normalement)
               {
                        SetPlayerPos(playerid, PosX,PosY,PosZ); // La Position ou tu veut téléporter le joueur
                        SetPlayeInterior(playerid, id de l'interrior);
                        SendClientMessage(playerid,couleur_dire,"Bar des Térroriste");
               }
       }
}

J'espère t'avoir aidé ;)    
« Modifié: 16 Octobre 2010, 14:29:26 par Katou76 »
Ce code est un crime contre la programmation.

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #9 le: 16 Octobre 2010, 14:45:29 »
Le radius c'est le rayon ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #10 le: 16 Octobre 2010, 15:10:30 »
merci mais "cmd" et "playertopoint" existent pas :s

Double post
:s marche toujours pas et pourtant j'ai mis return 0;
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, "/kill", true, 3) ==0)
{
SetPlayerHealth(playerid, 0);
SendClientMessage(playerid, couleur_alert, "** Attention : tu es mort suite à ta commande /kill **");
return 1;
}
if(strcmp(cmdtext,"/entrer",true) == 0)
{
  if(IsPlayerInRangeOfPoint(playerid,7.0,363.3236,2476.9944,16.4844)
)
  SendClientMessage(playerid, couleur_dire, "Bar des terroristes");
return 1;
}
return 0;
}
« Modifié: 16 Octobre 2010, 15:19:14 par John_Montavedro »

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #11 le: 16 Octobre 2010, 15:36:34 »
Toujours pas :s . J'envois le Pastebin de tout le GM :s

http://pastebin.gtaonline.fr/pastebin.php?show=902

Hors ligne Katou76

  • *
  • Tueur en série
  • Messages: 107
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #12 le: 16 Octobre 2010, 15:39:51 »
Donne nous tes erreurs, on verra ce qu'il cloche pas.
Ce code est un crime contre la programmation.

Hors ligne John_Montavedro

  • Création du serveur UVDV
  • *
  • Tueur en série
  • Position: GTAOnline Addict :p
  • Messages: 220
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #13 le: 16 Octobre 2010, 15:42:10 »
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\new.pwn(147) : warning 204: symbol is assigned a value that is never used: "pickup"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Warning.

Mais là n'est pas le problème (je pense), le problème c'est qu'aucune commande ne fonctionne :(

Bizzare :s
« Modifié: 16 Octobre 2010, 15:46:46 par John_Montavedro »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Créer un point "Info" pour /entrer dans un batiement
« Réponse #14 le: 16 Octobre 2010, 16:55:49 »
Salut,


allez je vais essayer de t'éclairer:

Utilise l'un ou l'autre pas les deux:

    if(pickupid == pickup)
{
SetPlayerPos(playerid, 316.524993,-167.706985,999.593750);
SetPlayerInterior(playerid, 6);
return 1;
}
Ceci dans OnPlayerPickUpPickup téléporte le joueur dès qu'il touche le pickup. Si j'ai bien compris, ce n'est pas ce que tu veux, donc n'utilise pas ce bout de code.

Utilise seulement la commande (le /entrer). Je vais en parler un peu plus loin dans le post.

Comme tu n'utilisera pas la callback OnPlayerPickUpPickup, qui est le seul endroit ou le pickupid est vraiment pratique, tu peut utiliser CreatePickup ou AddStaticPickup (AddStaticPickup ne renvoie pas le numéro d'identification du pickup créé). Néanmoins, je te recommande fortement d'utiliser CreatePickup, ne serait-ce que pour l'habitude et ça t'évitera des problèmes si jamais tu change de système.

Donc, pour créer ton pickup, ajoute simplement cette ligne (avec les bonnes informations) dans la callback où tu veut que le pickup soit créé (probablement OnGameModeInit, enfin c'est le cas si tu veut que le pickup soit toujours présent sur le serveur).
CreatePickup(model_du_pickup, type_du_pickup, position_x, position_y, position_z, monde_virtuel);NB. monde_virtuel est un paramètre optionnel. Si tu le veut dans tous les mondes, ne l'utilise simplement pas.

Voilà, maintenant que l'on a créer le pickup, il ne reste plus qu'à faire la commande.

ta commande doit suivre la structure suivante:
Citer
es-ce que le texte passé est le bon (strcmp)
es-ce que le joueur est près du pickup (IsPlayerInRangeOfPoint)
il est près du pickup? très bien, on le déplace et le met dans l'intérieur avec un petit message (SetPlayerPos, SetPlayerInterior et SendClientMessage)
il n'est pas près du pickup? on ne fait rien ou on lui envoie un message
fin de la commande

voilà, rappelle toi bien d'utiliser les coordonnées du pickup dans ton IsPlayerInRangeOfPoint et celles de la destination dans ton SetPlayerPos et SetPlayerInterior

bonne chance

++Sim++