GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: tony-capriani le 08 Juillet 2008, 21:26:10
-
salut :) mon serveur est presque pret mais j'ai besoin de quelques aide encore:
-quand je nomme un autre admin, pour qu'ils se connecte en admin je doit lui filer mon mdp /rcon ?
-je cherche désésperement les scripts des commandes /register et /login , j'arrive pas a trouver, si vous voulez pas filer en direct ici pouvez mettre un lien en francais
-je cherche egalement la commande /kill
-au sujet des armes autorisé dans les interieur, j'ai trouvé le scripts mais quand après j'ai démarré le serveur, il y avait un bug, les persos (la ou on les choisit) était invisible, et quand j'en est selectionné un, je me suis retrouvé dans un san andreas sans rien a part le ciel (j'ai mis l'autorisation des armes pour tous les batiments)
-au sujet du script de l'heure:
{
new ChaineHeure[256];
new Heure, Minute, Seconde;
new NbJoueurs;
/* Heure du serveur */
gettime (Heure, Minute, Seconde);
NbJoueurs = DonnerNbJoueurs ();
format (ChaineHeure, 256, "17:48:40", Heure, Minute, Seconde);
/* Creation et affichage du TextDraw */
TextDrawHeure[playerid] = TextDrawCreate (546.0, 9.0, ChaineHeure);
TextDrawLetterSize (TextDrawHeure[playerid], 0.5, 2.0);
TextDrawColor(ta couleur)
TextDrawShowForPlayer (playerid, TextDrawHeure[playerid]);
/* Creation et affichage du TextDraw */
NbJoueurs = DonnerNbJoueurs ();
format (ChaineHeure, 256, "%03d/%03d", NbJoueurs, MAX_PLAYERS);
TextDrawNbJoueurs[playerid] = TextDrawCreate (547.0, 25.0, ChaineHeure);
TextDrawLetterSize (TextDrawNbJoueurs[playerid], 0.5, 2.0);
TextDrawColor(GREEN)
TextDrawShowForPlayer (playerid, TextDrawNbJoueurs[playerid]);
}
a chaque fois que je me connecte, l'heure (en haut a droite) est bien la, mais sa fait pas 1seconde= 1 minute dans le jeu mais a la place 1 minute= 1 minute comment faire pour que sa soit comme pour gta en solo, c'est a dire 1 minute= 1 seconde
je vous remercie pour vos réponses, je sais que mes prmeière question sur le /kill ou /register et /login sont très courantes, mais je trouve pas :( svp il me manque que ces trucs la avant de mettre mon serveur en ligne
-
Au lieu de chercher, tu veut pas essayer de scripter ??
Bon encore la commande /register et /login je veut bien, mais pour la /kill
En plus normalement, la commande /kill est d'origine dans ton script, essaye en cours de jeu ;)
-
Bonjour,
Si tu n'a pas inclue ou fait ton [FS](admin) alors il est nessaisaire de donner le rcon à tes admin
A quoi te serviré la commande /register /login si tu na pas de sauvegarde particulière, pour les admins ?, Les joueurs ? :...
La commandes /kill c'est la base la quand même Faut faire un SetPlayerHealth(playerid, 0.0); et voilat aprés tu peut rajouter des choses.
-
j'ai fouiller dans filterscript et j'ai trouvé sa
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
new dancestyle;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/handsup", true) == 0) {
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
return 1;
}
}
// SUICIDE COMMAN
if(strcmp(cmd, "/kill", true) == 0) {
SetPlayerHealth(playerid,0.0);
return 1;
}
// START DANCING
if(strcmp(cmd, "/dance", true) == 0) {
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) {
new tmp[256];
// Get the dance style param
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid,0xFF0000FF,"Usage: /dance [style 1-3]");
return 1;
}
dancestyle = strval(tmp);
if(dancestyle < 1 || dancestyle > 3) {
SendClientMessage(playerid,0xFF0000FF,"Usage: /dance [style 1-3]");
return 1;
}
if(dancestyle == 1) {
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE1);
} else if(dancestyle == 2) {
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE2);
} else if(dancestyle == 3) {
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DANCE3);
}
return 1;
}
}
return 0;
}
je le prend et je copie dans mon gamemode tous en bas a la suite, et j'ai 4 error:
:\Documents and Settings\Jean\Mes documents\Pryx\gamemodes\DM.pwn(838) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Jean\Mes documents\Pryx\gamemodes\DM.pwn(838) : error 033: array must be indexed (variable "cmd")
C:\Documents and Settings\Jean\Mes documents\Pryx\gamemodes\DM.pwn(859) : error 017: undefined symbol "strtok"
C:\Documents and Settings\Jean\Mes documents\Pryx\gamemodes\DM.pwn(859) : error 033: array must be indexed (variable "tmp")
il y a pas un truc a mettre tous en haut ?
-
Copie juste cette commande
if(strcmp(cmd, "/kill", true) == 0) {
SetPlayerHealth(playerid,0.0);
return 1;
}
-
j'ai 1 erreur quand je met sa :
C:\Documents and Settings\Jean\Mes documents\Pryx\gamemodes\DM.pwn(867) : error 017: undefined symbol "cmd"
que doit-je faire ?
-
http://streetplaya.hopto.org/SAMP_Wiki/wiki.sa-mp.com/wiki/Scripting_Functions_Old.html#strcmp
Tu remplaces par cmdtext.
++
Alexandre
-
merci alex :)
-
au sujet du login/register, j'ai enfin trouver sur http://forum.sa-mp.com :
register:
/*
* /register password
*
*/
dcmd_register(playerid,params[]) {
// The command shouldn't work if we already are authed
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Already authed.");
// The command shouldn't work if an account with this
// nick already exists
if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account already exists, please use '/login password'.");
// Did he forgot the password?
if (strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/register password'");
// We save the money to the accstate
if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Account successfully created. Login with '/login password' now.");
return true;
}
login:
/*
* /login password
*
*/
dcmd_login(playerid,params[]) {
// The command shouldn't work if we already are authed
if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Already authed.");
// The command shouldn't work if an account with this
// nick does not exists
if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Account doesn't exist, please use '/register password'.");
// Did he forgot the password?
if (strlen(params)==0) return SystemMsg(playerid,"Correct usage: '/login password'");
if (udb_CheckLogin(PlayerName(playerid),params)) {
// Login was correct
// Following thing is the same like the missing SetPlayerCommand
GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")-GetPlayerMoney(playerid));
PLAYERLIST_authed[playerid]=true;
return SystemMsg(playerid,"Successfully authed!");
}
// Login was incorrect
return SystemMsg(playerid,"Login failed!");
}
public OnPlayerConnect(playerid) {
PLAYERLIST_authed[playerid]=false;
return false;
}
public OnPlayerCommandText(playerid,cmdtext[]) {
dcmd(login,5,cmdtext); // because login has 5 characters
dcmd(register,8,cmdtext); // because register has 8 characters
return false;
}
public OnPlayerDisconnect(playerid) {
if (PLAYERLIST_authed[playerid]) {
// Was loggedin, so save the data!
dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid));
}
PLAYERLIST_authed[playerid]=false;
return false;
}
mais voila quand je met j'ai:
C:\Documents and Settings\Jean\Mes documents\Pryx\gamemodes\DM.pwn(443) : error 017: undefined symbol "PLAYERLIST_authed"
C:\Documents and Settings\Jean\Mes documents\Pryx\gamemodes\DM.pwn(443) : error 001: expected token: ";", but found "]"
C:\Documents and Settings\Jean\Mes documents\Pryx\gamemodes\DM.pwn(443) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Jean\Mes documents\Pryx\gamemodes\DM.pwn(443) : fatal error 107: too many error messages on one line
Voila ou c'est:
{
PLAYERLIST_authed[playerid]=false; iici la ligne d'erreur
return false;
}
}
return 1;
}
merci
-
Salut, Alors ton erreur et tous con je crois que tu a oublié le new PLAYERLIST_authed[MAX_PLAYERS];
Voila en espérent de t'avoir aider
++
David