GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: RenZoKen le 14 Février 2010, 12:10:21

Titre: Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 14 Février 2010, 12:10:21
Bonjour à tous/toutes

Tout est dans le titre, après de nombreuses tentatives et recherches  :closedeyes ,  je n'arrive pas à trouver :

- Un système de Login Auto ( via l'adresse IP )
- Une sauvegarde des couleurs des véhicules quand ils respawn après avoir utilisé /color [id1] [id2]
- Une commande /duel

Donc je me tourne vers vous.  :D

Coordialement, RenZoKen  :-[
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 14 Février 2010, 12:21:38
salut,

- regarde dans le FS AdminOnDuty il y ai
- heu je sait pas
- Ah je comptait faire un FS de duel quand j'aurais fini mon serveur mais bon  :-[

Voila ce que je peut te dire  :)
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: CarCrasher le 14 Février 2010, 12:22:59
Pour les couleurs il sufit de le mettre dans les sauvegardes dans OnPlayerDisconnect
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 14 Février 2010, 12:33:19
Quand je fais la commande /color, la couleur change.
Quand le véhicule respawn, elle redevient comme à la base.
Il doit me manquer un truc genre SaveChangeColorVehicle(vehicleid, color1, color2); ou sinon quelque chose qui change directement mes couleurs sur les AddStaticVehicle dans mon GM mais j'penses pas que ca existe ^^

Je vais regarder sur le FS AdminOnDuty pour le Login Auto voir ce que ca donne  :)
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: cristab le 14 Février 2010, 13:03:24
je pense plutot qu'une recherche s'impose sur gtaonline ou sur samp.com
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 14 Février 2010, 13:05:45
Cette recherche s'est déjà effectuée 3 ou 4 fois   :dry
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: FuSion le 14 Février 2010, 13:09:21
Une petite sauvegarde des données lors du /color et un chargement de ses sauvegardes au niveau des couleurs dans les AddStaticVehicle
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: Kawoua le 14 Février 2010, 13:39:57
Pour l'FS duel tu peut le faire toi meme en mappant une map et mettre deux équipe ou sinon yavais la map de Zord qui gérai pour faire un Duel
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: cristab le 14 Février 2010, 14:09:33
vu que tu as deja chercher tu as vu ceci

auto login http://www.gtaonline.fr/forums/index.php/topic,7529.0.html (http://www.gtaonline.fr/forums/index.php/topic,7529.0.html)
couleur voiture prend exemple ici http://www.gtaonline.fr/forums/index.php/topic,8068.0.html (http://www.gtaonline.fr/forums/index.php/topic,8068.0.html)

et OMG le FS duel tout pret http://forum.sa-mp.com/index.php?topic=140765.0 (http://forum.sa-mp.com/index.php?topic=140765.0)

et tu me dit que tu as chercher  :... sa promet
Titre: Re : Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 14 Février 2010, 14:20:33
Pour le Login Auto, j'étais en train de le chercher.
Pour les couleurs, j'avais déjà vu mais je pensais que c'était seulement pour le garage tuning.
Pour le duel, j'avais déja vu mais sauf que moi je veux que ce soit l'admin qui choisi les 2 joueurs et non pas les joueurs qui se choissisent entre eux et à tout moment.
Titre: Re : Re : Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 14 Février 2010, 15:13:17

Pour le duel, j'avais déja vu mais sauf que moi je veux que ce soit l'admin qui choisi les 2 joueurs et non pas les joueurs qui se choissisent entre eux et à tout moment.

A toi de le modifier ;)
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 15 Février 2010, 10:07:39
Pour le duel, c'est bon je m'en suis fait un à ma maniere.
Après pour le login auto et le save des couleurs, j'y arrive toujours pas ...

Voici ma commande pour les couleurs, je rappelle que mon seul problème pour cette commande est que la couleur change mais apres le respawn du véhicule, elle redevient comme à l'origine :

Code: (pawn) [Sélectionner]
if(strcmp(cmd, "/color", true) == 0 || strcmp(cmd, "/colour", true) == 0)


