MTASA TÜRK
Türkiye'nin En Güncel MTA Platformu


[YARDIM] Görevde EXP Verme

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Speaw

  • Yeni Üye
  • *
    • İleti: 69
: 06 Haziran 2017, 15:05:14
Görevde parayı veriyor xp de vermesini istiyorum nasıl yapabilirim?

Kod: lua
function clientPickupHit(thePlayer, matchingDimension)
if thePlayer == localPlayer and getElementData ( source, "bus_pickup" ) and not getElementData ( source, "taken" ) then
setElementData ( source, "taken", true )
outputChatBox ( "Tebrikler Görevi Bitirdin Ve ₺20000 Aldın ", 255, 100, 100, true )
triggerServerEvent ( "giveMoneyFromClient_voditel", localPlayer, 20000 ) -- 50 награда
local hitted = getElementData ( localPlayer, "trash_working_hit" ) or 0
hitted = hitted+1
local pick2 = getElementData ( source, "pick2" )
if isElement ( pick2 ) then
destroyElement ( pick2 )
end
local icon = getElementData ( source, "icon" )
if isElement ( icon ) then
destroyElement ( icon )
end
« Son Düzenleme: 06 Haziran 2017, 19:16:40 Gönderen: Narkoz »
 


MTASA TÜRK

[YARDIM] Görevde EXP Verme
« : 06 Haziran 2017, 15:05:14 »

Çevrimdışı MarkeloF

  • Süper Moderatör
  • *
    • İleti: 805
  • Just do it.
Yanıtla #1 : 06 Haziran 2017, 16:01:34
Level scriptinin server dosyasını da atmalısın.
                                                 
 


Çevrimdışı Speaw

  • Yeni Üye
  • *
    • İleti: 69
Yanıtla #2 : 06 Haziran 2017, 16:09:41
Kod: lua
local ExpRewardForKill = {1, 8} 



local levels = {}

addEventHandler ( "onResourceStart", resourceRoot,
function ( )
connection = dbConnect( "sqlite", "levels.db" )
exports["scoreboard"]:scoreboardAddColumn ( "level", root, 50, "Level")
exports["scoreboard"]:scoreboardAddColumn ( "experience", root, 50, "Exp")
exports["scoreboard"]:scoreboardAddColumn ( "experience_n", root, 90, "Gereken Exp")
if ( connection )then
dbExec ( connection, "CREATE TABLE IF NOT EXISTS levels (levelID INTEGER PRIMARY KEY NOT NULL, accountName TEXT, level INT, experience INT)" )
outputDebugString ( "Successfully connected to levels.db" )
else
outputDebugString ( "Failed to connect to levels.db", 3 )
end

local LivelsFile = xmlLoadFile ( "levels.xml" )
if ( LivelsFile ) then
outputDebugString ( "levels.xml successfully open")
for index, levelData in ipairs ( xmlNodeGetChildren ( LivelsFile ) ) do
local levelAttributes = xmlNodeGetAttributes ( levelData )
table.insert(levels, { ["levelName"] = levelAttributes.levelName, ["experienceRequired"] = tonumber(levelAttributes.experienceRequired), ["moneyReward"] = tonumber(levelAttributes.moneyReward)})
end
else
outputDebugString ( "Failed to open to levels.xml", 1 )
end


end
)


addCommandHandler ( "levelsil",
function ( thePlayer )
outputChatBox ( "#FF0000 Leveliniz başarıyla sıfırlandı.", getRootElement(), 255, 255, 255, true )
removeElementData(thePlayer,"experience")
removeElementData(thePlayer,"level")
end
)


addEventHandler("onResourceStop",resourceRoot,
function ( )
if isElement ( connection ) then
setTimer(destroyElement, 1000, 1, connection )
end
end
)

addEventHandler("onResourceStop",resourceRoot,
function ()
for index, player in ipairs(getElementsByType("player")) do
local experience = tonumber(getElementData(player,"experience")) or 0
setPlayerExperience(player, experience)
local PlayerLevel = tonumber(getElementData(player,"level")) or 1
setPlayerLevel(player, PlayerLevel)
end
end)

function saveExpOnQuitOrLogout(account)
local experience = tonumber(getElementData(source,"experience")) or 0
local PlayerLevel = tonumber(getElementData(source,"level")) or 1
if (experience) then
if (account and account == "userdata") then
setPlayerExperience(account, experience)
setPlayerLevel(account, PlayerLevel)
else
setPlayerExperience(source, experience)
setPlayerLevel(source, PlayerLevel)
end
end
setElementData(source,"experience",0)
end
addEventHandler("onPlayerLogout",root,saveExpOnQuitOrLogout)
addEventHandler("onPlayerQuit",root,saveExpOnQuitOrLogout)


