Scripter Zbizu / Free scripting service

zbizu

Legendary OT User
Joined
Nov 22, 2010
Messages
3,187
Solutions
25
Reaction score
2,360
Location
Poland
GitHub
Zbizu
Hi everyone!

About me​

from: Poland
spoken languages: Polish (native), English (advanced), other (translator only)
known for: Lua scripts, RME extensions (now outdated), Lua map generator and Mystera datapack
working with various datapacks since 2006 (with breaks), in otland since 2010
examples of my work: link1, link2, link3
contact: this thread or private message

For the anniversary of my 3000th post I prepared a small scripting service.

Service details​

  • you request a script (conversions to a different server version, fixes or updates are also allowed in requests)
  • I choose 5 requests to fulfill (9 if there will be lots of requests, less if the thread won't be getting any attention at all)
  • only one request per user will be chosen
  • This is not a competition. I just choose whatever I find interesting.
  • you don't pay anything for the scripts, but the catch is that the scripts will be public once completed
  • requests for otclient modules or servers with entirely different gameplay (anime ots/transform mechanic, using pokemon to fight, etc) will be ignored
  • requests have to be posted here, details can be discussed on discord
  • no warranty for the scripts delivery or their flawless performance
  • supported server versions: 0.3.7, 0.4, 1.2+, official br/es engines based on either (if you provide the repo link)
  • supported client versions: 8.6, 10.98 (full testing), other (compability only - your script will be tested in 1.3/10.98 or 0.4/8.6)

Time to deliver the scripts: unknown (depends on their complexity and my spare time)
Thread closes whenever I decide.
 

Levi999x

AoT
Joined
Dec 14, 2017
Messages
1,980
Solutions
43
Reaction score
1,236
Location
Germany
Type: event
Version: 1.3
Client: 10.98

Explain of the event

Players hp will be set during the event to 100
You are not allowed to join with items to the event to avoid stuff like healing or mw use
You will lose 5 hp every 3 sec
You should not be able to attack or healing
The only way to heal urself are health potions which will be spawned randomly on the event place
The potion should heal only 5 HP and it should spawn only 10X every 5sec
Only 20 players are allowed to join the event

When your hp is 0 you will be kicked out of the event
The last one who has been teleported to the temple is the winner and will receive a item as reward


You should be able to bring up the event with a command like "!startEvent" and a global time which open the event automatical
Its a simple event which evolera.se had befor and it was cool :D would love to see that again
 

Dip Set

Veteran OT User
Joined
Dec 27, 2007
Messages
348
Solutions
2
Reaction score
263
Type: event
Version: 1.3
Client: 10.98

Explain of the event

Players hp will be set during the event to 100
You are not allowed to join with items to the event to avoid stuff like healing or mw use
You will lose 5 hp every 3 sec
You should not be able to attack or healing
The only way to heal urself are health potions which will be spawned randomly on the event place
The potion should heal only 5 HP and it should spawn only 10X every 5sec
Only 20 players are allowed to join the event

When your hp is 0 you will be kicked out of the event
The last one who has been teleported to the temple is the winner and will receive a item as reward


You should be able to bring up the event with a command like "!startEvent" and a global time which open the event automatical
Its a simple event which evolera.se had befor and it was cool :D would love to see that again
Sounds like a lot of fun! Love the concept that differs from the typical generic "massive team battle".
Post automatically merged:

Would be better if you offered codes for newest (1.x) tfs only. We need reasons for people to move onto new engine.
+1
 

adric21

Well-Known Member
Joined
Apr 26, 2016
Messages
254
Solutions
1
Reaction score
60
New Request + TFS 1.4

Type: On kill
Version: TFS 1.4 8.6

When a player kills 1000 monsters, no matter if they are rats or demons in general, the system generates an Elite monster. And after 1500 monsters killed a monster called a titan.
 

Codinablack

Dreamer
Content Editor
Joined
Dec 26, 2013
Messages
1,504
Solutions
10
Reaction score
690
New Request + TFS 1.4

Type: On kill
Version: TFS 1.4 8.6

When a player kills 1000 monsters, no matter if they are rats or demons in general, the system generates an Elite monster. And after 1500 monsters killed a monster called a titan.
This could be easily exploited this way, as a player could go mass rat killing, and then before they reach the 1000, go to say an orshabaal , to earn an elite orshabaal , ect, ect, ect
 
Last edited:

Levi999x

AoT
Joined
Dec 14, 2017
Messages
1,980
Solutions
43
Reaction score
1,236
Location
Germany
New Request + TFS 1.4

Type: On kill
Version: TFS 1.4 8.6

When a player kills 1000 monsters, no matter if they are rats or demons in general, the system generates an Elite monster. And after 1500 monsters killed a monster called a titan.

Elite monster as example like Elite Rat?
 

peteralto

Member
Joined
Nov 1, 2020
Messages
58
Solutions
1
Reaction score
8
Type: GlobalEvent
Version: TFS 1.3
Client: 8.6

Request: I would like to update this code 0.X to make it work on tfs 1.3, if possible on Revscript. (Just the server protection part)

Summary: If an X number of online players have latency greater than X the server would activate a protection so that if they die they don't lose level and skills. This latency would be checked over an interval of X seconds.
 
Last edited:

Sarah Wesker

ค∂vαηcε รүηтαx ❤
Support Team
Joined
Mar 16, 2017
Messages
1,103
Solutions
113
Reaction score
1,238
Location
London
GitHub
MillhioreBT
Twitch
millhiore_bt
Type: Revscript
Version: TFS 1.3
Client: 10.98

Request: Small meteor shower system, these meteorites do considerable damage if it falls on a player but it will never kill him, the meteorites can be mined and this disappears giving you some minerals when you manage to break it with the beak, Other meteorites cannot fall on top of others meteorites, and it depends on the number of people online will fall more or less, in the configuration it should be possible to define the area of the rain and the time and the number of meteorites in relation to the number of players online
 

liqeen

Member
Joined
Nov 26, 2014
Messages
139
Solutions
1
Reaction score
21
Location
Poland
TFS 1.3 Client 10.98
An arena that always spawns with 3 monsters on basic, each monster kill spawns another one instantly and 10% stronger than the previous one. Player get rewards based on how many "enchanted" monsters he killed. However, the player has limited time in the arena which is 3 minutes on base and each monster kill gives one minute more.
 
Last edited:

Bentleyed

New Member
Joined
Jul 22, 2021
Messages
3
Reaction score
0

Shrek03

Member
Joined
May 15, 2021
Messages
5
Reaction score
5
New Request + TFS 1.4

Type: On kill
Version: TFS 1.4 8.6

When a player kills 1000 monsters, no matter if they are rats or demons in general, the system generates an Elite monster. And after 1500 monsters killed a monster called a titan.
Its a Great Idea but only By Bosses
 
OP
OP
zbizu

zbizu

Legendary OT User
Joined
Nov 22, 2010
Messages
3,187
Solutions
25
Reaction score
2,360
Location
Poland
GitHub
Zbizu
Lots of interesting requestes I must say. Going to start from ping detection as this is something I haven't tried yet. Will involve source edit.
 
OP
OP
zbizu

zbizu

Legendary OT User
Joined
Nov 22, 2010
Messages
3,187
Solutions
25
Reaction score
2,360
Location
Poland
GitHub
Zbizu
OP
OP
zbizu

zbizu

Legendary OT User
Joined
Nov 22, 2010
Messages
3,187
Solutions
25
Reaction score
2,360
Location
Poland
GitHub
Zbizu
I think u assumed its about crash but click the link its about area spell effects and dmg in wrong position after moving before spell casts inside addevent
what if you call setArea and dmg right before casting from (inside the function called by addEvent)? or create new combat there?
 

Nekiro

Legendary OT User
TFS Developer
Joined
Sep 7, 2015
Messages
2,621
Solutions
125
Reaction score
1,996
I think u assumed its about crash but click the link its about area spell effects and dmg in wrong position after moving before spell casts inside addevent
This is not a bug though. The code is wrongly written. Combat wont automatically update its position if you move, they are casted on the position they were initially initialized (variant is the cause). You have to pass variant with your current position as following: Variant(creature:getPosition()). Then combat will follow your character.
 
OP
OP
zbizu

zbizu

Legendary OT User
Joined
Nov 22, 2010
Messages
3,187
Solutions
25
Reaction score
2,360
Location
Poland
GitHub
Zbizu
This is not a bug though. The code is wrongly written. Combat wont automatically update its position if you move, they are casted on the position they were initially initialized (variant is the cause). You have to pass variant with your current position as following: Variant(creature:getPosition()). Then combat will follow your character.
Nah, it's engine bug. Freshly generated variant just makes it ignore cast direction.

2 attempts were made:
Code:
    local p = creature:getPosition()
    combat2:execute(creature, {type = 2, pos = {x = p.x, y = p.y, z = p.z, stackpos = p.stackpos}})

and

Code:
    local p = creature:getPosition()
    combat2:execute(creature, Variant(creature, p))
Post automatically merged:

Ok. Now I see why the support for legacy combat functions wasn't dropped yet.

Here's an example of working spell(revscriptsys mod):

Code:
local area1 = {
    {0, 1, 0},
    {0, 1, 0},
    {0, 3, 0}
}

local area2 = {
    {1, 1, 1},
    {1, 1, 1},
    {1, 1, 1},
    {0, 0, 0},
    {0, 0, 0},
    {0, 2, 0}
}

local area2_full = createCombatArea(area2)

function onGetFormulaValues(player, level, ninjutsu)
    local min = (level / 5) + (ninjutsu * 1.6) + 9
    local max = (level / 5) + (ninjutsu * 3.2) + 19
    return -min, -max
end

local combat = Combat()
combat:setParameter(COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat:setArea(createCombatArea(area1))
combat:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
    
local spell = Spell(SPELL_INSTANT)
spell:name("jutsu my ass")
spell:words("jutsu my ass")
spell:id(220)
spell:level(20)
spell:magicLevel(5)
spell:needDirection(true)
spell:isAggressive(true)
spell:vocation("sorcerer;true", "master sorcerer")

local function castSpell(creatureId)
    local player = Player(creatureId)
    if not player then
        return
    end
    
    local level = player:getLevel()
    local ninjutsu = player:getMagicLevel()
    local min = (level / 5) + (ninjutsu * 1.6) + 9
    local max = (level / 5) + (ninjutsu * 3.2) + 19
    

    local pos = player:getPosition()
    pos:getNextPosition(player:getDirection())

    doAreaCombatHealth(creatureId, COMBAT_FIREDAMAGE, pos, area2_full, min, max, CONST_ME_MORTAREA)
end

function spell.onCastSpell(creature, variant)
    combat:execute(creature, variant)
    addEvent(castSpell, 100, creature:getId())
    return true
end

spell:register()

@poe6man3

if anyone needs more examples of target/area combat with delays, see here (scroll to pastebin link):
 
Last edited:
Top