Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254687 Messages dans 14036 Fils de discussion- par 6619 Membres - Dernier membre: djalal

23 Mai 2012 à 05:32:46
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center] (Modérateurs: S!m, Xartrick)Réalisation derby | question importante. [RESOLU]
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: Réalisation derby | question importante. [RESOLU]  (Lu 140 fois)
0 Membres et 1 Invité sur ce fil de discussion.
Ludo43
Hors ligne Hors ligne


Grand Banditisme
*

Derby !

Messages: 124


ludozztwBientôt ! :D

« le: 02 Janvier 2012 à 21:43:33 »

Bonsoir à tous,

Comme vous le savez je suis entrain de réaliser le script d'un derby, j'ai déjà pas mal avancer mais avant d'en faire un peu plus, j'aimerais avoir votre avis. J'ai réaliser mon derby sur une base que je me suis inspiré, je l'ai modifié, j'ai réussi à créer une première map à mélanger pas mal de choses. Maintenant je voudrais en créer une deuxième, et là ceci s'avère un peu plus compliquer. Je vais donc poster ci-dessous les codes qui sont en relation avec le derby en lui même, je vous demanderais donc de m'expliquer ce qu'il faut réellement changer pour avoir une seconde map. J'ai déjà pas mal insister mais malheureusement les erreurs apparaissent, je préfère demander sur votre forum car j'ai eu déjà pas mal de réponses qui m'ont bien avancés & permit l'avancement de mon GameMode.

PS : Pour les positions des véhicules, notez leur position XYZ je comprendrais.

Voici donc mon code :


Code:

new playerinminigame[MAX_PLAYERS];
new bloodring[16],derbyon,derbyplaying,playercarid[MAX_PLAYERS],playerinderby[MAX_PLAYERS],derbyrank,reward,bloodringfull[15],playerinbloodring[MAX_PLAYERS];

forward Spawnbloodrings();
forward Destroybloodrings();
forward Respawnbloodrings();
forward StartDerby();

new Float:derbycars[15][4] = {
{-1362.9799,932.8219,1036.0580,9.0890}, // 0
{-1346.4526,935.4996,1036.0889,13.6811}, // 1
{-1335.6995,938.2600,1036.1177,16.8043}, // 2
{-1320.8756,944.9904,1036.2062,27.0307}, // 3
{-1306.8385,953.5919,1036.3212,37.8366}, // 4
{-1353.9670,934.0486,1036.2421,11.5836}, // 5
{-1328.6377,941.0197,1036.3208,18.9670}, // 6
{-1313.9012,948.6513,1036.4198,29.5596}, // 7
{-1501.0956,960.3203,1036.9474,313.0457}, // 8
{-1506.8105,968.1082,1037.0840,304.3027}, // 9
{-1513.0317,976.8713,1037.2457,301.9500}, // 10
{-1516.0858,988.2343,1037.4362,274.5044}, // 11
{-1517.6569,995.6628,1037.5626,272.2782}, // 12
{-1515.1127,1004.8807,1037.6969,262.3869}, // 13
{-1510.7020,1014.6202,1037.8568,249.1825} // 14
};

public OnFilterScriptExit()
{
    Destroybloodrings();
    return 1;
}

public OnGameModeExit()
{
    Destroybloodrings();
    return 1;
}

public OnPlayerConnect(playerid)
{
playerinminigame[playerid] = 0;
playercarid[playerid] = -1;

playerinderby[playerid] = 0; // Derby
playerinbloodring[playerid] = -1;
return 1;
}

{
    new string[256];
if(playerinderby[playerid] == 1)
{
   new DerbyPlayerName[MAX_PLAYER_NAME];
   GetPlayerName(playerid, DerbyPlayerName, sizeof(DerbyPlayerName));
format(string, sizeof(string), "%s a abandonné le derby en cours , rank : %d", DerbyPlayerName, derbyrank);
SendClientMessageToAll(0x33AA33AA, string);
playerinderby[playerid] = 0;
playerinminigame[playerid] = 0;
bloodringfull[playerinbloodring[playerid]] = 0;
playerinbloodring[playerid] = -1;
if(derbyrank <= 2)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i) && playerinderby[i] == 1)
{
   new winnername[256];
GetPlayerName(i,winnername, sizeof(winnername));
RewardCalc(i,100,1000);
format(string, sizeof(string), "%s remporte la somme de $%d", winnername, reward);
SendClientMessageToAll(0x33AA33AA, string);
GivePlayerMoney(i,reward);
playerinderby[i] = 0;
playerinminigame[i] = 0;
SetPlayerVirtualWorld(i,0);
SetPlayerInterior(playerid, 0);
SetPlayerPos(i, spawnX, spawnY, spawnZ);
}
}
   derbyplaying = 0;
   derbyrank = 0;
   derbyon = 0;
   KillTimer(dtimer);
    Respawnbloodrings();
    return 1;
}
derbyrank--;
}
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    new string[256];
if(playerinderby[playerid] == 1)
{
   new DerbyPlayerName[MAX_PLAYER_NAME];
   GetPlayerName(playerid, DerbyPlayerName, sizeof(DerbyPlayerName));
format(string, sizeof(string), "%s a été expulsé du derby pour kill, rank: %d", DerbyPlayerName, derbyrank);
SendClientMessageToAll(0x33AA33AA, string);
playerinderby[playerid] = 0;
playerinminigame[playerid] = 0;
bloodringfull[playerinbloodring[playerid]] = 0;
playerinbloodring[playerid] = -1;
if(derbyrank <= 2)
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i) && playerinderby[i] == 1)
{
   new winnername[256];
GetPlayerName(i,winnername, sizeof(winnername));
RewardCalc(i,100,1000);
format(string, sizeof(string), "%s vient de gagner la somme de $%d", winnername, reward);
SendClientMessageToAll(0x33AA33AA, string);
GivePlayerMoney(i,reward);
playerinderby[i] = 0;
playerinminigame[i] = 0;
SetPlayerVirtualWorld(i,0);
SetPlayerInterior(playerid, 0);
SetPlayerPos(i, spawnX, spawnY, spawnZ);
}
}
   derbyplaying = 0;
   derbyrank = 0;
   derbyon = 0;
   KillTimer(dtimer);
    Respawnbloodrings();
    return 1;
}
derbyrank--;
}
return 1;
}

