• 22 Avril 2025, 22:22:55


Auteur Sujet: codes/scripts utiles  (Lu 132484 fois)

0 Membres et 2 Invités sur ce sujet

Hors ligne Dark4ng3L

  • *
  • Bandit
  • Messages: 480
    • Voir le profil
    • DecaWeb.ch - L'informatique comme vous ne l'avez jamais vu!
Re : codes/scripts utiles
« Réponse #255 le: 18 Octobre 2010, 04:02:03 »
Voici 2 petites fonctions qui pourrons peut-être aidé quelqu'un

Code: (pawn) [Sélectionner]
stock CreerPickup(Id,Mode,Float:x,Float:y,Float:z,text[],Color,Float:Distance)
{
AddStaticPickup(Id, Mode, x,y,z);
Create3DTextLabel(text,Color, x,y,z+1,Distance,0);
}
stock IsAnUsedVehicle(vehid)
{
for(new player=0; player<MAX_PLAYERS; player++)
    {
      if(IsPlayerInAnyVehicle(player))
{
if(GetPlayerVehicleID(player) == vehid)
{
return 1;
}
}
    }
    return 0;
}
Cordialement Dark4ng3L aussi connu sous le nom de Mathias_Martinez, Matthias_Angelo et lugia !




Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Re : codes/scripts utiles
« Réponse #256 le: 18 Octobre 2010, 05:51:31 »
Salut,

Voici 2 petites fonctions qui pourrons peut-être aidé quelqu'un

Code: (pawn) [Sélectionner]
stock CreerPickup(Id,Mode,Float:x,Float:y,Float:z,text[],Color,Float:Distance)
{
AddStaticPickup(Id, Mode, x,y,z);
Create3DTextLabel(text,Color, x,y,z+1,Distance,0);
}
stock IsAnUsedVehicle(vehid)
{
for(new player=0; player<MAX_PLAYERS; player++)
    {
      if(IsPlayerInAnyVehicle(player))
{
if(GetPlayerVehicleID(player) == vehid)
{
return 1;
}
}
    }
    return 0;
}

belles fonctions.

Dans ta seconde, tu pourrais retirer le premier test, si le joueur n'est pas dans un véhicule il ne sera pas dans le véhicule en question. Et le fait que le joueur ne soit pas dans un véhicule ne change rien au test avec GetPlayerVehicleID.

++Sim++





Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : codes/scripts utiles
« Réponse #257 le: 18 Octobre 2010, 10:33:49 »
Pour ta fonction IsAnUsedVehicle, Dark4ng3L, il y a une fonction plus pratique que GetPlayerVehicleID :
stock IsAnUsedVehicle(vehid)
{
for(new player=0; player<MAX_PLAYERS; player++)
    {
if (IsPlayerInVehicle (player, vehid))
{
return 1;
}
}
    return 0;
}

Sinon, concernant ta première fonction, elle ne permet pas la destruction du pickup et du texte car tu ne retourne pas les handles.

++
Syg
Courtesy of GtaManiac

Hors ligne spiirou

  • *
  • L'avenir appartient à ceux qui se lèvent
  • Messages: 866
    • Voir le profil
Re : codes/scripts utiles
« Réponse #258 le: 18 Octobre 2010, 21:41:56 »
Bonjour,
J'ai un petit script inutile pour vous :

FuckPlayer(nom[30], sanction[5])
{
    new name[MAX_PLAYERS][128];
    for( new i = 0; i<MAX_PLAYERS; i++)
    {
        GetPlayerName(i,name[i],sizeof(name));
        if(strfind(name[i],nom))
        {
            if(strcmp(sanction, "kick") == 0) return Kick(i);
            else if(strcmp(sanction, "ban") == 0) return Ban(i);
            else return 0;
        }
    }
    return 1;
}

Le tout est a utiliser de la sorte :

