09.03.2011, 03:15
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
Agora vamos aos erros.
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
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;
}
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