Titre: (script)Lockpicking qui fonctionne Posté par: Frunku le 2003-12-13, 15:22:14 Trouvé sur scriptsharing.org
Joyeux petit script que j'ai traduit en francais. Ca permet de fabriquer des verrous avec tinkering et de les installer sur des portes ou contenant dont on détient la clé (quoi que il n'y a pas de clés sur trb, alors faudrait adapter). Il y a différents types de verrous et même un explosif. (version 55i) voici le readme( pas la flemme de traduire): Ok, installing this script is very easy, you just have to change the type of the i_lockpick item in sphereitemb4.scp for the type in the script (t_lockpickwarro), then add the types of lock you want in sphereskills.scp, so that people can craft them, and then add the main script in your scripts folder. That should do it, but there are a few things you might like to know. First, all the predefined t_door_locked that are in the game will have by default the worst lock (that is, MORE2H=0), so if u need some place not to be accesed by journeyman lockpickers, set it's MORE2h to 3 or 4. Second, this script hasn't been tested in a shard with people(I'm still looking for host :P) so if u find any bug please send me a mail. Third and most important, have fun with the script and beware of the house stealers :). Ah, and also think that you might put any chest in a container, so it's timer won't activate, so don't expect the explosive lockpick in chests (well I'm trying, maybe I'll find out how), so if u were wondering why there's a check so that u can't set this type of lock to chests, thats why. Ramon Et voici le script: //Made by The_Blind_Sniper, bugs to ppocrack@hotmail.com [TYPEDEF t_cosa_locked] //This thing doesn't work well as a predefined type, still... ON=@DCLICK IF !(<LINK.UID>) SRC.NEWITEM i_key_copper SRC.ACT.MORE=<UID> SRC.ACT.CONT=<SRC.UID> SRC.NEWITEM i_key_copper SRC.ACT.MORE=<UID> SRC.ACT.CONT=<UID> LINK=<SRC.UID> ELSEIF (<SRC.FINDTYPE.t_key.MORE>==<UID>) OPEN ELSE SRC.SYSMESSAGE You haven't got the key of this chest! ENDIF RETURN 1 [TYPEDEF t_lockpickwarro] ON=@DCLICK IF (<TOPOBJ.UID>==<SRC.UID>) IF !(<SRC.FINDID.I_memoria_lockpicking>) TARGET What are you willing to unlock? ELSE SRC.SYSMESSAGE Tu est encore en train de manipuler le verrou! ENDIF ELSE SRC.SYSMESSAGE Tu dois les avoir sur toi! ENDIF RETURN 1 ON=@TARGON_CHAR SRC.SYSMESSAGE Ca n'a pas de verrou. RETURN 1 ON=@TARGON_GROUND SRC.SYSMESSAGE Ca n'a pas de verrou. RETURN 1 ON=@TARGON_ITEM IF (<SRC.TARG.TYPE>==t_door_locked)&&(<SRC.TARG.MORE2H>==0) //The predefined door locked in UO VAR.DIFICULTAD=50 VAR.TIPO=0 ELSEIF (<SRC.TARG.TYPE>==t_door_locked)&&(<SRC.TARG.MORE2H>==1) VAR.DIFICULTAD=55 VAR.TIPO=1 ELSEIF (<SRC.TARG.TYPE>==t_door_locked)&&(<SRC.TARG.MORE2H>==2) VAR.DIFICULTAD=60 VAR.TIPO=2 ELSEIF (<SRC.TARG.TYPE>==t_door_locked)&&(<SRC.TARG.MORE2H>==3) VAR.DIFICULTAD=65 VAR.TIPO=3 ELSEIF (<SRC.TARG.TYPE>==t_door_locked)&&(<SRC.TARG.MORE2H>==4) VAR.DIFICULTAD=70 VAR.TIPO=4 ELSEIF (<SRC.TARG.TYPE>==t_door_locked)&&(<SRC.TARG.MORE2H>==5) //For gm use only... VAR.DIFICULTAD=100 VAR.TIPO=5 ELSEIF (<SRC.TARG.TYPE>==t_cosa_locked) VAR.DIFICULTAD=65 VAR.TIPO=6 ELSEIF (<SRC.TARG.TYPE>==t_container_locked)&&(<SRC.TARG.MORE2H>==0) //The predefined container locked in UO VAR.DIFICULTAD=50 VAR.TIPO=7 ELSEIF (<SRC.TARG.TYPE>==t_container_locked)&&(<SRC.TARG.MORE2H>==1) VAR.DIFICULTAD=55 VAR.TIPO=8 ELSEIF (<SRC.TARG.TYPE>==t_container_locked)&&(<SRC.TARG.MORE2H>==2) VAR.DIFICULTAD=60 VAR.TIPO=9 ELSEIF (<SRC.TARG.TYPE>==t_container_locked)&&(<SRC.TARG.MORE2H>==3) VAR.DIFICULTAD=65 VAR.TIPO=10 ELSEIF (<SRC.TARG.TYPE>==t_container_locked)&&(<SRC.TARG.MORE2H>==4) VAR.DIFICULTAD=70 VAR.TIPO=11 ELSEIF (<SRC.TARG.TYPE>==t_container_locked)&&(<SRC.TARG.MORE2H>==5) //For gm use only... VAR.DIFICULTAD=100 VAR.TIPO=12 ELSEIF (<SRC.TARG.TYPE>==t_secure) VAR.DIFICULTAD=70 VAR.TIPO=13 ELSEIF (<SRC.TARG.TYPE>==t_secure_f) VAR.DIFICULTAD=70 VAR.TIPO=14 ELSEIF (<SRC.TARG.TYPE>==t_door_locked)&&(<SRC.TARG.MORE2H>==6) VAR.DIFICULTAD=55 VAR.TIPO=15 ELSE VAR.DIFICULTAD=0 ENDIF IF !(<VAR.DIFICULTAD>==0) SRC.EMOTE essaye de deverouiller l'objet avec un crochet f_intenta_forzar <EVAL (<EVAL {0 10}>+<EVAL <SRC.LOCKPICKING>/100>)> SRC.NEWITEM i_memoria_lockpicking SRC.ACT.TIMER=<EVAL {1 2}> SRC.ACT.CONT=<SRC.UID> SRC.SFX 0242 VAR.DIFICULTAD2=<EVAL <VAR.DIFICULTAD>+(-<EVAL {0 10}>)> SRC.SAY Difficulte du verrou: <EVAL <VAR.DIFICULTAD2>>! IF (<EVAL <VAR.FORZADURA>> >= <VAR.DIFICULTAD2>) IF (<VAR.TIPO> < 6) SRC.NEWITEM i_perateya SRC.ACT.P=<SRC.P> SRC.ACT.LINK=<SRC.TARG.UID> SRC.ACT.TIMER=(<SRC.LOCKPICKING>/10)*2 SRC.ACT.MORE=<SRC.TAG.TIPO> SRC.TARG.TYPE=t_door SRC.TARG.MORE2h=0 SRC.CONSUME 1 I_lockpick SRC.SYSMESSAGE Vous avez deverouille la porte! ELSEIF (<VAR.TIPO> < 6)&&(RAND(40)==0) SRC.TARG.TYPE=t_door SRC.TARG.MORE2h=0 SRC.CONSUME 1 I_lockpick SRC.SYSMESSAGE Tu as deverouille la porte, mais tu as casse le verrou! ELSEIF (<VAR.TIPO>==15) //This is an easy way to add custom locks SRC.TARG.TYPE=t_door //or let it t_door_locked(with the worst lock)??? SRC.TARG.MORE2h=0 SRC.CONSUME 1 I_lockpick SRC.SYSMESSAGE Vous avez deverouille la porte, mais active un piege. SRC.NEWITEM i_gold SRC.ACT.TYPE=T_explosion SRC.ACT.TIMERD=1 SRC.ACT.SOUND=snd_SPELL_EXPLOSION SRC.ACT.LINK=<SRC.ACT.uid> SRC.ACT.P=<SRC.TARG.P> SRC.ACT.morex=120 SRC.ACT.morez = 6 SRC.ACT.morey=090 ELSEIF (<VAR.TIPO> >= 6)&&(RAND(29)==0) SRC.TARG.TYPE=t_container SRC.CONSUME 1 I_lockpick SRC.TARG.MORE2h=0 SRC.SYSMESSAGE Vous avez deverouille le coffre, mais vous avez casse le verrou. ELSE SRC.NEWITEM i_perateya SRC.ACT.P=<SRC.P> SRC.ACT.LINK=<SRC.TARG.UID> SRC.ACT.TIMER=(<SRC.LOCKPICKING>/10)*2 SRC.ACT.MORE=<VAR.TIPO> SRC.TARG.TYPE=t_container SRC.CONSUME 1 I_lockpick SRC.TARG.MORE2h=0 SRC.SYSMESSAGE You have unlocked the chest! ENDIF SRC.KILLS=<SRC.KILLS>+1 f_sube_skill_lp RETURN 1 ELSE IF (<SRC.LOCKPICKING> < 30.0) f_sube_skill_lp ENDIF SRC.CONSUME 1 I_lockpick SRC.SYSMESSAGE Vous n'avez pas deverouille l'objet. RETURN 1 ENDIF SRC.KARMA=<SRC.KARMA>+(-200) //Nota: es mu malo forzar cosas ELSE SRC.SYSMESSAGE Vous ne pouvez pas deverouiller ca. ENDIF RETURN 1 [ITEMDEF i_memoria_lockpicking] ID=i_memory NAME=Wait a little to lockpick again :P TYPE=t_eq_script ON=@TIMER REMOVE RETURN 1 [ITEMDEF i_perateya] ID=i_worldgem_bit NAME=I put again the t_blabla_locked! TYPE=t_script ON=@CREATE ATTR=attr_invis COLOR=0245 ON=@TIMER f_findtype LINK.SAY *Le verrou se re-arme* REMOVE RETURN 1 [FUNCTION f_intenta_forzar] DOSWITCH <ARGS> VAR.FORZADURA=<EVAL {0 3}> //No cuenta VAR.FORZADURA=<EVAL {1 50}> VAR.FORZADURA=<EVAL {2 51}> VAR.FORZADURA=<EVAL {3 52}> VAR.FORZADURA=<EVAL {4 53}> VAR.FORZADURA=<EVAL {4 54}> VAR.FORZADURA=<EVAL {4 55}> VAR.FORZADURA=<EVAL {4 56}> VAR.FORZADURA=<EVAL {4 57}> VAR.FORZADURA=<EVAL {4 58}> VAR.FORZADURA=<EVAL {5 59}> VAR.FORZADURA=<EVAL {6 60}> VAR.FORZADURA=<EVAL {7 61}> VAR.FORZADURA=<EVAL {8 62}> VAR.FORZADURA=<EVAL {9 63}> VAR.FORZADURA=<EVAL {10 64}> VAR.FORZADURA=<EVAL {15 65}> VAR.FORZADURA=<EVAL {15 66}> VAR.FORZADURA=<EVAL {15 67}> VAR.FORZADURA=<EVAL {17 68}> VAR.FORZADURA=<EVAL {19 70}> VAR.FORZADURA=<EVAL {20 71}> ENDDO IF (<SRC.ISGM>) VAR.FORZADURA=100 ENDIF IF (0<SRC.TAG.DEBUG.COMBAT>) SRC.SAY Mon essai: <EVAL <VAR.FORZADURA>>! ENDIF [FUNCTION f_findtype] DOSWITCH <MORE> LINK.TYPE=t_door_locked LINK.TYPE=t_door_locked LINK.TYPE=t_door_locked LINK.TYPE=t_door_locked LINK.TYPE=t_door_locked LINK.TYPE=t_door_locked LINK.TYPE=t_cosa_locked LINK.TYPE=t_container_locked LINK.TYPE=t_container_locked LINK.TYPE=t_container_locked LINK.TYPE=t_container_locked LINK.TYPE=t_container_locked LINK.TYPE=t_container_locked LINK.TYPE=t_secure LINK.TYPE=t_secure_f LINK.TYPE=t_door_locked ENDDO [FUNCTION f_sube_skill_lp] IF (<VAR.FORZADURA> >= RAND(100))&&(<SRC.LOCKPICKING> < 100.0) SRC.LOCKPICKING=<SRC.LOCKPICKING>+0.1 IF (<VAR.FORZADURA> >= RAND(200)) SRC.LOCKPICKING=<SRC.LOCKPICKING>+0.1 ENDIF ENDIF [ITEMDEF i_lock_1] ID=i_clock NAME=Verrou faible TYPE=t_lock RESOURCES=15 i_ingot_iron SKILLMAKE=55.0 TINKERING,t_tinker_Tools ON=@CREATE color=0538 MORE=0 [ITEMDEF i_lock_2] ID=i_clock NAME=Verrou novice TYPE=t_lock RESOURCES=17 i_ingot_iron SKILLMAKE=65.0 TINKERING,t_tinker_Tools ON=@CREATE color=0538 MORE=1 [ITEMDEF i_lock_3] ID=i_clock NAME=Verrou difficile TYPE=t_lock RESOURCES=18 i_ingot_iron SKILLMAKE=85.0 TINKERING,t_tinker_Tools ON=@CREATE color=0538 MORE=2 [ITEMDEF i_lock_4] ID=i_clock NAME=Verrou tres difficile TYPE=t_lock RESOURCES=19 i_ingot_iron SKILLMAKE=85.0 TINKERING,t_tinker_Tools ON=@CREATE color=0538 MORE=3 [ITEMDEF i_lock_5] ID=i_clock NAME=Verrou TRES TRES difficile TYPE=t_lock RESOURCES=25 i_ingot_iron SKILLMAKE=100.0 TINKERING,t_tinker_Tools ON=@CREATE color=0538 MORE=4 [ITEMDEF i_lock_6] ID=i_clock NAME=Verrou pour MJ TYPE=t_lock ON=@CREATE color=0538 MORE=5 [ITEMDEF i_lock_Spec_1] //An easy way to create new locks... ID=i_clock NAME=Verrou explosif TYPE=t_lock RESOURCES=25 i_ingot_iron, 3 i_potion_explosion SKILLMAKE=100.0 TINKERING,t_tinker_Tools ON=@CREATE color=0538 MORE=6 MORE2=1 //Fonctionne seulement avec les portes. [TYPEDEF t_lock] ON=@DCLICK TARGET Ou veux-tu placer un verrou?? RETURN 1 ON=@TARGOn_ITEM IF !(<SRC.TARG.MORE2H> >= <MORE>) IF (<SRC.FINDLAYER(21).FINDTYPE.T_KEY.MORE>==<SRC.TARG.MORE>)&&(<SRC.FINDLAYER(21).FINDTYPE.T_KEY.MORE>!=0)||(<SRC.ISGM>) IF (<MORE2>==0)||(<SRC.TARG.TYPE>==t_door)&&(<MORE2>==1)||(<SRC.TARG.TYPE>==t_door_locked)&&(<MORE2>==1) SRC.TARG.MORE2h=<MORE> IF (<SRC.TARG.TYPE>==t_door_locked)||(<SRC.TARG.TYPE>==t_door) SRC.TARG.TYPE=t_door_locked SRC.EMOTE Installe le verrou sur la porte. ELSEIF (<SRC.TARG.TYPE>==t_container_locked)||(<SRC.TARG.TYPE>==t_container) SRC.TARG.TYPE=t_container_locked SRC.EMOTE Installe le verrou sur le contenant. ELSE SRC.SYSMESSAGE Operation impossible. ENDIF CONSUME ELSE SRC.MESSAGE *Ce verrou s'installe seulement sur des portes*! ENDIF ELSE SRC.MESSAGE *Vous n'avez pas la cle pour ca!*! ENDIF ELSE SRC.MESSAGE *Cette porte a un verou egal ou meilleur a celui que vous tentez d'installer!* ENDIF RETURN 1 ON=@TARGON_GROUND SRC.SYSMESSAGE Tu ne peux pas faire ca! RETURN 1 ON=@TARGON_CHAR SRC.SYSMESSAGE Tu ne peux pas faire ca! RETURN 1 [EOF] Titre: (script)Lockpicking qui fonctionne Posté par: Moumix le 2003-12-14, 13:47:45 Tu peux plutôt m'envoyer le fichier .scp par mail?
Ca me tente de pas de faire un copier/coller foireux et de devoir remettre toutes les lignes dans leur bon état... (j'ai déjà donné pour ça et ça me tente plus, réellement) Titre: (script)Lockpicking qui fonctionne Posté par: Moumix le 2003-12-15, 00:24:31 Nan c bon je les ai
mais faudrait que tout le monde se mette dans le crâne de ne plus utiliser mon adresse hotmail... je l'utilise exclusivement pour pouvoir lancer msn sans me prendre la tête à changer d'adresse dessus... |