• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Super promotion tfs 1.0 (10.31)

zxzxzx

New Member
Joined
Mar 12, 2011
Messages
334
Reaction score
3
hello I need Super Promotion (orshaball brain) script for new tfs 1.0 all old scripts not working or I do something wrong...


This is my vocations.xml


<?xml version="1.0" encoding="UTF-8"?>
<vocations>
<vocation id="0" clientid="0" name="None" description="none" gaincap="10" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="1" manamultiplier="4.0" attackspeed="800" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="0">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="1" clientid="3" name="Sorcerer" description="a sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="5" gainmanaticks="3" gainmanaamount="5" manamultiplier="1.1" attackspeed="800" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="1">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="2" clientid="4" name="Druid" description="a druid" gaincap="10" gainhp="5" gainmana="30" gainhpticks="6" gainhpamount="5" gainmanaticks="3" gainmanaamount="5" manamultiplier="1.1" attackspeed="800" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="2">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="1.8"/>
<skill id="2" multiplier="1.8"/>
<skill id="3" multiplier="1.8"/>
<skill id="4" multiplier="1.8"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="3" clientid="2" name="Paladin" description="a paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="4" gainhpamount="5" gainmanaticks="4" gainmanaamount="5" manamultiplier="1.4" attackspeed="800" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="3">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.2"/>
<skill id="1" multiplier="1.2"/>
<skill id="2" multiplier="1.2"/>
<skill id="3" multiplier="1.2"/>
<skill id="4" multiplier="1.1"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="4" clientid="1" name="Knight" description="a knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="3" gainhpamount="5" gainmanaticks="6" gainmanaamount="5" manamultiplier="3.0" attackspeed="800" basespeed="220" soulmax="100" gainsoulticks="120" fromvoc="4">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.4"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="5" clientid="3" name="Master Sorcerer" description="a master sorcerer" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="10" gainmanaticks="2" gainmanaamount="10" manamultiplier="1.1" attackspeed="800" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="1">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="2.0"/>
<skill id="2" multiplier="2.0"/>
<skill id="3" multiplier="2.0"/>
<skill id="4" multiplier="2.0"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="6" clientid="4" name="Elder Druid" description="an elder druid" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="10" gainmanaticks="2" gainmanaamount="10" manamultiplier="1.1" attackspeed="800" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="2">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.5"/>
<skill id="1" multiplier="1.8"/>
<skill id="2" multiplier="1.8"/>
<skill id="3" multiplier="1.8"/>
<skill id="4" multiplier="1.8"/>
<skill id="5" multiplier="1.5"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="7" clientid="2" name="Royal Paladin" description="a royal paladin" gaincap="20" gainhp="10" gainmana="15" gainhpticks="3" gainhpamount="10" gainmanaticks="3" gainmanaamount="10" manamultiplier="1.4" attackspeed="800" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="3">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.2"/>
<skill id="1" multiplier="1.2"/>
<skill id="2" multiplier="1.2"/>
<skill id="3" multiplier="1.2"/>
<skill id="4" multiplier="1.1"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="8" clientid="1" name="Elite Knight" description="an elite knight" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="10" gainmanaticks="4" gainmanaamount="10" manamultiplier="3.0" attackspeed="500" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="8">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.4"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="9" clientid="1" name="Super Sorcerer" description="an Super Druid" gaincap="10" gainhp="8" gainmana="33" gainhpticks="1" gainhpamount="1" gainmanaticks="1" gainmanaamount="1" manamultiplier="1.1" attackspeed="500" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="5">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.4"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="10" clientid="1" name="Super Druid" description="an Super Druid" gaincap="10" gainhp="8" gainmana="33" gainhpticks="1" gainhpamount="1" gainmanaticks="1" gainmanaamount="1" manamultiplier="1.1" attackspeed="500" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="6">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.4"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="11" clientid="1" name="Super Paladin" description="an Super Paladin" gaincap="2-" gainhp="13" gainmana="18" gainhpticks="1" gainhpamount="1" gainmanaticks="1" gainmanaamount="1" manamultiplier="1.4" attackspeed="500" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="7">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.4"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
<vocation id="12" clientid="1" name="Super Knight" description="an Super Knight" gaincap="25" gainhp="18" gainmana="8" gainhpticks="1" gainhpamount="1" gainmanaticks="1" gainmanaamount="1" manamultiplier="3.0" attackspeed="500" basespeed="220" soulmax="200" gainsoulticks="15" fromvoc="8">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0"/>
<skill id="0" multiplier="1.1"/>
<skill id="1" multiplier="1.1"/>
<skill id="2" multiplier="1.1"/>
<skill id="3" multiplier="1.1"/>
<skill id="4" multiplier="1.4"/>
<skill id="5" multiplier="1.1"/>
<skill id="6" multiplier="1.1"/>
</vocation>
</vocations>




