-
Posts
56 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by backtea
-
charm's ?? what's that? can you descrip more?
-
hey please help.. i got this error when try to compile the server 1>------ Build started: Project: map-server_sql, Configuration: Debug Win32 ------ 1> faction.c 1>d:\campur\coba server\rathena 16433\src\map\faction.c(439): error C2143: syntax error : missing ')' before 'constant' 1>d:\campur\coba server\rathena 16433\src\map\faction.c(439): error C2059: syntax error : ')' here's my faction.c // Ñèñòåìà ôðàêöèé (c) Lilith // Íå êîïèðîâàòü, íå èçìåíÿòü è íå îïóáëèêîâûâàòü áåç ðàçðåøåíèÿ #include "../common/db.h" #include "../common/malloc.h" #include "../common/socket.h" #include "../common/showmsg.h" #include "../common/strlib.h" #include "../common/nullpo.h" #include "faction.h" #include "elemental.h" #include "homunculus.h" #include "map.h" #include "mercenary.h" #include "mob.h" #include "npc.h" #include "pc.h" #include "pet.h" #include "skill.h" #include "script.h" #include <stdlib.h> static DBMap* faction_db; static DBMap* aura_db; int faction_get_exp(struct map_session_data *sd,struct map_session_data *tsd) { struct faction_data* db, *t_db; db = faction_search(sd->status.faction_id); t_db = faction_search(tsd->status.faction_id); if( db == NULL || t_db == NULL ) return 0; return 0; } // Àóðà ìàñòåðà ôðàêöèè ( àíàëîã àóðû ãëàâû ãèëüäèè ) void faction_factionaura(struct map_session_data *sd) { struct skill_unit_group* group = NULL; if( sd->sc.data[sC_FACTION_AURA] && (group = skill_id2group(sd->sc.data[sC_FACTION_AURA]->val4)) ) { skill_delunitgroup(group); status_change_end(&sd->bl,SC_FACTION_AURA,INVALID_TIMER); } group = skill_unitsetting(&sd->bl,FACTION_AURA,1,sd->bl.x,sd->bl.y,0); if( group ) sc_start4(&sd->bl,SC_FACTION_AURA,100,1,group->faction_id,0,group->group_id,600000); return; } // Îòîáðàæåíèå çíà÷êà áèòâû íàä ãîëîâîé void faction_sendemblem_area(struct map_session_data *sd) { struct faction_data* db = faction_search(sd->status.faction_id); unsigned char buf[33]; nullpo_retv(sd); WBUFW(buf, 0) = 0x2dd; WBUFL(buf,2) = sd->bl.id; safestrncpy((char*)WBUFP(buf,6), sd->status.name, NAME_LENGTH); WBUFW(buf,30) = ( db->alliance_id ? db->alliance_id : sd->status.faction_id ); clif_send(buf,packet_len(0x2dd), &sd->bl, AREA); } // Îòîáðàæåíèå çíà÷êà áèòâû íàä ãîëîâîé void faction_sendemblem_single(int fd, struct map_session_data *sd) { struct faction_data* db = faction_search(sd->status.faction_id); nullpo_retv(sd); WFIFOHEAD(fd,32); WFIFOW(fd,0) = 0x2dd; WFIFOL(fd,2) = sd->bl.id; safestrncpy((char*)WFIFOP(fd,6), sd->status.name, NAME_LENGTH); WFIFOW(fd,30) = ( db->alliance_id ? db->alliance_id : sd->status.faction_id ); WFIFOSET(fd,packet_len(0x2dd)); } // Îòîáðàæåíèå àóðû íîñèòåëÿ void faction_aura_load(struct map_session_data *tsd, struct map_session_data *sd) { struct faction_data* db = faction_search(tsd->status.faction_id); struct aura_data* a_db = aura_search(tsd->status.faction_id); int e1,e2,e3; if( pc_ishiding(tsd) || !map[tsd->bl.m].flag.fvf || a_db == NULL ) return; if( (e1 = a_db->effect_1) ) clif_specialeffect_single(&tsd->bl, e1, sd->fd); // Ýôôåêò #1 if( (e2 = a_db->effect_2) ) clif_specialeffect_single(&tsd->bl, e2, sd->fd); // Ýôôåêò #2 if( (e3 = a_db->effect_3) ) clif_specialeffect_single(&tsd->bl, e3, sd->fd); // Ýôôåêò #3 } // Îòîáðàæåíèå àóðû âñåì â çîíå type void faction_aura_send(struct map_session_data *sd, enum send_target type) { struct faction_data* db = faction_search(sd->status.faction_id); struct aura_data* a_db = aura_search(sd->status.faction_id); int e1,e2,e3; if( pc_ishiding(sd) || !map[sd->bl.m].flag.fvf || a_db == NULL ) return; if( (e1 = a_db->effect_1) ) clif_specialeffect(&sd->bl, e1, type); // Ýôôåêò #1 if( (e2 = a_db->effect_2) ) clif_specialeffect(&sd->bl, e2, type); // Ýôôåêò #2 if( (e3 = a_db->effect_3) ) clif_specialeffect(&sd->bl, e3, type); // Ýôôåêò #3 } // Ñîêðûòèå àóðû íîñèòåëÿ ( åñëè íîñèòåëü â õàéäå) int faction_aura_update(struct block_list *bl,va_list ap) { struct block_list *tbl = va_arg(ap,struct block_list*); struct map_session_data *sd = BL_CAST(BL_PC,bl); if( bl == tbl || tbl->type != BL_PC || !sd ) return 0; clif_getareachar_unit(sd,tbl); return 0; } // Ðàñ÷¸ò óðîíà íà òåððèòîðèè âîéíû ôðàêöèé int faction_calc_damage(struct block_list *src, struct block_list *bl, int damage, int div_, int skill_num, int skill_lv, int flag) { if( damage ) switch( skill_num ) { case PA_PRESSURE: case HW_GRAVITATION: case NJ_ZENYNAGE: break; default: if( flag&BF_SKILL ) { if( flag&BF_WEAPON ) damage = damage * battle_config.fvf_weapon_damage_rate/100; if( flag&BF_MAGIC ) damage = damage * battle_config.fvf_magic_damage_rate/100; if( flag&BF_MISC ) damage = damage * battle_config.fvf_misc_damage_rate/100; } else { if( flag&BF_SHORT ) damage = damage * battle_config.fvf_short_damage_rate/100; if( flag&BF_LONG ) damage = damage * battle_config.fvf_long_damage_rate/100; } if( !damage ) damage = 1; } return damage; } // Ïðèñâàèâàíèå âèçóàëüíîãî ðàçìåðà â çàâèñèìîñòè îò ëîêàöèè void faction_display_size(struct map_session_data *sd) { struct faction_data* db = faction_search(sd->status.faction_id); if( db ) { if( map[sd->bl.m].flag.fvf ) sd->state.size = db->size; else { sd->state.size = (sd->class_&JOBL_BABY)?1:0; if (battle_config.character_size && pc_isriding(sd)) { if (sd->class_&JOBL_BABY) { if (battle_config.character_size&SZ_BIG) sd->state.size++; } else if(battle_config.character_size&SZ_MEDIUM) sd->state.size++; } } } } // Îòîáðàæåíèå HP ïåðñîíàæåé îäíîé ôðàêöèè void faction_show_hp(struct map_session_data *sd) { unsigned char buf[34]; const int cmd = 0x2e0; nullpo_retv(sd); WBUFW(buf,0) = cmd; WBUFL(buf,2) = sd->status.account_id; memcpy(WBUFP(buf,6), sd->status.name, NAME_LENGTH); if( sd->battle_status.max_hp > INT16_MAX ) { WBUFW(buf,30) = sd->battle_status.hp/(sd->battle_status.max_hp/100); WBUFW(buf,32) = 100; } else { WBUFW(buf,30) = sd->battle_status.hp; WBUFW(buf,32) = sd->battle_status.max_hp; } clif_send(buf, packet_len(cmd), &sd->bl, FACTION_AREA_WOS); } // Ïîèñê ID ôðàêöèè struct faction_data* faction_search(int id) { return (struct faction_data*)idb_get(faction_db,id); } // Ïîèñê ID àóðû struct aura_data* aura_search(int id) { return (struct aura_data*)idb_get(aura_db,id); } // Âîçâðàùåíèå ID ôðàêöèè int faction_get_id(struct block_list* bl) { if( bl ) switch( bl->type ) { case BL_PC: // Èãðîê return ((TBL_PC*)bl)->status.faction_id; case BL_PET: // Ïèòîìåö if( ((TBL_PET*)bl)->msd ) return ((TBL_PET*)bl)->msd->status.faction_id; break; case BL_MOB: // Ìîíñòð { struct map_session_data *msd; struct mob_data *md = (TBL_MOB*)bl; if( md->special_state.ai && (msd = map_id2sd(md->master_id)) != NULL ) return msd->status.faction_id; return md->faction_id; } case BL_HOM: // Ãîìóíêóëóñ if( ((TBL_HOM*)bl)->master ) return ((TBL_HOM*)bl)->master->status.faction_id; break; case BL_MER: // Íà¸ìíèê if( ((TBL_MER*)bl)->master ) return ((TBL_MER*)bl)->master->status.faction_id; break; case BL_ELEM: // Ýëåìåíòàëü if( ((TBL_ELEM*)bl)->master ) return ((TBL_ELEM*)bl)->master->status.faction_id; break; case BL_SKILL: // Íàâûê return ((TBL_SKILL*)bl)->group->faction_id; } return 0; } // Ïðîâåðêà íà àëüÿíñ int faction_check_alliance(struct block_list* bl, struct block_list* t_bl) { struct faction_data* db, *t_db; db = faction_search(faction_get_id(bl)); t_db = faction_search(faction_get_id(t_bl)); if( db == NULL || t_db == NULL ) return 0; if( db->alliance_id > 0 && db->alliance_id == t_db->alliance_id ) return 1; return 0; } // Ïðèñâàèâàíèå ðàñû, ýåëåìåíòà, óð. ýëåìåíòà, ðàçìåðà è îïðåäåë¸ííîãî áîíóñà void faction_calc(struct map_session_data *sd) { struct status_data *status = &sd->base_status; struct status_change *sc = &sd->sc; struct faction_data* db; if( (db = faction_search(sd->status.faction_id)) == NULL ) return; status->race = db->race; // Ðàñà status->def_ele = db->ele; // Ýëåìåíò status->ele_lv = db->ele_lvl; // Óðîâåíü ýëåìåíòà status->size = db->size; // Ðàçìåð if( db->script ) run_script(db->script,0,sd->bl.id,0); // Áîíóñ if( sc && sc->data[sC_FACTION_AURA] && sc->data[sC_FACTION_AURA]->val2 ) { struct faction_data* mdb = faction_search(sc->data[sC_FACTION_AURA]->val2); if( mdb->aura_bonus ) run_script(mdb->aura_bonus,0,sd->bl.id,0); // Áîíóñ àóðû } { struct item_data *item_data; int i; for( i = 0; i < MAX_RELIC; i++ ) { if( (item_data = itemdb_exists(db->relic[i])) ) { if( item_data->script ) run_script(item_data->script,0,sd->bl.id,0); // Áîíóñ ðåëèêâèè } } } } // ×òåíèå ôàéëà êîíôèãóðàöèè // <ID>,<Íàçâàíèå ôðàêöèè>,<Ðàñà>,<Ýëåìåíò>,<Óðîâåíü ýëåìåíòà>,<Ðàçìåð>,<ID Àëüÿíñà>,<ID Àóðû>,<Öâåò ñîîáùåíèé â ÷àòå>,<{ Áîíóñ }>,<{ Áîíóñ àóðû }> static int faction_readdb(void) { struct faction_data* db; const char* filename = "faction_db.txt"; uint32 lines = 0, count = 0; char line[1024], path[256]; FILE* fp; sprintf(path, "%s/%s", db_path, filename); if((fp = fopen(path, "r")) == NULL ) { ShowWarning("faction_readdb: Ôàéë íå íàéäåí \"%s\", ïðîïóñê.\n", path); return 0; } while(fgets(line, sizeof(line), fp)) { char *str[32], *p; int i, id, race, ele, ele_lvl, all_id, aura, size; unsigned long chat_color; lines++; if(line[0] == '/' && line[1] == '/') continue; memset(str, 0, sizeof(str)); p = line; while( ISSPACE(*p) ) ++p; if( *p == '\0' ) continue; for( i = 0; i < 9; ++i ) { str[i] = p; p = strchr(p,','); if( p == NULL ) break; *p = '\0'; ++p; } if( p == NULL ) { ShowError("faction_readdb: Ïóñòûå ïîëÿ â ñòðîêå %d ôàéëà \"%s\" (ðàñà %d), ïðîïóñê.\n", lines, path, atoi(str[0])); continue; } // Óíèêàëüíûé ID id = atoi(str[0]); if( id < 1 || id > MAX_FACTION ) { ShowError("faction_readdb : Íåâåðíûé ID ôðàêöèè %d.\n", id); continue; } else if( faction_search(id) ) { ShowError("faction_readdb : Äóáëèðîâàíèå ID %d, ñòðîêà %d.\n", id, lines); continue; } // Ðàñà race = atoi(str[2]); if( race < RC_FORMLESS || race > RC_DRAGON ) { ShowError("faction_readdb : Íåèçâåñòíàÿ ðàñà %d.\n", race); continue; } // Ýëåìåíò ele = atoi(str[3]); if( ele < ELE_NEUTRAL || ele > ELE_UNDEAD ) { ShowError("faction_readdb : Íåèçâåñòíûé ýëåìåíò %d.\n", ele); continue; } // Óðîâåíü ýëåìåíòà ele_lvl = atoi(str[4]); if( ele_lvl < 1 || ele_lvl > 4 ) { ShowError("faction_readdb : Íåâåðíûé óðîâåíü ýëåìåíòà %d.\n", ele_lvl); continue; } // Ðàçìåð size = atoi(str[5]); if( size < 0 || size > 2 ) { ShowError("faction_readdb : Íåâåðíûé ðàçìåð %d.\n", size); continue; } // ID àëüÿíñà all_id = atoi(str[6]); if( all_id < 0 ) { ShowError("faction_readdb : Íåâåðíûé ID àëüÿíñà %d\n", all_id); continue; } all_id += MIN_FACTION_ALLIANCE; // ID àóðû aura = atoi(str[7]); if( aura < 0 ) { ShowError("faction_readdb : Íåâåðíûé ID àóðû %d.\n", aura); continue; } // Öâåò ñîîáùåíèé â ÷àòå chat_color = strtoul(str[8],NULL,0); // RGB -> BGR chat_color = (chat_color&0x0000FF)<<16|(chat_color&0x00FF00)|(chat_color&0xFF0000)>>16; // Áîíóñ if( *p != '{' ) { ShowError("faction_readdb: Íåâåðíûé ôîðìàò (Ïîëå áîíóñà) â ñòðîêå %d ôàéëà \"%s\" (ðàñà %d), ïðîïóñê.\n", lines, path, atoi(str[0])); continue; } str[9] = p; p = strstr(p+1,"},"); if( p == NULL ) { ShowError("faction_readdb: Invalid format (OnEquip_Script column) in line %d of \"%s\" (item with id %d), skipping.\n", lines, path, atoi(str[0])); continue; } p[1] = '\0'; p += 2; // Áîíóñ àóðû if( *p != '{' ) { ShowError("faction_readdb: Invalid format (OnUnequip_Script column) in line %d of \"%s\" (item with id %d), skipping.\n", lines, path, atoi(str[0])); continue; } str[10] = p; p = strstr(p+1,"}"); if ( strchr(p,',') != NULL ) { ShowError("faction_readdb: Extra columns in line %d of \"%s\" (item with id %d), skipping.\n", lines, path, atoi(str[0])); continue; } CREATE(db,struct faction_data,1); // Ñîçäàíèå db->id = id; // Óíèêàëüíûé ID safestrncpy(db->name,str[1],sizeof(db->name)); // Íàçâàíèå ôðàêöèè db->race = race; // Ðàñà db->ele = ele; // Ýëåìåíò db->ele_lvl = ele_lvl; // Óðîâåíü ýëåìåíòà db->size = size; // Ðàçìåð db->alliance_id = all_id; // ID àëüÿíñà db->aura_id = aura; // ID àóðû db->chat_color = chat_color; // Öâåò ñîîáùåíèé â ÷àòå db->script = parse_script(str[9],path,lines,0); // Áîíóñ db->aura_bonus = parse_script(str[10],path,lines,0); // Áîíóñ àóðû idb_put(faction_db,id,db); // Ñîõðàíåíèå count++; } fclose(fp); ShowStatus("Çàêîí÷åíî ÷òåíèå '"CL_WHITE"%lu"CL_RESET"' ñòðîê â ôàéëå '"CL_WHITE"%s"CL_RESET"'.\n", count, filename); return 0; } // ×òåíèå ôàéëà êîíôèãóðàöèè // <ID àóðû>,<ýôôåêò #1>,<ýôôåêò #2>,<ýôôåêò #3> static int faction_readauradb(void) { struct aura_data* db; const char* filename = "faction_aura_db.txt"; uint32 lines = 0, count = 0; char line[1024], path[256]; FILE* fp; sprintf(path, "%s/%s", db_path, filename); if((fp = fopen(path, "r")) == NULL ) { ShowWarning("faction_readauradb: Ôàéë íå íàéäåí \"%s\", ïðîïóñê.\n", path); return 0; } while(fgets(line, sizeof(line), fp)) { char *str[32], *p; int i, id; lines++; if(line[0] == '/' && line[1] == '/') continue; memset(str, 0, sizeof(str)); p = line; while( ISSPACE(*p) ) ++p; if( *p == '\0' ) continue; for( i = 0; i < 3; ++i ) { str[i] = p; p = strchr(p,','); if( p == NULL ) break; *p = '\0'; ++p; } if( p == NULL ) { ShowError("faction_readauradb: Ïóñòûå ïîëÿ â ñòðîêå %d ôàéëà \"%s\" (ID: %d), ïðîïóñê.\n", lines, path, atoi(str[0])); continue; } // Óíèêàëüíûé ID id = atoi(str[0]); if( id < 1 ) { ShowError("faction_readauradb : Íåâåðíûé ID àóðû %d.\n", id); continue; } else if( aura_search(id) ) { ShowError("faction_readauradb : Äóáëèðîâàíèå ID %d, ñòðîêà %d.\n", id, lines); continue; } str[3] = p; CREATE(db,struct aura_data,1); // Ñîçäàíèå db->id = id; // Óíèêàëüíûé ID db->effect_1 = atoi(str[1]); // Ýôôåêò #1 db->effect_2 = atoi(str[2]); // Ýôôåêò #2 db->effect_3 = atoi(str[3]); // Ýôôåêò #3 idb_put(aura_db,id,db); // Ñîõðàíåíèå count++; } fclose(fp); ShowStatus("Çàêîí÷åíî ÷òåíèå '"CL_WHITE"%lu"CL_RESET"' ñòðîê â ôàéëå '"CL_WHITE"%s"CL_RESET"'.\n", count, filename); return 0; } // Î÷èñòêà ïàìÿòè static int faction_db_destroy(DBKey key, DBData *data, va_list ap) { struct faction_data *db = (struct faction_data*)data; if( db->script ) { script_free_code(db->script); db->script = NULL; } return 0; } // Çàãðóçêà ñèñòåìû ôðàêöèé void do_init_faction(void) { faction_db = idb_alloc(DB_OPT_BASE); aura_db = idb_alloc(DB_OPT_BASE); faction_readdb(); // ×òåíèå äàííûõ î ôðàêöèÿõ faction_readauradb(); // ×òåíèå äàííûõ îá àóðàõ } // Î÷èñòêà ïàìÿòè void do_final_faction(void) { faction_db->destroy(faction_db,faction_db_destroy); aura_db->destroy(aura_db,NULL); }
-
bump..anyone have simple script like this?
-
already done patch it, but seem's it's not working..anyone have simple script about this topic?
-
i don't know how to manually patch it..coz it's seems different lines in my src folder... can any one help me to manually patch it? bump
-
sorry i'am nubie when i follow this http://rathena.org/wiki/Diff Windows: 1. go place the folder in the index folder 2. richt click the *.diff file and go to TortoiseSVN menu 3. click patch i get this message D:\Beginer athena' is not working copy where i should path the patch file? in src folder or in index folder?
-
where i must put the clan.diff?
-
how about the npc? i mean where i must put the clan.diff? how to player to choose the clan?
-
can anybody help me? the script is like, when you talk to npc you will give 2 choice 1. Elf clan 2. Dwarf clan when you choose Elf clan, that clan will give you matk+100 mdef-30 and when you choose Dwarf clan, that clan will give you atk+100 def-30 can anyone help me? thx for your help
-
bump..i need to when uneequip
-
i saw http://www.eathena.ws/board/index.php?showtopic=217704&st=0 is that still work?
-
no..the castle not owned by any guild... so how to disable some castle for my WOE?
-
hi all could you help me with my emperium... my emperium always show even i use npc woe...and i can't disable all castle from woe time... how to fix this? please help
-
it's already, but the script error when i attack the monster it's said arround this line OnDo: callfunc "Minner",1; end;
-
hai, anybody here know why my server got this [info]: Connection Closed. No map servers available. i start my server and play, buat when i play for couple time and the problem comes, all player goes to DC and my server log say [info]: Connection Closed. No map servers available. anybody can help? sorry for bad english
-
can anyone help me with this script? when i attack mineral monster it's say error in log server also i can't get the item prontera,150,150,5 script Mining Engineer 848,{ mes "Hello " + strcharinfo(0) + ", would you like to rent mining items?"; if( select( "Yes:No" ) == 1) rentitem 6010, 3600; mes "Do you want to warp to the mining field right now?"; mes "Warping will cost 5,000,000"; if( select( "Yes:No" ) == 2) goto L_exit; if( Zeny < 5000000 ) { mes "Not enough Zeny."; close; } attachnpctimer strcharinfo(0); initnpctimer; callfunc("MiningTimer"); warp "ordeal_1-1",149,158; end; OnTimer3600000: warp "SavePoint", 0, 0; OnTimerQuit: stopnpctimer; set mining_start, 0; end; L_exit: mes "Ok, cya..."; close; } function script Minner { if(getarg(0) == 2) { undisguise; if(strcharinfo(3) == "ordeal_1-1") warp "SavePoint", 0, 0; end; } if(getarg(0) == 1 && strcharinfo(3) == "ordeal_1-1") { if(getequipid(4) != 6010 || getequipid(1) != 5009) end; if(rand(1000) < 800) getitem 1010, 1; if(rand(1000) < 700) getitem 1011, 1; if(rand(1000) < 400) getitem 984, 1; if(rand(1000) < 400) getitem 985, 1; specialeffect2 154; end; } bonus bAspd, -30; bonus bCritical, 100; bonus bAtkRate, -100; if(getequipid(1) == 5009) disguise 848; else undisguise; return; } - script Minnerx -1,{ OnDo: callfunc "Minner",1; end; OnLill: set .@t,1; OnInit: if(!.@t) set .@t,100; monster "ordeal_1-1",0,0,"--ja--",1907,.@t,"Minnerx::OnLill"; end; } //=========== TIMER SHOW ==================== <header>,{ mes "^66CCFF[Mining Area]^000000"; mes "Mining Time Limit:"; mes "^FF0000" + mine_day$ + "/" + mine_month$ + "/" + mine_year$ + " " + mine_hour$ + ":" + mine_minute$ + "^000000"; close; } //=========================================== function script MiningTimer { setarray .@daymonth[0], 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31; set mine_minute$, ( (gettime(2) < 10) ? "0" + gettime(2) : "" + gettime(2) ); if((gettime(3)+1) == 24) set mine_hour$, "00"; else if((gettime(3)+1) < 10) set mine_hour$, "0" + (gettime(3)+1); else set mine_hour$, "" + (gettime(3) + 1); if( mine_hour$ == "00") set mine_day$, "" + (gettime(5) + 1); else set mine_day$, "" + gettime(5); if( atoi(mine_day$) > .@daymonth[gettime(6)-1]) set mine_day$, "1"; if( mine_day$ == "1" ) set mine_month$, "" + (gettime(6) + 1); else set mine_month$, "" + gettime(6); if( mine_month$ == "13" ) { set mine_month$, "1"; set mine_year$, "" + (gettime(7) + 1); } else set mine_year$, "" + gettime(7); return; } ordeal_1-1 mapflag loadevent ordeal_1-1 mapflag noskill ordeal_1-1 mapflag nowarp ordeal_1-1 mapflag nowarpto ordeal_1-1 mapflag noteleport ordeal_1-1 mapflag nosave SavePoint ordeal_1-1 mapflag noteleport ordeal_1-1 mapflag novending ordeal_1-1 mapflag noreturn ordeal_1-1 mapflag nomemo ordeal_1-1 mapflag nobranch
-
i already edit that emistry // Database for upgrading items. // Stats per level for safe upgrade, Stats per level after safe limit, Safe level limit, Lv.1 %, Lv 2 %, Lv.3%, ect... // Armor defense is done in percentage (ie 70 = .7 def) // Weapons are whole numbers (ie 3 = 3 atk) 100,100,4, 100,100,100,100,100,100,100, 20, 20, 10, 50, 30, 30, 20, 20, 10, 10, 10, 10, 10, // Armor 2, 2, 7, 100,100,100,100,100,100,100, 60, 40, 20, 70, 70, 50, 50, 30, 30, 20, 20, 10, 10, // Lv.1 Weapons 3, 3, 6, 100,100,100,100,100,100,100, 40, 20, 20, 70, 50, 50, 30, 30, 20, 20, 10, 10, 10, // Lv.2 Weapons 5, 5, 5, 100,100,100,100,100,100,100, 20, 20, 20, 50, 50, 30, 30, 20, 20, 10, 10, 10, 10, // Lv.3 Weapons 7, 7, 4, 100,100,100,100,100,100,100, 20, 20, 10, 50, 30, 30, 20, 20, 10, 10, 10, 10, 10, // Lv.4 Weapons is that right?
-
can anyone change this script to +7 save limit? i already change the meesage that it's require 7 elunium, but when it's start refining it's just until +4 i want to change save limit into +7 thx before function script refinemain { set .@features,getarg(1); mes "[" + getarg(0) + "]"; mes "I'm the Armsmith."; mes "I can refine all kinds of weapons, armor and equipment, so let me"; mes "know what you want me to refine."; next; setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3"; set .@menu$,""; for( set .@i,1; .@i <= 10; set .@i,.@i+1 ) { if( getequipisequiped(.@i) ) set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]"; set .@menu$, .@menu$ + ":"; } set .@part,select(.@menu$); if(!getequipisequiped(.@part)) { mes "[" + getarg(0) + "]"; mes "You're not wearing"; mes "anything there that"; mes "I can refine."; emotion 6; close; } //Check if the item is refinable... if(!getequipisenableref(.@part)) { mes "[" + getarg(0) + "]"; mes "I don't think I can"; mes "refine this item at all..."; close; } //Check if the item is identified... (Don't know why this is in here... but kept it anyway) if(!getequipisidentify(.@part)) { mes "[" + getarg(0) + "]"; mes "You can't refine this"; mes "if you haven't appraised"; mes "it first. Make sure your"; mes "stuff is identified before"; mes "I can refine it."; close; } //Check to see if the items is already +10 if(getequiprefinerycnt(.@part) >= 10) { mes "[" + getarg(0) + "]"; mes "I can't refine this"; mes "any more. This is as"; mes "refined as it gets!"; close; } set .@refineitemid, getequipid(.@part); // save id of the item set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count switch(getequipweaponlv(.@part)){ case 0: //Refine Armor set .@price,2000; set .@material,985; set .@safe,7; break; case 1: //Refine Level 1 Weapon set .@price,50; set .@material,1010; set .@safe,7; break; case 2: //Refine Level 2 Weapon set .@price,200; set .@material,1011; set .@safe,7; break; case 3: //Refine Level 3 Weapon set .@price,5000; set .@material,984; set .@safe,7; break; case 4: //Refine Level 4 Weapon set .@price,20000; set .@material,984; set .@safe,7; break; case 5: //Refine other stuff? set .@price,2000; set .@material,985; set .@safe,7; break; } if(.@features != 1) { mes "[" + getarg(0) + "]"; mes "To refine this I need"; mes "one ^003366"+getitemname(.@material)+"^000000 and"; mes "a service fee of " + .@price + " Zeny."; mes "Do you really wish to continue?"; next; if(select("Yes:No") == 2){ mes "[" + getarg(0) + "]"; mes "Yeah..."; mes "There's no need to"; mes "rush. Take your time."; close; } if(getequippercentrefinery(.@part) < 100) { mes "[" + getarg(0) + "]"; mes "Oh no! If I continue to"; mes "refine this, there's a risk it could"; switch(.@material) { case 985: mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000."; break; default: mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,"; mes "or any added special properties."; break; } next; mes "["+getarg(0)+"]"; mes "I can't make it any clearer."; mes "Once a weapon is destroyed,"; mes "there's no getting it back."; mes "You really have a chance to"; mes "^FF0000lose this weapon^000000 forever."; mes "Do you still want to refine?"; next; if(select("Yes:No") == 2){ mes "[" + getarg(0) + "]"; mes "I completely agree..."; mes "I might be a great refiner, but sometimes even I make mistakes."; close; } } if((countitem(.@material) < 1) || (Zeny < .@price)) { mes "[" + getarg(0) + "]"; mes "You don't seem to have"; mes "enough Zeny or "+getitemname(.@material)+"..."; mes "Go get some more. I'll be"; mes "here all day if you need me."; close; } set Zeny,Zeny-.@price; delitem .@material,1; if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?) mes "[" + getarg(0) + "]"; mes "Look here... you don't have any Items on..."; close; } if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item mes "[" + getarg(0) + "]"; Emotion e_an; mes "Wait a second..."; mes "Do you think I'm stupid?!"; mes "You switched the item while I wasn't looking! Get out of here!"; close; } if(getequippercentrefinery(.@part) <= rand(100)) { failedrefitem .@part; mes "[" + getarg(0) + "]"; set .@emo,rand(1,5); if (.@emo == 1) { Emotion e_cash; } else { Emotion e_swt; } set .@lose,rand(1,3); if (.@lose == 1) { mes "OH! MY GOD!"; mes "Damn it! Not again!"; mes "I'm terribly sorry, but you know practice does make perfect."; mes "Um, right? Heh heh..."; } else if(.@lose == 2) { mes "Nooooooo!"; mes "It broke!"; mes "I-I'm sorry!"; } else { mes "Crap!"; mes "It couldn't take"; mes "much more tempering!"; mes "Sorry about this..."; } close; } mes "["+getarg(0)+"]"; successrefitem .@part; Emotion e_heh; set .@win,rand(1,3); if (.@win == 1) { mes "Perfect!"; mes "Heh heh!"; mes "Once again,"; mes "flawless work"; mes "from the master~"; } else if(.@win == 2) { mes "Success...!"; mes "Yet again, my amazing"; mes "talent truly dazzles"; mes "and shines today."; } else { mes "Heh heh!"; mes "I'm all done."; mes "No doubt, my work is"; mes "to your satisfaction."; mes "Sheer, utter perfection~"; } close; } // New Refining Functions ======================== if(getequiprefinerycnt(.@part) < .@safe) { mes "[" + getarg(0) + "]"; mes "I can refine this to the safe limit or a desired number of times... it's your choice..."; next; set .@menu2,select("To the safe limit please.","I'll decide how many times.","I've changed my mind..."); } else set .@menu2,2; switch(.@menu2){ case 1: set .@refinecnt,.@safe - getequiprefinerycnt(.@part); break; case 2: next; mes "[" + getarg(0) + "]"; mes "So how many times would you like me to refine your item?"; next; input .@refinecnt; set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part); if (.@refinecnt < 1 || .@refinecheck > 10) { mes "[" + getarg(0) + "]"; mes "I can't refine this item that many times."; close; } if(.@refinecheck > .@safe) { set .@refinecheck,.@refinecheck - .@safe; mes "[" + getarg(0) + "]"; mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be destroyed... is that ok?"; next; if(select("Yes...","No...") == 2){ mes "[" + getarg(0) + "]"; mes "You said so..Hmm so be it..."; close; } } break; case 3: next; mes "[" + getarg(0) + "]"; mes "You said so..Hmm so be it..."; close; } set .@fullprice,.@price * .@refinecnt; mes "[" + getarg(0) + "]"; mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?"; next; if(select("Yes","No...") == 2){ mes "[" + getarg(0) + "]"; mes "You said so..Hmm so be it..."; close; } if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) { mes "[" + getarg(0) + "]"; mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes."; close; } set Zeny,Zeny - .@fullprice; delitem .@material,.@refinecnt; while(.@refinecnt){ if (getequipisequiped(.@part) == 0) { mes "[" + getarg(0) + "]"; mes "Look here... you don't have any Items on..."; close; } if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 90)) { mes "[" + getarg(0) + "]"; mes "Clan... No, but Did you imagine I could be so stupid !?!"; mes "You have changed it..."; mes "Go out before I stun you with my Hammer!!!"; close; } mes "Clang, clang!!!"; if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) { failedrefitem .@part; emotion 23; mes "[" + getarg(0) + "]"; mes "WAHHHH!!! I'm so sorry... I warned you this could happen..."; set .@refinecnt,.@refinecnt - 1; if(.@refinecnt == 0) close; mes "Here's the unused Zeny and Material back..."; getitem .@material,.@refinecnt; set .@fullprice,.@refinecnt * .@price; set Zeny,Zeny + .@fullprice; close; } successrefitem .@part; emotion 21; set .@refinecnt,.@refinecnt - 1; next; } mes "[" + getarg(0) + "]"; mes "All finished... Come again soon."; close; }
-
sorry but i can't understand... can u explain more? it's still get command not found when u type "make clean or make sql"
-
hey there i get this error when try to compile my server in putty i type ./configure n it's seem ok but when i type "make sql" it's become error "command not found" so i can't compile my server...how to fix it?
-
PK Town but if have same pallete to other cant kill him
backtea replied to dize11's question in Script Requests
i think it's can be done if pallete change to item -
how to solve it? can u share it?
-
does anyone have cash refiner? so it will detect when weapon or armor +6 then use this npc to make +7 but with cash