-
Posts
562 -
Joined
-
Last visited
-
Days Won
8
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by iraciz
-
Renewal Client data & Hexed 2021-11-03_Ragexe compatible with rAthena
iraciz replied to vaynard's topic in Client Releases
Virus detected -
this is gold, I still use this solution nowadays
-
MvP Respawn Broadcaster - Fix some Console Warnings
iraciz replied to iraciz's question in Source Support
-
Hello I implemented this code to broadcast mvp respawns. scr/map/mob.cpp md->spawn_timer = INVALID_TIMER; mob_spawn(md); Under this line I placed: // if monster boss -> do announce if( md->spawn->state.boss ) { char message[128]; sprintf(message, "[MVP Spawn]: %s has been spawned on %s map.", md->name, map_mapid2mapname(md->spawn->m)); clif_broadcast(&md->bl, message, strlen(message) + 1, BC_DEFAULT, ALL_CLIENT); } } return 0; It's working fine, MvP Respawns are being broadcasted, but now may I now is there any way to get rid of some console warnings? 1>mob.cpp 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(1049,80): warning C4267: 'argumento': conversión de 'size_t' a 'int'; posible pérdida de datos 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(2839,57): warning C4267: 'argumento': conversión de 'size_t' a 'int'; posible pérdida de datos 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(3009,58): warning C4267: 'argumento': conversión de 'size_t' a 'int'; posible pérdida de datos 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(6410,50): warning C4267: 'inicializando': conversión de 'size_t' a 'int'; posible pérdida de datos 1>C:\Users\mario\Desktop\rAthena \src\map\mob.cpp(6411,65): warning C4267: 'inicializando': conversión de 'size_t' a 'int'; posible pérdida de datos Can you guys lend me a hand?
-
2018-06-20eRagexeRE Crashing when trigered active_transform or transform script.
iraciz replied to iraciz's question in Client-side Support
Solved! Fixed here: https://github.com/rathena/rathena/issues/7247 -
Client and other players experience crashing everytime this script runs - Id: 18856 AegisName: W_King_Tiger_Doll_Hat Name: W King Tiger Doll Hat Type: Armor Buy: 10 Defense: 10 Locations: Head_Top: true ArmorLevel: 1 EquipLevelMin: 1 Refineable: true View: 973 Script: | bonus bStr,2; bonus bDex,2; bonus2 bAddRace,RC_Brute,10; bonus2 bAddRace,RC_Player_Doram,10; .@r = getrefine(); autobonus "{ bonus2 bSPLossRate,5,1000; bonus bBaseAtk,25*max(1,getrefine()); }",3*.@r,3000,BF_NORMAL,"{ active_transform 1115,3000; specialeffect2 EF_POTION_BERSERK; showscript \"Traaaansformation-!! Eddga form!!\"; }"; autobonus2 "{ bonus2 bSPLossRate,5,1000; bonus bBaseAtk,25*max(1,getrefine()); }",.@r,3000,BF_NORMAL,"{ active_transform 1115,3000; specialeffect2 EF_POTION_BERSERK; showscript \"Traaaansformation-!! Eddga form!!\"; }"; or - Id: 11592 AegisName: Trance_Candy_R Name: Trans Candy Red Type: Healing Buy: 20 Weight: 30 Script: | itemheal 45,0; transform 1507,600000,SC_MTF_MHP,20; specialeffect2 EF_CLOAKING; showscript "Trans-Form-!! Bloody Murderer Fo-rm!!"; There is no console error or .exe crash log to identify the source. any idea?
-
Add double attack chance to raid and backstab skill.
iraciz replied to iraciz's question in Source Support
Sorry for the necro posting! both skills hit twice, but not as I would like, showing the 2 hits with yellow numbers. I got this in scr/map/battle.c Line switch (skill_id) { case RK_WINDCUTTER: if (sd && sd->weapontype1 == W_2HSWORD) wd->div_ = 2; break; add: case RG_BACKSTAP: skill_lv = pc_checkskill(sd, TF_DOUBLE); if (skill_lv > 0) { if(rnd()%100 < (7 * skill_lv)) { wd->div_++; } } break; case RG_RAID: skill_lv = pc_checkskill(sd, TF_DOUBLE); if (skill_lv > 0) { if(rnd()%100 < (7 * skill_lv)) { wd->div_++; } } break; It work as I wish, both skills are taking tf_double chances to hit double, bad is that! It does it with any weapon or even barehanded.. I would like to make it work with daggerclass only! -
@manuel Thankyou!
-
yes this is gold. I was wondering if this could come with a NPC to make the players know the actual bonus map.
-
May I ask for this please? DOTD (Dungeon Of The Day): Every day there will be Dungeon maps with increased experience (+10%). Even those summoned by branches inside the map from a random list. PRE-RENEWAL
-
atcommand "@useskill 151 1 self"
-
Good day,please help me! Bindatcommands are not working in the item scripts. TXT Example: 40574,Moonlight Bell,Moonbell,11,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 549; soundeffectall "moonlight_move.wav",0; atcommand "@bonus"; },{},{} @bonus is a custom npc bind atcommand that I use to apply random options to the gear. Oncommand only works with typing or talking to the NPC, but I want activate the script by using the item above. What can I do?
-
Is this possible via SCR? Without editing skilldb.yml Chances Need to work together with tf_double skill level.
-
Reset last warp map and coordinates OnPCLogOutEvent
iraciz replied to iraciz's question in Scripting Support
-
Good day, This is [Euphy] rathena custom npc default warper. Any way to reset last warp map and coordinates OnPCLogOutEvent if (lastwarp$ == "") message strcharinfo(0),"You haven't warped anywhere yet. Last warp resets with logout."; else warp lastwarp$,lastwarpx,lastwarpy; end; function Go { set lastwarp$, getarg(0); set lastwarpx, getarg(1,0); set lastwarpy, getarg(2,0); warp getarg(0),getarg(1,0),getarg(2,0); end; } Help please
-
dear Slammer! Something went wrong, the item still restores sp without the gear equipped. 515,Carrot,Carrot,0,15,,20,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(18,20),0; if (getequipid(EQI_HEAD_LOW) == 18683) specialeffect2 332; if (getequipid(EQI_HEAD_LOW) == 18683) itemheal 0,rand(2,4); },{},{} But I solved it by individualizing the effects separatedly.
-
Good morning dear community, for me it is a pleasure to return to rathena. This time I ask for help with the isequiped check, I am working in a low rate server without sp consumables, and I came up with the idea of creating an additional bonus for the lower item id: carrot in mout "https://ratemyserver.net/index.php?page=re_item_db&item_id=18683". I want this item, while being equipped on lower head, to cause carrots to restore sp when consumed. I made the function already: 515,Carrot,Carrot,0,15,,20,,,,,0xFFFFFFFF,7,2,,,,,,{ itemheal rand(18,20),0; callfunc "zanabria"; },{},{} Now I need help in this part: function script zanabria { if (isequipped(18683)) specialeffect2 332; itemheal rand(0,0),rand(2,4); end; } This is the aditional sp restore effect while equiped, but I NEED help here for the else exception, because it sill restoring sp withput the equiped carrot in mouth.
-
Ragnarok English Translation Project by llchrisll
iraciz replied to llchrisll's topic in Project Releases
download tortoise svn create folder: ROenglishRE left click to that folder, Svn checkout paste to the url box: https://github.com/llchrisll/ROenglishRE Ok, and download. add those files "the Data folder" into a custom grf, with your clientinfo. repack, and run the exe. The system folder is for your client folder, not to the grf. -
For weapons, armor, garment, shields, footgear and accessories. with a bind atcommand like @bonus?
-
tortoise.git forces to download certain exes that many new people could'nt understand. Even I experiencee cerntain complications using the .git.
-
Almost 2 years off.. what's new regarding rAthena? Any stable client? With the visual effects for the robes? 2021... How difficult now? Is to edit mob and items.yml? Must be a lot of pain to add new stuff. What about the battlegrounds? Are 100% functional? And the 4th jobs, skills, gears, data, pallettes, is everything implemented? I'm thinking about open a new server. After several years off, I'm a little rusty.
-
[ Guide ] Setting Up 2020 Client & Adding Customs Items!
iraciz replied to Renzadic's question in Installation Support
Thank you, I was looking for this. -
I need to revert some changes and make arow shower, charge arrow, bowling bash or phantasmic arrow, knock off players from Pneuma In battle.c I applied the previous code if( sc->data[SC_PNEUMA] && (d->flag&(BF_MAGIC|BF_LONG)) == BF_LONG ) { d->dmg_lv = ATK_BLOCK; skill_blown(src,target,skill_get_blewcount(skill_id,skill_lv),-1,0); return false; } return true; } But when compiling, I'm having this error: 1>------ Operación Compilar iniciada: proyecto: map-server, configuración: Release Win32 ------ 1>battle.cpp 1>C:\Users\Mario Zicari\Desktop\rAthena\src\map\battle.cpp(1062,69): error C2664: 'short skill_blown(block_list *,block_list *,char,int8,e_skill_blown)': el argumento 5 no puede convertirse de 'int' a 'e_skill_blown' 1>C:\Users\Mario Zicari\Desktop\rAthena\src\map\battle.cpp(1062,68): message : La conversión a tipo de enumeración requiere una conversión explícita (static_cast, conversión de estilo de C o conversión de estilo de función) 1>C:\Users\Mario Zicari\Desktop\rAthena\src\map\skill.hpp(541,7): message : vea la declaración de 'skill_blown' 1>Compilación del proyecto "map-server.vcxproj" terminada -- ERROR. ========== Compilar: 0 correctos, 1 incorrectos, 8 actualizados, 0 omitidos ========== Please, could you help me with the code to work with no errors?
-
I HAVE ISSUES ADDING @WHOSELL TO THE LATEST EMULATOR 2020 RATHENA
iraciz replied to luissibaja1293's question in Source Support
Please try mine instead and compile in release mode attcommand.c /*========================================== * @whosell - List who is vending the item (amount, price, and location). * revamped by VoidLess, original by zephyrus_cr *------------------------------------------*/ ACMD_FUNC(whosell) { char item_name[100]; int item_id = 0, j, count = 0, sat_num = 0; int s_type = 1; // search bitmask: 0-name,1-id, 2-card, 4-refine int refine = 0,card_id = 0; bool flag = 1; // place dot on the minimap? struct map_session_data* pl_sd; struct s_mapiterator* iter; unsigned int MinPrice = battle_config.vending_max_value, MaxPrice = 0; struct item_data *item_data; static char atcmd_output[CHAT_SIZE_MAX]; if (!*message) { clif_displaymessage(fd, "Use: @whosell <item_id> or @whosell <name>"); return -1; } if (sscanf(message, "+%d %d[%d]", &refine, &item_id, &card_id) == 3){ s_type = 1+2+4; } else if (sscanf(message, "+%d %d", &refine, &item_id) == 2){ s_type = 1+4; } else if (sscanf(message, "+%d [%d]", &refine, &card_id) == 2){ s_type = 2+4; } else if (sscanf(message, "%d[%d]", &item_id, &card_id) == 2){ s_type = 1+2; } else if (sscanf(message, "[%d]", &card_id) == 1){ s_type = 2; } else if (sscanf(message, "+%d", &refine) == 1){ s_type = 4; } else if (sscanf(message, "%d", &item_id) == 1 && item_id == atoi(message)){ s_type = 1; } else if (sscanf(message, "%99[^\n]", item_name) == 1){ s_type = 1; if ((item_data = itemdb_searchname(item_name)) == NULL){ clif_displaymessage(fd, "Not found item with this name"); return -1; } item_id = item_data->nameid; } else { clif_displaymessage(fd, "Use: @whosell <item_id> or @whosell <name>"); return -1; } //check card if(s_type & 2 && ((item_data = itemdb_exists(card_id)) == NULL || item_data->type != IT_CARD)){ clif_displaymessage(fd, "Not found a card with than ID"); return -1; } //check item if(s_type & 1 && (item_data = itemdb_exists(item_id)) == NULL){ clif_displaymessage(fd, "Not found an item with than ID"); return -1; } //check refine if(s_type & 4){ if (refine<0 || refine>10){ clif_displaymessage(fd, "Refine out of bounds: 0 - 10"); return -1; } /*if(item_data->type != IT_WEAPON && item_data->type != IT_ARMOR){ clif_displaymessage(fd, "Use refine only with weapon or armor"); return -1; }*/ } iter = mapit_getallusers(); for (pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter)) { if (pl_sd->vender_id ) { // check if player is vending for (j = 0; j < pl_sd->vend_num; j++) { if ((item_data = itemdb_exists(pl_sd->cart.u.items_cart[pl_sd->vending[j].index].nameid)) == NULL) continue; if(s_type & 1 && pl_sd->cart.u.items_cart[pl_sd->vending[j].index].nameid != item_id) continue; if(s_type & 2 && ((item_data->type != IT_ARMOR && item_data->type != IT_WEAPON) || (pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[0] != card_id && pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[1] != card_id && pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[2] != card_id && pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[3] != card_id))) continue; if(s_type & 4 && ((item_data->type != IT_ARMOR && item_data->type != IT_WEAPON) || pl_sd->cart.u.items_cart[pl_sd->vending[j].index].refine != refine)) continue; if(item_data->type == IT_ARMOR) snprintf(atcmd_output, CHAT_SIZE_MAX, "+%d %s[%d] | Price %ud | Amount %d | %s[%d,%d] | %s",pl_sd->cart.u.items_cart[pl_sd->vending[j].index].refine ,item_data->jname ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[0] ,pl_sd->vending[j].value ,pl_sd->vending[j].amount ,mapindex_id2name(pl_sd->mapindex) ,pl_sd->bl.x,pl_sd->bl.y ,pl_sd->message); else if(item_data->type == IT_WEAPON) snprintf(atcmd_output, CHAT_SIZE_MAX, "+%d %s[%d,%d,%d,%d] | Price %ud | Amount %d | %s[%d,%d] | %s",pl_sd->cart.u.items_cart[pl_sd->vending[j].index].refine ,item_data->jname ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[0] ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[1] ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[2] ,pl_sd->cart.u.items_cart[pl_sd->vending[j].index].card[3] ,pl_sd->vending[j].value ,pl_sd->vending[j].amount ,mapindex_id2name(pl_sd->mapindex) ,pl_sd->bl.x,pl_sd->bl.y ,pl_sd->message); else snprintf(atcmd_output, CHAT_SIZE_MAX, "%s | Price %ud | Amount %d | %s[%d,%d] | %s",item_data->jname ,pl_sd->vending[j].value ,pl_sd->vending[j].amount ,mapindex_id2name(pl_sd->mapindex) ,pl_sd->bl.x, pl_sd->bl.y ,pl_sd->message); if(pl_sd->vending[j].value < MinPrice) MinPrice = pl_sd->vending[j].value; if(pl_sd->vending[j].value > MaxPrice) MaxPrice = pl_sd->vending[j].value; clif_displaymessage(fd, atcmd_output); count++; flag = 1; } if (flag && pl_sd->mapindex == sd->mapindex) { clif_viewpoint(sd, 1, 1, pl_sd->bl.x, pl_sd->bl.y, ++sat_num, 0xFFFFFF); flag = 0; } } } mapit_free(iter); if(count > 0) { snprintf(atcmd_output, CHAT_SIZE_MAX, "================== Found %d entries. ==================", count, MinPrice, MaxPrice); clif_displaymessage(fd, atcmd_output); } else clif_displaymessage(fd, "Nobody is selling it now."); return 0; } Dont forget to add: ACMD_DEF(whosell),