Saltar al contenido

Más en DLAN: Nuestras Traducciones | Otras Traducciones | Mods y modding | Revisiones y Guías | Videojuegos | Arte | Literatura | Rol y Rol por foro e IRC | Mapa de la web
Foto

NWNX2: Comentarios y dudas


49 respuestas al tema

#31 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 391 posts

Posteado 22 December 2014 - 03:16 PM

Aitor solo darte las gracias una vez más por este gran aporte, nunca deja de sorprenderme las posibilidades de este juego y con gente como tú explicando da gusto.


http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )


#32 El_Vara

El_Vara

    Neonato

  • Miembro
  • PipPip
  • 135 posts

Posteado 22 December 2014 - 05:56 PM

No podía estar más de acuerdo con LavaFuego.


Administrador del proyecto en marcha de Neverwinter Night 1: http://imperionwn.espana-foro.es/


#33 Rk.Sayan

Rk.Sayan

    Ancillae

  • Miembro
  • PipPipPip
  • 415 posts

Posteado 22 December 2014 - 06:42 PM

e o no, lo q decia, menudo regalo de navidad! :D



#34 feybrant

feybrant

    Humano

  • Miembro
  • Pip
  • 73 posts

Posteado 25 December 2014 - 04:19 PM

Excelente trabajo Althor, precisamente quería dentro de poco trastear de nuevo con las subrazas y quería hacer uso del Leto por NWNx, seguro que me es muy útil :D.

 

Muchas gracias.


Dragonlance Online

Servidor de rol evolutivo-interpretativo adaptado a NWN1 e inspirado en la saga de Dragonlance

 


#35 Rk.Sayan

Rk.Sayan

    Ancillae

  • Miembro
  • PipPipPip
  • 415 posts

Posteado 29 December 2014 - 05:32 AM

bueno primero q nada, q soy bastante noob en el tema, pero como no me puedo estar quieto, voy haciendo cosillas, solo queria aportar lo q pude descubrir x mi cuenta...

e modificado el ls_inc sin modificar lo que ya viene de serie (x si acaso) agregue 2 funciones nuevas (bueno son mas de 5 pero como sirven la lo mismo se reduce en 2)

e marcado asi //***********************************// apartir de donde modifico yo y termino

pero antes resumo: se trata de la funcion para quitar habilidades, ya que solo estaba la de poner,, y la de elegir que salvacion aumentar(enlugar de subir las 3 a la vez) y restar la misma, e intentado eliminar dotes pero eso aun no lo tengo claro...aki el script: No os olvideis de copllarlo tanto el onenter del modulo como el client leave, y los q lo demas q lo llamen(conversaciones, descencadenantes, etc)

#include "ls_config"


//--------------------------------DECLARATIONS--------------------------------//

string LetoSet(string sLocation,string sValue, string sType, int bAdd = TRUE);
string LetoAdjust(string sLocation, int nValue, string sType);
// This function bridges Letoscript into NWNX.
string LetoScript(string script);
// This function returns the bicfilename of the character specified.
string GetBicFileName(object oPC);
// This function finds the most recently edited .bic file in the player's folder,
// and applies whatever changes are conatained within the string of Letoscript. You must
// set the path to your servervault folder in the hgll_const_inc script for it to work.
// The easiest way to ensure that the ingame character is the most recently edited
// file is to save the character at least 3 seconds or more before calling this function.
void ApplyLetoScriptToPC(string Script, object oPC);
// This function tells Letoscript to add a stat point to the specified stat.
string AddStatPoint(int nStat);
// This function tells Letoscript to add a skill point to the specified skill.
string AddSkillPoint(int iSkill);
// This function tells Letoscript to add +1 to all the character's saving throws.
string ModifySaves();
// This function tells Letoscript to add the specified number of hit points to the character.
string AddHitPoints(int nHP, int nLevel);
// This function tells Letoscript to add the specified feat to the character, treating
// it as if he had gained it on character creation (level 0). This ensures that deleveling
// the character thus will not remove the feat.
string AddFeat(int iFeat = -1);


//----------------------------------FUNCTIONS---------------------------------//


//--------------------------FUNCTIONS TAKEN FROM DAR--------------------------//


string LetoScript(string script)
{
    SetLocalString(GetModule(), "NWNX!LETO!SCRIPT", script);
    return GetLocalString(GetModule(), "NWNX!LETO!SCRIPT");
}




