Maese Fys

12/02/2006 14:05:28

Necesito saber cual es el comando que se introduce en el script para que una subraza empiece en un sitio determinado-.

Asias

Fys

12/02/2006 17:19:20

Aqui tienes un script de ejemplo, donde se realizan saltos apuntos de ruta segun raza y subraza y se modifican los comportamientos de las facciones con el PJ.

[code:1:9ae7daefc6]
//******************************************************************************
// Nombre: area_onenter_pj
// Descripcion: Script para que cuando un PJ entre al mundo sea conducido a su
// portal que le dara acceso a ciertas partes del mundo segun su
// raza. Tambien ajustara su reputacion con las distintas
// facciones.
// Autor: Tomas Gomez
//******************************************************************************

#include "sdr_inc"
#include "sistemas_ro_cfg"
#include "nw_i0_tool"

void main()
{
object oPC = GetEnteringObject();
int nRace = GetRacialType(oPC);

//**************************************************************************
//* Sistema de entrada personalizado
//**************************************************************************
object oObjetoSEP = GetItemPossessedBy(oPC, "sep");
if(GetIsObjectValid(oObjetoSEP))
{
string sResRefSEP = GetResRef(oObjetoSEP);
object theWaypoint = GetWaypointByTag("CF_PE_Especiales");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
if(GetSubString(sResRefSEP, 5, 3) == "nnt") return; //Neutral a todo
}
//**************************************************************************

//Dungeon Master
if(GetIsDM(oPC))
{
object theWaypoint = GetWaypointByTag("NW_POSDM");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
}
//Enanos Escudos, Dorados y por defecto.
if ((nRace == RACIAL_TYPE_DWARF && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 6) == "escudo") ||
(nRace == RACIAL_TYPE_DWARF && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 6) == "dorado") ||
(nRace == RACIAL_TYPE_DWARF && GetSubRace(oPC) == ""))
{
object theWaypoint = GetWaypointByTag("NW_POSTEnanos");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Enanos buenos y neutrales les salen hostiles todos los Drows PNJs
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD || GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensorDrow"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionFaenTlabbar"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionOblodra"),-100);
}
}
//Enanos Duergar.
if (nRace == RACIAL_TYPE_DWARF && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 7) == "duergar")
{
object theWaypoint = GetWaypointByTag("NW_POSTDuergars");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Duergars malvados y neutrales les salen hostiles los guardias de superficie PNJs
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL || GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensor"),-100);
}
}
//Elfos Lunares, Solares, Salvajes, del Bosque y por defecto.
if ((nRace == RACIAL_TYPE_ELF && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 5) == "lunar") ||
(nRace == RACIAL_TYPE_ELF && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 5) == "solar") ||
(nRace == RACIAL_TYPE_ELF && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 7) == "salvaje") ||
(nRace == RACIAL_TYPE_ELF && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 6) == "bosque") ||
(nRace == RACIAL_TYPE_ELF && GetSubRace(oPC) == ""))
{
object theWaypoint = GetWaypointByTag("NW_POSTElfos");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Elfos les salen hostiles todos los Drows PNJs
AdjustReputation(oPC,GetObjectByTag("FaccionDefensorDrow"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionFaenTlabbar"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionOblodra"),-100);
}
//Elfos Drow.
if (nRace == RACIAL_TYPE_ELF && GetStringLowerCase(GetSubRace(oPC)) == "drow")
{
object theWaypoint = GetWaypointByTag("NW_POSTDrows");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Elfos Drows malvados y neutrales les salen hostiles guardias superficie PNJs
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL /*|| GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL*/)
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensor"),-100);
}
}
//Gnomos de las Rocas y por defecto.
if ((nRace == RACIAL_TYPE_GNOME && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 4) == "roca") ||
(nRace == RACIAL_TYPE_GNOME && GetSubRace(oPC) == ""))
{
object theWaypoint = GetWaypointByTag("NW_POSTGnomos");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Gnomos buenos y neutrales les salen hostiles todos los Drows PNJs
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD || GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensorDrow"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionFaenTlabbar"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionOblodra"),-100);
}
}
//Gnomos de las Profundidades.
if (nRace == RACIAL_TYPE_GNOME && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 11) == "svirfneblin")
{
object theWaypoint = GetWaypointByTag("NW_POSTSwirfneblin");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Gnomos de las Profundidades buenos y neutrales les salen hostiles todos los Drows PNJs
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD || GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensorDrow"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionFaenTlabbar"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionOblodra"),-100);
}
}
//Semielfo Drow y por defecto
if ((nRace == RACIAL_TYPE_HALFELF && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 9) == "mediodrow") ||
(nRace == RACIAL_TYPE_HALFELF && GetSubRace(oPC) == ""))
{
object theWaypoint = GetWaypointByTag("NW_POSTSemielfos");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Semielfo Drow y por defecto buenos y neutrales les salen hostiles todos los Drows PNJs
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD || GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensorDrow"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionFaenTlabbar"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionOblodra"),-100);
}
}
//Mediano Piesligeros, Fantasagaz, Fortecores y por defecto.
if ((nRace == RACIAL_TYPE_HALFLING && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 11) == "piesligeros") ||
(nRace == RACIAL_TYPE_HALFLING && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 10) == "fantasagaz") ||
(nRace == RACIAL_TYPE_HALFLING && GetStringLeft(GetStringLowerCase(GetSubRace(oPC)), 10) == "fortecores") ||
(nRace == RACIAL_TYPE_HALFLING && GetSubRace(oPC) == ""))
{
object theWaypoint = GetWaypointByTag("NW_POSTMediano");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Todos los medianos buenos y neutrales les salen hositles todos los Drows PNJs
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD || GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensorDrow"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionFaenTlabbar"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionOblodra"),-100);
}
}
//Semiorcos por defecto.
if (nRace == RACIAL_TYPE_HALFORC && GetSubRace(oPC) == "")
{
object theWaypoint = GetWaypointByTag("NW_POSTSemiorcos");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Todos los semiorcos buenos y neutrales les salen hositles todos los Drows PNJs
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD || GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensorDrow"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionFaenTlabbar"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionOblodra"),-100);
}
}
//Humanos por defecto.
if (nRace == RACIAL_TYPE_HUMAN && GetSubRace(oPC) == "")
{
object theWaypoint = GetWaypointByTag("NW_POSTHumanos");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
//Todos los humanos buenos y neutrales les salen hositles todos los Drows PNJs
if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD || GetAlignmentGoodEvil(oPC) == ALIGNMENT_NEUTRAL)
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensorDrow"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionFaenTlabbar"),-100);
AdjustReputation(oPC,GetObjectByTag("FaccionOblodra"),-100);
}
}
//*********************** Razas Especiales *********************************
//Avariel
if (nRace == RACIAL_TYPE_ELF && GetStringLowerCase(GetSubRace(oPC)) == "avariel")
{
object theWaypoint = GetWaypointByTag("CF_PE_Especiales");
AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint)));
}
//******************************************************************************
//* Saltos especiales
//******************************************************************************
//Si es un renegado salta al punto de cpmienzo de los humanos
if(HasItem(oPC, "Renegado"))
{
object theWaypoint = GetWaypointByTag("NW_POSTHumanos");
DelayCommand(0.5, AssignCommand(oPC, JumpToLocation(GetLocation(theWaypoint))));
}
//******************************************************************************
//* Condiciones especiales
//******************************************************************************
//
if(HasItem(oPC, "NoHostilidades"))
{
AdjustReputation(oPC,GetObjectByTag("FaccionDefensorDrow"), 50);
AdjustReputation(oPC,GetObjectByTag("FaccionFaenTlabbar"), 50);
AdjustReputation(oPC,GetObjectByTag("FaccionOblodra"), 50);
AdjustReputation(oPC,GetObjectByTag("FaccionDefensor"), 50);
}
}
[/code:1:9ae7daefc6]

