GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Sartoflo le 06 Mai 2009, 17:03:44

Titre: Problemes ScriptSarto (pour ne pas polluer)
Posté par: Sartoflo le 06 Mai 2009, 17:03:44
Le 7 mai renomement du topic en Problemes ScriptSarto car, ayant énormément de question car débutant en pawn je risque de polluer un peut... donc je poserait maintenant toutes mes questions ici.


Eh bien voila Aujourd'hui j'ai croisé R@f sur le sftdm et il m'a dit de créer un topic ici parce que c'etait assez compliqué d'expliquer sur le serveur.
Donc voila. Je voudrais pouvoir stoker tous les pickups SPAWNES dans une variable tous les vehicules SPAWNES dans une autre. et apres si eventuellement je n'arive pas a trouver la fonction pour detruire /supprimer je vous demanderait.

Donc pour le spawn car, j'e n'ai en ce moment sur le serveur que le RAS de R@f.
Pour le spawn pickup, je n'ai pour le moment que une seule commande pour créer un jetpack. ==>

  // /jetpack
if(strcmp(cmdtext,"/jetpack", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid,X,Y,Z);
CreatePickup(370,15, X,Y,Z);
}
return 1;
}
. Merci d'avance.
Titre: Re : Stoker tout les types d'objet dans une variable (pickup vehicule objet)
Posté par: R@f le 06 Mai 2009, 21:10:29
C'était compliqué de donner une réponse complète sur le serveur ^^ 
Si j'ai bien compris, ce que tu veux c'est que quand on ramasse le pickup il disparait peu de temps après. Si c'est bien ça, suffit de changer le 2ème chiffre de CreatePickup. Essaie de changer le nombre 15 par 4 ou 5.

++
R@f
Titre: Re : Stoker tout les types d'objet dans une variable (pickup vehicule objet)
Posté par: Sartoflo le 06 Mai 2009, 22:36:39
petit probleme, ce n'est pas ce que je veux en fait je voudrais créer une variable pour stoker plusieurs objets crées par commande et pouvoir les détruire avec une autre commande pas les detruire de maniere a ce qu'ils respan mais les supprimer totalement pareil pour les vehicules. Sinon est-il possible de stoquer tous les addstaticvehicle dans une variable et de mettre
 if((le ! a l'envers mais je sais pas comment le faire)is scriptcar

remove vehicle ou quelque chose du genre


J'ai aussi un petit probleme avec une commande afk censée ajouter afk_ devant le pseudo du joueur mais j'ai quelques erreures:

  // /afk
if(strcmp(cmdtext,"/afk", true) == 0)
{
    new result[128];
new nameplayer;
GetPlayerName(playerid, nameplayer);
SetPlayerName(format(result,sizeof(result), "AFK_%s.",nameplayer);
return 1;
}

Erreures: C:\Documents and Settings\Didier\Bureau\pawno\filterscripts\sarto_cmds_filterscript.pwn(165) : error 035: argument type mismatch (argument 2)
C:\Documents and Settings\Didier\Bureau\pawno\filterscripts\sarto_cmds_filterscript.pwn(166) : error 001: expected token: ",", but found ";"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


2 Errors.
On peut 'indiquer ce qui ne vas pas?
Titre: Re : Problemes ScriptSarto (pour ne pas polluer)
Posté par: S!m le 07 Mai 2009, 00:54:03
Salut,

ta variable pour récupérer le nom doit être un array donc: new PlayerName[MAX_PLAYER_NAME];//MAX_PLAYER_NAME est une constante qui correspond à la longueur maximale du nom d'un joueur
de plus, format ne retourne pas le string formaté, ce string est enregistré dans la variable passée en paramètre (result dans ton cas):
format(result,sizeof(result), "AFK_%s.",nameplayer);
SetPlayerName(playerid, result);

++Sim++
Titre: Re : Problemes ScriptSarto (pour ne pas polluer)
Posté par: Sartoflo le 07 Mai 2009, 11:56:29
donc voila, avec:   // /afk
if(strcmp(cmdtext,"/afk", true) == 0)
{
new result[128];
new PlayerName[MAX_PLAYER_NAME];
format(result,sizeof(result), "AFK_%s.",PlayerName);
SetPlayerName(playerid, result);
SendClientMessageToAll(COLOR_RED,"quelqu'un est maintenant afk");
return 1;
}
et je n'ai aucune erreur.

ça affiche bien que quelqu'un est afk, mais le nom de passe pas du tout de Pseudo a AFK_Pseudo ça reste comme avant...


Pourrait-on aussi m'indiquer si il est possible de stoquer tous les addstaticvehicle dans une variable (une seule) et les addstaticpickup dans une autre? car je voudrais faire une comande genre /destroyspawn qui détruit tous les objets spawnées.

// /destroyspawn

if(strcmp(cmdtext,"/destroyspawn", true) == 0)
{
// ici une ligne pour prendre tous les vehicules... spawnés et add paar addstaticvehicle
   if(¡(is scriptcar))
          DestroyVehicle(vehicleid) // defini juste avant
return 1;
}
  (apres j'ajouterat les pickup)
Titre: Re : Problemes ScriptSarto (pour ne pas polluer)
Posté par: cristab le 07 Mai 2009, 13:56:34
en haut du GM
new initialname[32][MAX_PLAYERS];
new playerfinal[32];
dans la callback OnePlayerConnecte
GetPlayerName(playerid, initialname[playerid], 32);dans la callback OnePlayerDisconnect
SetPlayerName(playerid,initialname[playerid]);/afk
// /afk
if(strcmp(cmdtext,"/afk", true) == 0)
{
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s est parti en pause", name);
SendClientMessageToAll(0x33CCFFAA, string);
SetPlayerVirtualWorld(playerid,7);
format(playerfinal, 32, "[PAUSE]%s", initialname[playerid]);
SetPlayerName(playerid, playerfinal);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "tape /re pour revenir dans le jeu");
TogglePlayerControllable(playerid,false);
SendClientMessageToAll(COLOR_RED,"quelqu'un est maintenant afk");
return 1;
}
/re
if(strcmp(cmdtext,"/re", true) == 0)
{
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "%s est de retour", name);
SendClientMessageToAll(0x33CCFFAA, string);
SetPlayerName(playerid, initialname[playerid]);
SetPlayerVirtualWorld(playerid,0);
TogglePlayerControllable(playerid,true);
return 1;
}
je pense n'avoir rien oublier
Titre: Re : Problemes ScriptSarto (pour ne pas polluer)
Posté par: MrFredo le 07 Mai 2009, 14:21:56
Juste petite correction cristab le tableau initialname n'est pas correct pouf bien fonctioner

il faut le faire comme ceci

Code: (pawn) [Sélectionner]
new initialname[MAX_PLAYERS][32];
Titre: Re : Problemes ScriptSarto (pour ne pas polluer)
Posté par: cristab le 07 Mai 2009, 14:27:45
oui aussi pourtant il fonctionne bien comme je les mit je testerais comme tu as fait pour voir Merci
Titre: Re : Problemes ScriptSarto (pour ne pas polluer)
Posté par: MrFredo le 07 Mai 2009, 14:51:58
Comme tu la fait il fonctionera pour les joueur ayant un id entre 0 et 31 ;)
Titre: Re : Problemes ScriptSarto (pour ne pas polluer)
Posté par: cristab le 07 Mai 2009, 14:59:33
a ben ue mais comme au grand max on est euh 6 xd je voyait pas le default ^^