Problиme CreateObject en commande
#1

Bonjour,
je suis en train de faire un systиme de /valise et /retirervalise mais j'ai des erreurs.
J'ai cherchй dans des vieux sujets mais je ne trouve rien de concluant.
On m'a dit de mettre "+3" pour que ce soit dans la main du joueur.
La ligne 568 est celle du Create Object.

Merci !
Quote:

test.pwn(56 : error 029: invalid expression, assumed zero
test.pwn(56 : warning 215: expression has no effect
test.pwn(56 : warning 215: expression has no effect
test.pwn(56 : warning 215: expression has no effect
test.pwn(56 : warning 215: expression has no effect
test.pwn(56 : error 001: expected token: ";", but found ")"
Ctest.pwn(56 : error 029: invalid expression, assumed zero
test.pwn(56 : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.

Code:
	
if(strcmp(cmdtext, "/valise", true) == 0)
	{
	        new valise[MAX_PLAYERS];
		valise[playerid] = CreateObject(1210, 0.0, 0.0, +3, 0.0, 0.0, 0.0);
		AttachObjectToPlayer(valise[playerid], playerid, x, y, z, rx, ry, rz);
	}
if(strcmp("/retirervalise", cmdtext, true) == 0)
	{
		DestroyObject(valise[playerid]);
		return 1;
	}
Reply
#2

PHP Code:
      if(strcmp("/valise"cmdtexttrue) == 0
      { 
            new 
valise[MAX_PLAYERS]; 
            
valise[playerid] = CreateObject(idvalise0.00.00.00.00.00.0); 
            
AttachObjectToPlayer(valise[playerid], playeridxyzrxryrz); 
      } 

      if(
strcmp("/retirervalise"cmdtexttrue) == 0
      { 
            
DestroyObject(valise[playerid]); 
      } 
Reply
#3

Un createobjet sur une personne heuuuu nope

cest comme plutфt sa
PHP Code:
SetPlayerAttachedObject(playerid8,3026,-0.13000, -0.080.0000002.4599990, -3.100000111); 
Reply
#4

Si Tysanio. Mais SetPlayerAttachedObject est plus adaptйe а son problиme.
Reply
#5

Quote:
Originally Posted by Julien Sirasor
View Post
PHP Code:
      if(strcmp("/valise"cmdtexttrue) == 0
      { 
            new 
valise[MAX_PLAYERS]; 
            
valise[playerid] = CreateObject(idvalise0.00.00.00.00.00.0); 
            
AttachObjectToPlayer(valise[playerid], playeridxyzrxryrz); 
      } 
      if(
strcmp("/retirervalise"cmdtexttrue) == 0
      { 
            
DestroyObject(valise[playerid]); 
      } 
Merci mais зa m'a supprimer 1 seule erreur. De plus, j'ai enlever idvalise par 1210.

Quote:

test.pwn(565) : warning 217: loose indentation
test.pwn(569) : error 017: undefined symbol "x"
test.pwn(574) : error 017: undefined symbol "valise"
test.pwn(574) : warning 215: expression has no effect
test.pwn(574) : error 001: expected token: ";", but found "]"
test.pwn(574) : error 029: invalid expression, assumed zero
test.pwn(574) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


5 Errors.

Reply
#6

Tu penses que X, Y et Z sont des valeurs magiques qui prennent automatiquement la valeur de la position du joueur ?
Reply
#7

Quote:
Originally Posted by S4t3K
View Post
Tu penses que X, Y et Z sont des valeurs magiques qui prennent automatiquement la valeur de la position du joueur ?
Je me disais aussi...
Il y a moyen de rйcupйrer ces positions et de faire en sorte que la mallette soit dans sa main droite ?

Merci
Reply
#8

Tu as GetPlayerPos.

Sinon, j'ai fait un petit bout de code qui devrait pas mal t'aider. Rajoute зa au sommet de ton GM/script ou dans une include si tu prйvois d'utiliser зa sur plusieurs modes :

PHP Code:

#define PPOS(%1) \
            
new Float:xFloat:yFloat:z; \
            
GetPlayerPos(%1xyz);
#define PPOS_(%1) \
            
new Float:xxFloat:yyFloat:zz; \
            
GetPlayerPos(%1xxyyzz);
#define VPOS(%1) \
            
new Float:xFloat:yFloat:z; \
            
GetVehiclePos(%1xyz);
#define VPOS_(%1) \
            
new Float:xxFloat:yyFloat:zz; \
            
GetVehiclePos(%1xxyyzz); 
Comme зa, ton code deviendra.

PHP Code:

// dans ta commande
PPOS(playerid)
CreateObject(511xyz0.00.00.0); 
et lа, x, y et z seront des valeurs magiques.
J'ai йgalement crйй une macro si tu veux rйcupйrer la position d'un autre joueur dans la mкme commande, et pour le deuxiиme joueur, faudra utiliser xx, yy et zz.

VPOS(id_du_vehicule) rйcupйrera en x(x), y(y) et z(z) la position de id_du_vehicule.

Mais sinon, lis la docu de SetPlayerAttachedObject pour ton cas.
Reply
#9

Cordialement,
Reply
#10

Donc ce serait un truc comme зa mais je dois le modifier en SetPlayerAttchedObject ?
Sinon merci, ca me sera sыrement utile

Code:
      if(strcmp("/valise", cmdtext, true) == 0)
      {
            new valise[MAX_PLAYERS];
            PPOS(playerid)
            valise[playerid] = CreateObject(1210, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
            AttachObjectToPlayer(valise[playerid], playerid, x, y, z, rx, ry, rz);
      }

      if(strcmp("/retirervalise", cmdtext, true) == 0)
      {
            DestroyObject(valise[playerid]);
      }
Reply
#11

Quote:
Originally Posted by Inyso
View Post
Quote:
Originally Posted by StevenPhp
View Post
Donc ce serait un truc comme зa mais je dois le modifier en SetPlayerAttchedObject ?
Sinon merci, ca me sera sыrement utile

Code:
      if(strcmp("/valise", cmdtext, true) == 0)
      {
            new valise[MAX_PLAYERS];
            PPOS(playerid)
            valise[playerid] = CreateObject(1210, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
            AttachObjectToPlayer(valise[playerid], playerid, x, y, z, rx, ry, rz);
      }

      if(strcmp("/retirervalise", cmdtext, true) == 0)
      {
            DestroyObject(valise[playerid]);
      }
Tu pourra glisser et crйer un objet, ensuite tu pourra le prendre en tant qu'AttachObjectToPlayer, trиs facile а utiliser. Lis un peu le 'thread' et tu devrais survivre.
Reply
#12

@Inyso : Je suis pour que les gens crйent leurs codes eux-mкmes car utiliser toutes les ressources qu'on a a disposition c'est plus facile mais on reste а un niveau de codage basique puisque toute la partie "complexe" a йtй faite par quelqu'un de plus compйtent.

Sinon, зa donnerait plutфt зa

PHP Code:
// Au sommet de ton script
new valise_slot[MAX_PLAYERS];
// En bas de ton script
stock GetFreeIndex(playerid)
{
      new 
= -1;
      for(
010i++)
      {
            if(!
IsPlayerAttachedObjectSlotUsed(playeridi)) break;
      }
      return 
i;
}
// Dans OnPlayerCommandText
if(!strcmp(cmdtext"/valise"true)
{
      if(
GetFreeIndex == -1) return SendClientMessage(playerid, -1"Vous avez trop d'objets sur vous pour porter une valise !");
      
valise_slot[playerid] = GetFreeIndex(playerid);
      
SetPlayerAttachedObject(playeridGetFreeIndex(playerid), 12106); // 6 = main droite | 5 = main gauche
      
EditAttachedObject(playeridvalise_slot[playerid]);
      return 
1;
}
if(!
strcmp(cmdtext"/retirervalise"true))
{
      
RemovePlayerAttachedObject(playeridvalise_slot[playerid]);
      
valise_slot[playerid] = -1;
      return 
1;

Reply
#13

Quote:
Originally Posted by S4t3K
@Inyso : Je suis pour que les gens crйent leurs codes eux-mкmes car utiliser toutes les ressources qu'on a a disposition c'est plus facile mais on reste а un niveau de codage basique puisque toute la partie "complexe" a йtй faite par quelqu'un de plus compйtent.
Mes excuses.
Reply
#14

Quote:
Originally Posted by S4t3K
View Post
@Inyso : Je suis pour que les gens crйent leurs codes eux-mкmes car utiliser toutes les ressources qu'on a a disposition c'est plus facile mais on reste а un niveau de codage basique puisque toute la partie "complexe" a йtй faite par quelqu'un de plus compйtent.

Sinon, зa donnerait plutфt зa

PHP Code:
// Au sommet de ton script
new valise_slot[MAX_PLAYERS];
// En bas de ton script
stock GetFreeIndex(playerid)
{
      new 
= -1;
      for(
010i++)
      {
            if(!
IsPlayerAttachedObjectSlotUsed(playeridi)) break;
      }
      return 
i;
}
// Dans OnPlayerCommandText
if(!strcmp(cmdtext"/valise"true)
{
      if(
GetFreeIndex == -1) return SendClientMessage(playerid, -1"Vous avez trop d'objets sur vous pour porter une valise !");
      
valise_slot[playerid] = GetFreeIndex(playerid);
      
SetPlayerAttachedObject(playeridGetFreeIndex(playerid), 12106); // 6 = main droite | 5 = main gauche
      
EditAttachedObject(playeridvalise_slot[playerid]);
      return 
1;
}
if(!
strcmp(cmdtext"/retirervalise"true))
{
      
RemovePlayerAttachedObject(playeridvalise_slot[playerid]);
      
valise_slot[playerid] = -1;
      return 
1;

J'йtais pas vraiment parti comme зa mais merci.
2 erreurs
Quote:

(585) : error 001: expected token: ")", but found "{"
(586) : error 076: syntax error in the expression, or invalid function call

Ligne 585 et 586:
{
if(GetFreeIndex == -1) return SendClientMessage(playerid, -1, "Vous avez trop d'objets sur vous pour porter une valise !");
Reply
#15

oh ce fail de fdp.

la nouvelle ligne donnerait

PHP Code:
if(GetFreeIndex(playerid) == -1) return SendClientMessage(playerid, -1"Vous avez trop d'objets sur vous pour porter une valise !"); 
@Inyso : Si c'est ironique, c'est fondй, je le sais. Mais au moins, il aura pas d'excuse pour revenir demander un code comme зa plus tard.
Reply
#16

Quote:
Originally Posted by S4t3K
View Post
oh ce fail de fdp.

la nouvelle ligne donnerait

PHP Code:
if(GetFreeIndex(playerid) == -1) return SendClientMessage(playerid, -1"Vous avez trop d'objets sur vous pour porter une valise !"); 
@Inyso : Si c'est ironique, c'est fondй, je le sais. Mais au moins, il aura pas d'excuse pour revenir demander un code comme зa plus tard.
Merci mais
(585) : error 001: expected token: ")", but found "{"
Reply
#17

Quote:
Originally Posted by S4t3K
View Post
oh ce fail de fdp.

la nouvelle ligne donnerait

PHP Code:
if(GetFreeIndex(playerid) == -1) return SendClientMessage(playerid, -1"Vous avez trop d'objets sur vous pour porter une valise !"); 
@Inyso : Si c'est ironique, c'est fondй, je le sais. Mais au moins, il aura pas d'excuse pour revenir demander un code comme зa plus tard.
(Je ne suis pas du genre а кtre dans l'ironie ni le sarcasme, dйsolй pour le malentendu, s'il fut.)
Reply
#18

@Steven : J'ai oubliй une parenthиse. Je te laisse la rajouter seul, c'est pas le plus dur
Reply
#19

Quote:
Originally Posted by S4t3K
View Post
@Steven : J'ai oubliй une parenthиse. Je te laisse la rajouter seul, c'est pas le plus dur
if(!strcmp(cmdtext, "/valise", true) == > if(!strcmp(cmdtext, "/valise", true))

Merci !
S4t3K t'es le gar qui m'a le + aidй en pawn et si je progresse je crois que ce sera en parti grвce а toi !
Merci
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)