string SetDocumentedLevel(int level = 1) {
    string script = "";
    if (PHOENIX)
        {
        if(level > -1) script = "<gff:set 'Lootable' {value="+IntToString(level)+"}>";
        }
    else
        {
        if(level > -1) script = "/Lootable = "+IntToString(level)+";";
        }
    return script;
}


string GetBicFileName(object oPC)
{
    string sChar, sBicName;
    string sPCName = GetStringLowerCase(GetName(oPC));
    int i, iNameLength = GetStringLength(sPCName);


    for(i=0; i < iNameLength; i++) {
        sChar = GetSubString(sPCName, i, 1);
        if (TestStringAgainstPattern("(*a|*n|*w|'|-|_)", sChar)) {
            if (sChar != " ") sBicName += sChar;
        }
    }
    return GetStringLeft(sBicName, 16);
}


//------------------------------FUNCTIONS ADDED-------------------------------//


void RepeatFloatingTextStringOnCreature(string sMensaje, object oTarget, int iSoloFaccion)
{
    DelayCommand(1.0, FloatingTextStringOnCreature(sMensaje, oTarget, iSoloFaccion));
    DelayCommand(3.0, FloatingTextStringOnCreature(sMensaje, oTarget, iSoloFaccion));
    DelayCommand(5.0, FloatingTextStringOnCreature(sMensaje, oTarget, iSoloFaccion));
    DelayCommand(7.0, FloatingTextStringOnCreature(sMensaje, oTarget, iSoloFaccion));
    DelayCommand(9.0, FloatingTextStringOnCreature(sMensaje, oTarget, iSoloFaccion));
}


void ApplyLetoScriptToPC(string Script, object oPC)
{
    string VaultPath = NWNPATH;
    string Player = GetPCPlayerName(oPC);
    string BicPath = VaultPath + Player + "/";
    string BicFile;
    if (PHOENIX)
        {
        BicFile = BicPath + GetBicFileName(oPC)+ ".bic";
        Script = "<file:open 1 <qq:"+BicFile+">>"+Script+"<file:save 1 <qq:"+BicFile+">><file:close 1>";
        }
    else
        {
        Script =
            "$RealFile = q<" + BicPath + "> + FindNewestBic q<" + BicPath + ">;" +
            "$EditFile = $RealFile + '.utc';" +
            "FileRename $RealFile, $EditFile;" +
            "%bic = $EditFile or die;" +
            Script +
            "%bic = '>';" +
            "close %bic;" +
            "FileRename $EditFile, $RealFile;";
        }
    SetLocalString(oPC, "LetoScript", Script);
    //DelayCommand(3.0f, ActivatePortal(oPC, "62.167.237.11:5122", "", "",TRUE));
    //DelayCommand(16.0f, BootPC(oPC));
    //DelayCommand(3.0f, ActivatePortal(oPC, "64.137.237.115:5121", "", "", TRUE));
    DelayCommand(16.0, RepeatFloatingTextStringOnCreature("Sal y entra para terminar de ajustar la raza.", oPC, TRUE));
}


string AddStatsPoints(int nStat, int nCantidad)
{
string sReturn;
switch (nStat)
    {
    case ABILITY_STRENGTH: sReturn = "Str"; break;
    case ABILITY_DEXTERITY: sReturn = "Dex"; break;
    case ABILITY_CONSTITUTION: sReturn = "Con"; break;
    case ABILITY_INTELLIGENCE: sReturn = "Int"; break;
    case ABILITY_WISDOM: sReturn = "Wis"; break;
    case ABILITY_CHARISMA: sReturn = "Cha"; break;
    default: return "";
    }
    if (PHOENIX)
        {
        return "<gff:set '"+sReturn+"' {value=(<"+sReturn+">+1)}>";
        }
    else
        {
        return "/"+sReturn+" = /"+sReturn+" + "+IntToString(nCantidad)+";";
        }
}


string AddSkillPoint(int iSkill) {string sSkill = IntToString(iSkill);if (PHOENIX){return
                                                    "<gff:set 'SkillList/["+sSkill+"]/Rank' {value=(<SkillList/["+sSkill+"]/Rank>+1)}>"+
                                                    "<gff:set 'LvlStatList/[0]/SkillList/["+sSkill+"]/Rank' {value=(<SkillList/["+sSkill+"]/Rank>+1)}>";}

                                                else{return
                                                    "/SkillList/["+sSkill+"]/Rank = /SkillList/["+sSkill+"]/Rank +1; "+
                                                    "/LvlStatList/[0]/SkillList/["+sSkill+"]/Rank = /SkillList/["+sSkill+"]/Rank +1; ";}}
