Jump to content

Cyro

Members
  • Posts

    1137
  • Joined

  • Last visited

  • Days Won

    30

Community Answers

  1. Cyro's post in How to reset guild skills? was marked as the answer   
    you can change them in guild_skill table in ur db
  2. Cyro's post in Add custom box was marked as the answer   
    since you are confused, use  this method
    501,Red_Potion,Red Potion,0,50,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "CustomBox"; },{},{} function script CustomBox { setarray .BoxItems[0],501,502,503; set .Random, getarraysize( .BoxItems ); getitem .BoxItems[ rand( .Random ) ], 1; announce "["+strcharinfo(0)+"] has just obtained a ["+getitemname(.BoxItems[ .Random ])+"] from a Custom Box.",0; end; } change your item id, and give it any box sprite in your iteminfo
    and change items that box gives here
    .BoxItems[0],501,502,503; ,
  3. Cyro's post in Unknown Cause of Map-Crash was marked as the answer   
    In case you are using dedicated server
    Take a look at this topic 
    https://rathena.org/board/topic/53447-how-to-enable-crashcore-dumps-in-your-server-linux/
  4. Cyro's post in GRF file saved inside client folder was marked as the answer   
    The best way to do it is to make a separate directory called data and put all of your files in their using the same folder construction/format as your regular RO data folder would use. That will be your input directory, which contains any modifications you are making to your client files. If your server is using a GRF rather than a data folder, make sure you have the RO-GRF option selected below the output and type in the name of your GRF, if you want to patch it to any other folder select FILE instead RO_GRF, and when you click generate it will popup which folder the file to be patched and you can chose it 

    if this seems complicated for you, use GRF editor to make thor files which will be easier 
  5. Cyro's post in Add Shop to Euphy's Hunting Mission was marked as the answer   
    prontera,155,181,5 pointshop Mission Shop 757,MACHINE_POINT,909:-1,607:-1 prontera,155,181,5 pointshop Mission Shop2 757,MACHINE_POINT,909:-1,607:-1 prontera,155,181,5 pointshop Mission Shop3 757,MACHINE_POINT,909:-1,607:-1 you can use point shop npc's too, and your callshop modification isnt working? any errors?
  6. Cyro's post in DB Error - Data of field 'option_val0' was truncated was marked as the answer   
    https://github.com/rathena/rathena/commit/19d620575a549897ac6c8478cd1082564d251712/?diff=unified
    https://github.com/rathena/rathena/commit/dc8471d 
    fixed here 
  7. Cyro's post in Card View drawing was marked as the answer   
    *cutin "<filename>",<position>; This command will display a picture, usually an NPC illustration, also called cutin, for the currently attached client. The position parameter determines the placement of the illustration and takes following values: 0 - bottom left corner 1 - bottom middle 2 - bottom right corner 3 - middle of screen in a movable window with an empty title bar 4 - middle of screen without the window header, but still movable The picture is read from data\texture\유저인터페이스\illust, from both the GRF archive and data folder, and is required to be a bitmap. The file extension .bmp can be omitted. Magenta color (#ff00ff) is considered transparent. There is no limit placed on the size of the illustrations by the client, although loading of large pictures (about 700x700 and larger) causes the client to freeze shortly (lag). Typically the size is about 320x480. New illustrations can be added by just putting the new file into the location above. The client is able to display only one cutin at the same time and each new one will cause the old one to disappear. To delete the currently displayed illustration without displaying a new one, an empty file name and position 255 must be used. // Displays the Comodo Kafra illustration in lower right corner. cutin "kafra_07",2; // Typical way to end a script, which displayed an illustration during a // dialog with a player. mes "See you."; close2; cutin "",255; end;  
  8. Cyro's post in Setup Ragnarok Episode was marked as the answer   
    you have to manually enter all dbs and npcs and dont use what doesnt match up to the episode you want to use 
    Here is link to check what exactly in that particular version you want to set
    http://rode.doddlercon.com/db/guide/ep111.html
  9. Cyro's post in R> MVP CARD MONITORING was marked as the answer   
    prontera,155,187,5 script cardcheck 100,{ mes "blah"; next; select "search by input player name/ID", "search by card ID"; if ( @menu == 1 ) { switch ( select ( "Char Name", "Account ID", "Char ID" ) ) { case 1: input .@id$; if ( isloggedin( getcharid( 3, .@id$ ) ) ) { .@cid = getcharid( 0, .@id$ ); .@aid = getcharid( 3, .@id$ ); .@name$ = rid2name( getcharid( 3, .@id$ ) ); } else { if ( !query_sql( "select char_id, account_id, name from `char` where name = '"+ escape_sql( .@id$ ) +"'", .@cid, .@aid, .@name$ ) ) { mes "There is no such Character Name exist"; close; } } break; case 2: input .@id; if ( !( .@nb = query_sql( "select char_id, name, char_num, account_id from `char` where account_id = "+ .@id +" order by char_num asc", .@cid, .@name$, .@gid, .@aid ) ) ) { mes "There is no such Account ID"; close; } for ( .@i = 0; .@i < .@nb; .@i++ ) { mes ( .@gid[.@i] +1 )+". "+ .@cid[.@i] +" "+ .@name$[.@i]; .@menu$ = .@menu$ +( .@gid[.@i] +1 )+". "+ .@cid[.@i]; } next; .@s = select( .@menu$ ) -1; .@cid = .@cid[.@s]; .@aid = .@aid[.@s]; .@name$ = .@name$[.@s]; break; case 3: input .@id; if ( !query_sql( "select char_id, account_id, name from `char` where char_id = "+ .@id, .@cid, .@aid, .@name$ ) ) { mes "There is no such Character ID exist"; close; } } mes "The player ^0000FF"+ .@name$ +"^000000 is "+( ( isloggedin(.@aid) )?"^00FF00Online":"^FF0000Offline" )+"^000000"; if ( isloggedin( .@aid, .@cid ) ) { .@origin = getcharid(3); attachrid .@aid; getinventorylist; for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) { if ( compare( .mvpcard_compare$, "#"+ @inventorylist_id[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card1[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card2[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card3[.@i] +"#" ) || compare( .mvpcard_compare$, "#"+ @inventorylist_card4[.@i] +"#" ) ) { .@itemid[.@c] = @inventorylist_id[.@i]; .@amount[.@c] = @inventorylist_amount[.@i]; .@identify[.@c] = @inventorylist_identify[.@i]; .@refine[.@c] = @inventorylist_refine[.@i]; .@broken[.@c] = @inventorylist_attribute[.@i]; .@card1[.@c] = @inventorylist_card1[.@i]; .@card2[.@c] = @inventorylist_card2[.@i]; .@card3[.@c] = @inventorylist_card3[.@i]; .@card4[.@c] = @inventorylist_card4[.@i]; attachrid .@origin; mes @itemname2_info$[0] + callfunc( "getitemname2", .@itemid[.@c], .@identify[.@c], .@refine[.@c], .@broken[.@c], .@card1[.@c], .@card2[.@c], .@card3[.@c], .@card4[.@c] ) +":^000000 "+ .@amount[.@c] +" ea."; attachrid .@aid; .@c++; } } attachrid .@origin; } else { .@nb = query_sql( "select nameid, amount, identify, refine, attribute, card0, card1, card2, card3 from inventory where "+ .query_sql$ +" and char_id = "+ .@cid, .@itemid, .@amount, .@identify, .@refine, .@broken, .@card0, .@card1, .@card2, .@card3 ); for ( .@i = 0; .@i < .@nb; .@i++ ) mes @itemname2_info$[0] + callfunc( "getitemname2", .@itemid[.@i], .@identify[.@i], .@refine[.@i], .@broken[.@i], .@card0[.@i], .@card1[.@i], .@card2[.@i], .@card3[.@i] )+":^000000 "+ .@amount[.@i] +" ea."; } } close; OnInit: query_sql "select dropcardid from mob_db where mexp != 0 and dropcardper = 1", .mvpcard; .mvpcard_size = getarraysize( .mvpcard ); .mvpcard_compare$ = "#"; for ( .@i = 1; .@i < .mvpcard_size; .@i++ ) { .@nameid$ = .@nameid$ +","+ .mvpcard[.@i]; .@card0$ = .@card0$ +","+ .mvpcard[.@i]; .@card1$ = .@card1$ +","+ .mvpcard[.@i]; .@card2$ = .@card2$ +","+ .mvpcard[.@i]; .@card3$ = .@card3$ +","+ .mvpcard[.@i]; .mvpcard_compare$ = .mvpcard_compare$ + .mvpcard[.@i] +"#"; } for ( .@i = 0; .@i < .mvpcard_size; .@i++ ) { } .query_sql$ = "( nameid in ("+ .mvpcard + .@nameid$ +") or card0 in ("+ .mvpcard + .@card0$ +") or card1 in ("+ .mvpcard + .@card1$ +") or card2 in ("+ .mvpcard + .@card2$ +") or card3 in ("+ .mvpcard + .@card3$ +") )"; end; }  
  10. Cyro's post in Kill player reward was marked as the answer   
    - script pvp_point -1,{ OnPCKilLEvent: if ( getcharid(3) != killedrid && strcharinfo(3) == "yourmanonamhere" ) { getotem 7227,1; dispbottom "One Tcg card"; } end; }  
  11. Cyro's post in savepoint was marked as the answer   
    savepoint glemior,198,281,1,1; change this to
    savepoint "glemior" ,198,281; this one
  12. Cyro's post in wearable & not wearable lol was marked as the answer   
    Job: Equippable jobs. Uses the following bitmask table:
    (S.) Novice (2^00): 0x00000001
    Swordman (2^01): 0x00000002
    Magician (2^02): 0x00000004
    Archer (2^03): 0x00000008
    Acolyte (2^04): 0x00000010
    Merchant (2^05): 0x00000020
    Thief (2^06): 0x00000040
    Knight (2^07): 0x00000080
    Priest (2^08): 0x00000100
    Wizard (2^09): 0x00000200
    Blacksmith (2^10): 0x00000400
    Hunter (2^11): 0x00000800
    Assassin (2^12): 0x00001000
    Unused (2^13): 0x00002000
    Crusader (2^14): 0x00004000
    Monk (2^15): 0x00008000
    Sage (2^16): 0x00010000
    Rogue (2^17): 0x00020000
    Alchemist (2^18): 0x00040000
    Bard/Dancer (2^19): 0x00080000
    Unused (2^20): 0x00100000
    Taekwon (2^21): 0x00200000
    Star Gladiator (2^22): 0x00400000
    Soul Linker (2^23): 0x00800000
    Gunslinger (2^24): 0x01000000
    Ninja (2^25): 0x02000000
    Gangsi (2^26): 0x04000000
    Death Knight (2^27): 0x08000000
    Dark Collector (2^28): 0x10000000
    Kagerou/Oboro (2^29): 0x20000000
    Rebellion (2^30): 0x40000000
    Summoner (2^31): 0x80000000
     
    Novice + Swordman + Magician + Archer = 0x0000000F, why?
    Because: 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, and 15 = F
    It's using hexadecimal.
  13. Cyro's post in @rates ACMD_FUNC(rates) was marked as the answer   
    at src/map/atcommand.c 
    find this
    ACMD_FUNC(rates) { char buf[CHAT_SIZE_MAX]; nullpo_ret(sd); memset(buf, '\0', sizeof(buf)); snprintf(buf, CHAT_SIZE_MAX, msg_txt(sd,1298), // Experience rates: Base %.2fx / Job %.2fx (battle_config.base_exp_rate + (pc_isvip(sd) ? (battle_config.vip_base_exp_increase * battle_config.base_exp_rate) / 100 : 0)) / 100., (battle_config.job_exp_rate + (pc_isvip(sd) ? (battle_config.vip_job_exp_increase * battle_config.job_exp_rate) / 100 : 0)) / 100.); clif_displaymessage(fd, buf); snprintf(buf, CHAT_SIZE_MAX, msg_txt(sd,1299), // Normal Drop Rates: Common %.2fx / Healing %.2fx / Usable %.2fx / Equipment %.2fx / Card %.2fx (battle_config.item_rate_common + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_common) / 100 : 0)) / 100., (battle_config.item_rate_heal + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_heal) / 100 : 0)) / 100., (battle_config.item_rate_use + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_use) / 100 : 0)) / 100., (battle_config.item_rate_equip + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_equip) / 100 : 0)) / 100., (battle_config.item_rate_card + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_card) / 100 : 0)) / 100.); clif_displaymessage(fd, buf); snprintf(buf, CHAT_SIZE_MAX, msg_txt(sd,1300), // Boss Drop Rates: Common %.2fx / Healing %.2fx / Usable %.2fx / Equipment %.2fx / Card %.2fx (battle_config.item_rate_common_boss + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_common_boss) / 100 : 0)) / 100., (battle_config.item_rate_heal_boss + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_heal_boss) / 100 : 0)) / 100., (battle_config.item_rate_use_boss + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_use_boss) / 100 : 0)) / 100., (battle_config.item_rate_equip_boss + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_equip_boss) / 100 : 0)) / 100., (battle_config.item_rate_card_boss + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_card_boss) / 100 : 0)) / 100.); clif_displaymessage(fd, buf); snprintf(buf, CHAT_SIZE_MAX, msg_txt(sd,1024), // MVP Drop Rates: Common %.2fx / Healing %.2fx / Usable %.2fx / Equipment %.2fx / Card %.2fx (battle_config.item_rate_common_mvp + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_common_mvp) / 100 : 0)) / 100., (battle_config.item_rate_heal_mvp + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_heal_mvp) / 100 : 0)) / 100., (battle_config.item_rate_use_mvp + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_use_mvp) / 100 : 0)) / 100., (battle_config.item_rate_equip_mvp + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_equip_mvp) / 100 : 0)) / 100., (battle_config.item_rate_card_mvp + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_card_mvp) / 100 : 0)) / 100.); clif_displaymessage(fd, buf); snprintf(buf, CHAT_SIZE_MAX, msg_txt(sd,1301), // Other Drop Rates: MvP %.2fx / Card-Based %.2fx / Treasure %.2fx (battle_config.item_rate_mvp + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_mvp) / 100 : 0)) / 100., (battle_config.item_rate_adddrop + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_adddrop) / 100 : 0)) / 100., (battle_config.item_rate_treasure + (pc_isvip(sd) ? (battle_config.vip_drop_increase * battle_config.item_rate_treasure) / 100 : 0)) / 100.); clif_displaymessage(fd, buf); return 0; } and replace wit this
    ACMD_FUNC(rates) { char buf[CHAT_SIZE_MAX]; nullpo_ret(sd); memset(buf, '\0', sizeof(buf)); snprintf(buf, CHAT_SIZE_MAX, msg_txt(sd,1298), // Experience rates: Base %.2fx / Job %.2fx (battle_config.base_exp_rate + (pc_isvip(sd) ? (battle_config.vip_base_exp_increase * battle_config.base_exp_rate) / 100 : 0)) / 100., (battle_config.job_exp_rate + (pc_isvip(sd) ? (battle_config.vip_job_exp_increase * battle_config.job_exp_rate) / 100 : 0)) / 100.); clif_displaymessage(fd, buf); return 0; }  
     
    And recompile 
  14. Cyro's post in Special Effect (Disable Notification) was marked as the answer   
    src/map/atcommand.c
    find this and change as your need
    /*========================================== *@effect *------------------------------------------*/ ACMD_FUNC(effect) { int type = 0, flag = 0; nullpo_retr(-1, sd); if (!message || !*message || sscanf(message, "%11d", &type) < 1) { clif_displaymessage(fd, msg_txt(sd,1152)); // Please enter an effect number (usage: @effect <effect number>). return -1; } clif_specialeffect(&sd->bl, type, (send_target)flag); clif_displaymessage(fd, msg_txt(sd,229)); // Your effect has changed. return 0; }  
  15. Cyro's post in -bash: ./athena-start: /bin/sh^M: was marked as the answer   
    i sense this is resource issue, you using 1gb ram?
    and what is the version of rathena you using?

    pretty sure this issue will be solved if you upgrade it to one gb ram
     
    and also check ram when stopped while loading npc's scripts at some point
  16. Cyro's post in Pls Help i need warp script was marked as the answer   
    prontera,193,236,0 warp payon 2,2,payon,235,324 if you meant warp portal script try this
  17. Cyro's post in something noob question but need answer was marked as the answer   
    modify and redistributing any content which is copyrighted may get you into trouble,


     
    a lot of copyrighted content is downloadable from internet , even those websites like google,youtube states "content may have copyrights"
    as long as the content you are trying to use not copyrighted (or at-least not copy righted to distribute in your country) you are safe to use (most of the anime is japan copyrighted? make yourself sure about it)

     
    creating private ragnarok server using rAthena emulator is safe since rAthena is public licensed under GNU
     
    However, the distribution of Gravity's game client, modified to work with private servers, is against international trademark and copyright laws as per the Berne Convention. Gravity's RO client is 'free' to download and use, not 'free' to modify and re-distribute.
     
  18. Cyro's post in OnPCLoginEvent queue full :( was marked as the answer   
    trunk/src/map/map.h
    #define MAX_EVENTQUEUE 2 increase the value
    then recompile 
  19. Cyro's post in [WTA] What stable newest client for rathena with doram class, and clan system ? was marked as the answer   
    any client after 2015-10-01 is doram supported, 
    the latest client released in rathena is 2016-12-28 
    as i know you can use 2015-11-04 
  20. Cyro's post in Any news on BG Queue? was marked as the answer   
    well its nice feature to have, for that only feature people using Ramod emulator even it is giving a bunch of errors 
    even i am wishing to have  the bg queue mode in rathena,
    our new Developer has mentioned he is working on it on his intro
    here is the link for it 
    lets wait for it

    PS:- i dont think its not that easy to make bg q(at least for me xD

     
     
    i like the chess concept, is it made by you?

    PS- not everyone capable of making stuff who is still learning stuffs (like me), so if u can help its great, else just ignore
  21. Cyro's post in Script request for hourly rewards was marked as the answer   
    there is plenty of threads for Hourly points 
    try searching and modify it as your need 
    here is a link i searched for you
     
    https://pastebin.com/EBjSiPb8
  22. Cyro's post in First try to open a Server, Hosting, VPS, Need Help was marked as the answer   
    Read guides, install everything by yourself 
    Do not buy any reseller/ro hosting 
    Ovh, Do is hosting companies, choose provider as your location 
  23. Cyro's post in Need help with Skins, UI, Login, Loading, Background was marked as the answer   
    You need to add them to your skinn folder 
  24. Cyro's post in Hourly Reward Script Please. was marked as the answer   
    https://rathena.org/board/topic/87128-hourly-point-rewards/
    Edit it as your need 
  25. Cyro's post in Drop Rate was marked as the answer   
    item_rate_card: 1000 item_rate_card_boss: 500 item_rate_card_mvp: 200 item_drop_card_min: 1 item_drop_card_max: 1000 find this and replace the values,  
    suggestion - use the code box in future which look clean xD
×
×
  • Create New...