public OnPlayerConnect(playerid)
{
FuckPlayer("turlututu","kick"); // Si le joueur qui se connecte a un pseudo contenant "turlututu", il sera kick.
return 1;
}

Voila,
Je pense pas que ca soit terrible, mais bon...
J'aurais essayé  :P

Spiirou
++

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : codes/scripts utiles
« Réponse #259 le: 18 Octobre 2010, 21:45:23 »
Une mini amélioration, pour tester un seul joueur^^


FuckPlayer( playerid, nom[], sanction[] )
{
    new name[MAX_PLAYER_NAME] = "";
    GetPlayerName( playerid, name, sizeof(name) );
if( strfind( name, nom ) )
{
if(strcmp(sanction, "kick") == 0) return Kick(playerid);
else if(strcmp(sanction, "ban") == 0) return Ban(playerid);
else return 0;
}
    return 1;
}



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne spiirou

  • *
  • L'avenir appartient à ceux qui se lèvent
  • Messages: 866
    • Voir le profil
Re : codes/scripts utiles
« Réponse #260 le: 18 Octobre 2010, 21:48:42 »
Ouais, j'y pensais ^^

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : codes/scripts utiles
« Réponse #261 le: 18 Octobre 2010, 21:51:48 »
Sinon pour les sanctions je te conseillerai plutôt d'utiliser des nombres, au lieu de chaine de caractères ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne spiirou

  • *
  • L'avenir appartient à ceux qui se lèvent
  • Messages: 866
    • Voir le profil
Re : codes/scripts utiles
« Réponse #262 le: 18 Octobre 2010, 21:55:05 »
Oui, je l'avait fait au debut, mais j'ai changé ^^
Enfin, c'est pour le fun :p



Citation de: Test
Code: (pawno) [Sélectionner]
public OnPlayerConnect(playerid)
{
FuckPlayer(playerid,"zizi","kick");
return 1;
}

Code: (console) [Sélectionner]
Incoming connection: 127.0.0.1:64828
[join] zizi_fou has joined the server (0:127.0.0.1)
[part] zizi_fou has left the server (0:2)

Spiirou
++

NB : Désolé pour le pseudo, mais je suis en cruel manque d'imagination

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : codes/scripts utiles
« Réponse #263 le: 18 Octobre 2010, 21:59:26 »
Un truc de ce genre


#define     SANCTION_KICK       0x00000001  // Kicker le joueur
#define     SANCTION_BAN        0x00000010  // Bannir le joueur
#define     SANCTION_BJR        0x00000100  // Dire bonjour au joueur








FuckPlayer( playerid, nom[], sanction )
{
    new name[MAX_PLAYER_NAME] = "";
    GetPlayerName( playerid, name, sizeof(name) );
if( strfind( name, nom ) )
{

   if( sanction & SANCTION_BJR )
SendClientMessage( playerid, 0xFFFFFFFF, "Bonjour !" );

if( sanction & SANCTION_KICK )
Kick( playerid );

if( sanction & SANCTION_BAN )
BaBan( playerid );
}
    return 1;
}


Pour kicker le joueur:

FuckPlayer( playerid, "AFK", SANCTION_KICK );
Pour dire bonjour au joueur:

FuckPlayer( playerid, "Salut", SANCTION_BJR );
Pour dire Bonjour, puis kick le joueur:

FuckPlayer( playerid, "Cheat", SANCTION_BJR + SANCTION_KICK );
Etc, on peut ensuite ajouter facilement des sanctions ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : codes/scripts utiles
« Réponse #264 le: 20 Octobre 2010, 18:19:23 »
Cadeau les amis !


http://pastebin.gtaonline.fr/pastebin.php?show=909


Avec ça vous pouvez faire ce que vous voulez avec les serveurs favoris de votre launcher SA:MP ( Ils sont contenu dans le fichier "USERDATA.DAT").


Pour cette class:

CSAMPUserData
vous devez obligatoirement appeler

