-
Content Count
403 -
Joined
-
Last visited
-
Days Won
10
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by Winterfox
-
@@OverLord If you have custom skills you should check if they call skill->get_sp() or skill->get_range() with 0 skill level.
-
Concerns about function that checks if a given element is in an array
Winterfox replied to jaBote's question in Script Support
@@jaBote Upon reading it again i realized i could have made it even a bit shorter. function script PVPLP_revertLevel { setarray .@maps$, "izlude", "pvp2", "pvp3"; if( !compare( implode( .@maps$, ":" ), strcharinfo( PC_MAP ) ) ) end; atcommand "@blvl " + (PVPLP_TRUE_LEVEL - BaseLevel);} To the Topic: A native in_array function would be a really great addition. What also would be really good would be if getarraysize would return the real array size and not the highest index and a way to loop trough a array via function instead of a index to make things like this possible: ... mes "There are " + getarraysize( .demoSpecialMobIds ) + " which currently give you a special bonus."; mes "These mobs are the following: "; while( .@mobId = next_element( .demoSpecialMobIds ) ) mes getmonsterinfo( .@mobId, MOB_NAME ); close;end;OnNPCKillEvent:if( !.demoSpecialMobIds[ killedrid ] ) end;... do some specialstuff for special mob ...end;OnInit: .demoSpecialMobIds[ 1000 ] = 1; .demoSpecialMobIds[ 1004 ] = 1; .demoSpecialMobIds[ 1006 ] = 1;end;... I just realized that this ".array[ idIndex ]" approach is a workaround for a lacking in_array function especially for integers except you want to extensivly utilize atoi. The benefit is like the solution with implode, it may be better performance wise. Maybe a in_array function could solve both cases to make it more readable at all. A next_element or phplike foreach loop would still be great though. Such a kind of function would be great for functions which should work with integer and string values. I could imagine things like this: for( .@i = 0; .@i < getarraysize( getarg( 1 ) ); .@i++ ) mes getmonsterinfo( next_element( getarg( 0 ) ), next_element( getarg( 1 ) ) ); It would make it possible to either use the string constant or the number of specific informations to loop trough it via a function that doesn't care if it is a string or a number. -
getusers with the parameter 1 counts all players on the server, not just on one map. If you really just want those on prontera you need to use parameter 8. *getusers(<type>)This function will return a number of users on a map or the whole server. What it returns is specified by Type.Type can be one of the following values, which control what is returned:0 - Count of all characters on the map of the invoking character.1 - Count of all characters in the entire server.8 - Count of all characters on the map of the NPC the script is running in. prontera,154,108,0 script Online Players 2_BULLETIN_BOARD,{ end; OnInit: while( sleep( 1000 ) ) { delwaitingroom; waitingroom getusers( 8 ) + " players in Prontera", 0; } end;}
-
How to link webhosting database to vps database?
Winterfox replied to mrlongshen's question in Website Support
If you put your remote mysql address and the correct port in your cora config, it should be able to use the remote mysql database of your vps. -
How to link webhosting database to vps database?
Winterfox replied to mrlongshen's question in Website Support
@@mrlongshen You just need the address of your database server and it's port. Just input the database address and your port in the config instead of local host and the default port. -
Aeromesi's Fast as the Wind Ragnarok Services
Winterfox replied to Aeromesi's topic in Paid Services
@@Aeromesi Good to see that you got instancing. Pretty nice work. -
@@TecnoCronus There is no such command, maybe if you share some more information we can workout another solution that might help.
-
Personally i think 10~60 are the best for Base and Job. It allows you to get to a Level to have fun with, but is still a challange later in the game. For items they are okay if you ask me. I wouldn't raise them that much if at all, especially the MVP ones. High rate servers tend to be more of a chat talk, pvp, gvg environment since once you get a certain level there is nothing much to do. That holds true for lowrates also, but it takes far more time to get there. The biggest issue for most servers today is the lack of new content.
-
@almarket23 I think many know, but noone wants to do it for free i guess.
-
@@Noil I think it is a thing of practice. Using original sprites, modding them to get a feel for the style and practicing to create own things free hand afterwards.
-
@@Noil Not in rathena in particular, but it is easier sometimes to find things via google than the herc board search.
-
@Noil https://rathena.org/board/topic/70962-recommended-client-setup/
-
@@Noil That depends on what the client sends to identify a session. If he gives you the char id it could work. If he only gives you the account id, it wont work. But using your approach would force the server to loop trough the array everytime a character operation is performed and you would need to change it in many places i guess. So it is a lot of work for sure.
-
@@Noil It is more like this: acc2char[accid] = currentlyusedchar;
-
@@Anisotropic Defixation What you are searching for is donpcevent: place, 100,100,1%TAB%script%TAB%NPC%TAB%53,{ mes "Hey NPC2 copy what I do"; close2; @emote = rand(1,30); donpcevent "NPC2::OnEmote"; OnEmote: emotion @emote; end;}place,102,100,1%TAB%script%TAB%NPC2%TAB%53,{ mes "Hey NPC copy what I do"; close2; @emote = rand(1,30); donpcevent "NPC::OnEmote"; OnEmote: emotion @emote; end;} https://github.com/HerculesWS/Hercules/blob/master/doc/script_commands.txt
-
@@Stein It is possible and not really hard you just can turn off renewal: http://herc.ws/wiki/SRC/config/
-
Hashield and Internal Guard provide mac / hwid protection. It is possible to spoof the hwid. As long as you have physical access to the source of your id, there is allways a way to change it. It is just a question how far you will go even though you don't need to do that much. It is enough to change the VolumeID and there are easy tools to do that. Hard Disk Serial Number Changer for example. For mac you can use this: For the mac address there is Technitium MAC Address Changer. It's nothing more than a few clicks to spoof most of id things you can think of. @@Kid BaKa If you use Internal Guard or Hashield it is no problem to have a mac or hwid protection.
-
@@Noil First of all welcome to the community. Excuse me if i am too basic, i don't know how broad your expierience is, i will try to just give you some hints how i usually deal with the situation you are in right now. I would recommend you to get started with making the server able to compile and setup a test environment with a working server and client. Afterwards you should start with creating source mods / plugins. I think reading and extending software you didn't develop is the fastest way to get a grasp of it. For the most basic things the Hercules wiki is a great starting point: http://herc.ws/wiki/Main_Page it covers many different topics and provides a solid foundation of many aspects of Hercules. A emulator like Hercules is just like any other server software, it takes data from a client and responds according to the protocol both know. They are just a bit different in the aspect that the knowledge of the protocol comes from reverse engineering by using a debugger on assembler level or by capturing packets and trying to make sense of them. He pretends he does know the protocol exactly as the client and tries to reflect it as close to the original as possible. That is the reason why sometimes crashes happen, because the server lacks packets due to many circumstances, like missinterpretation, it simply isn't implemented yet or the packet structure changed in a never client revision. If you have any questions you can write me a PM, it can also be in german if you like. Good Luck!
-
@@ace9010 http://herc.ws/wiki/Custom_Pets
-
@@PrntScrn Nevermind the last thing, seems like quoting a codesnippet messes with some things. Did you test if @mac$ is really set automatically? I still doubt it is. What is this for? It seems to just query without the results beeing used anyway query_sql ("select UniqueID from jogadoresid where UniqueID='",@mac$);
-
@@PrntScrn Nonsense because of misinterpetion.
-
@@PrntScrn you should be more specific if you just want a hint instead of a solution. Even though you could simply get what you need to do by checking out what i posted. You insert a mac address that you fetched nowhere, as far as i know the protection solutions save it as last_mac or something similiar in the login table. if internal guard doesn't save the mac in login though you simply have to query jogadoresid by ip to get the mac? To fix it you just need to fetch the mac you want to insert?
-
@@PrntScrn // |__ __| | __ / __ // | | _____ ____ _ ___| |__) | | | |// | |/ _ / / _` / __| _ /| | | |// | | __/> < (_| __ | | |__| |// |_|___/_/___,_|___/_| _____/- script Pack Iniciante 90,{OnPCLoginEvent:setarray @itens[0],5107,20100,20136,20135,20089; //Aqui você adiciona o ID dos itens setarray @qtd[0],1,3,200,100,1; //Aqui você colocará a quantidade de cada umquery_sql ("select last_ip, last_mac from login where account_id='"+getcharid(3)+"'",@ip$, @mac$);query_sql ("select UniqueID from jogadoresid where UniqueID='",@mac$);query_sql ("select ip from redlist where ip='"+@ip$+"'",@exist$);if (@exist$!=@ip$){query_sql("insert into `redlist` (account,ip,UniqueID) values ('"+getcharid(3)+"', '"+@ip$+"', '"+@mac$+"')");}else {set #jarecebeu,1;end;}if (#jarecebeu == 1) { Mes "O pack Inciante é dado apenas uma vez";} mes "^00FF00 Bem Vindo^000000 ao ^FF0000Texas-RO ^000000";mes "";mes "Vejo que você é novo por aqui, então vou te dar o Pack Iniciante!!";mes "Você receberá no Pack, os seguintes itens:";next;for (set .@i,0; .@i<getarraysize(@itens); set .@i,.@i+1){ set .@nome$, .@nome$+getitemname(@itens[.@i]); mes "[^FF0000"+@qtd[.@i]+"^000000] ^0000FF"+.@nome$+"^000000"; set .@nome$,"";}next;for (set .@i,0; .@i<getarraysize(@itens); set .@i,.@i+1){ getitem @itens[.@i],@qtd[.@i];}set #jarecebeu,1;next;mes "Prontinho, faça bom uso!! ^^";close;end;}
-
@@Aurora You are welcome.
-
I can't see how it's more readable or manageable when you have tools like phpmyadmin.