• 23 Avril 2025, 18:34:05


Auteur Sujet: [FuSion] Help Topic  (Lu 2370 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
[FuSion] Help Topic
« le: 17 Novembre 2009, 13:17:27 »
Salut a vous,

Comme j'ai indiqué dans un autre sujet, je vais commencer a scripter un gamemode RPG étant donné que ce mode plaît beaucoup et qu'aucun GM RPG a 100% français n'est sorti aujourd'hui je me décide a creer le mien qui ne sera pas un GF Edit ou autre puisqu'il sera fait a 100% par moi ..
Sachant que je suis toujours qu'un misérable scripteur pawn comparé a d'autres j'ai besoin d'un peu d'aide et de soutien, c'est pour cela que j'ai cree son TOPIC afin d'y poster toutes mes questions  :D

Voila la presentation du topic est fini nous allons passer au serieux donc les questions :

Citation de: Question
Comment enlever la barre de spawn : < > SPAWN ?
Citation de: Reponse
public OnPlayerRequestClass(playerid, classid)
{
   SetPlayerCameraPos(playerid,1460.0, -1324.0, 287.2);
   SetPlayerCameraLookAt(playerid,1374.5, -1291.1, 239.0);
   TogglePlayerSpectating(playerid,1);
      return 1;
}

Merci de votre aide
++
FS'


« Modifié: 17 Novembre 2009, 14:25:10 par FuSion »

Hors ligne Mr_C30

  • *
  • Gangster
  • souvent conquise jamais soumise
  • Messages: 1937
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #1 le: 17 Novembre 2009, 13:23:38 »
essaye

public OnPlayerRequestClass(playerid, classid)
{
      return 1;
}
 :P




Radis du soir bonsoir !


Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #2 le: 17 Novembre 2009, 13:28:37 »
je pense que tu aimerais

OnPlayerconnect(playerid)
{
   SpawnPlayer(playerid);
   return 1;
}
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #3 le: 17 Novembre 2009, 13:33:11 »
Cela ne marche toujours pas  :(

Voici mon code :
public OnPlayerConnect(playerid)
{
   SpawnPlayer(playerid);
   return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerCameraPos(playerid,1460.0, -1324.0, 287.2);
SetPlayerCameraLookAt(playerid,1374.5, -1291.1, 239.0);
   return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerCameraPos(playerid,1460.0, -1324.0, 287.2);
SetPlayerCameraLookAt(playerid,1374.5, -1291.1, 239.0);
   return 1;
}

EDIT : J'ai testé avec un LARP il y'a aussi le même ^truc^

++
FS'
« Modifié: 17 Novembre 2009, 13:43:26 par FuSion »

Hors ligne Mr_C30

  • *
  • Gangster
  • souvent conquise jamais soumise
  • Messages: 1937
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #4 le: 17 Novembre 2009, 13:43:27 »
bonne question je vien de test, a mon avis il a surement une fonction a metre dans le init essaye de voir sur le forum samp  ;)


++



Radis du soir bonsoir !


Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #5 le: 17 Novembre 2009, 13:52:46 »
J'ai réussi voila la solution pour les gens qui ont le même problème, ajoutez un TogglePlayerSpectating(playerid,1); dans votre OnPlayerRequestClass comme ceci ;

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerCameraPos(playerid,1460.0, -1324.0, 287.2);
SetPlayerCameraLookAt(playerid,1374.5, -1291.1, 239.0);
TogglePlayerSpectating(playerid,1);
    return 1;
}

Merci de votre eclaircicement Cristab et C30 je reviendrais  :laugh

++
FS'

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #6 le: 17 Novembre 2009, 15:32:05 »
de rien j'aurais peu etre penser a supprimer cette Callback pour tester OnPlayerRequestClass(playerid, classid)
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Diablo62

  • *
  • Bandit
  • Script seulement pour m'amuser :)
  • Messages: 305
    • Voir le profil
Re : Re : [FuSion] Help Topic
« Réponse #7 le: 17 Novembre 2009, 16:05:37 »
J'ai réussi voila la solution pour les gens qui ont le même problème, ajoutez un TogglePlayerSpectating(playerid,1); dans votre OnPlayerRequestClass comme ceci ;

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerCameraPos(playerid,1460.0, -1324.0, 287.2);
SetPlayerCameraLookAt(playerid,1374.5, -1291.1, 239.0);
TogglePlayerSpectating(playerid,1);
    return 1;
}

Merci de votre eclaircicement Cristab et C30 je reviendrais  :laugh

++
FS'

Merci pour ce petit truc. J'avais pas réussi à l'enlever moi :)
Merci à Colonel Marco pour la Signature

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #8 le: 17 Novembre 2009, 23:40:56 »
Salut,

je crois que tu obtiens le même résultat en forçant le joueur au mode spectateur dans la callback OnPlayerConnect, dépendant de ce que tu désire comme rendu.
C'est du moins ce que je fais sur mon propre gm et le résultat est impeccable (selon mes besoins).

++Sim++





Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #9 le: 18 Novembre 2009, 14:15:34 »
Salut,

Je confirme les dires de Sim, j'ai changé vers OnPlayerConnect  ;)

