• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Free Scripting. TFS [1.2]

Status
Not open for further replies.

Mkalo

ボーカロイド
Senator
Joined
Jun 1, 2011
Messages
1,118
Solutions
55
Reaction score
946
Location
Japan
Rules:
  1. ONLY TFS 1.2 ONLY TFS 1.2 ONLY TFS 1.2
  2. Don't ask for fix/convert/copy a script.
  3. Provide enough information about your request (you may provide a video as long its made by you). I may not answer you if you don't.
  4. Ask only for advanced and complex scripts/systems. You may ask for simple stuff but the chances of me being interested to do it is low.
  5. If your request require heavy source modification I won't do it.
  6. Anyone can do the requests if you feel like doing it.
  7. Be nice.

I don't have much time to do lots of scripts, so I'll make this work by placing the requests in a list and I'll do them in order of request. I'll try to do 1~3/week.
If I like your post it means I'm going to do it and it will be added to the list. If I don't like or I don't put it in the list, don't ask again because I'm not doing it.
Most likely I will post the requests in a different thread and link the thread here.

I will also stream while doing all requests, so if you feel like "learning"(watching) the process you can check it at http://www.twitch.tv/mkalo

Cya.
 
Last edited:
Town guard NPC like WoW. You can talk to him and get directions to each place. Will give a map marker. Also, if you pay the guard he will take you there (teleport you there)
really ? his npc is just a boat npc with a script to set the marks in your map D:
 
really ? his npc is just a boat npc with a script to set the marks in your map D:

The idea is to get a layout of the way he makes the NPC. That way I can use it for future reference. There is a big difference between make a script and correctly making a script. I want to see how he optimizes it.
 
However to make it more interesting, guard could walk you there. And you had to follow them. :)
this idea the npc will walk to there is interesting. the idea that @Itutorial say is just teleport you, not walk to the place
and @Itutorial I'm understanding your request, is a good idea see how optimize something is a complement to your mind, your knowledge
 
Advanced Collision System:

- Projectiles can be intercepted by each other (spells like exori vis etc)
- AOE spells can be merged into a more powerful impact
- Throwable weapons can be collided and canceled or reflected to other direction
- Spells, projectiles and weapons can collide into structures or blockable path's like tree, stones, monster and players

Ex video:
 
Advanced Collision System:

- Projectiles can be intercepted by each other (spells like exori vis etc)
- AOE spells can be merged into a more powerful impact
- Throwable weapons can be collided and canceled or reflected to other direction
- Spells, projectiles and weapons can collide into structures or blockable path's like tree and stones

Ex video:
This video is either fake or its not using cipsofts client or it has some dll inject.
1.After a distance effect is sent to the client its not possible to remove it from the screen, so you can't do things like effect collision.
2.No idea what you mean by aoe spells can be merged.
3.Again, same reason as 1.
4.This is possible.
 
This video is either fake or its not using cipsofts client or it has some dll inject.
1.After a distance effect is sent to the client its not possible to remove it from the screen, so you can't do things like effect collision.
2.No idea what you mean by aoe spells can be merged.
3.Again, same reason as 1.
4.This is possible.
1. You can if you do it before sending
2. Ex if i use exevo gran mas flam and someone was used exevo gran mas tera too, it will create a bonus effect like burning fields (because the earth was burned by the fire)
3. Maybe it's possible in the same way as 1 idk
 
1. You can if you do it before sending
2. Ex if i use exevo gran mas flam and someone was used exevo gran mas tera too, it will create a bonus effect like burning fields (because the earth was burned by the fire)
3. Maybe it's possible in the same way as 1 idk
Ofc if the server sent every effect at the same time and waited for them all to disappear to send the next ones then yes it would be possible.

But this is not how it works.
Example:
Player A uses SD, then after all the combat checking it will send the effect packet to all clients that can see it, then player B uses SD after he used it, before it arrived at him, you CANNOT remove the previous effect from the screen.

