BestGames

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

SEMPRE À ATIVA!


2 participantes

    [Talkaction] Premium Points In Game

    Baiakzik
    Baiakzik
    Cordenador
    Cordenador


    Mensagens : 83
    ZXG Coins : 6216
    Data de inscrição : 23/03/2012
    Idade : 22
    Localização : Rio De Janeiro

    [Talkaction] Premium Points In Game  Empty [Talkaction] Premium Points In Game

    Mensagem por Baiakzik Qua Mar 28, 2012 10:41 am

    Fala galerinha do Zonaxgames vim aqui postar um sistema de Premium Points inGame, que eu
    achei muito útil, pois eu estava tendo sérios problemas com o Shop
    System do Modern AAC, ai vai os sistemas.


    antes de tudo execute esse comando em seu banco de dados.

    ALTER TABLE `accounts` ADD `premium_points` INT NOT NULL DEFAULT 0;

    #Sistemas

    vá em data/libs e crie um novo arquivo com o nome 048-ppoints.lua

    function getAccountPoints(cid)
    local res = db.getResult('select `premium_points` from accounts where name = ''..getPlayerAccount(cid)..''')
    if(res:getID() == -1) then
    return false
    end
    local ret = res:getDataInt("premium_points")
    res:free()
    return tonumber(ret)
    end

    function doAccountAddPoints(cid, count)
    return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) + count .."' WHERE `name` ='"..getPlayerAccount(cid).."'")
    end

    function doAccountRemovePoints(cid, count)
    return db.executeQuery("UPDATE `accounts` SET `premium_points` = '".. getAccountPoints(cid) - count .."' WHERE `name` ='"..getPlayerAccount(cid).."'")
    end


    vá em data/talkactions/talkactions.xml e adicione as seguintes tags.







    vá em data/talkactions/scripts e crie um novo arquivo com o seguinte nome AddPoints.lua

    function onSay(cid, words, param, channel)
    local split = param:explode(",")
    local name, count = split[1], tonumber(split[2])
    pid = getPlayerByNameWildcard(name)
    if (not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " is not currently online.")
    return TRUE
    end
    if not(split[2]) then
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The commands requires 2 parameters: character name, amount")
    end
    if not(count) then
    print(count)
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Numeric parameter required.")
    end
    doAccountAddPoints(cid, count)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. count .. " premium points were added to " .. getCreatureName(pid) .. "'s Account.")
    return true
    end


    vá em data/talkactions/script e crie um arquivo com o seguinte nome GetPoints.lua

    function onSay(cid, words, param, channel)
    local pid = 0
    if(param == '') then
    pid = getCreatureTarget(cid)
    if(pid == 0) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.")
    return TRUE
    end
    else
    pid = getPlayerByNameWildcard(param)
    end
    if (not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " is not currently online.")
    return TRUE
    end
    if isPlayer(pid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. getCreatureName(pid) .. "'s Account has " .. getAccountPoints(cid) .. " premium points.")
    return TRUE
    end
    return TRUE
    end


    vá em data/talkactions/script e crie um arquivo com o seguinte nome RemovePoints.lua

    function onSay(cid, words, param, channel)
    local split = param:explode(",")
    local name, count = split[1], tonumber(split[2])
    local points = getAccountPoints(cid)
    pid = getPlayerByNameWildcard(name)
    if (not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. param .. " is not currently online.")
    return TRUE
    end
    if not(split[2]) then
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The commands requires 2 parameters: character name, amount")
    end
    if not(count) then
    print(count)
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Numeric parameter required.")
    end
    if (points <= 0) then
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. getCreatureName(pid) .. "'s Account has 0 premium points.")
    end
    doAccountRemovePoints(cid, count)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "" .. count .. " premium points were deleted from " .. getCreatureName(pid) .. "'s Account.")
    return true
    end


    vá em data/creaturescripts/scripts e crie um novo arquivo com o nome SelfGetPoints.lua

    function onLogin(cid)
    if isPlayer(cid) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your Account has " .. getAccountPoints(cid) .. " premium points.")
    end
    return TRUE
    end


    declare ele no creaturescripts.xml



    #Scripts

    aqui está um exemplo de talkaction para mudar o sexo do personagem usando o sistema de points.

    local config = {
    costPremiumDays = 2
    }

    function onSay(cid, words, param, channel)
    if(getPlayerSex(cid) >= 2) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You cannot change your gender.")
    return
    end

    if(getAccountPoints(cid) < config.costPremiumDays) then
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sorry, not enough Premium Points - changing gender costs " .. config.costPremiumDays .. " Premium Points.")
    doSendMagicEffect(getThingPosition(cid), CONST_ME_POFF)
    return
    end

    if(getAccountPoints(cid) >= config.costPremiumDays) then
    doRemovePoints(cid, -config.costPremiumDays)
    end

    local c = {
    {3, 1, false, 6, 1},
    {3, 2, false, 6, 2},
    {6, 1, false, 3, 1},
    {6, 2, false, 3, 2}
    }
    for i = 1, #c do
    if canPlayerWearOutfitId(cid, c[i][1], c[i][2]) then
    doPlayerRemoveOutfitId(cid, c[i][1], c[i][2])
    c[i][3] = true
    end
    end

    doPlayerSetSex(cid, getPlayerSex(cid) == PLAYERSEX_FEMALE and PLAYERSEX_MALE or PLAYERSEX_FEMALE)
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have changed your gender and lost " .. config.costPremiumDays .. " days of premium time.")
    doSendMagicEffect(getThingPosition(cid), CONST_ME_MAGIC_RED)

    for i = 1, #c do
    if c[i][3] == true then
    doPlayerAddOutfitId(cid, c[i][4], c[i][5])
    end
    end

    return true
    end

    Aqui está um npc ( aconselho usar ele para vender seus itens vips )

    local keywordHandler = KeywordHandler:new()
    local npcHandler = NpcHandler:new(keywordHandler)
    NpcSystem.parseParameters(npcHandler)
    local talkState = {}

    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

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

    local bootsid = 1455
    local bootscost = 15

    local ringid = 2145
    local ringcost = 5

    local bladeid = 12610
    local bladecost = 20


    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

    if(msgcontains(msg, 'vip boots') or msgcontains(msg, 'boots')) then
    selfSay('Do you want to buy Vip Boots fo '.. bootscost ..' premium points?', cid)
    talkState[talkUser] = 1
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
    if(getAccountPoints(cid) >= bootscost) then
    if(doAccountRemovePoints(cid, bootscost) == TRUE) then
    doPlayerAddItem(cid, bootsid)
    selfSay('Here you are.', cid)
    else
    selfSay('Sorry, you don't have enough gold.', cid)
    end
    else
    selfSay('Sorry, you don't have the item.', cid)
    end
    talkState[talkUser] = 0
    elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
    talkState[talkUser] = 0
    selfSay('Ok then.', cid)

    elseif(msgcontains(msg, 'blade of corruption') or msgcontains(msg, 'blade')) then
    selfSay('Do you want to buy blade of corruption for '.. bladecost ..' premium points?', cid)
    talkState[talkUser] = 2
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
    if(getAccountPoints(cid) >= bladecost) then
    if(doAccountRemovePoints(cid, bladecost) == TRUE) then
    doPlayerAddItem(cid, bladeid)
    selfSay('Here you are.', cid)
    else
    selfSay('Sorry, you don't have enough points!.', cid)
    end
    end
    talkState[talkUser] = 0
    elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
    talkState[talkUser] = 0
    selfSay('Ok then.', cid)

    elseif(msgcontains(msg, 'expring') or msgcontains(msg, 'ring')) then
    selfSay('Do you want to buy exp ring for '.. ringcost ..' premium points?', cid)
    talkState[talkUser] = 2
    elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
    if(getAccountPoints(cid) >= ringcost) then
    if(doAccountRemovePoints(cid, ringcost) == TRUE) then
    doPlayerAddItem(cid, ringid)
    selfSay('Here you are.', cid)
    else
    selfSay('Sorry, you don't have enough gold.', cid)
    end
    end
    talkState[talkUser] = 0
    elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
    talkState[talkUser] = 0
    selfSay('Ok then.', cid)
    end

    return true
    end

    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())

    npc.xml







    hello





    farewell





    é só isso!

    créditos:
    LucasOlzon
    Beeki
    guga
    guga
    Estagiarios
    Estagiarios


    Mensagens : 33
    ZXG Coins : 4471
    Data de inscrição : 17/03/2012
    Idade : 27
    Localização : Americana-sp

    [Talkaction] Premium Points In Game  Empty Re: [Talkaction] Premium Points In Game

    Mensagem por guga Qua Mar 28, 2012 5:35 pm

    Muito Esplicado Obrigado

    By:Guuh'Ziikah

      Data/hora atual: Ter maio 07, 2024 3:49 pm