• 19 Mars 2024, 10:17:10


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

0 Membres et 1 Invité sur ce sujet

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : codes/scripts utiles
« Réponse #30 le: 03 Juin 2008, 19:05:58 »
Ca peu etre bien mais au niveau de l'argent, faudrait que tu fasse un timer pour vérifier que l'argent ne monte pas trop vite, dans ce cas, tu ban, sinon tu fait redéssendre le timer ...

++
nikko

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : codes/scripts utiles
« Réponse #31 le: 04 Juin 2008, 18:09:18 »
inbox j'aurait 2-3 conseils d'optimisations. :happy

Tu fait une boucle sur tout tes joueurs, il vaudrait mieux vérifier s'ils sont connectés avant, ça éviterait de faire 180 opérations inutiles. :)
Sinon tu fais un timer pour chaque player, et tu lui met dans OnPlayerConnect et le détruit dans OnPlayerDisconnect :)

Et il vaudrait mieux descendre ton timer à 10 sec. (pour moi c'est le minimum :happy).

Sinon il serait bon d'utiliser BanEx, ainsi qu'un printf quand le joueur se fait bannir. :)


++
Alexandre

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : codes/scripts utiles
« Réponse #32 le: 18 Juin 2008, 21:15:19 »
Voila 2 petites chose qui peuvent interrésser quelques personne:
A mettre dans OneGameModeInit:

UsePlayerPedAnims();    >> pour que vos personnages puissent courir plus vite et non pas au ralenti

EnableZoneNames(1);   >> Pour affiicher en bah a droite, le nom des zone ou vous vous trouvez. (Exmple, je suis a grove street, ca me marque "Groove Street"

Voila

++
nikko

Hors ligne pinouf42

  • *
  • Tueur en série
  • Ipod Touch Meilleur création que Apple est inventé
  • Messages: 248
    • Voir le profil
Re : codes/scripts utiles
« Réponse #33 le: 19 Juin 2008, 07:44:12 »
Merci Nikko, vraiment pratique !
J'aime le Québec et GTAOnline.

Hors ligne pinouf42

  • *
  • Tueur en série
  • Ipod Touch Meilleur création que Apple est inventé
  • Messages: 248
    • Voir le profil
Re : codes/scripts utiles
« Réponse #34 le: 20 Juin 2008, 21:35:58 »
Dsl pour le double poste mais une Commande qui va en ravir plus d'un!
Voila, le spawn de mon player était toujours de dos! et je ne savais pas comment le modifier. Et grâce à Nikko j'ai réussi!
Il suffit de mettre au dessus de CameraLookat un truc commme ça:
SetPlayerFacingAngle(playerid, un certaine angle (il faut en tester plusieurs!));
Voila ++
J'aime le Québec et GTAOnline.

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : codes/scripts utiles
« Réponse #35 le: 20 Juin 2008, 21:47:15 »
En principe cest deja dans tout les GM ....

++
nikko

Hors ligne pinouf42

  • *
  • Tueur en série
  • Ipod Touch Meilleur création que Apple est inventé
  • Messages: 248
    • Voir le profil
Re : codes/scripts utiles
« Réponse #36 le: 20 Juin 2008, 22:41:42 »
Sauf pour ceux qui écrivent leur Game ! La preuve est la: Moi !
J'aime le Québec et GTAOnline.

Hors ligne MasterOfQuebec

  • Pawn Compiler
  • *
  • Criminel
  • Messages: 29
    • Voir le profil
    • SA-MP.fr
Re : codes/scripts utiles
« Réponse #37 le: 15 Août 2008, 16:19:23 »
Priorité des Game Text,
Exemple: Vous avec un speedo avec un GameText et une fonction admin qui affiche un Game Text aux joueurs, le Game Text affiché aux joueurs ne dure que quelques secondes (voir moins) car le speedo viens le remplacer.
Avec cette fonction (très) simple vous pouvez définir une priorité aux Game Texts. Optimisez la et modifiez la comme vous voulez.

ShowGameTextForPlayer(playerid, msg[], time, type, prio) {
if(prio >= textprio[playerid])
{
textprio[playerid] = prio;
GameTextForPlayer(playerid, msg, time, type);
texttime[playerid] = time+1000; //+1000 car parfois le compte a rebours est appelé trop vite.
}
}

ShowGameTextForAll(msg[], time, type, prio) {
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) {
if(IsPlayerConnected(playerid)) {
ShowGameTextForPlayer(playerid, msg, time, type, prio);
    }
}
}

Hud(playerid) {
if(texttimer[playerid]>0) {
texttimer[playerid] = texttimer[playerid] - 1000;
} else {
texttimer[playerid] = 0;
textprio[playerid] = 0;
}
}

public Second() {
for(new i = 0; i < MAX_PLAYERS; i++) {
if ( IsPlayerConnected(i) ) {
Hud(i);
}
}
SetTimerEx("Second",1000,false,"");  //Utilisation de SetTimerEx car dans mon mode il y a plus d'actions dans la fonction Second et l'exécution de la fonction peut prendre plus que 1 seconde, alors pour utiliser moins de ressource j'apelle
}

Dans OnGameModeInit (noubliez pas de faire le forward des fonctions...):
SetTimerEx("Second",1000,false,"");

Hors ligne ludovic

  • *
  • Nouveau
  • Messages: 6
    • Voir le profil
