DP script

Indította Redbull, 2013 március 04, 11:33:49 DÉLUTÁN

Előző téma - Következő téma

Redbull

Üdv mindenkinek!

Segítségetekre lenne szükségem!
Hogyan tudnám megoldani scriptel hogy adatbázisba ahova rögzíti donation pontot azt egy npc-vel le olvassa írja hogy pontosan mennyi van, illetve át tudná váltani egy tokenre.

Ezt úgy gondolom 2 menü  volna.
Az első menü pontban tudná leolvasni pontosan mennyi DP-ja van
A második menü pontban meg át tudná váltani DP->Token-re (Pl 1DP->1token) Token mint BOJ-ra gondoltam
Előre is köszönöm válaszotok.

Redbull

Amit írtam hozzá szólást vegyük a script 2. részének

Első része ami már kész 4 menü van token váltósba Token->lvl Token->gold stb lényegtelen
Most már kibővítettem első hozzászólásom 2. menü pontjával viszont azt hogy tudnám megadni hogy az adott player tudja csak név alapján használni és le olvasni?


2. Tábla úgy néz ki 1. field username 2. kredit (DP)

IrOn

Username táblában account vagy karakter neve van?

Redbull

#3
Account név, tehát accounton belül amik vannak karakterek bármelyikével van benn le tudja olvasni és felhasználni  pontokat.

IrOn

táblát írd át melyik táblában van, a táblát pedig auth adatbázisba rakd
(másik: username-be nem account nevet kell írnod hanem id-jét.)
class npc_asd : public CreatureScript
{
public:
    npc_asd() : CreatureScript("npc_asd") { }

    bool OnGossipSelect(Player *pPlayer, Creature *pCreature, uint32 sender, uint32 action )
    {
        if(!pPlayer || !pCreature || !action)
            return false;

        Field *fields;
        uint32 ID;
        QueryResult result;

        switch(action)
        {
case GOSSIP_ACTION_INFO_DEF+1:
result = AuthDatabase.PQuery("SELECT `kredit` FROM `tábla` WHERE `username` = '%u' LIMIT 1", pPlayer->GetSession()->GetAccountId());
if (result)
                {
                    fields = result->Fetch();
                    uint32 dp = fields[0].GetUInt32();
                    pCreature->MonsterWhisper("Jelenleg %u dp-d van!", dp, pPlayer->GetGUID());
                }
                else
                    pCreature->MonsterWhisper("Nincs dp-d!", pPlayer->GetGUID());

                pPlayer->CLOSE_GOSSIP_MENU();
                break;
        }

        return true;
    }

