Sé adás mindenkinek, szint limit (K)

Indította pappferenc1, 2013-08-03, 23:39:37

2013-08-03, 23:39:37 Utolsó szerkesztés: 2013-08-17, 12:52:11 Szerző: [MOD]Aegist
Sziasztok!
Valaki adna egy olyan queryt ami csak azoknak ad sét akiknek az accán vagy egy 10+-os karakter?
Töröljétek a felhasználómat! Köszönöm!

Figyelj,van egy CTRL+C és CTRL+V és szemed,azoknak kinézed a Account ID-jét,és azoknak adsz

2013-08-04, 00:00:22 #2 Utolsó szerkesztés: 2013-08-04, 00:03:39 Szerző: pappferenc1
4.5k Játékos elég sok nem?

Kicsit sok idő lenne:S
Töröljétek a felhasználómat! Köszönöm!

2013-08-04, 00:12:38 #3 Utolsó szerkesztés: 2013-08-04, 00:32:57 Szerző: 5310pati
hát ezt talán 1 questel lehetne megoldani (szerintem)

Üzenet összefésülés: 2013-08-04, 00:32:57

írtam 1 questet (nem biztos h működik, nem próbáltam ki)
annyi, hogy a karid neve helyére írd be a GM karaktered (pl. [SA]Player), hogy csak te tudjál adni SÉ, más GM ne
quest seadas begin
state start begin
when login with pc.get_name() == "karid neve" begin
send_letter("SÉ adás")
end
when button or info begin
local accid = "SELECT account_id FROM player WHERE level >= 10"
say("Mennyi SÉ-t szeretnél adni nekik?")
local se = tonumber(input())
mysql_query("UPDATE account.account SET coins = coins+"..se.." WHERE id = accid;")
end
end
end

Ezt írja ki:

mt-197-70# cd /usr/home/game/quest
mt-197-70# ./qc seadas.quest
QUEST : seadas
STATE : start
WHEN  : login
        with pc . get_name ( ) == "Karinevem"
WHEN  : button or
WHEN  : info
Calls undeclared function! :
mysql_query
Abort (core dumped)


Amúgy nagyon rendes tőled :)
Töröljétek a felhasználómat! Köszönöm!

Nyisd meg a quest_functions fájlt, és írd ezt bele: mysql_query
Mentsd el, és utána futtasd le a questet újra.

Most működik de mégse.
Nem adja meg a sét
Töröljétek a felhasználómat! Köszönöm!

Nézd meg a questlibben, hogy benne van-e a mysql_query funkciója. Anélkül nem fogja végrehajtani.

Bele írtam de nem adja meg
Questlibbe nincs benne szerintem

Adsz hozzá kódot?
Töröljétek a felhasználómat! Köszönöm!


function split(str, delim, maxNb)
    if str == nil then return str end
    if string.find(str, delim) == nil then return { str } end
    if maxNb == nil or maxNb < 1 then maxNb = 0 end
    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local nb = 0
    local lastPos
    for part, pos in string.gfind(str, pat) do
        nb = nb + 1
        result[nb] = part
        lastPos = pos
        if nb == maxNb then break end
    end
    if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
    return result
end



mysql_query = function(query)
    if not pre then
        local rt = io.open('CONFIG','r'):read('*all')
        pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
    end
    math.randomseed(os.time())
    local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
    os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) -- für MySQL51
    -- os.execute('mysql '..pre..' -e='..string.format('%q',query)..' > '..fi) -- für MySQL55
    for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
    for i = 2, table.getn(t) do table.foreach(t[i],function(a,b)
        out[i-1]               = out[i-1] or {}
        out[i-1][a]            = tonumber(b) or b or 'NULL'
        out[t[1][a]]           = out[t[1][a]] or {}
        out[t[1][a]][i-1]      = tonumber(b) or b or 'NULL'
    end) end
    return out
end 

2013-08-04, 02:08:20 #10 Utolsó szerkesztés: 2013-08-04, 02:13:40 Szerző: pappferenc1
Nem adja hozzá:S
Rebootot is csináltam de úgy se.

Üzenet összefésülés: 2013-08-04, 02:13:40

Putty ezt írta ki:

mt-197-70# ERROR 1054 (42S22) at line 1: Unknown column 'accid' in 'where clause'
Töröljétek a felhasználómat! Köszönöm!

<?php
$sqlCmd 
"SELECT player.account_id, player.name, player.playtime, account.login
FROM account.account
LEFT JOIN player.player ON player.account_id = account.id
WHERE player.level > 10 AND player.playtime > 60 AND DATE_SUB(NOW(), INTERVAL 7 DAY) < player.last_play
GROUP BY player.account_id"
;
$sqlQry mysql_query($sqlCmd,$sqlServ);
echo 
$sqlCmd."<br><br>";
while(
$getPlayers mysql_fetch_object($sqlQry)) {
$accid=$getPlayers->account_id;
$login=$getPlayers->login;
$name=$getPlayers->name;
$playtime=$getPlayers->playtime;
 $sqlCmd2 "UPDATE account.account SET coins=coins+4000 WHERE id='".$accid."' LIMIT 1";
 mysql_query($sqlCmd2,$sqlServ) or die(mysql_error());
echo "AccID: ".$accid." -> login: ".$login." -> name: ".$name." -> Playtime: ".$playtime."<br>";
}
?>


"Az a baj a világgal, hogy a hülyék  mindenben holtbiztosak, az okosak meg tele vannak kételyekkel."
              Bertrand Russel


Köszi!
Mindenkinek ment a +
Töröljétek a felhasználómat! Köszönöm!