• 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!

Scripter Zbizu / Free scripting service

Status
Not open for further replies.

zbizu

Legendary OT User
Joined
Nov 22, 2010
Messages
3,323
Solutions
26
Reaction score
2,690
Location
Poland
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.
 
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
 
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
 
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.
 
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:
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?
 
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:
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
 
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:
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
 
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.
 
already done by another user, see #3503
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
 
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?
 
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.
 
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:
Status
Not open for further replies.
Back
Top