This is my best super promotion script whose I use on old tfs 0.36,0.4...


function onUse(cid, item, fromPosition, itemEx, toPosition)
local a = doPlayerSetPromotionLevel(cid,2)
if a == 0 then
doPlayerSendCancel(cid, 'You need to be promoted in order to use this item.')
elseif a == 2 then
doPlayerSendCancel(cid, 'Your\'re already promoted!')
else
doPlayerSetPromotionLevel(cid, 3)
doCreatureSay(cid, 'You are now ' .. getVocationInfo(getPlayerVocation(cid)).description .. '!', TALKTYPE_ORANGE_1)
doRemoveItem(item.uid)
end
return true
end


HELP :< rep+!
 
sorry cornex but i dont see something like "fuction use' in this list 1.0 :-s I dont know how to start the convert?

(function on use) - this is same for 0.36,0.4 and 1.0? (I bad scripter :-s...)
 
Still not working,..

What I do bad? edited script i change doPlayerSetPromotionLevel to doPlayerSetVocation???... (Im not scripter I dont undertand how to edit it :< please can you edit it for me?)

function onUse(cid, item, fromPosition, itemEx, toPosition)
local a = doPlayerSetVocation(cid, vocation)(cid,2)
if a == 0 then
doPlayerSendCancel(cid, 'You need to be promoted in order to use this item.')
elseif a == 2 then
doPlayerSendCancel(cid, 'Your\'re already promoted!')
else
doPlayerSetVocation(cid, vocation)(cid, 3)
doCreatureSay(cid, 'You are now ' .. getVocationInfo(getPlayerVocation(cid)).description .. '!', TALKTYPE_ORANGE_1)
doRemoveItem(item.uid)
end
return true
end


andypsylon - I dont have modules.lua only modules.lua for npcs :<
 
Try:
Code:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local a = getPromotedVocation(cid,2)
if a == 0 then
doPlayerSendCancel(cid, 'You need to be promoted in order to use this item.')
elseif a == 2 then
doPlayerSendCancel(cid, 'Your\'re already promoted!')
else
getPromotedVocation(cid, 3)
doCreatureSay(cid, 'You are now ' .. getVocationInfo(getPlayerVocation(cid)).description .. '!', TALKTYPE_ORANGE_1)
doRemoveItem(item.uid)
end
return true
end
 
tfs uses at the moment only 1 level promo. Stores it in the storageNr '30018', value '1'
You'd have to rearrange it a little, because it is now so that if a player loses a pacc is also storage value '0'.
you can find it in luascript.cpp, '// player:setVocation(vocation)', in game.cpp and vocation.cpp
 
Ok I find in luascript.ccp this lines

// player:setVocation(vocation)
Vocation* vocation = getUserdata<Vocation>(L, 2);
if (!vocation) {
pushBoolean(L, false);
return 1;
}

Player* player = getUserdata<Player>(L, 1);
if (player) {
player->setVocation(vocation->getId());

uint32_t promotedVocation = g_vocations.getPromotedVocation(player->getVocationId());
if (promotedVocation == 0 && player->getVocationId() != promotedVocation) {
player->addStorageValue(STORAGEVALUE_PROMOTION, 0);
}

pushBoolean(L, true);
} else {
pushNil(L);
}
return 1;
}




In game.cpp I find this

if (player->isPremium()) {
int32_t value;
player->getStorageValue(STORAGEVALUE_PROMOTION, value);

if (player->isPromoted() && value != 1) {
player->addStorageValue(STORAGEVALUE_PROMOTION, 1);
} else if (!player->isPromoted() && value == 1) {
player->setVocation(g_vocations.getPromotedVocation(player->getVocationId()));
}
} else if (player->isPromoted()) {
player->setVocation(player->vocation->getFromVocation());
}


And in vocation.cpp i find only this?

Vocation* Vocations::getVocation(uint16_t id)
{
auto it = vocationsMap.find(id);
if (it == vocationsMap.end()) {
std::cout << "[Warning - Vocations::getVocation] Vocation " << id << " not found." << std::endl;
return nullptr;
}
return &it->second;
}

int32_t Vocations::getVocationId(const std::string& name) const
{
for (const auto& it : vocationsMap) {
if (strcasecmp(it.second.name.c_str(), name.c_str()) == 0) {
return it.first;
}
}
return -1;
}

uint16_t Vocations::getPromotedVocation(uint16_t vocationId) const
{
for (const auto& it : vocationsMap) {
if (it.second.fromVocation == vocationId && it.first != vocationId) {
return it.first;
}
}
return 0;
}


tell me what I have to change??? :< here is much the same words I can not fathom??? :S
 
Can you tell me precisely where I
deselect these 0? :(

there are many many words like 0,1,vocation,player,set etc :(
 
Last edited by a moderator:
Back
Top