Jump to content

Yaziid91

Members
  • Posts

    66
  • Joined

  • Last visited

Everything posted by Yaziid91

  1. Thank you for your response. You didn’t have to change anything else, like in the batte conf or anywhere else? I have exactly the same thing in my pc.hpp, but it’s not working.
  2. Hello, I have a problem with the Taekwon class in pre-renewal. When I complete the TK missions, I receive the success message and I can see myself in the ranking, but the HP+ effect and Combo Chain do not work. I have completed 11 TK missions and I am level 375. Does anyone know where this issue could come from, please? Thank you!
  3. Thanks for your reply but it still doesn't work but I used another method everything works SOLVED // Boutique Hunting ro_prontera,122,247,5 script Hunting Point Shop 861,{ mes "[Points Hunting]"; mes "Vous avez ^0000FF" + #HUNT_Q_POINTS + "^000000 points."; next; if(select("Acheter:Annuler") == 2) { mes "[Points Hunting]"; mes "Revenez quand vous voudrez dépenser vos points!"; close; } mes "[Points Hunting]"; mes "Ouverture de la boutique..."; close2; // Appel de la boutique personnalisée callshop "hunt_shop", 1; npcshopattach "hunt_shop"; end; OnBuyItem: // Trouver le prix de l'objet for (set .@i, 0; .@i < getarraysize(.shop_items); .@i++) { if (.shop_items[.@i] == @bought_nameid) { set .@price, .shop_costs[.@i]; break; } } // Calculer le coût total set .@total_cost, .@price * @bought_quantity; // Vérifier si le joueur a assez de points if (#HUNT_Q_POINTS < .@total_cost) { dispbottom "Vous n'avez pas assez de points de chasse!"; end; } // Vérifier le poids de l'inventaire if (checkweight(@bought_nameid, @bought_quantity) == 0) { dispbottom "Votre inventaire est trop plein!"; end; } // Effectuer l'achat set #HUNT_Q_POINTS, #HUNT_Q_POINTS - .@total_cost; getitem @bought_nameid, @bought_quantity; dispbottom "Achat effectué! Vous avez dépensé " + .@total_cost + " points. Il vous reste " + #HUNT_Q_POINTS + " points."; end; OnInit: // Définir les articles et leurs coûts setarray .shop_items[0], 6232, 50005, 12922, 510108, 50000, 12240, 12622, 60016, 7776; setarray .shop_costs[0], 30, 80, 100, 200, 200, 250, 300, 1000, 50; // Créer la boutique npcshopdelitem "hunt_shop", 512; // Effacer tout article existant // Ajouter chaque article avec son prix (en zeny, mais sera converti en points) for (set .@i, 0; .@i < getarraysize(.shop_items); .@i++) { npcshopadditem "hunt_shop", .shop_items[.@i], .shop_costs[.@i]; } waitingroom "Points Hunting",0; end; } // Définition de la boutique - shop hunt_shop -1,512:-1
  4. I have corrected this part; I hadn't seen it before, thanks. But I still have the same problem, and I just noticed that the NPC starts directly with ID 50005:80, skipping the first one.
  5. Hello, could someone explain to me why my shop in point shows me apples and not all the items that I put? ro_prontera,122,247,5 script Hunting Point Shop 861,{ mes "[Points Hunting]"; mes "Vous avez ^0000FF" + #HUNT_Q_POINTS + "^000000 points."; next; callshop "hunt_shop",1; end; OnInit: waitingroom "Points Hunting",0; end; } pointshop hunt_shop -1,6232:30,50005:80,12922:100,510108:200,50000:200,12240:250,12622:3é00,60016:1000,7776:50
  6. Thanks for your answer, but it doesn't work.
  7. Hello, could someone explain to me how to disable Cart Termination and Desperado Reflect on the latest version of rAthena, please? I’ve tried everything I could find on the forums, but nothing works, probably because the solutions are for older versions. Thanks for ur help.
  8. Hello, someone could tell me why this script does not work, I have no error in my console but the message is not displayed - script MonsterKill -1,{ OnNPCKillEvent: if( getmonsterinfo(killedrid, MOB_MVPEXP) ){ set #MVPPoint,#MVPPoint+1; dispbottom "Gained 1 MVP Points. Total : "+ #MVPPoint +" MVP Points."; } }
  9. Hello, I would like to know if it is possible to create a script for item bonuses that apply to skills of type "support" and "ground." I have a set that increases the skills of all classes by 10%, but with bSkillAtk, some of them do not work. I would like to know if this is possible,for example, you know that the bonus bSkillAtk,ASC_BREAKER,10; increases the damage of the skill Soul Breaker by 10%. I would like a bonus that increases the effectiveness of skills that do not deal damage. For example, the skill Deluge Lv5 provides the following effects: +20% DMG from Water Attacks / +15% Maximum HP for Water Armor. I would like a bonus like bSkillGround,SA_DELUGE,10; to increase the effect of the skill by 10%, so it would increase it to +24% DMG from Water Attacks / +18% Maximum HP for Water Armor. This for Ground and Support skill ? Thanks have a nice day
  10. Good evening, could someone tell me how to desactivate the green aura mobs in pre-renewal, there is no damage taken in the db mob but resists a lot I think it comes from the src but I can't find it
  11. Hello, could someone explain to me how to create an NPC like the 3rd suit but only with these new skins?
  12. <script src="https://gist.github.com/Litro/37bd40c7fc6374d6952d976cb8652e39.js"></script> Hello, I have an error in this source could someone tell me how to correct the mob.cpp part for new emu mob.cpp: In function ‘void mob_log_damage(mob_data*, block_list*, int)’: mob.cpp:2394:38: error: ‘struct map_data’ has no member named ‘flag’; did you mean ‘std::vector<int> map_data::flags’? (not accessible from this context) 2394 | if (mapdata->flag[MF_ATTACKMOBEVENT]) | ^~~~ In file included from status.hpp:17, from mob.hpp:13, from mob.cpp:4: map.hpp:857:26: note: declared private here 857 | std::vector<int> flags; | ^~~~~ mob.cpp:2395:42: error: invalid initialization of reference of type ‘map_session_data&’ from expression of type ‘map_session_data*’ 2395 | npc_script_event(sd, NPCE_ATTACKMOBEVENT); | ^~ In file included from mob.cpp:37: npc.hpp:1819:44: note: in passing argument 1 of ‘size_t npc_script_event(map_session_data&, npce_event)’ 1819 | size_t npc_script_event( map_session_data& sd, enum npce_event type ); Edit: Solved : struct map_data *mapdata = map_getmapdata(sd->bl.m); if (map_getmapflag(sd->bl.m, MF_ATTACKMOBEVENT) && sd != nullptr) { npc_script_event(*sd, NPCE_ATTACKMOBEVENT); }
  13. ro_prontera,248,183,4 script Equipment Enchanter 821,{ disable_items; mes "[^0000FFEnchanteur Royal^000000]"; mes "Ah, bienvenue voyageur !"; mes "Je suis l'héritier d'une longue lignée d'enchanteurs royaux."; mes "Mon art a été transmis de génération en génération..."; next; mes "[^0000FFEnchanteur Royal^000000]"; mes "Jadis, nos enchantements protégeaient le royaume entier."; mes "Aujourd'hui, je mets mon savoir à votre service."; next; if(.s_zeny > 0) mes "Pour une modique somme de " + .s_zeny + " Zeny..."; if(.item_is_required) mes "Et l'utilisation d'un orbe magique..."; mes "Je peux tenter d'enchanter votre équipement."; next; mes "[^0000FFEnchanteur Royal^000000]"; mes "Je vous conseille de retirer de votre inventaire"; mes "tout équipement similaire à celui que vous"; mes "souhaitez enchanter. Par sécurité..."; next; .@string$[0] = "Enchanter un objet"; if(.remove_enchant) .@string$[1] = "Retirer un enchantement"; if(.enable_the_shop) .@string$[2] = "Voir les objets enchantables"; mes "[^0000FFEnchanteur Royal^000000]"; mes "Que puis-je faire pour vous ?"; menu .@string$[0],L_Enchant,.@string$[1],L_Remove,.@string$[2],-; callsub Q_shop; end; L_Remove: .@remove_orbs = true; L_Enchant: next; mes "[^0000FFEnchanteur Royal^000000]"; mes "Sélectionnez l'équipement à enchanter..."; // Construction du menu d'équipement for(.@i=0; .@i<getarraysize(.s_all$); .@i++) if(getequipid(.s_all_loc[.@i])>-1) { set .@armor_menu$, .@armor_menu$ + .s_all$[.@i] + " - [ ^E81B02" + getitemname(getequipid(.s_all_loc[.@i])) + "^000000 ]:"; }else{ set .@armor_menu$, .@armor_menu$ + .s_all$[.@i] + " - [ ^D6C4E8" + "Non équipé" + "^000000 ]:"; } set .@s_all_selected, select(.@armor_menu$) -1; if(getequipid(.s_all_loc[.@s_all_selected])< 0){ mes "[^0000FFEnchanteur Royal^000000]"; mes "Vous devez d'abord équiper un objet à cet emplacement."; close; } if (countitem(getequipid(.s_all_loc[.@s_all_selected])) > 1){ mes "[^0000FFEnchanteur Royal^000000]"; mes "Je détecte plusieurs objets identiques dans votre inventaire."; mes "Par sécurité, veuillez n'en garder qu'un seul."; close; } .@s_item_refine = getequiprefinerycnt(.s_all_loc[.@s_all_selected]); if( getd(".specific_" + .s_all$[.@s_all_selected] + "s") ==1){ for(.@i=0;.@i<getarraysize(getd("." + .s_all$[.@s_all_selected] + "s$"));.@i++){ if(getequipid(.s_all_loc[.@s_all_selected]) == atoi(getd("." + .s_all$[.@s_all_selected] + "s$["+.@i+"]"))){ .@good_to_go = true; } } }else{ for(.@i=0;.@i<getarraysize(.black_list$);.@i++){ if(getequipid(.s_all_loc[.@s_all_selected]) == atoi(.black_list$[.@i])){ .@black_list_item = true; } } .@good_to_go = true; } if(!.@good_to_go || .@black_list_item){ mes "désolée"; mes "je ne peux pas enchanter cet objet."; close; } for(.@i=0;.@i<(MAX_ITEM_RDM_OPT-1);.@i++){ .@r_id[.@i] = getequiprandomoption(.s_all_loc[.@s_all_selected],.@i,ROA_ID); .@r_v[.@i] = getequiprandomoption(.s_all_loc[.@s_all_selected],.@i,ROA_VALUE); .@r_p[.@i] = getequiprandomoption(.s_all_loc[.@s_all_selected],.@i,ROA_PARAM); } .@card0 = getequipcardid(.s_all_loc[.@s_all_selected],0); .@card1 = getequipcardid(.s_all_loc[.@s_all_selected],1); .@card2 = getequipcardid(.s_all_loc[.@s_all_selected],2); .@card3 = getequipcardid(.s_all_loc[.@s_all_selected],3); if(.@remove_orbs){ next; mes "cela supprimera toutes les cartes et orbes à l'intérieur de l'objet!"; if (.s_zeny_remove > 0) { mes "cela vous coûtera " + .s_zeny_remove + " Zeny."; } mes "es-tu sûr?"; switch(select("Non:Oui")){ case 1: end; case 2: mes "pour la dernière fois!"; mes "es-tu sûr?"; switch(select("Non:Oui")){ case 1: end; case 2: if (Zeny < .s_zeny_remove) { mes "Désolé, mais tu n'as pas assez de zeny."; close; } if(.select_remove_orb){ if(.@card0 == 0).@card0$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card0$ = getitemname(.@card0); if(.@card1 == 0).@card1$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card1$ = getitemname(.@card1); if(.@card2 == 0).@card2$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card2$ = getitemname(.@card2); if(.@card3 == 0).@card3$ = " - [ ^D6C4E8" + "No Equip" + "^000000 ]:"; else .@card3$ = getitemname(.@card3); switch(select(.@card0$,.@card1$,.@card2$,.@card3$)){ case 1: .@card0 = 0; break; case 2: .@card1 = 0; break; case 3: .@card2 = 0; break; case 4: .@card3 = 0; break; } specialeffect2 EF_REPAIRWEAPON; set .@item, getequipid(.s_all_loc[.@s_all_selected]); delitem .@item,1; getitem3 .@item, 1, 1, .@s_item_refine, 0, .@card0, .@card1, .@card2, .@card3,.@r_id,.@r_v,.@r_p; set Zeny, Zeny-.s_zeny_remove; end; } specialeffect2 EF_REPAIRWEAPON; set .@item, getequipid(.s_all_loc[.@s_all_selected]); delitem .@item,1; getitem3 .@item, 1, 1, .@s_item_refine, 0, 0, 0, 0, 0,.@r_id,.@r_v,.@r_p; set Zeny, Zeny-.s_zeny_remove; end; } } } if(.chosse_orb){ next; mes "[^0000FFEnchanteur Royal^000000]"; mes "Maintenant, choisissez l'orbe magique à utiliser :"; for(.@i=0; .@i<getarraysize(getd("." + .s_all$[.@s_all_selected] + "$")); .@i++) set .@orb_menu$, .@orb_menu$ + getitemname(atoi(getd("." + .s_all$[.@s_all_selected] + "$["+.@i+"]"))) + ":"; set .@s_orb_selected, select(.@orb_menu$) -1; .@selected_orb_id = getd("." + .s_all$[.@s_all_selected] + "$["+.@s_orb_selected+"]"); }else{ .@selected_orb_size = rand(getarraysize(getd("." + .s_all$[.@s_all_selected] + "$"))); .@selected_orb_id = getd("." + .s_all$[.@s_all_selected] + "$["+.@selected_orb_size+"]"); } next; mes "[^0000FFEnchanteur Royal^000000]"; mes "Dans quel emplacement souhaitez-vous placer l'enchantement ?"; for(.@i=getd(".slot_count_" + .s_all$[.@s_all_selected]); .@i<4; .@i++) if(getequipcardid(.s_all_loc[.@s_all_selected],.@i)!= null) { set .@slot_menu$, .@slot_menu$ + " [ ^E81B02" + getitemname(getequipcardid(.s_all_loc[.@s_all_selected],.@i)) + "^000000 ]:"; }else{ set .@slot_menu$, .@slot_menu$ + " [ ^D6C4E8" + "Empty" + "^000000 ]:"; } set .@s_slot_selected, select(.@slot_menu$) -1; .@s_slot_selected += getd(".slot_count_" + .s_all$[.@s_all_selected]); if(!.s_enchant_overwrite){ if(getequipcardid(.s_all_loc[.@s_all_selected],.@s_slot_selected) > 0){ mes "vous avez déjà une orbe dans cet emplacement"; close; } } // Processus d'enchantement if (Zeny < .s_zeny) { mes "[^0000FFEnchanteur Royal^000000]"; mes "Pardonnez-moi, mais vous n'avez pas assez de zeny..."; close; } if(.item_is_required && .chosse_orb){ if (countitem(.@selected_orb_id) < 1){ mes"tu n'as pas d'orbe d'enchantement"; close; } } // Animation et résultat close2; specialeffect2 EF_MAPPILLAR; progressbar "ffff00",.progress_time; // Prélever les coûts if(.item_is_required && .chosse_orb){ delitem .@selected_orb_id,1; // Supprimer l'orbe utilisé } if (Zeny >= .s_zeny) { Zeny -= .s_zeny; // Enlever le zeny } if (rand(100) < .success_chanse[.@s_slot_selected]){ // Sauvegarde l'ID de l'item avant suppression set .@item_id, getequipid(.s_all_loc[.@s_all_selected]); // Supprime l'item original delitem .@item_id,1; // Annonce le succès if (.@item_id && getitemname(.@item_id) != "null") { announce "~~ Les arcanes résonnent ! "+strcharinfo(0)+" a réussi son enchantement sur "+getitemname(.@item_id)+" ! ~~",bc_all; } specialeffect2 154; mes "[^0000FFEnchanteur Royal^000000]"; mes "^00FF00L'enchantement est un succès !^000000"; mes "Les énergies magiques se sont parfaitement alignées."; // Applique l'enchantement et redonne l'item setd(".@card" + .@s_slot_selected, .@selected_orb_id); getitem3 .@item_id, 1, 1, .@s_item_refine, 0, .@card0, .@card1, .@card2, .@card3,.@r_id,.@r_v,.@r_p; equip .@item_id; close; } OnInit: //--------------------------------------------------------------// //--------------------------------------------------------------// //-------------------- configuration -----------------------// //--------------------------------------------------------------// //--------------------------------------------------------------// //--------------------------------------------------------------// //if you want to remove one from the menu you need to remove it down too!! /or add //--------------------------------------------------------------// setarray .s_all$,"Armor","Shield","Germent","Shose","Accessary","Upper","Middel","Lower"; setarray .s_all_loc,EQI_ARMOR,EQI_HAND_L,EQI_GARMENT,EQI_SHOES,EQI_ACC_L,EQI_HEAD_TOP,EQI_HEAD_MID,EQI_HEAD_LOW; //--------------------------------------------------------------// //Orbs IDs (Note : Shield = left hand so the weapon on the left hand count as Shield too! //--------------------------------------------------------------// setarray .Armor$,29242,29302,29303,29304,29305,29306,29307,29308,29309,29361,29438; setarray .Shield$,20022,20023; setarray .Germent$,20020,20021; setarray .Shose$,20001,20002,20003,20004,20005,20007,20008,20009,20010,20011,20012,20013,20014,20015,20016,20017,20018,20019; setarray .Accessary$,4763,4765,29240; setarray .Upper$,4709,4719,4729,4739,4749,4759,29443; setarray .Middel$,4709,4719,4729,4739,4749,4759,29443; setarray .Lower$,4709,4719,4729,4739,4749,4759,29443; //--------------------------------------------------------------// //if you want to put specific IDs for kind of gear put it to 1 //--------------------------------------------------------------// .specific_Armors = false; .specific_Shields = false; .specific_Germents = false; .specific_Shoses = false; .specific_Accessarys = false; .specific_Uppers = false; .specific_Middels = false; .specific_Lowers = false; //--------------------------------------------------------------// //here you can make a specific slot number for each kind //0 = all 4 slot ,1 = last 3 slot ,2 = last 2 slot ,3 = last 1 slot //--------------------------------------------------------------// .slot_count_Armor = 3; .slot_count_Shield = 3; .slot_count_Germent = 3; .slot_count_Shose = 3; .slot_count_Accessary = 3; .slot_count_Upper = 3; .slot_count_Middel = 3; .slot_count_Lower = 3; //--------------------------------------------------------------// //other configuration //--------------------------------------------------------------// setarray .success_chanse,0,0,0,100; //success chanse [1st_slot_chanse,2nd_slot_chanse,3rd_slot_chanse,4th_slot_chanse] .s_zeny = 10000; //if you don't want zeny requirment set it to 0 .s_zeny_remove = 10000; //this for enchantment reset .item_is_required = true; //if you want the orb it self to be required true = yes , false = no(if .chosse_orb = false this will be false too) .s_enchant_overwrite = false; //if true then you can overwrite the enchant .progress_time = 2; //the time that needed to wait until the socket end .chosse_orb = true; //false = random ,true = yes .remove_enchant = true; //false = no ,true = yes .select_remove_orb = true; } Hello, I customized the enchantment script but I have a small problem I do not understand why I cannot dislodge the enchanted orbs otherwise everything else works, I have no errors in the console if anyone can help me please
×
×
  • Create New...