• 28 Mars 2024, 16:27:28


Auteur Sujet: [Tuto]Votre premier script [Périmé]  (Lu 12471 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Barto

  • Aiiiiiiirght
  • *
  • GTAOnline Addict
  • Messages: 4205
    • Voir le profil
[Tuto]Votre premier script [Périmé]
« le: 06 Mai 2010, 09:05:05 »
Commencer à coder son serveur IV MP.

I. Notepad++ avec le langage Squirrel.

Comment l'installer ?

- Tout d'abord télécharger Notepad++.

- Ensuite installer.

- Télécharger maintenant Squirrel For Notepad++.

- Extraire le dossier .zip et déplacer le fichier userDefineLang.xml dans ce dossier :

C:\Users\Votre nom utilisateur\AppData\Roaming\Notepad++
Ou
C:\Users\Votre nom utilisateur\AppData\Notepad++

Cela dépend tu système d'exploitation.

Comment l'utiliser ?

- Créer un nouveau document.
Fichier > Nouveau

- Sélectionner ensuite le langage Squirrel.
Langage > Squirrel
Le langage Squirrel se trouve, normalement, tout en bas.

Vous êtes maintenant prêts à faire votre premier code sur IV:MP.

Source : Wiki IV:MP, Notepad++

II. Télécharger IV MP Server.

Téléchargez IV MP server ici. Prenez celui-ci : IVMP-0.1-Alpha-2-R3-Server (Latest).zip
Vous verrez plusieurs fichiers, mais nous verrons ça plus tard, allez voir dans "scripts". Vous avez des fichiers .nut, pour voir un peu comment se passe un code Squirrel, faites clique droit, Edit with Notepad++. Pour mettre le langage Squirrel, allez dans "langage" et il est normalement tout en bas.


III. Notre premier script.

Nous allons créer une fonction pour que l'on voit dans le log le lancement du serveur.

function onScriptInit()
{
log("-----------------------------------");
log("Mettez ce que vous voulez ici"); //En général, on met le nom du serveur
log("-----------------------------------");
return 1;
}

Vous pouvez également créer un véhicule avec le createVehicle. Nous allons donc mettre un véhicule au spawn du joueur.

function onScriptInit()
{
createVehicle(90, -343.527313, 1172.740479, 14.199832, 268.217010, 0, 0, 0, 0); //On créer une Sultan RS au point de spawn
log("-----------------------------------");
log("Mettez ce que vous voulez ici"); //En général, on met le nom du serveur.
log("-----------------------------------");
return 1;
}

Pour avoir les coordonnées, la commande /savepos est à votre disposition quand vous êtes en jeu.
Nous allons maintenant prévenir le serveur d'une arrivée d'un joueur avec function onPlayerConnect(playerid).

function onPlayerConnect(playerid)
{
sendMessageToAll(White, getPlayerName(playerid) + (" + playerid + ") a rejoint le serveur !"); //Ici, c'est le message pour tous les joueurs.
setPlayerSpawnLocation(playerid, -341.36, 1144.80, 14.79, 40.114815);
return 1;
}

Maintenant, enregistrez votre script. ENREGISTREZ LE EN .NUT !
J'ai fait exprès de commettre une erreur dans le code. Vous allez comprendre pourquoi.

Ouvrez le fichier svr.
Vous devriez avoir un truc du genre :

// Port the server will listen on
port 9999

// Maximum number of players the server will support (Max 50)
maxplayers 10

// Maximum number of vehicles the server will support (Max 100)
maxvehicles 100

// The scripts the server will load and run
scripts consoleadmin.nut Tuto.nut //Ici, ce sont les scripts, mettez le nom de votre script par exemple, Tuto.nut

// The hostname clients and players will see
TUTO'S SERVER //Mettez le nom de votre serveur ici.

// Add the server to the master list
listed true

Ne touchez à rien d'autre !

Lancez le ivmp-svr, vous pouvez voir le nom de votre script que l'on a mis dans onScriptInit, et surtout, on peut voir l'erreur. Il nous prévient qu'il y a une erreur à la ligne 12. Nous allons donc voir.


Le code faux :
sendMessageToAll(White, getPlayerName(playerid) + (" + playerid + ") a rejoint le serveur !"); //Ici, c'est le message pour tous les joueurs.
Le code bon :
sendMessageToAll(White, getPlayerName(playerid) + " (" + playerid + ") a rejoint le serveur !"); //Ici, c'est le message pour tous les joueurs.
Nous avions oublié le " entre getPlayerName(playerid) + et (" + playerid + ").

Mais, on a pas définit la couleur White ?! Pas de problème, ajoutez tout en haut de cotre script cette ligne : const White = 0xFFFFFFAA;

Je vous donne quelques couleurs (les plus utilisées).
const White = 0xFFFFFFAA;
const Blue = 0X0000FFAA;
const Green = 0X00FF00AA;
const Red = 0XFF0000AA;

Après le onPlayerConnect, le function onPlayerDisconnect(playerid, reason). Il fonctionne avec le même principe que le onPlayerConnect.

function onPlayerDisconnect ( playerid, reason )
{
 if(reason == 0) //Le joueur quitte normalement le serveur.
 {
 sendMessageToAll(White, getPlayerName(playerid) + " (" + playerid + ") a quitté le serveur !");
 }
 else if(reason == 1)//Le joueur a crash.
 {
 sendMessageToAll(White, getPlayerName(playerid) + " (" + playerid + ") a quitté le serveur ! <Timeout>");
 }
 return 1;
}

Nous allons maintenant créer notre première commande. Une commande pour créer un véhicule, et qui n'en autorise qu'un par personne.

En haut du script (avec les couleurs), mettez :
local SpawnCar = { };
Dans le onPlayerConnect, ajoutez :
SpawnCar[playerid] <- 999;
Maintenant, le code dans onPlayerCommand :

function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0] == "/v" || cmd[0] == "/cv") //Le /v et le /cv permette de faire la même chose
{
if(cmd.len() == 2)
{
local mid = cmd[1].tointeger();
if(mid >= 0 && mid <= 125)
{
if(SpawnCar[playerid] != 999)
{
destroyVehicle(SpawnCar[playerid]);
SpawnCar[playerid] = 999;
}
local pos = getPlayerCoordinates(playerid);
SpawnCar[playerid] = createVehicle(mid, pos[0] + 1, pos[1] + 1, pos[2] + 1, 0, 1, 1, 1, 1);
sendPlayerMessage(playerid,Green, "Spawn réussi !");
}
}
}
return 0;
}