_____________________________
Cependant j'ai un nouveau problème le voici :
Citation de: Problemes
J'ai lancé un timer lorsque celui ci s'execute, il doit lancer une callback, mais ce code ne s'execute pas et donc aucun changement, voici mon code :
Dans le dcmd_register :
SendClientMessage(playerid,COULEUR_VERTE,"Votre compte a bien été enregistré, vous allez maintenant passé au tutoriel.");
killtutoriel1 = SetTimer("Tutoriel1",1000,true);
Dans la callback 'tutoriel1':
public tutoriel1(playerid) // Vue gare
{
new string[128];
SetPlayerCameraPos(playerid,-2023.8693,151.4515,33.9382);
SetPlayerCameraLookAt(playerid,-1983.9550,137.4885,27.6875);
ClearChatbox(playerid, 10);
SendClientMessage(playerid, COULEUR_BLEUE, "=============================");
format(string, sizeof(string), "Bienvenue dans %s", NOM_VILLE);
SendClientMessage(playerid, COULEUR_BLEUE, string);
SendClientMessage(playerid, COULEUR_BLEUE, "A modifier selon vos envies");
SendClientMessage(playerid, COULEUR_BLEUE, "=============================");
killtutoriel2 = SetTimer("Tutoriel2",15000,true);
}

++
FS'

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #10 le: 18 Novembre 2009, 15:27:38 »
Premier problème qui va se révéler embêtant : ton timer est persistent, il s'exécutera toutes les secondes et je ne pense pas que ce soit ce que tu veux.
Il faut remplacer true par false dans l'appel à SetTimer.

Un grand classique de la mauvaise compréhension de ce qu'est un timer.

Un timer est l'exécution déportée d'un bout de script indépendamment du script principal.
Ceci à plusieurs implication :
- Le script principal n'est pas interrompu
- Ce bout de script sera exécuté en même temps qu'une autre partie du script principal (le script principal continu de s'exécuter)
- Ce bout de script doit avoir accès aux variables dont il a besoin.

Dans ton cas, ta fonction Tutoriel1 a besoin de connaître l'ID d'un joueur.
Il est très bien de vouloir le passer en paramètre mais le problème est que le fonction SetTimer ne sait pas faire passer de paramètres.
Au final, lors de l'appel à Tutoriel1, le paramètre playerid n'est pas renseigné car la fonction Tutoriel1 n'a aucun lien avec le script principal (dans la pratique, playerid vaut 0).

Heureusement, il existe la fonction SetTimerEx qui permet de stocker les valeurs des paramètres temporairement avant l'exécution de la fonction du timer.

Dans ton cas il faut remplacer
killtutoriel1 = SetTimer("Tutoriel1",1000,true);par
SetTimerEx ("Tutoriel1", 1000, false, "i", playerid);
Il n'est plus besoin de conserver l'id du timer, après son exécution, il sera détruit et n'existera plus.

Et tu dois faire de même avec ton deuxième timer.

Sinon, je pense qu'un TogglePlayerControllable serait bien car le positionnement de la caméra n'empêche pas le joueur de bouger.
De plus, s'il se trouve très loin de la gare, le jeu ne va pas charger correctement toute les textures car le personnage n'est pas présent à la gare. Il serait bien de téléporter le joueur à la gare avant de positionner la caméra (normalement, on positionne le joueur au même endroit que la caméra).

++
Syg

Courtesy of GtaManiac

Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #11 le: 18 Novembre 2009, 15:31:46 »
Merci de ton explication du SetTimer, j'ai bien raté ce coup la, j'irai testé ceci et j'editerai

Concernant le freeze du joueur ainsi que de sa teleportation au lieu de la camera, ils sont deja disponible dans les autres timer et dans la commande dcmd_register  :happy

Encore merci de ton éclaircissement,

EDIT : Cela ne marche toujours pas  :(

++
FS'
« Modifié: 18 Novembre 2009, 15:39:37 par FuSion »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #12 le: 19 Novembre 2009, 02:28:48 »
Salut,

explique ce qui ne fonctionne pas stp, on ne peut pas vraiment deviné comme ça

sinon montre le bout de code défectueux

++Sim++





Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #13 le: 19 Novembre 2009, 13:17:00 »
Salut,

C'étais un timer qui ne se lançait pas, c'est réglé maintenant j'ai changé tout le système en gardant les mêmes lignes et sa marche  ;)

++
FS'

Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : [FuSion] Help Topic
« Réponse #14 le: 20 Novembre 2009, 20:21:50 »
Nouveau petit problème cet fois-ci au niveau du compilage :

[Je m'excuse du double post]

Voici les erreurs :
C:\Documents and Settings\FuSionr\Mes documents\Roleplay\gamemodes\RPG.pwn(3425) : error 035: argument type mismatch (argument 3)
VOici la ligne ou du moins une partie du code :
while (fread (housefile, tmp))
{
   idx = 0;
   strtok (tmp, idx, tmpp);
   format (gHouses[id][nom], MAX_HOUSE_NAME, "%s", tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][out_x] = floatstr (tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][out_y] = floatstr (tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][out_z] = floatstr (tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][in_interior] = strval (tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][in_vw] = strval (tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][in_x] = floatstr (tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][in_y] = floatstr (tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][in_z] = floatstr (tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][value] = strval (tmpp);
   strtok (tmp, idx, tmpp);
   gHouses[id][occupee] = strval (tmpp);


++
FS'
« Modifié: 20 Novembre 2009, 20:44:33 par FuSion »