{

new var1[256];
new filename[256];
format(filename, sizeof(filename), "%d", GetPlayerVehicleID(playerid));
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
var1 = dini_Get(filename, "owner");
tmp[playerid] = GetPlayerVehicleID(playerid);
       

    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER )

    {
        SendClientMessage(playerid, COLOR_BRIGHTRED, "Vous devez vous trouver dans votre véhicule");
        return 1;
    }


new tmp1[256];
tmp1= strtok(cmdtext, idx);
tmp2= strtok(cmdtext, idx);
if(!strlen(tmp1) || !strlen(tmp2))
    {
    SendClientMessage(playerid, COLOR_BRIGHTRED, "Utiliser: /color [id 1] [id 2]");
    return 1;
    }
    if (strcmp(var1,playername,false) == 0) {
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
  format(filename, sizeof(filename), "%d", GetPlayerVehicleID(playerid));
tmp = strtok(cmdtext, idx);
    if(!strlen(tmp1) || !strlen(tmp2))
    {
        SendClientMessage(playerid, COLOR_BRIGHTRED, "Utiliser: /color [color1] [color2]");
        return 1;
    }

    new color1 = strval(tmp1);
    new color2 = strval(tmp2);
    ChangeVehicleColor(GetPlayerVehicleID(playerid), color1, color2);
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Votre véhicule spawnera de cette couleur désormais.");
    return 1;
    }
else {
SendClientMessage(playerid, COLOR_BRIGHTRED, "Ce véhicule ne vous appartient pas !");
return 1;
}
}
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 15 Février 2010, 13:59:57
Pour la couleur il faudrai sauvegarder le vehicul dans un fichier que tu met dans scriptfiles

Et pour l'auto login tu peut le faire par l'ip voila un exemple :
GetPlayerIp(playerid,PlayerIP,20);
if (PlayerIP == GetIP) SendClientMessage(playerid,bleu,"Tu à été automatiquement loguer");

Après le GetIP est l'ip que tu as sauvegarder dans le Fichier joueurs

Donc en gros sa fait :

On prend l'ip du joueurs;
Si l'ip que on vien de prendre corespond a l'ip sauvegarder on lui envoie "Tu à été automatiquement loguer"
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 15 Février 2010, 15:14:56
Ok merci, et je le place où dans mon GM ?
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 15 Février 2010, 15:43:19
BAh tu met dans OnPlayerConnect mais apres il faut l'aptapter ;)
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 15 Février 2010, 16:02:57
Ok je l'ai placé dans OnPlayerSpawn :

Code: (pawn) [Sélectionner]
GetPlayerIp(playerid,ip,20);
new val1[256];
new playername[MAX_PLAYER_NAME];
new filename[256];
format(filename, sizeof(filename), "%d", ip);
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
val1 = dini_Get(filename, "ip");
if (strcmp(val1,playername,false) == 0)
{
SendClientMessage(playerid,COLOR_LIGHTGREEN,"Tu as été automatiquement loggé");
}


Le probleme est que quand j'arrive, ca me dit bien " Tu as été automatiquement loggé " comme si j'avais été loggé automatiquement suite à la lecture de l'IP, mais ca me logge pas en fait ><

PS : Si le joueur a une IP dynamique, ca va plus marcher si ?
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 15 Février 2010, 16:49:44
Bah il te suffit du mettre avec SendClientMessage le code du login

Et pour ton Ip dinamique non sa ne marcheras pas il fautdra que le joueurs utilise /login [mot de passe]
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 15 Février 2010, 18:51:45
Petit probleme au niveau du Login Auto,

Voici mon login auto placé dans OnPlayerSpawn :

