GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: jeje29140 le 21 Novembre 2011, 00:33:45
-
Bonjour,
J'ai trouvé un code sur un forum et j'ai essayer de le modifier et compléter avec mes propres informations! Cependant quand je fais à l'endroit ou il devrait être, il ne l'est pas! Mais le /peage lui m'enleve de l'argent!
Voici le code:#include <a_samp>
#include <core>
#include <float>
#include <float>
//#include <SimStream.inc>
forward timer();
new peage;
#define COLOR_YELLOW 0xF2FB25FF
#define CreateStreamObject CreateObject
public OnGameModeInit()
{
peage = CreateObject(968, 52.200000762939, -1527, 5.6999998092651, 1.9881896972656, 90.0000, 261.99621582031);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/peage", true)==0)
{
GivePlayerMoney(playerid, -25);
MoveObject(peage, 52.200000762939, -1522.3000488281, 5.6999998092651, 3.5);//On bouge l'objet
SetTimer("timer", 7000, 0);
}
SendClientMessage(playerid, COLOR_YELLOW,"Fermeture dans 7 secondes");//On averti
}
public timer()
{
MoveObject (peage, 52.200000762939, -1527, 5.6999998092651, 2.5);//retour
return 1;
}
Si vous trouvez le problème se serait un grand soulagement pour moi :p ;)
Merci :)
-
Pour bien commencer, tu inclut deux fois la librarie float.
Ensuite, la librairie core et float sont déjà inclut dans la librairie a_samp.
#define CreateStreamObject CreateObject
La fonction CreateStreamObject n'existe manifestement pas car tu n'utilise pas de streamer, retire donc cette ligne et le problème de la position de l'objet devrait être réglé !
Pour finir, tu ne fait aucun test de position pour savoir si le joueur est près du péage, il est donc normal qu'il puisse ouvrir le péage de n'importe quelle position.
-
Oui la position ou le joueur doit etre je les enlever pour me faciliter la tache et essayer de faire sans, je vais la remettre! Merci pour ta réponse je vais tester :p :)
EDIT: maintenant j'ai des erreurs voici mon code: #include <a_samp>
forward timer();
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
new peage;
#define COLOR_YELLOW 0xF2FB25FF
public OnGameModeInit()
{
peage = CreateObject(968, 52.200000762939, -1527, 5.6999998092651, 1.9881896972656, 90.0000, 261.99621582031);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/peage", true)==0)
}
else if(PlayerToPoint(6, playerID, 55.299999237061, -1532.1999511719, 5.3000001907349))//6 est la taille de la zone
GivePlayerMoney(playerid, -25);
MoveObject(peage, 52.200000762939, -1522.3000488281, 5.6999998092651, 3.5);//On bouge l'objet
SetTimer("timer, 7000, 0);//On active le Timer
}
SendClientMessage(playerid, COLOR_YELLOW,"Fermeture dans 7 secondes");//On averti
}
public timer()
{
MoveObject (peage, 52.200000762939, -1527, 5.6999998092651, 2.5);//retour
return 1;
}
et voici mes erreurs:
F:\Rockstar Games\Gta San Andreas\filterscripts\CameraFS.pwn(23) : error 029: invalid expression, assumed zero
F:\Rockstar Games\Gta San Andreas\filterscripts\CameraFS.pwn(23 -- 25) : warning 215: expression has no effect
F:\Rockstar Games\Gta San Andreas\filterscripts\CameraFS.pwn(25) : error 001: expected token: ";", but found "else"
F:\Rockstar Games\Gta San Andreas\filterscripts\CameraFS.pwn(25) : error 004: function "PlayerToPoint" is not implemented
F:\Rockstar Games\Gta San Andreas\filterscripts\CameraFS.pwn(25) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Je c'est je suis un débutant ^^
-
J'ai indenté ton code, à toi de trouver tes erreurs.
#include <a_samp>
#define COLOR_YELLOW 0xF2FB25FF
forward timer();
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
new peage;
public OnGameModeInit()
{
peage = CreateObject(968, 52.200000762939, -1527, 5.6999998092651, 1.9881896972656, 90.0000, 261.99621582031);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/peage", true) == 0)
} // Erreur
else if(PlayerToPoint(6, playerID, 55.299999237061, -1532.1999511719, 5.3000001907349))
GivePlayerMoney(playerid, -25);
MoveObject(peage, 52.200000762939, -1522.3000488281, 5.6999998092651, 3.5);
SetTimer("timer, 7000, 0);
}
SendClientMessage(playerid, COLOR_YELLOW, "Fermeture dans 7 secondes");
}
public timer()
{
MoveObject (peage, 52.200000762939, -1527, 5.6999998092651, 2.5);
return 1;
}
-
Je c'est qu'il manque juste qu'un petit symbole ou un petit mot mais je ne le trouve pas ^^
-
#include <a_samp>
#define COLOR_YELLOW 0xF2FB25FF
forward timer();
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
new peage;
public OnGameModeInit()
{
peage = CreateObject(968, 52.200000762939, -1527, 5.6999998092651, 1.9881896972656, 90.0000, 261.99621582031);
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/peage", true) == 0)
{
if(PlayerToPoint(6, playerid, 55.299999237061, -1532.1999511719, 5.3000001907349))
{
GivePlayerMoney(playerid, -25);
MoveObject(peage, 52.200000762939, -1522.3000488281, 5.6999998092651, 3.5);
SetTimer("timer", 7000, 0);
SendClientMessage(playerid, COLOR_YELLOW, "Fermeture dans 7 secondes");
}
}
}
public timer()
{
MoveObject (peage, 52.200000762939, -1527, 5.6999998092651, 2.5);
return 1;
}
Voilà le partiellement code corrigé.
GivePlayerMoney(playerid, -25);
Ceci n'aura pas l'effet que tu attends, regarde le Wiki pour savoir pourquoi !
-
pk pas l'effet que j'attends sa me retire 25$ c'est ce que je veux non?
sinon le code il y a une erreur: error 004: function "PlayerToPoint" is not implemented
Pourtant il y a le forward!
-
L'erreur est ici: if (strcmp(cmdtext, "/peage", true)==0)
}
else if(PlayerToPoint(6, playerID, 55.299999237061, -1532.1999511719, 5.3000001907349))//6 est la taille de la zone
Utilise IsPlayerInRangeOfPoint c'est mieux je trouve.
-
La je ne comprends vraiement plus rien ^^
-
C'est que tu ne sais pas programmé, merci de passer à autre chose ou alors, tu apprends, mais tu ne grappille pas des codes.
Bonne soirée.
-
Mais c'est bon c'est comem ca que l'on découvre et j'ai scripter plein de choses mais celui la m'embete et il n'y à pas de bon tuto!!!!!!
-
Ajoute mon skype, je t'aiderais: james_jeffrey1.
Voici comment cela doit etre:
if (strcmp(cmdtext, "/peage", true)==0)
{
if(IsPlayerInRangeOfPoint(6, playerid, 55.299999237061, -1532.1999511719, 5.3000001907349))
{
Double post
Dsl
Dsl comme ceci :
if(IsPlayerInRangeOfPoint( playerid,6, 55.299999237061, -1532.1999511719, 5.3000001907349))
-
Arrêtes les doubles post mehdi!
-
Moi c'est pas mehdi, c'est mehdi-jumper^^
Je vois pas pourquoi tu met un avertissement pour sa vu que le forum fusionne automatiquement ton deuxieme poste avec le premier, alors sa fait comme si ce n'etait plus qu'un.
Dsl du HS
S mp moi si tu veux me dire quelque chose
-
Tu ose dire que tu sais programmé mais tu pousse un cri quand il n'y à pas de tutoriel qui exécute exactement tes envies ?
Pour moi, tu ne sais pas programmer, et si tu continu dans cet esprit, tu ne saura jamais.
-
Mais je l'avoue je ne sais pas programmé mais grâce a certain comme medhi je vais progresser! Alors que toi tu ne met d'aucune utilité! Dsl mec ! Merci medhi ;)
-
Je te suis d'aucune inutilité ?!
Systeme de péage (http://www.gtaonline.fr/forums/index.php/topic,14731.msg252515.html#msg252515)
Systeme de péage (http://www.gtaonline.fr/forums/index.php/topic,14731.msg252540.html#msg252540)
Systeme de péage (http://www.gtaonline.fr/forums/index.php/topic,14731.msg252552.html#msg252552)
Tu me prend pour un c*n ?
-
oé ok mais bon après c'est pas la peine de HS je suis nul je suis nul, après tout c'est un forum d'aide! ^^
-
Il t'avais donné tous les elements de reponses avec des explications claires !
Comme tu le dis c'est un forum d'aide, donc on doit t'aider et non te servir tes codes sur un plateau..
-
Mais je sais que l'on va pas me donner les codes et d'ailleurs ca ne m'interresse pas car je veux progresser, c'est juste que j'ai pas compris ce qu'il ma dit ^^
-
Tu sais comment l'on voit que tu ne sais pas programmer ?
Tu n'as aucune notion de structuration de code.
Quand tu ouvre un bloc, tu dois obligatoirement le fermer.
-
Oui merci je c'est c'est avec les fermetures et ouvertures que j'ai le plus de mal ^^
-
Mehdi-jumper, pas medhi ou juste mehdi, mehdi-jumper en entier plz :)
-
Moi c'est pas mehdi, c'est mehdi-jumper^^
Je vois pas pourquoi tu met un avertissement pour sa vu que le forum fusionne automatiquement ton deuxieme poste avec le premier, alors sa fait comme si ce n'etait plus qu'un.
Dsl du HS
S mp moi si tu veux me dire quelque chose
Il le fusionne pour éviter que ça fasse un vrai double post, mais il écris bien que c'est un double post et que je sache sur le forum les doubles post sont interdits!