[Tutorial] Como crear Facciones y Agregarle Vehiculos
#1

Bueno.
He Visto a Muchos Preguntando como Crear Facciones y/o Como agregar Vehiculos a Las Facciones.
Bueno.
Crear Facciones:

Paso 1.

Nos dirijimos a "new JoinPed[52][1] = {" Podemos buscarlo con Ctrl +F Bien que es esto? Pues es donde se ponen los skins que vana usar nuestras facciones Por ejemplo Usaremos la 294 que es Wozzie.
pawn Код:
new JoinPed[53/*Sumarle 1 ya que agregamos 1 skin mas*/][1] = {
{280},//POLICE_FORCE
{281},
{282},
{283},
{284},
{285},
{288},
{71},
{166},
{295},
{148},
{286},//FBI/ATF
{164},
{163},
{287},//NATIONAL_GUARD
{285},
{70},//FIRE/AMBULANCE
{274},
{275},
{276},
{277},
{278},
{279},
{258},//LA_COSA_NOSTRA
{127},
{126},
{125},
{124},
{113},
{111},
{98},
{120},//YAKUZA
{121},
{122},
{123},
{169},
{186},
{228},
{127},//HITMANS
{165},
{186},
{93},
{141},
{148},//NEWS_REPORTERS
{188},
{187},
{255},//TAXI_CAB_COMPANY
{253},
{59},//DRIVING/FLYING_SCHOOL
{60},//DRIVING/FLYING_SCHOOL
{76},//DRIVING/FLYING_SCHOOL
{150}, //agregar la coma
{294}
};
Paso 2.

Bien si usaste Ctrl + F apreta F3 para dirijirte al siguiente JoinPed, sino puedes Dirijirte a OnPlayerText y Buscar los "case":

pawn Код:
switch (SelectCharID[playerid])
{
case 1: //Police Force
{ etc..
Vamos hasta el ultimo de los Case, osea el 11 y creamos otro case:
pawn Код:
case 11: //Driving/Flying School
{
if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[48][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[48][0]; }
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[49][0]); SelectCharPlace[playerid] = 3; ChosenSkin[playerid] = JoinPed[49][0]; }
else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, JoinPed[50][0]); SelectCharPlace[playerid] = 4; ChosenSkin[playerid] = JoinPed[50][0]; }
else if(SelectCharPlace[playerid] == 4) { SetPlayerSkin(playerid, JoinPed[51][0]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = JoinPed[51][0]; }
}
case 12: //Nuestra Faccion
if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[48][0]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = JoinPed[52/*Se debe poner 1 mas q el maximo de la faccion anterior*/][0]; }
}
return 0;
}
Paso 3.
Nos Dirijimos a SetPlayerSpawn, veremos muchos "If" buscaremos este:
pawn Код:
if(IsAnInstructor(playerid)) //Driving/Flying School spawn
{
if(SchoolSpawn[playerid] == 0)
{
SetPlayerToTeamColor(playerid);
SetPlayerPos(playerid, -2032.6810,-117.4816,1035.1719);
SetPlayerFacingAngle(playerid, 275.1114);
SetPlayerInterior(playerid,3);
PlayerInfo[playerid][pInt] = 3;
}
else if(SchoolSpawn[playerid] == 1)
{
SetPlayerToTeamColor(playerid);
SetPlayerPos(playerid, 414.4144,2531.9580,19.1565);
SetPlayerFacingAngle(playerid, 4.6505);
SetPlayerInterior(playerid,0);
PlayerInfo[playerid][pInt] = 0;
}
return 1;
}
Crearemos otro if como este:
pawn Код:
if (PlayerInfo[playerid][pMember] == 12/*Numero de la Faccion*/ || PlayerInfo[playerid][pLeader] == 12) //Estos son los Spawn de nuestra faccion
{
SetPlayerToTeamColor(playerid);
SetPlayerPos(playerid, X,Y,Z);
SetPlayerInterior(playerid,0);
PlayerInfo[playerid][pInt] = 0;
return 1;
}
Nota: Cada ves que creemos una faccion debemos sumarle 1 mas la faccion anterior, osea Faccion Anterior (ej: 12) + 1 = 13 (la siugiente faccion seria la 13)