Maese Fys

13/02/2006 01:49:07

Muchas gracias al, que el dia de san Valentin te llegue una rosita de agradecimiento desde Madrid.

Saludos

Fys

13/02/2006 16:17:02

Ahora que me fijo es un poco largo el script espero que te aclares :P y te ayude en algo.

Maese Fys

13/02/2006 20:40:39

Estoy intentando aprender, al fin y al cabo C++ no es tan complicado, jeje, si necesito alguna aclaracion ya te pregunta via mp o por aqui por el foro, asias de todos modos al

Fys

MenelvagorII

24/02/2006 22:27:27

Oye una cosa, y no podrías meter en ese scrip que las mejoras fueran no un bonificador, como si fuera un objeto, sino copiar el scrip original del nver que sube las características de manera permanente, vease un enano con su constitu, y su carísma redudicido.. porque así sería más a corde a la raza...

25/02/2006 14:33:11

Eso supone meterse a modificar 2das y varias cosas mas, y aun asi creo que no es sencillo, estube probando uno qu hiba asi, en la lista de razas que tienes al hacerte el personaje aparecian tambien el resto, como drow y demas pero al final te aplicaba una piel con lo que estabas igual.

Si nadie lo ha hecho hasta ahora es que no se puede, creo yo.

Maese Fys

25/02/2006 15:55:47

Tp creo que sea tan necesario XD