|
|
Negozio gnomico di armi ed armature
"Gentile messere, la gilda dei tecnocrati č gestita da noi gnomi. Il concilio tecno-logico ha appena inventato una macchina che produce oggetti magici... si inserisce una normale spada da un lato ed esce dall'altro lato, migliorata nella forma ed incantata. ...Lei dice che diventeremo smodatamente ricchi? Bč, non proprio...il problema č che gli oggetti in uscita, per forma e proprietą, sono assolutamente casuali, per cui spesso i componenti materiali che la macchina consuma per creare l'incantamento costano pił dell'oggetto in uscita. Si, dice bene messere...questo non ha reso felici gli addetti alle vendite, ma non preoccupatevi, il prossimo modello sarą senza dubbio meglio. Intanto vuole vedere la nostra produzione di oggi?"
Necessario almeno CEP 1.68 Dovrebbe funzionare anche con CEP 2, ma non ho testato.
Come avrete intuito, il negozio gnomico produce oggetti casuali per forma, colore, numero, potenza e tipo di incantamento. Il negozio funziona, in gioco, esattamente come descritto sopra: in tavolozza ci sono tutti gli oggetti standard, che vengono selezionati, modificati randomicamente per forma e colore e successivamente incantati, anche qui in modo randomico, ma dipendente, in generale, comunque dal livello del PG. Anche il nome degli oggetti viene creato al momento, in base agli incantamenti ricevuti. gli step di livello in questo negozio sono 1/6 - 7/12 - !3/18 - 19+
Il negozio produce armi, armature, elmi e scudi. Attivando alcune righe aggiuntive puņ produrre anche armi da lancio e munizioni. (vedi sotto)
Il negozio si resetta ogni 24 ore, allo scadere della mezzanotte, e ricrea un nuovo set di oggetti.
L'erf contiene il vendor, il negozio, un barile, un attivatore ed i 97 oggetti usati come base per creare le loro controparti incantate Gli oggetti, una volta importato l'erf, si trovano, in tavolozza, tutti nei rispettivi "custom/personalizzato/1" il barile non č cliccabile e serve al sistema come contenitore di passaggio, per fare in modo che, nel negozio, gli oggetti risultino sempre ordinati per tipo e senza spazi vuoti.
ISTRUZIONI
Importare l'erf Nel negozio mettere il vendor, il negozio ed il barile mettere l'attivatore a coprire tutta l'area, oppure, se in esterno attorno al negozio, con un pņ di spazio utile.
BONUS
Alle righe 479 e 653 c'č il simbolo /* che serve a disattivare una parte di script: cancellando i due simboli la riattiverete. Quella parte di codice serve ad aggiungere al negozio anche le armi da lancio ed i proiettili, tuttavia questi oggetti non vengono creati random come gli altri, ma presi dalla tavolozza standard. Anche questi, comunque, vengono selezionati random in base al livello del PG. Decidedete voi se li volete nel negozio, oppure no.
Nello script c'č anche questa riga
if(GetLocalInt(OBJECT_SELF,"market")){HD=1;}
Per fare funzionare la riga in un negozio specifico, quindi, dovrete aggiungere, nelle variabili dell'attivatore
market - int - 1
Cosi il negozio terrą conto di un livello fisso (di default 1) e non pił del livello del pg Per variare quel livello dovrete cambiare il numero in {HD=1;} Il nuovo livello impostato, quindi, sarą valido per tutti i negozi con la int "market", mentre tutti gli altri continueranno a calcolare il livello del PG.
Questo puņ essere utile in caso desideriate avere negozi di alto livello solo in determinati posti. Per esempio, in una cittą, le bancarelle del mercato all'aperto potrebbero avere oggetti random di valore limitato, mentre il negozio di lusso avrebbe quelle migliori, che salgono anche di livello con il PG.
SCREENSHOTS
LO SCRIPT se volete farvi un'idea di come funziona il meccanismo gnomico
CODICE /////////////////// // Random Store /// // by magobargle // /////////////////// ///// WEAPONS ///// ///////////////////
#include "x2_inc_itemprop"
void randomize(object oStore, object oPC) { object oBox=GetNearestObjectByTag("MB_box_weapon"), oItemA,oItemB,oItemC,oItemD,oItemE,oItemF,oItemG,oItemX,oItemY, oArmA,oArmB,oArmC,oArmD,oArmE,oArmF,oArmG,oArmY, oElm,oElmA,oElmB,oElmC,oElmD,oElmE,oElmF, oShield; int A,B,D,a,b,tipo,i,n,na,v,s,sh,shx,al,HD=GetHitDice(oPC), nn=d8()+6, ii=7+d10(), vv=d8()+4, ss=d4()+4, D8=d4()+4, D12=d8()+4; string S,Se,T,P,G,cTag,RR,TAG="mb_ginko", ABY,SKY,REG,LUM,LIB,DRK,SPD,TRU,SPL, sh1,sh2,sh3,sh4,sh5;
if(GetLocalInt(OBJECT_SELF,"market")){HD=1;} // i mercati all'aperto sono sforniti rispetto ai negozi
////////// // ARMI // //////////
while(i<ii) { if (HD<=6) {D=Random(65)+1; na=9;} else if((HD>6)&&(HD<=12)) {D=Random(85)+1; na=8;} else if((HD>12)&&(HD<=18)){D=Random(95)+1; na=7;} else {D=Random(100)+1; na=6;}
i++;
int Dinc=d10(), // incantesimo tipo=Random(29)+1; // armi
if (D<35) {B=3;} else if((D>=35)&&(D<60)) {B=4;} else if((D>=60)&&(D<80)) {B=5;} else if((D>=80)&&(D<90)) {B=6;} else if((D>=90)&&(D<96)) {B=7;} else if (D>=96) {B=8;}
oItemA=CreateItemOnObject("mb_rw_"+IntToString(tipo),oBox,1,TAG); IPUpgradeWeaponEnhancementBonus(oItemA,B); // bonus potenziamento
if(d10()+1>na) { int DT=Random(9)+1, DTx; // tipo di danno if(DT==1){DTx=IP_CONST_DAMAGETYPE_ACID; S=" dissolvente";} else if(DT==2){DTx=IP_CONST_DAMAGETYPE_COLD; S=" invernale";} else if(DT==3){DTx=IP_CONST_DAMAGETYPE_DIVINE; S=" celestiale";} else if(DT==4){DTx=IP_CONST_DAMAGETYPE_ELECTRICAL; S=" scintillante";} else if(DT==5){DTx=IP_CONST_DAMAGETYPE_FIRE; S=" rovente";} else if(DT==6){DTx=IP_CONST_DAMAGETYPE_MAGICAL; S=" ammaliante";} else if(DT==7){DTx=IP_CONST_DAMAGETYPE_NEGATIVE; S=" fatale";} else if(DT==8){DTx=IP_CONST_DAMAGETYPE_POSITIVE; S=" energetico";} else if(DT==9){DTx=IP_CONST_DAMAGETYPE_SONIC; S=" musicale";}
int DD=d10(), DDx; // quantita' di danno if((DD>=1)&&(DD<4)) {DDx=IP_CONST_DAMAGEBONUS_1d4;} else if((DD>=4)&&(DD<7)) {DDx=IP_CONST_DAMAGEBONUS_1d6;} else if((DD>=7)&&(DD<9)) {DDx=IP_CONST_DAMAGEBONUS_1d8;} else if (DD>=9) {DDx=IP_CONST_DAMAGEBONUS_1d10;}
IPSafeAddItemProperty(oItemA,ItemPropertyDamageBonus(DTx,DDx)); // bonus danno cTag="<c}’>";
int D10=d10(), NU; if (D10<7) {NU=IP_CONST_CASTSPELL_NUMUSES_1_USE_PER_DAY;} else if((D10>=7)&&(D10<10)){NU=IP_CONST_CASTSPELL_NUMUSES_2_USES_PER_DAY;} else if (D10==10) {NU=IP_CONST_CASTSPELL_NUMUSES_3_USES_PER_DAY;}
if(d10()>na) { int Cont=IPGetIsBludgeoningWeapon(oItemA); if(!Cont) // affilato { IPSafeAddItemProperty(oItemA,ItemPropertyKeen()); T=" tagliente"; cTag="<c’’>"; } else // critici massicci { IPSafeAddItemProperty(oItemA,ItemPropertyMassiveCritical(DDx));T=" frantumante"; cTag="<c’’>"; } if(d10()>na) // danno Vs razza { int IPDBVR=Random(26); if(IPDBVR==13){IPDBVR=d12();} IPSafeAddItemProperty(oItemA,ItemPropertyDamageBonusVsRace(IPDBVR,DTx,DDx)); P=" della punizione"; cTag="<c’>"; if(d10()>na) { if((Dinc==1)||(Dinc==2)) // incantesimi { IPSafeAddItemProperty(oItemA,ItemPropertyCastSpell(IP_CONST_CASTSPELL_FIREBALL_10,NU)); G=" esplosiva"; cTag="<c’>"; } else if((Dinc==3)||(Dinc==4)) { IPSafeAddItemProperty(oItemA,ItemPropertyCastSpell(IP_CONST_CASTSPELL_LIGHTNING_BOLT_10,NU)); G=" tempestosa"; cTag="<c’>"; } else if((Dinc==5)||(Dinc==6)||(Dinc==7)) { IPSafeAddItemProperty(oItemA,ItemPropertyCastSpell(IP_CONST_CASTSPELL_MAGIC_MISSILE_9,NU)); G=" infallibile"; cTag="<c’>"; } else if(Dinc==8) { IPSafeAddItemProperty(oItemA,ItemPropertyCastSpell(IP_CONST_CASTSPELL_ISAACS_LESSER_MISSILE_STORM_13,IP_CONST_CASTSPELL_NUMUSES_1_USE_PER_DAY)); G=" feroce"; cTag="<c’>"; } else if(Dinc==9) { IPSafeAddItemProperty(oItemA,ItemPropertyCastSpell(IP_CONST_CASTSPELL_PRISMATIC_SPRAY_13,IP_CONST_CASTSPELL_NUMUSES_1_USE_PER_DAY)); G=" crudele"; cTag="<c’>"; } else if(Dinc==10) { IPSafeAddItemProperty(oItemA,ItemPropertyCastSpell(IP_CONST_CASTSPELL_CONE_OF_COLD_15,IP_CONST_CASTSPELL_NUMUSES_1_USE_PER_DAY)); G=" glaciale"; cTag="<c’>"; } } else { G=""; cTag="<c’>"; } } else { P=""; cTag="<c’’>"; } } else { T=""; cTag="<c’>"; } } else{S=""; cTag="";}
if((tipo==14)||(tipo==25)||(tipo==27)) {A=1;} else if((tipo==23)||(tipo==24)||(tipo==26)) {A=d3();} else if((tipo==6) ||(tipo==7) ||(tipo==8)|| (tipo==12)||(tipo==13)||(tipo==15)|| (tipo==16)||(tipo==17)||(tipo==18)|| (tipo==20)||(tipo==21)||(tipo==22)|| (tipo==28)||(tipo==29)) {A=d4();} else if((tipo==3) ||(tipo=4)) {A=Random(5)+1;} else if((tipo==1) ||(tipo==5)||(tipo==9)|| (tipo==10)||(tipo==11)) {A=d6();} else if (tipo==19) {A=Random(7)+1;} else if (tipo==2) {A=Random(9)+1;}
oItemB=CopyItemAndModify(oItemA,ITEM_APPR_TYPE_WEAPON_MODEL,ITEM_APPR_WEAPON_MODEL_TOP,A); // modifica & colora DestroyObject(oItemA); oItemC=CopyItemAndModify(oItemB,ITEM_APPR_TYPE_WEAPON_MODEL,ITEM_APPR_WEAPON_MODEL_MIDDLE,A); DestroyObject(oItemB); oItemD=CopyItemAndModify(oItemC,ITEM_APPR_TYPE_WEAPON_MODEL,ITEM_APPR_WEAPON_MODEL_BOTTOM,A); DestroyObject(oItemC); oItemE=CopyItemAndModify(oItemD,ITEM_APPR_TYPE_WEAPON_COLOR,ITEM_APPR_WEAPON_COLOR_TOP,d4()); DestroyObject(oItemD); oItemF=CopyItemAndModify(oItemE,ITEM_APPR_TYPE_WEAPON_COLOR,ITEM_APPR_WEAPON_COLOR_MIDDLE,d4()); DestroyObject(oItemE); oItemG=CopyItemAndModify(oItemF,ITEM_APPR_TYPE_WEAPON_COLOR,ITEM_APPR_WEAPON_COLOR_BOTTOM,d4()); DestroyObject(oItemF); oItemX=CopyItem(oItemG,oStore); DestroyObject(oItemG);
SetDescription(oItemX,GetDescription(oItemX,FALSE,TRUE)+"\n\nQuesta "+GetName(oItemX)+" proviene da:\n"+GetName(GetArea(oPC)),TRUE); SetName(oItemX,GetName(oItemX)+" +"+IntToString(B)+cTag+S+T+P+G+"</c>"); S=""; T=""; P=""; G=""; cTag=""; }
///////////////////// ///// ARMATURE ////// /////////////////////
while(n<nn) { int num=Random(9), BB=0, ACB, Dacb; string nNum=IntToString(num), Type,Gend, B0,B1,B2,B3,B4,B5,B6,col;
if (HD<=6) {Dacb=d10()+2;} else if((HD>6)&&(HD<=12)) {Dacb=d10()+4;} else if((HD>12)&&(HD<=18)){Dacb=d10()+6;} else {Dacb=d10()+8;}
n++;
if(GetGender(oPC)==GENDER_MALE){Gend="";} else{Gend="f";}
oArmA=CreateItemOnObject("mb_ra_0"+nNum+Gend,oBox,1,TAG);
if (Dacb<5) {ACB=1;} else if((Dacb>=5)&&(Dacb<8)) {ACB=2;} else if((Dacb>=8)&&(Dacb<10)) {ACB=3;} else if((Dacb>=10)&&(Dacb<12)){ACB=4;} else if((Dacb>=12)&&(Dacb<14)){ACB=5;} else if((Dacb>=14)&&(Dacb<16)){ACB=6;} else if((Dacb>=16)&&(Dacb<18)){ACB=7;} else if (Dacb==18) {ACB=8;}
IPSafeAddItemProperty(oArmA,ItemPropertyACBonus(ACB)); B0="+"+IntToString(ACB)+" "; if (d10()>na){IPSafeAddItemProperty(oArmA,ItemPropertyDarkvision()); B1="notturna "; BB++;} if (d10()>na){IPSafeAddItemProperty(oArmA,ItemPropertyImprovedEvasion()); B2="evasiva "; BB++;} if (d10()>na){IPSafeAddItemProperty(oArmA,ItemPropertyFreeAction()); B3="della liberta' "; BB++;} if (d10()>na){IPSafeAddItemProperty(oArmA,ItemPropertyHaste()); B4="galoppante "; BB++;} if (d10()>na){IPSafeAddItemProperty(oArmA,ItemPropertyBonusSpellResistance(Random(6))); B5="spaccamaghi "; BB++;} if (d10()>na){IPSafeAddItemProperty(oArmA,ItemPropertyImmunityMisc(Random(9))); B6="immunizzante "; BB++;}
if(BB==0){col="";} else if(BB==1){col="<c’’>";} else if(BB==2){col="<c’>";} else if(BB==3){col="<c’’>";} else if(BB==4){col="<c’„>";} else if(BB==5){col="<c’>";}
if(num==0){Type="Cotta di panno ";} else if(num==1){Type="Cotta di pelle ";} else if(num==2){Type="Corazza di cuoio ";} else if(num==3){Type="Corazza di pelliccia ";} else if(num==4){Type="Corazza di maglia ";} else if(num==5){Type="Corazza di bande ";} else if(num==6){Type="Corazza di piastre ";} else if(num==7){Type="Mezza armatura ";} else if(num==8){Type="Armatura completa ";}
oArmB=CopyItemAndModify(oArmA,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_CLOTH1,Random(176)); DestroyObject(oArmA); oArmC=CopyItemAndModify(oArmB,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_CLOTH2,Random(176)); DestroyObject(oArmB); oArmD=CopyItemAndModify(oArmC,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_LEATHER1,Random(176)); DestroyObject(oArmC); oArmE=CopyItemAndModify(oArmD,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_LEATHER2,Random(176)); DestroyObject(oArmD); oArmF=CopyItemAndModify(oArmE,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_METAL1,Random(176)); DestroyObject(oArmE); oArmG=CopyItemAndModify(oArmF,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_METAL2,Random(176)); DestroyObject(oArmF); oArmY=CopyItem(oArmG,oStore); DestroyObject(oArmG);
SetName(oArmY,Type+B0+col+B1+B2+B3+B4+B5+B6+"</c>"); SetDescription(oArmY,GetDescription(oArmY,FALSE,TRUE)+"\n\nQuesta "+Type+"proviene da:\n"+GetName(GetArea(oPC)),TRUE); BB=0; B0=""; B1=""; B2=""; B3=""; B4=""; B5=""; B6=""; col=""; }
////////// // ELMI // //////////
while(v<vv) { v++; int CRL, CRF=d2(); string color,gemma;
oElm=CreateItemOnObject("mb_re_0"+IntToString(Random(29)),oBox,1,TAG);
int DE=d100(), CA; if (DE<50) {CA=3;} else if((DE>=50)&&(DE<80)){CA=4;} else if (DE>=80) {CA=5;}
if(d8()>=5) // bonus ca contro tipo di danno { CRL++; int abs=d3(), DmgT; if(abs==1){DmgT=IP_CONST_DAMAGETYPE_BLUDGEONING; Se="elastico ";} else if(abs==2){DmgT=IP_CONST_DAMAGETYPE_PIERCING; Se="piegapunte ";} else if(abs==3){DmgT=IP_CONST_DAMAGETYPE_SLASHING; Se="smussalame ";}
IPSafeAddItemProperty(oElm,ItemPropertyACBonusVsDmgType(DmgT,CA),0.0); } else{Se="";}
if(d8()>=7) // bonus char { CRL++; int D8=d8(), IPAB, Aby=Random(6);
if (D8<=5) {IPAB=1;} else if((D8>6)&&(D8<8)){IPAB=2;} else if (D8==8) {IPAB=3;}
if(Aby==0){ABY="forzuto ";} else if(Aby==1){ABY="agile ";} else if(Aby==2){ABY="resistente ";} else if(Aby==3){ABY="geniale ";} else if(Aby==4){ABY="savio ";} else if(Aby==5){ABY="seducente ";}
IPSafeAddItemProperty(oElm,ItemPropertyAbilityBonus(Aby,IPAB),0.0); }
if(d8()==8) // skill { CRL++; int Skill=Random(28); if(Skill==0){SKY="animalesco ";} else if(Skill==1){SKY="rilassante ";} else if(Skill==2){SKY="disarmante ";} else if(Skill==3){SKY="disciplinato ";} else if(Skill==4){SKY="curativo ";} else if(Skill==5){SKY="occultante ";} else if(Skill==6){SKY="orecchiuto ";} else if(Skill==7){SKY="rivelatore ";} else if(Skill==8){SKY="felpato ";} else if(Skill==9){SKY="scassinatore ";} else if(Skill==10){SKY="difensivo ";} else if(Skill==11){SKY="performante ";} else if(Skill==12){SKY="persuasivo ";} else if(Skill==13){SKY="malandrino ";} else if(Skill==14){SKY="esploratore ";} else if(Skill==15){SKY="affascinante ";} else if(Skill==16){SKY="bastardo ";} else if(Skill==17){SKY="rivelatore ";} else if(Skill==18){SKY="istigatore ";} else if(Skill==19){SKY="miritescente ";} else if(Skill==20){SKY="mercanteggiatore ";} else if(Skill==21){SKY="sfuggente ";} else if(Skill==22){SKY="tecnologico ";} else if(Skill==23){SKY="imbroglione ";} else if(Skill==24){SKY="minatorio ";} else if(Skill==25){SKY="ferraiolo ";} else if(Skill==26){SKY="ferraiolo ";} else if(Skill==27){SKY="cavallerizzo ";}
IPSafeAddItemProperty(oElm,ItemPropertySkillBonus(Skill,d10())); }
if(d10()==10) // rigenerazione { CRL++; IPSafeAddItemProperty(oElm,ItemPropertyRegeneration(d3())); REG="ristoratore "; }
if(d10()==10) // luce { CRL++; IPSafeAddItemProperty(oElm,ItemPropertyLight(d4(),Random(8))); LUM="luminifero "; }
if(d10()==10) // liberta' { CRL++; IPSafeAddItemProperty(oElm,ItemPropertyFreeAction()); LIB="movimentato "; }
if(d10()==10) // scurovisione { CRL++; IPSafeAddItemProperty(oElm,ItemPropertyDarkvision()); DRK="notturno "; }
if(d10()==10) // velocita' { CRL++; IPSafeAddItemProperty(oElm,ItemPropertyHaste()); SPD="scattante "; }
if(d10()==10) // visione del vero { CRL++; IPSafeAddItemProperty(oElm,ItemPropertyTrueSeeing()); TRU="occhialuto "; }
if(d8(2)==16) // cast spell { CRL++; int Rspell=Random(410); if ((Rspell==330)||(Rspell==331)||(Rspell==332)||(Rspell==333)||(Rspell==334)){Rspell=Random(330);} IPSafeAddItemProperty(oElm,ItemPropertyCastSpell(Rspell,7+d3())); SPL="fantasmagorico "; }
if (CRL==0) {color="";} else if((CRL==1)||(CRL==2)){color="<c’’>";} else if((CRL==3)||(CRL==4)){color="<c’>";} else if((CRL==5)||(CRL==6)){color="<c’’>";} else if((CRL==7)||(CRL==8)){color="<c’„>";} else if (CRL==9) {color="<c’>";} else if (CRL==10) {color="<c’’>";}
oElmA=IPDyeArmor(oElm,ITEM_APPR_ARMOR_COLOR_CLOTH1,Random(64)); oElmB=IPDyeArmor(oElmA,ITEM_APPR_ARMOR_COLOR_CLOTH2,Random(64)); oElmC=IPDyeArmor(oElmB,ITEM_APPR_ARMOR_COLOR_LEATHER1,Random(64)); oElmD=IPDyeArmor(oElmC,ITEM_APPR_ARMOR_COLOR_LEATHER2,Random(64)); oElmE=IPDyeArmor(oElmD,ITEM_APPR_ARMOR_COLOR_METAL1,Random(64)); oElmF=IPDyeArmor(oElmE,ITEM_APPR_ARMOR_COLOR_METAL2,Random(64));
oItemY=CopyItem(oElmF,oStore); DestroyObject(oElmF);
SetName(oItemY,"Elmo "+color+Se+ABY+SKY+REG+LUM+LIB+DRK+SPD+TRU+SPL); SetDescription(oItemY,GetDescription(oItemY,FALSE,TRUE)+"\n\nQuesto elmo proviene da:\n"+GetName(GetArea(oPC)),TRUE); ABY="";SKY="";REG="";LUM="";LIB="";DRK="";SPD="";TRU="";SPL="";color=""; }
/////////// // SCUDI // ///////////
while(s<ss) { if (HD<=6) {sh=0; shx=9;} else if((HD>6)&&(HD<=12)) {sh=1; shx=8;} else if((HD>12)&&(HD<=18)){sh=2; shx=7;} else {sh=3; shx=6;}
s++; int D6=d6(),ShldCA,CLRS=0; string CLRs;
if (D6<4) {ShldCA=1+sh;} else if((D6==4)||(D6==5)){ShldCA=2+sh;} else if (D6==6) {ShldCA=3+sh;}
oShield=CreateItemOnObject("mb_shld_"+IntToString(d20()),oBox,1); IPSafeAddItemProperty(oShield,ItemPropertyACBonus(ShldCA)); //CA bonus
if(d10()>shx) { IPSafeAddItemProperty(oShield,ItemPropertyDamageReduction(Random(7),d2()) ); //riduzione danno sh1=" assorbente"; CLRS++; }
if(d10()>shx) { int exc=Random(14); if ((exc==3)||(exc==4)){exc=Random(3);} IPSafeAddItemProperty(oShield,ItemPropertyDamageResistance(exc,d2())); //resistenza danno sh2=" resistente"; CLRS++; }
if(d10()>shx) { IPSafeAddItemProperty(oShield,ItemPropertyBonusSpellResistance(Random(6))); //resistenza magia sh3=" riflettente"; CLRS++; }
if(d10()>shx) { IPSafeAddItemProperty(oShield,ItemPropertyBonusSavingThrow(d3(),d4())); // TS sh4=" salvifico"; CLRS++; }
if(d10()>shx) { IPSafeAddItemProperty(oShield,ItemPropertyACBonusVsRace(Random(26),ShldCA+d3())); // AC vs sh5=" razzista"; CLRS++; }
if(CLRS==0){CLRs="";} else if(CLRS==1){CLRs="<c’’>";} else if(CLRS==2){CLRs="<c’>";} else if(CLRS==3){CLRs="<c’’>";} else if(CLRS==4){CLRs="<c’„>";} else if(CLRS==5){CLRs="<c’>";}
SetName(oShield,"Scudo +"+IntToString(ShldCA)+CLRs+sh1+sh2+sh3+sh4+sh5); SetDescription(oShield,GetDescription(oShield,FALSE,TRUE)+"\nQuesto uno scudo magico proviene da: "+GetName(GetArea(oPC)),TRUE); CLRS=0; CLRs=""; sh1=""; sh2=""; sh3=""; sh4=""; sh5=""; CopyItem(oShield,oStore); DestroyObject(oShield); }
//////////////////// // ARMI DA LANCIO // ////////////////////
/* // cancellare il simbolo /* per attivare armi da lancio e munizioni // sia qui che alla riga 653
if (HD<=6) {al=51;} else if((HD>6)&&(HD<=12)) {al=61;} else if((HD>12)&&(HD<=18)){al=71;} else {al=81;}
for(a=0; a<D8; a++) { switch(Random(al)+1) { case 1: RR="nw_wbwmsl001"; break; case 2: RR="nw_wbwmsh002"; break; case 3: RR="nw_wbwmxl002"; break; case 4: RR="nw_wbwmxh002"; break; case 5: RR="nw_wbwmln002"; break; case 6: RR="nw_wbwmsl009"; break; case 7: RR="nw_wbwmsh008"; break; case 8: RR="nw_wbwmxl008"; break; case 9: RR="nw_wbwmxh008"; break; case 10: RR="nw_wbwmln008"; break; case 11: RR="nw_wbwmsh010"; break; case 12: RR="nw_wbwmln010"; break; case 13: RR="nw_wbwmsl010"; break; case 14: RR="nw_wbwmsh009"; break; case 15: RR="nw_wbwmxl009"; break; case 16: RR="nw_wbwmxh009"; break; case 17: RR="nw_wbwmln009"; break; case 18: RR="nw_wbwmsl005"; break; case 19: RR="nw_wbwmxh005"; break; case 20: RR="nw_wbwmxl005"; break; case 21: RR="nw_wbwmsh011"; break; case 22: RR="nw_wbwmsh003"; break; case 23: RR="nw_wbwmln011"; break; case 24: RR="x0_wbwmsl001"; break; case 25: RR="x0_wbwmsh001"; break; case 26: RR="x0_wbwmxl001"; break; case 27: RR="x0_wbwmxh001"; break; case 28: RR="x0_wbwmln001"; break; case 29: RR="nw_wbwmln011"; break; case 30: RR="nw_wbwmsh006"; break; case 31: RR="nw_wbwmsl003"; break; case 32: RR="x0_wbwmsl002"; break; case 33: RR="x0_wbwmxl002"; break; case 34: RR="nw_wbwmxh003"; break; case 35: RR="x0_wbwmxh002"; break; case 36: RR="x0_wbwmln002"; break; case 37: RR="x0_wbwmsh002"; break; case 38: RR="nw_wbwmsh012"; break; case 39: RR="nw_wbwmln012"; break; case 40: RR="nw_wbwmxl003"; break; case 41: RR="nw_wbwmxl007"; break; case 42: RR="nw_wbwmsh007"; break; case 43: RR="x0_wbwmsh003"; break; case 44: RR="x0_wbwmln003"; break; case 45: RR="nw_wbwmxh004"; break; case 46: RR="nw_wbwmln007"; break; case 47: RR="nw_wbwmxh007"; break; case 48: RR="x0_wbwmsh004"; break; case 49: RR="x0_wbwmln004"; break; case 50: RR="nw_wbwmxl004"; break; case 51: RR="nw_wbwmsl007"; break; case 52: RR="nw_wbwmln006"; break; case 53: RR="x2_wbwmsl003"; break; case 54: RR="x2_wbwmsh005"; break; case 55: RR="x2_wbwmxl003"; break; case 56: RR="x2_wbwmxh003"; break; case 57: RR="x2_wbwmln005"; break; case 58: RR="nw_wbwmsl008"; break; case 59: RR="nw_wbwmsh005"; break; case 60: RR="nw_wbwmsl006"; break; case 61: RR="nw_wbwmln005"; break; case 62: RR="x2_wbwmsl004"; break; case 63: RR="x2_wbwmsh006"; break; case 64: RR="x2_wbwmxh004"; break; case 65: RR="x2_wbwmxl004"; break; case 66: RR="x2_wbwmln006"; break; case 67: RR="nw_wbwmxl006"; break; case 68: RR="nw_wbwmxh006"; break; case 69: RR="nw_wbwmsh004"; break; case 70: RR="nw_wbwmln003"; break; case 71: RR="nw_wbwmsl004"; break; case 72: RR="x2_wbwmsh007"; break; case 73: RR="x2_wbwmln007"; break; case 74: RR="x2_wbwmln010"; break; case 75: RR="x2_wbwmsh008"; break; case 76: RR="x2_wbwmln008"; break; case 77: RR="Flx2_wbwmsl005"; break; case 78: RR="x2_wbwmxl005"; break; case 79: RR="x2_wbwmxh005"; break; case 80: RR="x2_wbwmln009"; break; case 81: RR="x2_wbwmsh009"; break; } CreateItemOnObject(RR,oStore,1); }
/////////////// // MUNIZIONI // ///////////////
for(b=0; b<D12; b++) { switch(Random(39)+1) { case 1: RR="nw_wammar009"; break; case 2: RR="nw_wammar010"; break; case 3: RR="nw_wammar011"; break; case 4: RR="x2_wammar012"; break; case 5: RR="x2_wammar013"; break; case 6: RR="x2_wammar001"; break; case 7: RR="nw_wammar008"; break; case 8: RR="nw_wammar007"; break; case 9: RR="nw_wammar003"; break; case 10: RR="nw_wammar001"; break; case 11: RR="nw_wammar002"; break; case 12: RR="nw_wammar005"; break; case 13: RR="nw_wammar006"; break; case 14: RR="nw_wammar004"; break; case 15: RR="nw_wammbo008"; break; case 16: RR="nw_wammbo009"; break; case 17: RR="nw_wammbo010"; break; case 18: RR="x2_wammbo011"; break; case 19: RR="x2_wammbo012"; break; case 20: RR="x2_wammbo001"; break; case 21: RR="nw_wammbo007"; break; case 22: RR="nw_wammbo006"; break; case 23: RR="nw_wammbo002"; break; case 24: RR="nw_wammbo001"; break; case 25: RR="nw_wammbo005"; break; case 26: RR="nw_wammbo003"; break; case 27: RR="nw_wammbo004"; break; case 28: RR="nw_wammbu008"; break; case 29: RR="nw_wammbu009"; break; case 30: RR="nw_wammbu010"; break; case 31: RR="x2_wammbu009"; break; case 32: RR="x2_wammbu010"; break; case 33: RR="nw_wammbu003"; break; case 34: RR="nw_wammbu001"; break; case 35: RR="nw_wammbu005"; break; case 36: RR="nw_wammbu006"; break; case 37: RR="nw_wammbu007"; break; case 38: RR="nw_wammbu002"; break; case 39: RR="nw_wammbu004"; break; } CreateItemOnObject(RR,oStore,99); }
*/ // cancellare il simbolo */ per attivare armi da lancio e munizioni // sia qui che alla riga 479
}
void main() {
object oPC=GetEnteringObject(), oStore=GetNearestObjectByTag("MB_store_weapon"), oItem=GetFirstItemInInventory(oStore); int DAY=GetLocalInt(oStore,"DAY");
if(!GetIsPC(oPC)) return;
if(DAY!=GetCalendarDay()) // (1==1) test { SetLocalInt(oStore,"DAY",GetCalendarDay());
while(oItem != OBJECT_INVALID) { DestroyObject(oItem); oItem=GetNextItemInInventory(oStore); } DelayCommand(1.5,randomize(oStore,oPC)); } }
/* RESREF ARMI DA LANCIO IN ORDINE DI PREZZO + MUNIZIONI
Fionda +1 nw_wbwmsl001 406
Arco Corto +1 nw_wbwmsh002 464
Balestra Leggera +1 nw_wbwmxl002 474
Balestra Pesante +1 nw_wbwmxh002 504
Arco Lungo +1 nw_wbwmln002 554
Fionda +2 nw_wbwmsl009 1806
Arco Corto +2 nw_wbwmsh008 1864
Balestra Leggera +2 nw_wbwmxl008 1874
Balestra Pesante +2 nw_wbwmxh008 1904
Arco Lungo +2 nw_wbwmln008 1954
Arco Corto Composito +1 nw_wbwmsh010 2820
Arco Lungo Composito +1 nw_wbwmln010 2910
Fionda +3 nw_wbwmsl010 4206
Arco Corto +3 nw_wbwmsh009 4264
Balestra Leggera +3 nw_wbwmxl009 4274
Balestra Pesante +3 nw_wbwmxh009 4304
Arco Lungo +3 nw_wbwmln009 4354
Fionda della Luce Diurna nw_wbwmsl005 5680
Balestra della Guardia Silvana nw_wbwmxh005 5778
Balestra di Rubino nw_wbwmxl005 6074
Arco Corto Composito +2 nw_wbwmsh011 7470
Arco dell'Aquila nw_wbwmsh003 7508
Arco Lungo Composito +2 nw_wbwmln011 7560
Fionda +4 x0_wbwmsl001 7606
Arco corto +4 x0_wbwmsh001 7664
Balestra leggera +4 x0_wbwmxl001 7674
Balestra pesante +4 x0_wbwmxh001 7704
Arco lungo +4 x0_wbwmln001 7754
Arco della Corte Elfica strisce nw_wbwmln004 9610
Arco del Giuramento Minore nw_wbwmsh006 11222
Fionda della Ricerca nw_wbwmsl003 12006
Fionda +5 x0_wbwmsl002 12006
Balestra leggera +5 x0_wbwmxl002 12074
Balestra della Precisione nw_wbwmxh003 12104
Balestra pesante +5 x0_wbwmxh002 12104
Arco lungo +5 x0_wbwmln002 12154
Arco corto +5 x0_wbwmsh002 12064
Arco Corto Composito +3 nw_wbwmsh012 14370
Arco Lungo Composito +3 nw_wbwmln012 14460
Balestra dell'Afflizione nw_wbwmxl003 16456
Balestra dell'Omicidio nw_wbwmxl007 19134
Nota Cantata nw_wbwmsh007 19716
Arco corto composito +4 x0_wbwmsh003 20220
Arco lungo composito +4 x0_wbwmln003 20310
Balestra dell'Ammaliamento nw_wbwmxh004 23204
Arco del Vento del Nord nw_wbwmln007 25710
Rivoluzione Gloriosa nw_wbwmxh007 26164
Arco corto composito +5 x0_wbwmsh004 27070
Arco lungo composito +5 x0_wbwmln004 27160
Balestra della Grande Foresta nw_wbwmxl004 28194
Fionda della Seduzione nw_wbwmsl007 29646
Braccio Lungo nw_wbwmln006 29794
Fionda +6 x2_wbwmsl003 36126
Arco corto +6 x2_wbwmsh005 36184
Balestra leggera +6 x2_wbwmxl003 36194
Balestra pesante +6 x2_wbwmxh003 36224
Arco lungo +6 x2_wbwmln005 36274
Lanciatutto di Tempertuppin nw_wbwmsl008 39606
Arco di Tansheron nw_wbwmsh005 39664
Fionda della Forza nw_wbwmsl006 41862
Squartatore nw_wbwmln005 59010
Fionda +7 x2_wbwmsl004 60502
Arco corto +7 x2_wbwmsh006 60560
Balestra pesante +7 x2_wbwmxh004 60570
Balestra leggera +7 x2_wbwmxl004 60570
Arco lungo +7 x2_wbwmln006 60650
Balestra dell'Unicorno nw_wbwmxl006 70874
Arco della Grazia Insanguinata nw_wbwmxh006 70904
Arco Fantasma nw_wbwmsh004 89670
Taralash nw_wbwmln003 95508
Fionda di Arvoreen nw_wbwmsl004 95912
Arco corto composito +6 x2_wbwmsh007 120184
Arco lungo composito +6 x2_wbwmln007 120274
Eterno x2_wbwmln010 179700
Arco corto composito +7 x2_wbwmsh008 180560
Arco lungo composito +7 x2_wbwmln008 180650
Flagello dei non morti Flx2_wbwmsl005 189006
Balestra del colpo fulminante x2_wbwmxl005 420570
Balestra della Veggente x2_wbwmxh005 505320
Arco del vento del nord +8 x2_wbwmln009 505768
Arco della legione x2_wbwmsh009 5578
Freccia +1 nw_wammar009
Freccia +2 nw_wammar010
Freccia +3 nw_wammar011
Freccia +4 x2_wammar012
Freccia +5 x2_wammar013
Frecce della pietrificazione x2_wammar001
Freccia Avvelenata nw_wammar008
Freccia Avvelenata Debolmente nw_wammar007
Freccia d'Acido nw_wammar003
Freccia del Vampiro nw_wammar001
Freccia di Fuoco nw_wammar002
Freccia di Ghiaccio nw_wammar005
Freccia Fulminante nw_wammar006
Freccia Perforante nw_wammar004
Quadrello +1 nw_wammbo008
Quadrello +2 nw_wammbo009
Quadrello +3 nw_wammbo010
Dardo +4 x2_wammbo011
Dardo +5 x2_wammbo012
Dardo del teletrasporto x2_wammbo001
Quadrello Avvelenato nw_wammbo007
Quadrello Avvelenato Debolmente nw_wammbo006
Quadrello dei Fulmini nw_wammbo002
Quadrello del Morso di Gelo nw_wammbo001
Quadrello di Fuoco nw_wammbo005
Quadrello Paralizzante nw_wammbo003
Quadrello Perforante nw_wammbo004
Proiettile +1 nw_wammbu008
Proiettile +2 nw_wammbu009
Proiettile +3 nw_wammbu010
Proiettile +4 x2_wammbu009
Proiettile +5 x2_wammbu010
Oro di Farel nw_wammbu003
Anatema dei Giganti nw_wammbu001
Proiettile di Fuoco nw_wammbu005
Proiettile di Ghiaccio nw_wammbu006
Proiettile Fulminante nw_wammbu007
Proiettile Urlante nw_wammbu002
Proiettili della Punizione nw_wammbu004
*/
DOWNLOAD qui sotto c'č l'erf ed il modulino test (CEP 1.68) provate con PG di ldiverso livello. il meccansmo nella stanzetta avanza il tempo di 12 ore, cliccatelo due volte per resettare il negozio.
Edited by magobargle - 22/4/2024, 11:41File Allegato
|
|