Code: (pawn) [Sélectionner]
GetPlayerIp(playerid,ip,20);
new val1[256];
new filename[256];
new playername[MAX_PLAYER_NAME];
format(filename, sizeof(filename), "%d", ip);
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
val1 = dini_Get(filename, "ip");
if (strcmp(val1,playername,false) == 0)
{
SendClientMessage(playerid,COLOR_LIGHTGREEN,"Tu as été automatiquement loggé");
SendClientMessage(playerid, COLOR_LIGHTGREEN, "Votre argent et votre position sont sauvegardés automatiquement quand vous quittez le jeu!");
LoadSave(playerid);
}

Et voici le public permettant le login auto :

Code: (pawn) [Sélectionner]
forward LoadSave(playerid);
public LoadSave(playerid)

{
new playername[MAX_PLAYER_NAME];
  GetPlayerName(playerid, playername, sizeof(playername));
if (dini_Exists(udb_encode(playername)))
{
logged[playerid] = 1;
  new Float:x, Float:y, Float:z;
new Float:a;
new moneys[MAX_PLAYERS];
new tmp4[256];
playercount[playerid] = dini_Int(udb_encode(playername), "vehicleresetcount");
if(playercount[playerid] != gVC)
{
   dini_IntSet(udb_encode(playername), "carowned", 0);
   dini_IntSet(udb_encode(playername), "car", 0);
   dini_IntSet(udb_encode(playername), "notified", 1);
   SendClientMessage(playerid, COLOR_BRIGHTRED, "NOTICE <::> Les véhicules du serveur ont été changés depuis votre dernière visite!");
    }
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
x = dini_Int(udb_encode(playername), "x");
y = dini_Int(udb_encode(playername), "y");
z = dini_Int(udb_encode(playername), "z");
a = dini_Int(udb_encode(playername), "a");
carowned[playerid] = dini_Int(udb_encode(playername), "carowned");
moneys[playerid] = dini_Int(udb_encode(playername), "money");
if(moneys[playerid] < 10000)
{
bank[playerid] = dini_Int(udb_encode(playername), "bank");
if(bank[playerid] > 20000)
{
SendClientMessage(playerid,COLOR_YELLOW, "Vous avez $20000 ou plus dans votre compte bancaire et vous ne recevez pas les $10000.");
}
if(bank[playerid] < 20000)
{
moneys[playerid] = 10000;
SendClientMessage(playerid,COLOR_YELLOW, "Vous avez moins de $20000 dans votre compte bancaire alors vous recevez $10000.");
}
GivePlayerMoney(playerid,moneys[playerid]);
}
if(moneys[playerid] >= 10000)
{
   GivePlayerMoney(playerid,moneys[playerid]);
}
               tmp4 = dini_Get(udb_encode(playername), "bank");
               PlayerInfo[playerid][pAdmin] = dini_Int(udb_encode(playername), "level");
               bank[playerid] = strval(tmp4);
                SetPlayerPos(playerid,x,y,z);
SetPlayerFacingAngle(playerid,a);
PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
biznote[playerid] = dini_Int(udb_encode(playername), "bizsold");
carnote[playerid] = dini_Int(udb_encode(playername), "carsold");
if(biznote[playerid] == 1)
{
   SendClientMessage(playerid, COLOR_BRIGHTRED, "NOTICE <::>Votre business a été vendu par un admin récemment. L'argent de la vente a été transféré sur votre compte bancaire !");
   dini_IntSet(udb_encode(playername), "bizsold", 0);
}
if(carnote[playerid] == 1)
{
   SendClientMessage(playerid, COLOR_BRIGHTRED, "NOTICE <::> Votre véhicule a vendu par un admin récemment. L'argent de la vente a été transféré sur votre compte bancaire!");
   dini_IntSet(udb_encode(playername), "carsold", 0);
}
}
return 1;
}

Le problème est que le login auto marche bien, mais le truc c'est que vu qu'il n'y a pas besoin de rentrer le mot de passe, il suffit de prendre le pseudo et ca connecte le joueur même si l'IP est differente. Donc tout le monde peut se conecté avec n'importe quel compte  ;D
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 16 Février 2010, 16:42:37
à la place de sa : if (strcmp(val1,playername,false) == 0)