function CheckLevelFromExp(dataName)
if (source and getElementType(source) == "player" and dataName == "experience") then
local SourceLevel = tonumber( getElementData(source,"level") )
local SourceExp = tonumber( getElementData(source,"experience") )
local NewLvl = SourceLevel+1
if ( levels[SourceLevel] ) then
if ( levels[NewLvl]) then
local RequiredExp = tonumber( levels[SourceLevel]["experienceRequired"] )
if ( SourceExp >= RequiredExp ) then
setElementData(source,"experience_n", tonumber(levels[NewLvl]["experienceRequired"]))
setElementData(source,"level",NewLvl)
setTimer(setElementData, 50, 1, source,"experience",0)
givePlayerMoney(source,tonumber(levels[NewLvl].moneyReward))
triggerClientEvent ( source, "LevelUpEffect", source )
outputChatBox("*LEVEL UP* You're now level ".. tostring(NewLvl) .."! Congratulations.",source,0,255,0)
end
end
end
end
end
addEventHandler("onElementDataChange",root,CheckLevelFromExp)

function OnZombieKill (killer)
if (killer and killer ~= source) then
if getPlayerAccount(killer) then
local experience = tonumber(getElementData(killer,"experience"))
local SourceLevel = getElementData(killer,"level")
if ( not SourceLevel ) then
SourceLevel = 1
setElementData(killer,"level",1)
end
if ( levels[SourceLevel+1] ) then
local randomExperience = math.random(unpack(ExpRewardForKill))
if (experience) then
setElementData(killer,"experience",experience+tonumber(randomExperience))
else
setElementData(killer,"experience",randomExperience)
end
else
setElementData(killer,"experience",tonumber(levels[SourceLevel]["experienceRequired"]))
end
end
end
end
addEvent("onZombieWasted",true)
addEventHandler ("onZombieWasted", root, OnZombieKill)