//******************************************************************************************************************************************************//
//******************************************************************************************************************************************************//
//******************************************************************************************************************************************************//
//******************************************************************************************************************************************************//

string QuitaskillPoint(int iSkill) {string sSkill = IntToString(iSkill);if (PHOENIX){return
                                                    "<gff:set 'SkillList/["+sSkill+"]/Rank' {value=(<SkillList/["+sSkill+"]/Rank>-1)}>"+
                                                    "<gff:set 'LvlStatList/[0]/SkillList/["+sSkill+"]/Rank' {value=(<SkillList/["+sSkill+"]/Rank>-1)}>";}

                                                else{return
                                                    "/SkillList/["+sSkill+"]/Rank = /SkillList/["+sSkill+"]/Rank -1; "+
                                                    "/LvlStatList/[0]/SkillList/["+sSkill+"]/Rank = /SkillList/["+sSkill+"]/Rank -1; ";}}


string SalvReflejos()  {string sLeto;if (PHOENIX){sLeto = "<gff:set 'refbonus'  {type='byte' value=<gff:get 'refbonus'>+1}>";}
                                   else{sLeto = "/refbonus = /refbonus +1;";} return sLeto;}

string SalvFortaleza()  {string sLeto;if (PHOENIX){sLeto = "<gff:set 'fortbonus'  {type='byte' value=<gff:get 'fortbonus'>+1}>";}
                                  else{sLeto = "/fortbonus = /fortbonus +1;";} return sLeto;}

string SalvVoluntad()   {string sLeto;if (PHOENIX){sLeto = "<gff:set 'willbonus'  {type='byte' value=<gff:get 'willbonus'>+1}>";}
                                   else{sLeto = "/willbonus = /willbonus +1;";} return sLeto;}


string SalvReflejosN()  {string sLeto;if (PHOENIX){sLeto = "<gff:set 'refbonus'  {type='byte' value=<gff:get 'refbonus'>-1}>";}
                                   else{sLeto = "/refbonus = /refbonus -1;";} return sLeto;}

string SalvFortalezaN()  {string sLeto;if (PHOENIX){sLeto = "<gff:set 'fortbonus'  {type='byte' value=<gff:get 'fortbonus'>-1}>";}
                                   else{sLeto = "/fortbonus = /fortbonus -1;";} return sLeto;}

string SalvVoluntadN()   {string sLeto;if (PHOENIX){sLeto = "<gff:set 'willbonus'  {type='byte' value=<gff:get 'willbonus'>-1}>";}
                                   else{sLeto = "/willbonus = /willbonus -1;";} return sLeto;}

//******************************************************************************************************************************************************//
//******************************************************************************************************************************************************//
//******************************************************************************************************************************************************//
//******************************************************************************************************************************************************//





string ModifySaves()
{
    string sLeto;
    if (PHOENIX)
        {
        sLeto = "<gff:set 'fortbonus' {type='byte' value=<gff:get 'fortbonus'>+-1}>" +
                "<gff:set 'refbonus'  {type='byte' value=<gff:get 'refbonus'>-+}>" +
                "<gff:set 'willbonus' {type='byte' value=<gff:get 'willbonus'>-+}>";
        }
    else
        {
        sLeto = "/fortbonus = /fortbonus +1; /refbonus = /refbonus +1; /willbonus = /willbonus +1; ";
        }
    return sLeto;
}




