Jump to content

iZae

Community
  • Content Count

    81
  • Joined

  • Last visited

  • Days Won

    9

Posts posted by iZae


  1. Hello buddy!

    First, be sure to post in correct sections, this is not a Guide.

     

    Here's an example of Revival Skill Script:

     

    Skillinfo.txt (don't have the headings for each column, but in this case the "Skill_Fh_Begin" is the important info)

    0124	Revival	1	5,10;13,10;14,10	1,-1	1,-1	1,-1	-1	2	1	1	-1	98,4	1	1	1	800	6	1	0	0	0	0	0	SkillSp_Fh	0	0	0	Skill_Fh_Begin	Skill_Fh_End	0	0	0	0	0	0	0	0	0	0	0	0	0	0	SkillCooldown_Fh	1	1	12	0	116	-1	113	0	-1	0,0	0,0	-1	-1	-1	0	0	-1	-1	148	0	0	0	s0124.tga	0	0	Revive dead character	Brings dead target back to life. Requires Revival Clover. Each skill level reduce skill cooldown by 1.5 sec	Fix consumption of 50 SP	0

     

    And in skilleffect.lua (resources/scripts/calculate) you have this function:

    function Skill_Fh_Begin ( role , sklv ) 
    	local map_name_ATKER = GetChaMapName ( role )
    	if map_name_ATKER == "garner2" then
    			SystemNotice ( role , "Unable to use Revival skills here." )
    	SkillUnable(role)   
    		end
    	
    	local item_count = CheckBagItem ( role , ITEM_RELIFE ) 
    	if item_count <= 0 then  
    		SkillUnable(role)   
    		SystemNotice ( role , "Does not possess required item to use skill" ) 
    	end 
    	local a = DelBagItem ( role , ITEM_RELIFE , 1 ) 
    end 

     

     

    That's the default way to avoid using "Revival" skill in Chaos Argent.

     

     


  2. IMO NO.

    CONS: There are more servers than players. Game is old. Chances of success through time are really low.

    PRO: Available source code, extensions. You could really make a difference in your server.

     

    If you want money, there are other things you could do to get more. If you want learn the basics of gamedev and you have ToP nostalgia, then why not?

    But still, if you're looking for something to invest your time, I'd suggest you to go learn programming or gamedev with Unity/Unreal.


  3. Well, since u said Rolls, I tought u mean something like prevent using 2 hp recovery items. Those arent used with states, instead they just add hp to your attrs. 

     

    If u want to avoid using twice an item that give states, as inuarashi said, take a look at Amplifiers itemeffect script.

     


  4. You have 2 things:

    Server where you have your serverfiles and database, and client where players get to enter and play the game.

    Your serverfiles have some files such as iteminfo.txt that contains the whole list of items available in your server.

     

    But on the client side, you need that same iteminfo but with a different extension. Instead of iteminfo.txt (as you have on your server side), the client needs an iteminfo.bin. So a compiler turns .txt into .bin, and decompiler turns .bin into .txt. (You can't just rename the files, 'cause as the topic says, the files are compiled) :P

     

     

     

    • Like 1

  5. Hello There!

    Just a brief summary: ToP is originally coded in C++ (Source code is available in this forum) and Lua. It uses SQL database. Most PKOsites are coded in PHP. 

    It's really up to you where you'll want to guide your learning path, but as a personal suggestion, start learning LUA  (https://www.lua.org/docs.html). Most ingame scripts are coded in LUA (NPCs, Missions, Item Effects, Attributes, Skills, even the AI; and also, most of the releases of this forum are for those kind of scripts).

    You could also learn a bit about SQL (mainly UPDATE, INSERT and basic Queries) 'cause you can find here an awesome extension called LuaSql, which allows you to play with your database from ingame events.

    Once you're familiar with it's language, and you feel like you can pretty much do everything you want to in LUA (a good way to prove you're confident enough is to understand advanced pkodev extensions - such as Hooks, Serialize, AntiDupes, AI Behaviours - ), you can dive into C++ learning to making your own extensions, or edits on the source code. This is really advanced shit, it'll take you some time to get familiar with LUA first.

     

    Use PkoDev Search Engine, Guides Section, Releases Section, Lua docs, Google and Youtube. You can do it ☺

     

    --Edit:

    Forgot to say, despite all the information you can get from the internet, the greatest way of learning is by Doing. 

    Install Basic Server Files, Get to make it run just for you or few friends, and start doing!

    Start by making an Npc, then a mission, then an usable item, and so on. From basic to advanced, just the same as learning anything else.

     

     

    • Like 2
    • Thanks 3

  6. You really think is a good idea to implement a BR on a game that is almost dead?

    Imagine the player base you need to be opening map copies each minutes as fornite or apex do.

     

    A simpler and more efficient way is to make a maze for ur server, so once every X hours you open that maze. Just another Chaos Argent, but where you enter naked and loot on chests. 


  7. That function doesn't add bonus ap per reset and doesn't take in consideration if the character has rebirth skills (just reset all skills).

    My suggestions:

    • Save somewhere how many resets the char has done (luasql, unused attrs, serialize)
    • Reset to lv 1 and give the starting 4 attribute points + bonus per reset
    • Set a condition to check if the player has nothing equipped before the reset (otherwise imagine a lv 1 newbie with forged death set)
    • Check if the player has Rebirthed before the reset, and add a "rebirth skill book" that checks the class once is lv 41+ and adds the correct rebirth skill and rebirth lvl.

     


  8. You used ImpsPointCard as itemeffect function name right?

    in your script I see "function ItemUse_Points ( role , Item )"

    in mkhzaleh I see "ImpsPointCard = function(Player, Item)"

     

    Also you have to set this constants (in case you didn't do it before)

    SQL.GameDB.Name, SQL.GameDB.Host, SQL.GameDB.User, SQL.GameDB.Password

     


  9. As far as I know, to translate the game itself to another language you'll need to manually translate every Client File (of the GUI), hex the game.exe, and also translate every single script (Server Side) with a Notice, Text, Talk, MissionTalk, BickerNotice, SystemNotice and so on. Well, I say manually but maybe someone have a better idea :P

    It would be an endless and pointless job. Several years ago there was a group of serverdev with geminidev who tried to full translate newer files from CH to ENG and after some months of many people working, they just stopped trying. 

    Also, ToP is dying, it's a really old game, with not a huge active players. I'll say it's not worth the effort.

     


  10. 15 hours ago, Fisal Moha said:

    local statetime = math.min(1,math.floor(sklv/4))

     

    maybe that cause infinite stun 

     

    also there might be another error that cause infinite stun check Error logs for more info

    Ain't no way that it causes infinte stun:

    math.min returns the minimum between 1 and the result of "math.floor(sklv/4)"

    and math.floor returns an integer not greater than the result of (sklv/4)

     

    so in case the sklv is 10 (max) the whole line would b e

    statetime = math.min(1,math.floor(10/4)) = math.min(1,math.floor(2.5)) = math.min(1,2) = 1


  11. 14 hours ago, Solid Strife said:

    Ohh quite a challenging one off the start! I do have a IMP system working on some of my test servers. I will fiddle with it and get back you :)

    Hint: Use LuaSql otherwise you won't be able to set them on account database :)

     

     


  12. You really need to learn a lil bit of Lua.

     

    				local rate = math.random(1,200)
    				if rate >= Con(DEFER) then
    					local statetime = sklv/4
    					local statelv = sklv
    					AddState ( ATKER , DEFER , STATE_XY , statelv , statetime ) 
    				end

    that means that every time the skill is called inside CA, it will set a random number between 1 and 200, and if that number is greater than the amount of Constitution of the defer (it means, the one who will receive the stun) then stun.

    For example I attack you with a conch ray, the system sets the random number of 15 wich is lower than your Constitution, then no stun is applied.

     

    If you're asking a random time for the stun you can just do something like:

     

    local statetime = math.random(1,4) -- which means that it will randomnly stun for 1 till 4 seconds.


  13. Inside GetExp_PKM function (exp_and_level.lua) you could add somewhere:

    	local atk_fame = GetChaAttr(atk, ATTR_FAME)
    	local dead_id = GetChaID(dead)
    	local rep_by_mob{}
    	rep_by_mob[103]= 1000;
    	if mob[dead_id] ~= nil then
    		atk_fame = atk_fame + rep_by_mob[dead_id]
    		SetCharaAttr(atk_fame, atk, ATTR_FAME) 
    	end

    in that example the mob id 103 will give the killer 1000 rep.

    if you want to add more mobs with their specific ammount of reputation you can just add more

        rep_by_mob[103]= 1000;

    where 103 is the character id and 1000 is the reputation.

     

    I hope it's clear.

    • Like 3

  14. 1) Bienvenido!

    2) No postees mucho en español porque la mayoria hablan ingles o ruso

    3) Fijate donde posteas, no es necesario postear 2 veces lo mismo, y esto no es Ni una Guia, ni un Server File (secciones en las que hiciste el post), lo correcto seria que postees en Questions & Answers.

    4) Navega en la seccion Guides (Guias) y vas a encontrar muchas guias por donde empezar.

    5) Antes de hacer cualquier pregunta, te recomiendo que uses el boton Search, ya que es probable que tu duda ya se haya resuelto en otro post.

    6) Consejo personal: no copies y pegues, busca entender que es lo que haces cuando haces un script, o lo que sea. Y familiarizate lo mas que puedas con el ingles.

     

    Aqui te paso una especie de indice de guias para principiantes.

     

    • Haha 1
×
×
  • Create New...