You could store all effects sent and make them do no damage if other effect is sent in the same path with some calculation but you cannot remove it from the screen as shown in the video.
 
Ofc if the server sent every effect at the same time and waited for them all to disappear to send the next ones then yes it would be possible.

But this is not how it works.
Example:
Player A uses SD, then after all the combat checking it will send the effect packet to all clients that can see it, then player B uses SD after he used it, before it arrived at him, you CANNOT remove the previous effect from the screen.

You could store all effects sent and make them do no damage if other effect is sent in the same path with some calculation but you cannot remove it from the screen as shown in the video.
But you can cancel the previous one (before executing it) and execute a new path (that will collide in each other) i think that is the way which was done in the video
ex Player A cast a exori vis spell and Player B cast a exori vis spell, if the two path (attacking each other) will happen then before executing the normal one only execute the new one, something like that
 
But you can cancel the previous one (before executing it) and execute a new path (that will collide in each other) i think that is the way which was done in the video
And how will you know that another effect will be sent after this? Is there a function to read the future? :\

As I said, effects are not sent at the same time. You cannot calculate something if you don't know if its going to happen or not.
 
And how will you know that another effect will be sent after this? Is there a function to read the future? :\

As I said, effects are not sent at the same time. You cannot calculate something if you don't know if its going to happen or not.
You can set that in a global table linked to player id, if each other will happen to collide (0.1~0.3ms is good enough) just execute the collision function instead the normal one
 
totolol, It don't work like you understand at all!

And actually time to respond/send is not second ( like you see ) it's milliseconds. So it will be very rare that 2 players send same packet at same millisecond.

This client is actually injected to collect information, this system is not very manage-able from forgottenserver, it's from client itself!
 
totolol, It don't work like you understand at all!

And actually time to respond/send is not second ( like you see ) it's milliseconds. So it will be very rare that 2 players send same packet at same millisecond.

This client is actually injected to collect information, this system is not very manage-able from forgottenserver, it's from client itself!
No. The video creator was said that is cip client (without modifications) and him was done it with storage value to know if the two players will cast a spell in each other
 
You can set that in a global table linked to player id, if each other will happen to collide (0.1~0.3ms is good enough) just execute the collision function instead the normal one
Ofcourse as I said if you are going to execute all distance effect behaviours at the same time you can calculate them all, the problem is the max distance a player can cast an effect in his screen is ~ 8.6023252670426 (euclidean distance between the player and one of the corners) and yes effects use euclidean distance the avg an effect travels is 32sqm/s (I've made this calculations in the past its not always exactly this but its a good avg however you can do it by yourself recording distance effects and just divide distance/time and you will get a similar result) so every distance effect would need to be executed each 0.26882266459508125 seconds ~(268ms) not 0.3ms as you said.
 
Feel like streaming so I guess I will do some shit. Guess I will start with Itutorial's travel npc.
 
Feel like streaming so I guess I will do some shit. Guess I will start with Itutorial's travel npc.
waiting for you babe
7T3vHQ0.jpg
 
The idea is to get a layout of the way he makes the NPC. That way I can use it for future reference. There is a big difference between make a script and correctly making a script. I want to see how he optimizes it.
Code:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)


function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end

local function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then
        return false
    end

      local player = Player(cid)
    return true
end

local function greetCallback(cid)
    return true
end

local function onAddFocus(cid)
    npcHandler.topic[cid] = 0
end

npcHandler:setCallback(CALLBACK_ONADDFOCUS, onAddFocus)

npcHandler:setMessage(MESSAGE_FAREWELL, "Good bye |PLAYERNAME|!")
npcHandler:setMessage(MESSAGE_WALKAWAY, "How rude!")
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:setCallback(CALLBACK_GREET, greetCallback)
npcHandler:addModule(FocusModule:new())

Usually I start with this.
 
Status
Not open for further replies.
Back
Top