string AddHitPoints(int nHP, int nLevel)
{
int nLvlHPAddedAt;
string sLeto;
string sLvl;
string sHP = IntToString(nHP);
if (nLevel < 41)
    {
    nLvlHPAddedAt = 0;//we add the hp at a different level each level so that the 255 field limit is never reached - if it was, it would roll over, causing the loss of 255 hps
    }
else
    {
    nLvlHPAddedAt = nLevel - 40;
    }
sLvl = IntToString(nLvlHPAddedAt);
if (PHOENIX)
    {
    sLeto = "<gff:set 'HitPoints' {type='short' value=<gff:get 'HitPoints'>+" + sHP + "}>" +
            "<gff:set 'LvlStatList/["+sLvl+"]/LvlStatHitDie' {type='short' value=<gff:get 'LvlStatList/["+sLvl+"]/LvlStatHitDie'>+" + sHP + "}>" +
            "<gff:set 'MaxHitPoints' {type='short' value=<gff:get 'MaxHitPoints'>+" + sHP + "}>" +
            "<gff:set 'CurrentHitPoints' {type='short' value=<gff:get 'CurrentHitPoints'>+" + sHP + "}>" +
            "<gff:set 'PregameCurrent' {type='short' value=<gff:get 'PregameCurrent'>+" + sHP + "}>";
    }
else
    {
    sLeto = "/HitPoints = /HitPoints + " + sHP + "; ";
    sLeto += "/LvlStatList/[" + IntToString(nLvlHPAddedAt) + "]/LvlStatHitDie = /LvlStatList/[" + IntToString(nLvlHPAddedAt) + "]/LvlStatHitDie + " + sHP + "; ";
    sLeto += "/MaxHitPoints = /MaxHitPoints + " + sHP + "; ";
    sLeto += "/CurrentHitPoints = /CurrentHitPoints + " + sHP + "; ";
    sLeto += "/PregameCurrent = /PregameCurrent + " + sHP + "; ";
    }
return sLeto;
}


string AddFeat(int iFeat = -1)
{
    string sLeto;
    string sEnd;
    if(iFeat < 0) return "";
    if(iFeat > 763 && iFeat < 824)//Greater Ability Feats
        {
        if(iFeat <= 773)//CHA
            {
            if (PHOENIX)
                {
                sLeto = "<gff:set 'Cha' {value=(<Cha>+1)}>";
                }
            else
                {
                sLeto = "/Cha = /Cha + 1;";
                }
            }
        else if(iFeat <= 783)//CON
            {
            if (PHOENIX)
                {
                sLeto = "<gff:set 'Con' {value=(<Con>+1)}>";
                }
            else
                {
                sLeto = "/Con = /Con + 1;";
                }
            }
        else if(iFeat <= 793)//DEX
            {
            if (PHOENIX)
                {
                sLeto = "<gff:set 'Dex' {value=(<Dex>+1)}>";
                }
            else
                {
                sLeto = "/Dex = /Dex + 1;";
                }
            }
        else if(iFeat <= 803)//INT
            {
            if (PHOENIX)
                {
                sLeto = "<gff:set 'Int' {value=(<Int>+1)}>";
                }
            else
                {
                sLeto = "/Int = /Int + 1;";
                }
            }
        else if(iFeat <= 813)//WIS
            {
            if (PHOENIX)
                {
                sLeto = "<gff:set 'Wis' {value=(<Wis>+1)}>";
                }
            else
                {
                sLeto = "/Wis = /Wis + 1;";
                }
            }
        else // <= 823 STR
            {
            if (PHOENIX)
                {
                sLeto = "<gff:set 'Str' {value=(<Str>+1)}>";
                }
            else
                {
                sLeto = "/Str = /Str + 1;";
                }
            }
        }
    else
        {
        sLeto = "";
        }
    if (PHOENIX)
        {
        sEnd = "<gff:add 'FeatList/Feat' {type='word' value="+IntToString(iFeat)+"}>" +
               "<gff:add 'LvlStatList/[0]/FeatList/Feat' {type='word' value="+IntToString(iFeat)+"}>";
        }
    else
        {
        sEnd = "add /FeatList/Feat, type => gffWord, value => " + IntToString(iFeat) + ";" +
               "add /LvlStatList/[0]/FeatList/Feat, type => gffWord, value => " + IntToString(iFeat) + ";";
        }
    return sLeto + sEnd;
}

bueno ya sabeis copiar y pegar (seguro es x q no modifique nada del original, solo agregué)

 

para q funcionen os dejo un trozo de mi script para q os hagais una idea

