Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/16/12 in all areas

  1. It was a pleasure working with the rAthena community =] By the time most of you have read this I will be either asleep or already gone. I am leaving to U.S. Army BCT (Boot camp) followed by AIT/DLI for 35P MOS It will be quite a few months before I have access to internet again and able to get online without being too busy. Take care! PS: Ind, you still owe me 100 commits in one day. We better hit 16250 commits by the time I am back (or at least fix all listed bugs )
    4 points
  2. Hi guys i made this simple modification to stop corruption in my server... This little snippet would allow you to stop GMs from abusing @monster command.. it will announce the Monster name, Amount and also the location with the GM name so its very easy to know if it was for an Purpose or just for abuse.... /*========================================== * *------------------------------------------*/ ACMD_FUNC(monster) { char name[NAME_LENGTH]; char monster[NAME_LENGTH]; int mob_id; int number = 0; int count; int i, k, range; short mx, my; nullpo_retr(-1, sd); memset(name, '0', sizeof(name)); memset(monster, '0', sizeof(monster)); memset(atcmd_output, '0', sizeof(atcmd_output)); if (!message || !*message) { clif_displaymessage(fd, msg_txt(80)); // Give the display name or monster name/id please. return -1; } if (sscanf(message, ""%23[^"]" %23s %d", name, monster, &number) > 1 || sscanf(message, "%23s "%23[^"]" %d", monster, name, &number) > 1) { //All data can be left as it is. } else if ((count=sscanf(message, "%23s %d %23s", monster, &number, name)) > 1) { //Here, it is possible name was not given and we are using monster for it. if (count < 3) //Blank mob's name. name[0] = '0'; } else if (sscanf(message, "%23s %23s %d", name, monster, &number) > 1) { //All data can be left as it is. } else if (sscanf(message, "%23s", monster) > 0) { //As before, name may be already filled. name[0] = '0'; } else { clif_displaymessage(fd, msg_txt(80)); // Give a display name and monster name/id please. return -1; } if ((mob_id = mobdb_searchname(monster)) == 0) // check name first (to avoid possible name begining by a number) mob_id = mobdb_checkid(atoi(monster)); if (mob_id == 0) { clif_displaymessage(fd, msg_txt(40)); // Invalid monster ID or name. return -1; } if (mob_id == MOBID_EMPERIUM) { clif_displaymessage(fd, msg_txt(83)); // Monster 'Emperium' cannot be spawned. return -1; } if (number <= 0) number = 1; if (strlen(name) < 1) strcpy(name, "--ja--"); // If value of atcommand_spawn_quantity_limit directive is greater than or equal to 1 and quantity of monsters is greater than value of the directive if (battle_config.atc_spawn_quantity_limit && number > battle_config.atc_spawn_quantity_limit) number = battle_config.atc_spawn_quantity_limit; if (battle_config.etc_log) ShowInfo("%s monster='%s' name='%s' id=%d count=%d (%d,%d)n", command, monster, name, mob_id, number, sd->bl.x, sd->bl.y); count = 0; range = (int)sqrt((float)number) +2; // calculation of an odd number (+ 4 area around) for (i = 0; i < number; i++) { map_search_freecell(&sd->bl, 0, &mx, &my, range, range, 0); k = mob_once_spawn(sd, sd->bl.m, mx, my, name, mob_id, 1, ""); count += (k != 0) ? 1 : 0; } if (count != 0) if (number == count){ if(pc_isGM(sd)==99){ // Checks if the GM level is below 99 Announcement is made [Vengeance] clif_displaymessage(fd, msg_txt(39)); // All monster summoned! } else { sprintf(atcmd_output, "%s summoned %d %s in %s,%d,%d", sd->status.name,number, monster, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y); intif_broadcast(atcmd_output, strlen(atcmd_output) + 1, 0); clif_displaymessage(fd, msg_txt(39)); // All monster summoned! } } else { sprintf(atcmd_output, "%s summoned %d %s in %s,%d,%d", sd->status.name,number, monster, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y); intif_broadcast(atcmd_output, strlen(atcmd_output) + 1, 0); sprintf(atcmd_output, msg_txt(240), count); // %d monster(s) summoned! clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_txt(40)); // Invalid monster ID or name. return -1; } return 0; } // small monster spawning [Valaris] ACMD_FUNC(monstersmall) { char name[NAME_LENGTH] = ""; char monster[NAME_LENGTH] = ""; int mob_id = 0; int number = 0; int x = 0; int y = 0; int count; int i; nullpo_retr(-1, sd); if (!message || !*message) { clif_displaymessage(fd, "Give a monster name/id please."); return -1; } if (sscanf(message, ""%23[^"]" %23s %d %d %d", name, monster, &number, &x, &y) < 2 && sscanf(message, "%23s "%23[^"]" %d %d %d", monster, name, &number, &x, &y) < 2 && sscanf(message, "%23s %d %23s %d %d", monster, &number, name, &x, &y) < 1) { clif_displaymessage(fd, "Give a monster name/id please."); return -1; } // If monster identifier/name argument is a name if ((mob_id = mobdb_searchname(monster)) == 0) // check name first (to avoid possible name begining by a number) mob_id = atoi(monster); if (mob_id == 0) { clif_displaymessage(fd, msg_txt(40)); return -1; } if (mob_id == MOBID_EMPERIUM) { clif_displaymessage(fd, msg_txt(83)); // Cannot spawn emperium return -1; } if (mobdb_checkid(mob_id) == 0) { clif_displaymessage(fd, "Invalid monster ID"); // Invalid Monster ID. return -1; } if (number <= 0) number = 1; if (strlen(name) < 1) strcpy(name, "--ja--"); // If value of atcommand_spawn_quantity_limit directive is greater than or equal to 1 and quantity of monsters is greater than value of the directive if (battle_config.atc_spawn_quantity_limit >= 1 && number > battle_config.atc_spawn_quantity_limit) number = battle_config.atc_spawn_quantity_limit; count = 0; for (i = 0; i < number; i++) { int mx, my; if (x <= 0) mx = sd->bl.x + (rand() % 11 - 5); else mx = x; if (y <= 0) my = sd->bl.y + (rand() % 11 - 5); else my = y; count += (mob_once_spawn(sd, sd->bl.m, mx, my, name, mob_id, 1, "2") != 0) ? 1 : 0; } if (count != 0) { if(pc_isGM(sd)==99){// Checks if the GM level is below 99 Announcement is made [Vengeance] clif_displaymessage(fd, msg_txt(39)); // All monster summoned! } else{ sprintf(atcmd_output, "%s summoned %d small %s in %s,%d,%d", sd->status.name, number, monster, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y); intif_broadcast(atcmd_output, strlen(atcmd_output) + 1, 0); clif_displaymessage(fd, msg_txt(39)); // Monster Summoned!! } } else clif_displaymessage(fd, msg_txt(40)); // Invalid Monster ID. return 0; } // big monster spawning [Valaris] ACMD_FUNC(monsterbig) { char name[NAME_LENGTH] = ""; char monster[NAME_LENGTH] = ""; int mob_id = 0; int number = 0; int x = 0; int y = 0; int count; int i; nullpo_retr(-1, sd); if (!message || !*message) { clif_displaymessage(fd, "Give a monster name/id please."); return -1; } if (sscanf(message, ""%23[^"]" %23s %d %d %d", name, monster, &number, &x, &y) < 2 && sscanf(message, "%23s "%23[^"]" %d %d %d", monster, name, &number, &x, &y) < 2 && sscanf(message, "%23s %d %23s %d %d", monster, &number, name, &x, &y) < 1) { clif_displaymessage(fd, "Give a monster name/id please."); return -1; } // If monster identifier/name argument is a name if ((mob_id = mobdb_searchname(monster)) == 0) // check name first (to avoid possible name begining by a number) mob_id = atoi(monster); if (mob_id == 0) { clif_displaymessage(fd, msg_txt(40)); return -1; } if (mob_id == MOBID_EMPERIUM) { clif_displaymessage(fd, msg_txt(83)); // Cannot spawn emperium return -1; } if (mobdb_checkid(mob_id) == 0) { clif_displaymessage(fd, "Invalid monster ID"); // Invalid Monster ID. return -1; } if (number <= 0) number = 1; if (strlen(name) < 1) strcpy(name, "--ja--"); // If value of atcommand_spawn_quantity_limit directive is greater than or equal to 1 and quantity of monsters is greater than value of the directive if (battle_config.atc_spawn_quantity_limit >= 1 && number > battle_config.atc_spawn_quantity_limit) number = battle_config.atc_spawn_quantity_limit; count = 0; for (i = 0; i < number; i++) { int mx, my; if (x <= 0) mx = sd->bl.x + (rand() % 11 - 5); else mx = x; if (y <= 0) my = sd->bl.y + (rand() % 11 - 5); else my = y; count += (mob_once_spawn(sd, sd->bl.m, mx, my, name, mob_id, 1, "4") != 0) ? 1 : 0; } if (count != 0) { if(pc_isGM(sd)==99){// Checks if the GM level is below 99 Announcement is made [Vengeance] clif_displaymessage(fd, msg_txt(39)); // All monster summoned! } else{ sprintf(atcmd_output, "%s summoned %d big %s in %s,%d,%d", sd->status.name, number, monster, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y); intif_broadcast(atcmd_output, strlen(atcmd_output) + 1, 0); clif_displaymessage(fd, msg_txt(39)); // Monster Summoned!! } } else clif_displaymessage(fd, msg_txt(40)); // Invalid Monster ID. return 0; } Just copy paste this Snippet. Download from here
    2 points
  3. like this if( countitem( 512 ) < 10 ){ mes "You didnt have 10 Apple"; }else{ mes "You have the items."; switch( select("Use:Drop:Nothing") ){ Case 1: Case 2: Case 3: etc.... } }
    2 points
  4. use the countitem() command usage : countitem( itemID ) Example : if( countitem(512 ) < 10 ){ mes "You have less than 10 Apple in your Inventory."; } close;
    2 points
  5. E - Script Collection Last Update : September 10, 2013 Refine Function SQL Mission Board Monster Marching Vendor Control Advanced Stylist Coin Exchanger Doppelganger Race Of The Day Limited Items Multi Currency Shop Random News GM Online List Link Broken E-Inquiry DotA Runes Flower Counting Game Class Restriction Chain Quest Build Manager Misc Scripts : Freebies Script Card Trader Gold Room [ Pick Gold ] Gold Room [ Guild Tax ] Map Restriction [ GM Based ] Daily Reward Monthly Reward Monster Spawner Monster Summoner with Last Summoned Display Players Stats & Equipments 3rd Job Item Giver Exchanger [ Cashpoint to Coins ] Exchanger [ Poring Coin - Zeny ] Exchanger [ Points to Tickets ] Exchanger [ Item to Item ] Exchanger [ Item to Item ] Exchanger [ Multi Item to 1 Item ] Party Match Auto Ban Over Stats Users Soul Link Buff Kill Players gain Cash Points Party Members All Get Items [ Snippet ] Message Board Stalker Class Skill Reproduce NPC Multiple Selection Quest [ Template ] In-Game Item Rewarder In-Game Points Rewarder Invasion Event Custom Item Rate Status Point Seller [ Snippet ] Anti Bot Security Script Anti Bot Script [ Code / Question ] Item Combo Restriction [ LHZ Card ] Drop Item Upon Death PVP Switcher + Announcer [ Guild Master ] Rotating Waitingroom Messages +10 Refiner [ Specific Items ] Random Rate Item Exchanger MVP Invasion Premium Users [ Boost Rates ] Display Cutin Image upon Login Custom Randomed Box Items Kick GM during WOE Custom Crafting NPC Restrict Same IP [ Certain Map ] Coloured Items Exchanger Guild Master Changer Party Team PK Match Gambling Game IRC Channel Crafting NPC Guild Storage Restriction Stage Game [ Version 4 ] Monster Wiki Event [ Version 3 ] Special Thank you for my Tutor : Notes : I am a bit lazy to write all those Script Descriptions, i do believe that all of you able to get how this script works. Anyway, i will still doing my best to write the Updated Changelog or informations about the script as detail as possible. All the Scripts above are uploaded to Pastebin . Abide the Following Rule : Scripts Error / Not Working , you have to Explain it in Details. ( Add in Images / Modified Scripts ) Do not SPAM / BUMP in my Topic. Do not ask for Support stuffs for other Scripts in this Topic. Link Down , then drop [ @Emistry ] a message. I Reserved the Right for NOT Answering your Posts if you did not abide my Topic's Rules. Keep This In Your Mind : All the Scripts i distribute here are NOT FOR COMMERCIAL USES . DO NOT remove my Credits if you are using part of the scripts to modify your own. DO NOT re-release the scripts in any form / way. If you ♥ these Scripts , Click on to Vote this Topic up. Or you may also click on at above the Topic
    1 point
  6. No clue what happend at eA, none of my business. I am glad that the project is now continuing on in the form of rA and is finally, finally being well tended to. Kudos to everyone who was involved.
    1 point
  7. Create and copy the /conf/import/ folder the same way: Then you will need to configure the MySQL settings in /conf/inter_athena.conf - connect to your MySQL Server - create a new user/password for rAthena to use - create a SQL database for rAthena - import main.sql and logs.sql - then open inter_athena.conf and set the MySQL user & password there - set the database name too.
    1 point
  8. The error is because your /save folder does not exist. create a folder, /save open the /save-tmpl folder and copy all files to your /save folder (DON'T copy the .svn folder)
    1 point
  9. http://ea.dj-yhn.com...c=groupranditem Details for command groupranditem: * groupranditem <group id>; Returns the item_id of a random item picked from the group specified. The different groups and their group number are specified in db/item_group_db.txt When used in conjunction with other functions, you can get a random item. For example, for a random pet lure: getitem groupranditem(15),1;
    1 point
  10. if you can't memo the brasilis dungeon maps or memo/tele inside brasilis (bra_in01), they are using rathena~ or if its a renewal server, just type @mi for any of the newest mobs #2300+ and if the mob exists they are using rathena~
    1 point
  11. http://rathena.org/board/topic/57156-request-woe-for-trans-only/page__view__findpost__p__69337
    1 point
  12. Yes, if the dialogue for each item is going to be different but if you want different items for the same dialogue this would suffice if( countitem( 512 ) > 9 || countitem( 512 ) > 9 || countitem( 512 ) > 9){ Just change the ID and the amount.
    1 point
  13. prontera,155,181,5 script Sample 757,{ if( countitem( 512 ) > 9 ){ mes "You have the items."; switch( select("Use:Drop:Nothing") ){ Case 1: Case 2: Case 3: } }else if( countitem(512) < 9){ mes "You have something."; switch( select("Die:Fly:Soar")){ case 1: case 2: case 3: } }else{ mes "You Have Nothing"; } close; }
    1 point
  14. Perhaps you should post screenshots, chat logs, etc. We don't want to accuse people of anything, without any proof. And I personally dislike these kinds of threads, full of drama.
    1 point
  15. Documentation can be found here: ../trunk/doc/item_db.txt Wiki Custom_Items
    1 point
  16. Keim: Thanks for your interesting in providing general assistance to our users however Guides should be created on the wiki instead of here. Also, there is already an existing guide in the wiki about shops. You can find it here: General_Shop_creation If you have anything more to add to that guide in the wiki, please feel free to do so. Topic Closed and set up for deletion.
    1 point
  17. probably more likely to be this : haha welcome to rAthena !
    1 point
  18. it's much easier to do this with shinyro weemapcache
    1 point
×
×
  • Create New...