20.07.2018, 19:49
fiz uma GM aqui mais nao ta dando certo!
problemas:
- DOF2 salvamento esta bugando, nao seta skin padrao quando ele cria a conta e nao seta skin quando ele loga!
- sistema de meus comandos pra setar cargo nao estao me permitindo digitar, mesmo sendo adm rcon
- Quando eu spawno eu morro!
poderiam me ajudar se possivel a arrumar esses erros, tudo em zcmd pfv e nao mexem em minhas enum pq estou estudando samp, pfv me ajudem!
problemas:
- DOF2 salvamento esta bugando, nao seta skin padrao quando ele cria a conta e nao seta skin quando ele loga!
- sistema de meus comandos pra setar cargo nao estao me permitindo digitar, mesmo sendo adm rcon
- Quando eu spawno eu morro!
poderiam me ajudar se possivel a arrumar esses erros, tudo em zcmd pfv e nao mexem em minhas enum pq estou estudando samp, pfv me ajudem!
PHP код:
#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <DOF2>
#define Registro 1
#define Login 2
new str[128];
new gfile[50];
enum PlayerInfo {
pDinheiro,
pLevel,
pVida,
pColete,
pSkin,
Ajudante,
Moderador,
Corregedor,
Administrador,
Master,
bool:Oculto
};
new pInfo[MAX_PLAYERS][PlayerInfo];
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
public OnGameModeInit()
{
// 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);
CreateVehicle(411, 2040.6357,1347.0950,10.6719,181.0950, 0, 0, -1);
return 1;
}
public OnGameModeExit()
{
DOF2_Exit();
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 string[64];
format(string, sizeof(string), "O player %s se conectou ao servidor!", Pname(playerid));
SendClientMessageToAll(-1, string);
format(gfile, sizeof(gfile), "Contas/%s.txt", Pname(playerid));
if(DOF2_FileExists(gfile))
{
format(str, sizeof(str), "Ola, seja bem vindo novamente Sr.%s !", Pname(playerid));
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "{FFFFFF}LOGIN", str, "Logar", "Cancelar");
}
else
{
format(str, sizeof(str), "Ola, seja bem vindo pela primeira vez Sr.%s !", Pname(playerid));
ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_PASSWORD, "{FFFFFF}REGISTRO", str, "Registro", "Cancelar");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new string[64], Float:health, Float:armour;
format(string, sizeof(string), "O player %s se conectou ao servidor!", Pname(playerid));
SendClientMessageToAll(-1, string);
format(gfile, sizeof(gfile), "Contas/%s.txt", Pname(playerid));
if(DOF2_FileExists(gfile))
{
DOF2_SetInt(gfile, "Dinheiro", pInfo[playerid][pDinheiro]);
DOF2_SetFloat(gfile, "Vida", GetPlayerHealth(playerid, health));
DOF2_SetFloat(gfile, "Colete", GetPlayerArmour(playerid, armour));
DOF2_SetInt(gfile, "Level", GetPlayerScore(playerid));
DOF2_SetInt(gfile, "Ajudante", pInfo[playerid][Ajudante]);
DOF2_SetInt(gfile, "Moderador", pInfo[playerid][Moderador]);
DOF2_SetInt(gfile, "Corregedor", pInfo[playerid][Corregedor]);
DOF2_SetInt(gfile, "Administrador", pInfo[playerid][Administrador]);
DOF2_SetInt(gfile, "Master", pInfo[playerid][Master]);
DOF2_SetInt(gfile, "Oculto", pInfo[playerid][Oculto]);
DOF2_SetInt(gfile, "Skin", pInfo[playerid][pSkin]);
DOF2_SaveFile();
}
return 1;
}
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 OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
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)
{
if(pInfo[playerid][Ajudante] == 1)
{
SetPlayerColor(playerid, 0xFF00FFAA);
SetPlayerChatBubble(playerid, "Ajudante(a)", 0xFF00FFAA, 100.0, 10000);
}
if(pInfo[playerid][Moderador] == 1)
{
SetPlayerColor(playerid, 0x008000AA);
SetPlayerChatBubble(playerid, "Moderador(a)", 0x008000AA, 100.0, 10000);
}
if(pInfo[playerid][Corregedor] == 1)
{
SetPlayerColor(playerid, 0x00FFFFAA);
SetPlayerChatBubble(playerid, "Corregedor(a)", 0x00FFFFAA, 100.0, 10000);
}
if(pInfo[playerid][Administrador] == 1)
{
SetPlayerColor(playerid, 0xFF0000AA);
SetPlayerChatBubble(playerid, "Administrador(a)", 0xFF0000AA, 100.0, 10000);
}
if(pInfo[playerid][Master] == 1)
{
SetPlayerColor(playerid, 0x800000AA);
SetPlayerChatBubble(playerid, "Administrador(a)", 0x800000AA, 100.0, 10000);
}
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[])
{
format(gfile, sizeof(gfile), "Contas/%s.txt", Pname(playerid));
switch(dialogid) {
case Registro: {
if(!strlen(inputtext))
{
SendClientMessage(playerid, -1, "[ {FFFFFF}ERRO ]Digite uma senha para se registrar!");
format(str, sizeof(str), "Ola, seja bem vindo pela primeira vez Sr.%s !", Pname(playerid));
ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_PASSWORD, "{FFFFFF}REGISTRO", str, "Registro", "Cancelar");
}
else
{
DOF2_CreateFile(gfile);
DOF2_SetString(gfile, "Senha", inputtext);
DOF2_SetInt(gfile, "Skin", pInfo[playerid][pSkin] = 137);
DOF2_SetInt(gfile, "Dinheiro", pInfo[playerid][pDinheiro] = 5000);
DOF2_SetFloat(gfile, "Vida", pInfo[playerid][pVida]);
DOF2_SetFloat(gfile, "Colete", pInfo[playerid][pColete]);
DOF2_SetInt(gfile, "Level", pInfo[playerid][pLevel]);
DOF2_SetInt(gfile, "Ajudante", pInfo[playerid][Ajudante] = 0);
DOF2_SetInt(gfile, "Moderador", pInfo[playerid][Moderador] = 0);
DOF2_SetInt(gfile, "Corregedor", pInfo[playerid][Corregedor] = 0);
DOF2_SetInt(gfile, "Administrador", pInfo[playerid][Administrador] = 0);
DOF2_SetInt(gfile, "Master", pInfo[playerid][Master] = 0);
DOF2_SetInt(gfile, "Oculto", pInfo[playerid][Oculto] = false);
DOF2_SaveFile();
SpawnPlayer(playerid);
SetPlayerSkin(playerid, pInfo[playerid][pSkin]);
GivePlayerMoney(playerid, pInfo[playerid][pDinheiro]);
SetPlayerHealth(playerid, pInfo[playerid][pVida]);
SetPlayerArmour(playerid, pInfo[playerid][pColete]);
}
}
case Login: {
if(!strlen(inputtext))
{
SendClientMessage(playerid, -1, "[{FFFFFF}ERRO ] Digite Sua senha para logar no servidor!");
format(str, sizeof(str), "Ola, seja bem vindo ao servidor novamente!");
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "{FFFFFF}LOGIN", str, "Login", "Cancelar");
}
if(strcmp(inputtext, DOF2_GetString(gfile, "Senha"), true) == 0)
{
SetPlayerHealth(playerid, pInfo[playerid][pVida]);
SetPlayerArmour(playerid, pInfo[playerid][pColete]);
SetPlayerSkin(playerid, pInfo[playerid][pSkin]);
GivePlayerMoney(playerid, pInfo[playerid][pDinheiro]);
SetPlayerScore(playerid, pInfo[playerid][pLevel]);
SpawnPlayer(playerid);
UsePlayerPedAnims();
SendClientMessage(playerid, -1, "{FFFFFF}Login efeituado com sucesso!");
}
else
{
format(str, sizeof(str), "Ola, seja bem vindo ao servidor novamente!");
ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "{FFFFFF}LOGIN", str, "Login", "Cancelar");
}
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
//Comandos Cargos
stock Pname(playerid)
{
new nomep[MAX_PLAYER_NAME];
GetPlayerName(playerid, nomep, sizeof(nomep));
return nomep;
}
CMD:minhaposicao(playerid)
{
new Float:x, Float:y, Float:z, Float:a, string[64];
if(GetPlayerInterior(playerid) == 0)
{
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, a);
format(string, sizeof(string), "Sua posicгo й: %f %f %f %f !", x, y, z, a);
SendClientMessage(playerid, -1, string);
}
else if(GetPlayerInterior(playerid) > 1)
{
SendClientMessage(playerid, -1, "Vocк nгo pode digitar esse comando estando em um interior!");
}
return 1;
}
CMD:setarmaster(playerid, params[])
{
if(!IsPlayerAdmin(playerid) || pInfo[playerid][Master] == 0 || pInfo[playerid][Oculto] == false) return SendClientMessage(playerid, -1, "{FFFFFF}[ERRO] Vocк nгo tem permissao a esse comando!");
if(IsPlayerAdmin(playerid))
{
new idsetado, cargo, Mensagem[256], pid[MAX_PLAYER_NAME];
GetPlayerName(idsetado, pid, sizeof(pid));
if(sscanf(params, "ud", idsetado, cargo)) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO ]Use: /setarmaster [id] [1 = setar, 0 = tirar]");
if(!IsPlayerConnected(idsetado)) return SendClientMessage(playerid, -1, "[ERRO]Player nao conectado!");
format(Mensagem, sizeof(Mensagem), "Vocк foi setado admin master do servidor! parabens %s ", pid);
SendClientMessage(idsetado, -1, Mensagem);
pInfo[idsetado][Master] = cargo;
}
return 1;
}
CMD:setaradministrador(playerid, params[])
{
if(!IsPlayerAdmin(playerid) || pInfo[playerid][Master] == 0 || pInfo[playerid][Oculto] == false) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO]Vocк nгo tem permissao para usar este comando!");
new idsetado, cargo, Mensagem[256], pid[MAX_PLAYER_NAME];
GetPlayerName(idsetado, pid, sizeof(pid));
if(sscanf(params, "ud", idsetado, cargo)) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO ]Use: /setaradministrador [id] [1 = setar, 0 = tirar]");
if(!IsPlayerConnected(idsetado)) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO]O jogador nгo esta conectado!");
format(Mensagem, sizeof(Mensagem), "{FFFFFF}Vocк foi setado administrador(a) do servidor!, parabens %s", pid);
SendClientMessage(idsetado, -1, Mensagem);
pInfo[playerid][Administrador] = cargo;
return 1;
}
CMD:setarcorregedor(playerid, params[])
{
if(!IsPlayerAdmin(playerid) || pInfo[playerid][Master] == 0 || pInfo[playerid][Oculto] == false) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO]Vocк nгo tem permissao para usar este comando!");
new idsetado, cargo, Mensagem[256], pid[MAX_PLAYER_NAME];
GetPlayerName(idsetado, pid, sizeof(pid));
if(sscanf(params, "ud", idsetado, cargo)) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO ]Use: /setarcorregedor [id] [1 = setar, 0 = tirar]");
if(!IsPlayerConnected(idsetado)) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO]O jogador nгo esta conectado!");
format(Mensagem, sizeof(Mensagem), "{FFFFFF}Vocк foi setado Corregedor(a) do servidor!, parabens %s", pid);
SendClientMessage(idsetado, -1, Mensagem);
pInfo[playerid][Corregedor] = cargo;
return 1;
}
CMD:setarmoderador(playerid, params[])
{
if(!IsPlayerAdmin(playerid) || pInfo[playerid][Master] == 0 || pInfo[playerid][Oculto] == false) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO]Vocк nгo tem permissao para usar este comando!");
new idsetado, cargo, Mensagem[256], pid[MAX_PLAYER_NAME];
GetPlayerName(idsetado, pid, sizeof(pid));
if(sscanf(params, "ud", idsetado, cargo)) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO ]Use: /setarmoderador [id] [1 = setar, 0 = tirar]");
if(!IsPlayerConnected(idsetado)) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO]O jogador nгo esta conectado!");
format(Mensagem, sizeof(Mensagem), "{FFFFFF}Vocк foi setado Moderador(a) do servidor!, parabens %s", pid);
SendClientMessage(idsetado, -1, Mensagem);
pInfo[playerid][Moderador] = cargo;
return 1;
}
CMD:setarajudante(playerid, params[])
{
if(!IsPlayerAdmin(playerid) || pInfo[playerid][Master] == 0 || pInfo[playerid][Oculto] == false) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO]Vocк nгo tem permissao para usar este comando!");
new idsetado, cargo, Mensagem[256], pid[MAX_PLAYER_NAME];
GetPlayerName(idsetado, pid, sizeof(pid));
if(sscanf(params, "ud", idsetado, cargo)) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO ]Use: /setarajudante [id] [1 = setar, 0 = tirar]");
if(!IsPlayerConnected(idsetado)) return SendClientMessage(playerid, -1, "[{FFFFFF}ERRO]O jogador nгo esta conectado!");
format(Mensagem, sizeof(Mensagem), "{FFFFFF}Vocк foi setado Ajudante do servidor!, parabens %s", pid);
SendClientMessage(idsetado, -1, Mensagem);
pInfo[playerid][Ajudante] = cargo;
return 1;
}