Nous allons maintenant créer une téléportation. Toujours dans onPlayerCommand, ajoutez ceci :

if(cmd[0] == "/Airport" || cmd[0] == "/airport")
 {
 setPlayerCoordinates(playerid, 2342.356934, 390.643127, 6.085225);
 sendPlayerMessage(playerid, Green, "Bienvenu à l'aéroport.");
 }

Les véhicules ne se téléportent pas encore. Donc le joueur se retrouvera à pied après sa téléportation.

Dans onPlayerCommand, vous devriez avoir ça maintenant :

function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0] == "/v" || cmd[0] == "/cv") //Le /v et le /cv permette de faire la même chose
{
if(cmd.len() == 2)
{
local mid = cmd[1].tointeger();
if(mid >= 0 && mid <= 125)
{
if(SpawnCar[playerid] != 999)
{
destroyVehicle(SpawnCar[playerid]);
SpawnCar[playerid] = 999;
}
local pos = getPlayerCoordinates(playerid);
SpawnCar[playerid] = createVehicle(mid, pos[0] + 1, pos[1] + 1, pos[2] + 1, 0, 1, 1, 1, 1);
sendPlayerMessage(playerid,Green, "Spawn réussi !");
}
}
}
 if(cmd[0] == "/Airport" || cmd[0] == "/airport")
 {
 setPlayerCoordinates(playerid, 2342.356934, 390.643127, 6.085225);
 sendPlayerMessage(playerid, Green, "Bienvenu à l'aéroport.");
 }
return 0;
}

Voici le script complet que l'on a fait :

const White = 0xFFFFFFAA;
const Blue = 0X0000FFAA;
const Green = 0X00FF00AA;
const Red = 0XFF0000AA;

local SpawnCar = { };

function onScriptInit()
{
createVehicle(90, -343.527313, 1172.740479, 14.199832, 268.217010, 0, 0, 0, 0); //On créer une Sultan RS au point de spawn
log("-----------------------------------");
log("Mettez ce que vous voulez ici");
log("-----------------------------------");
return 1;
}