    bool OnGossipHello(Player *pPlayer, Creature *pCreature)
    {
        pPlayer->ADD_GOSSIP_ITEM(0, "Mennyi a pontom?", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
        pPlayer->SEND_GOSSIP_MENU(1, pCreature->GetGUID());
        return true;
    }

};

void AddSC_npc_asd()
{
    new npc_asd();
}

Redbull

#5
Meg szerkesztettem de hibás, simán is fordítottam úgy se jó :(
Különbözik valószínűleg a verzió

http://pastebin.com/rYhXUs3M Ez a sima működő változat amit még nem szerkesztettem meg.
Azért írtam logon-ra az adatbázist mert itt nem auth van (2.4.3oregon)
Ez a script volna az alany amibe bele kellene építeni, valószínűleg az lehet a probléma
És akkor úgy fogom megoldani hogy account táblába beszúrok kredit mezőt akkor nem kell + tábla

IrOn

mi a hiba? mire dob hibát?

EroniX

Idézetet írta: Redbull Dátum 2013 március 06, 04:32:15 DÉLUTÁN
És akkor úgy fogom megoldani hogy account táblába beszúrok kredit mezőt akkor nem kell + tábla
Nem javallott táblát módosítani. Szerintem az eredeti elképzelés tökéletes kérdés, hogy milyen hibát dob rá...
Azuregos Delta Force

Redbull

src\scripts\Custom\npc_asd.cpp(2): error C2504: 'CreatureScript' : base class undefined
src\scripts\Custom\npc_asd.cpp(4): error C2614: 'npc_asd' : illegal member initialization: 'CreatureScript' is not a base or member
src\scripts\Custom\npc_asd.cpp(18): error C2065: 'LogonDatabase' : undeclared identifier
src\scripts\Custom\npc_asd.cpp(18): error C2228: left of '.PQuery' must have class/struct/union
3>          type is ''unknown-type''
src\scripts\Custom\npc_asd.cpp(19): error C2451: conditional expression of type 'QueryResult' is illegal
3>          No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
src\scripts\Custom\npc_asd.cpp(21): error C2819: type 'QueryResult' does not have an overloaded member 'operator ->'
src/shared/Database\QueryResult.h(35) : see declaration of 'QueryResult'
3>          did you intend to use '.' instead?
src\scripts\Custom\npc_asd.cpp(21): error C2232: '->QueryResult::Fetch' : left operand has 'class' type, use '.'
4>  ScriptLoader.cpp
4>  game.vcxproj -> C:\Build\src\game\Release\game.lib
5>------ Build started: Project: oregon-core, Configuration: Release Win32 ------
5>     Creating library C:/Build/src/oregoncore/Release/oregon-core.lib and object C:/Build/src/oregoncore/Release/oregon-core.exp
5>game.lib(ScriptLoader.obj) : error LNK2019: unresolved external symbol "void __cdecl AddSC_npc_asd(void)" (?AddSC_npc_asd@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ)

IrOn

és külön raktad be a kettőt? ha nem megy este fele egybeírom

Redbull

Igen
Azt nagyon meg köszönném! :)

EroniX

#11
Ezt próbáld meg:
http://pastebin.com/yKLrqbAC

Valszeg a QueryResult osztállyal még gondban lesz de ez már az általad használt emu scriptrendszerére van írva.
Azuregos Delta Force

Redbull

3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(12): error C2065: 'action' : undeclared identifier
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(17): error C2512: 'QueryResult' : no appropriate default constructor available
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(19): error C2065: 'action' : undeclared identifier
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(19): error C2050: switch expression not integral
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(22): error C2065: 'LogonDatabase' : undeclared identifier
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(22): error C2228: left of '.PQuery' must have class/struct/union
3>          type is ''unknown-type''
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(23): error C2451: conditional expression of type 'QueryResult' is illegal
3>          No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(25): error C2819: type 'QueryResult' does not have an overloaded member 'operator ->'
3>          C:/joemu/src/shared/Database\QueryResult.h(35) : see declaration of 'QueryResult'
3>          did you intend to use '.' instead?
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(25): error C2232: '->QueryResult::Fetch' : left operand has 'class' type, use '.'
4>------ Build started: Project: oregon-core, Configuration: Release Win32 ------
4>     Creating library C:/Build/src/oregoncore/Release/oregon-core.lib and object C:/Build/src/oregoncore/Release/oregon-core.exp
4>game.lib(ScriptLoader.obj) : error LNK2019: unresolved external symbol "void __cdecl AddSC_npc_dp(void)" (?AddSC_npc_dp@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ)
4>C:\Build\bin\Release\oregon-core.exe : fatal error LNK1120: 1 unresolved externals

EroniX

Azuregos Delta Force

Redbull

3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(15): error C2065: 'action' : undeclared identifier
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(22): error C2065: 'action' : undeclared identifier
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(22): error C2050: switch expression not integral
3>..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(50): fatal error C1075: end of file found before the left brace '{' at '..\..\..\joemu\src\scripts\Custom\npc_dp.cpp(43)' was matched
4>game.lib(ScriptLoader.obj) : error LNK2019: unresolved external symbol "void __cdecl AddSC_npc_dp(void)" (?AddSC_npc_dp@@YAXXZ) referenced in function "void __cdecl AddScripts(void)" (?AddScripts@@YAXXZ)


Powered by EzPortal