daily pastebin goal
64%
SHARE
TWEET

Untitled

a guest Nov 22nd, 2017 95 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //===== eAthena Script =======================================
  2. //= eAthena Jobchanger AKA Job Master
  3. //===== By: ==================================================
  4. //= eAthena Dev Team [Ori:LunatikBunnie] [Cur:Lance]
  5. //===== Current Version: =====================================
  6. //= 1.5a
  7. //===== Compatible With: =====================================
  8. //= eAthena SVN Trunk 6674
  9. //===== Description: =========================================
  10. //= Changes your job without asking too much
  11. //= For other info, please contact me at Lunatikbunnie@gmail.com
  12. //= Editted menu to avoid button mashing.
  13. //= 1.3 Added TK/SL/SG, thanks to Haplo. Fixed minor bugs [Lupus]
  14. //=    script leaves grabage variable: 'lastJob'
  15. //= 1.4 Added NJ/GS, changed all job numbers to Job_* constants.
  16. //=    All credits go to pxxx [Skotlex]
  17. //= 1.5 Rewrite everything from scratch. [Lance]
  18. //= 1.5a fixed Baby -> Super Baby change. Switched to JobName() [Lupus]
  19. //============================================================
  20. crystilia,67,82,4   script  Mestra das Classes  811,{
  21.     mes "^ff0000[Job Master]^000000";
  22.     if(Upper == 1 && Class >= Job_Lord_Knight) goto L_noReq;
  23.     if(SkillPoint != 0){
  24.         mes "Desculpe, use todos os seus pontos de habilidade antes de mudar de classe";
  25.         mes "Por favor, volte em breve!";
  26.         close;
  27.     }
  28.     if(JobLevel < 10) goto L_LvError;
  29.     switch(Class){
  30.         case Job_Novice_High:
  31.         case Job_Baby:
  32.         case Job_Novice:
  33.             skill 142,1,0;
  34.             skill 143,1,0;
  35.             mes "Bem-vindo, selecione a classe que você deseja";
  36.             if(lastJob != 0 && Class == Job_Novice_High){
  37.                 switch(lastJob){
  38.                     case Job_Knight:
  39.                     case Job_Crusader:
  40.                         set @target_job, Job_Swordman_High;
  41.                         break;
  42.                     case Job_Monk:
  43.                     case Job_Priest:
  44.                         set @target_job, Job_Acolyte_High;
  45.                         break;
  46.                     case Job_Alchemist:
  47.                     case Job_Blacksmith:
  48.                         set @target_job, Job_Merchant_High;
  49.                         break;
  50.                     case Job_Rogue:
  51.                     case Job_Assassin:
  52.                         set @target_job, Job_Thief_High;
  53.                         break;
  54.                     case Job_Wizard:
  55.                     case Job_Sage:
  56.                         set @target_job, Job_Mage_High;
  57.                         break;
  58.                     case Job_Hunter:
  59.                     case Job_Bard:
  60.                     case Job_Dancer:
  61.                         set @target_job, Job_Archer_High;
  62.                         break;
  63.                             }
  64.             } else {
  65.                 switch(select("Swordsman","Mage","Archer","Acolyte","Merchant","Thief",
  66.                     "Super Novice","Taekwon","Gunslinger","Ninja")){
  67.                         case 7:
  68.                             if(Class == Job_Novice_High) goto L_noReq;
  69.                             if($@JC_SupNovM > BaseLevel) goto L_BvError;
  70.                             if(Upper == 2)
  71.                                 set @target_job, Job_Super_Baby;
  72.                             else
  73.                                 set @target_job, Job_SuperNovice;
  74.                             break;
  75.                         case 8:
  76.                             if(Class == Job_Novice_High) goto L_noReq;
  77.                             if(Upper == 2) goto L_noReq;
  78.                             set @target_job, Job_Taekwon;
  79.                             break;
  80.                         case 9:
  81.                         case 10:
  82.                             if(Class == Job_Novice_High || Upper == 2) goto L_noReq;
  83.                             set @target_job, @menu + 15;
  84.                             break;
  85.                         default:
  86.                             set @target_job, @menu;
  87.                             if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
  88.                             break;
  89.                     }
  90.             }
  91.             mes "Tem certeza de que deseja se transforma em " + JobName(@target_job) + "?";
  92.             if(select("Não","Sim") == 2){
  93.                 callfunc "Job_Change", @target_job;
  94.                 if(@target_job == Job_Gunslinger || @target_job == Job_Ninja || @target_job == Job_Taekwon) {
  95.                     callfunc "F_ClearJobVar";
  96.                 } else {
  97.                     if($@JC_Plat) goto L_GivePlat;
  98.                 }
  99.             }
  100.             close;
  101.             break;
  102.         default:
  103.             if(JobLevel < $@JC_MinimumJB) goto L_LvError;
  104.             deletearray @job_opt, getarraysize(@job_opt);
  105.             if(Class < Job_Knight || Class == Job_Taekwon || (Class > Job_Baby && Class < Job_Baby_Knight) || (Class > Job_Novice_High && Class < Job_Lord_Knight)){
  106.                 if(lastJob != 0){
  107.                     set @target_job, lastJob + 4001;
  108.                 } else {
  109.                     switch(Class){
  110.                         case Job_Swordman_High:
  111.                         case Job_Baby_Swordman:
  112.                         case Job_Swordman:
  113.                             set @job_opt[0], Job_Knight;
  114.                             set @job_opt[1], Job_Crusader;
  115.                             break;
  116.                         case Job_Mage_High:
  117.                         case Job_Baby_Mage:
  118.                         case Job_Mage:
  119.                             set @job_opt[0], Job_Wizard;
  120.                             set @job_opt[1], Job_Sage;
  121.                             break;
  122.                         case Job_Archer_High:
  123.                         case Job_Baby_Archer:
  124.                         case Job_Archer:
  125.                             set @job_opt[0], Job_Hunter;
  126.                             if(Sex == 0)
  127.                                 set @job_opt[1], Job_Dancer;
  128.                             else
  129.                                 set @job_opt[1], Job_Bard;
  130.                             break;
  131.                         case Job_Acolyte_High:
  132.                         case Job_Baby_Acolyte:
  133.                         case Job_Acolyte:
  134.                             set @job_opt[0], Job_Priest;
  135.                             set @job_opt[1], Job_Monk;
  136.                             break;
  137.                         case Job_Merchant_High:
  138.                         case Job_Baby_Merchant:
  139.                         case Job_Merchant:
  140.                             set @job_opt[0], Job_Blacksmith;
  141.                             set @job_opt[1], Job_Alchemist;
  142.                             break;
  143.                         case Job_Thief_High:
  144.                         case Job_Baby_Thief:
  145.                         case Job_Thief:
  146.                             set @job_opt[0], Job_Assassin;
  147.                             set @job_opt[1], Job_Rogue;
  148.                             break;                     
  149.                         default:
  150.                             set @job_opt[0], Job_Star_Gladiator;
  151.                             set @job_opt[1], Job_Soul_Linker;
  152.                             break;
  153.                     }
  154.                     mes "Bem-vindo, selecione a classe que você deseja";
  155.                     set @target_job, @job_opt[select(JobName(@job_opt[0]), JobName(@job_opt[1]))-1];
  156.                     if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
  157.                 }
  158.                 mes "Tem certeza de que deseja mudar para " + JobName(@target_job) + "?";
  159.                 if(select("Não","Sim")==2){
  160.                     callfunc "Job_Change", @target_job;
  161.                     if(@target_job == Job_Star_Gladiator || @target_job == Job_Soul_Linker) {
  162.                         callfunc "F_ClearJobVar";
  163.                     } else {
  164.                         if($@JC_Plat) goto L_GivePlat;
  165.                     }
  166.                 }
  167.                 close;
  168.             }
  169.             if(checkfalcon() || checkcart() || checkriding()) goto L_remove;
  170.             if((Class >=Job_Knight) && (Class <=Job_Crusader2)){
  171.                 mes "Você quer renascer?";
  172.                 if(select("Sim","Não")==1){
  173.                     if(BaseLevel < 99 || JobLevel < 50) goto L_cantCh;
  174.                     set lastJob, Class;
  175.                     if(Class == Job_Knight2){
  176.                         set lastJob, Job_Knight;
  177.                     } else {
  178.                         if(Class == Job_Crusader2){
  179.                             set lastJob, Job_Crusader;
  180.                         }
  181.                     }
  182.                     jobchange Job_Novice_High;
  183.                     resetlvl(1);
  184.                     skill 142,1,0;
  185.                     skill 143,1,0;
  186.                 }
  187.                 close;
  188.             }
  189.     }
  190.     mes "Desculpe, não há mais classes disponiveis.";
  191.     close;
  192.    
  193. L_GivePlat:
  194.     if (BaseClass==Job_SuperNovice) goto L_sSuperN;
  195.     if (BaseClass==Job_Swordman) goto L_sSword;
  196.     if (BaseClass==Job_Mage) goto L_sMage;
  197.     if (BaseClass==Job_Archer) goto L_sArcher;
  198.     if (BaseClass==Job_Acolyte) goto L_sAcolyte;
  199.     if (BaseClass==Job_Merchant) goto L_sMerchant;
  200.     if (BaseClass==Job_Thief) goto L_sThief;
  201.     close;
  202. L_sSuperN:
  203.     skill 142,1,0;
  204.     close;
  205. L_sSword:
  206.     skill 142,1,0;
  207.     skill 144,1,0;
  208.     skill 145,1,0;
  209.     skill 146,1,0;
  210.     close;
  211. L_sMage:
  212.     skill 142,1,0;
  213.     skill 157,1,0;
  214.     close;
  215. L_sArcher:
  216.     skill 142,1,0;
  217.     skill 147,1,0;
  218.     skill 148,1,0;
  219.     close;
  220. L_sAcolyte:
  221.     skill 142,1,0;
  222.     skill 156,1,0;
  223.     close;
  224. L_sMerchant:
  225.     skill 142,1,0;
  226.     skill 153,1,0;
  227.     skill 154,1,0;
  228.     skill 155,1,0;
  229.     close;
  230. L_sThief:
  231.     skill 142,1,0;
  232.     skill 149,1,0;
  233.     skill 150,1,0;
  234.     skill 151,1,0;
  235.     skill 152,1,0;
  236.     close;
  237.  
  238. L_cantCh:
  239.     mes "Desculpe, você não atende aos requisitos para mudar";
  240.     mes "Por favor, volte em breve!";
  241.     close;
  242.  
  243. L_LvError:
  244.     mes "Sinto muito, você não parece ter níveis de habilidade suficientes";
  245.     mes "Por favor, volte em breve!";
  246.     close;
  247.  
  248. L_BvError:
  249.     mes "Desculpe, você não parece ter níveis de base suficientes";
  250.     mes "Por favor, volte em breve!";
  251.     close;
  252.  
  253. L_noReq:
  254.     mes "Desculpe, você não atende aos requisitos para mudar";
  255.     mes "Por favor, volte em breve!";
  256.     close;
  257.  
  258. L_remove:
  259.     mes "Remova seu carrinho, falcão ou peco";
  260.     mes "Por favor, volte em breve!";
  261.     close;
  262. OnInit:
  263.     // Variable Setup
  264.     set $@JC_MinimumJB, 40; //Minimum job level for changing between 2nd and advance Class (Default : 40)
  265.     set $@JC_Plat, 1; //Give Platinum skills on Jobchange (Default : 1-Sim)
  266.     set $@JC_SupNovM, 45; //Base Level to change into Super Novice (Default : 45)
  267.     end;
  268. }
RAW Paste Data
Top