Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4014 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

(redaguota)

Sveiki, dirbu su gamemode, dariau kurią čia savaitę top 10 sistemą viskas sklandžiai tik kaip padaryti kad atnaujintų mysql duomenis automatiškai kai žaidėjas turi daugiau pinigų nes visus duomenis saugo mysql duomenų bazėje tai jeigu pvž žaidėjas gauna 100 € vistiek rodo tiek pinigų kiek žaidėjas turi mysql duomenų bazėje, kaip padaryti kad automatiškai atnaujintų žaidėjo duomenis netik kai jis atsijungia.. Neapsimoka daryti OnPlayerUpdate tai gal yra kitoks būdas ant mysql žalias aš.. (Primaliau primaliau čia kažkaip gal nesuprasit tai kas nesupras sakykit pasakysiu išnaujo ) 

Redaguota , nario Karolis.ExE
(redaguota)
OnPlayerUpdate(playerid){
   for(new i = 0; i < 10; i++){
      if(topData[i][pinigai] < playerData[playerid][pinigaitotal]){
      pats pasidaryk kaip reikia.
      }
   }
}

:DD dar ypač kai šitas vyrelis non threaded užklausas naudoja, tai išvis smagu bus.

 

arba perspėji žaidėjus kad atsinaujina informacija atsijungus žaidėjams, arba įrašinėji vis informaciją į masyvus. daugiau dėmesio vertų pasirinkimų nematau.

 

ARBA atnaujink informaciją atsidarius topus, bet atsiras blogas žaidėjas, paspamins su binderiu ir smagumėlis bus.

Redaguota , nario b3nz

tumblr_npgtem62qP1twpmjxo1_540.gif

(redaguota)

:DD dar ypač kai šitas vyrelis non threaded užklausas naudoja, tai išvis smagu bus.

 

Ir koks tas smagumas maždaug ? Pavaizduok :D :D  :soka: 

 

EDIT: Dėkui kad pavaizdavai pabandysiu kažką pabandyt

:DD dar ypač kai šitas vyrelis non threaded užklausas naudoja, tai išvis smagu bus.

 

arba perspėji žaidėjus kad atsinaujina informacija atsijungus žaidėjams, arba įrašinėji vis informaciją į masyvus. daugiau dėmesio vertų pasirinkimų nematau.

 

ARBA atnaujink informaciją atsidarius topus, bet atsiras blogas žaidėjas, paspamins su binderiu ir smagumėlis bus.

O kaip patikrint jei tas žaidėjas iš topo turi mažiau ar daugiau pinigų ?

 

if(response)
{
new vieta, str[120], strf[1100];
mysql_query("SELECT * FROM zaidejai WHERE patirtis > 0 ORDER BY patirtis DESC LIMIT 10");
mysql_store_result();
while(mysql_retrieve_row())
{
new vardas[24], patirtis[15];
vieta++;
mysql_fetch_field_row(vardas, "vardas");
mysql_fetch_field_row(patirtis, "patirtis");
format(str, 120, "%d. %s kuris turi %s XP", vieta, vardas, konvertuoti_pinigus(strval(patirtis)));
strcat(strf, str);
ShowPlayerDialog(playerid, 19, DIALOG_STYLE_MSGBOX, "{ffffff}TOP 10 patirtis", strf, "Aišku", "");
}
mysql_free_result();
return 1;
}
 
Redaguota , nario Karolis.ExE
(redaguota)

Kiekviena minute saugot informacija kiekvienam zaidejui? Tu gal kvailas atsiprasant?

Grazumelis bus toks, kad serveris uzsicrashint gali.

Beje, del tavo sql uzklausos: kam tu trauki visa informacija is duombazes, jei naudoji tik patirti ir varda? ("select vardas, patirtis from").

Redaguota , nario MartynasK
prieš 15 valandas(-ų), perestukinas maskatuoklis parašė:

koks skirtumas motyvuotas ar ne, paprasiau padaryt o uz tai repais atsiskaitysiu, kas gales tas pades. Neieskau motyvatoriu.

(redaguota)

Tai geriau pamiršk informacijos imimą iš mysql lentelių, bet daryk top'us žaidime pagal žaidėjų masyvų/kintamųjų values. Vistiek manau naudoji masyvą ir vienas iš kintamųjų laiko kiek pinigų žaidėjas turi. Jei sakykim norint pažėti top'us žaidėjas suveda komanda /topmoney, tai kai suveda komanda daryk loop'ą ir pereik per visus prisijungusius žaidėjus tikrindamas, kuris turi daugiausiai, kuris mažiausiai etc.

 

Kodas:

http://pastebin.com/YTv4kTbe

Pabandžiau greit suvelt tau pavizdį. Jei kartais klaidų padariau tai pasakykit ar jei kokių klaidų mes. Tik susidėk į reikiamas vietas, pasikeisk GetPlayerMoney jei nori į savo pinigų išgavimo stock'ą ar ką. Pusiau miegu... :D

 

Tik tada reikia limituoti tą komandą (jei darysi komandą), nes jei pradės spamint tai irgi papildoma užkrova su tokiu loop'u.

Redaguota , nario .eko

