-
Posts
666 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Posts posted by GM Winter
-
-
ChangeName.txt hello is it possible to add logs to the players who changed their names?
-
14 hours ago, hendra814 said:
i think if your server are running with sql database it's no need SQL script
omg my bad while testing this script i edit the sql to my online server while im testing it in my test server haha thank you.
one more problem the script didn't delete the item required and zeny fee.
im also searching how to put some logs for it and 7days cooldown before they can use it again
and if possible not to allowed the special characters in ign and limit the char name to max 15 letters only
-
On 8/28/2015 at 1:37 AM, Brawly said:On 8/28/2015 at 1:06 AM, EL Dragon said:
here
caspen,132,233,6 script Name Changer 445,{ set .@Item,6153; // 1 x Special Exchange Ticket set .@Cost,10000000; // 10 Mio Zeny mes "Hello, I can change your name in a matter of seconds!"; mes "Please remember that a minimum of 4 characters is needed"; mes "and the maximum of 23 characters may not be exceeded."; mes "All I need is your ^FF0000"+getitemname(.@item)+"^000000 and a fee of ^FF0000"+.@Cost+"^000000z."; menu "I don't like my name anymore..",one,"Who cares?!",two; one: query_sql "SELECT `name` FROM `ragnarok`.`char` WHERE `name` = '"+strcharinfo(0)+"'",.@current$; set @GID,getcharid(2); if(!@GID==0){ mes "Please leave your guild first before you change name."; close; } mes "Input name..."; input .@name$; next; if (countitem(.@Item) && Zeny <.@Cost) { mes "Not enough requirements"; close; } else { if(getstrlen(.@name$)<4| getstrlen(.@name$)>23){ mes "You cannot enter less than minimum of 4 and greater than maximum of 23 characters."; close; } if(.@name$ == strcharinfo(0)) { mes "You cannot enter same name."; close; } query_sql "SELECT `name` FROM `ragnarok`.`char` WHERE `name` = '"+.@name$+"'",.@existing$; if(.@name$ == .@existing$){ mes "Name already exists."; close; } mes "New name: "+.@name$+""; query_sql "UPDATE `char` SET `name` = '"+escape_sql(.@name$)+"' WHERE `name` = '"+strcharinfo(0)+"'"; sleep2 1000; delitem .@Item,1; set Zeny,Zeny-.@Cost; mes "Name successfully changed, please relog to see changes."; close; two: emotion e_sob; end; } }
did someone has the sql of this script
-
8 minutes ago, imat1 said:
Might be the one you're looking for
https://ratemyserver.net/index.php?iname=12790&page=re_item_db&quick=1&isearch=Search
no sorry im looking for a script with sql also so that i can also trace the characters who changes their names i also try the item Character Name Change Coupon Item ID# 12790
but nothing change im using pre renewal i only import it in pre re, i need the change name script because i want to implement the character selling system and i want them to allow to change the name of it anyways ty buds -
hello im looking for a change name script working in rathena i try to search but i didnt see any thank you in advance
-
can the effect will remain even the player died in the whole 30 mins?
Quote- Id: 12209
AegisName: Insurance
Name: Life Insurance
Type: Usable
Buy: 2
Weight: 10
Trade:
Override: 100
NoDrop: true
NoTrade: false
NoSell: true
NoCart: false
NoGuildStorage: false
NoMail: false
NoAuction: true
NoStorage: false
Script: |
sc_start SC_LIFEINSURANCE,1800000,0; -
1 hour ago, khouuming21 said:
Better to use this if you're using 2021+ clients
https://github.com/rathena/rathena/pull/7410/filesim using a custom item as a hourly points
-
2 hours ago, Winterfox said:
- script hourly_point_main -1,{ OnInit: .npc_name$ = strnpcinfo(3); .reward_minutes = 60; bindatcmd("check", .npc_name$ + "::OnAtcommand"); end; OnAtcommand: dispbottom("Accumulated " + #daily_minute_count); end; OnPCLoginEvent: addtimer(.reward_minutes * 60000, .npc_name$ + "::OnUpdate"); end; OnUpdate: deltimer(.npc_name$ + "::OnUpdate"); addtimer(.reward_minutes * 60000, .npc_name$ + "::OnUpdate"); if (checkvending() & 2) { end; } #daily_minute_count += .reward_minutes; switch(#daily_minute_count) { case 60: // 60 minutes #CASHPOINT += 1; getitem 677,1; break; case 120: // 120 minutes #CASHPOINT += 1; getitem 677,1; break; case 180: // 180 minutes #CASHPOINT += 1; getitem 677,1; break; case 240: // 240 minutes #CASHPOINT += 1; getitem 677,1; break; case 300: // 300 minutes #CASHPOINT += 1; getitem 677,1; break; case 360: // 360 minutes #CASHPOINT += 1; getitem 677,1; break; case 420: // 420 minutes #CASHPOINT += 1; getitem 677,1; break; case 480: // 480 minutes #CASHPOINT += 1; getitem 677,1; #daily_minute_count = 0; // reset. break; default: break; } }
i still cant get any hourly coins , also after using @check while fishing the command this showing then if i cancel the fishing the accumulated points are still the same as the 1st check while not fishing anyways ty for your effort sir i appreciate it
-
hello im having a problem while the players are fishing they cant get any hourly coins, can someone check it thank you
Quote- script hourly_point_main -1,{
OnInit:
.npc_name$ = strnpcinfo(3);
bindatcmd "check",.npc_name$+"::OnAtcommand";
end;
OnAtcommand:
dispbottom "Accumulated "+#daily_minute_count;
end;
OnUpdate:
if (checkvending() & 2) end;
#daily_minute_count++;
deltimer .npc_name$+"::OnUpdate";
switch ( #daily_minute_count ) {
default:
break;
case 60: // 60 minutes
#CASHPOINT += 1;
getitem 677,1;
break;
case 120: // 120 minutes
#CASHPOINT += 1;
getitem 677,1;
break;
case 180: // 180 minutes
#CASHPOINT += 1;
getitem 677,1;
break;
case 240: // 240 minutes
#CASHPOINT += 1;
getitem 677,1;
break;
case 300: // 300 minutes
#CASHPOINT += 1;
getitem 677,1;
break;
case 360: // 360 minutes
#CASHPOINT += 1;
getitem 677,1;
break;
case 420: // 420 minutes
#CASHPOINT += 1;
getitem 677,1;
break;
case 480: // 480 minutes
#CASHPOINT += 1;
getitem 677,1;
#daily_minute_count = 0; // reset.
break;
}
OnPCLoginEvent:
addtimer ( 60 * 1000 ), .npc_name$+"::OnUpdate";
end;
}
-
54 minutes ago, Nyaniverse said:
Note, your solution only displays the first item on the list. If they bought multiple cards, then it won't announce the rest.
Example: Player A bought Poring, Drops and Fabre Card - the only one that will be showed on announce is Poring Cardow i see i try it and your right do you have any idea how to fixed it?
-
26 minutes ago, danielps said:
-->> getitemname(.@k[0])
where did you create this array .@k ??
Create it first, otherwise you will always get null value sir
solved just change it to this
announce ""+strcharinfo(0)+" just exchanged trash cards into "+getitemname(@bought_nameid)+" from Card Decomposer NPC!",0; -
hello im having an error putting announcement in this card decomposer npc
Quote//===== rAthena Script =======================================
//= Card Trader
//===== By: ==================================================
//= Euphy
//===== Current Version: =====================================
//= 1.1
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= Exchange cards for points.
//============================================================//payon,140,206,5 script Card Decomposer 4_LEVITATEMAN,{
prontera,188,163,4 script Card Decomposer 4_LEVITATEMAN,{
mes "[Card Decomposer]";
mes "Hi, "+strcharinfo(0)+"!";
mes "What can I do for you?";
next;
switch(select(" > Information: > Trade in cards: > Point shop (^0055FF"+getd(.Points$)+"^000000): > Leave")) {
case 1:
mes "[Card Decomposer]";
mes "Do you find that you've got";
mes "useless cards lying around?";
mes "I'll be glad to take them off";
mes "your hands!";
next;
mes "[Card Decomposer]";
mes "I'll give you ^0055FF"+.Points[0]+" Point"+((.Points[0] == 1)?"":"s")+"^000000 for each";
mes "card you give me";
// mes "^0055FF"+.Points[1]+" Points^000000 for MVP cards.";
mes "You can trade those points";
mes "for items later on.";
mes "How does that sound?";
emotion ET_MONEY;
close;
case 2:
mes "[Card Decomposer]";
mes "Select the cards you";
mes "want to trade in.";
if (.Level) {
mes " ";
mes "They must be dropped";
mes "by monsters of level";
mes .Level+" and above.";
}
deletearray @sold_nameid[0],getarraysize(@sold_nameid);
callshop "card_shop",2;
npcshopattach "card_shop";
end;
case 3:
mes "[Card Decomposer]";
mes "You have ^0055FF"+getd(.Points$)+"^000000 Point"+((getd(.Points$) == 1)?".":"s.");
callshop "card_shop",1;
npcshopattach "card_shop";
end;
case 4:
mes "[Card Decomposer]";
mes "*yawn*";
mes "See you later!";
emotion ET_SLEEPY;
close;
}OnSellItem:
mes "Cards to sell:";
mes "-----------------------------------";
for(set .@i,0; .@i<getarraysize(@sold_nameid); set .@i,.@i+1)
if (@sold_nameid[.@i] > 4000 && @sold_nameid[.@i] < 4700) {
if (.Level) {
query_sql("SELECT `LV` FROM `mob_db` WHERE `DropCardid` = "+@sold_nameid[.@i],.@lv);
if (.@lv < .Level) {
dispbottom getitemname(@sold_nameid[.@i])+" is under the minimum level.";
continue;
}
}
set .@card_id[getarraysize(.@card_id)], @sold_nameid[.@i];
set .@card_amt[getarraysize(.@card_amt)], @sold_quantity[.@i];
set .@mvp, compare(.MVP$,""+@sold_nameid[.@i]);
mes ((.@mvp)?" ^FF0000":" ^777777")+@sold_quantity[.@i]+"x "+getitemname(@sold_nameid[.@i])+"^000000";
set .@card_total, .@card_total+(@sold_quantity[.@i]*((.@mvp)?.Points[1]:.Points[0]));
}
deletearray @sold_nameid[0], getarraysize(@sold_nameid);
deletearray @sold_quantity[0], getarraysize(@sold_quantity);
if (!.@card_id) {
mes " ^777777(none)^000000";
emotion ET_SWEAT;
close;
}
mes " ";
mes "---------- Total: ^0055FF"+.@card_total+" pt.^000000 -------";
next;
if(select(" > ^0055FFComplete trade...^000000: > ^777777Cancel^000000") == 2) {
mes "[Card Decomposer]";
mes "Oh, okay...";
emotion ET_SCRATCH;
close;
}
for(set .@i,0; .@i<getarraysize(.@card_id); set .@i,.@i+1)
delitem .@card_id[.@i],.@card_amt[.@i];
setd .Points$, getd(.Points$)+.@card_total;
mes "[Card Decomposer]";
mes "All done!";
emotion ET_DELIGHT;
close;OnBuyItem:
for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)
for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2)
if (@bought_nameid[.@i] == .Shop[.@j]) {
set .@cost, .@cost+(.Shop[.@j+1]*@bought_quantity[.@i]);
break;
}
if (.@cost > getd(.Points$)) {
mes "[Card Decomposer]";
mes "You don't have enough Points.";
emotion ET_HUK;
}
else {
mes "Items purchased:";
mes "-----------------------------------";
for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {
getitem @bought_nameid[.@i], @bought_quantity[.@i];
mes " ^777777"+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+"^000000";
}
mes " ";
mes "---------- Total: ^0055FF"+.@cost+" pt.^000000 -------";
setd .Points$, getd(.Points$)-.@cost;
emotion ET_MONEY;
announce ""+strcharinfo(0)+" just exchanged trash cards into "+getitemname(.@k[0])+" x "+.@k[1]+" from Card Decomposer NPC!",0;
}
deletearray @bought_nameid[0], getarraysize(@bought_nameid);
deletearray @bought_quantity[0], getarraysize(@bought_quantity);
close;OnInit:
set .Level,0; // Minimum monster level to trade corresponding cards.
set .Points$,"#Card_Points"; // Variable to store points.
setarray .Shop[0], // Card Shop items: <ID>,<point cost>
616,5,
4140,20,
4317,30,
4068,50,
4303,150;
setarray .Points[0],1; // Points per <normal card>,<MVP card>
// set .MVP$, // List of MVP cards.
// "4121,4123,4128,4131,4132,4134,4135,4137,4142,4143,4144,4145,4146,4147,4148,4168,4236,"+
// "4241,4263,4276,4302,4305,4318,4324,4330,4342,4357,4359,4361,4363,4365,4399,4403,4407";npcshopdelitem "card_shop",909;
for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)
npcshopadditem "card_shop",.Shop[.@i],.Shop[.@i+1];
OnTimer0050:
showscript "Card Decomposer", getnpcid(0);
initnpctimer;
end;
}
- shop card_shop -1,909:-1//bg_lobby,42,39,5 duplicate(Card Decomposer) Card Decomposer#bgl 4_LEVITATEMAN
//prontera,188,163,4 duplicate(Card Decomposer) Card Decomposer#prt1 4_LEVITATEMAN
//prt_fild08,180,353,4 duplicate(Card Decomposer) Card Decomposer#prtf 4_LEVITATEMAN
-
8 hours ago, Dolphin86 said:
im not sure what happen, i was all good and smooth a few hours ago, all i did was editing my server website and ading gepard, few hours later i was trying to login my server and i keep rejected to login, upon checking i got these error,
i have try reboot and stop my vps, still had the same issue... im lost here.
please help.
restart or reboot
-
58 minutes ago, fckng said:
Change this:
2301,Cotton_Shirt,Camisa de Algodão,4,10,,100,,1,,0,0xFFFFFFFF,7,2,16,,0,1,0,{},{atcommand "@adjgroup 6";},{ atcommand "@adjgroup 0";}
to this
2301,Cotton_Shirt,Camisa de Algodão,4,10,,100,,1,,0,0xFFFFFFFF,7,2,16,,0,1,0,{},{atcommand "@adjgroup 6";}
you can also follow this guide: -
try this:
QuoteEquipScript: |
atcommand "@adjgroup 6";
UnEquipScript: |
atcommand "@adjgroup 0"; -
21 minutes ago, Rynbef said:
if(!getmapxy(.@map$,.@x,.@y,BL_PC,rid2name(.@a[.@d])) && .@charmap$==.@map$)
Rynbef~
got this error
-
-
-
hello can we enable guild skill in shortcuts keys?
-
6 hours ago, hendra814 said:
try use this
- script dualclientkicker -1,{ OnPCLoadMapEvent: set .@charmap$, strcharinfo(3); if(!compare(.tmp$,.@charmap$)) end; set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE`account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` =(SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND`online` <> 0;",.@a); for(set(.@d,0);.@d<.@len;set(.@d,.@d+1)) { if(!getmapxy(.@map$,.@x,.@y,0,rid2name(.@a[.@d])) && .@charmap$==.@map$) set .@c,.@c+ 1; } if(.@c > .limitacc ) { dispbottom "Dual accounts not allowed in PVP."; warp "geffen",0,0; } end; OnInit: set .limitacc,1; setarray .maps$, "valkyrie_vs", "pvp_y_1-2", "prt_pvp", "bat_cc2"; set .lens , getarraysize(.maps$) ; for(set(.a,0);.a<.lens;set(.a,.a+1)) { setmapflag .maps$[.a], mf_loadevent ; set .tmp$ ,.tmp$+.maps$[.a]+","; } }
still not working sir i also got this errors
Quote[Error]: buildin_rid2name: invalid RID
[Warning]: script: buildin_getmapxy: Invalid type 0.
[Debug]: Source (NPC): dualclientkicker (invisible/not on a map)
[Error]: buildin_rid2name: invalid RID
[Warning]: script: buildin_getmapxy: Invalid type 0.
[Debug]: Source (NPC): dualclientkicker (invisible/not on a map)
[Warning]: script: buildin_getmapxy: Invalid type 0.
[Debug]: Source (NPC): dualclientkicker (invisible/not on a map)
[Error]: buildin_rid2name: invalid RID
[Warning]: script: buildin_getmapxy: Invalid type 0.
[Debug]: Source (NPC): dualclientkicker (invisible/not on a map)
[Warning]: script: buildin_getmapxy: Invalid type 0.
[Debug]: Source (NPC): dualclientkicker (invisible/not on a map) -
1 hour ago, hendra814 said:
can you show the error/issue?
please make sure your map already put in the array list
yes sir i already add the maps in the list
Quote- script dualclientkicker -1,{
OnPCLoadMapEvent:
set .@charmap$, strcharinfo(3);
if(!compare(.tmp$,.@charmap$)) end;
set .@len, query_sql("SELECT DISTINCT `account_id` FROM `char` WHERE `account_id` IN (SELECT `account_id` FROM `login` WHERE `last_ip` = (SELECT `last_ip` FROM `login` WHERE `account_id`="+getcharid(3)+")) AND `online` <> 0;",.@a);
//set .@len, query_sql("select account_id from `char` right join login on login.account_id = `char`.account_id where `char`.online = 1 and login.last_ip = '"+ getcharip() +"'",.@a ); //Annieruru Addition.
if(.@len-1) {
for(set(.@d,0);.@d<.@len;set(.@d,.@d+1)) {
getmapxy(.@map$,.@x,.@y,0,rid2name(.@a[.@d]));
if(.@charmap$==.@map$&&rid2name(.@a[.@d])!=strcharinfo(0)) {
dispbottom "No se permite doble login.";
warp "geffen",0,0;
}
}
}
end;
OnInit:
setarray .maps$ , "valkyrie_vs", "pvp_y_1-2", "prt_pvp", "bat_cc2";
set .lens , getarraysize(.maps$) ;
for(set(.a,0);.a<.lens;set(.a,.a+1)) {
setmapflag .maps$[.a], mf_loadevent ;
set .tmp$ ,.tmp$+.maps$[.a]+",";
}
} -
21 minutes ago, hendra814 said:
try dual client kicker script.
you can try script in this link
thank you but ,it didnt work
-
hello i would like to ask for help i want to disable ip in this certain pvp maps i search but its not working can someone help me
Quote// https://rathena.org/board/topic/107986-requesting-for-a-pvp-ranking-w-reset/
/*
ALTER TABLE `char` ADD `pvp_kill` INT(11) UNSIGNED NOT NULL DEFAULT '0' AFTER `fame`;
*/payon,171,222,4 script PVP Warper 630,{
doevent "pvp_rank_main::OnTalk";
}- script pvp_rank_main -1,{
OnTalk:
mes "[PvP Room Master]";
mes "Where do you wanna go?";
next;
switch ( select (
"Valkyrie [ "+getmapusers("valkyrie_vs")+" ]",
"Izlude [ "+getmapusers("pvp_y_1-2")+" ]",
"Prontera [ "+getmapusers("prt_pvp")+" ]",
"Death Match [ "+getmapusers("bat_cc2")+" ]",
// "PVP Ranking",
( getgmlevel() >= 99 ) ? "^FF0000[GM] Reset PVP Ranking^000000":""
)) {
case 1: // vakyrie
if (getmapusers("valkyrie_vs") > 99) callsub S_full;
if (BaseLevel <98) {
mes "Excuse me, but";
mes "did you not come prepared?";
mes "you need to be";
mes "atleast level 98 above!";
close;
}
warp "valkyrie_vs",0,0;
announce ""+strcharinfo(0)+" entered Valkyrie PVP ROOM !",bc_all,0xCCFFFF;
end;
case 2: // Izlude PVP Room
if (getmapusers("pvp_y_1-2") > 99) callsub S_full;
if (BaseLevel <98) {
mes "Excuse me, but";
mes "did you not come prepared?";
mes "you need to be";
mes "atleast level 98 above!";
close;
}
warp "pvp_y_1-2",0,0;
announce ""+strcharinfo(0)+" entered Izlude PVP ROOM !",bc_all,0xCCFFFF;
end;
case 3: // Prontera PVP Rooom
if (getmapusers("prt_pvp") > 99) callsub S_full;
if (BaseLevel <98) {
mes "Excuse me, but";
mes "did you not come prepared?";
mes "you need to be";
mes "atleast level 98 above!";
close;
}
warp "prt_pvp",0,0;
announce ""+strcharinfo(0)+" entered Prontera PVP ROOM !",bc_all,0xCCFFFF;
end;case 4: // Death Match Arena
if (getmapusers("bat_cc2") > 99) callsub S_full;
if (BaseLevel <98) {
mes "Excuse me, but";
mes "did you not come prepared?";
mes "you need to be";
mes "atleast level 98 above!";
close;
}
warp "bat_cc2",0,0;
announce ""+strcharinfo(0)+" entered Death Match Arena !",bc_all,0xCCFFFF;
end;
default:
mes "[PvP Room Master]";
mes "PVP Ranking";
query_sql( "SELECT `name`,`pvp_kill` FROM `char` WHERE `pvp_kill` > 0 ORDER BY `pvp_kill` DESC LIMIT 10", .@name$, .@pvp_kill );
.@size = getarraysize( .@name$ );
for ( .@i = 0; .@i < .@size; .@i++ ) {
mes "["+(.@i + 1 )+"] "+.@name$[.@i]+" - "+.@pvp_kill[.@i]+" kill(s)";
}
break;
case 5:
mes "[PvP Room Master]";
mes "Reset Ranking? Action cant be undo. Confirm your action.";
if ( select( "Confirm","Cancel" ) == 1 ) {
query_sql( "UPDATE `char` SET `pvp_kill` = 0 WHERE `pvp_kill` > 0" );
mes "Done.";
}
break;
}
close;
L_Enter:
.@title$ = getarg( 0,"" );
.@map$ = getarg( 1,"" );
.@max_player = getarg( 2,0 );
.@getmapusers = getmapusers( .@map$ );
mes "[PvP Room Master]";
if ( .@getmapusers == -1 ) {
mes "Invalid map.";
}
else if ( .@max_player > 0 && .@getmapusers >= .@max_player ) {
mes "I'm sorry but the PVP Room is already full!";
}
else {
mes .@title$ + " ["+.@getmapusers+"/"+.@max_player+"]";
if ( select( "Enter" ) == 1 ) {
warp .@map$,0,0;
}
}
return;
OnPCKillEvent:
if ( getcharid(3) != killedrid ) {
query_sql( "UPDATE `char` SET `pvp_kill` = `pvp_kill` + 1 WHERE `char_id` = "+getcharid(0)+" LIMIT 1" );
}
end;
}
// PvP Room ----------------------------------------------prontera,149,197,5 duplicate(PVP Warper) PVP Warper#prt1 630
payon,178,112,4 duplicate(PVP Warper) PVP Warper#pay 630
bg_lobby,48,54,5 duplicate(PVP Warper) PVP Warper#bgl 630
//morocc,162,101,4 duplicate(PVP Warper) PVP Warper#mrc 630
//geffen,124,68,4 duplicate(PVP Warper) PVP Warper#gef 630
//alberta,32,238,5 duplicate(PVP Warper) PVP Warper#alb 630
//izlude,134,96,4 duplicate(PVP Warper) PVP Warper#izl 630
//aldebaran,145,113,4 duplicate(PVP Warper) PVP Warper#ald 630
//payon,171,217,4 duplicate(PVP Warper) PVP Warper#pay23 630 630zzzzprontera,165,92,4 duplicate(PVP Warper) PVP Warper#prt 630
prt_fild08,166,370,5 duplicate(PVP Warper) PVP Warper#prtf 630 -
3 hours ago, playniks said:
Hi thank you for the response. I actually have that kind of file already. I have a working soul link script on my buffer/healer. It's just that the effect of my soul link when wearing a golden thief bug card won't work.
i test this in my server i use buckler with golden thief bug card and the scroll works in me hmm
H>Put logs in Change Name Script
in Database Support
Posted
hello sir i got this error