Jump to content

Reimi

Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by Reimi

  1. Hello everyone

    I have a little problem with a refiner script.

    i used the start of the original one, then put some custom script, but i get this error from map server :

    script error on npc/mesnpc/kafra.txt line 670
        parse_syntax: unexpected 'case'
       665 :                                        close;
       666 :                                }
       667 :                        }
       668 :                        mes "test end";
       669 :                        close;
    *  670 :                'c'ase 2:
       671 :                        mes "case 3 pas encore code";
       672 :                        close;
       673 :                case 3:
       674 :                        clear;
       675 :                        mes "[" + getarg(0) + "]";

    here is the script :

    prt_in,64,60,8	script	Forgeron::Jonas	63,{
    	callfunc "forgeron","Jonas";
    }
    
    function	script	forgeron	{
    	mes "[" + getarg(0) + "]";
    	mes "Bienvenue a ma forge.";
    	mes "Que puis-je faire pour toi ?";
    	switch(select("Je veux raffiner un equipement:Avoir des infos sur les materiaux enrichie:Je ne fais que passer")){
    		case 1:
    			mes "que veux tu rafiner ?";
    			next;
    			setarray .@listequip[1],eqi_hand_r,eqi_armor,eqi_hand_l,eqi_garment,eqi_shoes,eqi_head_top,eqi_head_mid,eqi_head_low,eqi_acc_r,eqi_acc_l;
    			for(.@t=1; .@t<getarraysize(.@listequip); .@t ++) {
    				if (getequipisequiped(.@listequip[.@t])) {
    					.@menu$ = .@menu$ + getequipname(.@listequip[.@t]);
    					.@est_equipe = 1;
    				}
    				.@menu$ = .@menu$ +":";
    			}
    			if(.@est_equipe == 0) {mes "Tu n'as pas d'equipement sur toi."; close;}
    			
    			
    			.@equipement = .@listequip[select(.@menu$)];
    			clear;
    			mes "[" + getarg(0) + "]";
    			if(!getequipisenableref(.@equipement)){
    				mes "Ah ! Je sui desole, mais cet equipement ne peux pas etre raffine.";
    				close;
    			}
    			.@rafiner = getequiprefinerycnt(.@equipement);
    			if(.@rafiner >= 10) {
    				mes "Eh! cet equipement est deja raffine au maximum.";
    				mes "Il n'y a rien que je puisse faire de plus.";
    				close;
    			}
    			L_Encore :
    			if(getequipweaponlv(.@equipement) == 0) {
    			
    	//-------------------------Armure Bouclier Garment etc.--------------------------------------
    				
    				
    				.@rafiner = getequiprefinerycnt(.@equipement);
    				.@prix = 2000 + 2000 * .@rafiner;
    				if(.@rafiner < 4 ) {.@reussite = 99; .@objetID = 757; .@objet$ = "Rough Elunium";}
    				if(.@rafiner > 3  && .@rafiner < 7) {.@objetID = 985; .@objet$ = "Elunium";}
    				if(.@rafiner > 6 ) {.@objetID = 6291; .@objet$ = "Elunium Enrichie";}
    				if(.@rafiner == 4) {.@reussite = 79; .@casse = 79;}
    				if(.@rafiner == 5) {.@reussite = 69; .@casse = 59;}
    				if(.@rafiner == 6) {.@reussite = 59; .@casse = 59;}
    				if(.@rafiner == 7) {.@reussite = 34; .@casse = 39;}
    				if(.@rafiner == 8) {.@reussite = 24; .@casse = 39;}
    				if(.@rafiner == 9) {.@reussite = 9; .@casse = 19;}
    				
    				mes "oh! une piece d'armure";
    				mes "tres bien voyons cela.";
    				next;
    				//goto L_raffinage;
    			}
    
    			if(getequipweaponlv(.@equipement) == 1) {
    			
    	//----------------------------ARME LV1-----------------------------------------------
    
    				.@rafiner = getequiprefinerycnt(.@equipement);
    				.@prix = 200 + 200 * .@rafiner;
    				.@armelv = getequipweaponlv(.@equipement);
    				.@objetID = 1010;
    				.@objet$ = "Phracon";
    				if(.@rafiner < 7 ) {.@reussite = 99;}
    				if(.@rafiner == 7) {.@reussite = 79; .@casse = 89;}
    				if(.@rafiner == 8) {.@reussite = 59; .@casse = 69;}
    				if(.@rafiner == 9) {.@reussite = 39; .@casse = 49;}
    				
    				mes "oh! une Arme Lv" + .@armelv;
    				mes "tres bien voyons cela.";
    				next;
    				//goto L_raffinage;
    			}
    			
    			if(getequipweaponlv(.@equipement) == 2) {
    			
    	//----------------------------ARME LV2-----------------------------------------------
    
    				.@rafiner = getequiprefinerycnt(.@equipement);
    				.@prix = 500 + 500 * .@rafiner;
    				.@armelv = getequipweaponlv(.@equipement);
    				.@objetID = 1011;
    				.@objet$ = "Emveretarcon";
    				if(.@rafiner < 6 ) {.@reussite = 99; }
    				if(.@rafiner == 6) {.@reussite = 79; .@casse = 89;}
    				if(.@rafiner == 7) {.@reussite = 59; .@casse = 79;}
    				if(.@rafiner == 8) {.@reussite = 44; .@casse = 59;}
    				if(.@rafiner == 9) {.@reussite = 34; .@casse = 44;}
    				
    				//mes "oh! une Arme Lv" + .@armelv;
    				//mes "tres bien voyons cela.";
    				//next;
    				//goto L_raffinage;
    			}
    			
    			if(getequipweaponlv(.@equipement) == 3) {
    			
    	//----------------------------ARME LV3-----------------------------------------------
    
    				.@rafiner = getequiprefinerycnt(.@equipement);
    				.@prix = 1000 + 1000 * .@rafiner;
    				.@armelv = getequipweaponlv(.@equipement);
    				if(.@rafiner < 5) {.@reussite = 99; .@objetID = 1011; .@objet$ = "Emveretarcon";}
    				if(.@rafiner > 4) {.@objetID = 756; .@objets$ = "Rough Oridecon";}
    				if(.@rafiner > 7) {.@objetID = 984; .@objets$ ="Oridecon";}
    				if(.@rafiner == 5) {.@reussite = 79; .@casse = 84;}
    				if(.@rafiner == 6) {.@reussite = 74; .@casse = 74;}
    				if(.@rafiner == 7) {.@reussite = 49; .@casse = 54;}
    				if(.@rafiner == 8) {.@reussite = 34; .@casse = 39;}
    				if(.@rafiner == 9) {.@reussite = 24; .@casse = 29;}
    				
    				mes "oh! une Arme Lv" + .@armelv;
    				mes "tres bien voyons cela.";
    				//next;
    				//goto L_raffinage;
    			}
    			
    			if(getequipweaponlv(.@equipement) == 4) {
    			
    	//----------------------------ARME LV4-----------------------------------------------
    
    				.@rafiner = getequiprefinerycnt(.@equipement);
    				.@prix = 2000 + 2000 * .@rafiner;
    				.@armelv = getequipweaponlv(.@equipement);
    				if(.@rafiner < 3) {.@reussite = 99; .@objetID = 759; .@objet$ = "Rough Oridecon";}
    				if(.@rafiner > 2) {.@objetID = 984; .@objets$ = "Oridecon";}
    				if(.@rafiner > 5) {.@objetID = 6292; .@objets$ ="Oridecon Enrichie";}
    				if(.@rafiner == 5) {.@reussite = 69; .@casse = 74;}
    				if(.@rafiner == 6) {.@reussite = 54; .@casse = 59;}
    				if(.@rafiner == 7) {.@reussite = 29; .@casse = 44;}
    				if(.@rafiner == 8) {.@reussite = 14; .@casse = 19;}
    				if(.@rafiner == 9) {.@objetID = 7806; .@objetID1 = 7807; .@objetID2 = 7808; .@objetID3 = 7809;
    					.@objet$ = "God Anvil"; .@objet1$ = "God Mineral"; .@objet2$ = "God Hammer"; .@objet3$ = "God Furnace";
    					.@reussite = 100; .@prix = 50000}
    				
    				mes "oh! une Arme Lv" + .@armelv;
    				mes "tres bien voyons cela.";
    				next;
    				//goto L_raffinage;
    			}
    			//L_raffinage:
    			if(.@reussite == 99) {
    			//-----------rafinage Safe---------------------
    			
    				mes "[" + getarg(0) + "]";
    				mes "Cette piece d'equipement";
    				mes "est raffiner a +" + .@rafiner;
    				mes "je peux la rafiner sans le moindre risque.";
    				next;
    				mes "[" + getarg(0) + "]";
    				mes "Il me faudra";
    				mes "^8010101 " + .@objet$ + "^000000";
    				mes "Et le prix est de : " + .@prix + " z";
    				mes "c'est ok pour toi ?";
    				if(select("Oui:Non") == 2){
    					clear;
    					mes "[" + getarg(0) + "]";
    					mes "Comme tu veux, n'hesites pas a repasser me voir si tu changes d'avis.";
    					close;
    				}
    				if(countitem(.@objetID) < 1) {
    					clear;
    					mes "[" + getarg(0) + "]";
    					mes "Oh, tu n'as pas de ^801010" +.@objet$ + "^000000";
    					mes "Reviens lorsque tu auras tout","le materiel necessaire sur toi.";
    					close;
    				}
    				if(zeny < .@prix) {
    					clear;
    					mes "[" + getarg(0) + "]";
    					mes "Tu n'as pas assez d'argent.";
    					mes "Ne reviens pas avant d'avoir de quoi payer.";
    					close;
    				}
    				delitem .@objetID,1;
    				zeny = zeny - .@prix;
    				successrefitem(.@equipement);
    				.@emo = rand(3);
    				if(.@emo == 0) {emotion et_smile;}
    				if(.@emo == 1) {emotion et_best;}
    				if(.@emo == 2) {emotion et_scissor;}
    				clear;
    				mes "[" + getarg(0) + "]";
    				mes "Et voila le travail";
    				mes "tu veux continuer ?";
    				if(select("Continuer le raffinage:Arreter la") == 2){
    					mes "c'est peut etre un choix judicieux, n'hesites pas a revenir si tu changes d'avis.";
    					close;
    				}
    				goto L_Encore;
    			}
    			if(.@reussite < 99) {
    			//--------------------Rafinage Risquer----------------------------
    			
    				mes "[" + getarg(0) + "]";
    				mes "Cette piece d'equipement";
    				mes "est raffiner a +" + .@rafiner;
    				mes "Ca ce complique.";
    				next;
    				mes "[" + getarg(0) + "]";
    				mes "Il va me falloir un ^801010" +.@objet$ + "^000000";
    				mes "ainsi que " + .@prix + " z";
    				mes "C'est ok pour toi ?";
    				if(select("Oui:Non") == 2) {
    					clear;
    					mes "[" + getarg(0) + "]";
    					mes "C'est toi qui voit.";
    					mes "reviens me voir si tu changes d'avis.";
    					close;
    				}
    				mes "^DD1010ATTENTION ! ! !^000000";
    				mes "A ce niveau de difficulte, je ne peux te garantir la reussite.";
    				next;
    				mes "[" + getarg(0) + "]";
    				mes " Mes chances de succes pour ce niveau de raffinage sont de ^DD1010" + (.@reussite + 1) + "%^000000";
    				mes "Si j'echoue :";
    				mes "^DD1010le raffinage de l'equipement baissera de 1";
    				mes .@objet$ + " sera perdu.";
    				mes "et je ne pourrai pas te rembourser.^000000";
    				next;
    				mes "[" + getarg(0) + "]";
    				mes "Il se peut egalement que l'equipement se brise.";
    				mes "^DD1010J'ai " + (.@casse + 1) + "% de chance de reussir a le conserver^000000.";
    				mes "en cas d'echec :";
    				mes "^DD1010L'equipement sera definitivement perdu.";
    				mes "Toutes carte insere serait elle aussi perdu !^000000";
    				mes "La encore, je ne pourrai pas te dedomager.";
    				mes "Veux tu tenter le raffinage ?";
    				if(select("Oui:Non") == 2) {
    					clear;
    					mes "[" + getarg(0) + "]";
    					mes "C'est comprehensible, mieux vaut avoir un equipement peux efficace, que pas d'equipement du tout.";
    					close;
    				}
    				if(countitem(.@objetID) < 1) {
    					clear;
    					mes "[" + getarg(0) + "]";
    					mes "Mais! tu n'as pas ^801010d'" + .@objet$ + "^000000";
    					mes "Ne me fais pas perdre mon temps.";
    					mes "Du balai.";
    					close;
    				}
    				if(zeny < .@prix) {
    					clear;
    					mes "[" + getarg(0) + "]";
    					mes "Eh! Tu n'as pas assez d'argent.";
    					mes "Retourne travailler, et reviens me voir ensuite.";
    					close;
    				}
    				delitem .@objetID,1;
    				zeny = zeny -.@prix;
    				if(.@reussite < rand(99)) {
    					if(.@casse < rand(99)) {
    						failedrefitem(.@equipement);
    						emotion et_cry;
    						clear;
    						mes "[" + getarg(0) + "]";
    						mes "Je suis vraiment navre, mais l'equipement a ete detruit.";
    						mes "je n'ai rien pu faire pour le sauver.";
    						mes "Hey ! que cela ne t'empeches pas de retenter.";
    						mes "c'est par la pratique que l'on progresse.";
    						close;
    					}
    					specialeffect2 155;
    					emotion et_cry;
    					downrefitem(.@equipement);
    					clear;
    					mes "[" + getarg(0) + "]";
    					mes "Eh bien, c'est un echec.";
    					mes "Heureusement j'ai pu sauver l'equipement durant le processus.";
    					mes "Tout n'est pas perdu, on peux reessayer... si tu as les moyens bien sure. . .";
    					close;
    				}
    				successrefitem(.@equipement);
    				.@emo = rand(3);
    				if(.@emo == 0) {emotion et_smile;}
    				if(.@emo == 1) {emotion et_best;}
    				if(.@emo == 2) {emotion et_scissor;}
    				clear;
    				mes "[" + getarg(0) + "]";
    				mes "Une reussite, voila pourquoi il ne faut jamais douter de sois.";
    				mes "tu veux continuer ?";
    				if(select("Continuer le raffinage:Arreter la") == 2){
    					mes "Une sage decision, il faut savoir quand s'arreter.";
    					close;
    				}
    				goto L_Encore;
    				
    				
    			}
    			
    			if(.@reussite == 100) {
    				mes "[" + getarg(0) + "]";
    				mes "Tu veux encore ameliore cette Arme ?";
    				mes "Son raffinage est deja au top de tout ce qui peut etre fait.";
    				mes "...Par un humain tout du moins.";
    				next;
    				switch(select("Et bien justement...:Qui pourrait me renseigner ?:Laisses tomber.")) {
    				
    					case 1:
    					mes "pas encore code";
    					close;
    				
    					case 2:
    					mes "pas encore code";
    					close;
    				
    					case 3:
    					mes "pas encore code";
    					close;
    				}
    			}
    			mes "test end";
    			close;
    		case 2: 
    			mes "case 3 pas encore code";
    			close;
    		case 3:
    			clear;
    			mes "[" + getarg(0) + "]";
    			mes "Bon voyage alors.";
    			close;
    		
    	}
    }

    It's probably a bracket problem, but i read it again and again and again... can't find what's wrong.

    in game the script work until you choose a piece of equipement, and when you click next, the buton disapear, and the script don't go further.

    it is working with a "menu" in place of the first "switch, and the use of the "L_raffinage" label. But i shouldn't need this label :x

    if anyone can take a look at it.

    thanks in advance.

×
×
  • Create New...