Tai geriau pamiršk informacijos imimą iš mysql lentelių, bet daryk top'us žaidime pagal žaidėjų masyvų/kintamųjų values. Vistiek manau naudoji masyvą ir vienas iš kintamųjų laiko kiek pinigų žaidėjas turi. Jei sakykim norint pažėti top'us žaidėjas suveda komanda /topmoney, tai kai suveda komanda daryk loop'ą ir pereik per visus prisijungusius žaidėjus tikrindamas, kuris turi daugiausiai, kuris mažiausiai etc.

 

Kodas:

http://pastebin.com/YTv4kTbe
Pabandžiau greit suvelt tau pavizdį. Jei kartais klaidų padariau tai pasakykit ar jei kokių klaidų mes. Tik susidėk į reikiamas vietas, pasikeisk GetPlayerMoney jei nori į savo pinigų išgavimo stock'ą ar ką. Pusiau miegu... :D

 

Tik tada reikia limituoti tą komandą (jei darysi komandą), nes jei pradės spamint tai irgi papildoma užkrova su tokiu loop'u.

Arba taip: Pastebin (tik aišku geriau būtu padaryti su pool'u).

Karolis.ExE, kaip sakiau skype, gali padaryti, kad saugotu kiek vieną kartą kai iškviečia GivePlayerMoneyA funkciją (bet tai briedas), geriausias variantas (jeigu reikalingas MySQL) - saugot kai žaidėjas atsijungia.

Arba taip: Pastebin (tik aišku geriau būtu padaryti su pool'u).

Karolis.ExE, kaip sakiau skype, gali padaryti, kad saugotu kiek vieną kartą kai iškviečia GivePlayerMoneyA funkciją (bet tai briedas), geriausias variantas (jeigu reikalingas MySQL) - saugot kai žaidėjas atsijungia.

 

Dėkui, bet iškilo du erroras ir warningsi Warningas:  warning 203: symbol is never used: "pName" (WTF Man  :kiets: ) ir erroras: error 010: invalid function or declaration

 

Pagal sistemą tai kažkas cikle bėda 

Dėkui, bet iškilo du erroras ir warningsi Warningas:  warning 203: symbol is never used: "pName" (WTF Man  :kiets: ) ir erroras: error 010: invalid function or declaration

 

Pagal sistemą tai kažkas cikle bėda 

new pName[24]; // 21 į 24 keisk, nes vardo ilgis gali būti iki 24 char.
for(c = 0; c < 10; c++)
{
        GetPlayerName(topID[c], pName, sizeof(pName));
        printf("%d. %s (%d)", c + 1, pName, topXP[c]);
}

Šitą pamiršai įsidėt gal? Nes pName tai yra naudojamas.

(redaguota)
new pName[24]; // 21 į 24 keisk, nes vardo ilgis gali būti iki 24 char.
for(c = 0; c < 10; c++)
{
        GetPlayerName(topID[c], pName, sizeof(pName));
        printf("%d. %s (%d)", c + 1, pName, topXP[c]);
}

Šitą pamiršai įsidėt gal? Nes pName tai yra naudojamas.

 

Įsidėti nepamiršau su lygiavimu susitvarkiau buvo biškį netaip:D Einu patestuot pasakysiu kaip viskas Thx Very much

 

EDIT : Viskas bugovai ateinu rodo 0 xp ir 10 vietą iš oro... Nors turiu daugiau negu 0 xp ir turetu būt 1 vieta

Redaguota , nario Karolis.ExE
(redaguota)

O mano metodą bandei? Turi veikti be problemų.

Du errorai rodo nėra kintamojo i ( Undefined symbol i )

 

        GetPlayerMoney(topMoney,money);

        GetPlayerName(topMoney,vardas);

Jis buvo naudojamas

for(new z; z < 5; z++) Cikle

Redaguota , nario Karolis.ExE

Mano klaida. pakeisk į [z]

    for(new z; z < 5; z++)

    {

        GetPlayerMoney(topMoney[z],money[z]);

        GetPlayerName(topMoney[z],vardas[z]);

    }

 

Susitaisė bet ir iškilo warning

warning 202: number of arguments does not match definition
 

 

Šeip yra abiejuose definin ir GetPlayerMoney ir GetPlayerName

(redaguota)

    for(new z; z < 5; z++)

    {

        GetPlayerMoney(topMoney[z],money[z]);

        GetPlayerName(topMoney[z],vardas[z]);

    }

 

Susitaisė bet ir iškilo warning

warning 202: number of arguments does not match definition
 

Šeip yra abiejuose definin ir GetPlayerMoney ir GetPlayerName

money[z] = GetPlayerMoney(topMoney[z]);
GetPlayerName(topMoney[z],vardas[z],MAX_PLAYER_NAME);

Taip jau būna kai pusiau miegantis kodą rašau :D

Redaguota , nario .eko
(redaguota)

Matos :D Nu pusiau į tašką tik dabar visuose penkiuose numeriukuose mane rašo :D

Kadangi topmoney[0...iki...4] visi yra lygūs nuliui serverio pradžioje, o tavo kaip žaidėjo ID, žinoma, yra lygus 0, kadangi esi pirmas prisijungęs žaidėjas. Tau reikia, kad prisijungtų kokie 5 ar daugiau žmones į serverį ir turėtų skirtingą skaičių pinigų. Tokiu būdu skriptas turėtų veikti. Visie tie if statements yra vien dėl to, kad nepasikartotų vienas žaidėjas.

Redaguota , nario .eko

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4014 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...