#include "ls_inc" 
//x cierto lo meti en un deencadenante generico (en onenter)
void main()
{
object oPC = GetEnteringObject();
SendMessageToPC(oPC,"Leto en marcha");

string sFuerza1;    //caracteristicas ejemplo :  sFuerza1=AddStatsPoints(ABILITY_STRENGTH,   5);
string sDestreza1;
string sConstitucion1;
string sInteligencia1;
string sSabiduria1;
string sCarisma1;
//-----------------------//
string sVida10;         //vida ejemplo :        sVida10 = AddHitPoints(10, 10);}
//-----------------------//
string reflejos;   string reflejos_n;    //aki tuve que crear nuevas funciones(bueno... crearlas ejem.., hacer un negativo de las hechas y separarlas algo facil y logico de hacer//
string fortaleza;  string fortaleza_n;   //mas abajo se ve como se usan
string voluntad;   string voluntad_n;
//-----------------------//
string habilidad;  string habilidad_n;   // y aki cree un negativo para restar habilidades



reflejos  = SalvReflejos();     //con esto aumentas reflejos +1
//reflejos_n = SalvReflejosN();   //con esto restas reflejos -1  y asi con todos los demas en este caso esta desactivado para q no de y reste ala vez, sino nos qdamos =, ya cada uno...


fortaleza = SalvFortaleza();
//fortaleza_n = SalvFortalezaN();

//voluntad =  SalvVoluntad();
voluntad_n = SalvVoluntadN();

habilidad_n = QuitaskillPoint(SKILL_HIDE);    // resta habilidad esconderse 4 puntos
habilidad_n = habilidad_n + QuitaskillPoint(SKILL_HIDE);
habilidad_n = habilidad_n + QuitaskillPoint(SKILL_HIDE);
habilidad_n = habilidad_n + QuitaskillPoint(SKILL_HIDE);

habilidad = AddSkillPoint(SKILL_INTIMIDATE);    // sube habilidad intimidar 4 puntos
habilidad = habilidad + AddSkillPoint(SKILL_INTIMIDATE);
habilidad = habilidad + AddSkillPoint(SKILL_INTIMIDATE);
habilidad = habilidad + AddSkillPoint(SKILL_INTIMIDATE);


//recordar agregar ala lista lo que vais a aplicar, sino no haceis nada...
DelayCommand (0.5,ApplyLetoScriptToPC(sFuerza1+sDestreza1+sConstitucion1+sInteligencia1+sSabiduria1+sCarisma1+sVida10 +reflejos+ fortaleza_n  +voluntad_n +habilidad_n, oPC));
}

//Bueno en primer lugar, esto lo hice asi x q no super hacerlo mejor la verdad, separe las funciones en lugar de que se hagan los cambios de un solo "sleto"
//como estaba en un principio , por q en mi caso le meti un if pongo un ejemplo
 

 

if(GetAbilityScore(oPC,ABILITY_STRENGTH)<=5){SendMessageToPC(oPC,"Tu personaje es ILEGAL, se procederá a su eliminación.");DelayCommand (3.0,BorrarPJ());}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==6){sFuerza1=AddStatsPoints(ABILITY_STRENGTH,   5);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==7){sFuerza1=AddStatsPoints(ABILITY_STRENGTH,   4);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==8){sFuerza1=AddStatsPoints(ABILITY_STRENGTH,   3);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==9){sFuerza1=AddStatsPoints(ABILITY_STRENGTH,   2);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==10){sFuerza1=AddStatsPoints(ABILITY_STRENGTH,  1);}
//if(GetAbilityScore(oPC,ABILITY_STRENGTH)==11){sFuerza1=AddStatsPoints(ABILITY_STRENGTH,3);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==12){sFuerza1=AddStatsPoints(ABILITY_STRENGTH, -1);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==13){sFuerza1=AddStatsPoints(ABILITY_STRENGTH, -2);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==14){sFuerza1=AddStatsPoints(ABILITY_STRENGTH, -3);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==15){sFuerza1=AddStatsPoints(ABILITY_STRENGTH, -4);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==16){sFuerza1=AddStatsPoints(ABILITY_STRENGTH, -5);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==17){sFuerza1=AddStatsPoints(ABILITY_STRENGTH, -6);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==18){sFuerza1=AddStatsPoints(ABILITY_STRENGTH, -7);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==19){sFuerza1=AddStatsPoints(ABILITY_STRENGTH, -8);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)==20){sFuerza1=AddStatsPoints(ABILITY_STRENGTH, -9);}
if(GetAbilityScore(oPC,ABILITY_STRENGTH)>=21){SendMessageToPC(oPC,"Tu personaje es ILEGAL, se procederá a su eliminación.");DelayCommand (3.0,BorrarPJ());} 

 