NextServer()
Pour que tout soit fonctionnel, sinon pour le reste il faut juste lire les noms des membres =)


EDIT:


Bon je fais une petit explication ( Hein Dizzy :p )

Alors, on déclare une des deux classe dans mon cas, je déclare la classe CSAMPUserDataWriter pour créer 47 faux serveurs ^^

Alors, je fais fait donc:

CSAMPUserDataWriter* Userdata = new CSAMPUserDataWriter( 47 ); // Ici je met le 47 pour dire que je vais créer 47 serveurs

for( int i = 0; i < 47; i++ ) // Ici une boucle pour les 47 serveurs
{
Userdata->SetServerHost( i, "127.0.0.1" ); // ici je leurs met comme IP 127.0.0.1
Userdata->SetServerName( i, "yooooh" ); // Je leurs donne comme nom yooooh
Userdata->SetServerport( i, 7777 + i ); // et la le port 7777 + la valeur de i
}

Userdata->WriteFile( "C:\\Users\\Sasuke78200\\Documents\\GTA San Andreas User Files\\SAMP\\USERDATA.DAT" ); // Ensuite je dit d'écrire les serveurs dans le fichier USERDATA.DAT, et si on ouvre SAMP, on verra 47 serveurs nommé yooooh


Voila tout =)
« Modifié: 20 Octobre 2010, 18:31:55 par sasuke78200 »



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : codes/scripts utiles
« Réponse #265 le: 20 Octobre 2010, 18:41:43 »
Béh en faite il faut juste comprendre le fonctionnement des fichiers favoris SAMP qui est vraiment basique


on a 4 octets au début du fichier qui sont


0x53 0x41 0x4D 0x50 qui veut dire SAMP, ensuite 4 autres octets pour la version du fichier pour l'instant elle vaut 0x000001 qui veut dire 1 :p
et toujours 4 octets pour le nombres de serveurs contenu dans le fichier

Cette ensemble la, on l'appel le header ( en-tête ),
ensuite pour chaque serveurs on a:


4 Octets pour la taille de l'IP du serveur
Le nombre précédent trouver d'octets pour l'IP du serveur
4 Octets pour le port.
4 Octets pour la taille du nom du serveur
Le nombre précédent trouver d'octets pour le nom du serveur
8 octets qui valent 0

Voila tout ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : codes/scripts utiles
« Réponse #266 le: 02 Novembre 2010, 12:10:42 »
Je te conseil de mettre la constante MAX_PLAYER_NAME à la place de 20 quand tu déclare la variable nom.


new pseudo[ MAX_PLAYER_NAME ] = ""; // Et il ne faut pas oublier d'initialiser ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : codes/scripts utiles
« Réponse #267 le: 02 Novembre 2010, 12:30:19 »
Je ne sais pas du tout, mais on sait jamais si dans une prochaine release de SAMP, ils n'augmentent la taille que peut avoir les pseudos, et donc ça évite de changer la valeur à la main ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : codes/scripts utiles
« Réponse #268 le: 02 Novembre 2010, 15:10:05 »
Salut,

en fait elle vaut 24.

Sasuke78200 a raison, il vaut toujours mieux utiliser les constantes, ainsi quand elles changeront il suffit de compiler à nouveau....
Pas seulement pour MAX_PLAYER_NAME mais pour toutes les constantes.

D'ailleurs pour les valeurs qu'on utilise plusieurs fois, il en vaut la peine de se définir une constante afin de pouvoir la changer aisément ultérieurement.

+Sim++





Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : codes/scripts utiles
« Réponse #269 le: 28 Novembre 2010, 18:37:49 »
Voila un petit code qui permet de sauvegarder et charger certains stats de joueur dans un fichier en binaire.



http://pastebin.gtaonline.fr/pastebin.php?show=957
« Modifié: 28 Novembre 2010, 18:43:00 par sasuke78200 »



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog