GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: [4D]_Rapido le 09 Octobre 2007, 09:17:07

Titre: Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 09 Octobre 2007, 09:17:07
Slt

Je suis surement nouveaux sur le site a mavoir inscrie je me souvient plus mais bon pas grave , donc voila j'ai essayer de crée un script de maison le script consiste a acheter la maison avec /acheter et mon probleme c'est que on peut faire /acheter de partout moi je veut que on peut faire /acheter que sur le pickup donc voila merci d'avance :) :)
Titre: Re : Petit probleme pour acheter des maison
Posté par: Syg le 09 Octobre 2007, 09:51:26
Définis une zone autour de ton pickup et ne permets la commande que quand le joueur est dans cette zone.

++
Syg
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 10 Octobre 2007, 14:06:17
Mes les zone j'arrive pas a les faire c'est avec quoi X,Y,Z et quoi aprés il doit en avoir un 4eme
Titre: Re : Petit probleme pour acheter des maison
Posté par: UrbanGhetto le 10 Octobre 2007, 16:41:22
Utilise ce logiciel :

http://forum.sa-mp.com/index.php?topic=14702.0 (http://forum.sa-mp.com/index.php?topic=14702.0)

Bonne chance  ;)
Titre: Re : Petit probleme pour acheter des maison
Posté par: [StAfF]MaN le 10 Octobre 2007, 17:58:25
ou sinon (je ne sais pas si c'est possible..) tu fais en sorte que quand le player est SUR le pickup, au lieu qu'il y est une actioncomme donner une arme, que le player tape /acheter et que la somme voulu soit retirée du compt de ton player. Voila en faite, au lieu de mettre (par exemple) :

giveplayerweapon(playerid)

bah que tu mette ça :

(regarde ici : http://pastebin.gtaonline.fr/pastebin.php?show=109)

voila ^^ (j'ais tout expliqué dans le script comme ça ;) lol )
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 10 Octobre 2007, 18:40:35
J'ai fait ...

   if(strcmp(cmd, "/acheter", true) == 0 ){
   new pickupid;
   {
   if (GetPlayerMoney(playerid) < 50000)
   {
    SendClientMessage(playerid,COLOR_RED,"Désoler vous n'avez pas assez d'argent pour acheter la maison");
   }
   else
   {
    if( pickupid == m1 )
   SendClientMessage(playerid,COLOR_RED,"");
   SendClientMessage(playerid,COLOR_RED,"Vous avez acheté la maison");
   GivePlayerMoney(playerid, -50000);
   }
   }
    return 1;
}
et


public OnPlayerPickUpPickup(playerid, pickupid)
{
    SendClientMessage(playerid,COLOR_YELLOW,"Pour Acheté la maison Tapez /acheter (/prix pour avoir le pris de la maison)ou vendre tapez /vendre Si vous êtes le propriétaire");


  if( pickupid == m1 ) {
  SendClientMessage(playerid, COLOR_YELLOW,"la maison côute 50000$");
  }
  if( pickupid == m2 ) {
  SendClientMessage(playerid, COLOR_YELLOW,"la maison côute 75000$");
  }
return 1;
}


je voit pas le probleme quand je vais desus

 
Titre: Re : Petit probleme pour acheter des maison
Posté par: UrbanGhetto le 10 Octobre 2007, 19:55:52
Merçi d'utiliser PasteBin (http://www.gtaonline.fr/forums/index.php/topic,1098.0.html) Parsque personne ne vas lire ton code comme ça...
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 10 Octobre 2007, 20:46:37
ok mais sinon je comprend pas pk sa marche pas quand on et desus car je peut faire acheter partout


 sinon toute a lheure j'ai creer une zone mais je sais pas comment faire pour autoriser la commande que dans la zone
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 11 Octobre 2007, 16:46:52
up!!!
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 11 Octobre 2007, 20:11:41
svp aidez moi up up !!!
Titre: Re : Petit probleme pour acheter des maison
Posté par: [StAfF]MaN le 11 Octobre 2007, 20:28:39
Bah heu, disont qu'on peu attendre la venu d'un pro du script ?? ^^ Parce qu'en faite c'est chaud ton histoire ;)
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 11 Octobre 2007, 20:42:39
a ok  a mon avie faudra attendre allor  :(
Titre: Re : Petit probleme pour acheter des maison
Posté par: UrbanGhetto le 11 Octobre 2007, 20:51:03
J'ai trouver la solution a ton problème :

http://forum.sa-mp.com/index.php?topic=23286.0 (http://forum.sa-mp.com/index.php?topic=23286.0)

Enjoy  ;)
Titre: Re : Petit probleme pour acheter des maison
Posté par: Syg le 11 Octobre 2007, 23:08:38
Je crois que la solution de Urbanghetto est la meilleure.
J'ai un peu regardé les bouts de script que tu as postés Rapido, il y a vraiment beaucoup d'erreurs et les corriger toutes dans le forum me parait impossible (si ce n'est d'écrire le script en entier mais c'est pas la politique de la maison).

Donc inspires toi de ce qu'Urbanghetto t'as filé et surtout, il est très important que tu comprennes ce que tu fais.

Règle n°62-923A : Le copier/coller est le pire ennemi du débutant !!!

++
Syg
Titre: Re : Petit probleme pour acheter des maison
Posté par: UrbanGhetto le 11 Octobre 2007, 23:19:38
Je ne savais pas qu’il y avait autent de régles ???
Titre: Re : Petit probleme pour acheter des maison
Posté par: R@f le 11 Octobre 2007, 23:21:00
petit HS :
Citer
Règle n°62-923A : Le copier/coller est le pire ennemi du débutant !!!
je pense que le copier/coller est ce que fait chaque debutant, moi aussi quand je debutais je fesais aussi des copier/coller, mais je prenais mon temps pour analyser le code que je vennais de copier et maintenant je crée mes fonctions tout seul :) c'est meme hyper fun d'en créer tout seul ^^

PS : le R@f Admin Script est en cours de création et sera bientot mis sur le forum si je m y met a fond ^^
Titre: Re : Petit probleme pour acheter des maison
Posté par: Syg le 11 Octobre 2007, 23:28:09
Oui mais dans ton cas Raf(FS) on ne peut pas parler de copier/coller.
Le copier/coller veut bien dire ce qu'il veut dire : je prend d'un coté pour mettre de l'autre sans modification.
Si tu copies du code et que tu l'adaptes à ton script (ce qui est la chose à faire), ce n'est plus du copier/coller (au sens bourrin du terme).

Sinon Urbanghetto, le numéro 62-923A n'est que le fruit de mon imagination, ça n'a rien d'officiel.
Mais avoues que ça en jette !!! :D

++
Syg
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 12 Octobre 2007, 13:20:33
Oué Merci les gas mes tous m'aide toujours pas car je veut ni de zone ni de chekpoint juste la maniere de faire fonctionner la commande étant sur le pickup merci...
Titre: Re : Re : Petit probleme pour acheter des maison
Posté par: NatiVe™ le 12 Octobre 2007, 17:58:09
Règle n°62-923A : Le copier/coller est le pire ennemi du débutant !!!

Du code Penal ? ( je sais c'est pas marrant :S )

AK NV.
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 12 Octobre 2007, 19:11:27
re voici se que j'ai fait :

if(strcmp(cmd, "/acheter", true) == 0)
        {
                new property=999;
                if(IsPlayerInArea(playerid))
                {
                        switch (PLAYER_VARS[playerid][STD][CHECK_POINT])
                        {
                                case PU_M1:{
                                        property = M1;
                                }
                        }
                        if (GetPlayerMoney(playerid) < 50000)
                        {
                SendClientMessage(playerid, COLOR_RED,"Désoler vous n'avez pas assez d'argent pour acheter la maison");
                        }
                        if(property==999)
                        {
                                SendClientMessage(playerid, COLOR_YELLOW, "tu dois etre sur le pickup pour pouvoir faire le /acheter.");
                                return 1;
                        }
                        if(propertyOwner[property]==playerid)
                        {
                                SendClientMessage(playerid, COLOR_RED, "Tu possède deja cette maison");
                                return 1;
                        }
            PlaySoundForPlayer(playerid,SOUND_PURCHASE);
                        propertyOwner[property]=playerid;
                        format(string, sizeof(string), "tu a acheter %s", propertyNames[property]);
                        SendClientMessage(playerid, COLOR_GREEN, string);
                }
                else
                {
                        SendClientMessage(playerid, COLOR_YELLOW, "tu dois etre sur le pickup pour pouvoir faire le /acheter.");
                        return 1;
                }

mes j'ai des erreur

C:\DOCUME~1\......\Bureau\SAMP02~1.2\h.pwn(131) : error 017: undefined symbol "IsPlayerInArea"
C:\DOCUME~1\.......\Bureau\SAMP02~1.2\h.pwn(133) : error 017: undefined symbol "PLAYER_VARS"
C:\DOCUME~1\......\Bureau\SAMP02~1.2\h.pwn(133) : error 029: invalid expression, assumed zero
C:\DOCUME~1\.....\Bureau\SAMP02~1.2\h.pwn(133) : error 029: invalid expression, assumed zero
C:\DOCUME~1\......\Bureau\SAMP02~1.2\h.pwn(133) : fatal error 107: too many error messages on one line

merci de m'aider
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 12 Octobre 2007, 20:57:30
up !!!!
Titre: Re : Re : Petit probleme pour acheter des maison
Posté par: R@f le 12 Octobre 2007, 21:05:40
re voici se que j'ai fait : .....
ce qui me choque dans cettre phrase c'est que c est moi qui t as filé ce bout de script et tu dis que c'est toi qui l'as fait  ::) essaye avec des checkpoints ou fait des menus quand on va sur un pickup, je pense que tu es assez fort pour le faire toi meme si tu es "pro scripteur" comme c est écris sous ton psuedo

PS : ne t'étonne pas si je t'es blocker sur msn, tu me demande tout les 30sec si c'est fini, tu sais que j'ai pas tout ma journée pour aider des gens qui me soulent....
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 12 Octobre 2007, 21:09:32
dsl

mais moi je veut de l'aide juste pour sa et ji arrive pas donc sa me fou les nerf donc a mon avie ce qui faut il faudrait un gros scripteur car moi je ne peut y arriver merci de m'aider
Titre: Re : Petit probleme pour acheter des maison
Posté par: [StAfF]MaN le 12 Octobre 2007, 21:12:30
Ce sont des erreurs classiques, il faut que tu mette

new IsPlayerInArea;

 en dessous ou au dessus de new property=999;

pareil pour l'erreur a la ligne 133

pour les autres, je vois pas, parce que il n'y a pas tout le script (normale) mais faudrais que tu le passe a quelqu'un pour qu'il puisse y jetter un oeil ^^
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 12 Octobre 2007, 22:03:59
ben marche pas

C:\DOCUME~1\WILLIAM\Bureau\SAMP02~1.2\h.pwn(128) : error 012: invalid function call, not a valid address
C:\DOCUME~1\.....\Bureau\SAMP02~1.2\h.pwn(128) : warning 215: expression has no effect
C:\DOCUME~1\.....\Bureau\SAMP02~1.2\h.pwn(128) : error 001: expected token: ";", but found ")"
C:\DOCUME~1\.....\Bureau\SAMP02~1.2\h.pwn(128) : error 029: invalid expression, assumed zero
C:\DOCUME~1\.....\Bureau\SAMP02~1.2\h.pwn(128) : fatal error 107: too many error messages on one line

5 error

Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 12 Octobre 2007, 22:34:53
j'ai essayer de corriger le probleme mes auccune maniere d'y arriver
Titre: Re : Petit probleme pour acheter des maison
Posté par: Syg le 12 Octobre 2007, 22:35:27
Encore du copier/coller à l'arrache ....
Il te manque la fonction IsPlayerInArea (je ne sais pas où tu peux la trouver, certainement là où tu as récupérer le reste)
Il te manque la déclaration du tableau PLAYER_VARS (même remarque de ci-dessus)

Si tu trouve ça, tu ne devrais plus avoir d'erreur de compil (ce qui ne veut pas dire que ton script fera ce que tu veux qu'il fasse).


++
Syg
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 12 Octobre 2007, 22:38:29
tu veut dire sa :

public isPlayerInArea(playerID, Float:data[4])
{
Titre: Re : Petit probleme pour acheter des maison
Posté par: Syg le 12 Octobre 2007, 22:50:54
Oui, mais avec le code qui va derrière bien sur.
Donc il ne te manque plus que le tableau PLAYER_VARS.

++
Syg
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 12 Octobre 2007, 22:52:33
je sais pas quoi mettre comme tableau PLAYER_VARS
et aussi je sais pas quoi mettre dans :
public IsPlayerInArea(playerID)
{

return 1;
}
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 12 Octobre 2007, 23:27:09
up !!!
une aide
Titre: Re : Petit probleme pour acheter des maison
Posté par: R@f le 12 Octobre 2007, 23:33:10
patient tu seras, réponse tu auras

je veux dire avec sa que tu devrais eviter les UPs, sois patient ;)
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 13 Octobre 2007, 00:25:39
es péront que ma reponse arriveras aujourd'hui :happy
Titre: Re : Re : Petit probleme pour acheter des maison
Posté par: Syg le 13 Octobre 2007, 01:36:35
je sais pas quoi mettre comme tableau PLAYER_VARS
et aussi je sais pas quoi mettre dans :
public IsPlayerInArea(playerID)
{

return 1;
}

Et ben moi non plus ....
Je pense qu'il faut que tu te tournes vers celui ou celle qui t'a filé le bout de script que tu nous a montré.

++
Syg
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 13 Octobre 2007, 01:57:39
ok merci de ta reponse
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 13 Octobre 2007, 20:21:24
ben meme je croie qu'il c'est pas le faire
donc il faudrait un trés gros scripteur pour m'aider donc faut que j'attend ++

(http://www.gtaonline.fr/forums/Themes/proton/images/warnwarn.gif) Doubles posts à répétition. (http://www.gtaonline.fr/forums/Themes/proton/images/warnwarn.gif)
Titre: Re : Petit probleme pour acheter des maison
Posté par: R@f le 13 Octobre 2007, 20:23:15
arf, encore un double post de ta part  ::)
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 13 Octobre 2007, 20:47:47
Raf(FS) es ce que c'est toi qui m'avait passez le script pour l'aide si oui ji arrive pas tu peut m'aider stp
Titre: Re : Petit probleme pour acheter des maison
Posté par: [StAfF]MaN le 13 Octobre 2007, 20:57:27
Erf.... Tu peu faire un peu tout seul non ? avec des tutos, ou je sais pas quoi... mais essais, parce que si tu ouvre ton fichier pawno et tu ne comprend pas c'est pas la peine d'aller plus loin... Faut chercher un peu tout seum ;)  :happy
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 13 Octobre 2007, 21:22:31
Je sais scripter mes c'est que ce script qui me fait chier
Titre: Re : Petit probleme pour acheter des maison
Posté par: [StAfF]MaN le 13 Octobre 2007, 21:29:08
Bah le fais pas... qu'est ce tu veu qu'on y fasse nous.... On peu t'aider mais pas le faire a ta place...
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 13 Octobre 2007, 21:30:33
ben encore de l'aide allors
Titre: Re : Petit probleme pour acheter des maison
Posté par: [StAfF]MaN le 13 Octobre 2007, 21:33:39
Erf... Y a d'autre sujet que le tien, soit patient... rien d'autre a dire....
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 14 Octobre 2007, 15:30:12
c'est bon j'ai reusie a faire le script merci a tous de vos reponse
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 15 Octobre 2007, 14:17:16
Enfaite non il marche toujours pas mais sa serai bien cool de m'aidez car comme ce topic et terminer
Titre: Re : Petit probleme pour acheter des maison
Posté par: Syg le 15 Octobre 2007, 14:23:49
Quand je te disais que je ne savais pas non plus ce qu'il fallait mettre dans ton tableau PLAYER_VARS et dans ta fonction public IsPlayerInArea(playerID), c'est pas parce que je ne sais pas scripter comme tu le sous-entends, c'est parce que les contenus de ce tableau et de cette fonction sont liés au bout de script que tu essaies de faire marcher.

Si tu veux, je peux te donner de quoi remplir ta fonction ou ton tableau mais je suis pas sur que ton script fonctionne comme tu veux qu'il fonctionne.

Donc je te le redis, tourne toi plutôt vers celui (ou celle) qui t'a filé ce bout de script et demande lui les morceaux qui manquent.

++
Syg
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 15 Octobre 2007, 14:29:27
Mest il veut pas

donc je serai bien d'accord Que tu me donne pour remplir ma fonction meme si sa fonctionne pas

[4D]_Rapido

++
Titre: Re : Petit probleme pour acheter des maison
Posté par: Syg le 15 Octobre 2007, 14:49:45
C'était de l'humour, je peux te filer du code pour calculer la CRC d'un fichier par exemple, ça en jette mais ça ne t'aidera certainement pas.
Mais bon, par déduction, pour ce qui est de la fonction IsPlayerInArea, c'est une fonction qui (comme sont nom l'indique) vérifie qu'un joueur est dans une zone (area) donnée et qui renvoie 0 si le joueur est à l'extérieur de la zone et 1 quand le joueur est dans la zone.

Donc ça se résume à comparer la position du joueur (X et Y suffisent) avec la définition d'une zone ((X1, Y1) (X2, Y2)).
Avec X1<X2 et Y1<Y2 (sinon le test suivant ne va pas fonctionner)
 
Soit un code du genre :
Code: (cpp) [Sélectionner]
if (X>=X1 && X<=X2 && Y>=Y1 && Y<=Y2)
{
   return 1;
}
else
{
   return 0;
}
Il te reste à définir la zone en question.

++
Syg
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 16 Octobre 2007, 19:50:25
d'accord je vais essayer merci

[4D]_Rapido

++
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 22 Octobre 2007, 09:51:47
re :

donc me revoila en me baladant parcie par la j'ai trouver ce cis qui vraiment resoudra mon probleme :

#include <a_samp>
 
#include <core>
 
#include <float>
 
#include <a_objects>
 
new Pick1;
new PickUpPickup = 0;
 
public OnGameModeInit(){
Pick1 = AddStaticPickup(/*Model,Type,X,Y,Z*/);
return 1;
}
 
public OnPlayerPickUpPickup(playerid, pickupid){
if (Pick1){
PickUpPickup = 1;
}
return 1;
}
 
public OnPlayerCommandText(playerid, cmdtext[]){
if(strcmp(cmdtext, "/CMD") == 0){
if(PickUpPickup == 1){
/*Actions*/
}else{
SendClientMessage(playerid,0xFF0000AA,"> Vous n'êtes pas sur le Pickup.");
}
return 1;
}
return 0;
}

Donc voila maitenant que sa vas maider le sujet peut etre CLOS  a+ tous le monde et merci de toute vos reponse ++ :) :D ::) :laugh :happy


[4D]_Rapido
++
Titre: Re : Petit probleme pour acheter des maison
Posté par: Syg le 22 Octobre 2007, 15:05:19
Ce code ne marche que si tu n'as qu'un seul pickup ou que tous tes pickup sont du même type.
La fonction AddStaticPickup ne renvoie pas le pickupid, elle renvoie toujours 1.
Si tu veux mettre plusieurs pickup dans ton gamemode, je te conseille d'utiliser la fonction CreatePickup à la place de AddStaticPickup.

Vas voir ici, tout est dit :
http://www.gtaonline.fr/forums/index.php/topic,1304.msg12692.html#msg12692

++
Syg
Titre: Re : Petit probleme pour acheter des maison
Posté par: [4D]_Rapido le 23 Octobre 2007, 09:35:05
slt

oué je s'avait car j'allais modifer le script et j'allais bien mettre CreatePickup
car avec AddStaticPickup quand je creer des pickup avec ca certain chose ne marche pas met avec CreatePickup ca marche mieu mes merci quand meme syg

[4D]_Rapido
++