// bueno, para el q no lo sepa, esto es para que el server en la entrada detecte cada punto asignado (en este caso a la fuerza), si el jugador se pone fuerza 16, el script x asi decirlo
//buscaria la linea de si tiene fuerza 16, y le resta  -5, dejandolo a 11, este trozo lo aplique a todas, es decir, el jugador ponga lo que se ponga en estadisticas
//todas se convertiran a 11, y si es un chetado q entra o con menos de fuerza 5, o con 21 o mas(cosa imposible salvo chetos), salta el mensajde q es ilegal y se le borra el pj
//esto es para capar la libertad, todos empiezan igual, con 11 en todas las caracteristicas, una vez dentro ya que hagan lo que quieran...

//una vez tengas todo claro solo te queda aplicarlo con esta linea
//DelayCommand (0.5,ApplyLetoScriptToPC(sFuerza1+sDestreza1+ETC+ ETC+ ETC+ y lo q le quieras poner, oPC));

 

Quitando este descubrimiento de noob total (prueba ensayo y error), enContre una pagina, q alo mejor nos exa un cable o nos ilumina un poco mas a todos los interesados aki presentes, haber si alguien la encuentra de provecho y nos puede explicar algo, yo estuve probando pero sin exito(sino tambien lo hubiese posteado

encontre nuevas funciones como lo de la CA NATURAL,  y lo de borrar dotes, RAZAS, incluso aumentar velocidad  natural del pj , pero x alguna razon no consigo que me sea compatible, si alguien lo consigue agradecidos estaremos!

 

PAGINA: http://www.nwnx.org/...b5f839cacab8d1a

 

y tambien encontre este post perdido x el foro, q no se le dio importancia en su dia, y lo e descubierto hace bien poco de se habla un poco de nwnx

http://www.clandlan....orial-de-nwnx2/


Editado por Rk.Sayan, 29 December 2014 - 05:57 AM.


#36 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 391 posts

Posteado 29 December 2014 - 01:26 PM

Si señor...al final se va a poder modificar un pj entero o hacerlo de cero gracias a ti, muchisimas gracias por mirarlo. Yo intenté mirar lo de la CA y ando más perdido que la leche


http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )


#37 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 391 posts

Posteado 31 December 2014 - 06:34 PM

Por cierto ¿alguien sabe modificar la ca del personaje? que entré en el foro de nwnx.org y no hay manera, y mira que he intentado cosas :histeria:


http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )


#38 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 391 posts

Posteado 01 January 2015 - 07:42 PM

Olvidaros de tanta parafernalia, después de pensar me dije...para que coños se necesita el letoscript para modificar la ca , a ver las características de los personajes se guarda en un objeto piel que en el juego aveces nos aparece en el inventario por causa rara llamado PC propeties, me di cuenta que si modificamos la piel se soluciona el tema:

 

aquí pongo el script (que es el que usaba antaño para la herreria para subir ataque propiedades etc a los objetos)

 
//////LAVAFUEGO MODIFICACION CA ///////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
 
void main()
{
object oPC=GetEnteringObject();
object oPiel = GetItemInSlot(INVENTORY_SLOT_CARMOUR,oPC);
int inicial=0;//tambien se puede poner---> int inicial;
itemproperty propiedad  =GetFirstItemProperty(oPiel);
while (GetIsItemPropertyValid(propiedad))
   {
    if (GetItemPropertyType(propiedad)== ITEM_PROPERTY_AC_BONUS)
      {
       inicial=GetItemPropertyCostTableValue(propiedad);
       RemoveItemProperty(oPiel,propiedad);
      }//fin if
 
    propiedad =GetNextItemProperty(oPiel);
   }//fin while
 
itemproperty propiedadNueva=ItemPropertyACBonus(inicial+3);
AddItemProperty(DURATION_TYPE_PERMANENT, propiedadNueva,oPiel);
 
}//fin void main
 
He testeado y me va sin problemas, el script esta echo así porque hay que borrar la propiedad anterior y meter la nueva con el nuevo valor, que mis quebraderos de cabeza me dio en su día, intentando subir de un +4 a un +5 en una espada, aún lo tengo grabado en mi mente jaja

Editado por lavafuego, 05 January 2015 - 06:22 PM.

http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )


#39 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 391 posts

Posteado 06 January 2015 - 01:57 PM

Me pondré a mirar también con tiempo el tema este de las pieles, porque si eres capaz de cambiar todo lo que hace el nwnx por script sin tener que salir y entrar etc creo que es mas fácil hacer modificación vía script en piel y dejar el nwnx para borrar pjs y cosas así 


http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )


#40 Rk.Sayan

