Код:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
//=================Include======================
#include <a_samp>
#include <Dini>
#include <a_vehicles>
#define Registro 0
#define Ingreso 1
#define NEGATIVO 0xFF0000FF
#define POSITIVO 0x00FF00FF
#define AZUL 0x0000FFFF
#define AMARILLO 0xFFFF00FF
#define ROJO 0xFF0000FF
#define VERDE 0x00FF00FF
#define BLANCO 0x00000000
#define NEGRO 0x000000FF
#define GRIS_CLARO 0x00000029
#define Hablar 0xE6E6E6E6
#define Hablar2 0xC8C8C8C8
#define Hablar3 0xAAAAAAAA
#define Hablar4 0x8C8C8C8C
#define Hablar5 0x6E6E6E6E
#define SSexo 2
#define SEdad 3
#define Hospital 1178.4025,-1323.0923,14.1183
new Logueado[MAX_PLAYERS];
new BigEar[MAX_PLAYERS];
new PTuto[MAX_PLAYERS];
forward CargarDatos(playerid);
forward Tuto(playerid);
forward CrearCuenta(playerid);
forward ActualizarCuenta(playerid);
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
main()
{
print(" ----------------------------------");
print(" Blank Gamemode by your name here");
print("---------------------------------- ");
}
enum Info
{
Tutorial,
Dinero,
Admin,
Sexo,
Edad,
Faccion
};
new Informacion[MAX_PLAYERS][Info];
public OnGameModeInit()
{
SetGameModeText("El mode");//el mode del SV
SendRconCommand("hostname GM de 0");//el nombre del SV
SendRconCommand("mapname el map");//nombre del map
ManualVehicleEngineAndLights();//esto hara que, al subir a un auto, no se prenda el motor y otras cosas
ShowPlayerMarkers(0);//esto hara que los jugadores no aparescan en el mapa
DisableInteriorEnterExits();//borra as entradas por defecto
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
Logueado[playerid] = 0;
new nombre[MAX_PLAYER_NAME], archivo[256];
GetPlayerName(playerid, nombre, sizeof(nombre));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombre);
if (!dini_Exists(archivo))
{
ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_INPUT, "{009999}Registro {FFFFFF}| ", "{009999}Coloque su contraseсa para crear su cuenta", "Registrar", "Cancelar");
}
else
{
ShowPlayerDialog(playerid, Ingreso, DIALOG_STYLE_INPUT, "{009999}Ingreso {FFFFFF}|", "{009999}Coloque su contraseсa para ingresar", "Conectar", "Cancelar");
}
//aca pueden poner una camara, para que quede mas lindo
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
CargarDatos(playerid);
return 1;
}
if(Informacion[playerid][Faccion] == 1)
{
Setplayerhealth (playerid, 100.0);
Setplayerarmour (playerid, 100.0);
return 1;
}
else if(Informacion[playerid][Faccion] == 2)
{
Setplayerhealth (playerid, 100.0);
Setplayerarmour (playerid, 100.0);
return 1;
}
if(Informacion[playerid][Tutorial] == 0)
{
TogglePlayerControllable(playerid,0);
ShowPlayerDialog(playerid,SSexo,DIALOG_STYLE_MSGBOX,"{FFFFFF}Seleccionar Sexo","{00FFCC}їQue Sexo Eres, Masculino o Femenino?","Masculino","Femenino");
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
new string[128];//los maximos caracteres permitidos de cuando hablas, en mi caso 100
format(string, sizeof(string), "%s Dice: %s",NombreJugador(playerid), text);
ProxDetector(10.0, playerid, string,Hablar,Hablar2,Hablar3,Hablar4,Hablar5);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256], idx;
cmd = strtok(cmdtext, idx);
if (strcmp("/darfaccion", cmd, true) == 0)
{
new tmp[128], tmp2[128];
tmp = strtok(cmdtext, idx);
tmp2 = strtok(cmdtext, idx);
if(Informacion[playerid][Tutorial] != 6) return SendClientMessage(playerid,-1,"No eres un Admin Dueсo");
if (!strlen(tmp) || !strlen(tmp2)) return SendClientMessage(playerid, -1, "Usa /darlider [ID] [IDFACCION]");
if (!IsPlayerConnected(playerid)) return SendClientMessage(playerid, -1, "Conectate");
if (!IsPlayerConnected(strval(tmp))) return SendClientMessage(playerid, -1, "El no esta conectado");
if (strval(tmp2) < 0 || strval(tmp2) > 6) return SendClientMessage(playerid, -1, "Solo hay 6 facciones");//maximo de facciones
if(strval(tmp2) == Informacion[strval(tmp)][Faccion]) return SendClientMessage(playerid, -1, "El, ya tiene esa faccion");
Informacion[strval(tmp)][Faccion] = strval(tmp2);
return 1;
}
return 0;
}
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)
{
if(newkeys == KEY_SECONDARY_ATTACK)
{
Tuto(playerid);
return 1;
}
return 1;
}
public Tuto(playerid)
{
if(PTuto[playerid] == 1)
{
SendClientMessage(playerid,-1,"LSPD");
SendClientMessage(playerid,-1,"se encarga de x cosa");
PTuto[playerid] ++;
}
else if(PTuto[playerid] == 2)
{
SendClientMessage(playerid,-1,"FBI");
SendClientMessage(playerid,-1,"se encarga de x cosa");
PTuto[playerid] ++;
}
else if(PTuto[playerid] == 3)
{
SendClientMessage(playerid,-1,"Tal faccion");
SendClientMessage(playerid,-1,"se encarga de x cosa");
PTuto[playerid] ++;
}//pueden crear mas partes, yo les doy un elemplo, recuerden que deben poner la variable PTuto con ++, eso hara que se le valla sumando el valor
else if(PTuto[playerid] == 4)
{
SendClientMessage(playerid,-1,"Fin del tutorial");
SendClientMessage(playerid,-1,"gracias por leerlo");
PTuto[playerid] = 0;
Informacion[playerid][Tutorial] = 1;
TogglePlayerControllable(playerid,1);
}
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
ActualizarCuenta(playerid);//actualiza los datos de la cuenta, cada 40 milisegundos
return 1;
}
new Float:VidaJugador; // Definis la vida del jugador
GetPlayerHealth(playerid,VidaJugador); // Extraes la vida
if(VidaJugador <= 15) // Chequea que si tiene 15 de vida... (podes cambiarlo a cuanto quieras)
{
new string[128];
new Float:POSPH[3];
GetPlayerPos(playerid,POSPH[0],POSPH[1],POSPH[2]);
ApplyAnimation(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); // Aplica la animacion de crack
SendClientMessage(playerid,0xFF6347AA,"Tu estado de salud es pйsimo, llama a un medico."); // Le envia el mensaje al jugador
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 == Registro)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256],string[200];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, Registro, DIALOG_STYLE_INPUT, "{00FF00}Role Play ", "{FFFFFF}Por Favor, ingrese alguna conraseсa", "Continuar", "Salir");
if (!response) return Kick(playerid);
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombrejugador);
dini_Create(archivo);
dini_Set(archivo, "Usuario", nombrejugador);
dini_Set(archivo, "Contraseсa", inputtext);
CrearCuenta(playerid);
format(string,sizeof(string),"{FFFFFF}contraseсa: {FF00FF}%s{FFFFFF}Ingrese otra ves su contraseсa",inputtext);
ShowPlayerDialog(playerid, Ingreso, DIALOG_STYLE_INPUT, "{00FF00}Role Play {FFFFFF}|", string, "Confirmar", "Salir");
}
if (dialogid == Ingreso)
{
new nombrejugador[MAX_PLAYER_NAME], archivo[256], comprobante[256];
if (!strlen(inputtext)) return ShowPlayerDialog(playerid, Ingreso, DIALOG_STYLE_INPUT, "{00FF00}Merit Role Play {FFFFFF}| {FF00FF}Version 1.0", "{FFFFFF}Por Favor, ingrese alguna contraseсa", "Aceptar", "Salir");
if (!response) return Kick(playerid);
GetPlayerName(playerid, nombrejugador, sizeof(nombrejugador));
format(archivo, sizeof(archivo), "/Usuarios/%s.ini", nombrejugador);
format(comprobante, sizeof(comprobante), "%s", dini_Get(archivo, "Contraseсa"));
if (!strcmp (inputtext, comprobante))
{
Logueado[playerid] = 1;
SpawnPlayer(playerid);
}
else
{
ShowPlayerDialog(playerid, 25, DIALOG_STYLE_MSGBOX, "{FFFFFF}Merit Role Play {FFFFFF}|", "{FF0000}Su contraseсa no coincide con su nombre", "Aceptar", "");
Kick(playerid);
}
}
return 1;
}
if(dialogid == SSexo)
{
if(response == 0)
{
SetPlayerSkin(playerid,93);
Informacion[playerid][Sexo] = 2;
ShowPlayerDialog(playerid, SEdad, DIALOG_STYLE_LIST, "{FFFFFF}Seleccione Su Edad", "16 17 18 19 20 21 22 23 24 25 26", "Seleccionar", "");
}
if(response == 1)
{
SetPlayerSkin(playerid,26);
Informacion[playerid][Sexo] = 1;
ShowPlayerDialog(playerid, SEdad, DIALOG_STYLE_LIST, "{FFFFFF}Seleccione Su Edad", "16 17 18 19 20 21 22 23 24 25 26", "Seleccionar", "");
}
return 1;
}
if(dialogid == SEdad)
{
if(response)
{
if(listitem == 0)
{
Informacion[playerid][Edad] = 16;
}
else if(listitem == 1)
{
Informacion[playerid][Edad] = 17;
}
else if(listitem == 2)
{
Informacion[playerid][Edad] = 18;
}
else if(listitem == 3)
{
Informacion[playerid][Edad] = 19;
}
else if(listitem == 4)
{
Informacion[playerid][Edad] = 20;
}
else if(listitem == 5)
{
Informacion[playerid][Edad] = 21;
}
else if(listitem == 6)
{
Informacion[playerid][Edad] = 22;
}
else if(listitem == 7)
{
Informacion[playerid][Edad] = 23;
}
else if(listitem == 8)
{
Informacion[playerid][Edad] = 24;
}
else if(listitem == 9)
{
Informacion[playerid][Edad] = 25;
}
else if(listitem == 10)
{
Informacion[playerid][Edad] = 26;
}
}
SendClientMessage(playerid,-1," Tutorial");
SendClientMessage(playerid,-1,"DM es XXX y XXX");//modifiquen el tutorial..
SendClientMessage(playerid,-1,"MG es XXX y XXX");//modifiquen el tutorial..
SendClientMessage(playerid,-1,"RK es XXX y XXX");//modifiquen el tutorial..
SendClientMessage(playerid,-1,"CJ es XXX y XXX");//modifiquen el tutorial..
PTuto[playerid] = 1;
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
stock NombreJugador(playerid)
{
new Nombre[24];
GetPlayerName(playerid,Nombre,24);
new N[24];
strmid(N,Nombre,0,strlen(Nombre),24);
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{
if (N [i] == '_') N[i] = ' ';
}
return N;
}
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
{
if(!BigEar[i])
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, string);
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
}
return 1;
}
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
return 0;
}
public CrearCuenta(playerid)
{
if(IsPlayerConnected(playerid))
{
new archivo[256], usuario[MAX_PLAYER_NAME];
GetPlayerName(playerid, usuario, MAX_PLAYER_NAME);
format(archivo, 256, "Usuarios/%s.ini", usuario);
GivePlayerMoney(playerid,2000);
dini_IntSet(archivo, "Tutorial", 0);
dini_IntSet(archivo, "Dinero", 2000);
dini_IntSet(archivo, "Admin", 0);
dini_IntSet(archivo, "Sexo", 0);
dini_IntSet(archivo, "Edad", 0);
dini_IntSet(archivo, "Faccion", 0);
return 1;
}
return 1;
}
public CargarCuenta(playerid)
{
new archivo[256], usuario[MAX_PLAYER_NAME];
GetPlayerName(playerid, usuario, MAX_PLAYER_NAME);
format(archivo, 256, "Usuarios/%s.ini", usuario);
Informacion[playerid][Tutorial] = dini_Int(archivo, "Tutorial");
GivePlayerMoney(playerid, dini_Int(archivo, "Dinero"));
Informacion[playerid][Admin] = dini_Int(archivo, "Admin");
Informacion[playerid][Sexo] = dini_Int(archivo, "Sexo");
Informacion[playerid][Edad] = dini_Int(archivo, "Edad");
Informacion[playerid][Faccion] = dini_Int(archivo, "Faccion");
return 1;
}
public ActualizarCuenta(playerid)
{
if(Logueado[playerid] == 1)
{
new archivo[256], usuario[MAX_PLAYER_NAME];
GetPlayerName(playerid, usuario, MAX_PLAYER_NAME);
format(archivo, 256, "Usuarios/%s.ini", usuario);
dini_IntSet(archivo, "Tutorial", Informacion[playerid][Tutorial]);
dini_IntSet(archivo, "Dinero", GetPlayerMoney(playerid));
dini_IntSet(archivo, "Admin", Informacion[playerid][Admin]);
dini_IntSet(archivo, "Sexo", Informacion[playerid][Sexo]);
dini_IntSet(archivo, "Edad", Informacion[playerid][Edad]);
dini_IntSet(archivo, "Faccion", Informacion[playerid][Faccion]);
return 1;
}
return 1;