GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: John_Montavedro le 17 Septembre 2010, 15:13:03
-
Bonsoir.. j'ai perdu la façon de choisir la map de spawn quand on se co... pouvez vous m'aider merci :s
-
Tu veut dire la position de spawn ? Si c'est cela bah c'est dans OnPlayerSpawn tu récup la position IG ( /save > SavedPosition ) :)
-
Sa me met le spawn 0 soit dans la campagne :(
-
xd tu voit c'est SetPlayerPos(playerid,POSITION); puis tu place sa dans OnPlayerSpawn et voila
-
AddPlayerClass voyons ^^
Et dans OnPlayerRequestClass tu met :
<?php
switch (classid)
{
case 0 : GameTextForPlayer(.......);
case 1 : GameTextForPlayer(.......);
}
Etc.
Cela te permettra d'indiquer au joueur le lieu de son spawn.
A noter que les "classid" sont notées dans l'ordre de création dans AddPlayerClass :
Exemple :
<?php // Code en couleur
AddPlayerClass(0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); // Skin de CJ, classid = 0
AddPlayerClass(1, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); // Skin de truth, classid = 1
++
-
J'ai mis sa :
public OnPlayerRequestClass(playerid, classid)
{
switch (classid)
{
case 0 : GameTextForPlayer("Stunter Giravoltar");
case 1 : GameTextForPlayer("Stunter Pédrovérar");
}
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 2911.1453,-1955.9446,2.2116);
SetPlayerCameraLookAt(playerid, -106.8164,2500.8796,16.8384);
return 1;
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, rouge, " ");
SendClientMessage(playerid, vert, "Bienvenue à toi sur Stunt31, serveur Français!");
SendClientMessage(playerid, rouge, "Utilise la commande /aide pour trouver les commandes utiles");
SendClientMessage(playerid, rouge, " ");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SendClientMessage(playerid, rouge, "Tu as été kické voir bannit par un modérateur/administrateur du serveur!");
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerPos(53,2911.1453, -1955.9446, 2.2116,268.3955);
SetPlayerPos(34,-106.8164, 2500.8796, 16.8384,273.8112);
SendClientMessage(playerid, rouge, " ");
SendClientMessage(playerid, vert, "Amuse toi bien!");
SendClientMessage(playerid, rouge, " ");
return 1;
}
Et voici mes erreurs :
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\Stunt31.pwn(308) : error 035: argument type mismatch (argument 1)
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\Stunt31.pwn(309) : error 035: argument type mismatch (argument 1)
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\Stunt31.pwn(334) : warning 202: number of arguments does not match definition
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\Stunt31.pwn(335) : warning 202: number of arguments does not match definition
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\Stunt31.pwn(380) : warning 217: loose indentation
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\Stunt31.pwn(409) : warning 217: loose indentation
C:\DOCUME~1\Meyer\MESDOC~1\serveur\GAMEMO~1\Stunt31.pwn(420) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
b]Mais je vous remercie déjà pour votre aide :)[/b]
-
Ta fonction GameTextForPlayer est plus que fausse...
N'hésite pas à consulter Le wiki (http://wiki.sa-mp.com/wiki/GameTextForPlayer) dans ce cas.
-
Salut , allor commençons XDDDD
1-Tu ah GameTextForPlayer("Stunter Pédrovérar");
Sa devrait plutôt ressembler a ceci :
GameTextForPlayer(playerid,"Stunter pédrovérari",time,style);
2-Tu ah des chose comme ceci qui ne sert vraiment à rien :
SendClientMessage(playerid, rouge, " ");Donc tu peut supprimer :)
Et apré cela pour les Loose indentation c'est juste que tes code sont mal placer un coup de délete ou Tab devrait aller :)
Sur ce bon script
-
Merci rapido :) Mais pour le send client, c'est pour espacer^^
-
Faut que j'apprenne à faire les deco genre "A quitté la ville (kické/ban)"
"A quitté la ville (crash)"
Ect..
Sinon merci à vous tous!!
Toujours une erreur avec "SetPlayerPos" .. et aussi avec "time"
public OnPlayerRequestClass(playerid, classid)
{
switch (classid)
{
case 0 : GameTextForPlayer(playerid,"Stunter Pédrovérar",time,style);
case 1 : GameTextForPlayer(playerid,"Stunter Giravoltar",time,style);
}
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 2911.1453,-1955.9446,2.2116);
SetPlayerCameraLookAt(playerid, -106.8164,2500.8796,16.8384);
return 1;
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, rouge, " ");
SendClientMessage(playerid, vert, "Bienvenue à toi sur Stunt31, serveur Français!");
SendClientMessage(playerid, rouge, "Utilise la commande /aide pour trouver les commandes utiles");
SendClientMessage(playerid, rouge, " ");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerPos(53,2911.1453, -1955.9446, 2.2116,268.3955);
SetPlayerPos(34,-106.8164, 2500.8796, 16.8384,273.8112);
SendClientMessage(playerid, rouge, " ");
SendClientMessage(playerid, vert, "Amuse toi bien!");
SendClientMessage(playerid, rouge, " ");
return 1;
}
Erreur :
C:DOCUME~1MeyerMESDOC~1serveurGAMEMO~1Stunt31.pwn(308) : error 017: undefined symbol "time"
C:DOCUME~1MeyerMESDOC~1serveurGAMEMO~1Stunt31.pwn(309) : error 017: undefined symbol "time"
C:DOCUME~1MeyerMESDOC~1serveurGAMEMO~1Stunt31.pwn(333) : warning 202: number of arguments does not match definition
C:DOCUME~1MeyerMESDOC~1serveurGAMEMO~1Stunt31.pwn(334) : warning 202: number of arguments does not match definition
Double post
Désolé double post, pour time j'ai aps réfléchi désolé :d
-
Le problème est le même :s Quand je me co sur le serveur, je ne peux pas changer de map avec > et < et quand je clique sur Spawn, sa me spawn dans la campagne :blink
-
Sous OnGameModInit? Y'en a pas :dejadehors
-
Ok c'est bon pour les 2 spawn sauf que l'image de début avec les touches < et > ne changent pas :(
Double post
AddPlayerClass(0,2911.1453,-1955.9446,2.2116,268.3955,0,0,0,0,0,0); //
AddPlayerClass(0,-106.8164,2500.8796,16.8384,273.8112,0,0,0,0,0,0); //
SetTimer("vie_plus", 1000, 1);
SetTimer("vie_voiture", 1000, 1);
SetTimer("texte", 120000, 1);
SetGameModeText("Stunt31 [FR]");
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
switch (classid)
{
case 0 : GameTextForPlayer(playerid,"Stunter Pédrovérar",100,198);
case 1 : GameTextForPlayer(playerid,"Stunter Giravoltar",100,148);
}
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 2911.1453,-1955.9446,2.2116);
SetPlayerCameraLookAt(playerid, -106.8164,2500.8796,16.8384);
return 1;
}
-
Ah ouais je comprend ce que tu veux dire !
Tu veux en fait que dès que tu changes de perso, la caméra s'adapte et se mette au niveau de la map ?
Dans ce cas modifie SetPlayerCameraPos et SetPlayerCameraLookAt et met les en fonction de tes classid.
Exemple :
<?php
public OnPlayerRequestClass (playerid,classid)
{
if(classid == 0) // 1er AddPlayerClass de ta liste
{
SetPlayerPos(Point sur ta map);
SetPlayerCameraPos(5 unités à coté de ton perso);
SetPlayerCameraLookAt("Angle de ta caméra pour qu'elle soit pointée vers ton joueur");
}
if(classid == 1) // 2e AddPlayerClass
{
SetPlayerPos(Point sur ta map);
SetPlayerCameraPos(5 unités à coté de ton perso);
SetPlayerCameraLookAt(L'angle vers ton joueur);
}
/* Etc etc ^^ */
Voila après si tu veux appliquer la même map à plusieurs skins tu fais if(classid >= 0 && classid <= 10) ce qui te mettra la même map pour les 11 premiers skins.
Ps : N'oublie pas de consulter la liste des fonctions du wiki avant de poster ;)
++
-
Mercii ;) mais le bouton spawn marche plus :D
AddPlayerClass(0,2911.1453,-1955.9446,2.2116,268.3955,0,0,0,0,0,0); //
AddPlayerClass(0,-106.8164,2500.8796,16.8384,273.8112,0,0,0,0,0,0); //
SetTimer("vie_plus", 1000, 1);
SetTimer("vie_voiture", 1000, 1);
SetTimer("texte", 120000, 1);
SetGameModeText("Stunt31 [FR]");
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
switch (classid)
{
case 0 : GameTextForPlayer(playerid,"Stunter Pédrovérar",100,198);
case 1 : GameTextForPlayer(playerid,"Stunter Giravoltar",100,148);
}
if(classid == 0) // 1er AddPlayerClass de ta liste
{
SetPlayerPos(playerid, 2911.1453,-1955.9446,2.2116);
SetPlayerCameraPos(playerid, 2911.1453,-1955.9446,2.2116);
SetPlayerCameraLookAt(playerid, 2911.1453,-1955.9446,2.2116);
}
if(classid == 1) // 2e AddPlayerClass
{
SetPlayerPos(playerid, -106.8164,2500.8796,16.8384);
SetPlayerCameraPos(playerid, -106.8164,2500.8796,16.8384);
SetPlayerCameraLookAt(playerid, -106.8164,2500.8796,16.8384);
}
}
-
return 1; (au dessus de la dernière } )
8)