addEventHandler("onPlayerLogin",root,
function (_,account)
local accountName = getAccountName(account)
local handler = connection
local query = dbQuery( handler, "SELECT accountName FROM levels WHERE accountName=?", tostring(accountName) )
local result, numrows, errmsg = dbPoll ( query, -1 )
if ( type( result ) == "table" and #result == 0 or not result ) then
if dbExec( handler, "INSERT INTO `levels` (`levelID`, `accountName`, `level`, `experience`) VALUES (NULL, '".. accountName .."', '1', '0');") then
setElementData(source, "experience", 0)
setElementData(source, "experience_n", tonumber(levels[1].experienceRequired))
setElementData(source, "level", 1)
end
else
local level = getPlayerLevel(source)
setElementData(source, "experience", getPlayerExperience(source))
if (levels[level]) then
setElementData(source, "experience_n", tonumber(levels[level].experienceRequired))
else
setElementData(source, "experience_n", tonumber(levels[level -1].experienceRequired))
end
setElementData(source, "level", level)
end
end)



function getPlayerLevel(thePlayer)
local handler = connection
if (isElement(thePlayer) and getElementType(thePlayer) == "player") then
account = getPlayerAccount(thePlayer)
else
account = thePlayer
end
if (not account or isGuestAccount(account)) then return false end
local accountName = getAccountName(account)
local query = dbQuery( handler, "SELECT level FROM `levels` WHERE accountName='".. tostring(accountName) .."'")
local result, numrows, errmsg = dbPoll( query, -1 )
if (result) then
return tonumber(result[1]["level"])
end
end

function setPlayerLevel(thePlayer, theLevel)
local handler = connection
if (isElement(thePlayer) and getElementType(thePlayer) == "player") then
account = getPlayerAccount(thePlayer)
else
account = thePlayer
end
if (not account or isGuestAccount(account)) then return false end
local accountName = getAccountName(account)
if dbExec( handler, "UPDATE `levels` SET `level` = '" .. tonumber(theLevel) .. "' WHERE `accountName` = '" .. tostring(accountName) .."'" ) then
return true
else
return false
end
end

function getPlayerExperience(thePlayer)
local handler = connection
if (isElement(thePlayer) and getElementType(thePlayer) == "player") then
account = getPlayerAccount(thePlayer)
else
account = thePlayer
end
if (not account or isGuestAccount(account)) then return false end
local accountName = getAccountName(account)
local query = dbQuery( handler, "SELECT experience FROM `levels` WHERE accountName='".. tostring(accountName) .."'")
local result, numrows, errmsg = dbPoll( query, -1 )
if (result) then
return tonumber(result[1]["experience"])
end
end

function setPlayerExperience(thePlayer, theExperience)
local handler = connection
if (isElement(thePlayer) and getElementType(thePlayer) == "player") then
account = getPlayerAccount(thePlayer)
else
account = thePlayer
end
if (not account or isGuestAccount(account)) then return false end
local accountName = getAccountName(account)
if dbExec( handler, "UPDATE `levels` SET `experience` = '" .. tonumber(theExperience) .. "' WHERE `accountName` = '" .. tostring(accountName) .."'" ) then
return true
else
return false
end
end
 


Çevrimdışı MarkeloF

  • Süper Moderatör
  • *
    • İleti: 805
  • Just do it.
Yanıtla #3 : 06 Haziran 2017, 16:13:13
Kod: lua
function clientPickupHit(thePlayer, matchingDimension)
        if thePlayer == localPlayer and getElementData ( source, "bus_pickup" ) and not getElementData ( source, "taken" ) then
                setElementData ( source, "taken", true )
                outputChatBox ( "Tebrikler Görevi Bitirdin Ve ₺20000 Aldın ", 255, 100, 100, true )
                triggerServerEvent ( "giveMoneyFromClient_voditel", localPlayer, 20000 )
                local hitted = getElementData ( localPlayer, "trash_working_hit" ) or 0
                hitted = hitted+1
                triggerServerEvent ( "experience", localPlayer, 20 )
                local pick2 = getElementData ( source, "pick2" )
                if isElement ( pick2 ) then
                        destroyElement ( pick2 )
                end
                local icon = getElementData ( source, "icon" )
                if isElement ( icon ) then
                        destroyElement ( icon )
                end
Emin değilim yine de bir dene.
                                                 
 


Çevrimdışı Speaw

  • Yeni Üye
  • *
    • İleti: 69
Yanıtla #4 : 06 Haziran 2017, 16:21:01
Linki görebilmek için Kayıt olun yada Giriş yapın.
Kod: lua
function clientPickupHit(thePlayer, matchingDimension)
        if thePlayer == localPlayer and getElementData ( source, "bus_pickup" ) and not getElementData ( source, "taken" ) then
                setElementData ( source, "taken", true )
                outputChatBox ( "Tebrikler Görevi Bitirdin Ve ₺20000 Aldın ", 255, 100, 100, true )
                triggerServerEvent ( "giveMoneyFromClient_voditel", localPlayer, 20000 )
                local hitted = getElementData ( localPlayer, "trash_working_hit" ) or 0
                hitted = hitted+1
                triggerServerEvent ( "experience", localPlayer, 20 )
                local pick2 = getElementData ( source, "pick2" )
                if isElement ( pick2 ) then
                        destroyElement ( pick2 )
                end
                local icon = getElementData ( source, "icon" )
                if isElement ( icon ) then
                        destroyElement ( icon )
                end
Emin değilim yine de bir dene.
Olmadı
 


Çevrimdışı Mahlukat

  • Scripter
  • *
    • İleti: 649
Yanıtla #5 : 06 Haziran 2017, 16:42:53
Kod: lua
function clientPickupHit(thePlayer, matchingDimension)
        if thePlayer == localPlayer and getElementData ( source, "bus_pickup" ) and not getElementData ( source, "taken" ) then
                setElementData ( source, "taken", true )
                outputChatBox ( "Tebrikler Görevi Bitirdin Ve ?20000 Aldın ", 255, 100, 100, true )
                triggerServerEvent ( "giveMoneyFromClient_voditel", localPlayer, 20000 ) -- 50 ???????
setElementData(localPlayer,"experience",50)
                local hitted = getElementData ( localPlayer, "trash_working_hit" ) or 0
                hitted = hitted+1
                local pick2 = getElementData ( source, "pick2" )
                if isElement ( pick2 ) then
                        destroyElement ( pick2 )
                end
                local icon = getElementData ( source, "icon" )
                if isElement ( icon ) then
                        destroyElement ( icon )
                end
end
end

Denermisin bi acaba?
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


MTASA TÜRK

Ynt: [Yardım] level
« Yanıtla #5 : 06 Haziran 2017, 16:42:53 »

Çevrimdışı Speaw

  • Yeni Üye
  • *
    • İleti: 69
Yanıtla #6 : 06 Haziran 2017, 21:29:15
Linki görebilmek için Kayıt olun yada Giriş yapın.
Kod: lua
function clientPickupHit(thePlayer, matchingDimension)
        if thePlayer == localPlayer and getElementData ( source, "bus_pickup" ) and not getElementData ( source, "taken" ) then
                setElementData ( source, "taken", true )
                outputChatBox ( "Tebrikler Görevi Bitirdin Ve ?20000 Aldın ", 255, 100, 100, true )
                triggerServerEvent ( "giveMoneyFromClient_voditel", localPlayer, 20000 ) -- 50 ???????
setElementData(localPlayer,"experience",50)
                local hitted = getElementData ( localPlayer, "trash_working_hit" ) or 0
                hitted = hitted+1
                local pick2 = getElementData ( source, "pick2" )
                if isElement ( pick2 ) then
                        destroyElement ( pick2 )
                end
                local icon = getElementData ( source, "icon" )
                if isElement ( icon ) then
                        destroyElement ( icon )
                end
end
end

Denermisin bi acaba?
Buda olmadı ya :(
 


Çevrimdışı Paradox

  • Kurucu
  • *
    • İleti: 702
  • SH Gaming
Yanıtla #7 : 06 Haziran 2017, 21:48:05
Kod: lua
function clientPickupHit(thePlayer, matchingDimension)
        if thePlayer == localPlayer and getElementData ( source, "bus_pickup" ) and not getElementData ( source, "taken" ) then
                setElementData ( source, "taken", true )
                outputChatBox ( "Tebrikler Görevi Bitirdin Ve ?20000 Aldın ", 255, 100, 100, true )
                triggerServerEvent ( "giveMoneyFromClient_voditel", localPlayer, 20000 ) -- 50 ???????
                                setElementData(localPlayer,"experience",getElementData(localPlayer,"experience")+10)
                local hitted = getElementData ( localPlayer, "trash_working_hit" ) or 0
                hitted = hitted+1
                local pick2 = getElementData ( source, "pick2" )
                if isElement ( pick2 ) then
                        destroyElement ( pick2 )
                end
                local icon = getElementData ( source, "icon" )
                if isElement ( icon ) then
                        destroyElement ( icon )
                end
end
end
 


Çevrimdışı Speaw

  • Yeni Üye
  • *
    • İleti: 69
Yanıtla #8 : 06 Haziran 2017, 21:51:32
Linki görebilmek için Kayıt olun yada Giriş yapın.
Kod: lua
function clientPickupHit(thePlayer, matchingDimension)
        if thePlayer == localPlayer and getElementData ( source, "bus_pickup" ) and not getElementData ( source, "taken" ) then
                setElementData ( source, "taken", true )
                outputChatBox ( "Tebrikler Görevi Bitirdin Ve ?20000 Aldın ", 255, 100, 100, true )
                triggerServerEvent ( "giveMoneyFromClient_voditel", localPlayer, 20000 ) -- 50 ???????
                                setElementData(localPlayer,"experience",getElementData(localPlayer,"experience")+10)
                local hitted = getElementData ( localPlayer, "trash_working_hit" ) or 0
                hitted = hitted+1
                local pick2 = getElementData ( source, "pick2" )
                if isElement ( pick2 ) then
                        destroyElement ( pick2 )
                end
                local icon = getElementData ( source, "icon" )
                if isElement ( icon ) then
                        destroyElement ( icon )
                end
end
end
Çalışmadı 2 tane end vardı onlar olunca görev alma gelmiyordu ikisini silince görev aldım ama xp vermedi
 


Çevrimdışı Paradox

  • Kurucu
  • *
    • İleti: 702
  • SH Gaming
Yanıtla #9 : 06 Haziran 2017, 21:58:11
Linki görebilmek için Kayıt olun yada Giriş yapın.
Çalışmadı 2 tane end vardı onlar olunca görev alma gelmiyordu ikisini silince görev aldım ama xp vermedi

Bir sıkıntı görmüyorum ben eğer vermiyorsa level sisteminizle ilgili bir sorun vardır.
 


Çevrimdışı Speaw

  • Yeni Üye
  • *
    • İleti: 69
Yanıtla #10 : 06 Haziran 2017, 21:58:49
Linki görebilmek için Kayıt olun yada Giriş yapın.
Bir sıkıntı görmüyorum ben eğer vermiyorsa level sisteminizle ilgili bir sorun vardır.
peki önerdiginiz bir level sistemi varmı bunda çalışır dediginiz onu deneyim hemen
 


Çevrimdışı Paradox

  • Kurucu
  • *
    • İleti: 702
  • SH Gaming
Yanıtla #11 : 06 Haziran 2017, 22:00:03
Linki görebilmek için Kayıt olun yada Giriş yapın.
peki önerdiginiz bir level sistemi varmı bunda çalışır dediginiz onu deneyim hemen

Malesef, diğer arkadaşların önerisi varsa size yazarlar.