[Ajuda][ERRO]public OnPlayerRequestClass... -
Adriano499 - 09.03.2011
Olб pessoal!
Estou tentando adapta um sistema de "Moving camera on class selection" em meu humilde gm. porem esta dando alguns erros. acompanhe o codigo abaixo:
Topo do gm
pawn Код:
//where the player will spawn
#define player_x -250.9738
#define player_y 2585.6497
#define player_z 63.5703
#define player_angle 210.3500
//PLAYER CAMERA, THE ONE YOU CREATE SO YOU CAN SEE THE PLAYER
//note: for a better effect, let the camera be a few meters away from the player
#define camera_x -248.9410
#define camera_y 2581.5327
#define camera_z 64.9334
//ATTENTION; THESE ARE MILISECONDS
//untested, but it should work in theory. The smaller the value, the faster the camera.
#define moving_speed 50
//declaring stuff
//IMPORTANT: FOR THE CODE TO WORK, YOU MUST DEFINE THE ENUM BEFORE PlayerInfo
//just copy it like It's written here
enum pInfo
{
bool:SpawnDance,
Float:SpawnAngle,
SpawnTimer
};
new PlayerInfo[MAX_PLAYERS][pInfo];
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, player_x,player_y,player_z);
SetPlayerFacingAngle(playerid, player_angle);
SetPlayerCameraPos(playerid, camera_x,camera_y,camera_z);
SetPlayerCameraLookAt(playerid, player_x,player_y,player_z);
ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,-1); //smooth dancing. It's most fitting to the music
PlayerPlaySound(playerid, 1097,-119.9460,23.1096,12.2238); //music, duh
//making sure the timer gets executed only once, so the camera doesn't go to fast
if (PlayerInfo[playerid][SpawnDance]) PlayerInfo[playerid][SpawnTimer] = SetTimerEx("MoveCamera", moving_speed, true, "i", playerid);
PlayerInfo[playerid][SpawnDance] = false; //preventing the timer to execute again
return 1;
}
pawn Код:
//something I found in vactions.pwn
PreloadAnimLib(playerid, animlib[]) ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0);
public OnPlayerConnect(playerid)
{ //loading the animation libraries
PreloadAnimLib(playerid,"BOMBER");
PreloadAnimLib(playerid,"RAPPING");
PreloadAnimLib(playerid,"SHOP");
PreloadAnimLib(playerid,"BEACH");
PreloadAnimLib(playerid,"SMOKING");
PreloadAnimLib(playerid,"FOOD");
PreloadAnimLib(playerid,"ON_LOOKERS");
PreloadAnimLib(playerid,"DEALER");
PreloadAnimLib(playerid,"CRACK");
PreloadAnimLib(playerid,"CARRY");
PreloadAnimLib(playerid,"COP_AMBIENT");
PreloadAnimLib(playerid,"PARK");
PreloadAnimLib(playerid,"INT_HOUSE");
PreloadAnimLib(playerid,"FOOD");
PreloadAnimLib(playerid,"PED");
//so the timer can be executed again
PlayerInfo[playerid][SpawnDance] = true;
ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,-1); //preventing a bug for the animation not being applied the first time OnPlayerRequestClass is called
return 1;
}
pawn Код:
public OnPlayerSpawn(playerid)
{
PlayerInfo[playerid][SpawnAngle] = 0.0; //so when you leave and another player comes, the camera will start from start
PlayerInfo[playerid][SpawnDance] = true; //to not execute to much timers
KillTimer( PlayerInfo[playerid][SpawnTimer] ); //to kill it, since its useless now
PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0); // (blank sound) to shut the music up
SetCameraBehindPlayer(playerid); //to prevent some bugs
return 1;
}
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
KillTimer( PlayerInfo[playerid][SpawnTimer] );
return 1;
}
pawn Код:
//The business part of the code
forward MoveCamera(playerid);
public MoveCamera(playerid)
{
//this is called trigonometry. It makes the camera spin
//you can experiment with this line. Just change the values 2, 10 and 3 to make different effects
SetPlayerCameraPos(playerid, player_x - 2 * floatsin(-PlayerInfo[playerid][SpawnAngle], degrees), player_y - 10 * floatcos(-PlayerInfo[playerid][SpawnAngle], degrees), player_z + 3);
SetPlayerCameraLookAt(playerid, player_x, player_y, player_z + 0.5);
//changing the angle a little
PlayerInfo[playerid][SpawnAngle] += 0.5;
if (PlayerInfo[playerid][SpawnAngle] >= 360.0)
PlayerInfo[playerid][SpawnAngle] = 0.0;
}
Agora vamos aos erros.
pawn Код:
F:\Adriano-Panwo\gamemodes.pwn(167) : warning 201: redefinition of constant/macro (symbol "pInfo") //ja existe um outro "pInfo" em meu gm o que fazer ?.
F:\Adriano-Panwo\gamemodes.pwn(837) : warning 225: unreachable code
F:\Adriano-Panwo\gamemodes.pwn(1423) : error 021: symbol already defined: "ShowPlayerDialog"
F:\Adriano-Panwo\gamemodes.pwn(1426) : error 021: symbol already defined: "dini_IntSet"
F:\Adriano-Panwo\gamemodes.pwn(1428) : error 010: invalid function or declaration
F:\Adriano-Panwo\gamemodes.pwn(1430) : error 021: symbol already defined: "GivePlayerWeapon"
F:\Adriano-Panwo\gamemodes.pwn(1441) : error 021: symbol already defined: "TextDrawShowForPlayer"
F:\Adriano-Panwo\gamemodes.pwn(1442) : error 010: invalid function or declaration
F:\Adriano-Panwo\gamemodes.pwn(1444) : error 054: unmatched closing brace ("}")
F:\Adriano-Panwo\gamemodes.pwn(1445) : error 010: invalid function or declaration
F:\Adriano-Panwo\gamemodes.pwn(1452) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
9 Errors.
pawn Код:
//Dialogs
#define REGISTRO 1
#define LOGIN 2
#define AVISO 3
//REGISTRO
#define PASTA_CONTAS "/Contas/%s.ini" //Diretуrio onde as contas sгo salvas
#define MAX_SENHA 16 //Tamanho mбximo da senha
#define MIN_SENHA 4 //Tamanho mнnimo da senha
#define TENTATIVAS_LOGIN 3 //Ao exceder o limite de tentativas, й kickado
enum pInfo
{
Senha[MAX_SENHA+1],
Logged,
LoginsFalsos
} //linha 167!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
new PlayerInfo[MAX_PLAYERS][pInfo];
new file[128];
new STRX[256];
pawn Код:
TextDrawShowForPlayer(playerid, topblack);//linha 837
TextDrawShowForPlayer(playerid, bottomblack);[/pwn]
[/pwna] ShowPlayerDialog(playerid,DIALOG_CANAL,DIALOG_STYLE_LIST,"Mudar Canal","Canal 0\r\nCanal 1\r\nCanal 2\r\nCanal 3\r\nCanal 4\r\nCanal 5","Mudar", "Fechar");//linha 23
TextDrawHideForPlayer(playerid, topblack);
TextDrawHideForPlayer(playerid, bottomblack);
dini_IntSet(file, "Skin", SkinSalvo[playerid]);//linha 1426
SetPlayerSkin(playerid, SkinSalvo[playerid]);
if(NoMataMata[playerid] == 1){//linha 1428
RSpawnMataMata(playerid);
GivePlayerWeapon(playerid,24,5000);//linha 1430
pawn Код:
TextDrawShowForPlayer(playerid, BKs); //linha 1441
if(NoMataMata[playerid] == 0){ //linha 1442
RandomSpawn(playerid);
} //linha 1444
if(DMer[playerid] == 1){ //linha 1445
GivePlayerWeapon(playerid,24,5000);
GivePlayerWeapon(playerid,27,5000);
GivePlayerWeapon(playerid,29,5000);
GivePlayerWeapon(playerid,31,5000);
GivePlayerWeapon(playerid,34,5000);
}
return 1; //linha 1452
}
Creio eu que o poblema esta la em cima. me ajuda ?
quem quiser me ajuda e nao enteder muito bem o que eu to querendo baixa o gm "perfect games" e tenta coloca iso pra min. obrigado pessoal
Re: [Ajuda][ERRO]public OnPlayerRequestClass... -
Adriano499 - 09.03.2011
pawn Код:
public RandomSpawn(playerid)
{
new rand = random(sizeof(LocaisSpawn));
SetPlayerPos(playerid, LocaisSpawn[rand][0], LocaisSpawn[rand][1], LocaisSpawn[rand][2]); // Warp the player
return 1;
}
ja existe
Re: [Ajuda][ERRO]public OnPlayerRequestClass... -
JonathanFeitosa - 09.03.2011
Primeiro Tente Definir :
Depois Tente Trocar Akilo Por Isso :
pawn Код:
enum pInfo
{
Senha[MAX_SENHA+1],
Logged,
LoginsFalsos
};
Agora Vamos Aqui
pawn Код:
TextDrawShowForPlayer(playerid, topblack);//linha 837
TextDrawShowForPlayer(playerid, bottomblack);
ShowPlayerDialog(playerid,DIALOG_CANAL,DIALOG_STYLE_LIST,"Mudar Canal","Canal 0\r\nCanal 1\r\nCanal 2\r\nCanal 3\r\nCanal 4\r\nCanal 5","Mudar", "Fechar");//linha 23
TextDrawHideForPlayer(playerid, topblack);
TextDrawHideForPlayer(playerid, bottomblack);
dini_IntSet("skins.ini",PlayerName(playerid),GetPlayerSkin(playerid));
SetPlayerSkin(playerid, SkinSalvo[playerid]);
if(NoMataMata[playerid] == 1){//linha 1428
RSpawnMataMata(playerid);
pawn Код:
new NoMataMata[MAX_PLAYERS];
new DMer[MAX_PLAYERS];
pawn Код:
if(DMer[playerid] == 1){
GivePlayerWeapon(playerid,24,5000);
GivePlayerWeapon(playerid,27,5000);
GivePlayerWeapon(playerid,29,5000);
GivePlayerWeapon(playerid,31,5000);
GivePlayerWeapon(playerid,34,5000);
return 1;
}
Tente Isso se der mais erro apaga. se der menos posta ai. =) pq nao deu pra entender nada oq tu postou tu nem explicou direito
Re: [Ajuda][ERRO]public OnPlayerRequestClass... -
Adriano499 - 09.03.2011
....
Re: [Ajuda][ERRO]public OnPlayerRequestClass... -
JonathanFeitosa - 09.03.2011
Adriano Se Esse For Seu GM. Consegui Tirar Uns Erros em 10 segundos.
Click Aqui
Re: [Ajuda][ERRO]public OnPlayerRequestClass... -
Adriano499 - 09.03.2011
ei o gm nao tinha erro nao.. e voce nao add o codigo pra min man D:
da uma olhadinha ai pra min ve se consegue add
"o gm e da net mais e muito parecido com o meu"
Re: [Ajuda][ERRO]public OnPlayerRequestClass... -
JonathanFeitosa - 09.03.2011
й tu quer adicionar ele. pensava que ja tinha pqp. vo ver aki
Lembrando : Esse GM Ta Cheio de Includes definidas que nao presta.
Re: [Ajuda][ERRO]public OnPlayerRequestClass... -
JonathanFeitosa - 09.03.2011
desculpe o flood. mais nao da pra entender nada cara
Re: [Ajuda][ERRO]public OnPlayerRequestClass... -
Adriano499 - 09.03.2011
eu quero adicionar o "Moving camera on class selection" que esta em cima do topico. Nesse gm que eu te passei.. pra nao dificulta muito sua vida eu nao mechi no gm.. pra fica mais facil de voce me ajudar
Re: [Ajuda][ERRO]public OnPlayerRequestClass... -
JonathanFeitosa - 09.03.2011
Vocк pegou daqui nй ?
Entaum vamp faz direito veio pqp vamo la.
Topo :
pawn Код:
//where the player will spawn
#define player_x -250.9738
#define player_y 2585.6497
#define player_z 63.5703
#define player_angle 210.3500
//PLAYER CAMERA, THE ONE YOU CREATE SO YOU CAN SEE THE PLAYER
//note: for a better effect, let the camera be a few meters away from the player
#define camera_x -248.9410
#define camera_y 2581.5327
#define camera_z 64.9334
//ATTENTION; THESE ARE MILISECONDS
//untested, but it should work in theory. The smaller the value, the faster the camera.
#define moving_speed 50
//declaring stuff
//IMPORTANT: FOR THE CODE TO WORK, YOU MUST DEFINE THE ENUM BEFORE PlayerInfo
//just copy it like It's written here
enum pInfo
{
bool:SpawnDance,
Float:SpawnAngle,
SpawnTimer
};
new PlayerInfo[MAX_PLAYERS][pInfo];
PreloadAnimLib(playerid, animlib[]) ApplyAnimation(playerid,animlib,"null",0.0,0,0,0,0,0);
Agora DEFINA ISSO NO SEU GM QUE NгO TEM :
pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, player_x,player_y,player_z);
SetPlayerFacingAngle(playerid, player_angle);
SetPlayerCameraPos(playerid, camera_x,camera_y,camera_z);
SetPlayerCameraLookAt(playerid, player_x,player_y,player_z);
ApplyAnimation(playerid,"DANCING","DNCE_M_B",4.0,1,0,0,0,-1); //smooth dancing. It's most fitting to the music
PlayerPlaySound(playerid, 1097,-119.9460,23.1096,12.2238); //music, duh
//making sure the timer gets executed only once, so the camera doesn't go to fast
if (PlayerInfo[playerid][SpawnDance]) PlayerInfo[playerid][SpawnTimer] = SetTimerEx("MoveCamera", moving_speed, true, "i", playerid);
PlayerInfo[playerid][SpawnDance] = false; //preventing the timer to execute again
return 1;
}
OnPlayerSpawn:
pawn Код:
PlayerInfo[playerid][SpawnAngle] = 0.0; //so when you leave and another player comes, the camera will start from start
PlayerInfo[playerid][SpawnDance] = true; //to not execute to much timers
KillTimer( PlayerInfo[playerid][SpawnTimer] ); //to kill it, since its useless now
PlayerPlaySound(playerid, 1186, 0.0, 0.0, 0.0); // (blank sound) to shut the music up
SetCameraBehindPlayer(playerid); //to prevent some bugs
OnPlayerDisconnect :
pawn Код:
KillTimer( PlayerInfo[playerid][SpawnTimer] );
Final :
pawn Код:
forward MoveCamera(playerid);
public MoveCamera(playerid)
{
//this is called trigonometry. It makes the camera spin
//you can experiment with this line. Just change the values 2, 10 and 3 to make different effects
SetPlayerCameraPos(playerid, player_x - 2 * floatsin(-PlayerInfo[playerid][SpawnAngle], degrees), player_y - 10 * floatcos(-PlayerInfo[playerid][SpawnAngle], degrees), player_z + 3);
SetPlayerCameraLookAt(playerid, player_x, player_y, player_z + 0.5);
//changing the angle a little
PlayerInfo[playerid][SpawnAngle] += 0.5;
if (PlayerInfo[playerid][SpawnAngle] >= 360.0)
PlayerInfo[playerid][SpawnAngle] = 0.0;
}
Sу isso mano. da proxima ver c explica melhor