function onPlayerConnect(playerid)
{
sendMessageToAll(White, getPlayerName(playerid) + " (" + playerid + ") a rejoint le serveur !"); //Ici, c'est le message pour tous les joueurs.
setPlayerSpawnLocation(playerid, -341.36, 1144.80, 14.79, 40.114815);
SpawnCar[playerid] <- 999;
return 1;
}

function onPlayerDisconnect ( playerid, reason )
{
 if(reason == 0) //Le joueur quitte normalement le serveur.
 {
 sendMessageToAll(White, getPlayerName(playerid) + " (" + playerid + ") a quitté le serveur !");
 }
 else if(reason == 1)//Le joueur a crash.
 {
 sendMessageToAll(White, getPlayerName(playerid) + " (" + playerid + ") a quitté le serveur ! <Timeout>");
 }
 return 1;
}

function onPlayerCommand(playerid, command)
{
local cmd = split(command, " ");
if(cmd[0] == "/v" || cmd[0] == "/cv") //Le /v et le /cv permette de faire la même chose
{
if(cmd.len() == 2)
{
local mid = cmd[1].tointeger();
if(mid >= 0 && mid <= 125)
{
if(SpawnCar[playerid] != 999)
{
destroyVehicle(SpawnCar[playerid]);
SpawnCar[playerid] = 999;
}
local pos = getPlayerCoordinates(playerid);
SpawnCar[playerid] = createVehicle(mid, pos[0] + 1, pos[1] + 1, pos[2] + 1, 0, 1, 1, 1, 1);
sendPlayerMessage(playerid,Green, "Spawn réussi !");
}
}
}
 if(cmd[0] == "/Airport" || cmd[0] == "/airport")
 {
 setPlayerCoordinates(playerid, 2342.356934, 390.643127, 6.085225);
 sendPlayerMessage(playerid, Green, "Bienvenu à l'aéroport.");
 }
return 0;
}

Lancez maintenant le ivmp-svr, pour vous connecter à votre serveur, cherchez votre IP locale, lancez IV MP, mettez votre adresse IP + le port (ex : votreadresseip:9999).

Pour avoir d'autres fonctions, je vous invite à aller ici.

En espérant que ce tuto a été clair pour vous.

++
Barto
« Modifié: 09 Janvier 2011, 09:17:15 par Barto »
Les filles, c'est comme les échappées en cyclisme, faut en tenter plusieurs pour en réussir une.

Gifs interdit dans les avatars/signs

Hors ligne Zombotech_Boss

  • Fun Serveur ++
  • *
  • Tueur
  • [Banni] - Non j'dec
  • Messages: 53
    • Voir le profil
Re : [Tuto]Votre premier script
« Réponse #1 le: 06 Mai 2010, 11:25:52 »
GG  ;)
Beau Tuto  :cheers

Hors ligne Alex_Jhonny

  • *
  • Bandit
  • Messages: 310
    • Voir le profil
Re : [Tuto]Votre premier script
« Réponse #2 le: 06 Mai 2010, 17:50:01 »
Génial un de mes potes recherchait un tuto de ce genre :happy

Hors ligne J0liX

  • *
  • Messages: 1202
    • Voir le profil
Re : [Tuto]Votre premier script
« Réponse #3 le: 06 Mai 2010, 18:32:38 »
Hello,

Beau tuto de façon nette et précise, ça me donne envie de reprendre le script  :happy

++

J0liX.

Hors ligne Kawoua

  • GTAOnline Member
  • *
  • Grand Banditisme
  • KaWouA
  • Messages: 800
    • Voir le profil
Re : [Tuto]Votre premier script
« Réponse #4 le: 06 Mai 2010, 18:55:18 »
GG bart jolie Tutow  ;)



PlayBonus
Marvel Inc ™

Hors ligne Barto

  • Aiiiiiiirght
  • *
  • GTAOnline Addict
  • Messages: 4205
    • Voir le profil
Re : [Tuto]Votre premier script
« Réponse #5 le: 06 Mai 2010, 20:02:13 »
Merci merci.
Je fairais certainement d'autres tutos a l'avenir.
Les filles, c'est comme les échappées en cyclisme, faut en tenter plusieurs pour en réussir une.

Gifs interdit dans les avatars/signs

Hors ligne Watash

  • *
  • Messages: 5554
    • Voir le profil
