09.10.2011, 11:58
Bom dia eu estavavendo um tuto do Josma.
blz fisso tudo que ele pediu la mais quanto vo compilar da isso:
Filterscript:
agora os erros:
blz fisso tudo que ele pediu la mais quanto vo compilar da isso:
Filterscript:
PHP код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#define VDaOrg(%0,%1,%2) GetPlayerVehicleID(playerid) >= %0[%1] && GetPlayerVehicleID(playerid) <= %0[%2]
const C_onibus = 0x1E90FF99; //Cor da aeronautica, azul. //Os Civis tem 3 veнculos
new Vmotorista[5]; //Os Assassinos tem 5 veнculos.
new Mecanico[7]; //A Aeronautica tem 7 veнculos.
new Texto[256];
#if defined FILTERSCRIPT
enum Info
{
Membro, //Identifica de que organizaзгo o player й membro. 0 para civil.
Cargo, //Identifica qual o cargo do player. 10 para lнder.
};
new ProgressaoInfo[MAX_PLAYERS][Info]; //Utilizaremos essa variбvel com arrays em conjunto com o enu
new Nomeorgs[2][128] = //[5] representa o numero de linhas iniciando do 0 e [128] o numero de caracters mбximo de cada string.
{
"Motorista de onibus", //Org [0]: Como dito no enum, a org 0 й civil, nгo й propriamente uma org mas й necessбrio ter pois o player serб automaticamente membro da org 0 caso nгo definido.
"Mecanico", //Org [1]: Assassinos por contrato, Hitmans.
};
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
//******************************[ Veнculos dos Onibus]*************************************************
Vmotorista[0] = CreateVehicle(431,3241.52685547,-628.50512695,10.30728531,92.00000000,-1,-1,15); //Bus
Vmotorista[1] = CreateVehicle(431,3241.61621094,-633.65081787,10.49218750,91.99951172,-1,-1,15); //Bus CreateVehicle(431,3241.82836914,-638.24633789,10.49218750,91.99951172,-1,-1,15); //Bus
Vmotorista[2] = CreateVehicle(431,3242.04492188,-642.65997314,10.49926758,91.99951172,-1,-1,15); //Bus
Vmotorista[3] = CreateVehicle(431,3242.24267578,-646.76184082,10.49218750,91.99951172,-1,-1,15); //Bus
Vmotorista[4]= CreateVehicle(431,3242.56005859,-651.70928955,10.49218750,91.99951172,-1,-1,15); //Bus
CreateVehicle(431,3242.58398438,-655.71185303,10.49218750,91.99951172,-1,-1,15); //Bus
CreateVehicle(431,3242.70825195,-660.04064941,10.49218750,91.99951172,-1,-1,15); //Bus
CreateVehicle(431,3242.62963867,-664.43884277,10.49218750,91.99951172,-1,-1,15); //Bus
//E assim vai atй criar todos os veнculos pra completar as arrays da variбvel.
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
format(Texto, 35, "Jogadores/%s", nome); //Formatarб na variбvel Texto o caminho onde fica o arquivo com os dados do player.
if(fexist(Texto)) //Verificarб se o arquivo existe, caso exista executarб o que vem entre as chaves abaixo.
{
INI_Open(Texto); //Й necessбrio abrir o arquivo antes de tudo.
ProgressaoInfo[playerid][Membro] = INI_ReadInt("Organizaзгo");
ProgressaoInfo[playerid][Cargo] = INI_ReadInt("Cargo");
INI_Close(); //Й necessбrio apenas fechar o arquivo sem salvar, pois nada foi modificado nele.
}
return true;
}
public OnPlayerDisconnect(playerid, reason)
{
SalvarPlayer(playerid);
return true;
}
stock SalvarPlayer(playerid)
{
new nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, nome, sizeof(nome));
format(Texto, 35, "Jogadores/%s", nome); //Formatarб na variбvel Texto o caminho onde ficarб o arquivo com os dados do player.
INI_Open(Texto); //Abrirб o arquivo para escrever as informaзхes, caso nгo exista, ele criarб automaticamente.
INI_WriteInt("Organizaзгo", ProgressaoInfo[playerid][Membro]); //Setarб na TAG Organizaзгo o valor inteiro da variбvel Membro do playerid(No caso o ID da org dele).
INI_WriteInt("Cargo", ProgressaoInfo[playerid][Cargo]); //Setarб na TAG Cargo o valor inteiro da variбvel Cargo do playerid(No caso, o cargo dele na org).
INI_Save(); //Salvar й necessбrio, caso nгo salve, nгo verб nada escrito no arquivo.
INI_Close(); //Tambйm й necessбrio Fechar oa rquivo aberto.
return true;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate) //Verificarб a mudanзa de estado do player
{
if(newstate == PLAYER_STATE_DRIVER) //O novo estado do player й de motorista.
{
if(VDaOrg(Motorista de onibus,0,4) && ProgressaoInfo[playerid][Membro] != 2) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_onibus, "Vocк nгo й um motorista");
}
return true;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 100 && response) //100 й o ID do dialog que usamos no ShowPlayerDialog do comando /convidar. Response й a resposta ao primeiro botгo do dialog, no caso, "Sim".
{
ProgressaoInfo[playerid][Membro] = GetPVarInt(playerid, "OrgConvidado"); //Setaremos a org do player = a org setada no PVar dele, que й a mesma do player que o convidou.
ProgressaoInfo[playerid][Cargo] = 1; //Setaremos o cargo do player para 1 afinal ele acabou de entrar na nova organizaзгo.
DeletePVar(playerid, "OrgConvidado"); //Deletaremos a PVar que usamos no comando /convidar.
return true;
}
return true;
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
cmd(membros, playerid, params[])
{
#pragma unused params //Nгo estamos usando parametros no comando, por isso o pragma.
new corda[70];
for(new i, PP = GetMaxPlayers(); i < PP; i++)
{
if(!IsPlayerConnected(PP)) continue; //Caso o player nгo esteja conectado ele darб continuidade no loop
if(ProgressaoInfo[i][Membro] == ProgressaoInfo[playerid][Membro]) //Caso a org do player [i] for igual a org do player [playerid] Executarб o que vem abaixo.
{
new nome[MAX_PLAYER_NAME]; //Criarб a variбvel que acumularб o nome do player membro da org.
GetPlayerName(playerid, nome, sizeof(nome)); //Pegarб o nome do player membro da org pra acumular na variбvel acima.
format(corda, sizeof(corda), "%s membro da org %s cargo %d\n", nome, Orgnome[ProgressaoInfo[i][Membro]], ProgressaoInfo[i][Cargo]); //Formatarб a string corda com o nome, cargo e nome da org pertencente.
strcat(Texto, corda, 70);
}
}
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Lista de membros online", Texto, "OK", ""); //Mostratб ao player o dialog com a lista de membros.
strdel(Texto, 0, sizeof(Texto)); //Deletarб os dados da string pra que ela possa ser reutilizada e evitando um 'bug' que repete as mensagens.
return true;
cmd(chatorg, playerid, params[])
{
//Usaremos parвmetros entгo nгo precisaremos do pragma.
new corda[128];
if(sscanf(params, "s[128]", corda)) return SendClientMessage(playerid, GetPlayerColor(playerid), "Uso correto: /ChatOrg [Mensagem]");
if(ProgressaoInfo[playerid][Membro] == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "Civis nгo tem chat prуprio"); //Caso o player tente utilizar chat sendo civil.
new nome[MAX_PLAYER_NAME]; //Criamos a variбvel que acumularб o nome do player que estб mandando a mensagem а org.
GetPlayerName(playerid, nome, sizeof(nome)); //Getamos o nome do player e acoplamos а variбvel criada acima.
format(Texto, 128, "%s[%d] diz: %s", nome, ProgressaoInfo[playerid][Cargo], corda); //Lembra da variбvel global chamada de Texto que criamos? Reutilizaremos ela para armazenar o texto que serб mandado aos membros da org. Junto com o mandante e seu cargo.
for(new PP, Progressao = GetMaxPlayers(); PP < Progressao; PP++)
{
if(!IsPlayerConnected(PP)) continue; //Caso o player do loop nгo esteja conectado ele darб continuidade no loop sem executar o que estб abaixo.
if(ProgressaoInfo[PP][Membro] == ProgressaoInfo[playerid][Membro]) //Verificarб se o player no Loop й da mesma organizaзгo do player que mandou a mensagem а org.
{
SendClientMessage(PP, GetPlayerColor(playerid), Texto); //Mandarб a mensagem ao player no loop com a cor do player que mandou que lуgicamente serб a cor da org dele.
}
}
return true;
}
}
cmd(convidar, playerid, params[])
{
new PlayerB, nome[MAX_PLAYER_NAME]; //Criarб as variбveis PlayerB que acumularб o ID do player convidado e nome que acumularб o nome de dois players(Um de cada vez, claro).
if(sscanf(params, "d", PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Uso correto: /convidar [id]"); //Caso o player nгo digite o comando completo retornarб а esta mensagem.
if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo estб online"); //Caso o jogador convidado nгo esteja online retornarб а esta mensagem.
GetPlayerName(PlayerB, nome, sizeof(nome)); //Pegarб o nome do player convidado para usar ao formatar a variбvel Texto.
format(Texto, 70, "Vocк convidou %s para sua organizaзгo", nome); //Formatarб a variбvel texto com a mensagem e o nome do convidante.
SendClientMessage(playerid, GetPlayerColor(playerid), Texto); //Mandarб a mensagem ao convidante informando-o que ele convidou um player.
GetPlayerName(playerid, nome, sizeof(nome)); //Pegarб o nome do player convidante para usar ao formatar a variбvel Texto
format(Texto, 128, "%s estб lhe convidando para fazer parte da organizaзгo: %s \nDeseja aceitar?", nome, Nomeorgs[ProgressaoInfo[playerid][Membro]]); //Formatarб a variбvel Texto com o nome do player convidante e o nome da organizaзгo
ShowPlayerDialog(PlayerB, 100, DIALOG_STYLE_MSGBOX, "Convite para organizaзгo", Texto, "Sim", "Nгo"); //Mostrarб ao player convidado o dialog de aceitaзгo da org.
SetPVarInt(PlayerB, "OrgConvidado", ProgressaoInfo[playerid][Membro]); //Setarб a PVar do player convidado com o id da org que ele estб sendo convidado, caso aceite, serб setado.
return true;
}
cmd(promover, playerid, params[])
{
new PlayerB, cargo;
if(sscanf(params, "dd", PlayerB, Cargo)) return SendClientMessage(playerid, 0x1E90FF99, "Uso correto: /Promover [id] [cargo]");
if(ProgressaoInfo[playerid][Cargo] != 10) return SendClientMessage(playerid, 0x1E90FF99, "Vocк nгo й lнder");
if(ProgressaoInfo[PlayerB][Membro] != ProgressaoInfo[playerid][Membro]) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo й da mesma organizaзгo que vocк.");
ProgressaoInfo[playerid][Cargo] = cargo;
return true;
}
cmd(demitir, playerid, params[])
{
new PlayerB;
if(sscanf(params, "d", PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Uso correto: /Demitir [id]");
if(!IsPlayerConnected(PlayerB)) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo estб online");
if(ProgressaoInfo[playerid][Membro] != ProgressaoInfo[PlayerB][Membro]) return SendClientMessage(playerid, 0x1E90FF99, "Este jogador nгo й da sua organizaзгo");
if(ProgressaoInfo[playerid][Cargo] != 10) return SendClientMessage(playerid, 0x1E90FF99, "Vocк nгo й lнder da organizaзгo");
ProgressaoInfo[PlayerB][Membro] = 0; //Tornarб o player demitido um civil novamente.
ProgressaoInfo[PlayerB][Cargo] = 0; //Atribuirб o cargo 0 ao player demitido, afinal, agora ele nгo pertence а org alguma.
SendClientMessage(PlayerB, C_Civil, "Vocк foi demitido");
SetPlayerColor(playerid, C_Civil);
SendClientMessage(playerid, 0x1E90FF99, "Jogador demitido");
return true;
}
agora os erros:
PHP код:
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : warning: 217: loose indentation
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : warning: 217: loose indentation
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : warning: 217: loose indentation
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : error: 017: undefined symbol "INI_Open"
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : error: 017: undefined symbol "ProgressaoInfo"
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : warning: 215: expression has no effect
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : error: 001: expected token: ";", but found "]"
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : error: 029: invalid expression, assumed zero
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : error fatal: 107: too many e
C:\Documents and Settings\weverton\Desktop\gamemodes\Sem tнtulo 2.pwn(89) : error fatal: 107: too many error messages on one line