• logo_cipsoft
    Nowe serwery zostały otwarte 19 Lut 2025:
    Noctalia (Open PvP) Ignitera (Open PvP) us_logo Xybra (Open PvP)

!rs - Czyszczenie frag?w na 0.3.5pl1

Status
Zamknięty.

Glothriel

Active User
Dołączył
Wrzesień 13, 2009
Posty
87
Liczba reakcji
9
Witam wszystkich forumowicz?w.
Jako, ?e nie mog?em znale?? takiego skryptu dzia?aj?cego na mojej wersji TFS'a - wklejam go tutaj. Skrypt czy?ci postaci wypowiadaj?cej wszystkie fragi, usuwa RS'a i odejmuje 20 punkt?w z sms shopa. Dzia?a niezawodnie na tej wersji silnika, w przeciwie?stwie do niekt?rych innych skrypt?w. Nie pisa?em go sam, jest to sklejka kilku prac oparta w g??wnej mierze na skrypcie u?ytkownika "nsanee" z otland.net, jednak testuj?c i doklejaj?c r?zne formu?ki uda?o mi si? doprowadzi? go do u?ytku.
Wklejamy w /data/talkactions/talkactions/xml w rubryczne "Players":
Kod:
<talkaction words="!rs" script="removeskull.lua"/>
a nast?pnie w /data/talkactions/scripts/ tworzymy plik removeskull.lua i umieszczamy w nim kod:


Kod:
-- Ile premium punktow kosztowac bedzie sci?gniecie RSa
local COST = 20
-- "yes" lub "no" // czy ma usuwac rowniez fragi
local remove_frags = "yes"
-- efekt // liste efekektow mozna znalezc w /lib/constant.lua
local effect = CONST_ME_WATERSPLASH
function onSay(cid, words, param, channel)

    if getCreatureSkullType(cid) == SKULL_RED then
        local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
        local points = query:getDataInt("premium_points")
        if points >= COST then
            local update = db.executeQuery("UPDATE `accounts` SET `premium_points`= "..(points - COST).." WHERE `id`= " .. getPlayerAccountId(cid) .. "; ")
            if (update == true) then 
                db.executeQuery("UPDATE `killers` SET `unjustified` = 0 WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = " .. getPlayerGUID(cid) .. ")")
                doPlayerSetSkullEnd(cid, 0, SKULL_RED)            
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Your red skull has been taken off!\nRemaining premium points: " .. (points - COST)) 
                doCreatureSetSkullType(cid, SKULL_NONE)
                doPlayerSetRedSkullTicks(cid, 0)
                if (remove_frags == "yes") then
                    doPlayerSetRedSkullTicks(cid, 0)
                    doCreatureSetSkullType(cid, SKULL_NONE)
                end
                doSendMagicEffect(getPlayerPosition(cid), effect)
            else
                doPlayerSendCancel(cid, "Database error")
            end
            
        else
            doPlayerSendCancel(cid, "You need " ..COST.. " premium points to remove red skull") 
        end
    else
        doPlayerSendCancel(cid, "You do not have red skull")
    end
    
    query:free()
    return TRUE
    
end

Mam nadziej?, ?e komu? si? to przyda ;]

 
Odp: !rs - Czyszczenie frag?w na 0.3.5pl1

o co ci chodzilo z tymi premium pkt? ;d
 
Odp: !rs - Czyszczenie frag?w na 0.3.5pl1

Dzia?a to tak: ludzie id? na openk?, kupuj? sobie wcze?niej punkty premium, powiedzmy, ?e 20. I je?eli wbij? RS'a, a bitwa nadal trwa to zwykle nie ma czasu na to, ?eby wchodzi? na stronk? i kupowa? sobie zdj?cie frag?w. Do tego w?a?nie s?u?y ten skrypt, go?? wpisuje sobie !rs i wszystkie fragi mu znikaj?, razem z 20 punktami z SMS shopa ;]
 
Odp: !rs - Czyszczenie frag?w na 0.3.5pl1

Pomys?owe i praktyczne. Zwykle nie oceniam skrypt?w, ale ten przypad? mi do gustu. Chodzi bez zarzut?w. Pytanie tylko, czy b?dzie to wsp??pracowa?o z ka?dym accmakerem?
Zarobi?e? reputa ; )
 
Odp: !rs - Czyszczenie frag?w na 0.3.5pl1

Kowolu, Kombinowa?em z baz? danych, bo bez tamtych dw?ch linijek po relogu redskull zn?w sie pojawia?, mimo, ?e by?o 0 frag?w.
 
Status
Zamknięty.
Do góry