Re : codes/scripts utiles
« Réponse #38 le: 31 Août 2008, 21:25:20 »
bonjour

je vous remercie pour votre aide que vous m'avez apportez

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : codes/scripts utiles
« Réponse #39 le: 23 Novembre 2008, 12:30:51 »
j'ai fait un petit code qui enlève les armes du joueur

en haut de votre GM

Code: (pawn) [Sélectionner]
forward antiarmes(playerid);
dans le gamemodinit

Code: (pawn) [Sélectionner]
SetTimer("antiarmes",1000,1);
quelque part dans votre GM

Code: (pawn) [Sélectionner]
public antiarmes(playerid)
{
ResetPlayerWeapons(playerid);
return 1;
}


voila sa peut servir pour les serveur stunt

Et un qui donne des armes au joueur :

en haut de votre GM

Code: (pawn) [Sélectionner]
forward armes(playerid);
dans le gamemodinit

Code: (pawn) [Sélectionner]
SetTimer("armes",1000,1);
quelque part dans votre GM

Code: (pawn) [Sélectionner]
public armes(playerid)
{
       GivePlayerWeapon(playerid, <id de l'arme>, <nombre de munition>);
return 1;
}

sa peut serveir pour les serveur DM
« Modifié: 23 Novembre 2008, 14:00:50 par MisterT »

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : codes/scripts utiles
« Réponse #40 le: 23 Novembre 2008, 14:25:57 »
Salut,

tu ne peut te servir de ton timer de cette façon,
dans ta fonction, tu dois créer une boucle pour tester tous les joueurs

public antiarmes()
{
        for(new i; i<MAX_PLAYERS; i++){
ResetPlayerWeapons(i);
       }
return 1;
}

et pareil pour le arme

public armes()
{
       for(new i; i<MAX_PLAYERS; i++){
              GivePlayerWeapon(i, <id de l'arme>, <nombre de munition>);
       }
return 1;
}

Comme ça le code sera ok

++Sim++





Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : codes/scripts utiles
« Réponse #41 le: 23 Novembre 2008, 19:42:01 »
oui effectivement javais zaper cette étape je l'ai fait vite fais et je n'y ai pas penser

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : codes/scripts utiles
« Réponse #42 le: 25 Novembre 2008, 02:52:01 »
Salut à tous,

voici un code très simple qui permet de compter ses véhicules...

new vehcount;
new VehModel[215];

puis tu remplace tes AddStaticHevicle, CreateVehicle, AddStaticVehicleEx par une fonction quelconque du genre:

//AddStaticVehicle
stock AddStaticVehicleCount(modelid,Float:x,Float:y,Float:z,Float:a,col1,col2)
{
vehcount++;
new ID = AddStaticVehicle(modelid,x,y,z,a,col1,col2);
modelcount[modelid-400]++;
return ID;
}
//AddStaticVehicleEx
stock AddStaticVehicleExCount(modelid,Float:x,Float:y,Float:z,Float:a,col1,col2,time)
{
vehcount++;
new ID = AddStaticVehicle(modelid,x,y,z,a,col1,col2,time);
modelcount[modelid-400]++;
return ID;
}
//CreateVehicle
stock CreateVehicleCount(modelid,Float:x,Float:y,Float:z,Float:a,col1,col2,time)
{
vehcount++;
new ID = CreateVehicle(modelid,x,y,z,a,col1,col2,time);
modelcount[modelid-400]++;
return ID;
}

alors il ne reste qu'a remplacer les lignes AddStaticVehicle, ex ou CreateVehicle (CTRL+H recommandé!)

et on peut aisément s'en servir par exemple dans une commande d'information:

if(!strcmp(cmdtext,"/info",true)){
    new string[128];
    new NbModele;
    for(new i; i<215; i++){
       if(modelcount[i])NbModele++;
    }
    format(string,sizeof(string),"Il y a présentement %d véhicules de %d différents modèles sur le serveur!",vehcount,NbModele);
    SendClientMessage(playerid,0x33AA33AA,string);
    return 1;
}

Alors j'espère que ce bout de code sera utile à quelqu'un (sinon il n'a pas lieu d'être ici) ;D

++Sim++





Hors ligne NatiVe™

  • *
  • Messages: 7977
    • Voir le profil
Re : codes/scripts utiles
« Réponse #43 le: 25 Novembre 2008, 10:32:52 »
Waa ! Sympa, je savais pas qu'on pouvais faire ca !

NV.



Tu vois avant? Bah j'étais là encore avant!

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : codes/scripts utiles
« Réponse #44 le: 25 Novembre 2008, 15:31:28 »
Le problème de ton comptage de véhicule c'est qu'il faut reprendre tout les AddStaticVehicle pour les remplacer.
En fait, il y a beaucoup plus simple pour "compter" les véhicules :
Il suffit de récupérer le retour du dernier AddStaticVehicle.

Exemple :
new NbVehicules;

AddStaticVehicle (432, 747.0, -2670.0, 29.9106,  90.0, -1, -1);
AddStaticVehicle (432, 747.0, -2735.0, 29.9106,  90.0, -1, -1);
...
AddStaticVehicle (432, 747.0, -2727.0, 29.9112,  90.0, -1, -1);
NbVehicules = AddStaticVehicle (432, 749.0, -2719.0, 29.9112,  90.0, -1, -1);

NB : Ce petit truc fonctionne aussi avec les objets.

++
Syg
Courtesy of GtaManiac