Mais if (val1 == ip)
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 17 Février 2010, 10:03:14
C'est fait, voilà le résultat :

Code: (actionscript) [Sélectionner]
C:\....\SFTDM_Reloaded_2.0.pwn(2483) : error 033: array must be indexed (variable "val1")
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: Kawoua le 17 Février 2010, 12:16:01
Sa doit etre indéxé
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 17 Février 2010, 14:02:04
Indexé ? C'est à dire ?   ;D
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 17 Février 2010, 23:45:57
indexer ces [valeur]
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 18 Février 2010, 09:44:49
Et en gros je dois rajouter quoi pour qu'il n'y est plus cette erreur ?
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 19 Février 2010, 10:18:38
Up
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: Barto le 19 Février 2010, 10:28:09
Ca sert à rien d'up un jour après...
Déjà d'une, soit ils ne savent pas.
De deux, ils ont une vie donc ils ne sont pas là 24/24
Et de trois, c'est déjà bien qu'ils t'aident donc tu pourrais attendre 2/3 jours avant une réponse.
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 19 Février 2010, 11:09:26
J'ai jamais dis que ce n'était pas bien, au contraire je les remercie.
Et je up pour pas faire couler le sujet rien de plus.
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: Barto le 19 Février 2010, 11:36:58
En un jour il coule pas ... Encore ca ferait une semaine d'accord, mais évite d'up tous les jours :)

Voilà, maintenant tu le sais, arrétons là.

++
Barto
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 19 Février 2010, 12:09:44
Ouki, désolé.   :)
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 21 Février 2010, 17:13:10
Up
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 21 Février 2010, 18:34:34
Au lieux de Uper a chaque fois essaye de faire des trucs car bon personne aime scripter pour quelqu'un qui ne fait que tu copier coller il faut essayer de progresser alors essaye de nous montrer que tu veut le faire marcher ton code ;)
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 21 Février 2010, 18:44:33
J'ai réussi à faire marcher le Login Auto via l'IP.
Le probleme qui s'impose est que vu qu'il est dans OnPlayerSpawn et que j'ai des commandes comme /kill qui tue et ramene au spawn, quand le joueur retourne au spawn, ca le relogin et donc ses sous, sa position etc... sont doublé.
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 21 Février 2010, 21:04:23
Il faut soit le mettre dans OnPlayerCOnnect ou sinn tu peut faire un bloquage avec :

new autologc[MAX_PLAYERS]

If (autologc[playerid] == 0)
{
Ton ptit chariabia
autologc[playerid] ++;
}
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 22 Février 2010, 09:17:26
J'ai créé un public qui lis l'IP et qui fait le log auto seulement si le joueur n'est loggé. J'ai appelé ce public : LogAuto que j'ai placé dans OnPlayerSpawn ce qui revient à peut près à ce que tu me dis master donc c'est bon le problème est reglé. Merci à vous  :happy

Maintenant mon seul problème est pour la sauvegarde des couleurs. Il faudrait que je créé 2 public : un SaveColor et un autre LoadColor. Je placerai SaveColor dans ma commande /color et dans OnPlayerDisconnect et LoadColor dans OnPlayerConnect. Dans SaveColor, il me faudrait mettre soit une sorte de chrono infini, soit quelque chose qui créé un fichier dans scriptfiles avec le changement de couleur et dans LoadColor quelque chose qui charge le fichier sauvegardé dans scriptfiles. Mais c'est pour la création du SaveColor que je vois pas trop comment faire.
Quelqu'un aurait-il une idée ?  ???
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 25 Février 2010, 11:07:48
Up  ;)
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: RenZoKen le 28 Février 2010, 19:24:51
up
Titre: Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: CarCrasher le 28 Février 2010, 21:06:21
Ben je crois que plus personne ne t'aidera RenZou :(
Titre: Re : Re : Login Auto // Commande Duel // Sauvegarde couleur vehicule
Posté par: BuBuNo le 28 Février 2010, 21:20:42
Ben je crois que plus personne ne t'aidera RenZou :(

+1