Re : [Tuto]Votre premier script
« Réponse #6 le: 06 Mai 2010, 20:20:05 »
C'est bien expliqué, c'est clean, c'est un bon tuto. Je suis persuadé que ça aideras beaucoup d'entre nous !

"Say good night, Mr. Diaz"

Hors ligne Nesik

  • *
  • Grand Banditisme
  • Messages: 674
    • Voir le profil
    • Uknow
Re : [Tuto]Votre premier script
« Réponse #7 le: 29 Octobre 2010, 22:34:05 »
Désoler du up' mais merci Barto pour ce super tuto je vais bientôt avoir GTA IV (à noël) donc autant commencer tôt  :)

Hors ligne GtaManiac

  • Votre serviteur bien aimé
  • *
  • Redforce member
  • Messages: 8541
    • Voir le profil
    • GTAOnline.net
Re : [Tuto]Votre premier script
« Réponse #8 le: 30 Octobre 2010, 01:54:45 »
Sa ressemble énormément au pawn ^^
GTAOnline - TwitchFacebook - Twitter

"Le problème, c'est le choix" - Néo

Hors ligne Barto

  • Aiiiiiiirght
  • *
  • GTAOnline Addict
  • Messages: 4205
    • Voir le profil
Re : Re : [Tuto]Votre premier script
« Réponse #9 le: 30 Octobre 2010, 07:45:42 »
Sa ressemble énormément au pawn ^^

Ouais vite fait
Les filles, c'est comme les échappées en cyclisme, faut en tenter plusieurs pour en réussir une.

Gifs interdit dans les avatars/signs

Hors ligne ApocKalipsS

  • *
  • Gangster
  • **** | Une experience GTA IV hors du commun !
  • Messages: 1141
    • Voir le profil
Re : Re : [Tuto]Votre premier script
« Réponse #10 le: 30 Octobre 2010, 12:46:28 »
Ça ressemble énormément au pawn ^^

Sachant que les deux langages sont extraits du C, forcément  :P

Sinon ton tutorial est maintenant périmé avec la nouvelle version de IV:MP, les settings sont maintenant en XML et les callbacks sont remplacées par des Events.  ;)
« Modifié: 23 Janvier 2011, 18:46:35 par ApocKalipsS »

Hors ligne Barto

  • Aiiiiiiirght
  • *
  • GTAOnline Addict
  • Messages: 4205
    • Voir le profil
Re : Re : Re : [Tuto]Votre premier script
« Réponse #11 le: 30 Octobre 2010, 17:26:49 »
Ça ressemble énormément au pawn ^^

Sachant que les deux langages sont extraits du C, forcément  :P

Sinon ton tutorial est maintenant faussé avec la nouvelle version de IV:MP, les settings sont maintenant en XML et les callbacks sont remplacées par des Events.  ;)

Je ne savais pas du tout étant donné que je ne m'intéresse plus à ce mod et que je ne code plus.
Les filles, c'est comme les échappées en cyclisme, faut en tenter plusieurs pour en réussir une.

Gifs interdit dans les avatars/signs

cristianehelberGQO

  • Invité
Re : [Tuto]Votre premier script
« Réponse #12 le: 08 Décembre 2010, 19:52:48 »
Salut Barto
Merci pour ce tuto, je n'ai aucune expérience en script, mais je vais essayer de suivre cela étape par étape.
Cordialement
Cris

Hors ligne Barto

  • Aiiiiiiirght
  • *
  • GTAOnline Addict
  • Messages: 4205
    • Voir le profil
Re : [Tuto]Votre premier script
« Réponse #13 le: 08 Décembre 2010, 20:34:18 »
Salut cristianehelberGQO,
je crois que malheureusement ce tuto n'est plus bon. Comme l'a dit ApocKalipsS : "Sinon ton tutorial est maintenant faussé avec la nouvelle version de IV:MP, les settings sont maintenant en XML et les callbacks sont remplacées par des Events".
Les filles, c'est comme les échappées en cyclisme, faut en tenter plusieurs pour en réussir une.

Gifs interdit dans les avatars/signs

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [Tuto]Votre premier script
« Réponse #14 le: 08 Janvier 2011, 17:46:04 »
Pas besoin de UP un topic qui date d'il y a un mois pour dire ça ...



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