if(strcmp(cmd, "/derby", true) == 0) // Là je vais créer /derby2 pour la 2eme map
{
   if(derbyplaying == 1)
   {
       SendClientMessage(playerid, 0xB4B5B7AA, "Le derby est déjà lancé");
       return 1;
   }
   if(playerinminigame[playerid] == 1)
   {
       SendClientMessage(playerid, 0xB4B5B7AA, "Vous êtes déjà dans un minigame");
       return 1;
   }
new pname[256];
GetPlayerName(playerid, pname, 256);
   if(derbyon == 0)
   {
       derbyon = 1;
       playerinminigame[playerid] = 1;
       playerinderby[playerid] = 1;
       derbyrank = 1;
       SetPlayerInterior(playerid,15);
       SetPlayerVirtualWorld(playerid,7);
       SetVehicleVirtualWorld(bloodring[0],7);
       bloodringfull[0] = 1;
       PutPlayerInVehicle(playerid, bloodring[0], 0);
       playerinbloodring[playerid] = 0;
       TogglePlayerControllable(playerid, 0);
       startvar[0] = 1;
       dtimer = SetTimer("StartDerby", 60000, 0);
         format(string, sizeof(string), "%s a lancé le derby vous avez une minute pour le rejoindre /join", pname);//
SendClientMessageToAll(0x33AA33AA,string);
return 1;
   } else if(derbyon == 1 && derbyrank < 15) {
       playerinminigame[playerid] = 1;
       playerinderby[playerid] = 1;
       derbyrank++;
       SetPlayerInterior(playerid,15);
       for(new i=0; i<15; i++)
     {
    if(bloodringfull[i] == 0)
    {
       SetPlayerVirtualWorld(playerid,7);
       SetVehicleVirtualWorld(bloodring[i],7);
       bloodringfull[i] = 1;
       PutPlayerInVehicle(playerid, bloodring[i], 0);
       TogglePlayerControllable(playerid, 0);
       playerinbloodring[playerid] = i;
       format(string, sizeof(string), "%s a rejoind le derby", pname);//
SendClientMessageToAll(0x33AA33AA,string);
return 1;
    }
}
   } else if(derbyon == 1 && derbyrank >= 15) {
   format(string, sizeof(string), "Le derby est plein , veuillez patientez", pname);//
   SendClientMessage(playerid,0x33AA33AA,string);
   return 1;
   }
}
return 0;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == 2)
{
playercarid[playerid] = GetPlayerVehicleID(playerid);
}
if(oldstate == 2)
{
if(playerinderby[playerid])
{
PutPlayerInVehicle(playerid,playercarid[playerid],0);
}
}
return 1;
}

public Spawnbloodrings()
{
    for(new i=0; i<15; i++)
    {
bloodring[i] = CreateVehicle(504,derbycars[i][0],derbycars[i][1],derbycars[i][2],derbycars[i][3],-1,-1,-1);
LinkVehicleToInterior(bloodring[i],15);
SetVehicleVirtualWorld(bloodring[i],1);
   bloodringfull[i] = 0;
}
return 1;
}

public Destroybloodrings()
{
    for(new i=0; i<15; i++)
    {
     DestroyVehicle(bloodring[i]);
     bloodringfull[i] = 0;
    }
}

public Respawnbloodrings()
{
for(new i=0; i<15; i++)
{
   SetVehicleToRespawn(bloodring[i]);
   SetVehicleVirtualWorld(bloodring[i],1);
   bloodringfull[i] = 0;
}
}

public load()
{
Spawnbloodrings();
return 0;
}

Voilà, merci énormément de votre aide. C'est la dernière grande étape de mon gamemode, je vous demande seulement par précaution, j'ai réellement chercher avant de vous demander.

Merci & Bonnes fêtes & bonnes rentrées aux Etudiants.
« Dernière édition: 03 Janvier 2012 à 21:27:22 par Ludo43 » Journalisée

| Derby en cours de script ! |

Si tu veux m'aider n'hésite pas ! : http://www.gtaonline.fr/forums/index.php?action=pm;sa=send;u=10160


@ Bientot !
Xolokos
PAWN/XHTML/CSS
Hors ligne Hors ligne


GTAOnline Big Member
*

IA n'est rien comparé a la stupidité naturel.

Messages: 487


Xolokos

« Répondre #1 le: 03 Janvier 2012 à 15:37:14 »

http://pastebin.com/FFhqVpxx

http://forum.sa-mp.com/showthread.php?t=167267&highlight=derby

Voici donc mon code :
« Dernière édition: 03 Janvier 2012 à 17:10:13 par Xolokos » Journalisée

Ludo43
Hors ligne Hors ligne


Grand Banditisme
*

Derby !

Messages: 124


ludozztwBientôt ! :D

« Répondre #2 le: 03 Janvier 2012 à 19:03:43 »

Ok merci, je vais essayer de faire mon truc, je vous tient au courant.
Journalisée

| Derby en cours de script ! |

Si tu veux m'aider n'hésite pas ! : http://www.gtaonline.fr/forums/index.php?action=pm;sa=send;u=10160


@ Bientot !
Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.171 secondes avec 22 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact