Jump to content

Haruka Mayumi

Members
  • Posts

    485
  • Joined

  • Last visited

  • Days Won

    27

Everything posted by Haruka Mayumi

  1. 1. go to your grf. extract the izlude.gat. 2. download Weepmapcache. 3. open WeepMapCache 4. open db/import/map_cache.dat 5. drag and drop izlude.gat on weepmapcache. 6. save and done. restart server
  2. as far as i know. the client reads the animation first before sending another action from the player. so you need to remove the animation of hiding skill.. there are times that skill_db.txt wont solve your problems. clif.cpp bool clif_skill_nodamage(struct block_list *src,struct block_list *dst, uint16 skill_id, int heal, t_tick tick) { unsigned char buf[17]; #if PACKETVER < 20130731 const int cmd = 0x11a; #else const int cmd = 0x9cb; #endif int offset = 0; bool success = ( tick != 0 ); nullpo_ret(dst); + if( skill_id == TF_HIDING ) return success;
  3. presently, there is no way you can make a private chat on npc.. alternative way to do this is talk to the npc instead of clicking the waitingroom.
  4. you dont use commands outside a script.. you use it like this - script control -1,{ OnMon1246: enablenpc "npc"; end; OnMon1247: disablenpc "npc"; end; } prontera,153,181,4 script npc 94,{ npctalk "Hello There"; end; OnInit: disablenpc strnpcinfo(0); end; } but i prefer to use the command gettime() for days which is much more flexible since OnDay command only works at the given time.. Sample: prontera,153,181,4 script npc 94,{ npctalk "Hello There"; end; } - script control -1,{ OnInit: OnHour00: if(gettime(DT_DAYOFWEEK)==MONDAY) enablenpc "npc"; else disablenpc "npc"; end; } As you can see here. whenever the server/script loads again. it will check if the npc should show or hide.. not like the OnDay, it only triggers on certain time.
  5. as it says. UNIDENTIFIED.. so if the item is unidentified. the sprite you put there will be the one that shows.. see the [SWORD] unidentified and identified is different.
  6. in skill_db.txt 289,9,6,1,0,0x1,0:0:0:0:0:-1,5,1,yes,0,0xE00,0,magic,0,0x10020, SA_DISPELL,Dispell change the inf3 into 289,9,6,1,0,0x1,0:0:0:0:0:-1,5,1,yes,0,0xE00,0,magic,0,0x20, SA_DISPELL,Dispell removing this // 0x010000 - skill that affects hidden targets
  7. case KO_ZANZOU: { int c = 0; i = map_foreachinmap(skill_check_condition_mob_master_sub, sd->bl.m, BL_MOB, sd->bl.id, MOBID_ZANZOU, skill_id, &c); if( c >= skill_get_maxcount(skill_id,skill_lv) || c != i) { clif_skill_fail(sd , skill_id, USESKILL_FAIL_LEVEL, 0); return false; } } break; + case MO_EXTREMITYFIST: + if( !sd->spiritball || !sd->sc.data[SC_EXPLOSIONSPIRITS]){ + clif_skill_fail(sd , skill_id, USESKILL_FAIL_LEVEL, 0); + return false; + } + break; } in skill.cpp
  8. You must declare the shop first because on the script. it read the V4P manager first and run the OnInit first.. although its okay if you use @reloadscript to show the items. but its not the case on @reloadnpcfile. - shop votepoints_shop -1,512:-1 vip_lounge,140,243,4 script V4P Manager 62,{ function getPoints; set .@n$, "[VFP Manager]"; set .@settings, 1; // 0 = item, 1 = shop set .@itemReward, 501; // if settings is set to item set .@convertRate, 2; // 2 Vote Points for 1 Red Potion set .vp, getPoints(getcharid(3)); switch (.@settings) { case 0: mes .@n$; mes "Would you like to convert your "+ .vp +" Vote Points?"; mes "^ff0000The current convert rate is "+ .@convertRate +" Vote Points for 1 "+ getitemname(.@itemReward) +"."; next; menu "Yes", L_Convert, "No", -; mes .@n$; mes "Bye, then."; break; case 1: mes .@n$; mes "You have ^ff0000"+ .vp +"^000000 Vote Points."; mes "Would you like to go shopping?"; next; menu "Yes", -, "No", L_Goodbye; mes .@n$; mes "Have fun shopping!"; callshop "votepoints_shop",1; npcshopattach "votepoints_shop"; end; } L_Goodbye: mes .@n$; mes "Goodbye, then."; close; L_Convert: if (.vp < .@convertRate) goto L_VotePointsTooLow; mes .@n$; mes "How much Vote Points would you like to convert?"; next; menu "All", L_ConvertAll, "Input Amount", L_ConvertAmount; L_ConvertAmount: input .@convert; if (.@convert > .vp) goto L_VotePointsTooLow; set .vp, ((.vp - .@convert) + (.@convert % .@convertRate)); set .@convert, (.@convert / .@convertRate); getitem .@itemReward, .@convert; query_sql("UPDATE cp_createlog SET votepoints = "+ .vp +" WHERE account_id = "+ getcharid(3)); mes .@n$; mes "You have received "+ .@convert +"x "+ getitemname(.@itemReward) +"."; mes "Your current Vote Points is "+ .vp; close; L_ConvertAll: set .@convert, (.vp / .@convertRate); set .vp, (.vp % .@convertRate); getitem .@itemReward, .@convert; query_sql("UPDATE cp_createlog SET votepoints = "+ .vp +" WHERE account_id = "+ getcharid(3)); mes .@n$; mes "You have received "+ .@convert +"x "+ getitemname(.@itemReward) +"."; mes "Your current Vote Points is "+ .vp; close; L_VotePointsTooLow: mes .@n$; mes "Your Vote Points is too low. Come back when you have the minimum amount of Vote Points."; close; function getPoints { set .@account_id, getarg(0); set .@count, query_sql("SELECT votepoints FROM cp_createlog WHERE account_id = "+ .@account_id, .@votepoints); return .@count ? .@votepoints : 0; } OnBuyItem: set .@cost,0; for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) for(set .@j,0; .@j<getarraysize(.itemShop); set .@j,.@j+2) if (@bought_nameid[.@i] == .itemShop[.@j]) { set .@cost, .@cost+(.itemShop[.@j+1]*@bought_quantity[.@i]); break; } mes .@n$; if (.@cost > .vp) mes "You don't have enough Vote Points."; else { for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) { getitem @bought_nameid[.@i], @bought_quantity[.@i]; dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"."; } set .vp, .vp - .@cost; query_sql("UPDATE cp_createlog SET votepoints = votepoints - "+ .@cost +" WHERE account_id = "+ getcharid(3)); mes .@n$; mes "Deal completed."; mes "You now have ^ff0000"+ .vp +"^000000 Vote Points."; emotion et_money; } set .@cost,0; deletearray @bought_nameid[0], getarraysize(@bought_nameid); deletearray @bought_quantity[0], getarraysize(@bought_quantity); close; OnInit: setarray .itemShop[0], 501,2,607,5; // <ITEM_ID>,<PRICE>,... npcshopdelitem "votepoints_shop",512; for(set .@i, 0; .@i < getarraysize(.itemShop); set .@i, .@i+2) npcshopadditem "votepoints_shop", .itemShop[.@i], .itemShop[.@i+1]; end; }
  9. it seems like all the headgear doesnt have sprite?.. then the problem might be in accname and accessoryid there might be typos inserted.
  10. https://github.com/rathena/rathena/issues/2127
  11. query_sql for card effect bonus_script .@query_variable$,<duration>{,<flag>{,<type>{,<status_icon>{,<char_id>}}}};
  12. It's very interesting that he is looking for a cheat from a ragnarok developing forum where the developers doing their best to track and fix bugs and make the game fair. rofl
  13. if(Zeny < 1000000) { should be greater than if(Zeny > 1000000) {
  14. setcell walkable then Create 4 mobs(barricade) must have event label then once they died, you can setcell again the walkable path..
  15. it has an outdated query. right now its just a warning. but in the future it will be an error ?
  16. Ohh.. maybe if someone can create this.. i wonder if it they will ask for pull request. EDIT: i had time right now. so i made it. I wonder if i got what's on your mind. maybe create an state too? (sd->state.gainzeny)? nozeny_flag.diff
  17. you should insert the script if you want some help.. and as i can see, there's no @joinevent bindcommand. it should have something like this OnJoinEvent: warp "eventmap",x,y; end; OnInit: bindatcmd "joinevent","Event::OnJoinEvent"; end; you should have asked @crazyarashi since he made this script.. he has the best script compatible for this one. but here, you can save and load this.. there might be some inconsistencies. - script joinevent -1,{ OnJoinEvent: if($dice_enter) warp "quiz_01",204,92; else if($poring_enter) warp "poring_c01",100,100; end; OnInit: bindatcmd "joinevent","joinevent::OnJoinEvent"; end; }
  18. OnInit: while(1){ delwaitingroom; waitingroom "PvP Arena ["+getmapusers("pvproom")+"]",0; sleep 1000; } end; Here's another way. if ever you are already using timer on your script. ^_~
  19. gtb_sc_immunity in item.conf is for blocking buffs/debuffs. when bonus bNoMagicDamage is higher than the gtb_sc_immunity. you should change the golden thief bug card script from bonus bNoMagicDamage,100; to bonus bNoMagicDamage,50;(50 %) since the default of gtb_sc_immunity is 40. dispels wont work against you because the bNoMagicDamage is higher than 40. changing the item script to 35 would allow players to dispel you and at the same time, less magic resistance.
  20. skill.cpp Remove SCCB_CHEM_PROTECT case 3: // THE HIGH PRIESTESS - all buffs removed { status_change_clear_buffs(target, SCCB_BUFFS | SCCB_CHEM_PROTECT); break; } should look like this case 3: // THE HIGH PRIESTESS - all buffs removed { status_change_clear_buffs(target, SCCB_BUFFS ); break; }
  21. skill_db.txt // 0x00010 - skill that could hit emperium
  22. if (getmapusers("quiz_02") > 1) { to if (getmapusers("quiz_02") <= 1) {
×
×
  • Create New...