Rk.Sayan

    Ancillae

  • Miembro
  • PipPipPip
  • 415 posts

Posteado 07 January 2015 - 02:38 AM

si, esta opción estaba, pero es limitada, ejemplo dotes solo te deja algunas , no todas.

y en caso de bonificadores imagino que no te deja poner mas de +12 tipo fuerza y eso.

 

lo q busco con el NwnX es averiguar como se borra una dote de un jugador que ya se la a puesto, y cambiarle la clase para por ejemplo q no hayan magos, si el if detecta q es mago, se lo cambie a guerrero x ejemplo., y lo mismo con la raza.

 

x otro lado en un post de Kabuto entontre esto:

 

Si quieres añadir una lineay anularla, para tenerla anulada pero no perder la informacion por si un dia la quieres tener a mano en el mismo ini, pues pones delante de la linea un ;, de esta manera

hide_charlist_all = 0 # Hide the whole online characters list on login
hide_charlist_levels = 0 # Hide the class(es) (displays nothing instead of class list)
hide_charlist_portraits = 0 # Hide the portrait (shows default male/female portrait)
hide_charlist_dms = 0 # Should be self-explanatory

Tambien tienes mas cositas curiosas te pongo las que recuerdo con certeza ahora mismo.

cap_ability_inc = 12
//Este serviria para incrementar los margenes maximos del bonificador de caracteristica
cap_atkbonus_inc = 20
//Este serviria para incrementar los margenes maximos del bonificador de ataque por conjuro, objeto o bono añaditivo
cap_skill_inc = 50
//Este serviria para incremantar los margenes maximos de bonificador de habilidad por objeto y bono añaditivo
 

algo muy util , no lo e probado aun pero me figuro q funcionará, pero no se muy bien que plugin activa esto, y no tengo claro de si el jugador cliente tiene q tener algo para q le surja efecto(o solo el servidor basta)(con el leto y el borrado de plugins esta claro q no hace falta q el jugador cliente tenga nada, ¿pero con esto será lo mismo?



#41 AlthorDeMalavir

AlthorDeMalavir

    Neonato

  • Miembro
  • PipPip
  • 100 posts

Posteado 07 January 2015 - 08:34 PM

cap_ability_inc y demás son configuraciones de uno de los plugins del tutorial, te permiten subir y bajar el límite de bono de característica, ataque y habilidad, para todos los personajes en general.


YourServerList.com Listado de servidores de Minecraft, Neverwinter Nights 1 y 2 y Terraria.


#42 El_Vara

El_Vara

    Neonato

  • Miembro
  • PipPip
  • 135 posts

Posteado 07 January 2015 - 09:19 PM

Althor me he encontrado un problema al pasar el servidor al host y es el siguiente:

 

Configuro el nwn leto para que me suba el mod x y cuando lanza el nwnserver no lo lanza, ni se elije... la casilla está en blanco y hay que ponerlo manualmente.

 

¿A que se puede deber?


Administrador del proyecto en marcha de Neverwinter Night 1: http://imperionwn.espana-foro.es/


#43 AlthorDeMalavir

AlthorDeMalavir

    Neonato

  • Miembro
  • PipPip
  • 100 posts

Posteado 07 January 2015 - 09:56 PM

Será porque no pones bien el nombre del módulo, no pongas el .mod, solo el nombre del archivo sin el .mod


YourServerList.com Listado de servidores de Minecraft, Neverwinter Nights 1 y 2 y Terraria.


#44 Rk.Sayan

Rk.Sayan

    Ancillae

  • Miembro
  • PipPipPip
  • 415 posts

Posteado 20 January 2015 - 03:24 AM

Althor q no se nos a olvidado eh, xD aunke la gente no escriba nada seguro q sigue interesada en el tutorial, cuando te venga bien ,claro , sin agobios sin prisas , cuando no sepas q hacer con algun tiempo q t sobre, estaremos encantados de leerte :thumb:



#45 El_Vara

El_Vara

    Neonato

  • Miembro
  • PipPip
  • 135 posts

Posteado 25 January 2015 - 10:18 PM

Arreglé eso, no tenía bien pasada la carpeta override xD. Y sí seguimos aquí agazapados contra el foro a ver si nos iluminas el alba.


Administrador del proyecto en marcha de Neverwinter Night 1: http://imperionwn.espana-foro.es/




Responder



  


A Bragol. Tus amigos te echan de menos.