Paso 4.
Nos dirijimos a ShowStats(playerid,targetid) y Buscamos estos If:
pawn Код:
if(PlayerInfo[targetid][pMember] == 4 || PlayerInfo[targetid][pLeader] == 4) { ttext = "Medico"; }
else if(gTeam[targetid] == 3 || gTeam[targetid] == 4) { ttext = "Civiles"; }
else if(PlayerInfo[targetid][pMember] == 1 || PlayerInfo[targetid][pLeader] == 1) { ttext = "Oficial"; }
else if(PlayerInfo[targetid][pMember] == 2 || PlayerInfo[targetid][pLeader] == 2) { ttext = "Agente FBI"; }
else if(PlayerInfo[targetid][pMember] == 3 || PlayerInfo[targetid][pLeader] == 3) { ttext = "Guarda Naiona"; }
else if(PlayerInfo[targetid][pMember] == 4 || PlayerInfo[targetid][pLeader] == 4) { ttext = "Bomberos"; }
else if(PlayerInfo[targetid][pMember] == 5 || PlayerInfo[targetid][pLeader] == 5) { ttext = "LCN"; }
else if(PlayerInfo[targetid][pMember] == 6 || PlayerInfo[targetid][pLeader] == 6) { ttext = "Yakuza"; }
else if(PlayerInfo[targetid][pMember] == 8 || PlayerInfo[targetid][pLeader] == { ttext = "Hitmen"; }
else if(PlayerInfo[targetid][pMember] == 9 || PlayerInfo[targetid][pLeader] == 9) { ttext = "Reporteros"; }
else if(PlayerInfo[targetid][pMember] == 10 || PlayerInfo[targetid][pLeader] == 10) { ttext = "Taxistas"; }
else if(PlayerInfo[targetid][pMember] == 11 || PlayerInfo[targetid][pLeader] == 11) { ttext = "Licencieros"; }
Le agregaremos otro mas:
pawn Код:
else if(PlayerInfo[targetid][pMember] == 12/*Recuerden el NUmero de la Faccion*/ || PlayerInfo[targetid][pLeader] == 12) { ttext = "Nombre Faccion"; }
Paso 5.

Si bajamos unas cuantas lineas encontraremos algunos if como este:
pawn Код:
if(gTeam[targetid] == 5 || PlayerInfo[targetid][pFMember] < 255)//The 2 Organisations
{
Pues bien son los Rangos de nuestra faccion bajaremos y agregaremos un nuevo if como este:
pawn Код:
else if(PlayerInfo[targetid][pMember] == 12 || PlayerInfo[targetid][pLeader] == 12)
{
if(PlayerInfo[targetid][pRank] == 1) { rtext = "En Entrenamiento"; }
else if(PlayerInfo[targetid][pRank] == 2) { rtext = "Sargento"; }
else if(PlayerInfo[targetid][pRank] == 3) { rtext = "General"; }
else { rtext = "En Entrenamiento"; }
Paso 6.

Bien ya estamos terminando buscaremos el comando /invite y pondremos esto:
pawn Код:
else if(PlayerInfo[playerid][pLeader] == 12) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Faccion"; ChosenSkin[para1] = 294(Skin del Jefe); SetPlayerSkin(para1,294(Skin del Jefe)); }
Bueno eso va despues de los muchos If y else if que hay ahi
}

Ultimo Paso.
else if(level == 12) { PlayerInfo[para1][pChar] = 294 (Skin del Jefe); } //

Eso es lo ultimo, se encuentra en el comando /makeleaker.Debemos agregarlo despues de los If y Else If q hay ahi.

Extra:

Implementar Comando /f o /familia

Nos Dirijimos a nuestro comando /f y buscamos el ultimo if(member==**)
Agregamos otro If pero que aumente el numero de igualacion, en nuestro caso: 12:
pawn Код:
if(member==12)
{
Una ves hecho esto agregaremos los rangos que pusimos antes, este es un ejemplo:
pawn Код:
if(PlayerInfo[playerid][pRank] == 5) { format(string, sizeof(string), "**(( Jefa %s: %s. ))**", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 4) { format(string, sizeof(string), "**(( Lady %s: %s. ))**", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 3) { format(string, sizeof(string), "**(( Seсorita %s: %s. ))**", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 2) { format(string, sizeof(string), "**(( Novata %s: %s. ))**", sendername, result); }
else if(PlayerInfo[playerid][pRank] == 1) { format(string, sizeof(string), "**(( Aspirante %s: %s. ))**", sendername, result); }
else { format(string, sizeof(string), "**(( Aspirante %s: %s. ))**", sendername, result); }
SendFamilyMessage(PlayerInfo[playerid][pMember], TEAM_BLUE_COLOR, string)
Tienes q cambiarle los rangos, etc...

Al hacer esto tambien debes agregar otro if un poco mas abajo:
if(leader==**)
Le agregas uno con el numero de la faccion y con el siguiente codigo: (es un ejemplo)
pawn Код:
format(string, sizeof(string), "**(( Jefa %s: %s. ))**", sendername, result);
SendFamilyMessage(PlayerInfo[playerid][pLeader], TEAM_AZTECAS_COLOR, string);
Tutorial De Roymer. ( o de quien sea )

Ahora, Como Agregar Vehiculos A las Facciones?
Empezare:

Creamos Un Forward, con el id o lo que sea xD!
Ejemplo:
pawn Код:
forward ejemplo(carid);
Luego, Una Callback con los Vehiculos:
pawn Код:
public yakuza(carid)
{
    if((carid >= ejemplo) && (carid <= Hasta))
    {
        return 1;
    }
    return 0;
}
Explico:
"Desde": Seria el Id del Auto desde donde empesaria los autos de la faccion
"Hasta": Seria Donde Terminara del "Desde" xD!!!!!!
Ejemplo:
pawn Код:
public ejemplo(carid)
{
    if((carid >= 305) && (carid <= 311))
    {
        return 1;
    }
    return 0;
}
Los Autos de mi faccion serian desde el id 305 hasta el id 311.

Luego, Agregamos un If en
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
Con la Siguiente Funcion:
pawn Код:
if(ejemplo(newcar))
        {
          if(PlayerInfo[playerid][pMember] == IDdeFaccion||PlayerInfo[playerid][pLeader] == IDdeFaccion) { }
          else {
             RemovePlayerFromVehicle(playerid);
          SendClientMessage(playerid, COLOR_GREY,"Usted no pertenece a esta faccion.");}
        }
y Listo!!!!!

PD: Lee la PD 2

PD2: Lee la PD 3

PD3: No se Explicar Muy Bien :S


Espero que les sirva.
Reply
#2

Jajajaja, tienes razуn amigo no te sabes explicar bien... Yo no vi en ningъn lado el ''desde'' xDDD
Pero todos te entendemos!
Una pregunta, como invito a los demбs a mi facciуn? Puedo usar /invite, pero aparece esto (That player is currently Wanted / a Different Team / or already a Family Member.)
Y segъn al que invitй dice que no le aparece nada...
A ver, mas preguntas...
a) Cуmo pongo un Skin para cada uno de los rangos?
b) Cуmo pongo vehiculos por sн, no desde el nъmero tal hasta tal. Sino el vehiculo 3 y el 8 y los intermedios no.
PD: Le la pd 2
PD2: Me hizo gracia eso xd
Reply
#3

men me podrias ayudar esque me sale un error
Reply
#4

Umm... Yo solo es por aportar, pero si tienes un error y no nos lo dices como quieres que te lo arreglemos? :S
Reply
#5

bueno mi error esque cuando copilo, teniendo todo lo del tuto, me sale error que me dice que borre todos los playertopoin
Reply
#6

A lo mejor es que no tienes definido "Playertopoint"
pawn Код:
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);//arriba del todo
pawn Код:
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)//abajo del todo despuйs del ultimo "}"
{
  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);
        //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
        if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
        {
            return 1;
        }
    }
    return 0;
}
Reply
#7

gracias
Reply
#8

Quote:
Originally Posted by leoals
gracias
De nada, aquн estamos para ayudar.
Reply
#9

Quize agregar una faccion de mafia rusa al sv de LA-RP pero cuando termine de hacer la faccion le di compilar y no compila la venta de compilacion se queda en blanco alguien me ayuda?
Reply
#10

Puede que te saltases algъn "}" o "{"
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)