SQL quest

Indította Deadly2000, 2019-01-29, 18:10:56

Sziasztok , lenne egy olyan gondom, hogy nem adja hozzá sehogy sem a pontot az adatbázishoz.

quest pontok begin
state start begin
when kill begin
if pc.get_level() +10 <= npc.get_level() and pc.get_level() -10 >= npc.get_level() then
pc.getqf("megolt",pc.getqf("megolt") +1)
if pc.getqf("megolt") > 20 then
local DB_FH = "mt2"
local DB_JS = "mt2!@#"
local DB_MG = 1
local ID = pc.get_account_id()
local QUERY = "UPDATE player.player SET megolt = megolt + "..DB_MG.." WHERE id = "..ID..";"
os.execute("mysql --host=xx --user="..DB_FH.." --password="..DB_JS.." --execute='"..QUERY.."'")
end
end
end
end
end


Esetleg lenne olyan parancs még ami ellenőrzi ,hogy fogott -e halat avagy leütött egy kősziklát ( minning )

2019-01-29, 21:40:43 #1 Utolsó szerkesztés: 2019-01-30, 17:42:27 Szerző: Deangerious
Szerk.: Van a mysql táblában " megolt " sor?

Ir vmit a db syserr?

Szia ! ha jól értem akkor a player megolt táblában kellene hozzáadnia egy pontot sikeres halászatnál és bányászásnál ?  Szerintem ezt c++-ban sokkal egyszerűbb lenne.

pl:
char.cpp
keres
DWORD CHARACTER::GetNextExp() const
ez felé
DWORD CHARACTER::Get_megolt()
{
std::auto_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("SELECT megolt FROM player.player WHERE id = %u", GetPlayerID()));
if (pMsg->Get()->uiNumRows == 0)
return 0;

MYSQL_ROW row = mysql_fetch_row(pMsg->Get()->pSQLResult);
DWORD megolt2 = 0;
str_to_number(megolt2, row[0]);
return megolt2;
}

void CHARACTER::Set_megolt(DWORD megolt)
{
DBManager::instance().Query("UPDATE player.player SET megolt = %d WHERE id = %u", megolt, GetPlayerID());
}


char.h
keres
DWORD GetAID() const;
alá
DWORD Get_megolt();
void Set_megolt(DWORD megolt);


fishing.cpp
keres
void FishingSuccess(LPCHARACTER ch)
{
TPacketGCFishing p;
p.header = HEADER_GC_FISHING;
p.subheader = FISHING_SUBHEADER_GC_SUCCESS;
p.info = ch->GetVID();
ch->PacketAround(&p, sizeof(p));
}


kiegészíted
void FishingSuccess(LPCHARACTER ch)
{
TPacketGCFishing p;
p.header = HEADER_GC_FISHING;
p.subheader = FISHING_SUBHEADER_GC_SUCCESS;
p.info = ch->GetVID();
ch->PacketAround(&p, sizeof(p));
ch->Set_megolt(ch->Get_megolt() + 1);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Valami."));
}


mining.cpp
keres
if (number(1, 100) <= iPct)
{
OreDrop(ch, load->GetRaceNum());
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("䱤¿¡ ¼º°øÇÏ¿´½À´Ï´Ù."));


alá
ch->Set_megolt(ch->Get_megolt() + 1);
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Valami."));


2019-01-30, 19:56:00 #3 Utolsó szerkesztés: 2019-01-30, 20:05:58 Szerző: Deadly2000
Nagy ász vagy

Üzenet összefésülés: 2019-01-30, 20:05:58