Jump to content

Like it

Members
  • Posts

    24
  • Joined

  • Last visited

Profile Information

  • Gender
    Male
  • Location
    Brazil

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Like it's Achievements

Poring

Poring (1/15)

11

Reputation

  1. Okay, we'll be looking forward to it. Thank you very much!
  2. Does anyone have these sprites? I found it cool though, I found nowhere, since the post is old.
  3. Wow, thank you very much, it seems nice, good work. Would you recommend using it on an online server since you are missing some sprites? I think it would not mess up, since most sprites are ready, but I need to listen to other people. Are you planning to work on Shaman's sprites as well?
  4. Sorry Double. Has anyone worked on this?
  5. So you think I'd better not create this drop-down menu? What if we kick the player(s) before deleting the items? @Ninja
  6. I'm confused, you're saying different things ... After all, can I delete items from online players? If not, there is no need to tinker with the script unless it is to optimize it. As for the id group, whatever, because on my server there is only Admin, players group 0 and group 1, there are no GMs
  7. Hello, I would like someone to help me with this script, because I tried anyway to show the menu to delete items if GM wants and I could not ... There are no errors in map-server, but as explained, I would like the option to delete Items along with the rest of npc. OBS: Yes, the script is very messy, if you want to optimize it, I will also thank.
  8. Hello. I'm trying together some scripts to make a woe guild points + woe players point. Here Capuche made a script for the petitioner, who forgot to give some important information. I need to tailor your script for this request, join the scripts, and complete the script with the following things. Another thing is, like: Would I add 2 points every minute (60 seconds) for each player and his guild to be inside a castle and not die? The player must be moving, to prevent players from entering and hiding standing in a place without movement ... I researched and found this to do time counting. OnSec: .@player_name$ = strcharinfo(0); setarray getd( "."+.@player_name$+"_WoeTimes[getarraysize(."+.@player_name$+"_WoeTimes)]") , getd( "."+.@player_name$+"_WoeTimes[getarraysize(."+.@player_name$+"_WoeTimes)]") + 1; //add 1 second to counter Would I always add points to the player and his guild, not just his guild? Display the deaths of each player? When changing month save in a different table all points for future queries or backup, avoiding problems. And then convert the total points of the guild woe to total_guild_shop to buy consumables in a total_guild_shop points shop, where only the guild master or players authorized by him could use the points for purchase. Merge the scripts.
  9. Hi, Emistry. All right? I use Hercules and I loved your script, however, when trying to use it, every time I try to send any item, the map-server terminates itself without presenting any errors. Note: I already imported the tables to my database.
  10. This script seems to be very interesting. However, it is outdated and very old. I think he also does not have the renewal classes ... Would any kind soul would like to update this script to the community?
  11. Olá. Hoje vim trazer um tutorial muito simples, mas que é de grande utilidade para todos, até pelo motivo de eu não ter encontrado em nenhuma comunidade PT-BR. Tive um grande trabalho para achar um tutorial que tivesse uma línguagem mais prática e funcionasse, então devido a isso decidi postar. Utilizar multíplos iteminfo.lub/lua. Primeiro, como sabemos, os clientes mais novos estão usando itemInfo.lua / lub para substituir arquivos TXT para informações de item no lado do cliente, dentro da pasta System. Acho que grande parte dos criadores de servidores mais complexos, se depararam com a situação de adicionar algum(ns) item(ns) de outro RO como idRO, iRO, & jRO, KRO e sempre receber "Item desconhecido" e "Maçãs", e não saber o verdadeiro motivo causador disso, exceto ao trocar os arquivos itemInfo.lua/lub. Eis que surgiu uma solução! Vamos lá. Utilidade: utilizar itemInfo de outros servidores oficiais, como kRO, iRO e idRO, e fazer com que aqueles possam substituir informações não existentes de outros arquivos. Tutorial - 1º Passo: Prepare os arquivos a ser utilizado, exemplo: "itemInfo_bRO.lua" - Traduzido do BRO com todos os arquivos em PT-BR. "itemInfo_iRO.lua" Servidor internacional iRO. "itemInfo_idRO.lua". "iteminfo_custom" - Seu iteminfo customizado, com seus itens criados. "itemInfo_kRO.lua" - Servidor oficial e distribuidor do jogo RO. - 2º Passo: Faça um arquivo .lua vazio, dê o nome "itemInfo.lua". Este será o arquivo principal para ser lido pelo cliente. Edite o "itemInfo.lua", e cole este código. - 3º Passo: entre no arquivo criado iteminfo.lua, que foi colado o código e onde estiver essa parte main = function() iiFiles = { "System/itemInfo_Translation.lua", -- 1st priority "System/itemInfo_iRO.lua", -- 2nd "System/itemInfo_idRO.lua", -- 3rd "System/itemInfo_kRO.lua", -- 4th } Mude para o nome dos seus arquivos, colocando em ordem de prioridade qual arquivo deve ser lido primeiro pelo Hexed (Geralmente iniciado com o BRO). Salve e feche. - 4º Passo: Em seguida, copie o arquivo e renomeie o arquivo copiado para "iteminfo.lub". - 5º Passo: Entre em todos seus arquivos preparados no Passo 1, e verifique se ambos começam assim: tbl = { ... } Caso sim, continue no mesmo arquivo e vá para o próximo passo. - 6º Passo: Vá até o final do arquivo e remova a função principal. Geralmente estará assim. Spoiler function main() for ItemID, DESC in pairs(tbl) do result, msg = AddItem(ItemID, DESC.unidentifiedDisplayName, DESC.unidentifiedResourceName, DESC.identifiedDisplayName, DESC.identifiedResourceName, DESC.slotCount, DESC.ClassNum) if not result then return false, msg end for k, v in pairs(DESC.unidentifiedDescriptionName) do result, msg = AddItemUnidentifiedDesc(ItemID, v) if not result then return false, msg end end for k, v in pairs(DESC.identifiedDescriptionName) do result, msg = AddItemIdentifiedDesc(ItemID, v) if not result then return false, msg end end end return true, "good" end Adicione ao lugar removido o seguinte código. for ItemID,DESC in pairs(tbl) do CheckItem(ItemID,DESC) end Fim! Aprecie seus novos arquivos. Notas e Créditos. OBS¹: Apenas traduzi um tutorial já existente, no qual vou estar deixando a fonte a baixo. Mas tive que modificar praticamente todo tutorial, então os créditos são a ambos. OBS²: Não irei fornecer nenhum arquivo, isto é apenas um tutorial, não me envie pm me solicitando nada. OBS³: todos os arquivos devem ser decompilado .lua, não compilado. OBS4:Se você tiver itens com ícone vazio , isso significa que sua data não tem o sprite / textura necessária ou seus arquivos itemInfo estão com o "unidentifiedResourceName" ou "identifiedResourceName" vazio ou não preenchidos. Fonte: http://pservero.com/...iteminfo-files
  12. Hello. I wonder if it is possible to clone the transclasses skills that had change with the arrival of the renewal, and apply the mechanical pre-renewal on a renewa server? Example: Storm Gust and Lord of Vermilion of Warlock reached IC (instant cast) with 150 DEX before renewal. If I clone the skills, would I apply the above pre-renewal formula? If so, how would I do it? Would I add a skill normally, as if it were a custom skill? And then would she give the player through an NPC? I thought about following this tutorial: http://herc.ws/wiki/Adding_new_skills Is there another easy way to clone skill?
  13. Hello, I would like a simple WOE ranking, showing tops 25: kills, deaths, KDR, and emp breaker, with option for automatic or manual reset. I've tried a lot, but it's very difficult to find something like that and that is working too. I tried to use the tbm forum, but it does not work. Https://rathena.org/board/topic/99009-pk-pvp-statistics-near-finishing-help-needed/ Thanks in advance.
  14. Name: The battle Description: The Game contains 3 teams (modifiable). Each team contains 3 players (modifiable). Each team has its point: return / initial, where it begins and recomposes after being killed. This initial / return point would be random, ranging from 3 (modifiable). Each team has a mission, which is received when entering the map. Each team needs to meet its mission, where it will be subject to many things. PvP will be connected at all times. At death you are automatically directed to the return point. The game lasts for 20 minutes. Each team must score 3 points (modifiable, depending on the number of players in each team). How it works? There will be a npc of registration with open chat informing the amount of players entered and the amount of players needed to start the battle.By completing the number of subscribers, the battle chat would close, all players would be teleported to the battle map, where 3 teams will be formed randomly, and will be informed the mission of each team (In brodcast will appear at the top of the screen, just for the players of cda time, the name of the team that they will have to eliminate. Example: Your task is to delete the "Blue" group. And for the "Blue" members, the message would be: Your task is to eliminate the "Red" group and so on ...). Each team will be at its starting point / return. Then a countdown will be made (no one can move) and the battle will begin. The 20-minute count starts. The PvP will be turned on, And from there, players would have to hunt on the map the assigned team on the mission, this happening on the same map, while other teams also seek their respective missions (times to remove). At death you are automatically directed to the return point. When the death occurs for the hunter team (team that aims to eliminate its team), it counts a point, otherwise, no. It will win the first team to accomplish its mission, which is: add 3 points, defeating 3 players of the target team. Comments I tried to start the script myself based on a custom BG script from AnnieRuru, but since I'm not a programmer and much less scripter, it did not work very well. So because of this, I decided to bring the idea to the community, and also post here my initial flawed script, for anyone who knows someone who wants to contribute to the community, help us in creating the script. The script of our master AnnieRuru already has some parts (The Battle) and it sure will also help us a lot to start. My initial script. Display error on line 25 Spoiler - script battle#custom -1,{ L_Start: if ( .signup_count < .min2start *2 ) end; for ( .@i = 0; .@i < .signup_count; .@i++ ) { if ( attachrid( .signup_aid[.@i] ) ) { if ( strcharinfo(3) != strnpcinfo(4) ) { // player is no longer on this map deletearray .signup_aid[.@i], 1; .signup_count--; .@i--; } } else { deletearray .signup_aid[.@i], 1; .signup_count--; .@i--; } } if ( .start || .signup_count < .min2start *2 ) end; announce "event started", bc_all; .start = 1; .red = createbgid( "guild_vs3", 13,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead" ); .blue = createbgid( "guild_vs3", 86,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead" ); .black = createbgid( "guild_vs3", 49,15, strnpcinfo(0)+"::OnblackQuit", strnpcinfo(0)+"::OnblackDead" ); for ( .@i = 0; .@i < .min2start *2; .@i++ ) setbgid ( .@i %3 )? .red : .blue : .black, .signup_aid[.@i]; deletearray .signup_aid, .min2start *2; .signup_count -= .min2start *2; bg_warp .red, "guild_vs3", 13,50; bg_warp .blue, "guild_vs3", 86,50; bg_warp .black, "guild_vs3", 49,15; .score[1] = .score[2] .score[3] = .startingscore; bg_updatescore "guild_vs3", .score[1], .score[2], .score[3] ; sleep .eventlasting * 1000; if ( .start == 1 ) { if ( .score[1] == .score[2] == .score[3] ) mapannounce "guild_vs3", "Draw !", bc_map; else if ( .score[1] > .score[2] & .score[3]) { mapannounce "guild_vs3", " Red side wins !", 0; callsub L_reward, .red; } else if ( .score[1] & .score[3] < .score[2] ) { mapannounce "guild_vs3", " Blue side wins !", 0; callsub L_reward, .blue; } else if ( .score[3] > .score[2] & .score[1] ) { mapannounce "guild_vs3", " Black side wins !", 0; callsub L_reward, .black; } } bg_warp .red, "prt_gld", 155,82; bg_warp .blue, "prt_gld", 158,82; bg_warp .black, "prt_gld", 158,82; bg_destroy .red; bg_destroy .blue; bg_destroy .black; .start = .score[1] = .score[2] = .score[3] = 0; goto L_Start; L_Reward: getbgusers getarg(0); for ( .@i = 0; .@i < $@arenamembersnum; .@i++ ) getitem 501, 1, $@arenamembers[.@i]; // item Reward return; OnredDead: callsub L_dead, 1; OnblueDead: callsub L_dead, 2; OnblackDead: callsub L_dead, 3; L_dead: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2] .score[3]; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); sleep2 1250; percentheal 100,100; end; OnredQuit: callsub L_quit, 1, .red; OnblueQuit: callsub L_quit, 2, .blue; OnblackQuit: callsub L_quit, 3, .black; L_quit: percentheal 100, 100; if ( bg_get_data( getarg(1), 0 ) ) end; .score[ getarg(0) ] = 0; awake strnpcinfo(0); end; OnInit: .eventlasting = 20 * 60; // how long would the event last or it auto-reset. 30 *60 = 30 mins .min2start = 1; // minimum player to start. If 1vs1 (2 players to start), set to 1. If 2vs2 (4 players to start), set to 2. .startingscore = 3; // score at start end; // setarray .rewarditem, // 501, 10, // reward to the winning team // 501, 3, // reward to the losing team // 501, 3; // reward to the losing team // set .red_cloth, 1; // color value from red clothing // set .blue_cloth, 2; // color value from blue clothing // set .black_cloth, ?; // color value from black clothing // end; } prt_gld,174,104,5 script Sala de entrada 100,{ end; OnInit: waitingroom "Name",4, "battle#custom::L_Start", .min2start *2; end; } guild_vs3 mapflag battleground 2 guild_vs3 mapflag nosave SavePoint guild_vs3 mapflag nowarp guild_vs3 mapflag nowarpto guild_vs3 mapflag noteleport guild_vs3 mapflag nomemo guild_vs3 mapflag nopenalty guild_vs3 mapflag nobranch guild_vs3 mapflag noicewall function script rand__ { .@range = getarg(0); .@count = getarg(2, 0); if ( !.@count || .@count > .@range ) .@count = .@range; else if ( .@count > 128 ) .@count = 128; while ( .@i < .@count ) { .@r = .@save = rand( .@i, .@range -1 ) ; if ( !getd( ".@tmp1_"+ .@i ) ) { .@r = ( getd(".@tmp1_"+ .@r ) )? getd( ".@tmp2_"+ .@r ) : .@r; setd ".@tmp2_"+ .@i, .@r; setd ".@tmp2_"+ .@save , .@i; setd ".@tmp1_"+ .@save , 1; set getelementofarray( getarg(1), .@i ), .@r; if ( .@save < .@count ) set getelementofarray( getarg(1), .@save ), .@i; } .@i++; } return .@count; } AnnieRuru Script base Spoiler prontera,150,153,5 script kjdhfkdjsf 100,{ mes "wanna sign up"; if ( select( "yes", "no" ) == 2 ) close; while ( .signup_aid[.@i] != getcharid(3) && .@i < .signup_count ) .@i++; if ( .@i < .signup_count ) { mes "you have already sign up in this event"; close; } .signup_aid[ .signup_count ] = getcharid(3); .signup_count++; mes "You are now signed to the BG event"; // .@i = 0; // DEBUG // while ( .signup_aid[.@i] ) { // .@signup_name$ = .@signup_name$ +","+ rid2name( .signup_aid[.@i] ); // .@i++; // } // mes "[Debug] Currently have "+ .signup_count +" sign-in and they are "+ .@signup_name$; close2; L_Start: if ( .signup_count < .min2start *2 ) end; for ( .@i = 0; .@i < .signup_count; .@i++ ) { if ( attachrid( .signup_aid[.@i] ) ) { if ( strcharinfo(3) != strnpcinfo(4) ) { // player is no longer on this map deletearray .signup_aid[.@i], 1; .signup_count--; .@i--; } } else { deletearray .signup_aid[.@i], 1; .signup_count--; .@i--; } } if ( .start || .signup_count < .min2start *2 ) end; announce "event started", bc_all; .start = 1; .red = createbgid( "guild_vs3", 13,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead" ); .blue = createbgid( "guild_vs3", 86,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead" ); for ( .@i = 0; .@i < .min2start *2; .@i++ ) setbgid ( .@i %2 )? .red : .blue, .signup_aid[.@i]; deletearray .signup_aid, .min2start *2; .signup_count -= .min2start *2; bg_warp .red, "guild_vs3", 13,50; bg_warp .blue, "guild_vs3", 86,50; .score[1] = .score[2] = .startingscore; bg_updatescore "guild_vs3", .score[1], .score[2]; sleep .eventlasting * 1000; if ( .start == 1 ) { if ( .score[1] == .score[2] ) mapannounce "guild_vs3", "Draw !", bc_map; else if ( .score[1] > .score[2] ) { mapannounce "guild_vs3", " Red side wins !", bc_map; callsub L_Reward, .red; } else if ( .score[1] < .score[2] ) { mapannounce "guild_vs3", " Blue side wins !", bc_map; callsub L_Reward, .blue; } } bg_warp .red, "prontera", 155,182; bg_warp .blue, "prontera", 158,182; bg_destroy .red; bg_destroy .blue; .start = .score[1] = .score[2] = 0; goto L_Start; L_Reward: getbgusers getarg(0); for ( .@i = 0; .@i < $@arenamembersnum; .@i++ ) getitem 501, 1, $@arenamembers[.@i]; // item Reward return; OnredDead: callsub L_dead, 1; OnblueDead: callsub L_dead, 2; L_dead: .score[ getarg(0) ]--; bg_updatescore "guild_vs3", .score[1], .score[2]; if ( !.score[ getarg(0) ] ) awake strnpcinfo(0); sleep2 1250; percentheal 100,100; end; OnredQuit: callsub L_quit, 1, .red; OnblueQuit: callsub L_quit, 2, .blue; L_quit: percentheal 100, 100; if ( bg_get_data( getarg(1), 0 ) ) end; .score[ getarg(0) ] = 0; awake strnpcinfo(0); end; OnInit: .eventlasting = 30 * 60; // how long would the event last or it auto-reset. 30 *60 = 30 mins .min2start = 1; // minimum player to start. If 1vs1 (2 players to start), set to 1. If 2vs2 (4 players to start), set to 2. .startingscore = 5; // score at start end; } guild_vs3 mapflag battleground 2 guild_vs3 mapflag nosave SavePoint guild_vs3 mapflag nowarp guild_vs3 mapflag nowarpto guild_vs3 mapflag noteleport guild_vs3 mapflag nomemo guild_vs3 mapflag nopenalty guild_vs3 mapflag nobranch guild_vs3 mapflag noicewall function script rand__ { .@range = getarg(0); .@count = getarg(2, 0); if ( !.@count || .@count > .@range ) .@count = .@range; else if ( .@count > 128 ) .@count = 128; while ( .@i < .@count ) { .@r = .@save = rand( .@i, .@range -1 ) ; if ( !getd( ".@tmp1_"+ .@i ) ) { .@r = ( getd(".@tmp1_"+ .@r ) )? getd( ".@tmp2_"+ .@r ) : .@r; setd ".@tmp2_"+ .@i, .@r; setd ".@tmp2_"+ .@save , .@i; setd ".@tmp1_"+ .@save , 1; set getelementofarray( getarg(1), .@i ), .@r; if ( .@save < .@count ) set getelementofarray( getarg(1), .@save ), .@i; } .@i++; } return .@count; }
×
×
  • Create New...